From 633f40c1fa54f351ec312721dc86298e2a392bd0 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 15:25:09 -0400 Subject: [PATCH 01/15] Make -ProjectId optional across the PKI cmdlets and add application filtering The Infisical console never asks which Certificate Manager project to use. The project is in the URL, but it is chosen implicitly - the service resolver takes the single cert-manager project when an organization has exactly one - and everything below it is presented as applications. Requiring -ProjectId on every PKI cmdlet made the module stricter than the service it wraps. -ProjectId is now optional on Get-InfisicalCertificateApplication, -ApplicationEnrollment, -Authority, -Certificate, -CertificatePolicy, -CertificateProfile, Get-InfisicalPkiSubscriber, and Request-InfisicalCertificate. Omitting it applies the same rule the server applies and reports the resolved project on the verbose stream; an organization with several produces an error naming the candidates rather than guessing. Resolution is client-side rather than deferred to the server because several PKI endpoints carry the project in the URL path - /api/v1/projects/{projectId}/ pki-subscribers and .../certificates/search - and cannot fall back to the server's resolver at all. Doing it in one place keeps path-scoped and query-scoped endpoints behaving identically. Get-InfisicalCertificate -SerialNumber no longer resolves a project, since addressing a certificate by serial does not need one. Adds -ApplicationId and -CaId to Get-InfisicalCertificateProfile, which the profiles endpoint already supports as query filters, so a listing can be scoped the way the console groups profiles. Get-InfisicalCertificate already accepted -ApplicationId. The existing five-argument ListCertificateProfiles overload is retained. Also fixes the README Quick Start, which did not run: it passed -ProjectId and -Environment to Connect-Infisical, which has neither, failing with "A parameter cannot be found that matches parameter name 'ProjectId'". Project, environment, and secret path are per-call parameters. Documents that a project contains applications, since listing projects returning one entry while the console shows several applications is the confusing part. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 22 +- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 447488 -> 450048 bytes .../bin/en-US/PSInfisicalAPI.dll-Help.xml | 1 + .../en-US/PSInfisicalAPI.dll-Help.xml | 1 + README.md | 58 ++++- .../ProjectScopingTests.cs | 203 ++++++++++++++++++ ...etInfisicalCertificateApplicationCmdlet.cs | 7 +- ...lCertificateApplicationEnrollmentCmdlet.cs | 7 +- .../GetInfisicalCertificateAuthorityCmdlet.cs | 7 +- .../Cmdlets/GetInfisicalCertificateCmdlet.cs | 8 +- .../GetInfisicalCertificatePolicyCmdlet.cs | 7 +- .../GetInfisicalCertificateProfileCmdlet.cs | 27 ++- .../GetInfisicalPkiSubscriberCmdlet.cs | 7 +- .../Cmdlets/InfisicalCmdletBase.cs | 69 ++++++ .../RequestInfisicalCertificateCmdlet.cs | 7 +- src/PSInfisicalAPI/Pki/InfisicalPkiClient.cs | 12 ++ 17 files changed, 431 insertions(+), 16 deletions(-) create mode 100644 src/PSInfisicalAPI.Tests/ProjectScopingTests.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 349385b..894579b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.31.1924 + +- Build produced from commit 93b0cc1924ec. + +## Unreleased (carried forward) + ## 2026.07.31.0045 - Build produced from commit d47a5af6b3a6. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.30.2350 @@ -36,6 +42,20 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased (carried forward) +### Changed (project scoping) + +- **`-ProjectId` is now optional on every PKI cmdlet** (`Get-InfisicalCertificateApplication`, `-ApplicationEnrollment`, `-Authority`, `-Certificate`, `-CertificatePolicy`, `-CertificateProfile`, `Get-InfisicalPkiSubscriber`, `Request-InfisicalCertificate`). The Infisical console never asks which Certificate Manager project to use because its resolver selects the single cert-manager project when an organization has exactly one; the module was stricter than the service it wraps. Omitting `-ProjectId` applies the same rule and reports the resolved project on the verbose stream, and an organization with several produces an error listing them. +- Resolution is client-side because several PKI endpoints carry the project in the URL path (`/api/v1/projects/{projectId}/pki-subscribers`, `/certificates/search`) and cannot defer to the server's resolver. +- `Get-InfisicalCertificate -SerialNumber` no longer resolves a project, since addressing a certificate by serial does not need one. + +### Added (application scoping) + +- `Get-InfisicalCertificateProfile -ApplicationId` and `-CaId` filter a listing the way the console groups profiles. `Get-InfisicalCertificate` already accepted `-ApplicationId`. + +### Fixed (documentation) + +- The README Quick Start did not run: it passed `-ProjectId` and `-Environment` to `Connect-Infisical`, which has neither, failing with "A parameter cannot be found that matches parameter name 'ProjectId'". Project, environment, and secret path are per-call parameters. + ### Added (certificate metadata) - `Request-InfisicalCertificate -Metadata` attaches key/value pairs to the issued or reused certificate, accepting any `IDictionary` (hashtable, `[Ordered]`, generic dictionary). diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 7cddb2a..63ab803 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.0045' + ModuleVersion = '2026.07.31.1924' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -74,7 +74,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = 'd47a5af6b3a6' + CommitHash = '93b0cc1924ec' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 56647311f690aecc8e94f0186b10ac7cf334e0f8..eb4e94295fbeaf602d4a7494246d9c8f89c9ee8b 100644 GIT binary patch literal 450048 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%0Aida6hy{yD_a8v5rcMX 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 O^Av~c4?h3zB=En&QNYUp literal 447488 zcmc${2Y4LS^}j#bGFw#awPeW++Zf9%(#jZ{VodM7V|p2rcvys;LQ(gp!a7!TjHI&YazmY{56>_x$zPGoN{HFLUpmJ9qAGvcow+ItYRc z|G)Yw2=3%8f2-^9>kr3Z+&1p+w&1qHlZ)TkwDFURZ@usA+W0xuXrJnC2aexkw}TFf z4jI4uUgN8W9yEUTLF3onY^(7HMtklxxwW-8G4^`%b%J2yrgZS?%gf*6p}iGM7~kA9 zB?x{U1_A%%ulNVVcu_ey3{{=7cngsD>)+~_!{sj>%sNr5%D=`rz7)jY?Y|F$%~a)r zmn9nOyaZ3f+VB(ie z!5M$d1Wii+{ln*}@+e9x-Pc^ji#fH?TpXFoboYgmj{YhgWadekrMfz6#5J5phG$ag zT3A4nuuM-ddP+Wcj9_tG5>LA7o@B~n@T<~X?GyAiPL8ZC2I;Qu2*^ZZ(Z$qU@xK~D zs>gGP-pdDJYOeU5uD&l+4q-<}N0h^d=G0t?LM~d0i-<6LTXNCT=zL$gqjzXNA}wKe zUv5%9BJeO%p2jg5#y>rb*7+kQB@MP}BJd9ge8H$fkEBQI;I!bVn}QL@ruHf6;9xk> z{pNILJ?WR>t0g^^&XjQ*7CW1J%VF-)mVERAp=C#x$B_?xL-Nr}jmt_Z-;?Xwt~nQ; zHGArF9TFeO=PnXV^8bzSU#y3}aMsuGHtfzu-EwNnL`&*98!g4Tp3g+Nw{>jN0^XxR0ic&KpaM{EpaM{IpaRhBKm~wS-~3PkXmy}s ztToC#7__;83cwHtDiStnrOZzi*ep3vk+3<;4OC#W-GK@~hXWM}r^DSq1vWb!r~uFb zSTt0)(?HtKYpF|QYbn*2>gY*DL@Tt0azrX3$3CnJDjU#@y6SH0Qlv78#VgVbEfn(FD$>Kz>7?o6^JU0p7O z%AtdnM~5HugpzxC>&~dky{&m|j0)13g@tHSsYAPRNP4_0URd*+(e|kk}iw#B*s(H3b81;ERRV2N)LrX~8z9*2fn-g;;N>g6@$g zAOk7@JO&w10bo3AKm}mD0~G*<$!0?ZfG){^3ILsx0Tlo`DFZ6JSH^(O$_!K_4Cuei zKt;lUzRV0%;03*!0Tl_G^jl`20-N+-22{9B9UGiaIm@4p4QkI@m%I|S*ZM>H`&GD* z{$618uvu75^dqL%5dE0xwa|5k>u@0s1x8Pph4n-~X?g>(JWIgS1~#gLX94nzn+mWL zFrv_L0PQj30D5emU!&zXHTQPrqU90VCdR{n6}XOv0q^u52296<9H@^2CQSd|j00pG zu{!?BpN$|>wG|1gyDOR@Cmy*vdz-o>2aDY!qLn$#VSzpZ6UXe$9893Q}5Ck0^!3esTrqPW3 z4#O`-VWqT>Z-NEG#aHa7W1pMJ*5dpvo2yHv?S_Q^AB_#EgLPxr`svI(}q0U#bmh zqxTEb^L7vE{^rWDUwEl-K{ymEHCpOonO>%M5@j9g+yY~8;+pF`le&=Vscnf3D)?5M zny0@(IJszRbW484XSm3h58yUwt=-ZTgzecXmvPQN2;m zBdfQ{xqP79Xg|OaPDZ$sM`9;$Hmv+`fR#VQR&s51Uv4xj)hyTFanyXu2!6s%xOc*%Cx9W@$Uw!pe|GRY?3~g+d3c7+%!lt6+x#ZalY7qrs zc~;RpW9-q$GpS|uJo_w>XAcpRe>=}^v$WOo>{ZDKviWavwru^`04s~g);kASSwyzp zZB`Q5dT&e`*?PYc&DL9yo~_}KWVSLa^KAX=f`Qq(y=H5$1~+4htl{Y^7)E|A#edCU z&Es@H?F)ERE0r116l*(jpi1t1m&m4fe;65sUPL=jE{L%p3In8dtfj zE7}t`-Dl0N?ZvsdrL(nnT)uE=v^Q5$CKk=S49NBY6}q--E##R>d@UF4%XKA}i)M4~ z>5v%)Dz0_PDgb>BQ~>A)%!Ud8PkaVc0H!!l0a(U?3II=K=0pWxngbO8`ct!^0zl7d zKm~vv)_@8CU915W07}7t3IN@o0Tlo`LIWxQbcP0009JOO!UriB&^ek-6#zO)11bRY zjRsTzR(GHx;nx~&paPp~I#7|YNvCIis=y{4paB&LoAicepaPq8Wd>9L=*0}ENI0ci zGXoU~13Eb~P=Oa4I#2=0~LUp0~LTn9H;;s>OckHFb66Up&jl9DzJHk0~LU8IZy#O z(t!%VTn8!=o*(4~DzG`vfeOIU4pacX?LbAsuVdUm1vZa$paO850~LVd9jE}D;6Mf7 zL<4jXDVRV9NGCzz?GEFvz<(2U;I>i9F8AhjxZUjjEC%}&A48_q|W|N!< zqjOA?<}fAtB98u7&xU4E;4YM*#3^`GsJLJv3;q5vjnUr;Clwn5wN;|%K@p5 zh|&vtmQPjBX7n{m-zPSnSx0G}h2>U#X62@n@e{Y0J+pF470WB)Rs77#9p!_i0ne=5 zT8n&U-7r`sPOw41G3qissLQzKm~xzHybJd7dcP?ph(Py3cz<9r~pt< zWqnM^$t`3sEd{a6##Aw11bPFI#2=lkpmTgA3IP1_=y7* zfSVks0Nm_A1>mO+R3wsciyNrG=B*A?0B&=j0&u$n6@Z^PPyx8Zfr>kN6DggI5Pyx8tfeOHV4pbyUyWb5|VDkY7DgX~UPyu+zfeOIS9jE~O!hs6FFCC~z z1plxbsKDm09H;<1;y?x9Q3omjk2z40@ceN%P=U=S9H;>N+JOqdlMYk>o^qf9@U#OJ ziO`;L0~OeO)`1GZa}HDho_C-E@PY#s3C~}20~OeO$$<*MZycxqyzD>);1vfd0Ixbw z0eH=U3c%|QQ~=&^paL-8feOHz4pac%a-hP~^!s>bINjaXGAXgkQo9#&`KX23h+Otjemk55*QoqoN?TMTe}ySjDy^=@ZMq?Tm1lCwZ5HT1Fy}ca#X* zYR{$SN(Cy#FO-Ke9%|2XB`fz*rF^*{mI_HfwVXo!1yr21Mj zkz7Pa5HJfI-o{vi%tX6`WpcC+lS*%{`iZ)9IvLt8cN@zhGSS{RZO;tTwRpt}_lech zI{x~Ky6-^Oc8ApQ*Sp?tpliEv>-g(j_p6y-)yrn!!iRKqt9B{3Sp=mr%*8b|8`o5p zK~gtmiBfMnZz{B=mO@$Okt^|HYMxc!FXwJxpM<*062rpb0GZ9N+Lz>{l#Hy~e%|x|?Rcb(;ADZBs)$PYi z9j!V`C~3xoIhbht zq=4n3UjZ{#6iX)wXEZ4K6w!?PM4up<5uWG^L^FmHeUWHJYl*^cA6VGOlgF7z(z0-2 zKd)xziJ8d%MPYv=MJmhF+Xoi*DxLic+wSk)rc-Whl=aH=H50zEtRE-B6_PLKv*f)k zKKl**bC}nIWO@HG!5ifr`!T!rE!z2_UA1<$XQrP|Wh|63m&*Ic6_4S9)-CyF^nrSi zVeLZ-pgT5?7-#Cm^@OLN2ONpd(OWUS0UEs%U;IcexJA|ePvqiv@x{$tlymfm(Fc%d zE?$%}UE9e^D|-9Y_TcSnEyNCuZkUNA$r(FpyD>j8B%tyaP) ztLJ*d(J`;J=(@)0Mi}VGNQ<5^&V_(X^eFyS??85VGxBv~oRWT? zkSpb*D~W%3B^)PPt=I6!YF1%DGqU1{M$Ib3>!VI@x@hr6zp)ARYKd>GSHB@dsaJ9y zSg)RhEvjBUo#4rOrGCt=%_EDbS8}EG>f&U*I>G8y^40LkBqe_1Ui$~RAoWVjqd&wK zx68#x@x>i-@kxAfmt6cQzPLv&K8r8zlZ(H`7Y}e@b?fgCnHug_w|14f)s7vjTaxT3 z&q3;zUKHaCNqE$v7md30EY}0-R$FYJt~-o|>O~mw4jUiq6>a#yiuMNC5Xy}0H&(Rv zky6o~$G_@w$p1w}+a7-wUD0k8lX!@dSfly9ri-RF>e~0{uO@zDU3-TZOI?$*)U_}1 z+S{;KVT-D3uP1o2uBjihYsXk!lPjrfy=8B}tlw!5YhT25;BzVYWBZr<)MsmBacRXa zF^Gn9kYd-1uJ}UY5RKG}MzPQ5dO)#{Rx4q&n4aq;-8rzNHy9-)ecb<{q`!^LO!OB1 zRj)*PNyn=Y8>5?tG1TH4&`K;Zx?Xs38!@VB_VJCrXCvB(?r$u&PY7SiP0mto2ji=k z+iziuD!2C&{EmeE4-@>ab>7Iabp(y?so} z$TUPtSo^-*xbc#m=(6}?SInX-T6~LM4D$fc3ux?||l}eQdoZcs=+e*l|N|Z*swEv^QnV|M4DR>F8>rUTL*+bdr>8 zD(oqrjHsQ$fhCu**{NK$XQwks8gT2MCRa4uEAki-P@8YS8y!lqKC_fNYxZ`@C&9&h zW#P6&mi!e9{qLu%x<^zGRKt;Yb{(G82ensqkE&jwMx!yhzQ56!>O*2wKAq@j?v!%v zh0gYT@8nXUl)tpSSSnT)D-|O?dWef}NG`tQbOx?UEFfk2D=+g~Qy(W~X98!8l7)vl z(MA^=PqcNmGA$;4uVH>Smzpb6O3ewsC*K;>FP4Qy6=xm}h(6h1CEyTEyb!P2MayZq_ zm`;=V3`o(~V(9}&Uve4CUq%38ej%I-3ULzfC$VFyY zDmo9}CWX0txtYg~)`Gm^E%wbA?P;H>G49GpeYisP$Xvgg@JKz*)*E)TXF92sj23y0 z%0?I9U3-|0mM6GU*p_Vz%gZoxz?^5AOXfV=a^*Ie-=xH&ZcN5MO8uQW(XT4_vvg-1 zU8>ti{E22s4&-~NBiupan5q>|NOWyyNm!6+FXps;=v>gmzfy763R9-#7OYqHNfdMa zR(LXz(swPTad=XoUnm(}Dnxfn^qYq@CkuQ`b*b_7qI;jJ&E#vQH(e?mS;|tIW&N*a z>}nsf(6hwn3C&yR338uLNMmj#`;w5Xj!9LN=3gUJ6SQVnYTn(eVE)H9bH25I;VEn+M@)|v{g~O&0nEbMzB5(NI9N#NF>1ZR)jB@)hsXc|K zM;c;z{4iM_e<_yBvuXNk6D9O))GnutMU>^dqBWvjqWRKlq@2UK5@s}7SvFeC>@6+{ zTHN#!qL)C^cfX^Pm{~4*c8F_mEBgdACgMq`tc79hF6&|9wNJ8gWti?DU}c}&E8v5U zo^SjZl&P4;d%gGNBHqy919VSMD&5gpZl@8ky&ZTum+wFZyzlcjd?%B8*+E~US^P?& zy|ZW}i&=V!MD*c##I>(Y zXIR?u(G0G7X)A=5XL3k}wHCf=SoVctBNEq&fj$1#$F`dUCp_Eu4()mJVd;hPq5d6a zW1zUurU874*a+zF1hnvXXqNCzmLTDBsDFpnKjEVi370`U+g+?e0&Tks##~`}>jCLK z5YHBw-iO6tKzgSIC*9RZue8xq22XG6M1MG}Z7gxfL~IEmx5+wk;&xb1&)H}LJ%m{1Is89ZOUt{&93l4xb4O*Kn0(dK&2Mq6^O zmo&|}ywYeyX#=7(Sk`0iZ!N8!7;Qbf5z8kpmTgj~%E0FtKTVr~rKG zKm~x=PP3r`@Mi}q08D|J4HbaDI8fosJuvvI8>j&M&4CKQ-yNt(IQ@qksKDkw9jHjy z{M-#xV3Qd+i=T>wO1JV!=ozNRieB0Dc+snx zo`9}>Co{TPUBVb(vJp#5Bu)cvx9c&2D?>09e4NR0V zUI@#J(FF9=zRPHa*_ZEe(r;CnXeny57_a-ioa;q@tI90QBG>)O_l^4z&NK-}vgZ3( zB)qW_o?Yq3NrZYOCe6JQnZ}`UU|e4rnU9u}SdS4WEp*m$rC%yxhuMK*-}5%r!@whc z5)SQyCA()+%t9|S)8>2r+qK5jh>X_=6#!lqSrt(M;Ej|46@Z)r6#!l&m<<(xf&&!* zo)^uA3P7_16#!m2m<<(xRtG8oym2raDgZ+qr~vR9!fdDjlpLr4@Pfi@r~tG(Pyy(0 zpaL-5feJvU0~PgqNWO`DG!w|TsHIw`jLGH8*O|1r@wQ^oc2exuP{Ng=)xF?mcrD<_ zRJ03*m4cnm>KoyY_SJK-C{tt?%2{q4vDjQ&-s-=284VXb+`bJSY5WMdeD6%v6nWO{ zXgLg8YS$4M&xJqWl+yUf1W(aGXY|9m?ve?nn0G}tCiIWcsc3gRt+biDE?FK>?46d1 zW>7tB;3QqWT1x48 z4mq__UIQ!T<1i}UiITy^U7RQ7nKs~TCD27i1MU$(n_7$(2h2}TnjcWQdyBW_6FG*p z`!Jlhk36fHoUM{kOL5-b4Y@C}z;hX&`G&Ro#lHtQ2pLf)4+@DM(&NwNn2HV{h*VV7 z;7(G#C&$W!boCXIWAQzM=B-I*rOG@^TEg-@INnzs?8mW`$*0RFBMP!4qNvFT=SuY2 zvz^RGW?3@#Fb4T>uB0UT6}oc@!}I1CJOYT8k{oC$g_T?>TYePsdN^0owU8f@1^xU` zpnmi&^?4bwM3Ti63Iv7kvdcN z1g4eM^3jBTU^0(bb@FShBwWa4`APBgDGpIL4)f7Oab6f!C_fFWEQj+tc}DD?N?f8P zv6QY3F9&n-(Im8$!FVy3%Ee7Phg119(fM5Y7;!TVdxhv(>}VmRqC=p4_&*hczOB>M zP1L(GSJt&)Bp0lTW9OwgjjEfj9N%ulwb(rr|hAb2j7f7Ns< z_#o9coSj3&LQqNfZErdV_D;8dE8TAP&r7#on~vRXo5}B*Q7v;Oui3jC(<|TBq-~1hc}!@5Mi66J;M&I}8y+>lWPmLETZ*%; zVu)T4D>}h5s-EVdxR9%a;h2FwI`}#t$M*A4uIfJWEzoGb$6;bDSYE~n8s#G2??{yU zntFm%^M5FQB;yfaH89F|l;zfg`l3aL&Q>7)9 zvwLANvD)9?{yD;CMb;$sP^d$t1cwF3oEK=>teL{2>Se?%9sL%2SRoym;B-oV1?k&H zO5YZy=Iuw}gmdLcV$u=oNy8Os)B}^zt3;`DRhk&)I-XG9#D-#Pc-{tD!*d1(u`6l? z!=+7g(d&q78OJqA%-@jYtr&|)+Jjau=5y}L9epIHUa=+DYRI}^jTbMpCsA8!Xj7wqn*EcDCnw=aj-y?$Y*rZ4?>9 zTy-IwcL14E%2zgL-n#K7WKFJ4CqpYM%KHp8NJmF%(vRX;-j2z!dHbtNwO1-E2uJ(9 zV4GEx_~xoTSK@UhFHcVKcLaL`JKWdU3*%UFe7cmA^e@G*dJ_?k-a=2J`n)Y!q!+2^ z9kewS>xbjUNAHT2bR=CyrDt5nXtSUjeU#r5tH0&Y9FFVB)p(?ged%q*Q}M_=Wp+af zr+hk|SiQ*xQUg|$``m^;RFy97f$`kbdJjY&;2@m5UMh?}L}f;wDGdi3X}n3i8Tf=} z&`31N`-yQq0!A`%i#;tAnYp)@D!=zo=P%!!8RcHAr7jX)Tx?$0#w}Ns8?Kmxpeu zyIo--9CJRh5Uq~ogdg)6iEYO=DXckLh8J(1_MyS4mju%-?b+ZE?)Q~QI~(48g!3gN z-SRhOXe=kMUj7(^-lh!Au|&IhNRxJZeXF!(t2+{%oZUK7M0TS~y}<0&hS_hC4YTPy zf(KYwvcm3lP333sRC`S8y~Oo&T1RZuYst>oq?TAnQcDh1FfuFar_AvpYDpZ?%51ad zL4Aso%FM6x{c7{w9Y}93-v3i@qdKKzy;iX;(-kcv4egXk^ZQ6tS09r$nw;t;NVx^< zP6^9QYw$Yj6ntB8yc9@0H`6q9ttM@gM^9;zeL(CR;PPkKj+p0QC!*}6t|Fx=_nNsO zbJ~Ke+(Pm#=+>0s%9LUKeP2Yt@-*=+J&&lKsOOQ@3-vszdaay`qtE1~bUF zmv?ue{-$aKib8^oMEyh6C=@dy#mk#(pL1&A1!3=Sn%4_Dm&xa8WxoLWi!$CsPkk>R z{R`9=>d2%=8!F~7g>`K&?-#@Ar;{LF|H<;lVtbAj?}B#TK;hM}0^|jiHxXl*@q@ zmxlE$)D= zDgcW+Pyt|Vk@=wlu!I8@09G8C4HbZH2Py!pLoypG04!uOpaM{Kpu(TVF<8nCQ~-J$ zr~vdjPyyg=w0W)qz~UwYDgcumr~oYOKm~w1)tsmRuq4WW3cyqcDgZ2$G8-xY%Q{d2 zVEL5UPytxpfeHXCtIUQ90Bg4lr~s_!Km}li0~LUk9H;=S>_7!z6$dH+t2$5tSj~Y7 z!0HZEB+6$EH&B7iH65r(*j&pERA6&$2P)hq_o2*(F-s7vLYo)wmGC-^YOyvnr_-4~ z;Uan`RDCmA@74-??s8Mgb@ZN@-6HyTqV=nnFpSQIq@vrz&F{tV1GD%uv|Bl|ZuomM zyi+Xx(e&M-KTi61H6#_?TX*zn((qa}yuWVv=cM8JYWQH?@GnWj3)S%Fb;G|U4KG&1 zU)Bx(kusa7?LbAs={|0t0-O6fPyv|jKt;moer})w zoBKOZ0XV>c3c!I5R3!X5$PH9rGjgB;Fvo!kz`+hw0ICjD0BR0Y01k1W0&u7U6@bGW zr~n-9K!wLx-^ZOR155twecY+iq^6>eq*Xe?^e56PjbTI^cVKcI9cgBN5`C2E&qN<> z`mdsoG5vSZ$C>`8=o3tTfiCZp2ApKz%Q`p(AkP}|{!7}t)#5g9qPBT?8ZO$r0w-8AO~iZD9UbV2mlrkh2d zYr0kR`KE`6zR+|@^u?yzMPFiiINI{yy9T=I;4*;c!3M-@^*9f@H4j=z2zk)PN#8XN zL6mpFahwH1xnA_U#u6stuebY+eR0#l)$lcZOjEnXqO_RA_xq;DiN4D8;u6)}1YBca z2?4tcxXwVgfIS3UZ(vCQdkVP0z*1|gx_PD-wI)coavQBKOpu$Hvb8(Wn z#`H|lubAFe^lJ@W-b=t62DV3AWqT7~b*o9{jDt0$%gh+DgY-sPysl}feOIM4pab6ai9Wlssj~((;TP(obEsc;0y;U0B1T- z0XWNn3c%S8Q~=I#paO8N0~LVt9H;=C??46M0tYGp7dlV@xX6JDz{L(!0KVfu1>h0~ zDgc){PyzU^0~LVpIZy$(%z+BPUA zpaO8O0~LV#9H;=???46M0S77)CHSBlsKDk!4pby;{@e{zBn*Dx1}gC4mkv}UY(DG; zDiQ|2asw53@rVNzfJYsu06gYEh5KdmGQ80Z)~3I)x41jfudqOdZ=ZCR`DwZQrLBcZ zxe)zJdN>)?_Kl{Wk*h+qfMflulxP-)whKLT$&YA%DRZ$qGw&mR)~_FCUF*KMjK-V3 zUVI*&0n9S6pMb;wTCSrBW_Ez+iKY({J<0SO(Ph(B(LJUQ5nVBTnCQu-j}Xn9BpE0i zDSE2uqeL%j`e@P1n?6SLbkoO)o?-d~(JPxiN%X3wPeIFaXg+TcsSCxT)y?d*hM7n+ zThq+W5U{rCvqZ0J`W(^gn?6tUhNdqNy|L+wL~m;PJEAu?eW~azO@B}H)}}8Py^ZPb zi{8%kRibw=eU0dyOkXE@7t=S0-re+%MDJ<(C!+T@eY5C&P2VDVKhw9N%Oj=04>0hv zIylI{opmtBz}>@yYdw{P%V;-VW!(ecbFb3y3_P9(Ie2joA|HCT95m!tb%*{ z2?r_wzjmMk@T3D3fTtX&06gtL1>hM6Dge(qPyu+(feOI$4pabMaG(P4q5~D)3Ssb) z8>j&M#(|22&6nLk1vX!CpaSr!0~HCUuepH=Y`*S5MZ)GAZlD62^Bt&2*nHCsR3r@E zasw53@wNjMZd2Mv*3IajwU5)R%8ZgKGsg57bh0^=>u9W*jTOxgwMsKKUi1Xh6U5C{ z0wx-mC}5_5Nd_hf*j7NRR0M1g0vdC$ z>&Exwl6p^$THbvG>uda2$tUsanyeq9m&uc2C?BQQrb{leq>KQf zuQ$1>5{Y=re~lntt%T?xeiv9#Q)50k+sDz6|Gh`T*JT`b+DG$zRGNG zV1{dB7_Do1-MYo~#o{hzabq*wKrC(~oHYCo+Us}x##cd0@U8h40Dgd84PyzUp0~LTj zJ5T}m%z+AT88P^a8>j&M)qx7Y-yEm_{M~^Hz&{+QNO=BFH&B7i&mE`$eBnR^;9m|@ z0KRmfBH{T0H&B7iuNtJ64hYPq-Z0u)%pWqG4KN4_& z0e-_fEdN-*K?eB2@UZ+70doLy&-)zuM$&%q?FfwbhEr(lXjzxxql0Pelqby3tNNj4Rj}y(WXG(*2g6P9dpM>Q@sRMo+ zIBvVr(jV%d`OnX7ia)1|KS!HBQ}i*W&lY{0>2pP&VETN~C!u`~`7GlX2|v~JcSN6V z`clznChT8m{4(L^n7%^vd8V%veSz55^{mGdY+pNzVJ8fuJyhlQ+yc`*ORgW2r zn6_zcd9I87I(WXgmkypH8qR`m)Yxf!*`p4leRy1r3#{K4_wh$P`upZqW@`n#2YEmK z-;LkfdEz{adv6ocS8LBQm!DdZ1ya0WuYXtanymCeb~kLa^tZ7>Y-6Q{jkf+aX2v#lY}gpuKR(CC zHcr&@i0Ziwo5Qdf@3oL)t+6CE{^&f%R#=j*_!oC`VK$P;`;YVHQIW*ef07rFjU;O9 zb)oYV0CqqVU^`MULEgshoB-zJ`N`n0d`mrdxj*H8WSkl>cB#+pr>I>r;m&g18;SF1 zn`mcpBpj)0y^GEfkLMQ|9wG$Is31Q?_O;7CV~dhe3+b zO5%uRg8Ej#;>&gkvLZ8A=8aNubhI)y`q{HUwI#v^VKgomL(PT z1?)=v{`8vIOJ~GR`F2WzWhQGu)Xfr0iyK{_+HjL&W&{hb`}*p9@QWu{tHR&isWH8{Bv5tn7++3L2qua2F<;kR-)Y#9Py2e*;z64JA7s{9ZErZZV;(;X;^in0pjy{WXx zwEMDda9tb}`MEXOJDL)%wCBoqV!0)kH-2SDF~}=+D!XmPuVYN>JNCchdq8~ zXG^ip()M~xJD2ITs|4%XUiKU>Mq6{}HkYx(e6%l#>YS3Ru0WD{hwAFmyw1kyS7q(l zTxG*_W~{fW>tTzVqQtH~BdVwC#mIuJGJaF_=n}j2jH#xV6f|~XRC8K*{vWZ$(l2NOgnc(^)RtlTtwln!AFcToyt1m;1n|cBK{ZA{+CBw3cHH` zR4MuGP}UpUnt-h-|IT8n5~fB@W?!gq)U0A}`I*(Rp&tT{8?TGP%QMNRzUJynM4`3~ z`bfS(m_?n-gd=7Z)0J#EZs;t2S#-^`ez`MZayB(`K~qncyu(ce%pM1!)HAElL#tmd z&)wIz0)AafOplB!`q1hIpz47MzO58bc{`52d(05pXWaDV!t$-0C#A~UW6Edn9pwk) zmX)@ZF>x?c!Xw6qi*KVPl-f-;u(;SxJK!w3LUs9yPOq+OzS*IKH&gXze8DT<@4+x$@2;*+8i>gjLOXZBV0KV3RQ0l{2kE8=t*( zGLnox7-rFR?7rLGv)H*Z0{4Z6`wG92SdeYNi|)~L13jwkhG|PjYdtQr9N5P zY?f)c|hI@tk5Vg%|jZDRB(K-^evWe@+`!c!LlZS^$3#evfL9q2;C`K zhgqw{7h<64XzeYr0h=ZxBQ-*+S=wU#J7S$q#=3EHHCvr_KPI{#@=aKmq+SLrdVjIM zj%P;ft$dl^&)YnGFtJO~A&y<&>%c+5GFO=1od=>$dU)wbtRJx(#roz{a4Ko$6U&lD zsi?hWb1u?x}yE? zqp0^>clB7B#b|%Pq;5X*J^&G4Rqv{s=#3;{NE=R<9qfQV`dhP8?6+oRi~nL}Tq++O zgkVCj!#=ibsrwKF}Jry3yAl@~#CvYiNglPihp-I2e z?d!}|o2JWG*n)I?yG3W~{A&ET{$TR%$W*r1Utz%CmCfHqrDQZHSw|g}q?*@V*=jRh z$E@x*k8V1Uzc=Z3SC8zwrR~VbVC|jlUP}cB2kYNun%Z5E+C3qao~Hs(bf5yz>_7#e z#eoU{n<<(fDgbQ`Q~>z77PFxOFw}txK*@m$z%U0Y0BoOTey9L+I8Xr??mz{g(}4;= zmje}m5e`%UMmkUd80A0(V6+1jfH4kK02Xtg0>BP77IhVXaSl`f#yd~}SlodMzyt>> z082Pf;nSlS^tyoxK*fOyK%WB@fXNP20G4*30>E8sNl*b;#(|1N@KfDD1vaNSPytxh zfr<@N;p0xSd;9Tz6S#qBZqfh0s zH+%GHoLZ{4O1_+q?9QiaXK;?rlmpXw#h%*P!qc^Lgq$mf^8{;PsYv2{#%$tOeL(y; zAEP5}zDd@4?mjSG@_;7~a*Of5ck$|HxT(h}tPWX`%j(j4+)R&>qCokVCOMJens*Mm{-WR-VWKawkD_gNj_rZ_K7qt6mH1loY zh*G9@C5F*e917NwGpSps@Z>@tR(w5OSS$}Z&7 zQ%Ro~_!EY_u4NrJs&*}h=Gt`}yN~_>$Ie{sdf`9h5Zxf^Mh-1U|A=G0_G1A*k%K6y z-`2kj4SHAd{$;aZ`4de`e>xRAdr3argo9#OyO|RYVL#;*-6DruIaoj3oSaMW-*n<5 zfnfY3^H26Fmbrsa>Kysq(LqmMreHMBGeMDOp}jF{3p=*RmU}TM#+ymX@I~i9GumY~ zGjX;Q#x2a<$(hfDZ8D{~U}8av-#%s+`Ls?x%Ek_zI{nxoo73nNWON(x=1KYpc7(ZI zWIk6Z@fa;*@|^GFx+5#ox$azM1SawzU#<{ZdqJL;UyycbMk!MnS<2@N!`SnMPQI_D zE!@0sVp~`$Zqd6KBf8-@yaR`Pv@ECcog6A`0zo`-(Oq23IErtFv6zuWm)K)?zC2y% zL}RI$e6e=`TLwS=O7BV?f2~d)?jvQgJRbP?)CM;UB$9(0*&!I4{-&Y-?-%R$1sR88GB#pcKv zNZW2G&|PVzbTg3Xej=sYJ2furpNdbpEP6l^^Nl;jPM2=Ze*tnuxrld)ogp2Zv>o~2 z2J&J*@}mFmL3YHIxvxuiitVlR?-G8)EO7+^gETz<;D<6|ywyi!$stytZ zPnDI?v|#_sEloa8aG<2A-VUV84@#@Unlnx#rtxstEAP%(KgNkCQu@qX^d`55?1Gz% z-bPXW;@2$l=b*v;(v?!-A-Rj{XAn@X`awSi$MH{<9x=PX>ljHVmEKbwi3qJOf?Vux=W^t*ML?x4uU zirv4N@|F}BJMc;q$HvkG$_~7ZyC_^EE;z5&M+2&I&~1060`QA2;yB)RcM3lA-*z|0 z9Ml7>qm5(MMc8!InLc{xvu5*?l9}isOxydlX4iPIwH=6FH$COHdJd!QIk(%7Og3V< zK&)FWDls6jdbDeBZN`6>BOlCVynFD%dFL6m{+gaq3|Pu55J)jw$!FzP*z_klSZ~NJ zQ~L#%{6+`!>s;~rX)n$U2tNN;SMjf$*VFmqBhDwX<0%fyD zeI++!5J4R+cClHWjV`|*@0%BY-Iec~kSv^|iFBs=IY)cXBl~sbdTPHUl1$kjD)B1z zuE3DxFp1gxcPDK=NOD*)!PO>3`6ao$(#bMw5^Gm~qEa;>Wh~KW{+S`)JdWu+U2UKcnFAeB>XRO_*mnG`u zvNBh^NwDWn<&jbJr@`9G`ul>9o7P=6CBtU^4r==IEcIv2*Dxo>RJEHdv%VK+ z*5!K6M&H*nANuM!7hR+0d~}_j3(@s@=4nvR&H7tcZO!H7$dTwr%36%I82bsVUI=_| z+P~$0ffx>UyG~q>LXgA1UkDrHYSD#oiy2Q}Cf0_>-$VR@CXUC_pAq%w zR?|0&zTNaKqVF($o9MgH`rGZ#(f-pS4j8M~$9nnoy*w6CezlkIN~-Ncdd^0_&@=6% zp4t6P&-v&vJr|-U^jwUd)N^z6w4Pg{XZ74_rO;Y?oc1MpURj&5He)ZsinRyCBoo~& zr)+euoWkgSPW3`tVPK(cOfm*5wCgde%7Ne5vlh00&&{rZiJrSMj*j^^1Xk&cMf4U| z+H|h?HVp?oc)X-Ry71R9(_Wn?c)5NL3%4nn!Vf zmO*i-mOC1BB7>^?Z0L7Nen7YKikQTAiagV;!4sJLJ;(pw(oWq$T_1sFK9Y4g`QXQB zh5&=r{XqtaW9bC>)rxwFRae?5j*yQ9ZwFN6FxbPusw6*CKA&UKpV!=6 zy^ACP0lTcvI=|5lzYk$tGFVy~eO3KFUMP9Veu-y>_`xpu(3*_xjYMj&TWZKAWPlv% z&#dv7CH{F1UY7RSZ&zi@=MBh(WpK902iJ?mz)H9Ndn`K#bDnHG6Vb;7M@Sy%%~9cj zXW?g}83av-zY-^ZCOVrKXj{mtz~Ebh=V2nl8rhThWuD@YwC%e)F|0BHJBLf2Qe^(9 zv3{#D12800x6It^94^1kvi-^>JNi~XA{&Ne%M1=!oKrm%r`+<#a%yf z96(hL10KNZ6AEi+?Yx1JU$VR(bbkg;D9qSw;c|H>n6-H08AIk#jvPE+8+}YXguVtJ z|D$=7r^MkPL+O<_C)skS*GZc{swaC*lAYBx<;i64i;G28$Ct&RUL6;jN0Db;sgHBN zp+2r`^>LL%eY}R8=Uc^p^I3WN7Q|=3bNQ;`c`niuagjE!l{$XZ;AQduV;%2TYj=^< z$X<@#roIcP%3-ityN=e{EeF)v_ALh~zSG5^QG9Xvogd8ltkI@Qy`49BUVVla{l==x zZS^14+nvSXAocb!%&Kx2tlqAx^;W*$OV-=ZaIwgGyW7_N5` z#iMn!Cb6>L7%Pt$klVN8N^^T)*S*9x_1tF7c-(JCS2gNbhWqiD!P7P1ejKEW>9>t} zqaRpw7c+?EOnFl(5-DyBY>t)4CvU>GZOI`ya1-XDTzw9{)#joL<<0aa+?jc+q(AH8 zLj76j0rN32iAQYyY;#Jm+lP((d7N@TcJTaJX}baCelQ^JJK~WJBX8REg%WqBSRCY@ zOK(p)kHrnBBxY_9j*P6N`p0xlML&)p;jjmF06!8*bIH#gELW7MxnXV(s%&cVlT zTVSW2^g+_QBX(?3ELpB+L#uN5_tN_`E*6>IopxMAdN&F7zq66v$4KvS|1Zk*Wx^h; zTo2!gbjo3{bZ$YpmUkUctoPwyk;&YS;b)>)<341aV85Fh>6CZ6$Nyi_SufXj@wH!5 z)~M3m)zU8fxS~x_`=paRS)vCPcztv0Zk+HSsXu0Wrs|Qbp&zAHKk>V}-qHRLD^)qv z^QiyWeJxr+8@rch4alfJ;cAf?b^5 z@)VbB?CROoG3(#Tt_!eUl|$H}bEMW>@I$rIWyn)L%dWNeke9TUZ{7BI!ek-N>=$s8 zt>whs2Fbrmk)DW)k1)`hW{!#~jH1M}N_}IWd>floY zpVz^k4g5>MRualz3@iXde>2UJt}yzC>6GZt(KZ*Jk-jN7nex)#b$dcy0PuL7ibU0Z z&4Fb|JIO88J0quWeq@xf3&7^7y2DyPNZm1vzLZe7kasN6S6oC-;zzs;;{JZiAfl%* zk)^IrbM8re7dk#zcW+-8k(S@W4Nf6`Y`Xsp7A1DbXOXgD<8yYdZb;>{hwS(0$be*usGdz?KeF0Jd_V0Huu=)aq;iT!8W9W}bix#7P>^*q7#1z30O62GY*gUXXh<6}`wwzwv(wk=E%! zdGXIusowzNCSt%oxi4eF%`AOl|GmM}vKC(dtgPBCLdQs4Les~I&YM0#bkX!lqFYR# zBD&4=X`+XkK11{{w0wW}-+h}-W!%Z@oC?6s4pew0#9$XUPyyK0feOGZ2Py!&IZy%E z-GK_g9u8Ch_H>{Eu$KcBfV~~40PN#HMIy%gx`7I8&UT;zu%81Jfc+h)NceSt8>qnM zfeusv4sxI(;WTms71*5PKn37n2Pyzn2PyzH2Py!EI8XsN)PV}XVGdLP4tJmeaD)RD zfNwcakx0UkZlD62tl+TTNCn_12Py#b9H>b6b+j9(z~;9dr~n+}Kn37f2Py!^IZy#O z-hm1aO@1rwZ`_He$vtmvs?{bRX<52!H!M0~>yhUQAEGtx4r+lm!{*D8yQ{IjI>Yt1{2TlZ{i*dmVDpVJji!NTarJglRx&|n}7Ag z$5)ymnyBX9k-ScjG|6w|)-%Sw@@ukG%_miC8PG_T4C1V991~1h)54bDPTG+0&XDrZ z{f$}N{CoW6OS?aa_r0C@L$|>l%eb-yCTIin2F=6C1-(;! z4RuPseV6^pOSO-%#;3nz1HU{-x@=$NoQBIIlZ4yaJG!9ZN}0+BVVUS-aBNuU8?b~o zPFGhjWjznCN!H;8XAPRJ;t1+(`DL{gPeW zqn>Pj^}Lbp4Y%+yX(|{8mu~{Ks*D?P=5Mi945Lr+IV}H)WAtYZ-@NAbMDD2in%k4) zB3^TQvfOGmuYW0FolRK%*W5CvE{?046Wi)x9Q5&=J(Gdy>K}#5p@To2&f~qN_|K+l zGT}-6;1^4EZZ9Xp4!)CXk%cmgaY%YRbkEphoBeErc$65}6Ki9Q?U3N$V;ax>G7ogl zLh-JzKX@4*`b~xm-K##ym5jnET772 zGV{?8N#>XV$-EOU64M)vWRBXqo=myT<9VQI!BL5MAbFR-S26?2r=HGt^YwIg5-iIb z+U3M&x18#wLIq_@(?pRTK*)n7`%%oQa$pYAlFdYpBs-pvkYw}WfF!%1$u2B9*&j>l zWVSG#y=|m>(|zjcuHXBzJNvu`8s+;b={|4pbbnp>)<#ni!&uF7G9jW$VxDNU(b!Ku0Ckw#!+HomA#aW=lW*` z$Gq6ci>t_s?0=RQ$&@}yK!c@p;%rhXhk9MNsrf{m*$`7L&jInjLAb@AN^J8>(}HbI zwfNJqpF)P|W3LLpsSZ>CPII6FaJmB(fHNGZ0G#PS1>h_PDgb9YPysl{feIgBU~sM* zs7M%`=LRYg2Isqh3cR?$fr^C93*A5kHZO9Z!fo;#kd`ry{@F9foAy-nPeu^d^YMdE zUvMG6t|c&f+AMr2`dQOoiGJR66V*O?(R5n$Z%k)JzhXLvE{_%Pnt?(cyaAv*WqiSN zR&YM`Pxe*Ylq%m-`;7jFXRg0+(%t>xT*r@G{X5?1@0fU7C(m4s-{ttP zpM$ROoK-N-60Dj~^1>naHQ~-YBKn36?2PyzJJ5T}msRI>&TO6nW-0DCD;5G*;0Jl3( z0r;5%6#$k`+5N8qaHj(mfV&*10Nm|B1>hbBDggI7Pyx8lfeOI=4paahaG(P4paT_v zha9K?{M>;Gz%LxA0Q}N{3c$k-Q~-YEKn36t2Py!MI#2<4%z=uFQsou7ExY?hvzyLJ zs!FI8ROL|PP;A*y9>w@rwr+UbovQ#m;Xno8*A7$wo^+rB@RS1;fTta(06gPB1>ji+ zDge(pP?3n>^KPI5n=d#}0eI1Y3cyPaQ~-YCKn37s2Py!sI8Xt2)qx7YYYtQZUU#4( z5#u-9Km|7EJ5T|5(}4=WTMkqJ-gck@@Qwo&Jg!|$L3S)iOBufFW-0*hIZy%ktpgQ_ zxc<%!RABRc2Pyy`I8c#r`k@=Bz~=8Ar~v%Ifr^CFKe~YmY<}cG1>j=`Dgd82P?7NK zQ#Vk7%|AI%0r;~66@bqir~v%MfeOH19jE~O&4CKQ-yNs`{KJ6?z&{y<1z?TkG02Vk<0r<*+3IK1`tR+SQUW00~G*%D9miA02Cdl0Pyo+Wr~vR&V`f7IV5kEX z0DgeXY^b2&d|w+$X*hqYN*c~DRY}A7HY(Y04s+)!@UPv03P6Vg6##zP%tBN_1t`h5 zDNzwR-GT~S@Y`qRLIq%i0~LUg4pabmdudKo07g4d0T|;z1%RJ3GbbtlV;!gf@FQnt zLj_>G0~LV99jHj8X@VQ5z~&MTR3vOpbOROG>~^36Fv)?6gj0S+&Els5n`H+o5;m7| z0~OfpaiAh$lOJ6(KUE|QDsG?xFZd}ov#A0w*?|hc(hgJr7{Qwp6@X zfeOH~4pab^bD#pSyaN>ge&o%9RRNgpKm~xGelr^?05cq@0PurwW3|1Y?-X2ef~?xFZ$# zva16XfLRVy0Csbr0$w^+nuYxzx^Dj0POET z1>gV&DgXyMPysl|feJw6Km}lq0~N&j!DOuEf>_^QkM+F+Vttr9SAlV6FodfTJ9!0L*isf>=M7jI~@4>u2h*eriChk9OxO@bB9WQ~-`~paO8L z0~LVd9H;;s??46M1P3YrCpu68ILUzuz{w6&08VkB0&uDW6@b$mr~sVqKn36o2Pyz( zI#2;P%Yh2O*$z}B8isS+Km|6>b)W)po&yzt^Bt%FT;MkqG``H&B7i z?>JBaxWs`9z@-jU0KV%$1>k!QQ~)k>paO8Y0~LTP9H;<%-+>Cil@3$@u5zFPaJ2&! zfNLD609@-p1>iadDgZxlpdyh`*SmoVZ2r)J3cw8xQ~+*tpaSqC2PyzRcAx_A69*~) zH#txNxY>aUz)u~h;Lcr%$@h9IDHq(iD{`_{as>g2blvLCRp8%k4pabccc23BGY2XF zcQ{Z1xYL0Oz+Dbh0Pc360&tH56@Yskr~usOKn37_2Pyy$I8Xt2(18lTLk?5`e(pd8 z;1>>50DkE}1>j)^DgeK7paSrS0~LTr9jIVlRlcqHb|wfekonc}CSGEE()>B|>h^*( zRo)`OC+*kZo58DF1L7TnbJbnA;KQytoT^82Fh8p=A$2SDV(lNyz;;)EuV(7+k$BQw zU7%nq3CO^({l)dn2Ix_+Z3FC}VEYD`qhLn?b2)TZk5jO716-tF*M^gu73|gkzgDnE z!^sB<_G;M393T}=dPED zYX6kk?#-A8uYHbcuD%B?e}Sz1i$hEGZ+>0P92lEahoWj911@ z*hT#-xhhmU>Mq8jsuj5mQmhgv%#A|!gs6MbUaYR~c1NDs#+#S!&gzyM+MUnsirXMmkC!!6&iqvK(~vUCAT@c6 zlDIX()TS}AQ42!#qZZYV+CcRK)iFp6bcmLS*H65r@lu1An!rn1H6a@6iv4lr-Ff+G z^ytjOuQ|Y)2aV97egM4qRu0!cN0f(KGpX)mI-HyBSXGhj`9O z)KEa-zlcw2vv^h_x3|Sp5)%(G`0ij?8ry)y!FAOCc$bvCwnUc{tTz8fQmIQyu{Qu= zME5NjV{=sOT-v^Vj&5s}6CBE(g_r%UqKq3Bwjj7W%Y%z_Wl!2xRsqfKQuT0+4@$32;5E$(h3YkA?_Yzz#xzh>N2p;>(`I8?H(vw744&h$(y zNev@ki%n!-+d^@1x0NtR`ri^_bTsjneWe0qc-s;RBANA$bx?rM#gY6%4ppIJfy#OIb!fIMP?KAIYTw;mMm z#6K*d0OAWvD1i9V5(*%`vV;PNuPvbf;-8jKzyRAgg2NT0{1xzBmrUJ>t>>HtIuS7*t9a;93 z#?F&=BIY(z`fBUr{)5t(YopKtW32?n6AXWT!l^nL8X&3(PXnnxSa<29q~~i=+$zW9 z+(ZMXHnC-cli>%Y6#O4u{5uW{|0|I^+^ons z@wU#IQGS7tjDg-Rwls+Pm9F_W@tY!EO@#S5kD{|9&M9voFT#`P1z11L%i)IuOUlC; z)H|Hko_+@R_A{`jpNKr7Gj={Qi_X{-iB>n7G4s?qV=nHImN|C_A!698<6v_V^NvrO-8_|jGKjqcLrrfOaq@<9L0fiL za%6tl21;&KIV-Sk!n)~ zlqw}d%#pK!QGDB*;9v6hJ$@X{8|UoB>bVFOoDX$(!p~jcsdIUZRSg ztC6=Qt@6f$6C5xaUXb{8a}d`k{C7UlolohTiKMmf+!&mZ(O+t1O>C`AVtHN}vsobN zU!;Cr9HjrABt?a`M(S5}v6HJinoHV4AG)I^BUW@XbLk&Q*2#Y%*sSJ<9*Qyf_oe%T zDFJh5OOnt!O=fQ)rkK3d2&f_1F_U&kVynSul5LF9B&m;jq=p-poS;lR%Nma!{w{#`b+XHh^RykA8{mux*v%ac0w- zIY`20Sb2{}&e&% ziKmk3IyoIM$1U35ZTt*>f?&t>3vLR$d5n{3&!pUH9F4B(Jn0M4YSZb`<$M2ld4Hqy zVqJtWmJ(5Gq{)WTh^g!>l`oV>da#H@d3&cK#nJD~C$lOPg(+!NhnsgwdE*FtNrJJPd;C6=d14#rKO=4D42AEyg z-b^@&E)0(*oMaa!HyKq9qKqHG5a+U>jMp~W3KjQS2&d5I5DMa zoZShy9yW(|EC(YYm^V|mlQNHT)oj%U4zcukq&wuZu4!cG#1-U@OJ=aVcp%bVPb znIcTHwSb7AMwM)*4HU}@`tHpNB!wfeUbHeRQaJ~}97$o3La&Qp8A zuJjeBRMjmq<1Z)nSXJ(MgJZEft2i2EnkSK?f8UE5bU9^p!C^E$I?qr9EJ=-&W@9s6 z*S1hxatknqn`m@5hbauy8*dB2b&BJuMsG`Q+au}XzbA!7&T2$!S=@9?a}Do9pPunt z70s5kL%B%{;f&p3vAI^-eLg3+tKnB#p|C@(<6I3a3lewkL>h95IZ($RNxzfdqPtB##@iQT7^h)Ep&KpZ%BbXy+v zMv?H~?F74mOD(%s;6CncFHSpfkxlBu^>i?=0~d;}IAy#Y#ls%NF+2_It++QGlF^!* z)$(7Q!7Uvg<#s3W-OlsfD@RMRW32tEL*x_>J@eMVT4=xHt)1R|Vv~aS9PolP1$vgH zKZL|{XA<^8$!z9N=3_nC=%pxtz~ZtY6hL65*boXJa+Xj4QEdqY5H*%i08wiR1rT+X zPyo@-5(?~a2Z#RFK>q@daMB;V#2mF~PDbT(o6O}OI;JLeR4Ce*ezZx?=2?&@&fuEJn7 zQ1EVGZ+9+qfU*zZ4BmI8ystB*Io+;@)#aM2jSYvIj-4xY=o)1ESCT`zn8VG{*A+<%Cj`f&dtX3*^Z!vTy*|41Cl_aBDe1D*1Tpl4-- zc8<1gw3I!4y$%~i%^I^S+%=_O2M2|`*^gmzX(pk~|0hJmE@_*dWt%GbVALlv`v+#hi`tX$X^7jBG`XayVN*sj`hW8C&glSsM;^AinvGJ!<5#+6=rp|}K_ z!E}z$?58?0cGyp5Kb5SRu)S9LfP64GXE65}j|HXH9CAHTl7Y6K%v!`ZlIRxIC4)uc z{uxiSj_iGbFQu^6e?bhT$eQ#R^5xq9F<-2OscOHpJu%EHY)F;o)n16o(0!Kta1em} zFks(JepB8a{E#b>%4v_8C)vAKO089nh#gYbdrOf!epW6Riy>y*-c2;KfYl*(|0bnjJ$hmfpoepwn9lv?2?sH}YN zNi3IIzHh?OmrFVmG)KXf%~C2oEvY11aC@ZQuz6wX*>BqzR;_0Q=X?AwwvAfJWZmSc zfKkmrODKRCWC;ZjgDs%|Vu&RaKn%5n0*GOjPyjL95(*$jSV95BN|sOnv9cu;M8 zt%HJyLz{I_5OEk~9TX7uDwa?H;aWlg#HyB10MTv<1(Coztb+o47A&CvqSF!zAVyn4 zfelO7kRGvP1!I3}Gb*_m8MSZ-a(IK;A!d%`UUr#^Cw6&mQgTiRE%(*MXGI0n@zx3* z*`B%%H{wG`?>^&Us^A9G>z@3_s0 z&!4H=vL|&0jZ}MaPX>}m`zwB`JD82$3&0|lwB*6A)V*PXU8(Pt4Zpm7a4~JS>`5It z#g4K5-}a=+y2ES8c|CF#+hop7$DfBI5u@|HsD#D0!A!u+Gt`AWD0c><_LPpYyXNv0 z9QWkenx@*0?TVuaPo@=8T}R-OPh_%-x(-(~Uw$~8C85BRm3cFd!HLOA<@vr|#ZJq4 zm*Jjm-l;a5Ic@g1YvSHQULgy_O{&5oryoP;s$Oco2%%HHX?I^qvapD089Ro!-XL*x zmmXI>Mt@CsT}Kj=XWh!%6O^(-?JM2n7EeH`_TumKdZ=Dc(rZz!{@dh?tOPQBY8Hxh z%xtociZ{kqJOvPZotfrP0mN8KD1aDe2?Y@2EujEnbxSBHCAFsY(@4#tM!wjw^t2Ak zRm1%9q85~^{m8$V)+-hy7nsIQb#>vye04stsO#4X=gSWVHzpP2lS@*a zWm#YpzQ`zY;f~aN3A)+cpSMto%8OM^q*$dhrZ8!|WUcl_iI;S#ROd@5o#s45K~h%Q z&5|fKoJsADA;FSl4uk;QAb`Ldtp*nEa>B-Vu zdoYi4V(jF6l`Nc7lZvsM+p2PcZSj;g?=$XimOLDb49jfuDy4F&sAcmQB2}IS}dvuu9(MkccKZ?gE*N-+?0w_Xi5d@74t{eSh(}( zs`i*U*+Q48Wa*nT`nnI!C(R*!-SJV~d#3%xQbR^e>H$cRzP#T#;s0^a1Xy-a$qt4j+NA-$;{UL#M~$Ed6q(N-`$rLETEc!bOH8 z=SA^(gTBwIL`aoPWlnp7(ygT#4w=b5WP+W^X1%Vlrm;5Ab=W&mN*Rr^q)pSD>0I8diQdM?9thAV9*yn-hvMe=0l-uZ-o$7n|8?{PP(seyJ;c@7Nn*Cg7?XN+re zLppeBBuW>x_;`60`y@A;TJKrooj31l=GMrB#|b{LGjnKcoxhkokom+Blr5tpF$g7z z!;rnukSg>y2{V+FA>9cS8EmQ2IZd#glLCl|mQVn(h9wk0OtORmh{={v05Qc93Lw_B zgaU}QETI5mZA&PCSjQ3yAl9{n0*I-WPyjK_5(*&JvxEYO^(~>G)Yc_pUy^3GNn7`4 ziZDPnXv=UoVbxR)RAB7>#&d6yXcpy1yd{IKB54SrPc9}NDh;A;(j zLhzrsB<3<^br>?YuKJ1fKvVnj*xFE5{_kI@!1TN+Q5m7>!pmo!XF2Y(rbO6+moc2?bR4Un9HBZMa7ATpcz?>8u; zcTq-{xh@gRucAg{57A(MHsSd1Q$hUX0(xbcfn!THWZXXrLNB4AHKw;khQO%cOh$51 zqk>G<|4hcn2YJT(1ypN|?m5g2B-}=>(HCB1Ul>^3i->YGqJ&Ee)=t~+?z8I(aXHU7 zcK7ncxx!kEREiG~PZk|qv*>UmlQnkD0o5$ovmM-)Ejhd-OAfl`FoK%N_;%T89=^Xc z&0U(WeYMKYllRV=Vzn%TCcTvWFdd%J-=vr0H_V4wk_FK;-JO)HFb!)m^e!BIxkPOQ zN`?l@3>1tC%M3q|R0+3%*G6BoSh7e;3kF2x)cI28t+}w2d7<4MI?=h3ypM{>7NdJ4_LrCu?UMUQ2?>OB@{r+ zwuAzR11zBcVvZ#gKpbcZ1rP^WLIK3VmQY}GqJfFMeaHv-S3Dk>7v6%u1#)p+8Y+WU z4N-fDIzm(kQD=xohiFWQRs%_WlliU=e(#sGHaeYrJD z{J5)dvB5qdUY9f2#mgUT>+#DU?0E6JeA3QYfnZNs{$L+kfnXOef3VFbEPo46|nh%ASS50VtmfoqkwAfb;wsNAryZpg6v@S#1NTRNQ zw3UO6NE-=u1*AQC;4-9*w2@#}Kw59`GNg@^gocywTV79lmIR%fVpmpK zTea#+;X5{#AbRzUk+y1Pk9U;yhFh+@`~h|K70{U@D+P3yJkqPTexR>_E^4b3P^8@%Q9+V?4uC<^u&P$cd9lt`4|`V1(N_7wwKO4@%C3&Wi&DbiQk zAKh1yJyuHlWd^jkuYgz;w=u08P$cd9l<2tlG6IUEeV-EXZQQp+k+iQE&{ER=AA5!2 zj{hCdq)W1BCTsAp!t0TBuAq34k#i~B<=f@=%@WE1r(7e zlJB=;Rq zB<=f@=$_m%0*a)4pAyAumJv`S?JEWpr2Xhj`8cO>N*L~bk|KSzIbL5$wju%D)K@@5 z*IIsw-v7S}XzVGxbZMnw!L(&a6e$f}Ujco*?lJ<36!aJWuL2rzY9CQMdB^3K=(rvM zF$L7?BW*>(dw)5?TeSW%6ZG8oF@P^BfC{h^Grj*|noX8pzE#gyc6@K!d>P?I>cBxg!Ydn-_uF#$1A4r#fX>)z`2%V_vpj}n z60Nn(@&|NKUjcov?eYiobzcEJx&877w82?@MD6Rfmp`CK`wFOT#_|XBZC?S!XD)w0 zlg{oVYNyXy{(vs-E1)BGS^j{Q^cB#xyDfh}hn>?$)Xv#s839Gws@8MM1B$j)Vzh4p zGyF~7IkK1_YY=NNjLjBm?%=(1};+@3eh4&jS)g5cF9saj+`#UZ*9sStydNPPzu)4Ov?J3-Leu}YA zXGs$VUxGtYdF)hic+i|Pinc-EAPXr~s5;7t>Vv15b4F#IX@gk?OZ=vm$FJJIl=Lx6 z*Gr9M-tWefV^sBZ6R9Y;%)iwx9w~sh%@PVAZnuO2h&wEy0OC$dD1f-j5(*&hwuAzR zdn};<;$BNAfVj^R3Lx$mg5L+Mg97IAlkBFC#U3P&2A_(?rkH-MJ5Tjx9d{!6*yx@n zDV_HB-xPDe=yVCGil3rGJ6yfCI__Gq=*}%^I+4T=oCo?7)p?NPZh$jkaEiB>6h4NZ zzzp7Qj(ZZt$k>h%A%oRkWRiX2Bl%@bJ-^^VoKOf!k@Jt?f5AiC*XYihl=}q4JDI?~ zK_=F}#q7C}=U3+WhbuhqER+DE&)YparRQZ0kWG#;_B-X>ttEb1>NP6W{#HcI6dEaW z@~){%d6&vs7_2{y-WCL;u*usH*w|YTvo@NEbxttx7+sY0?}d^A?c*Hxbh4v(2AA;W zOu5<05xq(8EXgbugwGakJ;R*?cBk{Q_WJ`x?`jn9F#R%*aNDuI6mL&-);RG&o^IxL zoc6dW>Fo>bNx4vkl>ZcQZg+;qSp0E!k?<%#Cf>SUZQ2V$bG#!78G9@5@ql}-h%_+e z|A!mzJh@>Lc;@`z#s(X27aLtONW%f7cVH6gX_SPE=ko}w&8URXVyqHupHI;?>;_Z% z*_}Ig7E&4G6K0S9i)EX$Y#z77#&2%Y_KH#j9aVRauSWEprnuS+^qY`U>pWSk>t0*% zEB`_(kYW~3w$4t(r&Ne-^taVNKz|4NC+hDY|5E)O?BA)sL;P3dcj3d5rxI_b_tDJ8{jXBb(3mof0XhCQxVmFPx@51chU{JpTNoYyZE5H(xb22__mpVt0SdGa z9_emO8{=f`YbzPbkt!R=Ss$CWeaTLp=<1==jvlMY0?7`Ot~MX8lc$vfG4SJ=Hck+ROtg1}&0 zs$)3Y2sGQo7GeYYZPF@}#@O4BC|Yxduah~(9-f%oDP@ko#)TNxNxGLvDwo-}I5yV# z7n3)1)|ZMiJ;T#d7SZGEQULLcB@{qBYY7Dq&sjnN#PgO=0P%t)6hORa2?Y=@SwaEC z%a%|8@rorBK)h-R1rV=ULIK3>(P3>3|~@r{545W)0)lVZex2lWg!7W%m@i~ED13?BtA66{E%3QH7R_Y9unI^ zOge>2v08RIHP;lstwj~XarZ(7?*oJ93jWC8IfDNVuAU@n%0=vKr*bXJeC!~3>%_y$?szfRUzugF37ItH^v~ z;m&a{r;K@5aPgCi=otSXMJ`d?im+@ESi@i~0+R*PSIB|rDA~&!*Ayz_t!;emBhmho)>%T3vSlI2b9R7V-nsY)uJJdH8ZIf-p1n3ap#wjo5~%V|J-c=j(bGZ zvB18pq%p^c#eWatRi4oZvMnu_^A!2u~;_rnI^Mu_1LyMmCkAQZEg97U& z8eRKXVSvdcBlPHt$OAF=RUUR~_i}H|7YE*q{rT&u0PLlueUTPJTMJ{sG#4;yU1II8 zGK@Cy8!sYHcU;LZ_ezB8+%zRGk=k8Y$NYL%A$MIY(dyjQ6x zOp0W%gfFQRgs&M*VDhUO-HE#-j=HD3{V6+5V~6{fK>1I0qW0^q*U?-l=t%xrJubPdlm_t5aSBD2*vjewZD=oBIVvlh-&DP@?6y zr$(MEtYbX7U&`s_yU2(t(UE66+^#yfvh5SZ?hu_HGkuU)(u4tsVETZDi!yik?@7b^ zxiD4^8ZI-ZFef(jw`LvznPV4T7;Cca)^E6fu2lCw<>A13F`d8(NZ8(JTY)7dw=5sO zxaB%l3Ccp_W#Mxa+~aVQGx6ltTZ02ev8+b>nJX|Tb+?7287Xxz#ZKZ(LT$_sc^c+z zx6K9xD>o<6UCFBmDAr+zUuR$6dsgvvm?$_uQSh zlliwBd7?1RanIqtGw;74QHe}{8HbkfLsQv!#=8m6-pyP(>dNnV^)1j-jxs0qa6ZCO zVP%uX*L*8B$4k1U}8;$urFfcV4`3LrkUgaU}q zETI76b4w_I_`4+(K>WiJ3Lw6)gaU{!EujG7D@!QQHt;R-?S*MV|xC7}sq0fESYMKXB1 z4o}|4245}sQ-kGU?{kB%5&RE>uN3^H!SYJ)Yr$!c!>A;<8=xAJ^-0r8*VLz$49Jq5 zdA1-l7xzLI?_b8_jmz}-t?_vCGCh80Jl?uYj~qrOGTy#SkDRoH{kCY!$?;h!ihRnE zionPCsC=R!%^0?0fS6og)R1+sTPwXy9?LNDk)0Q7ARo|MNE$p`*{Mlcjy>ZAPIZMRsX^lcGY|7~Se zK+*or5(*%`w}b+SA1t8&;zvs;fcVK03Lt*AgaU~FSV95BFP2aMvBVMzApUC!1=`m% zlm6@wW^8_!B-GtpIKPIJ_3i=Euinc~VHC%a!iD3ICVw?jC*`lhRXd*IeR!Mar2O+> zI0pyM(sC|o`r6KVYZGa!A_MwZW3@vg_$oe`Ey|>+pr^swXY+{-`2u3OA{MLVubID& zAx;XTF0b)KM?KJeT~J2Q8=#o+>y**3n7ZkBSN&(Wt zu>;8*P)3p|eq|^*P)Cuv-t|x7_8M_BCTNqBujU>z@OaYE)|B(OPX)wI@gl2yBNUm|T!o=+m7;c~tL~_Na(#AMKo(RDsQ-TkxoigN@~pUT^JS>U;sY zprVXQC7Qhh7}Peq2XYNK|IW}oZe{?DDK2+k%CY_SS)cg5F7aPeW;;@euHQ14aonen ztFtaOU+!8p=#FN?ViIUA8T#B$AnqQdNOe5zJ|H1Zi3d`c+eqtCl?-MV6;MeXODKSd zTS5Uu!V(IkZA`^Br(C|F_4q9juiF2b2->49BUSqyT+6EV1SW{#Y`y5Dr_fR7N>@>j zOf5eEXoi>a>A&~`l7*W7p|C;MDz$*zAbo?v**PZdGW=rJA?@D6FAYd3)ZtfSP%%?H$DnYEqdwY8$vo<>vkUu#~D1fN8gaU{fODKS-wS)qQI!h>k=w}H95dAHo zp!~bzLt?An9RkX~JMuhM@w+1vyPEjDsb%P69vir%iaC?E!dS=sRDxU8f0X2LTydjX zM(nhym3z|-yv;_*d4<8|5nXdDaJt|>ctlnx`#wDT_Ia)o|no2ai_%SRV$zD_vA$eL7(bu^lmr@dJXGqx8WlEypW>?fF% z(b6Yay{(1{sFw|vPyo?r2?Y=XETI6R$r1{5T-J}gdyBjazIuB0@bcw@X#Sm)m0+;3 za+-4cBkAn8zes9t%5(?Q>M}VgBlN`&N^HRYF1oPzk@}Ms|Pmy_YI}ZQh2Q$YMX@{F_Dk>mZTP&dfqSX=#G@Z94axAAV zEuD#QlBhavTCZ7&_7+5&MbC8fi{VZYRdkq2Ukp@2Dx&;bYpq`23m`l=ZM4(zWmufT-H@KCIv_Z zZ2cvi)7ZzqGNZQkVw{mo&JjzPBa9`?rmXiF^NjJ}fRVI(6yqnfhx%s9OLH%?$dZs< zl4+$jVu;O41!V3}ODKRCW(frl!!4lzVuU3WK&)g51rRG+LIK1`ODKS7vxEYOQI=2u zv5F-WK)9Ar0I{ki6hO3FLIFgFB@{puETI5`30bqEt^k5^W(Wlk6jVbffS}|VLIK2B zODKRCX9)!m<1L{8Vs%R>fS6zj1rQT0p#WkHODKStWC;ZjlP#e@+msLaYVBTjJ)K2C z4chMEQp1|0h7ucHM=Y%wE=Fr5R%ECzlQ=En2OR>z0|lcCAb7A~GzSC^6^sUe;NgN< z>leI|V3r&Nj}*)_x8PBNna~#O3TBQ`aJyjU5d{|nGh--tv|#221+ONUSwO+#1T)_! zcy+N9ZV|Y- zkAyBP`N&~-Ec8U55|h5zXY(jSsRj;nntT;a3gqSwaEC+LlltYc;PCzxS41 z*L#lBwkJ;=cSo+?24rA#oMwkx;^??D^g2^Ku8&9CyEgqP$g^Hus=otHrHosF-t!Cz zQ?%zxy=Q3*^S}eW##`&y#85!$tZNAc5K}Fo0AiXY6hN$J2?eC3%w^QmN58*9X{w{x zT{Wq8m!#r-Jx8$*5_nXdLi^t^~s=tNOrKexDNq@t%pwD*GTIu;X3Y~dfkg_ z#v_(8U9R&Q-`V`YEVpWkghL#E;-91Wk!{Feb(YZ#Q{~b5b3RW*=`c@z+WGVSdC-^r z718-~JEr{k=U(|i`7m9i0uq;!We5e5wn@?9i~X%~+J3-is2xN0?3?Cjyk~RuKEhk1 zymrr*)Dd@2Y}45Sdb0>`zX!_3eEx@J39K%jBpBmZ$;gN3?T40uby zhw~->S>E8!Zx=aOi1Mb=Bt~A;y&IFO<`U^>$`jZ3c}mvyEiH*E)h3c!{>}K&DGw$~w2qY}@PjH3^R6Z# zTl_DTXw^iGoVqAN$$YLUCnv@77sO`C{D}Q-+^*H+aC7seZ7nUAE|hE+#SgxoO<7R@ z!H2OS6hLfl2?Y>*7aAW5c&B``RZ~h(a;)^tHlcET8zc4UNQ#H!&eQ9!^?Ep0Z;kT0 zxA;chQpvkFF;W$q{t_veeSL{xr`mjp$s5(Mu$*+(qm)X5u0Wmr6=C}4aH&vdzx}pX zo!!!=p#n|Aq}pTusB#*9LmOP7%^E0)vQSd&-_l5zWvTCQOgrME1(*aSl%ZQ+nJhVanFU3h7ay-QLDVUjgZ{ttAvdY-b4t+OM%L z9Q&kl`s7)?u24pXNE!K^q)a0oB4uRp?}A!&iYDG^T*H+!uK~Zd?EEL1Rhwq5 zRGwDLJ?Ax*2mQmiRG9O+_ugJ*X9t@S3P_qAEup}aoedb1e@fao?pee|Tm1rq>Hg+^ zcoojYCuo6bXwT{4LGDW)s#OcHCK$#u-%;yM=E_+G9AM&JAkUg@3PL8`Dg1bA3PwrX zbT&C=aX9o6Zj}3^H2RE&vXd?+!5I)`7d7NKg#9V_=BY9a=H_W`hP90THSihn&v%i> zH%86`*N@=Ly$O?>=Wz6%7q2xPWAZiL3v&OW+}Gx7y_WzjpIq|uXA6KH|$GS+I;GDI#?Js z`Vu`TqM={DpOJHbB#^EF7-rfwO$(pbETZ=!LldR!a{t3Sw_nY#2 z5x;dp@=y5JxSz~#KW;29Zt|}aPX6q7qpW4^2|rWHtoJtJ_W%(8?6h@CB=0Ad$QD1g}25(*%8vxEYO z-7TR2Vh>9wfY{R#3Lt)E2?Y>)SwaEC-j+}Rv5zGbKF^e<6n_++{r$Owv&eS*NST~z=JI8I?M}+{=Tb)9MLgeG?VrLk zcFkQV@Au3ZoA$Qaf1;=3xAb`OTGeVL%tJz#)?hXr6*t0`^>6Prd@+ZPGD-Nl z0BYdRi9h#wuJnIb@?&IS5=FhMpBJD-vqYTf*d7gip=@Hg7+T@Rylz_Pwp-Rr1StZ6&MZLB}nH zEx9DAEWYT1OZhZ5@U>$o0n-iPbF$@FZ`3)Ojn-i{&yl4!hi`Al=+2mocbJ6uV(?yZ zC*VK#_BKzvy%cy8ck*6FO%g@-WiF;@NatTF3ZZ~n6r^y3QhG=BC>&W^I6fw|v~Yxe z+d6ATMPe&u#gqz;Mhi;Cz@St}IWeVTa8N3woR~r}bSe3M1?|W`G~Y|9>$u1k5d40nTY zyBK_<;N8?c>Fr^-TZQ|T!M6+E+u%C|?`!bgg7-K0Ucm<#e81oW4SrDY!3IAp_z=OI z3*Z~>ufiP$HujoNCYCA97fF9n@(=T&JrUMw-Js1j>d#5vU`cNMURrRG4Do-$qgMN+ zG?gCTn;b#7(;cEWcmY=(rJ1U(`1!M=A$!ujP$3C6b+Sa z2Y$cMG}BEGDgS$dMa_e8SWbte63i%cJT`_v$0OsugM^)RnPHuyvzcMLk4_BRy`w5~ zNuVMjkBxgVRYWB^*Z!8>2j0lpL)CYY+`%dADZha`$U$Y~2qBS7#&9V1$=OZ8+A8z^ z;aT=_yymK$rl}i`bQY>PEeF?k7_~tTG&6d7P1SZD34y%7B3RREgcI!9725(GyyL4d zz1+n*SaiGjsqSt}E!dn#+^xA3QYrUc*mtNTBS5auS!Mc7;eF@ z3*On_HwEu%@Y{mfVT2#r(Z$@U9>2GzasEi0_cHhsuuQ`*VW}f9oZ;07!9R$LiC08fF*?iHK~%NTSMQfB z&HLhqC7EUzK{RRBGgy;m1A{ebHd0)cG@BUb&!X~sn;Eh~q_!|Fe=qaCl_4vn4%?e0 zzbd3CA9CXI1p&GL;^OUKh_3`s2eT@Y@%{_2Yao&c!@?dtm}r#s5LQ@AQzO!mKaWox z^hu=4CK|s{7xr(K#kYrn6o!NS?v@aSIBr=I^z>KO`Af!S8?t8i0^jmXHaM)T=(?-j zy G%I*a|0><+Oe;+RS>hRl_mdgICqOQoF{bv3D$FXQyotQfmh7{oEJ%Uw zy}I`-PC8al<+c@A-TP6(T>Bo%SGYSSs;g8*TFIX+Uv|BMq&?0itpbSSEulct+N|^a zt8!Ws>Qd7>MN&C#f~!a2j?Rjjbv|+Tn5qfqK=&dBOPMb|0jE;ZtiYPV`4Z+Mk~F0c z@IKc0PO#BeKzf{L2?Y=*SwaECZ!Dnz;3CQExeN^8Y`DU2R4P(ZX_cY@#S&&>+ zfdFG5iXd;1@8u(urP-9Xpd_(`4VIy`sj_bh?Y`Xpc(WS+g?*gVf|KnA z&ffu+q}G*P48|ynxVU?w6&EgainP9L5vAii4gtz!^uH_LBg&_tw6Gm}@sd-@Uour* z@;4mY7K)4eD|tyWk|e%t6Xi=z_KEiWlF+&Wo0Lx#@gCz++N4ZF5v^N`$Vd6JbxY=z z?!eEtQeSie`+DBU$?X-fbYNVGnUme%3P%LMaqCG*$8F>qt`U^)6lLpr9j+C3 zii$(a`1VvbL3nJE&3RkNMfZy~R$`6uo+$^*rqNuwz|o|u@PKH#m@#dA?7~0Aa>y%Z zMXR36!Or}XDau%}a*F?=$aTq`;o7fo=AR;Nt$g50IUKgP;|=1sSVNKR5+~!qd}ma} z>IwG|Nu$8#7fWdy@g>A0s??8!oY5Nlx73ecpUSiDI7z9R;AT8G?KIaPkh1=}%^-0^s-gAHREAIRg^>##`gO^>x+esm-{}0~<{in! zU+I2k@O0f89PV2nbQz%gJzDGB)NckWw*#^I_JT4k{@?VsRrXd);q`&iz(9Yc z2Y5oi619_&DFOZNll=HzWQ!+~?r?cKQ<x~RcFqbOV?i2xFp`*Y-CHu z#uB!C$Lp!4gW}#43W}Km%V0u`n+}d?5;EtgO^O5`)FY9i{QzS{BM}^j>aByHz)A8$ zzA5EjaQd{9Xb;pF`2LqN94P={iZ77#Yis7~yTw08acfdq%|)ejl`Tlg_BvVmcfXJn zq6;{Uf~9t!6hNGA2?Y>mSV95BnU+uhah4?%K%8v}1rX<0LIK3NmQVn3o+T7OoNoyQ zrtUpNn*1nb0sTyp!5zYd%v+0}YS~*UJ1!keE)*bA?wVXt*yL)rf?*P4A$baggodM9j(Cf8rFhhGgyT+%z9!U~SA!A{ zk^_F?!5(dO72|A&)t~m`N=rr8U1!!lWo#q+T7Dv~c8aARFN{=}X8)GalHo1==m%MI zvK6USPyQz3IV_BL$o$LC{cX+4C6dLprNd1(d+YF<_SWT!xjXUNgP1M8M`?; zt;ET8pq-dB(QaI0b062jeWZ3uwSm7Xqx?UPWR5N-ti5XV+}Ut?;UYiFJU`C z3Cz8XWKPGu_3;{g$I4^m9irtDc}F_!@hO>m$Myv~#_sM{m6p09ZNUxv{w(Fge8ZP= zndL5b6tP*F9gcR~a-tXK0%Sf;epk%s2K#%Nv_UDDC&ON{6E)SqmPu_!H&VaWcUlI-O>WksA|r)(&h%%-c{L6egzGQp5rhG`J7S!etiIn-22`*dee zmsDn_xl5{W=`-pATL~3VD=)N!0*FPHPylg}B@{@#O~no*Zoim%JB^t5r$h?F^a`7Q zL`jd>t&d;FU01L2oa1iD)%zINo?BD?N{D)RYPdDUj-_YJ=(R89Vk@EoWWK}_3Lq}E zgaU})TS9@26Pt3SE!q^ReCMH3$*&YAQG_A}n`=C_)T=z_xLb4eCRK>jI70O0kd)<# z(`8mb1xS3kB@~$Ua}V<2zeeWmd8@y7MCQ#Z#lm;oom_~AnGxgS`3U3bvL3l-v40|;mna@ zCdKZmM;r!N^6#+2dZoi3Z5$L3scS5u0ODFpDA2LzMTEuoa;3S2PLoypsF?e4)yaOM zH5+UjajcC51|Vh>H)5<>lWs`JKDAcq;&kG?A(cUOWfR=;cCT7Or`X56lkql#wsA(k z*YP)yNT0I@JzMW@*yE4yrN?ufjgbPP_$Ny!fcUc|6hK^W2?Y>0SV95BUo4>j;zmm- zfVjyL3LtK_gaU|LETI76R!b;=xXls@q<`jXIOde{f`ZaTN{1F(7+(2jkvwL_e)2?m zbH^>>LoB|?uULH9R>ClMfpwRQdBpvahh^N6^lz5iTe-#aNIVyxG4qp05PBwBIeO9WqUhu9Fv+ z`D8Iq%BV_*1{&t-geeA6$|pqq>CmNqJfB{kIm*RjCDk1FAfn(ekN|?Dkn^e0tA*~& zpd8C@2R*OcFF4J9exC|hl3Ks?jV~^0c(tZ@j7b^^*W-*b*$RA!q2>zZ8?1?Zn8BLJ zY(19QVol^D4L%zG4b}D4(Fy!{;*|D&ZG0RfK5FV~tks;_Kn=e(+^4g^csx#Cy%5ZV zT%;}1)XsY7ul1N3WCpj+@oykmd^tZdUsq~)qVoXrDK_$F=K<_DGllwgTc{O4++hg? zr9LBW+SQYg(0?z?2dBGIpCOZ+6f*IPT{nr-B$%Fk#>htzTMpw{o<8GFE0zM}yvq^_ zAnvw=0*HGop}_Xn2@{V~B_8`DfgPz<>aQtc5|6Vr9`XdXxAl4^S1(Z^PG?D+_H!!4 zslpiKUMrviB)-oQ3Lx&cgaU2<52gK2nmC+~6#o5@IP7fuxJcOv#!(ll-13C?DdP;s zy$C3CO|o^2(XQi)o6#i_%RoO!L}nZtiHP(&L0`7ZF1`A)2dtzD5dA?*D1dm#5(*$5 zwuAzRM=YU$_eq|0mE!w*B=n~|R?4&eD#SM!V_lA4$Nhs|?)&fGEAEe4xfKwR$1I`1)S)>+JOYs&_fNdjzakQwt;_0sFzymx z-Vb!_j(dGisl}}%b+ucaI)mpK?S zi7&62#>#PT=_#|gm1N$5pnN%La=B!F!iuN>nV+2X__l8euUFJ5H?6-SS`Yw2t?eis|8@w?Pujo)PkKO!&B)#sv}@D<{e z_O9foHp6DgOa-~6<&$@rGN}uq8zGV}2OO6cL=i07pT0!m%U^~5^aWd36i|9zw1k4C z)T<{YDHeoD;dGbRtDrv>Umo*6)T^g~Wi6PvmFm^Q5`}opa@MPttcVJb`DIHefOy3c z3VQZK&x`amPuPrP)~7uTS5WEJC;xYvDgv{Ai6D~0ODOsD1dm+5(*&R zw}b+Szga>7#0Qp80P&$E6hM4r2?Y=zTS5WECzenE@u?*gKzwEi1rVQGLIK3zEujG7 zAC^!6@r5N6KzwNl1rT3ZLIK3rmQVokPfI9(_?IOVK+s2;iE9NA-&#Te#J??}0OC7K zD1i9h5(*&bY)zmFAbzxj0*Ie1p#b7%ODK>!o{6oNWHGJOM?{D7oic$!yHhKsu!m6G z=_20c$8q1+>j!%MNUxvh^)tQxU9Vqob#G$6wALILk#IyUbydP@NM^kxVVl{F7Fz24 zX~vtz)}cDwYgiZu`~u z(_!Njl%U`SMY%$Ko=}EBx$V4biuvemB~<@M-V`oXto@`eRqzRErl?!|GnHwDxq~^( zhJ1bAzZS~<8o6Z=OzUmr2xH=LfU-hCi=TNoGrdc;#%x>svx$Tyh9 zC1(jXx=MaVJVig!&|`6~8v)TTwqlG#e(!q3bn^YRqD?tQ#Hk|xa zQ$qe5koHsf349j^lG^l@-;mPY0E7Q6xY^+E1-F75*r7wlvg>NN+%X#zZM zjoww7yp1M#&zEwWaYsu;u|AS;_*IxZ}<|w`WYD_ic?P=!N@}KG&~v2 zB(^^^;FlSRdkLtJ$=BLEs5PB?Q^Np9n*@JP9?B1}GZ)iVr*!d;!CPztem~|{)^GXr z1et%7d>=x^6XvOuH<2n6&7Dw1e)Z?Hb{Ls@ zTZh_0ol%&VmrHwhjuL~|$iUv1kzZ|83dJ4ebw*pD5AJ4^0p0u#QpbbnL=^$F=oB_AV(4@4)) ze+&=Cd#M%U>q+1C$ui#dvwhp!%lo!d+ms)LMJ7e*QN}G$Iw>Dftn#AfL|QW87{z3Qgd~~pTOmsIL`6aEnvGF=5Zs6mWN)Ve6Nm!{9|7d zc?bKmUzT4qe5Jr>r+MBh!VL9q(BENM|8@Z?z3exL$1X&!YRafRtK=)5OeNfQQqgh$ z$xWlVF^7V54oT=huycTW3vIDAT$^SUYdofIckjd!s_zd1aVq1wigo;Td@^R3N)nfp z$hu?ftquwiZDqQ1WJEfDjo0`zUm}-hUypW)W=vC;tV^WoQgvxscb9aj&33MvDXbL< zAZ$Zh--twSrrxw>BzBhzF4fvdKb47n`CV)^TTi7v$UoE2nKbT*HwV?xuve%RIKN_h zXxfS1&uQzSmgFk7akSdf>YL}9DmU!@^f%cjgltl8PvQ3|DU+3kOroFCkD^7W&HUIo z5tJ5nq-pO9sdx(~Jn8XH)B%S4WxfYQ64*b4cN=X$9gI2dfJne8_a0gU&YtWicFSUQ z75lurbQBUva?_hcHdg4Vb`n3*!_+0}m>k3tKegtkpZQ6fpRD<*<_8O|Jb^`4z5b%t zB+_Akl&iNUUSw2eawZHI?VR3^Nzd-MaeX)v#AJfVb!V$t?p_VId4cX|EOth0gI8kN zmnkliC(jXgZR2HVa5u{X!_T0F7>%N1+e;#x1l@d*3zwtOqxAT~yHA{(^} z^XEgS+~Lxy7N3!aO_1I_2H(q%cb~!c3x2?0d5`yy!4C_5#NbB-KW6Y>1wU@^6M~;K z_$I+O8+?o4Te)EJcX%uli*-z3 z{2Rk2GHt}_@;v5C80`r3RMQ@f!JO#fjf3(3NO6le`nPcJ%D7BaTEqu>vi==H28-q# zq)Q{Yi3Z#x0SolrB1}7^s(L#zN%OR;4YM;}4BklaK?ZALu_;8t-AwpH4c-D=lB{URt;)!` zhTNu%JVHs6xChJok21b?kg!>=m-kFBd!h@{H1O`xKzjsQ#v4cPKIKx1AXY`APfYop za%J!BJSyyYKhxaf>qRm~1{c4W?96yA1gNV!ol@Y^e%m`}a5qQz(eR>E^ev-7>8r=% z!Q{BkCi-V{KQvP$N?64aTgIZV-Q7BB$v`<7@-tlh5sMjfMCbMGw?8t+F!Z8-aj+<1 z3n%}C$8byd?f);-s0pV_S{%pURG_pZ&dSF7=&A0PNZKWBM{u%~6y{R1*T9`NdkU!4 zjh0XVF~AZEAet8lUCshEkZmQD-xhTeZ8ac+5+Cw-P!AB8!;g zVN8yJq>QR9bFj3`2&=}jwq<(ul3(O`ZN&=fv5e^bo5B=~bTk$h;+)U+&=f}TEh@NJ z8a5}n@yfe+N9Xa~?CjV8^bU$N=;v!t&q`3?R<)RvNs629F_8K0Ig&J{Y=u`8gkth% z=c7aqd1G8ff zgV}=Wcf+R`JMN5k8(v$MrzuxxY#|oZ9#@~H1 zhjGfRjd#Cf((hM^-m)EDw1}k=Fv^gkU#ezh$bVVI4BihdC6#sEz5hsMooAJ%X$E2}7u!+Dc~=u0P?J zvV};iU$N`1z4R-FTUiw#{0K`ZfLO^A3LsXtgaU|>mQWChZ=iELA6flZml5AUALeL{ z-7$KV=TKGD>v3GY$ra+8e2@6vapdyGx6R6`0O3bjLIK1omQbMW9kYR|iyUMV8e>S~ zug#ln4sKRSCq{gsSEkpKMShm1KC05QoD3bZaHW0%q}*O$_pMEny8XZ3J&M)fRoT+8%te~%B*x{+Vex?$AG zph@p~Y2B#)?W*tF;+R~_yi%c$8RV6o!g@MjNou2#{;jwK`nMODq>*sF;|#uB z@Ckx5-bse~gHXRUSQDHfk_?MA!A~_<6Z~|8ug8B+UEDLpDeawYeEdax^r?$`uJL%2 zyqcB5%DT9YB)psy86F>FbaAtPBTru*zz||7y0|A%gyheT6(YL0lWiGSK%t*v2?Y>q zT0%kChKg=(*yh}Z-2ODgsN9AIx!;1A2W( zua9u`SU&6(-ybEu$Hgngw?ZGko|RPr!mn=$1rQrpLIK2vmQVn(ktGypd{ePD%148K z2Rwa!?9yu z9}+8K{tgH5_3sX&iC~SmFcL*AUKW1Zc5+Cg?EOWc9X{mo9|&unKj$N9z)Dh0qFVb!%2vXS2GoThHc|Phq2}^0{qjQFfq$h zwmY)E`vUHb(ss<^g~gu{qs_mAz~kP36yFC<1o%mCQZXw6zu=6eEoOa|fcUhyiy!a5 zT$t^T#q|fHF*(l>T;<03>3oqLv+Vdjo^iWbx1s;gUGlFIwC<9x?Oxx8Jv<0oj4_k~ zPiWv?A`f6>jwPa9i5VqgmJ%~d#34%T zEX3;?=&?%dS|ZLD7eABh7+u>DHJU?pak9$80;IVEBT zB@QYP2Pol{!Z==uLrcV^N)#>8zFBB@mhJnRi0$+GIj+ttu`Cz|%UqJy9^-ttcaxK)GU+*8Jr)><~ z&uF!t<6~!D;P@qup-;K-uBHsrz8xO=^qWth0Nl>Kc_xwM@Y79XNRy^~xbO0i?4=(_ z6xs*+r;BKmDBP2tJnYgNMZ_7X!b zviq%$8KtdBcT>>vasN8P(sfkxgmvbFSB@*nE1WJk@=(**A@x~3sar;_0ePUC zmEzUG>+|VGZyWp}V$DB-_A5W`l?;;|g>W zYKyy(cx_GI41U_3VvdBD^FrSv9Tv zF~T*gaBXDmOpz7Wo#i*wtHKvM3C}od3xNP2qL41DRabv&VYPkF1j{VvigtC zRL*q2Y6Vjxh_&|y{FS9cp4E2gM~Q4KJ0_MokLMLnh^5X4J6J!z_@meW@gep~w&1r_ z+7=TV?3Kjb|4`%@ElfwoPBCCoSS9K2MiKT;-oivw0SxSleXAl*7d*Y#?QxI(fv zor?X2a0g1b1sWS^otwt~zlB}gh;+elvb;gebLP{TtnPc(Eziabr`hiOad)n8 z`lpmL3wI*OW*g+qJsfA^*kT=jD0k$2g)htAw{TX}`=WA3yuVh?EZiCItv2*6zA6g~ z?Dw>GM{2%YrT>)Qvi@`E*S1#- z9Bu!pKBN8T{-IC5^>_;7mE4mw=CTb z58oI#+H_N&(R6z_^y$wL*<$|^*~FX5w*S&(TT^6vE?&SM(&t2#;l)ZkX*x#Jj~NHk zmz6rL$gpayOH_$Qbn>dGYeOY|eh|OwBz}pm8{}uc+>{M&QuD>3Y=o0aswRgFX}bOr zKIMHJ$*>DT0ZowJr$+G4BfLE7Z}1HX5e|w{{wl}O@5{)j>(3H$@U)DPQuBog21;Gm zi)%1i>iU!1sOb70#+OA&%YL+m?%oVBQu9mi3P%88>exKyU~UECeS=1b2eF zyF+kYbnyiimW5qlchOf>U4e6#%l_~E-uu7(zAfh0)zea4tuto=^J6;ry9p3rMxZ(Z zo|vU8LSJ#S7K2q7e7HxytLq|im)2wGzfZI4-_s2LZ_-RPOX|O!;m{X@HffIrCq z(ujcfp6o1Drf*)fL2pofsckyr%Ow~x5>)@AAq!$6eg7qqudR_<8k{o?QBzMF0zP#N z@rU*Y0iQtz8G(OIJmM}CuZW$_%};+d+Aip8V`?*hDQ#*-?cpQIke~sdM#d}#fhd*< zTIHLFSRPoO3ODRqyQ!FOY^6v+6RPZWK}yi^~Dh@}uh zb3o~i_66GUHKDK7Sq)azcYIR;*kgif`9Bpdq6b)q7Ig3jWCDi5V$Lo@QvRL4aR8{u z_kCbgs+qZkzx4r%@r@5)XtD8MePA^3(2*e62g>xVgxzHfgnTIw^tm#9y)Zb&J~*!t zu?S310{)#y|MI50HGI?*;^naG3R%&;%JlWeG$z=mQRZu;62V`ui{ZWuZV1L3CfnaY zWvPO}Q~ws6+QHCf_zl4P*l$81W;&}HHUlEVl4Uyl1K-L68G#ci4D2-^0)20ko`QU- zGTGijhf=UHbm5(C3Uwn)OQ(TH84o@{0s@j!1Lz{v z;-HwFs-O!9n3Ebn7Z5NvHGnQ4U|wnfU3^VTpWJBQ$961;c526VS_n6Rofg19@If$; zsdj4r-`fe(`nqiWM>}DDU+lyMOl`+PSiVkNz9ksZ7`7PxfvkzAjz4eDD6PpM8z`<#erdE^DOr*MC(;v;}`vL$QQ^uhCbV!?Q$}zTsS_ zvS+SN&y1=ISvA$8^S-yEUAH?lB|ujgnS z@bxeaKAMFw=tM2eHwS7Q{p+b32mB{TYmV^wElApdPS-M|wL4o&1v*;uhmUeWG`&9l za>f>!7c8Lfp?3?5gKy}sOnmvoquv(4XTjj^wEC0{250ytGaLXo!J$TXaDvorRX0eD z&(~Oi<2W3JDOaXq zxr*iC;VXJ?50I{rN)#L}#2END_5zGY4f;if_v+FYV>nhe#FN($)~JDa?PcO`B1OS! zjY2EKzoyL;v73Q|dqlLy$nYPW?a3x?i_@lsM_J;XtcVYPFn8D=3V8M>pos)*H3S^M z(vRj~-W2$KIWIWX0lyXZ;CeZ9D!=rC&S4-3`5SoEdGVylDH!7W zHbvQ?asHVZMRzzhvWmrx$H4wRTjSBNENBPpS0+zJZAv~RkY=zg`6~=L+m}?Zq^w^GaAI14&z8IWN1Pw&l z86>3E`p5Hdmw|DPQv5S?Z`Gz4^0SLWw*ZlKh7fg0T15b9e`t@|Ttjx5RvFg)E1j6e4*O4sTbM-0L6d35h9 zBNAq>i1EA3bmCR_xv^Gpss@JKj6m5c4CSo8D2Mbwd1V#KG4oNLorm(*=_qIHLV2Pm z%99Y{BudQ=GMz+dO_Wis2O3t9c10L8ejTWVli1s|%|a(}yW5fTP9i++z&I!ITPVit zvVNf9B&Hp#JJU%FnuOPV7X?Ax?@mDrEQXZRi7IQcoHwDSP9kH&mT=dcDVRc77~a+O zY+a~b=B~RSe8%`?uqQ0h7HxHHZ#3K$u?yv+`RhAd#V=D(UZU%$@#{Nh629ANz)sAQ zY&d@~+9dA<%xg~-jJbC@+VIvPlqH9tFBu21Mm;W|%mF!C#nk$EeV{+e2kl=#i^qU% ztx!(1Or_-*lB*TAPQrR@i$`5{nVCdnNR8f^#OgCOdIyLD(CZ#c^aQJTx&q_WZ0yi2 zlc?PU<6NGBC3LL*d@+Qq#So9C7?M8><4kFcArq&dJVx=algv+X3ejD0bbTsh0Nm9k z5#`L@1A6Z!ugfHMQwlrQW163o3)rL-<#MJ!ra4KM0peK2pe1P4a)Z#TKlR6Q&KiJn zM{AVcgHcXDfpW!QuRd1Maspl-PQvSr&KBn%%iBR3oc zy6-Co?UO@vifIv8KDJkNDS{8w(zI z0=>d{5w`LmvSA(S5l!l1D`%*Wsl7gd*YQl@ivP48hUcVO+@)R? zXxVnkDsH=MJLM$2*P{O)tcJ4Yj9SZ`#H(fK=f<*u;Q3w@^6RpQWlka=U7v?*t0)hx z-~>Gpd($N7cTU1}nLG50;ncItsmtJu&YYUBt5v+A5$r5TC(&a9_MKtWcOFwa-lTEq zK{vF?hThm~-iM-mItgXn4Z(@_4t7iH`&l&*(SPN=)Sb2f2uLTsOG z!YeKoTEAmQOfwDjomJJ)hV?t5+_(Vc4C+CzCgOG8ekk|!o#J8@)vDn28uFsaRnUeP zmhUpNiS3l~@6#~l$Ad@r%_M3pL|;uLkG(b+ef4HA_KsT$!;23=S?mJJ&5cmLr9L&O zKc=~ZYII;PmhkW@>>XX}qWrTj$~n+epxsZuTaigvW@5^l2Tz=pN&G~4sdLESE$($}dY??LMgM zAVxyWi|5vyw~10PYa`W~S|}N*8>RVfn5N!Dg`$!C1Ppu-({Bh;keExfbp%ofmeL%EZ?pg%8;QCoJkJ8kNHL>DF&PcyIt6vH z!X~lZ+n>=CL=;6dLo_8CeF$~)L{Fm5L@UH7qJ>18L=w@xaE!S_EGIflv`=g%DnK!h zibF(#C`Fths!ViV+#tGh5L3A#9uc|iLb@kD5qa!NT4589;AjkM^y4t3r^1z}@o1zs zqCC;85lDXuFQVf^k=_YEqIYAFK8RqV2V;<=tgX;4ate|u8!EI*)g`x^j&{bbZtk?_+X z$l+6zCit@iK$q#hIuhO{0%|)7b@e2?p98dd7*cbYlPD|2Y$5Xy9i^BZB^=8@%p#*P zW*6y6G?R4Qq(9LcqF%C^5e+eWQdtJcmZXcKvJ8@4iLMbXk^6~UhGLq_lx&mg5$XMu#6*R6B=!m^OESddOPM=D0-EatDnm?fDi zEJ3QEvOrAmtQ|;|R4xm8^6d#oo+_UOZQV9jQ&EaJai^xzMC<529|gbbhnT&{>-Bnx+2T6X$pBrYc+>-bII~u)dr&b zr0bz}5-p(oBGdt*CKPjs`hh3|>4vMjRKF2azcK0;s>9x$=@;9?7zLk5gF4h6h7_yd zr@ufYMh`Lb{|T5GCwJx~&!vc@q7kHWTIFgSw|`7g1W$Jy!>b zekXdVQixp7W6byJ9?_-hNSO?mG+34+Cy=rkxrjEcLn>gn6Ge1KDrDG*lH!qy8i7Q| z7a|omsu0yUhg8z2LF5;TRLZDLv^N>a--skScN!_g7)G>~sJanL^m7Z;)ikCO&Deod z$A||KVsji?u(`2;bk+Bwt~HSmpVpwRgRzHnRVJb?oJfe{r0ZjxCEYKPs2jj^Di&$D zahG&SiAd87iv!xlWhYXCk%g$tdZc8-lPH4fx5=nYbaNZ(P8!4XeO9C!#!{l)RHIwQ zN+38(ATPLUY$9DB@`49UF;uc=#u3u3qx*g{E<50g#dlKaR`3^HjE4@`H=9f=-O2{^ zl+vu)xpb?-@-O2V-B%l8+Qet3c0|JbjdXjbK3WO$nE5BA84e_X-cg!6&uHCyin)Sg zejtis`b-qZq|#!^p6sj@i>bhSWKgn%Nws1z2Wwii;8W1qgfbn8QVt@eF*6ZGG(d7T z3#Y{zEt!Cn)htiCw7YgJMS@>tfo|F`q#UL%(SQ+1h0F#-%ZDNrHX9S&7>iWIY({i= z3{pw6V_NKu&n6?4HG5JH!PDxjLh4O)ajK?Bs?iG|0lI!vvWsW5u0O@xdq~p&qEeJf zC37^9WQrlm#uQ7rm#pgsD}hSpMA8K<)HH>1*fI&Jvbh#MBIPVb4RBi?B&wJjiP`{F zH>#Pth>j7}HO~;$9f-QR=6Rz0OqYnV4?B7w0M3U()m8JHsLf{i&Cj8Zu79&foR_bq-*AAqTjb7{b)`n z`gse|Lvta~UAph3xeG{$+iNl;7nZNgeWVkld&AU_(iD~(6w|R4#Bi3ju#T;u%=Qt9)Ja_#J$$o00B?svSQJPaMMTin8zeGy_ z(NZeeTuUfX7NUig21GR|&Bc~xLeiWTU!u$Qd!_jMMMoKWt3QoL_yY*L_drl3cqQpX1z|7Z30qt>#YpfZ%55Q3bo$JfaCmAh$(>X zQq0u{weCLAxgALLt#2}ng!`^eLuzFGK)PC#W@{^aItO$3k`N{_t1pv1Isb5m--Hi`eM~ zS>YwkFS^0j;&!^B){=I*C~GM@-EeCeJKYFtSv%cGYk51}C~F0~l8v#t+fj_wlVai{ zCYu;<^|8}Uu=?52WNVNeO|@30`?Rg&tksB`QT?V{L+x}ktu^g*v#hl>HNgB5taY6f z)cuzoNVBbt?e3dzZDV)e0&6=v-6CrTJKbVyCp+CzYZp7+GHW=IKjpW=+TAYZDr=-u zShV}Twt_NmX1ybko_gYI4N-3YGl$&{Mf|#d0c7fFC>yqg33bsQKu5GTvbsSwn zT{c~w&4rF(I_1v%hw=T~uwMVkUG{ePHZNUM9Y?46y;9l7)HTu`WnZsm9v8lp|6A?3 zTv+C29@qaNPBV{tpnY5btr6sn(#0KRt4t_$nhU7~50iXLZR%PCQ#Q+^_1=;tYXv?1 z65qary-H%t@PgRlk32BV4(0LMr#xO4Er@bU*%u%exnpYi$R|pAamGIn&fqQu+K za!pBZkY0Wme+S7rFOSYwmqF)l-;O6sRRKG^EMEiUm~tp>!3{u$W#!i(;IDGzZls3zXF}IJJHv&6t-+4k5Xfq{HlUq#J~c_Kg6!$*mvA z*JTES{3!?8YB|YcBz4Ju^T+V6o>&qc(wV$#S+TFJkb^=7(-?cyF1!TIxqI_t3WtiK zJW&zTsa*)=7>e1NWKeNT&5u?f_7)RV>n`L2d8yqCP#v{34p6wRT{iNrLbRUIt*=|n z-UG8 Stq9}e|RCaHa6KjmJN`s`~P#yLVhxrzMKm3oJBCJg`81!YAVH` zlMm=Rj<;bhJ4q(dI$;AzZIg#|UA`jr`dqoOB&q~n>-zptaW14BnhQgIqTVN{z5&$l zu91)BqwC#tt?RXy`g=?2iCf7I_A8%OnHFN2c55LWqT9li($7k>?GTD%-`4gc*j4|P zkj`F`lgqDz>tvF*-8aMa!=N1??JcHzy)VVLzjmV#9j>qIQ%##vcxkH3sq%XvwUyKd z?aQNm?+kgJ9(8rk)ouMFwYctmx+i|G56<*B2I<>^Pl0?Da2{lZLRUbJr#@xxfrF`3 z2_$t%bSrDibfO*igf$DS8$@Pd(b|q5b~@{b=))T5vJ7dmifbjj31Wrg6{SpIs|BLXM%-*7mjdwvM`9+bg+L zO0`Ub>N&wOw$mu<(e*DKb3$sm#Up4$(o&aMkBYj?_T!TFjYTy3*w@0o7gwSlt$Vi~ zlXc2#D!M_AI{kkx|F`-6YhHyQou#V&5ynMjBmlZ25j`>K4>HV%>JScekOr z!y^Zd;SnV5TVz0`;!qOD(iK43-}Uu6)&5P}dxGUV^+4%#6lJ6p<&$wJ)6_@#V;4_I z=UZR;e?8OT*q%%~Ap3FV|J_W7dx3wR=`Li#{{AaT$IN(Lon#4;_7>2V{NC!w{x19V z%zv^X`rf@;i}*q-jP?xzxyh|6$k%0Rg8YeEe>urxBy~CMM^_#4zqb|&^uh7!#CNQu z`{w_jwXVJObWi`2#y z708KxYkxf{2ZrcyeXZy5zi2D-;?6^4qz4 zGW9au*K|q#Z|3f&1xG+GlPit^nadZi@0P&p@7Z7Hb%e%7JzBPceR}GMGyKt@F&krS`qi_-ksZ<=46VPqQ$3j(zKVZx)XEW^{6`kOXD>&u3x1 z;~ttFEx9!p%3xYy4lGO8MX^WUcbgAso*=ot6z;gw(Ox6b54A2dJKykH0dWS9Y)L!r zhBOM@ryYUzF8j9AW2Qa_(7i^VHteR}@zri&(U~h_E}^uC`bc~85bDbh$a5akI%<0b zjB}$9N|_r=KHF|T{(yS@cJh{)6n{ZZj2Y>HF+bBP`bq#^|4F;E0yK`5_r*BfXm+ke z-lA)vXW@T$TDul3ka`le39i3At^HarDN;{sw?Rx7_x&ITW;zPeekY=H)ZV47hiBla zo|(mYEqLRGj+pPaz0B2atoydFecK|sE%a%&eL4Sq8B*6~Ut^}0YH9CNP^wi8PzJR@ zxug}!xzkTo@(_b7pRbf(glxM45>Kx5ny0+*yl?|T^qE!OSu@@9i=7>CRpUwR)sou1 zE45lmkvmY|%aw2*&jPC^I4Pq2QKB!#pO_zIQZ8IA_oQ$gN5@C)f3wQ6A0_5~Ggf^2 z4C0qc520+8%l-n={w#>W-owkwm>%*L^7M^p{Zha4LTZvRFFm-PvfruWcI*w$+yT*Yxcz`MuP> zrT`>i6+(dE#$)hCKleQOK2a_yCvMI@<33!*sd6b9dpq$hY<%{Yl=UPzy z9*Z&?T_=X(b!95;eF|@ugdxo+yg8+I=LCjW6H)%U2xYqnl#6Sl>_hPn?#AoU)!v%r zh5Otr(BgNf@9Wd}2_@10d*s7ii5|N;XD$G7R?(bj$%!rdXAzVwU}VTI%Fu{0r^Kd8 z<;8hx5f2y9e_wHr@}k|>#n2+hhh?E24T=K)~L>jyH^}@63%Vlvb^u!NCQqQr=c;pusCI&;u#_YIq&`*@~vn2hLK|fv6YY$z9 zw}mi;>IEqmZSOo9>*H>+7zP@H7$ni=yl%i@Qh^Z~`@5V+=(vy|4@38m5IpK@br_w8(}=l#}RxXbwW{aw;Z3DyR%f|BB@Gd`!#z0$rv-p(@! zQm$5N7)bk(#@!OPAUH>Fu{3qD!dn)$OjYJJ8PMYig;UA3=MH->A1vq+N!NBW(BtQ;##>o}JpC zOzLyg&3SQzDdd4tmB6#&Ep%2qhR%u~6hk|E(n?rAsnlavt4x@SJ}H&C^%#Y+L^1Tn zZ#~DeB!*utji<6NXl`mvGJxJ#aHP9}J#p2oNAglZsl7fdIs(=x?`gVU zXfLuK@$7v`dy)NJx@C2U?j!nn_xJjOeqZ9h?Gf7R?DN&W_wRd0svqiE_$tkGr)js9 zwb4*;3f2G^Q0)SahEylVJ7L8)g{~v2{rt$jKy^ zl6+3`D9P&}?Mq^R4ZjcVn*e`kVZ+iF6+OfdbG}D5kt~)#h}p0R$RiV1gZ!%jUazF< z?MHuiw~F98u#Xmtj13U};5c4~HAk6Y?OPMm*$U}o7rQ{4n(`qC36{qp9vA^T=pklK2zd)}vWZ^G%@ae4K}e+3ca?_gaa8ilhv2KQ!Ux{0!*Y7U z^}mMrdg6K&`$ek~*mJRUU@oAQvwkaVF`b9t4)pK$27QxS)o(&-{+smwH67pn_290X z?e9SPpI|P7Uop4oRk2<^cy&|6xVD+m2vV4)NgO!b27dT9C_m{$kLKMxE#gn6R*m|5 zI*3vQwXQ*j9`*ATvQG*jwxLYXOTlpW4aLMqH>Bvrkioj@T=QJ zOkNpWR4%cSscHsikxOi1>Imh`Ep{>WgL38;hnf7>xTrkh6jQA=&LWSv%v1n$dBrWJ za-hpA9%%x5!gnRaFRY84m*nXt-Y|`sw;1RXQ(MsG6V@WyX5paACo*cHRPu}LtZUz5 zjc0!0#?-gPMxbI$^+8ualw)cRx&p$ciBc&jf>?*vEhs{n(7FXheI~SSA<>)(ty@TR zU_$E_7TuZ9x`jnQO_W0s5yd*pp@k=1^43XTltciRDa~Lou;l z6Xj4`>>!F4*T!x4EG~K!MVrNozNZg(mK2wX;za4#v!10z7W~u*`*j)7P!ss|HP3S5 zIeb0_y|qX4*Pfo@GJIzhsa2y-o;Gn8KAeoypix>cU-7(@Ce=8rSD;t}pB@Jt`E{_^ z!i0VuEcP;?Ux$dJOz77k;w%%^y)w+}Iu)#YWpRfIZB|7*W8WUQnj!0xeE7cK;G*QXwij}OxRO*V2Oqfbtv5N^)sV5FG zVJh{+DNU40n7B-Ye&*v9Ci=m*ytSW&c-0rTh_s)<>(=z&F-zta^}OI$_Dp$N)XdgM zoLYAzC)N}lfE)dHS~XcX$C#a5=! zQ!c8P*vr)96#U*+9Ak=T=At6RS*8)qoJEBAf$2bZQ}z~jn67q@O4D0BVfwADi|Qj@ zGRbz%@U4KqnCd_sB8BwSR%#1%h!p9VuvhgJnV7Iw^%c38uvhgH1(~o{^%JF-+HEss zf8oy5e_K?V{=$zb3-ta0q6$+%==}pk9j3PPe)AeA8Z(8@dk@rx>6yi18zj0geX=+K z_0~jQK3EK59nRB(MKlw(^k8^`sq2S*Wr&Dl!oD&@%x1zqHdHKT!ag=stY*ToJW6b4 z!m&I`?9oKI4--dN7nkCqhKbWmNh!`^n7G39xT%X8E^afuYU(V8!!Ho1WR%JX@q%?e z$*#5$;w@9P#*HNihNAi?juEUCiLA= zqC6A&?kM5Sgt?Cv!AzL@Xi-xW!oD(I>|nyaGF}`^ zjS2Zp5GR??=O>7ZOeb1~+9rw{O!r%c0X<+!nAtV^B=L-C@yrtNm&{*lBD+i$A6SRA zoebY1(`|&coh&jiVQr^~tV~$jDIzZu)^@5W!i2S*D#|ipZKnyC)T!OEw$nr)6V^6P zRA<84#)+`hn2_Ie(ToXeJ6*JA3aRa)W{7S~jcUVpR777Uw8Ts?lnE^{Q;cCkOUx3J zn9vfl#4Jr@iFg5@d!cfoCE~?0CbUGnSjU8xND$kY&=Lt^KNDIaQ5TYzw7{ zmPiuUn9veQ;+`hTeYSYYIvh=Bi&soIn$8yQn9yc(g!0yDqRr-r^h`J^&J~%N&}MT* zZYH$LJW+@V?J`f4W51Qi*;DCwW1*tmTawP#e^kWCps}<$<~QpOjxq@VgM7CY`qx4geBV`#xY^Z zHi&6VL#w!`jUth0OciIbQ7mHeN$zRe1n+2SyHraa0JKRHm3p(-#X2nYW^srKOTAf~ zV!~2y5to>-)LXn9Q_r zud~=E;+dS=xv2eOK2u?^%YLzf$s2SB#CoQNpgSOTFkON^c2FE(x(9viApCkoTkx;e zp|(Tf0#n8|VL&&ShMt~bJ1p)qO*@?g^h^`g_K0{*ge(7rwj&~kKc*Qc8chrqM@2Cr z+;1k^j)`fk+f{d~?YLOVguBlZ;vv%`mp!(VB42<`C4Sy3cbgbD}a+|K_GV zFKRK3ZXT89ylBK!Y*nc3f@sC$vnmXzGgJO}Q(hFknEd0T(p(e+nV!uGwOtY;n5^+( zK(S1_!FMl6}vT2i~S%D zv#xM$7xjZU#pGVwS^OX_GokNZ6StVqy4S=bCbaH#@e31L_quq?gx0+wJ~5$nZ-_KO z0{)9}K6dGyg2yG?A5_iK47S zD?Jlsnb1nlgclR8C!UKyCR|TE7okjO!Cyoe6I$>W(VPh__(HU2LJPhS-I>sWzly$0 zXu)4a6cbwTr5MA67JMltGob}viCIi&!B=8F6I$>$v78Al_?uYIgckf=Y-d6X{w@wM zp#@)y6HI8q*Wv;bTJVjy&V&|xBkpS=3%(UUvkoozR{X|<7JMt-GhuE25C(pD8~PE} z_7CC6gth%sWMRVE{weY>VQv2sg_*Fne~B_oSlf5Pg9&TVJeiTEPux&qyQB2sjpTtBawC86rg9+{VS(2}|Z8Z!=-ZT;xwoxTeh{UohdCHk15=$tT(H&MZGORZC6>Pf@$d7$!VL?JB1-;puC* zOkl#(*KoOzsn#GkXP3!LEeF9lyWGfhzYmlVAAxc`HCsL(*~a@@*R`k;q5+CrRsq;i*aancn?r|rlX06e5T3F zOg|=`0D`~mO)5q(@i;3Hes4FJu1yi*_O#C`IgTt*_EkU@&lkgOudi8nYbLxH0n5N|X?(Xyc$h}_b?KeP zcZYN#igCbRyi4X_!d|>f7GOG5+ePh`C73SNb{4y3MW#13;q*@WFqtr-?2(n3PJwQ( zti^PO5tA*<8NPkKifPjn7j;-}V%k5&Ssa$TnQpba z=XFFLW_r=?DbQ)Aq1{~6QF)nZQa5LDRNiJP598S}`G~0+jAzH>3#K5LbB@cmO!Z*S zIW9jll^*Y+PRKM-*hVo9{^Om+3F*v~*~vwnl&(xgoSel;nO_rmWQr`#I-J!~WO*i> z)l#H46RwO;$zUd28K06hnQ#<7EgLZ5D12JBWI``EBRevo7o3qjnb3RA%Kl8~J!j=` zrj@JUv{1${ZCM4Ug>ov>sLG+X^D=>HPUSG5g-mGO3o@Art$RUkWJ2p+lslQwx)XGKC4f?vlL3gkE=9-ef|ryDT3vq1RoJ&zaEcuE;k`=yg}+M<(>TtI|45w-I{X z57LPVz3vB@oe6u#HR;BLz2llJ#)O`AU6x})&$=#cOz5pQWDpa2>kV0h3BC2Etj~nr zdQ-MwLhrdHJ20X5+>$+*(Cco?eoW|fx8*P<^sFD{SSIwWALSG#T!Y<_@l3b|yCWAc z;Tr6&T)~8Eu)A^tQ0n4&@VyWGr#E&W>VX2OSbBN7<2SA?QBJo=l}c_eu6=@&nx`Ih?5%=swFBrV*g~ET=M|t%XWpLR$;9 zkO^%qRWcLWTB?nj$Vy7>WL?Iji@r)7WXhd%3n;}drlBsf4((~E8%$_VLp@+Zdz$JQ z6WY^MubF1Hf9z{fADHI0{{_f0TDQ^T1FwCpDg)E62i^f?W2#n1`lV5Mnd;R^0|bAI zn)=G0=X^wNKEv*Vu6u0^*&~i3=m@tP->K)VPUZJ+kN{!LB&KD5|l%AdiMnhCjQ zRi!mi?%7l&)?x11lpho3o=sI{iiedzc2$Qd8CC+>RTCy_gHW5RYQt2ZK^Rb1rm3Am zZ8=nLrj?z-fCe+Io_o(Lry9w0X6{p<2~4G1-t)?(rZd%Q`4nglQzfWTZncCd6l#=P ztzj}imq%@3$_=_aYA@5muJHb~I?A-QE4+WL&N7XHzUii}GQ~sRbW?XUk(KhPCqy`t zV#i`T;M`HzuYh{V^nRDSUm-OqM(eV!^z$pMUNb$~UDL0KS~3oGabjuvhJHoW zC8j?PwDK#aj99H}R;ROHaTUmvE;hoignB|WLpblR=2%iyAFpFRi>u~XO6_5yH<{H3 zB0Y1JQRW1U8RLMhSw>}G!kMeA%F2W@S6P*psVsOwIaMSzCfrv}m1W9Y!$p->o=kab zIE(Tskm)Z-vx2J5WQDax1r^4$JFSbVsG2cdN$V^ss`gAcO1Z0UOgKuptG-N0kY6P= zlxZd8S4oXw!jaEIO=7~4&qK{(>I3UDPc@HeEUXnh)pDkljxNeetz+8j=nTK$*q*9e z<)UnAKNGHLZR!LQuED(3c_v(gd8_M8xQ6yo_n2@E?W2BX!nLBW`i%+KioWVS)5_T{ z%1;>+bsKG)4SxemIWp~vALQq+vM`;9j|R%abQN>~sxZ@Y&;_V6Ot`)dR31#Yz7A9Y zOc_BJq^dC$0bP))$7J+%QNgMyQ?9=7mbz-k^m04ArLMx6oM3$&q9U1&!1}tf8p8Ag ztgkDp(M$(meO*OOWV!(B>nds{(>PdPS5iP$JD`a7S+{prg3JdEmWOjnr4OpU1Qn@>+%}vF4GxUm)B5Fna;vH$Tig~rt9zy za!vJ)>2N(4RZFQ!x{a>ZgTH8|(lg~aWx`*y%FI;qR8*SUDmPOn%Xq&!st{A8Wg1Xv zCg;KTyy~h-OoazO1@dQVIvw6NS5=w9r^DOksxA}GRbi?L6V6p(sx6Zr^s)M?D^qjm zWA#-Zrh%YqpawHd2VDa-iV6254b=oD+>W5QKXQ+1XJS3ynH51MGCZKm$9ZsD9nzh>$&)5bZAfnGAr z+FwC6SAQ}s-7iIRB_~rGQ7SD|T1^ga4cGd$P%cbm8*T>5X&1AlD!@AI#Vu6{ChWy6 zRYfN3#jTVN6ZYa(sxs4USev$1wV0m3+O)N5#Du%#HmVg9jwo$ZXQq7H?|HRVy_iaF ze+o2^X$k1ssS!+TLDx>jGIfIIPVLn+rU-cM)Ltbq4F+8YwTLMebREHyFmIP%H|5F{FmFFlex|dPyJqjMiZflW zTtakL6_`#ofF~8oo9Su;cv7K4m>z(xr>e>H0(3o9L#C|V;THj_B~y{^@QVP|iD~d) zcv7KyGQ|#tClzV{(<`V$Z#A6Bfctu@aZJtNzCLOyQ#jn$M z_vZ(w=S=wi`~dZa3E!U|s6H~``||^pb?Vn%HAp#Wa_D3^>NiMbV~Vt#19G#AIan2C z9p*P!m1V;G1}iTn%x{PaWWxN0s8CH*>Y*x(b(r5!)r<-A8>-sd#f(zjScmg;l!|1+ zc{)lBWpZl>&n?twrm_v;xrLg1(+3e;hQTE=u8>M%mB(?sQr zRy&B|#U0BHzi8z;4Q+;N#m9al)tKp;`ksE}H(EVs$`>m9$Esp8P^X_w#Hg-BdhIq& z^=87g+c-6t3D<71Y9te`-D1@QCOmZ*uckBMsl#|RhY3#|Ca5J$c}1x7 zY75hnV`=>-s=Z86pqr$QGR1;!k~+(@E8f|EvbxH2B0d|?9j2?Go1z{wJqO(s^^$4M z!aV*{)t^kO78V4OGtm+;4u#H@@SmpAGL=794k!~7&MR>$Clk&qajGB_&MVVZNhX|E zrYm<%)J8LuFYEABbB3zSgr}M_RBfjFM^9#*sTwi8I-1shrfRK;QkkVXvkp_4rFt=8 zDznr;CQKz>jbOr5;#DluAO!|N;O{AZ&1UTaHYCY#W3MYb)%ZfG#+%DR02~X=r*Z^On45qStT>!IoM{kkqOVwwy2#< zcz(7;9bzg4x~(dO3D3y3s!L3GMz&4eWWqDDZR#Nt_Tug8ITQBc?dlB^_TnAtBNO)G z9m+aex5JX;<^DUB6Vry|H9*;!emb|=f0uG&`h0FDP%);&69@cvt8z^1P8O3I0hOg89$2UI*$4bUA_^O-t;?x0$siAr`zt!Evc+Z$!~cw$z!a49 z5NHMyj%R1p93~vk&Z?!FD3x<+4H1rKzxtn3r{|)Ta6J3V|AKO#hZHAXBs&CLQZt#H zEiM6<)nleCCvyf|QSg%|ikY!x!GNo(I?)W#{6wjMAJh}p;h1$z63uSWLiMRgURn?WqBOsJTpuJ>~?wS96!?m?h>f5BQ{hW9l2eF+dvTa;=*bUdz!i zx-(fj?hLRP{l3tl0IRVhS;ri=<7|L~acw11oOn9tMnF1a!zxX`W_%ow-Z;&atLKXV zM3+Uhn zN$?;1M!H6xKo_G2)36mq12Y?!iQ+}K71bQG7!K<&CaedO$^>RL{v^`B+Q?zR&y(Ok z{U&n`BP|o|K64r_Ot|~ZY2;+W-DfVN02A&$a~UO>aQB(psK|u7&)kMD6ZZZ*Mr9`K z{dtVqOt|~ZYcyiQ-Dh5-H52YW-HgsmxchW7BA9UZna>!=guBmtMl=)dKJy!~Ot|~Z zZ^SX-?z4cA#Du%g0>)w{+a2j1Z4WL#`uet>VmN7ap8E{`2qZd;%xUZ}+fGHgAD{G8k>SS4zrkpX3Dbms~u$(cC z33s36jYKBgeU>*CG2!mBg0Yebcb^rEO-#7^tZ3|F!rf;@`NAAWc)}bf68<&{S zliiJ5O!%a}lJSrUpVU_}eqq8V^&Z9>CVW!wVSHl3C-t6&b)#-0d{XaeWMslO8@-I| zO!#J_mywU@5S(h-jABgJx5H_#QJ%?d1)TO8Hl}hb;I!8W)0`GXty?jK1O|} zN!>aDwP1SFyn^yIIxv|nr0_L*Fl}kxBhb(2$8?~1B+xKTl!L!9jdc~mU6j9($mAF9 z41WiD5mQ~z1sE%t+JP>>*rbV42{iT)#f#Cwg98JNmYdK@aiUq=)WFJy`({mk-R1;V zH4>SA30)jm&2ZnMb!GOg4yi=~k_~-t}T&9V3}2UgT~2LttIw$QODV z*uZ$cO~)*BI89J&PMLtnkF?24C-pUBpNBwrql@PX87(w-AK{! zWTT+&Mlw_E$(BJqj1NRH;?SH9K|KwxeL9s9mWZGT3rHJA%d-UPrVpG4x>2Si}9erpin21kEtS2~GE7e-4^um?x1& ziux&Uf)b6&L@}aSk_b*R=BDVF%|deq&o^eC(lK+S6b@cwTxRNgvRv?Dqu6O3vw4DN z@Diip8BKRi)Cyi<)HzUFdc$G1UY2V5A!K;nCL^0w;_3+>|#*TCPzF!yh4PIwl zJFlr-L~QUT`!)OgN)oFkUm^jDErR$g~fheO@#yH_$FI4#(ix=S9Pb>2=Z| zze`3oCg<7FKyFOR^5SgVBNM4bS~ocH`_+-JgB=8o|*6V5VsjNh4Xmbq)ZXTn+Lu3_HPZG5!j{4Y#n=xO?#od1AQUMv4;?6RU>&Y>Z*TUC1-z z2$5dzJ~vJ?VefcuTwzL_0l$4TZZj>M0dH0rKWUUmE$Du&=x_iZfwfd1X{!!Y5+C8Qx6zMC>;sgbAOB z{chA`!Y5+C8x5Io1^?P;$%HHT*G4C%-Ra>yE2AgVx%BX!l`((```=q*I1~22x5hXo z?0;{b3|(A}jrAEMy&?ZU1Q`GvV3xpT$JGzaqr9T=@ zOugpT4f$kbV;VNM5s;fE%Hgw7ly%tBpN+Ci*wUX3FDC4N!VF}>{wK^(ChULG3}eFn zC(Y(e*#DH-o(cP(GP^Tj|1-?KOxXVnGl~iOpJ|R^!v1HPlbO)7EaogG^el@xp9ww7 zYA$C&&$629nb5P+nA@4qv(lIcn9xHU%o9xLAr9sRCiIZB=5;3YkhJD~O=Q7z=FhBi zYuGX*o%tJ6*@o?b-ZR;p;Fpl5aaXrdeJA)Or0K|nbB?2#g$d^zM>7voHyE!on1z`J zz<8a(ETf5XcQQR#hyLkg`ZJ+_I+@j&&_6Spb(zpVGn!4A&_A8cwoK@s&Sp3h`lpN8 zhY9`D#T>$vBQ3m3WsYJhnHJuqGAA;nq`0We<_so$o|D;}tBFdT#av2+tLE^KEas7W z0{)8^fA#1e;%d6zM~V{;jiN(xm~)w~%o!Jw({y~Gbx%^JhvYJ6GA$2D3dwEmC(>)$ z+$Q|!9sY}f-d`zo#LZmzNb6cP+7y!CO#DexgGPHp3YkkEYr_(&4qe(z zW_s=DqRN;Xm<$-%%a}WvMr1T)S@R&%w2V<{%9<%m=RjA^yvTG1bmh#OOgM*^Hy<$J z9A4gh&V+M#1@ko%&fyizkD92(Dw>w3+7iVUpA4yJW?=GOde9g;D z=o7x?Z6;i|`k9ZIaAx*1Uohdi)!%%Z8WZmGH$OAs8(;xunrGV9_y$;j>CA+0fCZYa zO!x*^pqZZu-vA3Ti!ZWgJA%y+CVT@d#H`7LZ-9lE4Vmynsj}IU z2~U(No1K{O4X`R^PbPc=tcp2+3Eu##Y7S?@H^8cz<5G32;LRg*Die-%)yzaD9Brzb z3z=}Vscx=h!nr@x+{lD;f2g^O31_Yv<{>7WxoViFm~f3!)4arlYm}PiEv8-ZU9;CR zA2OYYFCl7~zc5_|U2XFX({s?(Ha{`p(}+5z^|@{%d>T>5%*cc%UvX;w=#G0DE360Pzm6=f!dm?*MBh-U0Cr zuvTI#hm-_iPO7?fI*ZnzOR7Fm7tn2zbrC&5TGuBU1j?)H*6AvS zgB~VXS1|_EhGgBu>!4mF>n3J^YLe^)F&|W)WG{$imiBuc+tYp`aoEXh&DUL=giRiY zcNc#GaedZZTmo@@7BBt`;`%IJ+y-&In;?DzalM-$%%5G%^LlCz5eDM*)E*)~h|gm5 z6vaV&7Ne&q2ja6By+maYpT+1UYJvDHMsM*9h|gm577alhFMUJ{5XVa&(GJA%(pPi? zalG^ueH_`C=qFx;jBCDr;uR3reEq~Y5Z9*t#hW0mP5X51@e2QYA*aqTN;6Y*!h*yCJiH||NdOTQs3gXq{!QwQiJjq@Z7eTy2{G#{{#4E%v zi623{Lj01r58_xFBGh%4MjT5+M0OCzQliKU;#f))#T?mKq8ryC<5(IhDuOtchKiaX zj-_FuE{J1kn5Yj*?(B~kE}DVnb~Z$9K$mxAk9b*h0bSn}PSgt&-KbE+D`F6+Nu!5| zUIyJ6S2p5RF$UxtUxDZiP?s>_8zE+a=2%(;S`#*0j}R+CPm*k;*Z^umvXSC_&|s2{ z5_>`8Nj6Fxa%AIWv^W77m!r|*G>FU5Xz>k**G!YdcOYIfO%gwWxb7Jv?t{4Q86)%! zn?}}$u_C)8+Z!D#@`Bihv7#7=PfCmv4}_ zx|jhO`~JF^4`Sb67t26=QsND<4#X!V-Vj?rd{W{~u?xf}CEgSVL3~nTvN#UnlM<7~ zmmoeVF-4pQ@kxm(;wp$wN=y|$fcT`uRB;c)Cncr{anqF}J}EIxgo5~_M6w76@kxnf zQ3S*%C8mqgAU-KET~q*lv6IeLi|U|TJLzn-r~~?e%H~@l29(9rCu-`*#^6j52N}oU zOwkF%F*sB70C8PDOAG*UT|P?;194qGTZ{&AT|Qe(0&yQ~jz|V^A8d}82jbmYbHx%6 z@79_t)`EC^J5Rg^;y&Lz@d1cWvd$MDg7_rsd~poK{j3Gz3lR6S7Kn2oKFPXJq=BMI z&xPW95T9gSBz^|*N!CRo@V!eTKFRvF$O__)I?6!9pC zXDd=fH4x8MED=wEc(!7Rhz4=rbg5_z;=bup(F(*TS(k~9AU?^uOeBDKCS$qi58|1O zldP-68W5jkT`e|&_$2FU zu@l6t#Tv06#I3~|aTLU@#ai(>h+B)b;;bdt*H|ai4;eMsI+4whVLjK0JRsI{ohS;b zN2TK(Q3lkKO2<2*BIrEH){7dTpGme})CKWc-3Ad0;9YB+6>CQC^BM;_yAORQA45wplvf+L~IquKnG^DCOQTBjAYxyInXtdZ4=*u z<}B8Nyc5K#z-(|w1?4dQg)Aqs;y-FJ#oAWrw4 z;xR`yc0Ul+Amf_h1Mw7yYlaU*H0Z?~@p*TN#-LF-%6Yp)D@WFq-J&C8?8QSl;($9PA@ zt03Mxc}$E0@!rW}Vls$(zsJQ)5chtMi$x&rHGd*jfVkKEiP!+*p7Ez*8;E|J9rWALH;D3qW*(RxaY_^etvxV@s4VD6o3|sr6qP`y+bkz~!ja7dUx|8< z@!rX=M12tNo%~8P2XQNUTC@RiD|%XV1@UafpF}SZ&sO|N3-Ju8-hIDeiM?|`^pa87Iialhc4*bU;k^}IL;;=1*` z_yojzCohOELA-bJg17+Uy^|NkRS@r;yeMutvYLG(?m@ zc2k@MajSh(q=C5A{$AV!ajX5k_!-1GINCEOORoy^AdZP6JvIW=#K9w1K5+hQPy z^TZu748(cjjz|J=jd@p00&$IbS4>Zr4L(=nXE6`dVsIMKQV{3CU&LAv=fPjZW=l@b zd*V+{X7#)$zJX2F^Pcz)#CqNnKY>`!U&Vb8>-nqDcU|nxr2D$=i|n99bYItfkq`74 z>GGQ>2D(7H{3gnR_`XU{Rs!*Tm7aV8#9{EsdLRyiPc{H?P3xD0r5(V zmY;!mB}U6LAYO?v@-m25VvM{2;+2@7yaVEun4t9i?Bbfko<#;h9QG_SCy2wIRTcno z*t5zKmR#6FWUQ0fu!qQ|u*qQ$k#Qgndx-1|;&cd=JwTiep>iOIdji?yuymXBUN)Ho z;yBALCxJN5vdifp9@&J+c_1Fygvq5KF1I=4S`e4p9C9;=*Kc#m4?w(rn^PVD-I^7j zH$rsC_8~T-3!SC5T|<~IRI2?=FW)1aww?I%v7S$j%+R{B42}ychMA)(?Gn7 zrih#i;#K^jG6lq|_(kO!5U=7Flbb-iieF6b1o61IxZDroadB~Z6vX4=hverV9v43( z&w_YdTtZ#}@wm8zyb0o6G$rL-5bvTXN!O*=G_oNoC9^oP_Xw7fIYE4nU@2J;lr!{P zjnc9Ns90zkQF&0O$a6Ky$f}?|k!eIvf*z*+^}{j}^aS;Awh!%rB{g_sP!tbjO6;2f90j?wF8=L0M^qqoVu_ z6utIrL?!t(sN>qpM3+I^*PM;0EU$x3thr2d2lNr$F<3>?CEN5j)_hKP3|5gr&?2hq zs>&RobyU|?l?6bb(mue)De9Pt&@>LMuviXD@pH5VcYRSnU9&gr? zvp{_FYHhg)#5b?jmMcNe()SUblp8>u>H7#z%J)HB`k#_}L0tNul7~QC`k$63KwSEt zmVdJ3YW+Gga6hAT)R9>ond`wE{yH)j=w6W4gk>R+qA=8zB|%{nhPv`m(1$P3ny`Ev zbn*pS6P8bbx>L{U85so{Og*b-WMk0whO{Oup9dYHT0cT|1l^iNYr--f6h>>Uk+MH% zRXbV}mWiNk?PyI{jslgAI#(lFP6SnnN+X&ED%AO0jTkuxRIYOxQ3{AhHnDOwh(|WD zaueuzlGT?xKnWzPFZY8M4LVn&fjk0wcTgJ9=b(lZzJ~G)s6Bx)7ko`c3)C+1Uhk)LsUQkP!F4Jx0Wf1S1X(z9Pc;8Grc?ZN_Eo?98l6za*@K+1lOX@#a;vQ!Q znFGW<&JMBwh`;pFQ9cCXFMV{BkANZ@hemdiRX~jz=OU^N;ye30%LowP+22_{3+fwJ zAhL^W33@fIC{cS5f3>iyd;!E?E$k}$g7~)fZt^7%-`3tujsWp}{x8V!AimH41vv%8 z^+b0$3&izAclkDm>xp=|62$dHynGkLUoA|K?}PZOg$Xhhlsjvw$R6?#s6^HZL?=NV z=RFbGQ~n8*Ft0ArCD2tF8`(?#8FXJZA-e6ztJ1nvWN#^zO%0J1IWl~IL0{PkH0vX}0Ydfw@%;t;aj;!y4@tAqIYy{#l^KkjRC6|6L z%MMOv!~U}D4x1eFFU!6lj`^465D>@iD{=&gWA_y~0mP~Ds+&#hj+F0$_$#_2<#rI4oKZ3r#3g5xJPhKJGg_Vmamg7izqaJUmn4O;F>k|{ zBtsn88Z1fX266b3WML48VT>#V;xLSnkAXPsV`ViEhkdMk8pJtkoQwu>&Kf71fOxDn zUbX`9SZ%!Q1mf^bkO?3T-vl`T#NnGLhk`hK6Xj@2E_|=a1x{we_nPFE%JcTilz!n} z2CZx!?!Ep%R<}dA_vQmy+%DXk@_^<}4fm$W<<`v^^zHaQk<(@6AjjYg@BIG6$XT+k zrIFUZxiZ$$B_I1YS2h5#fAi(DAog#eYz$)m-j+>4>|cs(ZfQ!sZqr6ZE|ncDaho%i zXasDs56ffZk?+bnS)D5^+bFMuFir7f`(=@vWOyi(b7iwEX6cfTZElu@vN@ZH_0~mh zkuxnho7?0#UfvA)6gr!S9_U{Wh zA`jaf>1|jV5_L-6ur$S6oRTZ*OSv(xb7fVt;!&q%Qa(#I{l1n9ER8j@XfEMvxeTZzg<~WChT z+-`~YZ9fuqO_ndf@j~B2Z66bLLw*5zrR8%`H|6$%F5O>S5bpm$K3&MhAi2`A`j2vi zBiftYIqJ6DSlG(wOCNosev$c#IBM6jZ+2k!a!pE>~IHXxrm z4(dwnZGLqM#NWfrug-&bhj#(>Er@q`7f?Tdc!zgE^$Uo1co$TngpE&|wuMxPBXcxm zdQ>5m8}wDm0;0m1Y!+6fAiFzpWmIAHC`i2a4pFsCHjAjIAY-kIs3;I?T|_koaZD6d z&x1H7imHwvPL*OR9>l3qO!WtGsuWj=AWoIyY82@9VVajx6G4*ZtR7O+9NEy8P;($- z%}S`nAl9seS`A{&N~(<@)~ux30bHKmM;0u?)oI^F;%a0Mv7HX4J|oY1$8QutfC?Z z>2JT}_bRH3R>p1Bsi;aSx{P(j@HZYRtHvPy#zSS*3bcOp`KT(YBWU~TD?|yPnH{f3 zRaN~#i#q;DG!--~)&jRJ)=_D4UiUIT565WZ?^8fa(4a9vH!1Vk^Vs60Z|2c76gvm>e*=zKq#9Z_vSe99+Ebpi1ypD5J})Q#GlXf+7*60K-PtCv9^ z(R(p!4Co@g7o*+)m8JR5STzGwgXTYD)dCQ=B=yxY5Vs`t)jJ?fUpQ-^wt(`{7tR`} z-JtvAUqf{el#|8}4b>;0o>bR8tG)ycr@HQ0bpce7TBkP@eXNNJ1r4C}u_h`Hi2DUiRS^*P3!17jpir8rX{IWGic-IznX2K) z=B4JUj-?r1iG?Mjo2%LtUD|GL`dIXH>Ru&B{hp~2-AWCr%rwngaQK<%)+$iNX~rqt zMr8$YO1DwDL7dWURUr_kbX!%*k@dZudh`L&oQJCRfX3x-uj)LYUAa4|=O0jm=q{?C zBg4If?rI2#dkNjuND!xOyqW;ww2fC&L7cV;YBq?|HbE^0aoYA!t3aH#J=8`Jr)^KQ z9mHwdQ|$wB+V)b1L7cX|)Mp@0qu%Ok5T{XZbs5BI)JI(haT@hecO2PR>Z`n}Hm-?i zPCx}8(762lRIUf4yaB4<1ER6LD*1rMSI;D$8GFV zAFM_6cokC3QLok=q9>|Jpmr^LM8B>MRd=%HEr&%zb?76V?^Ot>`?J4aBYJJe3#3qwD#qD2PYb^VP%YGD?R9sv?M2 z&KIbfAnrXaRCPhzds?XKgSfR{q?&=awO^##II`*Yw(0`e{OzwtzpZ+L)^49hG$@nJ z#cDWYWg})sFIGvQ>JbZxUI(3CJ3Bf>O$S|ByO3zUBkSK1wG=X*M_HoQf;a}3sLh}{ zE0#qsRUd$wu2@fWz>#%jnK}j;$LBKj1&HHwnK}pJ_*|~iKpdaT)%WQ#iq945XAsBd z3Kghj)5!X;Qe|~yQ*5Qm1!5moszM<4VU;QgVjotiN7H5G!)o<7h<#YCo^oV;SfgSr zai3^=^cwXAXyBp!(d$&5+8Oy}y@~;`@9R}l&_$Xv-k{<@H)+mzgX)|v>rHz+RS(dO z-n7S44FvHha-$js;!)&Al?3Wa>zkX@Bv5}^-`u38gX#+VFSsso_<>wb&gr?NihWR>Qcm=9HM zQ2Q5h#~e`0Elu&Zb}d45%hFi$K8?{2s(YXhX^ehQ$>-S>_dV~AR49nQs`-)111ivm zb}yMy$)Kri@w~h zri1qFqA$0r`JgF_&ei->Ewwb-1bP*S{8X(4SjQK(>10@{l9&<{44mxwNPt0j`2lQxMxc_Sv(c1YwEoEtqvuX>d zPRl_t=hQ_@PL~U+b{n?2->cqpXv_sws4deJ@8-BsG2f`#pgFt7#avRUps62!Qs=VT z(vEGq{`?iS%aP4>SJVLz=ejHEIEZsdnmPsI9FnHagCM%#x8Exe zc~$)aGMkGMiT2ian|{|+2#C|~nhFO+WT#s?RAEr_>~u?qDh*0YEfD!<^%&@8YEh!< zphp|gPCWHA=!r(O6Hmo}COuOi@`h>xn)OUkqBszLtM;bq1maS4Q}qDN+m{^ky&3>o zxo1yyLVjOZ|EN6gxopVUdv zftZa%UxRp+=C-;7;#Hd4>N@E5N69gF)NPRYcs3DzFqU(VIY00Hn7hh=eww$NCBy8>d%D&yY9Xll+6zQ0 zKqIFdh`FcMgJw@TLbMIkjZ*AawFfkqQtVgtF^Ip>cwc=A;%_wGSEoVAA125ArY?e3 zeK?!wh9#%9rz^&@o~ho!_B4^8ha@nK^t{6-V>}(xBO?qx-NupW7aE_}r@Me&4lU>T zbT1Hp9onx4f%xmte*H3tzW^Q3V?g``=zx9$w3Fsvgq{K7FHQ@+0K{LFmUD!m27JwT;*gSZ4}eGtSYKl*LOi& za~h zh}lFFK^&j?^i&YXXFfgGl8ev$`gC88iILvI7C*)0*IW8IIu-B57SLPzJ9_@Ztg(f) z9^h!t_^h!-bskHu1uCwKIHK~NE4H{U4XVC2KT!n`$Js-=I*8-!AzcT=VJM+vKszZ6 zC3I5|hoPj7192Ei>aLbt7)t3c2C`;Oms0wyBU|^B(pNxS_mt8%K|BXoTHgin9AIfp zpKoSY49@|U(OEz|2Uteu0`VN+!@3}d=KvqpB|#j9vbsEo!%$W~4w~P#SZq1{BxqIJ z(nL`puFoFPjX+$VJ))lnaeY=^cSwJa>a+4X-jWOZqk1`r>$6AokQX@&Q@lMNJ{tR| zp7WBUdu^YLt*Ae?Ks-9Dq_2bcE{w|hHi+-SsI0vqE|$0^s-g{u zYoaPT2Z(Qht*Y~b_!iiz`XLbC9{ad12jbgfAJExA;A zO4En4Z64&h=P8{9#C6Y8Iv0pT^t3JrV&9+EB|*G*xsEOm;=Rjt^y45tPZ;aju`m9MgFGlYG@twZ0dLM}I z^o`X=Kzyffef=4T@AR#&&w#S`pm||^8N_FW8t5CKKegWWWJ7%il-BwKBHzm{jrdOA zXLS(7clti7bAtFz-$uFsi0|}mq)UMKPT$7*5fI<$+gMix@twX+bZrpd>Dxp{g7{9~ zrutbB-|5>_KL_GFeVgg_AimSLneGnaJAIq$z97ESx49ky>L#1Tw$LL$17s_r382l? zhPTvHK>Mi;Z>eX4_`cug^xGi5@Ao;q3dHyQKCj;e@qNF~>+K+}8CvO75Z4T?^kER! z3~~A-h--#8{WZu$CC9YZmq2-=W)t18u`ZqTO%UtSN&gIDT{>(3XqN|Bm(DsXh;`|rbAecw zF1iqC{`};auDT>>{ruTP6)ibEyXlTe8G3fp@s3Ql5Zddf`+;5#p}l@O5yX1FphtpO z&lmJ0OU}*iy5E=#H@oX0j_gcZcRd2cb6wr_1dwXnGd5mN0fjXlOf=V$b2CBD9GBr{ zf?jCJji(dzCMPq3v`)}FKzT{)1ic@`TKCXLK&*8S{W*x&MSJQqAYK>ksjq;z|I$m} z0CE4Nm%eAoY1UhpoRFbeZ(ZJz;gNT5T@}P5@7}tOCHGz*oo`~sdwp~dxF=!ZcZ zOMP@D5Qm|!t_k8W^wklToSXgh!>?ty*-uw=Wca;)x(0~f>!<62_#|?F9Sh=};r(?p zQ1Yzgm;t&qXvwVEL|rX8{|4$7lQR4psM|U+$uyreP@lNznx*LdhqL0#jK)e%uw0;r9JJCn$S3$fJJxPxP@lNz4JsHG1(Z}eSAl`{S zMlS;KPV}*Q1&DW|kJTGMyc2z#-Ui~G=;QQW5bs1EuRjLyPW18m1c-N{Ptd19yc2zb z{szQ5(I@KfK)e%uqW%fQJJDa$_d&c9{WYzpxHRIO=#zAI5bs2vr1ODzC;IEU7>IYG zzpl%IcqjTBx)O+YqQ9Y^0P#-rH+4M_??iu7H?-vP?qvOirIB9O_t(cx)^n$^E+f5h zvFl@}=;Y~+@^)JvJ5@)_aP;~M+hV8b@^3jBLI-JQ=~PQoybCWJi=Cs(&t#d~7c^gY z1pSaTI%I*~1$wtfbjU(|2XsC8vRtIw&T{WPyYE!&+d9RPD>;kxW=Dqii7(b4fOwzy zVtoL_wML3Q2I5*HMV|t3jk!dh196SHM1Kq7ed0^?_aNRUzEuAL;@OI2Ixw3x8*6yB zVwnyBy-za|%XMzhQJRrht_y>%PEU?mp-X|(jM+qwfgWC&9J5ka1JznNo9Jl}@1I|# zqd~lXewA(l;{Efhbt@3>pI@yzfd;ouj#;A=LJ|j71tsV+`iga14M}vyJ z*(`RQehpOR%~nLo=|pE~-qCYGb?7Y3J9@b#mwVRhEAw26ac^e59zNg3lI_iG&~G|2 zt*Bkupx*-Zp>}11UI^k|!n=Aohh&P*C2Z7NLEKB&sP}+)9I#1$1mbbPCjBYs zCXG|y(_evprE%(e`XZ>;Ao?dP;1IdcZq+dh zGs3r3H*sWYQX9Tiw*tjd8@^R{0&$MqrV~J%Be&^6mYkdK>sE_0+OQ;3ffvfs{Sec z1L(v04T!Gdd2$^I2zfS4%GMp4ClOu%08mZ(4M$ ze^w{0bhMD-?1HYd%2Br7z3X4lyDYi7{DS_>k?lEN&|ibN=XgP12JuSvMSUH_E7=$I z9T1nQZ?w1C#S)jQZ*&k8O{?6ObPf=&a$nMgEIF+&>l7!mDScV5hD~0#zpOWcSeMIs z2Z;TLF`v7_2T=^$15c zUaso#AlBuoo&w@{xu$1xfYqwjvt0m{(kGjx1 z8UFpKOFFXsi63=&5cem3)Q^Mu#^vz;q@M)68W-mMq@zG@(wVf|x)Epzok_c`p9j@i z{!;xrx&tVB`6!}z5T84{tNVfY+}T~72;zM9vmOcJeD<@R2;zM9i=GPNeD;f;1LFS6 zJ-ryj{g-=sHHiB!zv_)3?!Wx1cYwG*abNEPaev~zJ_0(>mR6|rXQ1v_aF=lJhT%x#eWG zp2%YE!RB%5d1Nu-J*$iPntC2tOel!`%WA?w>|a(>1jKnM#FPecUJ5Z4KwM{qn(82~ zvqDWB5bK%E#DG}OY^H@Jr)PF^!^y0k+07l;d1fKI34++oFp~qsZibmc zmYkb8Op23PH*=WPu*u=eVK#y|d^yYx5WAVv>;tizIn6Ok&dpq=)s~F(%Vjz`vUNc& z6A$9LAeZS6nm}J^%WV=tv*>1w+-4MrbqO~UL99!-nFivx&SU0)IIi=U6cCr&yk<3s z%WYn>3B=_#pV;;W@ z-=zxo(hHgp5ckpxns5-iS;!Oyv73d=!=(T zgCLHxBIY=VUr}?-lJl>a8NNLu48=^6BeR6+f?{S8=zXdSika!4 zY_!j#xS0nkOZz;Eo28%w)UG^a)`HGayYi6P3}QV?m=8d#X9;rvl(=?Jt&-*#Xw2FJ zM5jQ!!coec1Mvz+Df2Ce@AD{az6bGr9;MAMAimF|j0x;;slxYplrbS7zR%-flN-eM zc|2?igZOTdvZfS>?-nU*9s}{+BIQgq5Z^6Q&O8m`dq5sB(ICDDPD8wIo>$^C+nE3&}Ax&EudxFU%%-3dAFZCrlKGM+{HU-ZJMq zj~Hs1=RrJTsAW2Wc*IcK#DjRmP}}qeJ<>Zl=1G$Xs@;1w(J0WqL2uN5%1i`(Jt&!I z8mQaH$uUoxIiNu_nt0lzfELk6qmEe(dgr6rM4Lc;XtzjRvja4e>bkmSKj?b5 z|5+1%&{4wdqxBn^u#cGNeulYc>NhcyK)1Wr^O~C!OC!Cs_TSfUVTK%X?-ghq+Mtao zcGyvt`MDdkHCsS;S`=>3&TKs5WOJH6)}XU_<0z9GNp&$h9oaj2x|sbSzN4p$ISQ(J zWO;$E=5tW&k>pxk%~{akz43XwnJb{Nd&_y<%uUewJ@I*8Fn2+}?kVTJVEo6d?`B&p z-BfR~fIf<)l@XH*bZvifOuQ)w`fdMgqLQEvo0DS_OnFd`&9jLf2Ms$$>mBAv(D-At z-eICZGWDA2X&QkFq`p(Dr+FUKu-i4$%X9!GbbF^(FB1=Xa_{C^y-hz*+}`a(iJ*Nm z_tffRMuNVcd4OmlD8A3pT7At_&?|jT63qd=nmq9!?GsxTk@!ZT{a|gt8 zGlS{FNt{M5m%nHtK)mnbMKk0?M(%mhY;t6_(G2p7W(VjX%^<&M_Jeo^TAg<4bnVcZ5 z&xVMZS4>CHLm$uz zhf!Z-#LKIukR#ilf7O%(aew|*^C*b>1tZMkAnq58Fi(Ma+%eKbfq2|8(liF~cx9A% z9>n97QKnav{I3URs2C*(4tmbeZ?Vi zx=c3XEx8(cvYG72jx8penIIlpOg4)^JkK!2tN`&m!xXat#PbYO%{CCvGfXvmK|Iee z&3p{vd4_4`1n3#++a#OQpqAucviSzYa}d+bcOagFm~MUoah%OC_dy(IGmJj%QjGJ& zTP8b*^Tb;wABe{?GfgoNk7Z_>vLGJI%rccgJeHYdo&fP!X11vZ;<3zZ(*VSC5OYj( z5YIu(F>OIS2Qk-l1@RojT+`2zONV);#+i(=GSAd;WLG2RnHUg{bLN?*AkGu>O&o~x z#C+2k#CdRm=>g(AxWEjuh2FE@{XF43O# z<)$i#>+2P!Hi+x%6(+`#({rVH=K}ja((4par@>0I@gma{ukp+#4c3_ammGz)Z{1*> zDG#c!wM&Byrhz3_{x+EeOP7KipPNiSN4_d8`!(2P?q#yM#fZ!7rn9-lggCM`x0soh zoSW~Pg_fpypSF6n!TW|@qQCv2?8EMKlI+87b1aSBbmweR%@-g(@sMiHfw*++Gie|$ z9sA7pAU^T1-~0^X6A$}M;9KV=pLqDtWCihwhYw9|PzgG*a=;VwP@=(&$ij7f52-8^H$Ze-XzZ}M4kHqV=)j;zh|rg>3=iB%_}DHcQn${Xz!YDV}UDXawb`tnF-l6AFW%Mot9j@d}}_+ zWb<3|32d(SHWv8SoXsS=YOX-G)3?9DRa5(W)@8K!wts(v@62RNE(WignZKijuz7$q zyKc5+lHD+SEID0nm?OWFeTMgnd%g4CFsCxfZkltDafogj{R8XbT>0MQvgCC6-W0Sn z+H2rD(%^ejB$MnXQ~GyQ5jM||n?IRxnPj)ko4=#CGTFRs-pM4pW48Q`c4e}8$5g(R zk$!j06ThPfOQSvZ{jOR6V}{M2&DP&hswHRhXH)H`jIjS=>REDO|Hag|G}=2#G5Cvl zHj~YJCN7iBd!`d?_VZ3RxMvbT_52qa{A&7VvU%SmLiU^QUY`4AiX|8GznOWNZ2o4J zz^3Qxo%c7h9yG*%wSgDhlj%KQ@JOcje8JCPb2z={3!chk(;xgMlTCl{JJ_5;;qwP? zWReAfcOYBkyV)QReEfDse2QQlOQXFv{k`*w;G3CbGB^`5eoqEZW|FDk*-Y=LV1+x@ zO*(f*>jA;)pj^FZJs?;I)Vyb9zX`^GI`#BMseOZH}L40>#*5D*iJ8G*!g2|vh)Vl}?&I9q;fzaR*5T6|g z4X$-$ea{wr?{~Dz(rAz4C0p> zy&S=^KWC&-&R|tb&cB?&{+VRCg2N%>^vf0e*vV`<2oGKaaXN$t zzXNePm= z``-aCF61wt9PdD%clPQvqKn+UZ>IdEv~(7hvK?vdsJ~*z=RMz=-~GR7ZXd^CY+=JV zePPCLr^6p(WAkRu3wV)a3hxISqTm6~Q{GgHEA35+$q0K=){NgAGXWa|>9NYvfQ=0o zGnt?NJ7a*u>+?9If9XqDn9qx978d6Bx=` z*5tDeb8c~MT;|^=_GCQ&=YG3<=v;O#xIFBhOn8=S{^$B|3$mjDw~4!#a0?P#YFm(x z*mwV2u0Lt;Og0Z>=O^`susNkUKd(JFLqq-@uRS1)NfYU@edVpDRxI5Gwx8ajIXg%D|6cmPp=@Su zAIGm?{r^=t@E>(&%wkSK*Asi#_R1n{?}C5(>~p_YKbn7U-p4lCegO7!4E@U|zGeJm z@v#g$?#bIL`N?_;sldDLc?D|I1K!wf{QLs-2BpXTD%g3<_Lp3UoNl)$KmT4U);wLq ze>Cj>uiEF_mEPN2a)^I->B8~G?OOWt|5wBQ?+#byxXm1&nM<_${nyMj37i(r{C8{n zANT*K#lX0?IQ9Q_F8ZIQv(x9V>D;pyhv<*yAM^kJ%y9jywEAoD^T&8_Ph5;S-%qUN znz>9vZVkUZ!mZ)?mfRYyJIbwL6&ed`ulyF;PVCjC7S?BN`n=b6@mnYB^IK_s`K<#q zE|#|SRNhlN*(OW;@MO~3bTkM!R@k8S$A#jkOUaj!n$oy)=YonP#NpW=}1oS_lH?{gaGWU`s^*Plx- zid<0M!;}iz%V$%;jU6}z{a*Ykes{$JHl2@uIi~pioM8vU8fG3%Wd1#ga-$Dp7B_Nn z<{!spYl7@fL7U&4l%J%JJ}OhVoG-$Qp?sVE-1*K=ge{xW+iOF2q&t_~Xd1;B@6a2b z7xcKiWbrO!^}MWJZfXlcJpY3hA>Fm?R)@^4aSfns4WMoPU~K&mwDm(4kA2B%eF?F? zgj$!g!DSbU%(0OXiu5?iuoLij?orseN9m>784oA@Ia3V(F%I3hEaTnuu>71YJ;u`g z${h2JCuGFoUvoiGT>U;}-8^UJ5dG1Pd%`g(ewQmUp8N1Tb6DJOH%@nRj4toFocZ^c zvj1M2f4e36@73+U%lD7sxmMw}Cg9~HQ+Rc4-sa!wz46RF^S`WZ((`lXxrjf`x3e^T zc7o?Ie*f0LFYK;I!Q+wi+VbD$*MD68PYnDg2L2NR|A~SB#K1on0~2O&Tm0>Z+*Udl z{`lmdbNL^A%dIjy^B;Zpzso+4>(ghv|Iy#Y#`C+aUf`JLcLnD5`H9~?3E;^;>T+iL z5$|z7B=eJh^tYQ0aAxi`?3(+{BhB=2y?YX4W5bQ{-4mBCZbgiHap`?9w<5-CVZyG3 zNxK%NXjB*$roFLttm;NOe~(SKQs(UcSF2-TVG3?$UQO#iiFZB}ogNkz@V41Gd8cR2 z-K-~@e(xQtiF<27Gk*T>$Z4P2m~@)+%Al~Z;e$EV&Xe$SpVxxMgMKfL%s;N{xiNUa zJG6scaPgmcESd3KdgVgcg+EF;?c`s5_bR=WzMto>x$o>a>HnOOTE-|W;8msg$-MrO z{v>l=bvePAF3F(_3x2coa1^0w=sUPzm&qea@!IYx{c#^p^{XKsDb9P+WztPW* zjO_ZdTeExKj#iw88NYv@+uh0|n||;0mpBeHyXK^S`9#3xKdS8?{rY>JWcKCnvH$nj z`OC5A?`OK)JjwJwlqN1m>HFVC(~Rry%i4iZmb$XWBUAb&&wpv>_wk=ObpMXu8D%7M z>G;QW_--8M5VvE2fBU?D)O0OKy+-~A?xa6q*Z$AL&h?(p3t5q2wm-tZH^s8KtSjq( z()NgWHr~yZ`Mp~7+~?J$Sx3KDH;#Y1)`9i$dpYgA>o?Q*cVo#?r)TDwtN(M&|Ftgk zB5l+4{MWkt&$>n{2VOaw3fzMD?W#)P4^LbV#7X~k`g2PCKHW>U``5&ebD8(g{Oh#+ zXJhyu)8Vn0f6V^>9j%-%g{lAS^W3hdYdtf@FaI}n_}hNDdM2|O%))u>uI=+Lq?S~8 zRX^Z9)m~cbQQkqD-(0UOrwyI^oq3+z^{L#>+jGk~2L9c>tbcbN$WOcA{GO|eveVq9P|0Doxh!ee_QHS$1>J@|F@Oyza6^& zNdG6qK>Ri?9b69tJhwvUdK7L&I73S9rtNjOHD$LJ{IuOunz6o|oVH;Pd|Y7O#p*tW6Jok?s6Xh_Sz|!}R}!t?=It(LX2EDV(o1 zP`cCX$4pMU4b<=QdpBro;`6%N8Hvn$iU0V7N4S2wyEuIh>K~u*>`nSy7E6V-pS~;R z>S6Zlk8k~RA^PK6J_@7Hb2UHz4tS-h&QIU<`q!TSQJ;U+lQH{PpF7l7@p(lJn+dOR z{5)oNR%HI&yf;fT+jr8!G#3=`o+T;m3ZQn==RIUw%)e$jcijAgGu@NSarKJrX*jdi z6n67&Dw~;qXSV;he`kKn{oe7+|G#Tj-^=0E@iutd{qNHMM(>1wGyQL&|E=`D-Mixd z&?^}@K>vs6|1kX@q5l%TnW7~9m!tnj=)XMuKT7|P(SOkEFwN)XAX9ny$;{%FC6jLC zA~W2pX@A$XW~?=vS~Jd?ovfK)%?V^GI@8bZ27UbdT%g0Wf?iOtJNe0c$SX^x@+y&8 z&Z}w7So@^EHD_6Kk$YlY+fBdeM7sz(UXS*i@Vg=O-OfhzL@j)Q%$2Lhd#6OcSM((509}J1zHVB~x7*v*ytJ=8y>;KK zYTvExJsT%{wY|%&?s|7c$M$V~5%jzfN!gu-R@%@?TUh&TtzTWOUoEVi7S{daR(jm) z)9#Y*xL2yfH8NYZ`@xq(vi`@t*^__v6_>-;Wbu#m_)Fy+ig15%IcZHv|2Z%Fgv$Qf zYQYCPO>`BwbHrv$z1!SrmWbkc!1-)Od!R+ zwc5TF;Z6DIt`|Y^5JS>!35~psUhBAafmpe#dA~qIvVWh_W!~nbz;^oWqu3 zD{j%d?a1U*J}9EM(%q@>H{bD}#69cgJ^PlRJn8dptdcHOe^$ z#Ru)5F?YqT<}qfg6 zZ#6n;>iV9ZevZtX)4wsDd>@2equ(XEeNT4gy`a2PGVgdg&F@>3Ef9?JmB}G|b$zAi zHodyOzDwC$Fqh3=lG%K0dS!pIjqPNcTas-)Nw&G}pqNmvRFL(2B-qsV&|8&*i{$-X zHOWjm&@edHzLjG0+iIJm=2{o#+WfZBO1E2Ss+DfE(v4Pn$VyLG>1iuHWTl6!w4pb6 z%Uy4UJkc(gWj)!28vX*0pQawOiJ;i`KP^*0p<9 zD*Rk_Li}73?^)?RE8XpjY`if`Za?SzyYk%BJy{A_JGuQ__H+9=Wpn$v1nu^{yXMO* zC9TbpR$9_ZOIm4p`@E|4rM7jUytPvv?~dHuGAq||oNueN>7JGIPp_;#HRIVKS%Yfu z%;98qrm}NT)Sz&kBAq8?J>~1)YX+GM=giA`&X-zman|CB^*QBh6TOz656ixZ%ng)d zIfrb|8ex5JXnkMr<6AA$Y}nI$;-CyEt5!s24N3Eju9uU{pO@zkscBtH^L?|jXvj_9 zij}29rUdx*wkd($lj+-XYJEa^x?ha%fs6HQcw(kh-c+qv()WRb^kp zko7*k^`6U1nLrED;iPP9b(lmNen-E#u4`dqqlJy77B)^=_?ty9329;Du&nAcKPcw$I#G3#rGieSM1J6)$qWG(6as)BgT_CV)mP4lU=UlZ=6`!U&-&Q zKR2`{Nmr5CcX^4>x}<0JEOn_QZVBybW3`tJQJmGklYff(F0_;XO3Uv;6Y0qhp;Hv6 z>?|^~Wt*aQY|cYw+?2xE7OA%aCCGf8%oQZ%Z>D#c_AvcsJ1eZ6t@hpBWLD0$)jr>9 zpC6?y8e-T*-D^CUm5J9hJ)5*=JGgRSB77>z4Jt4R37G z3BI>_7NF;x3JJc?_t(mv;CpOUT{4GLU7g^o*{wkKgW~iv&yzWFSE=A`-`?hPvoG?m zPuP<^*=o-HjXq&>t?zSfi00b7mts>Y#k#ymmfZV!7?-;xA*=0M8_B-U+i2}?#1oEz z^0v=b-uBscd&3)@q^0VP?Z3>q-MXJ@^S~kN@^<^~b{lW&{X4Rk2+g56^>gUa_3Gw2 zVeKCzvoZbV_&;s6x@h0MXtl~u_PdkR)++wVNBZPCZr|GN@7{VS{Z2YiB9z;LvAMYR zo0RJmN#7^)xiv4D;`DA9xye4Bw(f8B-)c!YS?8ITJqwqPv|IS+Hw*Q~#S`rC@W7};UkuH0#4^W)rg_2A7Xa^IxiUs>~fZV}+J96~MHUHTH^v+I7a z&wt4stA}MjX+mso`L6ZluD{jR;rgyWcM9E9Dv)lW8e|&iU!0hH>Uj9IBx<@U4U_O0UDpp;XJt{m_mDv{^vdF(~=DP4g z6c+03+pts$@Qq!S0+(AI3}57L9d|OkKWR&6GIbxi6RW>Y*>*R)W}p_;#x(;&XZ#jE zQlFbD^VAHy+&C+lZ|o zU{tg4yazS64kK;6H4UU5EuOb&Ao!f{H4VHF_ekF3T6d{J_WPtX&U;R8O9=P+2g*iv z&f7mQo9;n8i0419iYMv%gx=)ZjqW<{1afUa-ZVLde90l6J3c&bh_`;cqOUx3m^M1^ zP0e>i-qd_IGt{0j=hso6@SAOm- zP|uUnw?_Vv-m)f5^5+n?cj^s&>AC#*?KcUwk_&zF7pHgW+dYAb3x|?Tc85*6yOYdu z`MX+QdRd(ZS)IFDox56{hg<3J0FP^iTTO-sxF?@P_InkWMD}B-_s-=g*}j`>OU)!} zR`R7%4ymi|H@Ym#k~{PTSF3ZP?6y+)YWmu>q)}Vo_Tl9P4vH;D*OJ*|(Z&K?@Au-wHq^#9H#p>e|ov4=Jo_48%Y1U40F>$BxC5o_TDOZTweH#^|+q9RoDA+c@qmTRn zuCXimI#E9=&Ex)aC12~7eF`2Fp=(AJOtoX2)#Of+f1@?G+q|7hzsm$tX;gJm9%ehUCZHx;^?bKqY8C0 zgF5!k8>@KikYGb}(fSyxuFu_ADAkVR`qOje)u#Soi^6PDy(GBTeJ#L!_-j<6@6v6v zUq`1EZb~uvc9Eu{<@A+gez0;qnOz%iCbRg=9Yx~AX}ViCPPCh|x5yN8ZtB4zw`?e8 znOw`hDpJ=Ua_C%%*qLhdXX8AOyEx9EZQrTffdN5!zI~ zzWMQ@mE`3}9%YZ|+=|RYkpuk2#Vb4e6-|_#s7(x^*hr$Zm{TvL*b4L5uAIek3){~W zTzjmLulFodtiR2%`2*Fb)-IMmP>;;@=7*-SWaj)(d5JbYx!3ngvF$cy5_}!o_s+}X zl=a28dpu^@?oHlxyg1KJdCYsNB&wJ>gsoQh$L#J#E=cd?8^9tDzacL?O zXiMqRh)NcZmrK&~b|TIkjsDX^3-y7+xE-9Cq zAEVclXkl}RFEFQlxW_%fk4j{t`ME|Vvw0o8P9BD z5gJr*K~xl~4Js`HVUsO{DuO`gkgyzNPg0eL&?L%|5S9>9#YrGdNCKkbf?8!jXhB8A z(ZNxwh+C`UAd2G3eV$)^xVPt(VeZ`5y>tJ0-sk(RdTQ(H<@AYY#tX*SH7^=t*SvI$ zUGpYw)@XCPHg}D&bE7eK?vuLoX&Mxx{ZfDajsE=N zIJ@OPjI-N$W!$l5{ZZquFyl$%KWUG7!o6lZa>7^5_~?We%$Q6V`G&Fb*o1w}_~eB5 zn(^rgr<(DZ2}5RlcEU|&{NaS{X8e~4UpHemVW$~?I^l0-{N;o__8Tj|neb*azBu7H zGyY-1MP__u!p&y<+k^+rCUNi6;GX?__-e~Tkfp?nm`T^gJs|MDX@uq>N%(!OYB{SYWF#Ano z<*tDbnK2p|G~>pBJI%Ox;BhlPFz^R6J~*(~o5#v$22L>J=Lec*e01PZGbRInHREFg z?m_1I4_s%)-6tky96#|#W}Gzf=VqKT@ntj4m^k8KbA2XGHsih%4>05Y6OTC9+$R(5 zo$&NTdnY_Iad-2W%A^ZSKV_2bXH2qvWs>bD?eVag_2E7KV8&DT*zYX^GGTJh>;ZX` zj&(DdD>nK3w~Uh0CO7OeXtI3y70}$(Q^86)`_w}oi5AO zS+Y_+P`;#V1}>1x=bAsNnEi|#G=C~Hjvs8Q(*|SX zpp2Z|(!B4W`RAsZ+nNs=%*Z)*v_E{%d@--MlFeB&K(SH1(`SXh&f7v)B zmoBQR*DrGE>zY?D^2iO%#|;ML5S!Z1AB@N`wzS{0C?&Twe`!%h&atEYv_bPmQ(R9h z8|{5oAv;*re$${!u3=sK=PvNc4b87E49FoiwI4Yckz;IW|IDI- zxXAqBxHxVs8;9iYiz;LXtJ;rTTqD;t@446`H#G0JI3S1E)c)|r5jn<|_Qx(x$SJn9 zKW;E1=h)GH{-F8iImPi}**GNrVuxJSeA(g}xvn`F^vMm)pI97{o0?x;7?WF?#}B6D zw&rPrIk}^G-@(#I?my#@+_~5xS2YhWu954Sw=MR_J~p)f(&B&|VpDr_y~r`Pw10k4 zLQb)*{kFv!ImeFnPcAn9BkSUNVc9q&hYwcB4py~)evwPAVO{%Y7kgwM8`@ubVL%SC zsr{adBXW!_?Z;k}kW*}H|IkGlImeFn^DZ|3^YG&Mv24`iCp%cx-W)%|dSM0wu8wTb9_d7 zJsomY^LvJB3=XG1x;qdB}(%*Qx;UzMki2wRh3sHe`|{;3xrTM^XJ77-eQap|)a3y=#HRL_T@jIEY-xY( z6$v@Tw)StlG9%|G=D&WS*BvY9po=v$UuNn0J_Z3Qmx1EEv4Re|SVJEJ3^BqO6HGC~ z97~gm{Z`OH7i;LDj{$}lV}dDWn4|2$d13_}bg_mW`WRw_F(#N|j_v4%bd7-EDmCYWM|Im&eQi)Ewz zy}v?su&VvYL6=;^y7tosJ+hAt?Z*#>NY-zvq%7mO^Tl?!5W#k+?+W&o# z%;31OY#fr8udI-(nvWZF$#u>12R(8_^O&mwa#OSUJ(%3mJZ&%`w>6vJ+sPfxGp~}p zisL97hvcBE9CB6jGmBhu4d)nF$jx)>y8OLYdGtOmFs_s>bFHi8S92T2A^Ff%0n0;N zVO%Nu9B*AMi;iy^hvc~nB9_NEY+NZLPq40*gK@=)Et7}jjH?pXOL2#Br95$xb+!EE zq_)xg9)DrR@*H;>S4#C{>uQ;Ea>qC%y;sZLJT6!^4#}p$3faL~#+CB@ldY@eT_33$ zhvdGiU6$8yj&Y@I`iRx8S2qsHQP+4Z_c6c_R~T2y3m=KdF%E10>PM`r<%6dr^eOJp z<)1jkx>~+)N=BdKPF>z}s&%y-b!us5alXCAm2&N=*46U0Q!Dfi&eG+7Jk@H><20AP zhI4fJ&}r7y^2ljE{Q~V@I?cLT4mv%c4{?PqUvRp0wKPwU=wlq#Ml?Y}bLYM&Q{D^6^iY`ERlViA!I@ zIlBDAXV-Q4wM%^Z1=`PA(9r&qO9J{3SLkv%r>V==FNx@59M*_Pu%#}!hI6p4%U@mSk$qf%4PAcFU_cIW1vYj0w84lRV@vz* zUYU?n+<|RfK4)o0&T%Jpbot3kOZ)M>#;*wX%vr73v_wzYp?X-?jW9qqrgw6s6Rk7eVKJiW9+c5oI}b@@-1 zy5t(p!MZMgd8tSCaRD}T`G{o!Im8v%)a6r_MdTQVv8Bt88%)S4?!dM#pFfz9bKHp? zU4FnasdB$!FP4o%a>vpN*}+*@)#VQ?b;&iHgLPg0&Sf6i#|7BX<+Wu2Im8v%)a4&q z7Lj9YX@AnPgq&hq`}xZP)rBs( zhI6p4%kNm`k$qf%4PCx@SwIeP1vYiL`8|vrV@vxlFH6WN?!dM#e|}j`?r45>p&ZEh zV%az(zh71%J6P3zkH96@u&#YI@W?(kv^ReTB!}44{;(h-$Jo;T*dQUN*w%h9$jCW% zwEsjPZ{+x~Y#fqSP$4^5)xI6Lki03ZkR7aQ|E|y_*RZbr2SbnSV?+A~mWJe}=Ci|y9AiuS zJC-Ko6x-Slg&8@=j`r7w@@9@3%SQV-sX}(Js{Q&UF1dzv?O(jcBm3CUzGq254za2I z`YiT*JEdJ}da|8|3X=cPtyt=Z}>YvV&FaYpYyx4eQ!Jzse)~*wFs!PX^== zo7zwPR7`GZ{_Lj`a*A#3Pq{H8=h)HyPdCaT95)$$IGAInDj??x(Q2dmnf ze?LO5Ykp|8NA|Iy{rV*VImD*+=dXy!F}Ae->gt4?Vq5#~ug=IhcCk=wHLPoY$QqCAV?+C)B_X+~`N%a9ImVXu z$E-=nDYmsgbwx(bv7^1YU*64eW7(+p3)#V{_On8lT*JEd=dSU{J~p%;KNyfhY-(@* z-b0SDrTw<$2|2~K_RH2}`9Fm_db;woCBbK@38rHR+vdkm<*wEg5 zFG3EnslEALgdAf_`y1CJ|j;< zXV$pn8rHSX)_7ze8`_)So5&$HwLfSuBFEU$-uxYooMKyhbNu8SJKEo|Ob+Mxv24`O zVPprZ+P}2MCD*X7{i!QFvX23V7-5VFrkG)las=$e3V~8=Pn4`?$`d|eebg_mW`WRq{5yqHcifyC) zdv`|8v7^2DzWzv#2g}AGnH5&Z4py}{@3Z6@*0t|h;*ou9Xuo4gKyGRteQQK+X`Xaz zLT+o`5@zI%<}Zfw{^Iz`#vysjtrc=r^HI0D#d~^aGb^=`SPt5vV&FacV6j|YgpI**;_rbj}7h3-@C{m zHnsoFtr0oKmiFfFSmYGj+W+a+j#^$TALKZV`u<3+YM!>%CD+Lw*~f zjmR;!v`^P29Fi+nIOMA4+irKsHLPp@o;y6Uj}7gA zbVooAv8lcJyh@I-rM>yQN=~t@{qj3Aa*iGC*DsMe$BkvuhjvehET`wQvxUp;;l2h)kkR7aQ zpRRSuHLPoY`fWbBq503Zh2*B@_uLVaTbh4#M@nvMK7U0=efe%Vn)}nJ-$#+Fn#XN$ z$#u=<_i%DU^H)~~1`6334fbkM~bdgx<-Ax0Quf+=R0qnynCv4Re|SVIqe3^2qP6HGC~9OWbI7c1zX zi#7Dn#{ff&FvbK^%rHkeh5cg%9dxmV9{Lzyh!Mt^V2T;$D5tW2te}G~*3d&A0}L_3 z7!yn}!yM%__Ky{G&_(-Sj<@dv9{Lzyh!Mt^V2T;$D5tZ3te}G~*3d&A0}L_37!yn} z!yM%d_Ky{G(8U^h=wpB(Mi^s?8RjVS*e_PlK^JT2V}Kz>7-NDdW|(8?%woR|*3icg zBaAV@6f?|G=5sz+K?hx|p@%*O7-EDmCYWM|Im%h=A1mmfi#7Dn#{ff&FvbK^%uzh{ zixqUx#Tt6(V~7#Pm|%(-<|sb<#R@v;Vhug?F~ATbj4{C!GtBX)M*Hs)K?hx|p@%*O7-EDmCYWM| zIm$xzj}>&##Tt6(V}Kz>7-NDdW|*V-kWu`eiWPLw#T0WaT~N$(u!gdz=qu=;i#7Dn z#{ff&FvbK^%rHk;%z0o1UGy-(2op>(!yM&8wu=>X(8U^h=wpB(Mi^s)DQ1|XT*Usd zf)2V^Ll1onFvJLBOfba^bCiqOKUUB|7i;LDj{$}lVT=i;m|>1`3H!$iI_P2zJ@hfa z5F?B+!4xyh(R}GqJU_644!T%F4}A* z{-F&CImNd2M@Jbs$By=g51NZxy#8R>sQ*0$vV&Fa&EMU~HLPp@&<2m}V}Kz>7-NDd zW|*T~Qyf->V{bG>;!F2X@}CqKeUe z-&ECn(4b4MYd(Cip_==hzNz_{MG?8B`Mp;q_hfR89qq?lRSJv!m5uuEDaa01 zwI4s|l51Gk{*}llH#Bb=49FoiwKsoHAjjC!{*@>pr) zJ1*AHLmvYSF~S%VOfkb8<>MSLR?tBgYv`em4dXiV_y^<=oAePm#+LSL|mANIxMdYyYw}zv)no?qc(c< zJ~njuUK_2$a@od!KE$RjU$rqJ$Jo+- z?MKdb$u+Fg`{V{WAUDYoImQ-!LQb(wpOJIy(3hIU@s^G2&4kDo)XY92YeMy``RvXA!vA4^~7$RRfA zBXW!_daJ#^6Z#a}EVtVGJEPCBqs#m5wGNASudFJLzl3GuI=TE_>#%(P-U_{gRb9Sn zqf4$~UHhH)dSo9P^Z_}c^SPtCm(fioYms}@Xx5x#XJ^BW{b&EW-IiPRSN8}bc zA-BmHxue;~H8=Cv>wGPY9%>jK=d-HxmZfV|m zZ$fU9GjfM4x3GWXI_Ybbjl*(wt3qGZ-aJpqboa{qZfhPn+iK4*qwmmLZ7*v$PUAZ1zrSo8mNW0K&{ws;_n$=eM>|00eC!qY)ioUOHpwx$MNY|Wa!&4O?rW89|mANCD*V{Z?&HvJbE7+EVtUv4*`9M5yqHcifyC)e3+4Q>}dbX zjb@=*VKKDr5(%+MCb4bUxT!*Ru&VveO)j~Hb?wdT9l4>|{N6+kv8nxqn<8?IE$z+yLr$?xpOJIyXm4Kk z)^prgHtKPc9jt0^t~A zR{dOeH|K+8<2spppVfX|tk74rH|ImHYo7f;;erP|`iAx!9|*`z%`ZFy+`)3K_8GqY|=;M7+drS zImNd27jDYPId-()xk;kp_{&DUf5;A2wKvC2u3??tBm3CUe$~d1+|+#WR;zuSBl?#1 z=DsJlHJj^9?r6Svt5xrhnBz3+^(8x4rFY3StZQ#RACY}*&HR|!w$Jo;4 z<~|{(*w+5ytyViPqtCHpw6E)O5BCd}jqBvITPx(M=2=^3LCpX9e zImD*+BWFkC7+drSImI@8M$WNAZw{t-oyW3qom{-tYR|Vq?_gDzo8Onob#&U6UfRfg zWz^3(+K{Ny^>CpX9;xk--6Epke3lXG&1T-wC`jrRU<$W?NUTqpbF200`*$uYS_ zPRVV})3z5Lx;>}w&=(%My>u_fV_YZGwwKjIw>$Jz&E~q0>tvtY&^&E>NN$n~58WQq zx9AHG-Ja67wI4Y^PH){J zZ+Or;EdGN&%Ns1W4$B1(hV)H(>#$t$U`*elw+_p-52o~Odh4*<@?cKip|=jph6hXc za~?+fc$AI9^2~z{eU;uiEI)p*Mqj754om03hUP!2!!rJ%koB6ZXSJWJWBL}o)qb8% z=-b-A@u7^IV@La&9x@lLc>Tn(ah?3|p$gf-s`h(-x<;;RHt%0#9~<-mIm9M?M2@jV zpO8~*Yj57SjQYMspJPXto6k89aQs*{+Us5+J6NT6$u+Fgdt@IQ+F!iYYWE+|huGBR zJ2yq-7+cz#&ky7j+w>VZ$By>q{dX(pfn}qiN)z*wp1CXGi21Tl5Jz#WsCL&atEYF`q8n_G#J1d12YOP6i&XkR7aQ|MrJnat-U+ z&)RCWpMyPm9~-*d{60Vqu}L41V{B<}9v^awZTgIyV@G@Q_-yAqux!-(jO<{Q-X+(t zPVbR@Y|sbf5S!YY&wEDuct!Lvwsg7qyhl#4O`nrHn$71`quq`?$a!GdsOLd;uuAWe zYgniE$UZi-U$rqHhuGBqrcGA+_m7A^#+EKO=Rr=fO`nl-?9j_YoClVTdLCp4U96#p z0Y;c&hB?Zo*$+BcLmxwoF~Jlw%+b8*7O%TlK?iH-p^pKE7-5Vp zGjfg{?XP@TKEv@~1s!y;h93GDV2DklJ&uSRV@vym4=3al+uC3Ga7NBiKFe`o1s!y; zh93GDV2BaMm|%)I%IDZGR?tBgYv`em0frc1j0vWgVUDFoiv3s6K^JT2p^pKE7-5VF zrkJCAp7X^DI_P2zJ@hfa5F?B+!4xyhQNF!RGeGD+f2xCkz#T?~P_KOvC(8U^h=wpB(Mi^s) zDQ1|Xe3|`Y1s!y;h93GDVvH%~So%t_eFtmkV~8=Pm}BXy#rz67=wb~$^fAB)6U;D2 zNjQJ3po1>f&_f>s3^BqO6HGC~93^G{SV0F}tf7wqh8SUtDQ1|Xe2x8KpYdw*`P?D9 z=%J4Rh8SUtDQ1|X`Q@{CU&RVK=wc0h3^B$OGt5yQWBXV^2VJb8hdu@vVuUd!m|})G z%H!-GE9jt$HT2NO07Hy0#spK$Fh}`1`^O48=wb~$^fAB?BaAV@6f?|Go?!o2K?hx| zp@%*O7-EDmCYWM|Im(mlA1ml$4L$TRzz`#hF~Jlwlyw9tId;f*DH2e00&n03%E=L&=$sE_xVXgb7w&DCW87VSo`Pn4#<}=6M)k zgb8LSKjrw)MGpgvFu@GvXUsls=8z;@6@4+D%a!3^bP=A(-q1{k6Ik@e9<4+D%a z!3^b3%*OyDOfW-vh4s-z4+D%a!3^ck%tseJOfWIV1_b=`RJmD0Y;c$hBB7<=%R-KMwnoRGOm~( zVS*XTc(#u&dKh4Y31%o0n2#=c7+{16W+(&9M;AQ|Fv0{gl!?qo7d;Fx!sNAnQZX;W z1T(DcQ7m`S!vG^pFhkjsdFWw)5hj?SOy)e$MGpgvFu@FE3iC0*2ouaurm{Y|=wW~n zCYYg2V?G8LVS*XTbk;`~Jq$3y1T&Nw%tv>hB6}EMgb8LSvzU)AdKh4Y31%q!G9O*^ zFv0{gl-bNf7d;Fx!sNAnzhYj531%q!vt4x2!vG^pFhi*_A6@h?zz7q}P!3=|dKh4W z8CDJ~)_2jv03%E=LwO_nK^FszFu@GvP0T|VJxtzQEYDC5VtsVc!vG^pFhe<*`Ix+g z?W4Sv<>;b^0Y;c$hVnM%ql+E}7-51L%G;TbE_xVXgb8LShcF*q^j_=VQ7m`S!{D|4 z&|;V1x-~DDPrEdhafBfDtBGd2g}YMGpgvFu@GvaQ1^PdKh4Y z3Ca=7Lk|OtFhOxyA6@h?!UQvv8uQS_03%E=LwO(bFv0{glsT-2E_xVXgb8LSM=~E> z^f18W1I2n7$_JT;E_xVXgb8LSM=>8=^f15(6UI zV1{xc`#~2yl#^JFE_xVXgb8LSCo>;i^f15(6Uo03%E=LphE4=%R-KMwnoRays+TMentI2FH&9MwnoRGLP+HfDtB`p`6M3=%R-K zMwnoRGN1YAqW4;VR!XViCYYg|&HCtKf*HyJ)IV1{x& z^U*~Q1B@`i45h(*bkV~ABTO(uZ(%V%zz7q}PzKo#x)@=C8OjB$k1l!`V1x-)78Ubc z^f15-Wii`F7Zc1-E@VA)(Zc{El#5s&1B@`i4Bd;1^*szQ!UQvPFJXNQFhX~TIV21KB=A(-q1{h(28OmkMM;AQ|Fv0{gl*^fqE_xVXgb8LSS1=!4 z^f15(6U<)guPWvzn4w(FcF{!-1B@`i4CNZ;ql+E}7-51L$`aIV1^PiA6@h?zz7q}Q0`$qy69nm5hj?S3^N~H^f15(6UeH;#B<#A73#8}Y{x`;VME@(&~5H0tD0SC6`D)Dxqg8?{^cwDLLSwdE(v ze<}Cuw#RP!@Aj_U26tP(+q1j%D|`dz!9u>1Di zzq9)vci(@^;bV>;vv$lqV?I459rL3xePi9R9~gW2*yqOncI>|6-a786ac7RZaNH-x ztseLAxNnck$Bi1lVf?1?kB$G=@#7}!HQ_xIPM&c7gk=-%p779wCnx-3!rvzBF|hx@ zdj?J!SUAuexM$#*ffoiQOittcJM{-se?RrD)7~@f#%Z@sTR-idX4!`|bNV^cubO`S^n0earhjJoucq%kwQa8__xjylqxYV@_Yr%~+q-|}n3>aN?l<$zGv7V){WCu_ z^Rk(D&HU`leCDe&530PQGN*EUWl`m-%Jr37D(fqoD-Tz`T6v~Ya&~tnJNr0CILn>& z&KH~~ogX^CaQgQdyU&699JSAh`z+n(p?&_ePyejZv)(&v@vLiRePY(CS+~r(eb(n@ zeRbCNX1y@$m$QC5>kqU3GOJfg(kHt~zw9m}WUP#o2_{XF(Xy9m_Lea+)3lChX2~A% zcG*+jDU;>hGDY4aQ{@PmCaz4Eqhy90Z)TiqW}IPWoGleuU}l{!`^aK5b4d1;%jFHS zO!ku-WPfw-R^@IvKw5I3Y?n96XXQ=usJvNHIY^$6gXL*?oBYu1?Wb~x{6gL#9XV8f zZT9@4+4Jw^y)vS7xa?UvLf%|*%^$JfCvPpyk;6(y%6m)imk*XcAV-xxD94wMl9Nhx zIi>U=IivJp`Dp1Fxv6xl+)_GDR+r|QH{0W7d+7vuuymq)x^$8}T>6MSQaVL;lunh$ zOQ*?`rPJjbr8DH|(meTQX})~Bbe7~LPkvtV<=3UN<+r5;^1ITx^83>H@^WcV#`jzx zlY17)w4RG)M$aX(ch8U<+;gcM+H<+Qv*!wVch8k_WY1M{RL|9Nbk8;Nk)9=TdQTu; zPbiI^<+8A6g$(w5To(0QCl~fyFL(AdWw_@C+1j&G9_d*nU+np$e7WaSlJ?vvPxss; zJ9}=HU-aA}zwcQsFZZmGS9)%hzx1q?zxCWEfA6_n#`WGIlX~xzslDrDM(UwVHef9w4h z>FxWm^!5EjM)W-|qxv!#-S>iw?faSR+4pnVr|;J?tM4~*aNobmJNkYrhxPrNe6a6# za#Y_-a$?^fXJ?yR7N^huq%x zs@%~hrFDI!(%pSMrKqpB^hjS{>G8h)($jq-O5f@mS$ei_ROz4k%B8Gtx6)7hMwfos zw|nVVePc@h);G5FQs21JKl;X(q<=!GuYaI4vVUS}_x?$xvHg3L#`o`8n$kbHG_8M1 zX|MjNr8)i6N+0Q;UYg%OqqLxZuhRMbdzS|LXO=GPuavIocS_6p_bGk6e^#m4zi;V= z{x_6X_U~6()xUq~*8T%ZxAz}dx}*P%r91oIR9e^n=F(mL$CTFhA6tt0PcCij7ddO( zKaLjp!ESbZ`Yb!{f2x&jQ`^L zryXPW{$H8ZeI0h)S8=ArI>k0$@2I-hEY7I7XS&bpyv^SKJpNsmKJxzJiZ%X|b+LvqgdK}*{!kymjrxdJ^)WqF$Dirdn|PL8bIsFN|IhWikMPXJ z_86`^-9F+++;7)>-&*_gZfot&-_!jbdShsQK5~P7EavHT-t}CH?R4L7#oS^$#g>b? z-Pd#1?G$%Hv9<0;vzWWmGydiFZ<=xW;_sR9(>v^%&p&3zTW+!Ad7J;)j88ma=Wf@n701(~?+7#WXn%UN zU3%*0?fAmC?D#Jy+wtCS+wr~n8oT3D_UD&;`>Ol7h4$y8KV-*~^nK)gP5bi!W9?X6 ztKuFg&bQcCvERM7*mX7>Y0tfTJOBAH6vtWYz595I{T9bi?7jQ3JK*BX>}9vxe{RMv zt+wO2&%9{H{rc^=>v0y3%lxm}b9_R_kL%dI&40vyG)pIZ)UNZ2zOVI{?HS#n@3YtG zBYw8_8+EMdxI)M7?X0{*j`{anxbN)UO!Jpyycy>myQdk)TtCB%4~@6i>LeXk=~x{3 zH@|NCTesLFDVjH3WSdLR`(Ka3z8BhNxxVAv-qk;FoL%P)C)%Z3KWfMC+-0{jcb*-O z(KRbNe&Kw(=AHTpq5F!Ru8;dZAF@ji*2n#y^*R(+W2^SX^=azemF{lWEFS&hQR}_~ zzj&uzy4!90nDc#ctsRSd>^kT5+Hp;vJ(rjD zF8#57T6k`*?GJj&J{RVWIKXVVdZj(bMYq_#xO(&T$k*!FeRoaKv+jP>US9VWvxUuH zJIu_UDG5vYeI{SP-?F05mKDW^RT%7Nm z_3t-Z{_&BvdG18J^d%h+7_>jHy3&p#_2)(Ub8%jkCvAVnN;`f-Ujw^8z04i)A+yb0 zo8qyUpx5*77udOPeaepAk9GH})_q?;$!uqpj=SArQ@B4&3hWWQ$U}kOB=V15o6!+fG^{y*kX^UrW@mSxb zk9hIyE1rq3_Z#g%#C z9DCQjMfcl%oW;_j>3+7JdB>;BUW)TteCO@v=l8F(WAU2#-+xENW?wIzXvYHv?YQbn zJC4+!7wOM)N8E3kUGJ#kb$HkJh~k}esy;*CexH5pKDY2QW(%Xvu+Nn5pZ-NN)*80I zS;v>xC8jB!N8MMfcw~#~R_v>|&fn12qDgn!SBCCai6850*N^q_ny|%ge}g`oF4^Uo zyZ!bj%-o+8uY3A>QXK8B=TaR1(Hp;M)-N8BjjQdJi?KMW;`ORHs_s{e;<5YQXuE#* zadtny=AC4h7SFrl)w0;~n!A2r_E>Dc`+DwrguCwd-|y?kW;-9zX9ushAGCXXy<^y* zuY29k`rIEeIAV-X~#F}c#)3B>ezh+iYxPapEtT^{hxluc)hvz zo&9@rRDVhSY{q%VzG}uX*Y_W5-Z#hF$Mhi`PttLfj=R2U70rL&XN*_AV(-$iqwLk& z^;#9rtp7isA-k_(@jU&KehT`Bj>Rk3u18ornon;VZLaG3;sG=6cH2}lzPQ$o{qamQ zp7ZV5X6)X6aYmn*VDH=RpWi;-Hbr0jT)aQ_#I`TqAG?p?|K>fh`*?o0`9O1o=RWfm zGrsWTp=KPI_g*vZ`kuJkZT3itXIyb4|2OZ6N1ZXp?8UpQZpOV6`|}4E*`HtU`WO3p zkG`@MuXS_vci7@cx?g#&`k4JBR=kpTFKy{J3BTz2UA0)J`)YKr|9Y>4yRKhs=YRKJ zX0KlNHGIAIvajs&O0xa-x#r6J*Wb&E-!bX-!vcA_kv&O=iyziRq>1{e)BEv z?c(?AtMvPp?&~J{`_XKDcmB6??HoX@B-VV2}CDXWOxOonNHC zBaGBX`D|VP{d4S^w`{iSj7aSG?kDZ|2mP&NtG>?6OYAzI*WY4R>*x03_>1?x|LB{> z^UPVl_ASaH^YgCXGcWZ`gi}equj0 zweKK5JHd`ezu$h|JO2c`v{ z7ud0#*m1(iKQrU3`mfDcJj-@}%Jy%$`*&vi+6DIK!?xLP%pSe@Pv++8O1EG^#Mil2Y-KD+ng$cv`!Ij@{pc zJU7=iyM7Zg`i$;xLhL8Q|K0Dc-LQ3s-R6V(9LaRtbK6X_wZpc} zHe+#p)_&05&&7LU_q*hO_d8?pPFEc5uHW;2Pw(p8*4pDg;(j~6_V*F{E_vPQwt1f} zJ@iKVh!lTexkP_2?tUzad!zKEy{aoNwd1m*?A&9zu4nNoJ!b2HW;?I@Ha+#B_nQ7k7tS$b_cMLhXH)m9UvcimD{A*6*!}o+uiyR6fAPtuc$ABK zp!*qAys8vexcHk<>oof)pSQXGKPWpFI5~=PZ&%mcZ{ZRmgn$78au5lI7%?YY+-x>s z$!*Cd1mqGXyOU(d?#?nZn`A*mL`38uA|fIpB4R{DP7ZP+B1Xg*NJNOpL5#@lAR;0n zA|fK+^Hz2D^i22c@yqYG|2$n)eXH(z>#bW4S7=A>+U5L#CrJ+f_H@Z5JBAp%hOjST zkMliaIW1eu^GqOzgLh^qA>)3ip;+yVR4Ev)I0x;#_Ng zM60VLZ^Q4*2L~lwjV$FEZ7{XQceYE&4aWAy&0f8?ivMHn^M`&avH#cjj-(mdEb5K# z{D^C4KfWU=pZu}tXFn_2Jia3#hi#E^6f6Zl{kDVz?2^ zDvfHDVZN1PW?gA!TBYDTs#Sp)hxt|+csF7kwL7YrlU0ECM70`EjKh4a-QWqtILyh~ z1Kyh$hk04!;eCm5n3pvH-j5iExmkO|lbN&SFgI%=d?4`-^Rp(w2NUn8Lr~2ut;z7A zsAi_tf$(9dW~SB@_&um*w$>r=R8%u#>rnW;s8+K`>o7CyF!)&ZaMW?AW}es)@CQ+? zI@rTevr(-&)iihxs#OKs(7Dra+;t=0|K zIh&(KP_5Q6^ye^xZ6UmYb2@4i)#_Z%?C?#*li&}lUif@etB-JghuLn+;E!^CM_q_& z^)ar(Q5T_FeVnUs)WxV)pHOGOm!MjGQmue5MKyEfituHqR{z0_I!9fOYV~PVg0Dce z`ixo)Ux{jUl`6xZL$$h^Z`(QQ^QczWs6qG(s8-i9chpf|M78=7_wA_bQO$h38hit) z)s5V@qrQr2e%WU|{54douXEpy+K6iP4er}v2H$z`H@R;|-HK{vrCtDk8`bJRxo<~p zLbduY?%Pp!pjv&0`*xW1cQO3m+_$4Pqgs8J`*ze_sAgvCW$@joW^Ul+@I9zjKj6L{ zwFTA87rYYw5vtXF+`XfIjB2%&yLZ%2P|bY8YvB7)tsda+9km_RYKOWG{wb=}gXDpu zeuirG5P9IJhf%F|k`s>lIjYq!$O%V1ifZ*g>Sp*cR5MR;Bm6k3)vw48N9{tjdV>6L z)NfF&o+MWs^%Sbr)695u)HA47&yqI|vm7_U&yhEd`Yo!N^LQuxJ5;ORlQ#~tA2-8) zAa5M?5~|f7$s0$#jB4gZ-UGjaYV~LG#$lG^7WgmZkfUBhwfZYLYwD0quxd}(;9Zb4yu)Q9)x44R&nPcIDul*oSkqQ#ilurz*!WV<~$1L zQEZy?7(5Qera6zpyQA1NXBWIDs?}c36YvC7Gq3YWcyCmzeVnJ^i6}PBc^008V$+=G z;Qdi-n)5t-0E$g>UVslmwVL9*2p^1Ub%^s4{4Nxm=DZ9ahHCY0=N0&HRIB$mufj*5 znt7$K!AGK+`K7PJ(@@Pk(>LJhs8;WD-h^kMTD{+S3qBgfzBzBhvr+7u!#_S3!^CXW z<;38*DE7@sz$c*CHzx(3h+^NI47>oD+tJ9r{@ENG)BNCI~6{uEcIs3y!RP&LB$#5U4Rljo} zTtc;4KqSW zjAB=v4)_ujyXthpm!jBJrwhIe#jZN@;LB0$s?!Z$fnryk`S6vfX3p?J_$pMZ&pC_X zt5K~!@0^igL5kU6%-rmoCbdt#l|{kz+XeL zvCay3BZ`f6itsHcHrDBbZ$-8GmQ#XnL$&(0vl_k~#ojt)coV9b&%74?4yx6i&LI5X zsAi6H1^zCo)m_dx@b^%y?sjVM_ff6xVMT$Xet>EgNvwx|h-&pCXB55<)#}I2dGJuz0jdd=DA4ajU&L!~AQLP?vE`@)AYV{~< z8XWaMs8)|Tm&3nAv9Zn-@GexVUprUAPoP@;#<>c964mM{=W6(ARI6v4Yv5;5Y^-xF z{96s$x_4%O-f=X&_}sAg{W4e%dOtzL3&g#U&!}ep_eS_H zsAeAcE%0AatzLI-h5v?PZ=KuVzoS~c>D&(g1I51SP4Gk%`=;-JC!yFkeJ8v>s+mW= z8J>)4b%4GLJ`mOFAbmGH1;u~U_rQms_-}d(d?<>o)Az!Mq1ZZoAAC59tglD1nd-@UhI23k z)oQkW4DLiV^WPtbyHKs>>Rs?WR5K_33Ah{8>O}n{JRijd>ZjpFC^k?(3-_SdK>ZxN z1jW|r=iyUPY@L1qJ`Kgz=@;QMP;8xk30{F>>-5WT5yjT&SKvMrTc=-zODMKZzXq>H zv32@&xQt@!^c(P6RI35~COn90HKgByD=7Y?ej7dq#h=uU#-Bv-Cv^-SLGdSb0$z{e zPwEsrisDb|416AnKdE!@`KVTx>jL~~RI4lWZt!PNt*+F2z@J6&{q%VFb11%_o&bLy z#rM;D!(TwLQF9|nID)#_G#IQ%UX8>NqcZ%46F`bc;aichGg!FQnegnBxBCyGy~ zXTY0Ld_sLRd>4vOsAs}=qxgh+7JLtiPpFTDx1d`6P#+K9i(;>I2Yerjz0#fVRup@s zyWnjo_Dau#A3(8Jx*OhsYSviHhaW_>`k7t`KZI)auwD%BM78?4J_&vV#Xr=&@S`aH zpq{S z!Efmi_@5|#U~E0?p!k8YQ8ougT?CIq z@dINQ!@HySfw4>AJyF`Wu}k5-P};V!%iwpQv~6RT!~3Av$=DU}Bvh;YV^_lOMDYV- zSHTCM_<^yj;e$~8z}PkL!6<%U>{|F;s8)x@u7m##)#|X=_3*n<+PSeC;P;@kb7MEc zQ&IfD*iG;>6hAO_Gdvx|4~%VuXP{ag9lHho0IJo@*sbutqqK`-x53AtS{)a=9X=k_ ztijm?cc9qG*d1^uik*zz33s9Rim}b`2`Ii|>@N636kjoRH@pDFPR8zm7oph6*cP}4 z#ZJcVg_ofCin06Pr6|5)Y%6>+s@3w?Huw~jHgfC%_(LdmFSY|Nqu9OJgYa4uyBB*1 z9z?Nwv7K-Q#qPx(fzLs)d$C918j9VEJqC}U*uB`}@Ol)x7uyAoqS(FI6YzN`b}#lM zd_GD$I`%Yt0ZKbM_AGoMioX|o4!#J*--|sDUyS1K#a@6fLGkxuFT$6i_=pP56n`)FDtsl1zZZKAz6!QLVljOTagwT74~+f^SCg{bCt-BZ}`A%fYvx z_}qT>d=HB67dsICAxc|2HU<6>iY<*D0&hiWU&juG??-80#}0$HqqMJM zhr>Tb@%>^)z&}Ir{bEPL52N^gv1#znQGCDHbodu2zF%wx{68qZU+if3m#9{c$7aI6 zLN)8oX2HKkX=}%hg@1!$OJm2wPodb-SO@$JN?SYD3I8vO9~kR`e~aP=#^%AlL-7M+ z-SF>G{J_|J_zx)dmX);FTNHa6TMYjR#ooqFg8z(SZ)3giUr_9AY#IDl6nh(64*w0s z-o{Ra|Blk`j-3X-h0^YhodLg%YURXNz#65k9WTNORI`q*4^E-j*mw!fqFUwStKkBw zSzlL%cSE(>J-!y+1J!EJ_#iwU#eT*s@FWyJGky-dKZ>6jufda1tqzEfzz3rEnep}T z6cj%*J_;X#;%COsgAYaVGvnvOhoShH@eAO?QT)vKh42w5erEh4_(&968owBxhT><& zFM;2O;%CM$h2M|jXT~psXQKF-@yp>^s8+|suYiw5@iXIB!XHFwcgL@SXQSB9_|O~_)Ju@9`PplEL5vv z{APG1s#RZnBixT_Rf^vNuR=BJ7H@^upjwsVx4~zlTCI)W4iBKTm*bn@A(ZxV{0?{+ zrM(=#6Rx7Pm*bn^I!b#veiytBrM(=#8{UA@UXI@bpNrC7j&FfKjM83?-wS^P#eT-` zgD*s}pYg5mMJV<&z74(@#eT*gfG<>FAeqCZR z97FNz5(mOb6u&Mp1x};boWvn;7R9ei917=A{JO+p@HiB|E^#=#JBnYII0D`irGGDR zBs>A7e=ji&-W#R;o0twyM75ffm;vvH;@2gPhTnWmh427M zIZZ5vhfvCC;v{$&rJN>u;VMcwO)P`!DCIP<9A1Y~P7|lX8&Jw=;xzbNlyaIl1O6~d zIZdp9KY~(D6Giw!lyaKrgD*lUr->4LF-kd2tcEW^DW{1td?|{blUNI1hT`WW2I0$5 z%4wnke+H#ICeDGcK`D=k8hkBEdoVEqe+i{LCf37WMk$YpQTQt;vEYdoXb^{4JC*g2W~8w^96-#HH{i6u%{L8GHwd z-;%f-z7xf7Nn8PMM(MLkTnT>^I! zlY9Wys8+G$4mgft2a*rMNfbMfdSHvB;pKO{-FzM75F|DTM(b5Q#K zlL>e(N}Dd3f=@v4Ns<}(M3gpNG6yd}Y11VO@FJ8pU2-?L2c=Dy+yh>M(xyv}hnJ$X z>5>!RlTq4q$-UuIP}+3KiSUO|Y-Vy2d^(EFOzsb#iDEO8li{;aY-aL6cqNL>OiqFO zQEX=N5O@`e%}gE&uR*by$;05YQEX=NaCiX4W+sn-hfr*0@<@0X#bzd_!BrHSnVb&S zQS4-L2D|~qP9~3r&qcA5$(itnQS4-L7W@&E{{Q5$@JCUtE=(Q|e+<>?qGSjBaa5~| zlb!Gs2MDDA=IsqpnEwlsMf{1p^inmhykDvB*lu7JOWVoQ@n z`0FUPG}#A#1I3mmOYk>QY-w^e`mJP{klRpNg2}b;?I;#CIS6k;83jmI;P0S}0wm9Y z{~Ki#AX$UIi_-c_j=*=LwEmLo;d@Ye)smy|7L?Xs@;vxQC?l=O^Wh((jI<^%fPaGG zgC#G7??o0jT{7015UveY-CzRG-@)r2dD6PNbt?*w^T7Svg z;J>1@{*t%De?zg%$xZOzQ7m)v4)`A^mN|JR{7)3ioZJkn)MnU8-34nD%bdC!j-y!S z)ID$##WJV1z-biAoVpjzqIhVj``|o^hnCt3k3;dwQrqA?QF_}_55Rk&^tPpT!0$k@ z(y0gGeNeoz)I;!oC|+4=C;Uzni=BD|J^;mHryhk5Lb2GX$KZoeEOzQ~_+2O#JGBe` zHx!GVdIEkoip5Sn3BL!$VyB*lr=nQw)U)t=Q7m@qIru1)-nP{9@C=ku*VGH}(I{3r z^&Q%TC#WJT}gXf}H=G5!(2`D2GsW;&H zDAqXjCcFs68mHcZdr+)#>TP%liZxC-Nvtu7HBQCglToa3DgmE@VvSQN_(LexIF*4< zN3q7K9DF8H_!)6c09aA^bFo2b;PGeip@pO zhvLDeE`gs%@nBPz!Y`nBu&K-77g1WosmtM)P+G*PE8v$=TEwX<;a5;v#Hp*`S5aET zsjK1FP+G*PYv9*WTEwYq;WtoP#Hs7xH&I%|sq5jlP+G*P8{oH5TEyuaVF#r}oW2Q; zq1fB>&2SRM-ljLgX%u^#z6H*r*xU52a300prf-ACp?JmV+u_|&Y;SrKyeEoRoW28| zfYKsP-wE%H(jrc8h9{!*)TQr&C!zGzrSFFKN9n0c-vduZ>8VR^fe%FKsY~ArPeJLa zOWy|{g3?o$-U=Uz(o>h-1|NpfQ5$-A$S_fs7HDy zJRQXjryqf5pm@vaN8t~k*x~eJ@V}$j;q>G1F(`I8y$e1L#am840e=w1TTVX-&qnc< z(@(>5P;7GgS$HmrO-?@tpMc^mr=N#UM6t=~7vM!GHaYzw+=F71(=WkGP;7GgWq2uy zO-{c8pNwLY)33s(pxET}Yw(9qY;yW__;eJToPGm76U8Q{--ORXvB~MT;FTygIsG== zk7AS4P70fhVw2M`cnyk8PAA~AQEYNL1rMOuBHgAp^QGKkAOdq zGWwi868-|p=yQ4+{6&=BhV*p!ODMe!=^5~sQEYGeX!vFn+nb&VZ$$Ba)3e}jqIkdQ zW8rV1^dzK@hrf+#b$hx4{!bL!o9=|~K(W2)F8EFq+nb&TZ$`1b>2CNg6dyP}AHEyK z4yPBw_n_F}^kR4miXBd$1mBBdd(+hRYAcHEO)rDDq1fK^a`*uh+nYWW-htu+r%!_) zM6tu^GvJ3%>~MMoyc5Otri<{SD7H7<2S0{ld($QOaTME|UJdU;vAyXs`~-^Mn_de) ziDHM-gYeTRE%8hR9*<&kGUvb(P;5@72Jekxb220FL=>BoSr1P_u{oJhcz+a|lQ|Eb zjAC;#=fel0*qqD-@Dvn(FLNRME);(+a}oS+DE?mNV))%C{$A!1_&q58UglDGDoU?@ z<}&zLlo8U*@M2V}p3DvKNhr1=b0fSIrPncY6TBS7K4fl&KZIf*G8^I3QS3wJ z7WhmQ`;fU6J`2S@WNw33qRcAE+zyveW|d?%!K+b5S2K6OWt7p?%$@LB6u&F88D5X# zcV+H^M^XH)%-!&LC?lkqd*Jg?Mo2ST;0sWC4m0<{7oxOeGxxz)ptNK&Tj48FTC$mK z@Kq=+*~|m*)hK>cW(Rx?iXWAE5WW`0kIFm*Ux(sHWp={XqxeyoN8lS!{HV;M@Qo;b zROT`GCX}+Ac^tkOr7UN5!5dNhsLT`aEhv6e=1KTgRI5#yr{VuXX}4ycg};MRHZ#w` zccYZe%=7R)C}lJA0=xyKY-V1B??v&EGB3gRp_J3i%kWl|a+-Ms-iA_6Gq1uApo~0b zUW0#uGV+*t9sVDb_F(1>`1dI7!OWZRA5hwZnYZ9SqO=DyZ^M5=X%A+cH0?o@_FyIk z{{^Kzm`T8YMe#{8DfkVPHeeM!0aS=50tiEc7OOCC~dv$WOyHx9=Ys+@V+SR zzU&luKa_S~_7M1;DDA%Nq3{7H?Y`_`@Iff;zU<-f!6@yr>=E$MD5H4UBjK4Sqj=eA z@GO+_o}CUKi&EaRGvMP<%6s-`xC5oUXJ^8lDCIpn3+_TG@7ZJFc_`&Qdpz8YQr@#2 z==^LaAq!Bvf@~Msmz_sQKS~{)?S@yO)X~}b@EVjlI=c`)8>NoUE`|qC>geoA@DNHJ zo$ZB(QR?XIGPsITM`xGAb(A_fdn&vRrH;;?25&&=(aN3ypNrC?m0baU7^Pm$7U7Sh z)XUjE_!B7gau#nweG;W!&aQ?(g;FnP%kY1o)XUkm@TXDAb#@TG3Z-0UEAZ7Ql^>?nK_O8L#62j7fRezWJp8&S${_5%18l=7Rs z5WW?q9hAKYz73^6Dtj?}J4%}E>-hxubvsc0QqLlIM)$n~NWjuQgycMO4XRn2~p_K9Lb?^fyb#eB3cn3;doV@{l z5T!28-UvU0QWs}$f_I{{iLy7tkD%1K*^TfnlsY$i3;YC1otwQCeiEh5&E5t-jndx9 z-VQ&9(%#8#f}cle?_}?QUqET^WbcGuL}~A2H^VQXw0E+1!7rnq4N%%k%{~`A@JO!oAl6w|D1f|WAdk#JnrOlFi9zG1E&60ZoJ{+aZl6w(8 z0;SE8dkH=grOlFi8J>pHX34z*Pe*C9+AFnB$R zf08>K9!2p_a!0`Dq4+1cBjNK=e3INW_(GHs%-nSNVw4fg+zj{VRG(ePy`{Xe;x z@Z~5zOl}r@1&V#k9SdKDV&8Jd!&jr&v0Mjy9g2UF>x8dI@lSGH@C_*TEjJIo5yigc zy5XBp>|1U=d^3uD%PoXAqS&|GV)zym`<6Qiz7@s3<$B@UQ0!Z78GJj6eakI}H=)?K z+^O&#DE2LP8hj^;eaoEzZ$@c%Qx50B!`b_cx8dF%*9+|0eu#6dx@A7W_#RA1wbi{3#T_EAM3S zyHNT=@-g@`DE%S%1pHZ){*ZhM{v1jlNInC90i_QlpM$@M(g%_+z+XZc8O-kne+6Y^ zFuw=B8>Ky!-yi-jl=f79 zGW;EsvA_I*@OM#WQ{<<>-$R*Akv|0fKFVy0{Gspzl`94?``e3I}f;Gx`Utu*INAcMTWjKlA zvlZ6DX%wHWFbHQ+`kxCGIFI7L70!Xjq4;lw8oWD-|5g}*_e2@{E3Ak2LTL{cM&Wm$ zvPRQ6>fm%qxfBg8{vg0eplfpcri*}P~m3yBvh*v+$QuY+&Iz z_$w$ju<$(mRTLXocme(ziVZBh2!9>L1{Pj|zk$*}TzDD&CW<{QyaIm<#U2)3g};r` zKU{bX{!bL!Sa==&FO+!^g*V{;MzM{BH{tK1*v7(J@b^&cVc~7~2PpQiz@l9BLlk>h zh`~QXv4@2O{9_b*SV+M?L9vI047?r19u{)&Pf=#Y7YgvtP;6siH~3)`+gR8G{yB;b zER08gU6_DARoEMSrZAD%XHi<3g-P&pC@syx{_yiCEzQDY_yv@fX5m2iMU<9iVG8^b zN=vhF2>dciOS5n&{0d4-vv3&vDvD(*91i~##j+KSfd7VK*$PL(e@F4Y#!W+GsHt%;u|o=m)*I68TH zvOoE; z%d=N!znA@K_O0yUx#_uCxnJado%>w=OZkTij}}fEcj~w+$88+9a`%tz{`uX%zvumX z{$tPh`26^J<4+!c=J>UH)%H4XukY^l`@K$?aMy%;Cyc)1WAEtQ=d^wL_W8y>$%%!1 zC+xfbzK864=Dr*D{lvac?fb&M+b2CT>6uBf{c`*5wO?_+jr%>l|0C~w<(+?f=i`&# zdB80PJ$lfy2fcOB8B@MICH_&qpOV_8kKl7S_TSgzd;KB-eS3xTkAAIygy z_!mq!{opU{kg%AD`|p^8PaGE9%?sfFu7gj%T{e$&_GAV9G}h10V)gti*3KWp%K2kh zH@}fp^WR|2{N3sU&iBPAj=$si=D-K}>u`RiX7ktS{9esr z9e)>V_UAfDXPz_8If1q6-K8DF z^9q#`--T#l@!=^iS!c(V6`Xl#w>Xhw#W8{9m zX|bK}QQXfrF*^B9#CBG_Z)ffK{j3SUpWl}1WF7RythRkveM)z-il>v6A)RV`d^@WH zwyUe+_p5L7_W*xy@ONn9esuzWW&W;8Y-c9ec4lJT&#b8XnRnF5{GLwLnY!8OOg-d$ zI~~(=GYS4W87=6fH@#E+n!knFPIWNEWRUH<>U?pMV+Q}?Uq*^ce8U1j)t{~pVA7k`WS`y_v#YD+pZnG1eYgky4w<-JeQo0XY6t)Cr z_nW#;XKLy`PfXgbrcHTRZJctydVI=uHR)g;&oRgKtynRqTpJ!Jj&=?dYqg`^yW+is z&RntLXhZW#^`3!Zd1z^AL;d99z)0!1m0ncqu6ECs<4yApchpfrT|@mn)kQr}>Z?@yC4mi=1SY<_*3s8j8m<>t4wy?Zff74i4&Pg^a@_K&QQ6ak zv|gkQl%u^b`g%-o>s~X=U9{ZV`;IoD9Lqq*@bJKB_fW0WH&QKima6sgs&ZekUYb2R zOum|I^U}ZX145x&wZUB*I6}SDF;ZVssg}b1eAvA=9qFcf|iU7xnxe>HMFi= ztqcv4$_?(?FkGp68_Q}X|53W}%d6#jsb|#&ceC}j-@9U3_zjt60wo8J5{i1F5qnMd z_j+ISUM9Hp9yySEkJHqmk%0ku>Ss+;-CaW?gQcpw)zMckSB50GvobJH^0s<<7nTNB zma5%Dt13+q-AhWv{>4KBqs^gR=Zq8w%5_2qhl|xxHE^DKMYc{T*4Ffv>Jq-7Tr>ZB zM{>7Um+C9#@&cBs!@P&}-ZjN(sumHpxVn1k?8?Yc-)LvCRv#!$?Whe+Q@y3Wp6MTW zU)9o4Gu{t%_8xr9aUWQ*VxZDj9H?>Tq5AZr)LeEw>nJt9G-`@uPqAEOvwKe2+cJI<9s;6FETCrBZY?G&yMjNoSVuO~d#mm$>v1Kb(m{WHa&58MM zVR0DkEw3I5WYTP&lIkm}CAFgJ>gz`(tL7BzMa6UL8tSX`m-@|Sd1!c~Zb(urDX#Z< zVX0p1mpvpu{SC2lLw)6epta$C{KBZ-K8{ZV* zrs!D3H3bs*+Y-N|w63zY)ZbC}5;O%!3j2TpDVhQ#MQ63dBMhWy3NR@uLqk}srZmk# zl4=1~V(~BrPYhk-iXws~HAcT&E!7(7ngS%nlA^pnO~LX6BZ4J$cfT!{{cd4#w>yh~ z#PfKmam=P1C9v7&C0SmnuB{Ch`%3PTG1bhjj~w=z=gD>cI89IauJ zE>I+z6Guk$H7e*v>fxpn2ln%Bxv`Ub?@M?i*O&U|Rx5+y}oR*+f%_(FjUXI>@ zk=6bl!EIg{KTgsHTvI<>vLh5m)ulmW4aru+^to`fq|99zP0S1{|%Ae-Fi=8!;^5pS-}7-cuHHOXuYd!goZrWSCMbb1>SBOdj- zk{=`wswK$m-!NQDO4yW|f9X*X=D5S<=9C@507=1Zxff(<9?egi>$69RkR&}73bSm; zW%(Nt6EJ#yxFm`S?`vG6pSI-~ZVRmLohxvdV3h3D-7hUOKV@K3yl}O24URy+T2MiT zi=zYbe@DN)9XV7NO%&=ldrM6La`4^}TD&EEOmoMLt$C%o>wMy!_N^h_r0y#Zb`43> z$W0&E?ymKg23CoCOC-*rOEnuXT*epaSF~EH{MTQq;YHYE%0n|7lAHd9oULL1akJg) z_v;7~WKwyRfFIJZ`u=_`L9(B3`u#-BAtud0ak$2*yK7worFG(NsTJi0OA=ZXo=;^x znZWk)Vs)r{m8md_=B-~^#WwKH4GxQgWPCG|ueAQUHqct`SM&ULvJqD7?_beXtyZey z@#EH)C_nv5LKlzJ-9~{QEZ5XAFi^p9FxTU;+ooxl^xD*3uApq3`hFGa7%LeoTj@!9420SIJDuyhvNdSdpMGEV?Fn9REx_VP7pA!V;m-sD(cGH zx!mE?Mf>03bb%8#eC%*C&yx@BA#&AsFE+fz8I)&jKJr6J()9en0;{&C}_xQr8g6>~9 z)_8#7V9#9(#{^FLFC_|iap8kCe7JC2&_xT!`W{+DRKpnyM|zG`IHqAM#1RU|Hw;2_ zyl)bsqXYg?_}H#<5{{T(9*Ve>xpZqs1mg;yJ@olS?c2k!%6b_k z3VAW&{h02iaFkztg`=$3JO@XYR$Z+&QXJ|lg;U{tLqYLp|bHiz>XZm7e12h&aX&menF-x;E5HL$o^Dr&vg{IC9q} zf2M7!Zkij_t_?DpN6$>#WL`eCO<=RCZFJ`v8ssGgWx|QeM6Ap*oAv;f%c2alS{&HJWeHNlq?S%hH;Qj&(hy=*V8it=jD8xiZl^ z2CDq%1b%09o9IASRdfml*#;{^?c#>&j5yo=sBm7+8LG9}ZvcZ39pyHVq9fhfHagPQ zx6yHnO6$jpW@L1@QXZ;D?>x6kXHWmYXml)Nwe)93y-HFSgfm49G z9C56rqfw!LF^Z1vIG4J`d#l3F%Y8bXOxXmcF1`WvFLOwOEUYl@s#X(?w$j>FCLz;16^U zQG*Oum{t%zRrgTez(~K>Pd7$F8J?hHBH|EBE79QrS1RJXWGhz7dWY^Thlo_(nC+Oy z@?M$n{$kc6uGlTgZDQ>dm5?d7dD=db$2De>lgnOFZ*vUkuo&|QbpDJ~YxK;7Z?toy z8Wr5t*Cv7rxt9+7@PQbhZX36tR9qF_gT_%f(07p{W2uhq@Jx8eIir}Ya-VN078W=3 zVB>gI!fAWgmWR8FD`!)eM#h_-&Bz$pbK%H9y*xl2(LPz%+7Ws<>C=oj`Qmk@>Ux>_ zg4r|`aK!a7vJnn-t6OO+h9jGLIHHp@H6^2y^p=X%zBS>a_Y~_9p>r8EjgGNzW1BeR zl8%*PPD%2`jBt&WtfyL*E?3^V=o3lk0(`HiOP9A}jA)M8ZckppaQ-Z-Mg-2r(ndze zOBAq6ooh;cYs1GhFRAHO#zAe9#&gCyYIEqSWdcU{Fmz436$Wd>08F8QyI|nKpV||jg z(PH>Ii^FA1m^*PJe28FgbvU-AuR1b;blQ%66t|DBCOwEUySH5yRGE%p&01s@NrhXj z)Hz*bbiitim8w!>CP>utT7YNO(>500fH@eZ(4;cybq zw1#86VO4xT+KA!!IU{zulelHGOKXbj%9V&zjH*Nh)2_#sQCCu|g-;{{lM%u0>lGPi2HGO_3G`+~?q}3Xdr6CbHUa~krUAi%_za#fyg6!o|u_b8gXV0EA8Znn80h;CWY_U zM(oXnjTOx-$%vg~Fo%hm{a$Otb><>c25e45Y|uxDh;DH;qEoo@AR{7AV6GX)CTvq} zMHLazHCQYUxUX$^H~)ByMc97Qw(-)JI1;g6(=b-ML~e~JQ~YXcm?S%=I2v&%lgh40h)zH&H98{DWVgB2 zJrteLpS~1+O#a-ZaFjoBDIC>w`yKUgf|f}~;RKA84i+PJY;rOdo4IS@og0?6U5aj5 zZqqK(JBOWr*EW@%ITt>=`(}qD?28=^@2;7dFeTR`2q&=fGurLGc-1NLM*PC;1P~z#3CH%y>1<~6G{=$ zw)oZPuUu7*h&Ho{{*N@K4`KFb_|(0)J5k}LRL?1~q(8h*pao**$c2;4uJlLj=&c*- zkB;VnhmW+7WeIevM8-AxsKWa#s*Dv&hxS;}HaDZsDIK%5dSu)jx9`xKml3`y>E9eM zUB0q-JRIL>pDks<`EW!Ef1o0~v$U}2+#Mr@G1JwEqq_BZ+j!$~vp6MuQgcU3xw6Wwr)->4EG9l5dr!c^v@OFK;bG@+LDzd;Q#KLd^urpb@>_wynAI4uE|@|zhSmyQBPw_ zmQ^eqAWK*Z-UyY8^E&~|)it)v6SOa`H*Hc@o5=J@)oq?26Qw%KgJ#e~0_VxWC7aw! ziJEw6&Jh_QmtxGONn&Z0Ov*I3WgSKn<)WmQhP%wdG~xb6XQfE*lDi`#FXq|E#7dK_ zDL@WFo$OA@w1;nOo=~q32V)yCvY%H&n7#ZBiIM4=Ce(n8B{cfK{X{K6rwk4( zlKol5Y5w=VgD`KPvXT!au)e4dm%UGtSZ~Gq3PMBzxtPW*QFBRwO^L;3n)=$r`5X53 zn&*kSx7iYCZkLyxo*;Y2E=zb*L(`qdX%a<7nAgpp_~j*+<3vs>Wo6 zLu;6%vyV5JsySrPy&rl}D5l)xlG0#hofKJE4&aZ4n+s}ed4*d>C0cv&RG&9@RpFbM zHHOqcvewTnSn>giX=V?_+-T&q00~3)= z4g|MJFLg^W$ecxNi5I3)6 z)0lm{Ys60amuVXn{&51EvP;uMaC0loA(954)}IY-k~9V2$TniRniDEDdvZ8n2Li9o zY%_D*8%xg!zA)|ygP}F%eap7Qi+5x;%`UAj z+tFreI>;ct4YIu>ewb}5m}v9OGefR1w{KD(#mOGqkjWflhO50Mz_;C=cRFWKXqvKy?qj`bMnol zN^{LWsK3#;Julim56Y@LG2a~0o5*MmaH2mm-{yfgPv2&Qzhw_ZjVF^${4@I=oPQHG zxBUcx&3U%&Z`8Q9{P}w}h6?<>TY}_?NS~rRqu*R_aNA^XAfAedJD)vjj#rn5YaXNb zRVj0a{sa^?})wY;AMtGQ->L$b-P@-X2Z))^wM&NHd&{gsirK~qW^LlNevftS=AAh<2ZmSWmE zQ`Y8MRD^G4ZJdk=3iE4cG|tPO!Ah z$1fYfw$2ul+X%CUajw`Z>E3EYm|i!s2P-W7Ta5@aEYT9=-jFme+&LS8^ll{Yjv1~d zbBhC^RI^70*4kR9X2!Dow1ES;BSvlG-4kK7_<)+*-5l6mz6jIBP+H)-q>Wh9ug8Ve zPUb_HWaiRJBhEMFji8Q!a*;0pdJo4wH`7>H!nnW&LxFhjf#4takMJQGe@8EurIPRi zZH3U-Hs|lCR*R#JFz<+R=HgHw!fn}`@OpVAt9a^xSnqu9Q(as&8PYiHiBhlFxoLsD zr0C;}_O2-n47gv(QL{&Rt(S7V5&L#ql9ZOpLu;7TNgK~@u9S7_7TscLH%uq1MQ;Se z&abgyw*6yS3L|3^c7yUiuVlZNO!u1$w*2<-4NjX#uExGpjU%v4H609fQ?-Q3v09d; z8SBy-Ch24}qVi~36&7OygwA&ctF{ssnQOAgMQH4`fT%eLQD z?nN{O*a}0UY=t3Yt+J4pYr_5=Hf`7kD?xHDS|`@Nm@8;(`TGWHI117#EMg;(wA%dr z-LFyEZ=`&Il?jStL7iW&mrbc(u3)Tm*fM#a{tYrA)bm;hR0{0G|hc!QJRiPFKiB#lX1?P zLZxCd#l{bH^VzkFQ{9?Jj$&$K`9PU$$SpS3G@APgY?l1hj!HZ~ap2$oKHK3>L%V6S ztJYT>E^&25H(s0{7b&uSpz%#yYedQA5|*-d%zin$DYzE+#OiRy2%_2cMsEnc@itSnNw;GL3dBh5}hf$&C=uPXMa5yf;pB3 zIb8~7y{E}dnTfqVxC+!{YIGWz$!*ioUX@u*YOl*fSzqe9sk4i9*xDV-*78`E99w8o zbl1H9-Pe;|QSyU*W!js3tzP^MKah6p@Ol%?#P}-nBGp`09IfG#gY`Ai`dv0epqWX_ zeXe6Nd{um4(*fQqWV25|O1%kjORKatWZckCB`%%Wkd*$0UzSZ2XPis1^Y^h9)88ww z*?260KvVy=te7=d7?^q1k~}&_j^3EL;Ge%Gh*1_Skg1DXVurn}u?u7UTyi(Pyb8oN zt+6$k84hu~LEOCtiyH#_Q)LDY-q@nJF|@$*F&%LheJ`|E9&Rg;If959{kL zJ?kvmFSVLu+GVU`r?aEka^sy|dvC6H44IN3F>V3z!@UtDbHP&E1x{g>6x*{$MKHf^ zWS~ECpB1&J9n9-Xg#8jG4VmT>v;@-~WybpLLkY?-A6zwvjo0W3jb4aA31*So)!>9HzV0J-h(lUs%p#CRdu|mP|#nusFmILa55{ zih1-{k$CBv;t&lI`I!g_T|i|M43Y!2PV6&RhBxfqBNe6T1Esqgqv=PMW!;CQl0%s0 ztGpxfLVN4E&Hm9b=CtN}uaq@!ako8RDAYf`J88XfST7*r6Qp+Pw9G;nXnd33ol0v% zeQQhAxPTs<0mYhmlnb_x#4a5-XLCDaT5UohhFL$L>ih+*@Vvg^?&2U5qz2>{ zFiId9MmaZ~tHBU6r`8Q%GBGRZ-Hp(xm&s>0WLX%$yfKv(>o)ru9c2V4IbmCX_Mk{ch?VDI7PEjPQn=_52JH{cgO>7lZ1N$ZS+W38VT zh~-6+5#*uOw%D78=?@?H%cIP>B7$9)EFwnofu4}YX9vt7nnNTF4n^}>ngaYgYYN33 zXxd&IJjPO{5h`gz&aMn9Zj?R~J84c;sVxYTvtmu`N*t-|%#}5VxM}${ zWY1HV@jxY}OR+4`433#XXD+~!F&t9<6iyUB;^o#A3=^0@xe{+E#soGoDQD7Cf`759M>CKFqhM3)MTxapSkfzg_IdzYiu@o$JCkJ zur<|BU?hc3)9#!L`Zq63pOjGx+g_kuAky-D&w-C-qpgkJloC0Op&3=+$WDXyfw zLK!gjLp-zG6llhj{Umajg%mIE6ALCI7*mu{n#hlInA41zz;zsPnv1JVpUqS*oq12@ zB6-KjC~tJdbK{s4G1Z?K(TJ74J$~<~y9d_~BZ?Jm#GS%7mIfHO_HTVLtKe`4gTZoh zZpG&2Ph+d%O_{QH?2f_MyYn_=|E3`t6Wtu*-mRTU>wd+f)uqMRG#$zIVsUQke8sP_ zsybJR=ap$< zP2pk>qrxk}%#@uYKj~s}Fgk|Ho#WQ4@^cfspzf%PE^D=_JaHwQX zmZ{$Z@pQ2DtqE+)fWBWZ1j5HCV}Vpm#js;tfiN>gKq@-7Yc>$&=PzYNe$-6vj$Q%} z?VCtnpKaWD#>=d3Y6P)LBA7yU!rh}?=zi?RWNdSYqzSmv%}FC8{40%&9c~=KPw2Jv zXh@dj_mj9ahR8fLSKxjx$6TQI@f=gQWMse(kk_gyfN9qDc-@QrDN)K>Sm-;N#)z;e z!~BR~BOOnuvC&f=E)8%l>3tpMBL&`PO+FkQ+gPte8-5QAUrh{M- z1C?kn0lh2be!m_F#&~nMgM;!B@l9sA5ihp9vE|>d%Y zThp^nbLxSp!1@z^(7P#t*LT~=uO``!sitV_0R&oV-dQ432h!PP8!V> z&Yo>8H>I8BZ+e2Lz54D2v_;Q?Ik8RVMm0-E{OmvaG0Kg8r2qXm0qw z_3$sGx5Ieek3;+mJMaOUHYackaNuoeI-Gr6*7KPNVim3tHUvsjM+=AMZYl_6h7ow~r4z#`cNG z7HhmB@7N607#lc7qULOApD>s$?NixoX&>)qOZx;iTiVA5vZZ~Zzzbn5cl+#VA0IFX zo--GI&s)63*`t^v_gjfk=L{Uv9f=#E%cDBlRCWT1q>I6P(xi9nbY459i@u7s2eWta zFD11XM}J?rpZ2$0T|a-k0?ktcI;*3@gfmFmG!sC^kJKQ4%ZAodP1#l;Qy5IcQw*N$ zVg9elM(;ogEf1@adY=qF(kdJ@2dtT;n|70q2fFtI(Y-VcS)9N}ayojtr%D${qlst- z(i)wb3o4bhBb>-IS*Oy2Kb20gbG&WCEp2m~pp)^@s{7>^hT*Dq7ADW9ajK^JR0d$0 z1IBniOtwhpoc+?X$(+EZ>5?#=`hj@cFXRU_z7uU{Rk@|hcB3*|PC5;2SCHbSU9yuc z+zlofxa4PN;Pu0uabx8ZY%Y3(jhxI(rfiHi`XSx^!Q=(@gPTSo{m{l>q#xvuNBSY& zkfa~rj!OF5-S!3Xw*yNfO-~`ujC&2-n-^+x$=mWToOxtknAaJ{3QhTX5J#dn$Q^EJ zg!y}R*8FrU-SqM-tz|S%*+pyC-3@EZ+zo4#+zoGZ!QJ%F<89aMPZ}^UpsysK1m*f_ z%nsx~vy|BMcq_ZG$+CH~=xDQBX5_)&G9BWoX4dP?9$CeArqzm?tw-z@QA{TDqE^~K z|C)MbN;JQ&XU65Y0OmcFnLaDOOXh{i*&Flk#6jkR1g$}VcRt_@x29@okG4h!YyZ}`CX3e^Y2VV;P;N||_SRrqZ?}d9s{Gcdz`fZj z%S{mMFO|GC(= zL**Sc{o@?e7+iM)gWCvZHk`YG5pqdPs*CGoT|m{G&8wd2VwE5%oh?Ds@p4OE?blc; z$V<15cSj=qSnKW+#N~toWgs{lDgy}NP@Y0$V7XculE#$xsTJFa-*gdvQ1BxBz^04v zLz^zb4-H;~ALw5e#opEeUS^tBh|NS(|Cv<)WRDb284;!9LDmJ>6rn(Wl{s&#>5P^! zP<|w}WncgFf%nuuaCf8f2t1WQVAFjD!m+yU$}p}sSl=|BythKIiraxrVbZX9cguJz z{@dJHW*TzU3zv7*Z?6;R{a%B4%_1ZGn~RK<<1r*#@iI`T&umLk80KB?s4~CPI)K5S zdN3zs9H8;z4<=*@U!#|CfaVxeNR0UnjZ)cAxeRwou?>(?(-dGYwCU#}%n9XT27W>! zG#D;(>?CKohwcD34Ri;>=gGIO{5@I+uLDth@yd)?u);7h|2KUoz)l}0)Z|XheTe)|rOYY` z8(gf}jN<>sx4uY#Yl-t+V-_M4${08D1Ni;5<^WlF5{P#Pd4pp{{=Tk*KBrvda}O+? z;`pI9hb-ipD&Ac<%7mJmk)QK$uUkmM+`80@2y99$^`;l&qJ#$OOE0!1NK)Ba%S+JM zIuW;rMRWMe_6mrpu#!b4nR_U6LOos~z5~9Mw=IWW$fWdg&E3yjr~H6hQ|LU_O7r!n zmhUmzGy1)SHZua7-aHWd;j^j!Fdr63JhqzGHuBa9@&Flx8*UdZ^(u}^)sL5J#XwWQ zxt*%a1NVNi#5|TZQL>ji#j?j;dm#(t%nz8D{n|!ayYG3BH9U0r4gk#`Suw5}5zw2K+$j>7O&%$oVGGpn4F~3J%Q?@6<-RP`PRv8jB zy=3+W#$Cf_yXad!duQ+2?YyzbSxDqdyOcIbw7u;V7s z{=hcIgBfVr4esDC-0fgqV4<|@>r zDI*bWMw&>BM5G`k+MrFegEV=YNEvA&F_K4`(eCeePSwAv{vY?=ww>9;-2VUTQwy`mT|FKT9`f(us;1binjOF^QIBUCC=ZkX)*@>Lq16llTV?b9(ygF3=^k= zN(5p9?QAG3YFROlzTtr4+~v*cusa2(-091k#Xj-EMDY#SOOcHd)P)!&*&at}HcU?< z*P{%?X(wkHRS`~}4HCp75xhT&>*%0DZ@#|44Q3nfPaK>~!>fXE;F^(C>D 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 diff --git a/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml b/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml index 16d82b8..79cb0b8 100644 --- a/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml +++ b/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml @@ -1066,6 +1066,7 @@ $RemoveInfisicalTagResult = Remove-InfisicalTag @RemoveInfisicalTagParameters Notes + -ProjectId is optional. The Infisical console never asks which Certificate Manager project to use, because its resolver selects the single cert-manager project when an organization has exactly one; omitting -ProjectId applies the same rule and reports the resolved project on the verbose stream. Pass it explicitly when an organization has more than one, in which case the error lists the candidates. Note that a project contains applications: Get-InfisicalProject -Type cert-manager returns the project, while Get-InfisicalCertificateApplication returns the applications inside it. ByID retrieval currently always resolves against the internal CA endpoint. CA Ids returned here are the values to pass on -CertificateAuthorityId to Request-InfisicalCertificate. The Type property distinguishes 'internal' from 'acme' when -Kind Any is used. Only CAs whose EnableDirectIssuance property is True can sign a CSR through -CertificateAuthorityId; the others must issue through Request-InfisicalCertificate -CertificateProfileId, which bypasses that check. EnableDirectIssuance is fixed at CA creation and appears in no Infisical update schema, so it cannot be toggled afterwards; a CA migrated from the older requireTemplateForIssuance column reads False permanently. diff --git a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml index 16d82b8..79cb0b8 100644 --- a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml +++ b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml @@ -1066,6 +1066,7 @@ $RemoveInfisicalTagResult = Remove-InfisicalTag @RemoveInfisicalTagParameters Notes + -ProjectId is optional. The Infisical console never asks which Certificate Manager project to use, because its resolver selects the single cert-manager project when an organization has exactly one; omitting -ProjectId applies the same rule and reports the resolved project on the verbose stream. Pass it explicitly when an organization has more than one, in which case the error lists the candidates. Note that a project contains applications: Get-InfisicalProject -Type cert-manager returns the project, while Get-InfisicalCertificateApplication returns the applications inside it. ByID retrieval currently always resolves against the internal CA endpoint. CA Ids returned here are the values to pass on -CertificateAuthorityId to Request-InfisicalCertificate. The Type property distinguishes 'internal' from 'acme' when -Kind Any is used. Only CAs whose EnableDirectIssuance property is True can sign a CSR through -CertificateAuthorityId; the others must issue through Request-InfisicalCertificate -CertificateProfileId, which bypasses that check. EnableDirectIssuance is fixed at CA creation and appears in no Infisical update schema, so it cannot be toggled afterwards; a CA migrated from the older requireTemplateForIssuance column reads False permanently. diff --git a/README.md b/README.md index 2ad11ed..42d034e 100644 --- a/README.md +++ b/README.md @@ -134,16 +134,16 @@ $secureSecret = Read-Host -AsSecureString 'Client Secret' $connection = Connect-Infisical ` -BaseUri 'https://app.infisical.com' ` -OrganizationId '00000000-0000-0000-0000-000000000000' ` - -ProjectId '11111111-1111-1111-1111-111111111111' ` - -Environment 'dev' ` -ClientId 'machine-identity-client-id' ` -ClientSecret $secureSecret ` -PassThru -Get-InfisicalSecret -SecretPath '/' +Get-InfisicalSecret -ProjectId '11111111-1111-1111-1111-111111111111' -Environment 'dev' -SecretPath '/' Disconnect-Infisical ``` +`Connect-Infisical` establishes the session; project, environment, and secret path are supplied per call. On the PKI cmdlets `-ProjectId` is optional — see [Project scoping](#project-scoping). + ## End-to-end: request and install a chained certificate Connects, selects a `cert-manager` project, sources SANs from `Get-InfisicalSANList`, requests a certificate through a certificate profile, installs it (and its chain) into the current-user store, and disconnects. Each call uses a splatted `OrderedDictionary` constructed with `OrdinalIgnoreCase` so parameter names round-trip case-insensitively. @@ -211,6 +211,58 @@ Note `$CertificateProfile` rather than `$Profile`: `$Profile` is an automatic va `-StoreName`/`-StoreLocation` are omitted deliberately — see [Where certificates get installed](#where-certificates-get-installed). +### Project scoping + +Opening **Certificate Manager** in the Infisical console never asks which project to use. The project is in the URL — `/organizations/{orgId}/projects/cert-manager/{projectId}/applications` — but it is chosen for you, and everything below it is presented as **applications**. That is because Infisical's own resolver takes the single Certificate Manager project when an organization has exactly one: + +```ts +const projects = await projectDAL.find({ orgId: actorOrgId, type: ProjectType.CertificateManager }); +if (projects.length === 1) return projects[0].id; +``` + +The PKI cmdlets follow the same rule: **`-ProjectId` is optional**. Omit it and the module resolves the organization's only Certificate Manager project, reporting the choice on the verbose stream: + +```powershell +Get-InfisicalCertificateApplication +Get-InfisicalCertificateAuthority -Kind Internal +Get-InfisicalCertificateProfile -IncludeConfigs +Get-InfisicalPkiSubscriber +Get-InfisicalCertificate -Status active +``` + +```text +VERBOSE: -ProjectId was not supplied; resolved the organization's only Certificate Manager project + 'Microsoft Endpoint Configuration Manager' (2122628e-...). +``` + +Pass `-ProjectId` explicitly when an organization has more than one — the resolver cannot guess, and says so with the candidates listed: + +```text +This organization has 2 Certificate Manager projects, so -ProjectId cannot be resolved automatically. +Pass it explicitly. Available: 'Platform PKI' (aaaa...), 'Lab PKI' (bbbb...). +``` + +This is resolved client-side rather than left to the server because several PKI endpoints carry the project in the URL path (`/api/v1/projects/{projectId}/pki-subscribers`, `/certificates/search`) and cannot defer to the server's resolver. + +#### Projects contain applications + +The two are different levels, which is worth keeping straight when reading output: + +| | What it is | Cmdlet | +| --- | --- | --- | +| **Project** | The Certificate Manager project itself. One per organization in most setups. | `Get-InfisicalProject -Type cert-manager` | +| **Application** | A grouping of profiles, members, and certificates inside that project. | `Get-InfisicalCertificateApplication` | + +So a project named `mecm` can contain applications named `2pint` and `microsoft-endpoint-configuration-manager`; listing projects returns only `mecm`, because the others are not projects. Every application carries the `ProjectId` it belongs to. + +Profiles can be filtered to an application, matching how the console groups them: + +```powershell +$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -eq '2pint')} +Get-InfisicalCertificateProfile -ApplicationId $Application.Id -IncludeConfigs +Get-InfisicalCertificate -ApplicationId $Application.Id +``` + ### Example output ```text diff --git a/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs new file mode 100644 index 0000000..67b15f7 --- /dev/null +++ b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Management.Automation; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using Xunit; + +namespace PSInfisicalAPI.Tests +{ + /// + /// The Infisical console never asks which Certificate Manager project to use when an organization has one, + /// because its resolver selects it implicitly. Requiring -ProjectId made the module stricter than the + /// service it wraps, so these pin the parameter as optional across the PKI surface. + /// + public class ProjectScopingTests + { + private static readonly Assembly ModuleAssembly = typeof(PSInfisicalAPI.Connections.InfisicalConnection).Assembly; + + private static readonly string[] PkiCmdletTypes = new[] + { + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificateApplicationCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificateApplicationEnrollmentCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificateAuthorityCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificateCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificatePolicyCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalCertificateProfileCmdlet", + "PSInfisicalAPI.Cmdlets.GetInfisicalPkiSubscriberCmdlet", + "PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet" + }; + + [Fact] + public void ProjectId_Is_Optional_On_Every_Pki_Cmdlet() + { + List offenders = new List(); + + foreach (string typeName in PkiCmdletTypes) + { + Type type = ModuleAssembly.GetType(typeName, true); + PropertyInfo projectId = type.GetProperty("ProjectId"); + Assert.True(projectId != null, string.Concat(typeName, " has no ProjectId property")); + + foreach (CustomAttributeData attribute in projectId.GetCustomAttributesData()) + { + if (attribute.AttributeType != typeof(ParameterAttribute)) { continue; } + foreach (CustomAttributeNamedArgument named in attribute.NamedArguments) + { + if (named.MemberName == "Mandatory" && (bool)named.TypedValue.Value) + { + offenders.Add(type.Name); + } + } + } + } + + Assert.Empty(offenders); + } + + [Fact] + public void Every_Pki_Cmdlet_Resolves_The_Project_Rather_Than_Assuming_One() + { + // Optional without resolution would simply send an empty projectId, so confirm each cmdlet calls + // the resolver. + List missing = new List(); + + foreach (string typeName in PkiCmdletTypes) + { + Type type = ModuleAssembly.GetType(typeName, true); + MethodInfo processRecord = type.GetMethod("ProcessRecord", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly); + Assert.NotNull(processRecord); + + if (!GetCalledMethodNames(processRecord).Contains("ResolveCertManagerProjectId")) + { + missing.Add(type.Name); + } + } + + Assert.Empty(missing); + } + + [Fact] + public void Resolver_Is_Available_To_Cmdlets_And_Returns_A_Project_Id() + { + MethodInfo resolver = typeof(PSInfisicalAPI.Cmdlets.InfisicalCmdletBase) + .GetMethod("ResolveCertManagerProjectId", BindingFlags.NonPublic | BindingFlags.Instance); + + Assert.NotNull(resolver); + Assert.Equal(typeof(string), resolver.ReturnType); + + ParameterInfo[] parameters = resolver.GetParameters(); + Assert.Equal(2, parameters.Length); + Assert.Equal(typeof(PSInfisicalAPI.Connections.InfisicalConnection), parameters[0].ParameterType); + Assert.Equal(typeof(string), parameters[1].ParameterType); + } + + [Fact] + public void An_Explicit_ProjectId_Short_Circuits_Resolution() + { + // Supplying the project must never trigger a lookup, so the explicit value has to be returned + // before any client is constructed. + PSInfisicalAPI.Cmdlets.GetInfisicalCertificateAuthorityCmdlet cmdlet = + new PSInfisicalAPI.Cmdlets.GetInfisicalCertificateAuthorityCmdlet(); + + MethodInfo resolver = typeof(PSInfisicalAPI.Cmdlets.InfisicalCmdletBase) + .GetMethod("ResolveCertManagerProjectId", BindingFlags.NonPublic | BindingFlags.Instance); + + // A null connection would throw the moment a lookup was attempted; returning cleanly proves it did not. + string result = (string)resolver.Invoke(cmdlet, new object[] { null, "explicit-project-id" }); + Assert.Equal("explicit-project-id", result); + } + + [Fact] + public void Certificate_Retrieval_By_Serial_Does_Not_Resolve_A_Project() + { + // Addressing a certificate by serial needs no project, so the Single parameter set must not pay + // for a lookup. + Type type = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.GetInfisicalCertificateCmdlet", true); + PropertyInfo serialNumber = type.GetProperty("SerialNumber"); + Assert.NotNull(serialNumber); + + bool serialIsMandatoryOnSingle = false; + foreach (CustomAttributeData attribute in serialNumber.GetCustomAttributesData()) + { + if (attribute.AttributeType != typeof(ParameterAttribute)) { continue; } + bool isSingle = false; + bool isMandatory = false; + foreach (CustomAttributeNamedArgument named in attribute.NamedArguments) + { + if (named.MemberName == "ParameterSetName" && (string)named.TypedValue.Value == "Single") { isSingle = true; } + if (named.MemberName == "Mandatory" && (bool)named.TypedValue.Value) { isMandatory = true; } + } + + if (isSingle && isMandatory) { serialIsMandatoryOnSingle = true; } + } + + Assert.True(serialIsMandatoryOnSingle); + } + + [Fact] + public void Profiles_Can_Be_Filtered_To_An_Application_The_Way_The_Console_Groups_Them() + { + Type type = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.GetInfisicalCertificateProfileCmdlet", true); + + PropertyInfo applicationId = type.GetProperty("ApplicationId"); + Assert.NotNull(applicationId); + Assert.Equal(typeof(string), applicationId.PropertyType); + + PropertyInfo caId = type.GetProperty("CaId"); + Assert.NotNull(caId); + } + + [Fact] + public void Profile_Listing_Keeps_Its_Original_Overload_For_Existing_Callers() + { + Type clientType = ModuleAssembly.GetType("PSInfisicalAPI.Pki.InfisicalPkiClient", true); + + MethodInfo original = clientType.GetMethod( + "ListCertificateProfiles", + BindingFlags.Public | BindingFlags.Instance, + null, + new[] { typeof(PSInfisicalAPI.Connections.InfisicalConnection), typeof(string), typeof(int?), typeof(int?), typeof(bool?) }, + null); + Assert.NotNull(original); + + MethodInfo filtered = clientType.GetMethod( + "ListCertificateProfiles", + BindingFlags.Public | BindingFlags.Instance, + null, + new[] { typeof(PSInfisicalAPI.Connections.InfisicalConnection), typeof(string), typeof(int?), typeof(int?), typeof(bool?), typeof(string), typeof(string) }, + null); + Assert.NotNull(filtered); + } + + private static List GetCalledMethodNames(MethodInfo method) + { + List names = new List(); + MethodBody body = method.GetMethodBody(); + if (body == null) { return names; } + + byte[] il = body.GetILAsByteArray(); + if (il == null) { return names; } + + const byte Call = 0x28; + const byte CallVirt = 0x6F; + + for (int i = 0; i + 4 < il.Length; i++) + { + if (il[i] != Call && il[i] != CallVirt) { continue; } + + int token = BitConverter.ToInt32(il, i + 1); + try + { + MethodBase resolved = method.Module.ResolveMethod(token); + if (resolved != null) { names.Add(resolved.Name); } + } + catch (ArgumentException) + { + } + } + + return names; + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs index db11a1b..15e31a7 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs @@ -18,7 +18,7 @@ namespace PSInfisicalAPI.Cmdlets [Alias("Name")] public string ApplicationName { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } [Parameter(ParameterSetName = "List")] public int? Limit { get; set; } @@ -29,6 +29,11 @@ namespace PSInfisicalAPI.Cmdlets try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs index c8d3db7..be8ba71 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs @@ -18,13 +18,18 @@ namespace PSInfisicalAPI.Cmdlets [Alias("CertificateProfileId")] public string ProfileId { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } protected override void ProcessRecord() { try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); InfisicalCertificateApplicationEnrollment enrollment = client.GetCertificateApplicationEnrollment(connection, ApplicationId, ProfileId, ProjectId); diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs index 6b161c0..e125de6 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs @@ -14,7 +14,7 @@ namespace PSInfisicalAPI.Cmdlets [Alias("Id")] public string CaId { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } [Parameter(ParameterSetName = "List")] [ValidateSet("Internal", "Acme", "Any")] @@ -25,6 +25,11 @@ namespace PSInfisicalAPI.Cmdlets try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs index 4ef7e24..c9b70f7 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs @@ -16,7 +16,7 @@ namespace PSInfisicalAPI.Cmdlets [Alias("Id", "Identifier")] public string SerialNumber { get; set; } - [Parameter(ParameterSetName = "List", Mandatory = true)] public string ProjectId { get; set; } + [Parameter(ParameterSetName = "List")] public string ProjectId { get; set; } [Parameter(ParameterSetName = "List")] public string CommonName { get; set; } [Parameter(ParameterSetName = "List")] public string FriendlyName { get; set; } [Parameter(ParameterSetName = "List")] public string Search { get; set; } @@ -59,6 +59,7 @@ namespace PSInfisicalAPI.Cmdlets InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); + // Retrieval by serial addresses the certificate directly, so it needs no project. if (string.Equals(ParameterSetName, "Single", StringComparison.Ordinal)) { InfisicalCertificate cert = client.RetrieveCertificate(connection, SerialNumber); @@ -70,6 +71,11 @@ namespace PSInfisicalAPI.Cmdlets return; } + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery { ProjectId = ProjectId, diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs index 1046afe..6d8bb82 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs @@ -14,7 +14,7 @@ namespace PSInfisicalAPI.Cmdlets [Alias("Id", "CertificatePolicyId")] public string PolicyId { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } [Parameter(ParameterSetName = "List")] public int? Limit { get; set; } @@ -25,6 +25,11 @@ namespace PSInfisicalAPI.Cmdlets try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs index 6e14bf7..3c985a6 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs @@ -14,7 +14,19 @@ namespace PSInfisicalAPI.Cmdlets [Alias("Id", "CertificateProfileId")] public string ProfileId { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } + + /// + /// Narrows the listing to one certificate application, which is how the Infisical console groups + /// profiles. See Get-InfisicalCertificateApplication. + /// + [Parameter(ParameterSetName = "List", ValueFromPipelineByPropertyName = true)] + public string ApplicationId { get; set; } + + /// + /// Narrows the listing to profiles issued by one certificate authority. + /// + [Parameter(ParameterSetName = "List")] public string CaId { get; set; } [Parameter(ParameterSetName = "List")] public int? Limit { get; set; } @@ -27,6 +39,11 @@ namespace PSInfisicalAPI.Cmdlets try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) @@ -41,8 +58,12 @@ namespace PSInfisicalAPI.Cmdlets } bool? includeConfigs = MyInvocation.BoundParameters.ContainsKey("IncludeConfigs") ? (bool?)IncludeConfigs.IsPresent : null; - InfisicalCertificateProfile[] all = client.ListCertificateProfiles(connection, ProjectId, Limit, Offset, includeConfigs); - Logger.Information("Get-InfisicalCertificateProfile", string.Concat("Returned ", all.Length.ToString(System.Globalization.CultureInfo.InvariantCulture), " certificate profile(s).")); + InfisicalCertificateProfile[] all = client.ListCertificateProfiles(connection, ProjectId, Limit, Offset, includeConfigs, ApplicationId, CaId); + + string scope = !string.IsNullOrEmpty(ApplicationId) + ? string.Concat(" for application '", ApplicationId, "'") + : (!string.IsNullOrEmpty(CaId) ? string.Concat(" for certificate authority '", CaId, "'") : string.Empty); + Logger.Information("Get-InfisicalCertificateProfile", string.Concat("Returned ", all.Length.ToString(System.Globalization.CultureInfo.InvariantCulture), " certificate profile(s)", scope, ".")); foreach (InfisicalCertificateProfile profile in all) { WriteObject(profile); diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs index 5a1a37a..972d449 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs @@ -14,13 +14,18 @@ namespace PSInfisicalAPI.Cmdlets [Alias("SubscriberName", "Slug")] public string Name { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } protected override void ProcessRecord() { try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ByName", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs index 49356a8..8785008 100644 --- a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs +++ b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs @@ -1,10 +1,13 @@ using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.Management.Automation; using System.Runtime.ExceptionServices; using System.Security.Cryptography.X509Certificates; using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Projects; using PSInfisicalAPI.Errors; using PSInfisicalAPI.Http; using PSInfisicalAPI.Logging; @@ -13,9 +16,12 @@ namespace PSInfisicalAPI.Cmdlets { public abstract class InfisicalCmdletBase : PSCmdlet { + private const string CertManagerProjectType = "cert-manager"; + private IInfisicalLogger _logger; private IInfisicalHttpClient _httpClient; private bool? _isElevated; + private string _resolvedCertManagerProjectId; protected IInfisicalLogger Logger { @@ -49,6 +55,69 @@ namespace PSInfisicalAPI.Cmdlets return current != null && current.SkipCertificateCheck; } + /// + /// Resolves the Certificate Manager project a PKI call should target. + /// + /// The Infisical UI never asks which project to use: an organization with a single Certificate Manager + /// project has it selected implicitly, which is why the project appears only in the URL and everything + /// below it is presented as applications. The API behaves the same way - its own resolver takes the + /// single cert-manager project when there is exactly one - so requiring -ProjectId on every cmdlet made + /// the module stricter than the service it wraps. + /// + /// + /// This mirrors that rule client-side, which is necessary because several PKI endpoints carry the project + /// in the URL path and cannot defer to the server's resolver. Resolved once per cmdlet instance. + /// + /// + protected string ResolveCertManagerProjectId(InfisicalConnection connection, string explicitValue) + { + if (!string.IsNullOrEmpty(explicitValue)) { return explicitValue; } + if (_resolvedCertManagerProjectId != null) { return _resolvedCertManagerProjectId; } + + InfisicalProjectClient client = new InfisicalProjectClient(HttpClient, Logger); + InfisicalProject[] projects = client.List(connection, CertManagerProjectType, false); + + List certManagerProjects = new List(); + if (projects != null) + { + foreach (InfisicalProject project in projects) + { + if (project == null) { continue; } + if (string.Equals(project.Type, CertManagerProjectType, StringComparison.OrdinalIgnoreCase)) + { + certManagerProjects.Add(project); + } + } + } + + if (certManagerProjects.Count == 0) + { + throw new InfisicalConfigurationException( + "This organization has no Certificate Manager project, so there is nothing to resolve -ProjectId to. Create one in Infisical, or pass -ProjectId explicitly."); + } + + if (certManagerProjects.Count > 1) + { + List described = new List(); + foreach (InfisicalProject project in certManagerProjects) + { + described.Add(string.Concat("'", project.Name ?? project.Slug, "' (", project.Id, ")")); + } + + throw new InfisicalConfigurationException(string.Concat( + "This organization has ", certManagerProjects.Count.ToString(CultureInfo.InvariantCulture), + " Certificate Manager projects, so -ProjectId cannot be resolved automatically. Pass it explicitly. Available: ", + string.Join(", ", described.ToArray()), ".")); + } + + _resolvedCertManagerProjectId = certManagerProjects[0].Id; + Logger.Verbose(GetType().Name, string.Concat( + "-ProjectId was not supplied; resolved the organization's only Certificate Manager project '", + certManagerProjects[0].Name ?? certManagerProjects[0].Slug, "' (", _resolvedCertManagerProjectId, ").")); + + return _resolvedCertManagerProjectId; + } + /// /// Reports whether the host process is running elevated. Evaluated through the PowerShell engine rather /// than WindowsIdentity directly, because the module targets netstandard2.0 and does not carry a diff --git a/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs index bd45ba3..d796dc2 100644 --- a/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs @@ -28,7 +28,7 @@ namespace PSInfisicalAPI.Cmdlets [Alias("ProfileId")] public string CertificateProfileId { get; set; } - [Parameter(Mandatory = true)] public string ProjectId { get; set; } + [Parameter] public string ProjectId { get; set; } [Parameter] public IDictionary Subject { get; set; } [Parameter] public string CommonName { get; set; } [Parameter] public string Country { get; set; } @@ -85,6 +85,11 @@ namespace PSInfisicalAPI.Cmdlets try { InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + + // The UI never asks which Certificate Manager project to use when an organization has only + // one; -ProjectId is optional here for the same reason. Assigned back so every call below + // sees the resolved value without threading a second variable through. + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); // Resolved once so reuse detection looks in the same stores the install will write to. diff --git a/src/PSInfisicalAPI/Pki/InfisicalPkiClient.cs b/src/PSInfisicalAPI/Pki/InfisicalPkiClient.cs index 4830ab0..864e78a 100644 --- a/src/PSInfisicalAPI/Pki/InfisicalPkiClient.cs +++ b/src/PSInfisicalAPI/Pki/InfisicalPkiClient.cs @@ -530,6 +530,16 @@ namespace PSInfisicalAPI.Pki } public InfisicalCertificateProfile[] ListCertificateProfiles(InfisicalConnection connection, string projectId, int? limit, int? offset, bool? includeConfigs) + { + return ListCertificateProfiles(connection, projectId, limit, offset, includeConfigs, null, null); + } + + /// + /// Lists certificate profiles, optionally narrowed to one application or issuing CA. Applications are + /// how the UI groups profiles, so filtering by application is what makes a script read the way the + /// console does. + /// + public InfisicalCertificateProfile[] ListCertificateProfiles(InfisicalConnection connection, string projectId, int? limit, int? offset, bool? includeConfigs, string applicationId, string caId) { if (connection == null) { throw new ArgumentNullException(nameof(connection)); } if (string.IsNullOrEmpty(projectId)) { throw new InfisicalConfigurationException("ProjectId is required."); } @@ -541,6 +551,8 @@ namespace PSInfisicalAPI.Pki if (limit.HasValue) { query.Add(new KeyValuePair("limit", limit.Value.ToString(CultureInfo.InvariantCulture))); } if (offset.HasValue) { query.Add(new KeyValuePair("offset", offset.Value.ToString(CultureInfo.InvariantCulture))); } if (includeConfigs.HasValue) { query.Add(new KeyValuePair("includeConfigs", includeConfigs.Value ? "true" : "false")); } + if (!string.IsNullOrEmpty(applicationId)) { query.Add(new KeyValuePair("applicationId", applicationId)); } + if (!string.IsNullOrEmpty(caId)) { query.Add(new KeyValuePair("caId", caId)); } try { -- 2.52.0 From 276958e3a83af1bfd7564ff3be9b26951acab33e Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 15:58:56 -0400 Subject: [PATCH 02/15] Resolve to the organization's active cert-manager project instead of erroring Several Certificate Manager projects in one organization is a normal configuration, not an ambiguity to reject. Infisical designates one as the organization's active project and serves certificate applications only from it: if (req.internalCertManagerProjectId !== activeProjectId) { throw new BadRequestError({ message: "Applications are only available on this organization's active Certificate Manager project." }); } So an application-centric workflow is single-project by design, and resolving to the active project is what makes it work. Resolution now picks that project when several exist, falling back to the first - saying so on the verbose stream - when the organization designates none. Only an organization with no Certificate Manager project at all still errors, because there is genuinely nothing to resolve to. Adds InfisicalOrganization.DefaultCertManagerProjectId, which is what the organization record calls its active project, so the choice is read rather than guessed. Moves Get-InfisicalProject onto /api/v1/projects. /api/v1/workspace mounts Infisical's deprecated project router; it is retained as a fallback candidate so older servers keep working, and the endpoint shape test now expects the current route. The end-to-end README example drops to the four calls that actually do the work: find the application, pick its profile, gather SANs, request. The project lookup is gone because -ProjectId resolves itself, and the CA lookup is gone because the profile already binds its issuing CA and -InstallChain installs the chain regardless. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 14 +++- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 450048 -> 451072 bytes README.md | 51 ++++++------- .../EndpointRegistryTests.cs | 4 +- .../ProjectScopingTests.cs | 39 ++++++++++ .../Cmdlets/InfisicalCmdletBase.cs | 72 +++++++++++++++--- .../Endpoints/InfisicalEndpointRegistry.cs | 12 +++ .../Models/InfisicalOrganization.cs | 6 ++ .../InfisicalOrganizationDtos.cs | 1 + .../InfisicalOrganizationMapper.cs | 1 + .../Projects/InfisicalProjectClient.cs | 2 +- 12 files changed, 162 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 894579b..1ab6f5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.31.1958 + +- Build produced from commit 633f40c1fa54. + +## Unreleased (carried forward) + ## 2026.07.31.1924 - Build produced from commit 93b0cc1924ec. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.31.0045 @@ -42,6 +48,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased (carried forward) +### Changed (project scoping, follow-up) + +- Several Certificate Manager projects in one organization is **no longer an error**. Infisical designates one as the organization's active project and serves certificate applications only from it, so resolution now picks that one; when none is designated the first is used and the verbose line says so. +- `InfisicalOrganization.DefaultCertManagerProjectId` exposes the organization's active Certificate Manager project. +- `Get-InfisicalProject` now calls `/api/v1/projects`, keeping the previously used `/api/v1/workspace` as a fallback candidate — that route mounts Infisical's deprecated project router. + ### Changed (project scoping) - **`-ProjectId` is now optional on every PKI cmdlet** (`Get-InfisicalCertificateApplication`, `-ApplicationEnrollment`, `-Authority`, `-Certificate`, `-CertificatePolicy`, `-CertificateProfile`, `Get-InfisicalPkiSubscriber`, `Request-InfisicalCertificate`). The Infisical console never asks which Certificate Manager project to use because its resolver selects the single cert-manager project when an organization has exactly one; the module was stricter than the service it wraps. Omitting `-ProjectId` applies the same rule and reports the resolved project on the verbose stream, and an organization with several produces an error listing them. diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 63ab803..9ac6be4 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.1924' + ModuleVersion = '2026.07.31.1958' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -74,7 +74,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = '93b0cc1924ec' + CommitHash = '633f40c1fa54' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index eb4e94295fbeaf602d4a7494246d9c8f89c9ee8b..69a2d2cc9890c38798f6803406723bad45f411ec 100644 GIT binary patch literal 451072 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 O^Av~c4?h3zB=En&QNYUp diff --git a/README.md b/README.md index 42d034e..a57f620 100644 --- a/README.md +++ b/README.md @@ -161,43 +161,22 @@ $ConnectInfisicalParameters = New-Object -TypeName 'System.Collections.Specializ $Connection = Connect-Infisical @ConnectInfisicalParameters -$Project = Get-InfisicalProject -Type cert-manager | Select-Object -First 1 +$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -ieq '2pint')} -$Project - -#region Certificate authorities. Not required for profile issuance - the profile already binds its CA - but -# useful for confirming the chain you expect to be installed. - $CAList = Get-InfisicalCertificateAuthority -ProjectId ($Project.Id) -Kind Internal - - $RootCA = $CAList | Where-Object {([String]::IsNullOrEmpty($_.ParentCaId) -eq $True)} | Select-Object -First 1 - - $RootCA - - $IntermediateCA = $CAList | Where-Object {([String]::IsNullOrEmpty($_.ParentCaId) -eq $False)} - - $IntermediateCA -#endregion - -$CertificateProfile = Get-InfisicalCertificateProfile -ProjectId ($Project.Id) -IncludeConfigs | - Where-Object {($_.EnrollmentType -iin @('API')) -and ($_.Slug -imatch '.*Server.*')} | +$CertificateProfile = Get-InfisicalCertificateProfile -ApplicationId ($Application.Id) -IncludeConfigs | + Where-Object {($_.EnrollmentType -ieq 'api') -and ($_.Slug -imatch 'server')} | Select-Object -First 1 -$CertificateProfile - $SanList = Get-InfisicalSANList -$SanList - $RequestInfisicalCertificateParameters = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $RequestInfisicalCertificateParameters.ProjectId = $Project.Id $RequestInfisicalCertificateParameters.CertificateProfileId = $CertificateProfile.Id $RequestInfisicalCertificateParameters.CommonName = $Env:ComputerName.ToUpper() $RequestInfisicalCertificateParameters.DnsName = New-Object -TypeName 'System.Collections.Generic.List[System.String]' $RequestInfisicalCertificateParameters.DnsName.AddRange($SanList) $RequestInfisicalCertificateParameters.DnsName.Add('app.contoso.com') - $RequestInfisicalCertificateParameters.DnsName.Add('api.contoso.com') - $RequestInfisicalCertificateParameters.DnsName.Add('boot.contoso.com') $RequestInfisicalCertificateParameters.Ttl = '90d' + $RequestInfisicalCertificateParameters.Metadata = [Ordered]@{ Environment = 'Production'; Owner = 'Platform' } $RequestInfisicalCertificateParameters.Install = $True $RequestInfisicalCertificateParameters.InstallChain = $True $RequestInfisicalCertificateParameters.Verbose = $True @@ -207,6 +186,8 @@ $Certificate = Request-InfisicalCertificate @RequestInfisicalCertificateParamete $Null = Disconnect-Infisical -Verbose ``` +Four calls: find the application, pick its profile, gather SANs, request. No project lookup — `-ProjectId` resolves itself — and no CA lookup, because the profile already binds its issuing CA and `-InstallChain` installs the whole chain regardless. + Note `$CertificateProfile` rather than `$Profile`: `$Profile` is an automatic variable in PowerShell (the path to the current profile script), and assigning to it works but shadows something the host relies on. `-StoreName`/`-StoreLocation` are omitted deliberately — see [Where certificates get installed](#where-certificates-get-installed). @@ -235,15 +216,29 @@ VERBOSE: -ProjectId was not supplied; resolved the organization's only Certifica 'Microsoft Endpoint Configuration Manager' (2122628e-...). ``` -Pass `-ProjectId` explicitly when an organization has more than one — the resolver cannot guess, and says so with the candidates listed: +Several Certificate Manager projects in one organization is not an error. Infisical designates one as the organization's **active** project, and that is what resolution picks: ```text -This organization has 2 Certificate Manager projects, so -ProjectId cannot be resolved automatically. -Pass it explicitly. Available: 'Platform PKI' (aaaa...), 'Lab PKI' (bbbb...). +VERBOSE: -ProjectId was not supplied; resolved the organization's active Certificate Manager project + 'Platform PKI' (aaaa...). ``` +If no active project is designated, the first is used and the verbose line says so; pass `-ProjectId` to target another. + This is resolved client-side rather than left to the server because several PKI endpoints carry the project in the URL path (`/api/v1/projects/{projectId}/pki-subscribers`, `/certificates/search`) and cannot defer to the server's resolver. +#### One project per organization, in practice + +An organization *can* hold several Certificate Manager projects, but **certificate applications are served only from the active one**. The applications router rejects anything else outright: + +```ts +if (req.internalCertManagerProjectId !== activeProjectId) { + throw new BadRequestError({ message: "Applications are only available on this organization's active Certificate Manager project." }); +} +``` + +So an application-centric workflow is single-project by design. Additional Certificate Manager projects can exist and hold their own CAs, policies, profiles, and certificates, but they are reachable only by passing `-ProjectId` explicitly, and applications will not work in them. + #### Projects contain applications The two are different levels, which is worth keeping straight when reading output: diff --git a/src/PSInfisicalAPI.Tests/EndpointRegistryTests.cs b/src/PSInfisicalAPI.Tests/EndpointRegistryTests.cs index f45456b..4e70f13 100644 --- a/src/PSInfisicalAPI.Tests/EndpointRegistryTests.cs +++ b/src/PSInfisicalAPI.Tests/EndpointRegistryTests.cs @@ -50,7 +50,9 @@ namespace PSInfisicalAPI.Tests [InlineData(InfisicalEndpointNames.CreateSecret, "POST", "/api/v3/secrets/raw/{secretName}")] [InlineData(InfisicalEndpointNames.UpdateSecret, "PATCH", "/api/v3/secrets/raw/{secretName}")] [InlineData(InfisicalEndpointNames.DeleteSecret, "DELETE", "/api/v3/secrets/raw/{secretName}")] - [InlineData(InfisicalEndpointNames.ListProjects, "GET", "/api/v1/workspace")] + // /api/v1/workspace mounts Infisical's deprecated project router; /api/v1/projects is the current one + // and is preferred, with the deprecated route retained as a fallback candidate. + [InlineData(InfisicalEndpointNames.ListProjects, "GET", "/api/v1/projects")] [InlineData(InfisicalEndpointNames.RetrieveProject, "GET", "/api/v1/workspace/{projectId}")] [InlineData(InfisicalEndpointNames.CreateProject, "POST", "/api/v2/workspace")] [InlineData(InfisicalEndpointNames.UpdateProject, "PATCH", "/api/v1/workspace/{projectId}")] diff --git a/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs index 67b15f7..63cefa8 100644 --- a/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs +++ b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs @@ -92,6 +92,45 @@ namespace PSInfisicalAPI.Tests Assert.Equal(typeof(string), parameters[1].ParameterType); } + [Fact] + public void Resolution_Does_Not_Error_When_An_Organization_Has_Several_Projects() + { + // Certificate applications are served only from the organization's active project, so several + // Certificate Manager projects is a normal configuration rather than an ambiguity to reject. + MethodInfo resolver = typeof(PSInfisicalAPI.Cmdlets.InfisicalCmdletBase) + .GetMethod("ResolveCertManagerProjectId", BindingFlags.NonPublic | BindingFlags.Instance); + + List called = GetCalledMethodNames(resolver); + Assert.Contains("FindActiveCertManagerProject", called); + + MethodInfo finder = typeof(PSInfisicalAPI.Cmdlets.InfisicalCmdletBase) + .GetMethod("FindActiveCertManagerProject", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(finder); + Assert.Equal(typeof(PSInfisicalAPI.Models.InfisicalProject), finder.ReturnType); + } + + [Fact] + public void The_Organizations_Active_Cert_Manager_Project_Is_Modelled() + { + PropertyInfo property = typeof(PSInfisicalAPI.Models.InfisicalOrganization) + .GetProperty("DefaultCertManagerProjectId"); + Assert.NotNull(property); + Assert.Equal(typeof(string), property.PropertyType); + } + + [Fact] + public void Project_Listing_Prefers_The_Current_Route_Over_The_Deprecated_One() + { + // /api/v1/workspace mounts Infisical's deprecated project router; /api/v1/projects is current. + IReadOnlyList candidates = + PSInfisicalAPI.Endpoints.InfisicalEndpointRegistry.GetCandidates( + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.ListProjects); + + Assert.True(candidates.Count >= 2, "both the current and deprecated routes should be registered"); + Assert.Equal("/api/v1/projects", candidates[0].Template); + Assert.Contains(candidates, c => c.Template == "/api/v1/workspace"); + } + [Fact] public void An_Explicit_ProjectId_Short_Circuits_Resolution() { diff --git a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs index 8785008..1f9b3be 100644 --- a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs +++ b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs @@ -7,6 +7,7 @@ using System.Runtime.ExceptionServices; using System.Security.Cryptography.X509Certificates; using PSInfisicalAPI.Connections; using PSInfisicalAPI.Models; +using PSInfisicalAPI.Organizations; using PSInfisicalAPI.Projects; using PSInfisicalAPI.Errors; using PSInfisicalAPI.Http; @@ -96,28 +97,77 @@ namespace PSInfisicalAPI.Cmdlets "This organization has no Certificate Manager project, so there is nothing to resolve -ProjectId to. Create one in Infisical, or pass -ProjectId explicitly."); } + InfisicalProject chosen = certManagerProjects[0]; + string reason = "the organization's only Certificate Manager project"; + if (certManagerProjects.Count > 1) { - List described = new List(); - foreach (InfisicalProject project in certManagerProjects) + // More than one is not an error. Infisical designates one of them as the organization's active + // Certificate Manager project, and certificate applications are only served from that one, so + // resolving to it is what makes an application-centric script work. + InfisicalProject active = FindActiveCertManagerProject(connection, certManagerProjects); + if (active != null) { - described.Add(string.Concat("'", project.Name ?? project.Slug, "' (", project.Id, ")")); + chosen = active; + reason = "the organization's active Certificate Manager project"; + } + else + { + reason = string.Concat( + "the first of ", certManagerProjects.Count.ToString(CultureInfo.InvariantCulture), + " Certificate Manager projects (no active project is set on the organization; pass -ProjectId to choose another)"); } - - throw new InfisicalConfigurationException(string.Concat( - "This organization has ", certManagerProjects.Count.ToString(CultureInfo.InvariantCulture), - " Certificate Manager projects, so -ProjectId cannot be resolved automatically. Pass it explicitly. Available: ", - string.Join(", ", described.ToArray()), ".")); } - _resolvedCertManagerProjectId = certManagerProjects[0].Id; + _resolvedCertManagerProjectId = chosen.Id; Logger.Verbose(GetType().Name, string.Concat( - "-ProjectId was not supplied; resolved the organization's only Certificate Manager project '", - certManagerProjects[0].Name ?? certManagerProjects[0].Slug, "' (", _resolvedCertManagerProjectId, ").")); + "-ProjectId was not supplied; resolved ", reason, ": '", + chosen.Name ?? chosen.Slug, "' (", _resolvedCertManagerProjectId, ").")); return _resolvedCertManagerProjectId; } + /// + /// Finds the organization's active Certificate Manager project among the candidates. Certificate + /// applications are served only from this project, so when several exist it is the one a PKI call + /// should target. Returns null when the organization designates none, leaving the caller to fall back. + /// + private InfisicalProject FindActiveCertManagerProject(InfisicalConnection connection, List candidates) + { + try + { + InfisicalOrganizationClient organizationClient = new InfisicalOrganizationClient(HttpClient, Logger); + InfisicalOrganization[] organizations = organizationClient.List(connection); + if (organizations == null) { return null; } + + string organizationId = connection != null ? connection.OrganizationId : null; + foreach (InfisicalOrganization organization in organizations) + { + if (organization == null || string.IsNullOrEmpty(organization.DefaultCertManagerProjectId)) { continue; } + if (!string.IsNullOrEmpty(organizationId) + && !string.Equals(organization.Id, organizationId, StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + foreach (InfisicalProject candidate in candidates) + { + if (string.Equals(candidate.Id, organization.DefaultCertManagerProjectId, StringComparison.OrdinalIgnoreCase)) + { + return candidate; + } + } + } + } + catch (Exception exception) + { + if (IsPipelineControlException(exception)) { throw; } + Logger.Verbose(GetType().Name, string.Concat("Could not read the organization's active Certificate Manager project (continuing): ", exception.Message)); + } + + return null; + } + /// /// Reports whether the host process is running elevated. Evaluated through the PowerShell engine rather /// than WindowsIdentity directly, because the module targets netstandard2.0 and does not carry a diff --git a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs index ad98ee2..fb35c90 100644 --- a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs +++ b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs @@ -288,6 +288,18 @@ namespace PSInfisicalAPI.Endpoints private static void RegisterProjects(Dictionary> map) { + // /api/v1/projects is the current route; /api/v1/workspace mounts Infisical's deprecated project + // router and is kept only as a fallback for older servers. + Add(map, new InfisicalEndpointDefinition + { + Name = InfisicalEndpointNames.ListProjects, + Resource = "Projects", + Version = "v1", + Method = "GET", + Template = "/api/v1/projects", + RequiresAuthorization = true + }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.ListProjects, diff --git a/src/PSInfisicalAPI/Models/InfisicalOrganization.cs b/src/PSInfisicalAPI/Models/InfisicalOrganization.cs index bace43e..cac132d 100644 --- a/src/PSInfisicalAPI/Models/InfisicalOrganization.cs +++ b/src/PSInfisicalAPI/Models/InfisicalOrganization.cs @@ -9,6 +9,12 @@ namespace PSInfisicalAPI.Models public string Slug { get; set; } public string CustomerId { get; set; } public bool AuthEnforced { get; set; } + + /// + /// The organization's active Certificate Manager project. Certificate applications are only available on + /// this project, so it is what a PKI call resolves to when an organization has more than one. + /// + public string DefaultCertManagerProjectId { get; set; } public bool ScimEnabled { get; set; } public DateTimeOffset? CreatedAtUtc { get; set; } public DateTimeOffset? UpdatedAtUtc { get; set; } diff --git a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationDtos.cs b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationDtos.cs index 9122bb9..48a07f7 100644 --- a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationDtos.cs +++ b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationDtos.cs @@ -11,6 +11,7 @@ namespace PSInfisicalAPI.Organizations [JsonProperty("slug")] public string Slug { get; set; } [JsonProperty("customerId")] public string CustomerId { get; set; } [JsonProperty("authEnforced")] public bool AuthEnforced { get; set; } + [JsonProperty("defaultCertManagerProjectId", NullValueHandling = NullValueHandling.Ignore)] public string DefaultCertManagerProjectId { get; set; } [JsonProperty("scimEnabled")] public bool ScimEnabled { get; set; } [JsonProperty("createdAt")] public string CreatedAt { get; set; } [JsonProperty("updatedAt")] public string UpdatedAt { get; set; } diff --git a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationMapper.cs b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationMapper.cs index 01f986b..b82b8e2 100644 --- a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationMapper.cs +++ b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationMapper.cs @@ -21,6 +21,7 @@ namespace PSInfisicalAPI.Organizations Slug = dto.Slug, CustomerId = dto.CustomerId, AuthEnforced = dto.AuthEnforced, + DefaultCertManagerProjectId = dto.DefaultCertManagerProjectId, ScimEnabled = dto.ScimEnabled, CreatedAtUtc = ParseTimestamp(dto.CreatedAt), UpdatedAtUtc = ParseTimestamp(dto.UpdatedAt) diff --git a/src/PSInfisicalAPI/Projects/InfisicalProjectClient.cs b/src/PSInfisicalAPI/Projects/InfisicalProjectClient.cs index 900f29a..3f7973d 100644 --- a/src/PSInfisicalAPI/Projects/InfisicalProjectClient.cs +++ b/src/PSInfisicalAPI/Projects/InfisicalProjectClient.cs @@ -45,7 +45,7 @@ namespace PSInfisicalAPI.Projects try { _logger.Information(Component, "Attempting to list Infisical projects. Please Wait..."); - InfisicalHttpResponse response = _invoker.Invoke(connection, InfisicalEndpointNames.ListProjects, "ListProjects", null, queryParameters, null); + InfisicalHttpResponse response = _invoker.InvokeWithCandidateFallback(connection, InfisicalEndpointNames.ListProjects, "ListProjects", null, queryParameters, null); InfisicalProjectListResponseDto dto = _serializer.Deserialize(response.Body); response.Clear(); -- 2.52.0 From a1e1d22e729360c481d8ab57dfe156af04faf1c7 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 16:06:33 -0400 Subject: [PATCH 03/15] Treat a missing cert-manager project as an empty result rather than an error An organization that has not set up Certificate Manager has nothing to list, so resolution now returns nothing instead of throwing, and the PKI Get-* cmdlets return quietly. -Verbose explains what happened and what to do: -ProjectId was not supplied and this organization has no Certificate Manager project, so there is nothing to resolve to. Create one in Infisical (Certificate Management), or pass -ProjectId to target a specific project. Without the guard the null would have travelled to the client layer and surfaced as "ProjectId is required" from somewhere unrelated to the cause, so each Get-* cmdlet returns as soon as resolution comes back empty. Request-InfisicalCertificate deliberately proceeds, because profile issuance does not need a project: only the reuse search does, and that already degrades to a local match with a warning when the search cannot run. Resolution is now attempted once per cmdlet instance rather than once per non-null result, so an organization with no project does not re-query on every call. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 9 +++++- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +-- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 451072 -> 451072 bytes README.md | 8 +++++ .../ProjectScopingTests.cs | 30 ++++++++++++++++++ ...etInfisicalCertificateApplicationCmdlet.cs | 3 ++ ...lCertificateApplicationEnrollmentCmdlet.cs | 3 ++ .../GetInfisicalCertificateAuthorityCmdlet.cs | 3 ++ .../Cmdlets/GetInfisicalCertificateCmdlet.cs | 3 ++ .../GetInfisicalCertificatePolicyCmdlet.cs | 3 ++ .../GetInfisicalCertificateProfileCmdlet.cs | 3 ++ .../GetInfisicalPkiSubscriberCmdlet.cs | 3 ++ .../Cmdlets/InfisicalCmdletBase.cs | 19 +++++++++-- 13 files changed, 85 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ab6f5d..b8b343b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.31.2006 + +- Build produced from commit 276958e3a83a. + +## Unreleased (carried forward) + ## 2026.07.31.1958 - Build produced from commit 633f40c1fa54. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.31.1924 @@ -50,6 +56,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ### Changed (project scoping, follow-up) +- An organization with **no** Certificate Manager project is no longer an error. Resolution returns nothing and the PKI `Get-*` cmdlets emit no output, with `-Verbose` explaining that none was found and suggesting one be created. Nothing to list is an empty result, not a failure. - Several Certificate Manager projects in one organization is **no longer an error**. Infisical designates one as the organization's active project and serves certificate applications only from it, so resolution now picks that one; when none is designated the first is used and the verbose line says so. - `InfisicalOrganization.DefaultCertManagerProjectId` exposes the organization's active Certificate Manager project. - `Get-InfisicalProject` now calls `/api/v1/projects`, keeping the previously used `/api/v1/workspace` as a fallback candidate — that route mounts Infisical's deprecated project router. diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 9ac6be4..e9852e7 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.1958' + ModuleVersion = '2026.07.31.2006' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -74,7 +74,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = '633f40c1fa54' + CommitHash = '276958e3a83a' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 69a2d2cc9890c38798f6803406723bad45f411ec..38948874d50b0482413ff1fad774abc0628d9172 100644 GIT binary patch delta 96655 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 delta 96431 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%0DD$=|;$+-;4B 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 q zC$ebI(1+f{l4U>EV8wF6gMTYhVvlQk;22#@GQ1El#S?CkJw(gFRcC&eEz$2+W7%(YGqhTyb-62d z@#GB2nUKeIs5TlZRI#^RWqSC32H}k+z>3-qfTzcM0nVn0A;#56GURDOHkL<@=k|tl z45d$LVmP{jDXmjZCDFcXJ3}{%C;{{>>Ir4J7?Bgk|7Vz}94C)KXS)*+uV*2SoQHUV z%6+IDYZwR=$1ve^>6pcNwfl}{-tBjBJmzFQ1rkms;{+&79tP$6nM*yPB4!#^?<^wjYeDP=lWv%O7*{uFwXL^j-at%?Ok?m&sr~lzhkK5A+GQD=_p8UAA-E~{*cwg>f zY+aPK+VABqTI_w<$1^=m1<#zTd=*fRc^$A$d+EL$p#C$L+fR;S6m~G-d~VG}d|qI4 zI8^^R`=yyiRAP)##TSnJyiC;YFd?S_$9&02d+9C>TWu@>tkJdrmJ=Q?-45j;r}qH1 zb%65OB&id|iC8Xozvd4lu7EdC=B49UDVAaBz^L_Ycfr7+byatj*`bf{#tOiS+T(zy z$JYWnt`s#CsT{9t+y8K-p!8-K-vGV%2dz5?FD=LLjnfP)x93jo>`&Sdy<)M6lQi@N z++%QNW4*XGgO0tEC~XvJi}gwuV{0>QyIy(xchWMtPqenZw0wlZKpd;=H5b8ze;_UM zDW<0znqVD9Nc)#B3a~sp9fK+*<_ZXnAgs;BQ%p7OO_rR%+G})8)nnHU;8|6U_yL_| z9&^Xt-iNeH6W!9bf1tF?hbxXMKEs95xn8tMqJ4RN40g6N1M!Iwh%e%aO**p{F@GYW zX*eoY`Ct@fuC?L6unEZ$gZt?Ic^k zY5ceDwY~+r+Yak3P=4@U3+0F=;k6c=b$h$q1J=bQrWm}}>If)q47p2jA>bQ9#{eBB z%=*?ar3H$YEJx>)*A)qF__Squ#oX?#qo{IXG#U{w2Cvr}95gDn$fb}t6%)H6*o)f1HPP%<(6`ci+OJ^f^q_h zXuFHS+8^C8OY=1+UvToZ7hidDxN`T6Dae0d9AZWV;-V77XagcE2gg`kfmowANjuhy z7m>Q1OMsPaV&$%px|xx`ifAcc20YCFAicft# zb8;(2Uc)lhqRbgIBT5L*mTw12OZgtaX3lg^jKJ9BrA%Dh{+A0HnDP7TnLLKpT-Mj| zns+%xXw53L;OA|KZTIK6xJ4!-MbZ%OEW?rD8~9mtHWU5Y8UnP92!9^E+barNjdrC> z$K7+Ht=nmbiuR^h?>8!-_M?Nx0UMsh`614XS)*!!zGh|vpg3(EXU4DTE3$2*IVp;x zD30;34O;JoTd#$A|9nZi>8e;VI3={L`DkXwI2_l&vU8vje{$5Gt1rc&OE*tIxA5mm zVwVpr`C7Ic%p}edSK5h5uI0$&GIz{nR#Cj5cN}|Gi1~R$x!jGG=GK|Sr1@IM4xrJ} zU3huTQ{VAGEgrY|&SJo5%mU$C5&8b2mhLZB(*1?w0i4rGtO0xB^S^00=MlspH3NO; z7z6hxbsu^DOQ?;nN1kPrDJRfo{KF|o@z{Zz63&qWK0?ahy30qNsQrj-cljz_ z?H2^cGo2I~927jTU(ld_A+~-h!DFpsafxik00n?DzxbycK$E?Lnk=#gxWp6G~CoJ4>JB0hKvsX diff --git a/README.md b/README.md index a57f620..f8022f4 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,14 @@ VERBOSE: -ProjectId was not supplied; resolved the organization's only Certifica 'Microsoft Endpoint Configuration Manager' (2122628e-...). ``` +An organization with **no** Certificate Manager project is not an error either. There is nothing to list, so the PKI `Get-*` cmdlets return nothing and `-Verbose` explains why: + +```text +VERBOSE: -ProjectId was not supplied and this organization has no Certificate Manager project, so there is + nothing to resolve to. Create one in Infisical (Certificate Management), or pass -ProjectId to + target a specific project. +``` + Several Certificate Manager projects in one organization is not an error. Infisical designates one as the organization's **active** project, and that is what resolution picks: ```text diff --git a/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs index 63cefa8..979e889 100644 --- a/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs +++ b/src/PSInfisicalAPI.Tests/ProjectScopingTests.cs @@ -109,6 +109,36 @@ namespace PSInfisicalAPI.Tests Assert.Equal(typeof(PSInfisicalAPI.Models.InfisicalProject), finder.ReturnType); } + [Fact] + public void An_Organization_Without_Any_Cert_Manager_Project_Is_Not_An_Error() + { + // Nothing to list is an empty result, not a failure, so resolution returns null and each Get-* + // cmdlet returns quietly rather than surfacing "ProjectId is required" from deep in the client. + MethodInfo resolver = typeof(PSInfisicalAPI.Cmdlets.InfisicalCmdletBase) + .GetMethod("ResolveCertManagerProjectId", BindingFlags.NonPublic | BindingFlags.Instance); + + List called = GetCalledMethodNames(resolver); + Assert.DoesNotContain("ThrowTerminatingForException", called); + Assert.DoesNotContain("WriteErrorForException", called); + + List ungarded = new List(); + foreach (string typeName in PkiCmdletTypes) + { + // Request-InfisicalCertificate can still issue through a profile without a project, so it is + // deliberately allowed to proceed. + if (typeName.EndsWith("RequestInfisicalCertificateCmdlet", StringComparison.Ordinal)) { continue; } + + Type type = ModuleAssembly.GetType(typeName, true); + MethodInfo processRecord = type.GetMethod("ProcessRecord", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly); + if (!GetCalledMethodNames(processRecord).Contains("IsNullOrEmpty")) + { + ungarded.Add(type.Name); + } + } + + Assert.Empty(ungarded); + } + [Fact] public void The_Organizations_Active_Cert_Manager_Project_Is_Modelled() { diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs index 15e31a7..55fbf9a 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationCmdlet.cs @@ -34,6 +34,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs index be8ba71..370afe0 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateApplicationEnrollmentCmdlet.cs @@ -30,6 +30,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); InfisicalCertificateApplicationEnrollment enrollment = client.GetCertificateApplicationEnrollment(connection, ApplicationId, ProfileId, ProjectId); diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs index e125de6..b9d15ff 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateAuthorityCmdlet.cs @@ -30,6 +30,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs index c9b70f7..3deb08c 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateCmdlet.cs @@ -76,6 +76,9 @@ namespace PSInfisicalAPI.Cmdlets // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery { ProjectId = ProjectId, diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs index 6d8bb82..4d3da67 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificatePolicyCmdlet.cs @@ -30,6 +30,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs index 3c985a6..422a1fb 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalCertificateProfileCmdlet.cs @@ -44,6 +44,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ById", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs index 972d449..f2c300a 100644 --- a/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/GetInfisicalPkiSubscriberCmdlet.cs @@ -26,6 +26,9 @@ namespace PSInfisicalAPI.Cmdlets // one; -ProjectId is optional here for the same reason. Assigned back so every call below // sees the resolved value without threading a second variable through. ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + + // No Certificate Manager project means nothing to list; that is an empty result, not a failure. + if (string.IsNullOrEmpty(ProjectId)) { return; } InfisicalPkiClient client = new InfisicalPkiClient(HttpClient, Logger); if (string.Equals(ParameterSetName, "ByName", StringComparison.Ordinal)) diff --git a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs index 1f9b3be..46753a1 100644 --- a/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs +++ b/src/PSInfisicalAPI/Cmdlets/InfisicalCmdletBase.cs @@ -23,6 +23,7 @@ namespace PSInfisicalAPI.Cmdlets private IInfisicalHttpClient _httpClient; private bool? _isElevated; private string _resolvedCertManagerProjectId; + private bool _certManagerProjectResolved; protected IInfisicalLogger Logger { @@ -70,10 +71,17 @@ namespace PSInfisicalAPI.Cmdlets /// in the URL path and cannot defer to the server's resolver. Resolved once per cmdlet instance. /// /// + /// + /// The project to use, or null when the organization has no Certificate Manager project. Callers + /// that cannot proceed without one should return quietly rather than failing: an organization that has + /// not set up Certificate Manager has nothing to list, which is an empty result and not an error. + /// protected string ResolveCertManagerProjectId(InfisicalConnection connection, string explicitValue) { if (!string.IsNullOrEmpty(explicitValue)) { return explicitValue; } - if (_resolvedCertManagerProjectId != null) { return _resolvedCertManagerProjectId; } + if (_certManagerProjectResolved) { return _resolvedCertManagerProjectId; } + + _certManagerProjectResolved = true; InfisicalProjectClient client = new InfisicalProjectClient(HttpClient, Logger); InfisicalProject[] projects = client.List(connection, CertManagerProjectType, false); @@ -93,8 +101,13 @@ namespace PSInfisicalAPI.Cmdlets if (certManagerProjects.Count == 0) { - throw new InfisicalConfigurationException( - "This organization has no Certificate Manager project, so there is nothing to resolve -ProjectId to. Create one in Infisical, or pass -ProjectId explicitly."); + Logger.Verbose(GetType().Name, string.Concat( + "-ProjectId was not supplied and this organization has no Certificate Manager project, so there is ", + "nothing to resolve to. Create one in Infisical (Certificate Management), or pass -ProjectId to ", + "target a specific project.")); + + _resolvedCertManagerProjectId = null; + return null; } InfisicalProject chosen = certManagerProjects[0]; -- 2.52.0 From e7674af1617c7e08661bb10ef484af43ceccb6f4 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 16:13:58 -0400 Subject: [PATCH 04/15] Bring the README examples in line with optional -ProjectId and add renewal Several examples still passed -ProjectId ($Project.Id) from a project lookup the walkthrough no longer performs, so they read as though the parameter were still required. Removed from the profile, policy, subscriber, and certificate authority examples, and from the offline-fallback snippet. The end-to-end example loses the site-specific application name, and the profile selection collapses to one line. Its "Example output" section still showed the project and certificate authority records the example stopped fetching, so it now matches what the script actually emits, including the project-resolution line. Adds a renewal example directly beneath, reusing the parameters built above so the difference is visible as two added keys rather than a second wall of setup. It notes that the call is safe to repeat, that reuse is matched on the issuing profile and the SAN set so a changed profile or added name reissues, and that -Force ignores both. Also drops the note about $CertificateProfile versus the $Profile automatic variable, which explained a naming choice the reader has no reason to care about, and points the extension docs at ResolveCertManagerProjectId rather than the ResolveProjectId name that no longer exists. Co-Authored-By: Claude Opus 5 --- README.md | 86 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index f8022f4..c04816c 100644 --- a/README.md +++ b/README.md @@ -161,11 +161,9 @@ $ConnectInfisicalParameters = New-Object -TypeName 'System.Collections.Specializ $Connection = Connect-Infisical @ConnectInfisicalParameters -$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -ieq '2pint')} +$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -ieq 'platform')} -$CertificateProfile = Get-InfisicalCertificateProfile -ApplicationId ($Application.Id) -IncludeConfigs | - Where-Object {($_.EnrollmentType -ieq 'api') -and ($_.Slug -imatch 'server')} | - Select-Object -First 1 +$CertificateProfile = Get-InfisicalCertificateProfile -ApplicationId ($Application.Id) -IncludeConfigs | Where-Object {($_.EnrollmentType -ieq 'api') -and ($_.Slug -imatch 'server')} | Select-Object -First 1 $SanList = Get-InfisicalSANList @@ -188,10 +186,30 @@ $Null = Disconnect-Infisical -Verbose Four calls: find the application, pick its profile, gather SANs, request. No project lookup — `-ProjectId` resolves itself — and no CA lookup, because the profile already binds its issuing CA and `-InstallChain` installs the whole chain regardless. -Note `$CertificateProfile` rather than `$Profile`: `$Profile` is an automatic variable in PowerShell (the path to the current profile script), and assigning to it works but shadows something the host relies on. - `-StoreName`/`-StoreLocation` are omitted deliberately — see [Where certificates get installed](#where-certificates-get-installed). +## Renewing that certificate + +Run the same request again with `-AllowRenewal`. Nothing else changes — the parameters below are the ones built above, so this is the shape to put on a schedule: + +```powershell +$RequestInfisicalCertificateParameters.AllowRenewal = $True +$RequestInfisicalCertificateParameters.RenewalThresholdDays = 30 + +$Certificate = Request-InfisicalCertificate @RequestInfisicalCertificateParameters +``` + +The call is safe to repeat. Outside the renewal window it finds the installed certificate and returns it untouched; inside the window it issues a replacement and installs it: + +```text +VERBOSE: Reuse search for CN=WEB01 scoped to certificate profile 'a42f8446-...' returned 1 active certificate(s). +VERBOSE: Reusing existing certificate (Thumbprint=F480A920..., NotAfter=2026-10-28 19:36:49Z). +``` + +Reuse is matched on the issuing profile *and* the requested SAN set, so the same script issues a new certificate — rather than silently returning the old one — whenever the profile changes or a name is added to `-DnsName`. `-Force` issues unconditionally, ignoring both the renewal window and any existing certificate. + +Run it daily and it does nothing until the certificate is within 30 days of expiry, then rotates it. Nothing to gate it with, and no state to keep. + ### Project scoping Opening **Certificate Manager** in the Infisical console never asks which project to use. The project is in the URL — `/organizations/{orgId}/projects/cert-manager/{projectId}/applications` — but it is chosen for you, and everything below it is presented as **applications**. That is because Infisical's own resolver takes the single Certificate Manager project when an organization has exactly one: @@ -256,12 +274,12 @@ The two are different levels, which is worth keeping straight when reading outpu | **Project** | The Certificate Manager project itself. One per organization in most setups. | `Get-InfisicalProject -Type cert-manager` | | **Application** | A grouping of profiles, members, and certificates inside that project. | `Get-InfisicalCertificateApplication` | -So a project named `mecm` can contain applications named `2pint` and `microsoft-endpoint-configuration-manager`; listing projects returns only `mecm`, because the others are not projects. Every application carries the `ProjectId` it belongs to. +So a project named `pki` can contain applications named `platform` and `endpoint-management`; listing projects returns only `pki`, because the others are not projects. Every application carries the `ProjectId` it belongs to, which is why that field is real rather than vestigial. Profiles can be filtered to an application, matching how the console groups them: ```powershell -$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -eq '2pint')} +$Application = Get-InfisicalCertificateApplication | Where-Object {($_.Name -ieq 'platform')} Get-InfisicalCertificateProfile -ApplicationId $Application.Id -IncludeConfigs Get-InfisicalCertificate -ApplicationId $Application.Id ``` @@ -269,32 +287,15 @@ Get-InfisicalCertificate -ApplicationId $Application.Id ### Example output ```text -Id : 00000000-0000-0000-0000-000000000000 -Name : Microsoft Endpoint Configuration Manager -Slug : mecm -Description : -OrganizationId : 11111111-1111-1111-1111-111111111111 -Type : cert-manager -AutoCapitalization : False -EnvironmentSlugs : {dev, staging, prod} -CreatedAtUtc : 3/12/2026 8:32:52 PM +00:00 -UpdatedAtUtc : 6/21/2026 7:00:28 PM +00:00 - -Name : root-ca -CommonName : Contoso Root Certificate Authority -Type : internal -Status : active -KeyAlgorithm : RSA_2048 -NotAfter : 03/25/2036 00:00:00 -Id : 22222222-2222-2222-2222-222222222222 - -Name : intermediate-ca -CommonName : Contoso Intermediate Certificate Authority -Type : internal -Status : active -KeyAlgorithm : RSA_2048 -NotAfter : 03/25/2031 00:00:00 -Id : 33333333-3333-3333-3333-333333333333 +Id : 11111111-1111-1111-1111-111111111111 +ProjectId : 00000000-0000-0000-0000-000000000000 +Name : platform +Description : +ProfileCount : 3 +MemberCount : 2 +CertificateCount : 0 +CreatedAtUtc : 7/30/2026 10:05:37 PM +00:00 +UpdatedAtUtc : 7/30/2026 10:05:37 PM +00:00 Id : 44444444-4444-4444-4444-444444444444 ProjectId : 00000000-0000-0000-0000-000000000000 @@ -321,6 +322,7 @@ WEB01.contoso.com 127.0.0.1 ::1 +VERBOSE: [...] - [Information] - [GetInfisicalCertificateApplicationCmdlet] - -ProjectId was not supplied; resolved the organization's only Certificate Manager project 'Platform PKI' (00000000-0000-0000-0000-000000000000). VERBOSE: [...] - [Information] - [PkiClient] - Attempting to search Infisical certificates. Please Wait... VERBOSE: [...] - [Verbose] - [HttpClient] - Attempting HTTP POST to https://infisical.contoso.com/api/v1/projects/00000000-0000-0000-0000-000000000000/certificates/search. Please Wait... VERBOSE: [...] - [Verbose] - [HttpClient] - HTTP POST completed with status 200. @@ -467,8 +469,8 @@ Request-InfisicalCertificate @RequestInfisicalCertificateParameters -WhatIf A certificate profile binds a CA to a certificate policy. The policy constrains the subject, key usages, and extended key usages with `allowed`/`required`/`denied` lists, so the common name still varies per request while staying inside guardrails. ```powershell -Get-InfisicalCertificateProfile -ProjectId ($Project.Id) | Format-Table Id, Name, CaId -Get-InfisicalCertificatePolicy -ProjectId ($Project.Id) | Format-Table Id, Name +Get-InfisicalCertificateProfile | Format-Table Id, Slug, CaId, EnrollmentType +Get-InfisicalCertificatePolicy | Format-Table Id, Name ``` Profile issuance is the only path that does **not** consult the CA's direct-issuance flag — the service short-circuits it: @@ -482,7 +484,7 @@ So a profile issues successfully against a CA whose `EnableDirectIssuance` is `F #### Discovering subscribers ```powershell -Get-InfisicalPkiSubscriber -ProjectId ($Project.Id) | +Get-InfisicalPkiSubscriber | Format-Table Name, CommonName, Status, Ttl, CaId ``` @@ -515,10 +517,10 @@ const ca = await certificateAuthorityDAL.create({ projectId, name: resolvedCaNam So **every CA created through the API or UI has direct issuance disabled**, and nothing can turn it on afterwards. Use a certificate profile, which ignores the flag entirely. ```powershell -Get-InfisicalCertificateAuthority -ProjectId ($Project.Id) -Kind Internal | +Get-InfisicalCertificateAuthority -Kind Internal | Format-Table Name, CommonName, Status, EnableDirectIssuance -$Ca = Get-InfisicalCertificateAuthority -ProjectId ($Project.Id) -Kind Internal | +$Ca = Get-InfisicalCertificateAuthority -Kind Internal | Where-Object {($_.EnableDirectIssuance -eq $True)} | Select-Object -First 1 @@ -574,7 +576,7 @@ A failing item does not abort the batch: ```powershell 'web01', 'does-not-exist', 'web02' | - ForEach-Object { Get-InfisicalPkiSubscriber -ProjectId $ProjectId -Name $_ -ErrorAction SilentlyContinue } + ForEach-Object { Get-InfisicalPkiSubscriber -Name $_ -ErrorAction SilentlyContinue } # emits web01 and web02; the failure is available in $Error ``` @@ -674,7 +676,7 @@ To add a route: ### Adding a new cmdlet -Cmdlets live in `src/PSInfisicalAPI/Cmdlets/` and derive from `InfisicalCmdletBase`, which exposes `HttpClient`, `Logger`, `ResolveProjectId`, and `ThrowTerminatingForException`. Follow the consolidated discovery pattern when the cmdlet supports both list and single-record retrieval: +Cmdlets live in `src/PSInfisicalAPI/Cmdlets/` and derive from `InfisicalCmdletBase`, which exposes `HttpClient`, `Logger`, `ResolveCertManagerProjectId`, and `ThrowTerminatingForException`. Follow the consolidated discovery pattern when the cmdlet supports both list and single-record retrieval: ```csharp [Cmdlet(VerbsCommon.Get, "InfisicalPkiSubscriber", DefaultParameterSetName = "List")] @@ -699,7 +701,7 @@ After adding (or removing) a cmdlet: ```powershell $Params = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary' -ArgumentList ([System.StringComparer]::OrdinalIgnoreCase) - $Params.ProjectId = (Get-InfisicalProject | Select-Object -First 1).Id + $Params.ProjectId = (Get-InfisicalProject -Type cert-manager | Select-Object -First 1).Id $Result = Get-InfisicalPkiSubscriber @Params ``` 4. Add a `## Unreleased` entry to `CHANGELOG.md` describing the change (mark removals of public cmdlets or parameters as **BREAKING**). -- 2.52.0 From f1a6db14c72a9c5636a70f7ef4d41854b0483503 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 16:20:04 -0400 Subject: [PATCH 05/15] Make the seeding script adopt an existing project and seed an application The script created a Certificate Manager project whenever the configured slug did not match an existing one. Against an organization that already had one that produced a second, which would then be unable to hold applications at all - they are served only from the organization's active project. It now adopts the existing project and says so, creating one only when the organization has none, and notes when an organization has several that applications work in one. It also seeds a certificate application and attaches the seeded profiles to it. Applications are how the console groups profiles and how Get-InfisicalCertificateProfile -ApplicationId scopes a lookup, so seeding profiles without one left an environment the documented workflow could not navigate. Profiles are attached at creation via profileIds, and an application that already exists has only its missing profiles added. Project discovery moves to /api/v1/projects, matching the module, and tolerates either response shape. Separately, the environment-variable discovery table listed ProjectId, Environment, and SecretPath as discoverable Connect-Infisical parameters. InfisicalEnvironmentResolver defines patterns for BaseUri, OrganizationId, ClientId, ClientSecret, AccessToken, and ApiVersion only - the other three are per-call parameters and were never resolved from the environment. Same defect as the Quick Start, in the table immediately below it. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 16 ++++++++++++++-- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 ++-- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 451072 -> 451072 bytes README.md | 7 +++---- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8b343b..36811c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.31.2019 + +- Build produced from commit e7674af1617c. + +## Unreleased (carried forward) + ## 2026.07.31.2006 - Build produced from commit 276958e3a83a. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.31.1958 @@ -86,7 +92,13 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ### Added (tooling) -- `Scripts/Initialize-InfisicalCertManagerEnvironment.ps1` seeds a Certificate Manager project, CA hierarchy, certificate policies, and API enrollment profiles from one declarative configuration block, taking only a base URI, client id, and client secret. Idempotent and `-WhatIf`-aware. Seeds an RSA hierarchy for SCCM/MECM server and client authentication, and an ECDSA P-384 hierarchy for server/client authentication and code signing. +- `Scripts/Initialize-InfisicalCertManagerEnvironment.ps1` seeds a Certificate Manager project, CA hierarchy, certificate policies, API enrollment profiles, and a certificate application from one declarative configuration block, taking only a base URI, client id, and client secret. Idempotent and `-WhatIf`-aware. Seeds an RSA hierarchy for SCCM/MECM server and client authentication, and an ECDSA P-384 hierarchy for server/client authentication and code signing. +- The script **adopts an organization's existing Certificate Manager project** rather than creating one when the configured slug does not match. Creating a second would have succeeded and then been unable to hold applications, since they are served only from the organization's active project. +- It creates a certificate application and attaches the seeded profiles to it, so the result is navigable by `Get-InfisicalCertificateProfile -ApplicationId`. + +### Fixed (documentation) + +- The environment-variable discovery table listed `ProjectId`, `Environment`, and `SecretPath` as discoverable `Connect-Infisical` parameters. The resolver defines patterns for `BaseUri`, `OrganizationId`, `ClientId`, `ClientSecret`, `AccessToken`, and `ApiVersion` only; the other three are per-call parameters and were never resolved. ### Fixed (documentation) diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index e9852e7..342cb7b 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.2006' + ModuleVersion = '2026.07.31.2019' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -74,7 +74,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = '276958e3a83a' + CommitHash = 'e7674af1617c' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 38948874d50b0482413ff1fad774abc0628d9172..b4658d04392d7368b289b7074ee56f0432f9aa5b 100644 GIT binary patch delta 359 zcmZoTBHeIAdO`=w1?P7k8hcuM7+ZUoT6>tc_OO(MGCpo+3}e~O7{*$CUSNx|(kyT8 zhaU5k53N_KGs@lGqso>Sz>{ijW^R(0W@u(;o;;ncjLq1|&{EHUfx(uM!NSPE$V|_` zT+i50&&a^gQX5&Vd8&bhnVDfylA%Frnu!I_2ovMv)a2wOvow?K)n#m7lUb5jyO&Ha zxy2SBFkSC`^SjLV4jW%58@g`WJ$3q(TWqxoP|*v8P*I?ImD;1z_fBSGvfd@Jvw3^r zZ8lj(_Q&k(46oQ9Z=ZUHEtZklkil~M*Sl=4jG;glgEm7dgE@m45SuV0GNdsW0@;Q@ zUNR7;G8iye0Qn%1Bp@^d@>79oOn{;g)g}zaK$WRLoD7sV1IbPAzt85(4l-Jg!C MqsDf|2WHYes{)3 zN2eK2{LZsp3FX}0qso>Sz++@?W@&1XYMf|coH(7WjLq1|z)a78fx(uM!NSPE2*@_q zGd9#SGB7aHMpm0}ao2ZvmiKl{L8;cC7&kIbjVOuurAtyTdldf_2d6sTTkrmUBLzcruGx=-Py+Y4{A z$uhEEV`pc0#eQx3)H`gkjLZfMX4}8sWpiZ=1+o~l8H^arfwU!qDT4(=DuXdYB9I1= zX$*!8NkB3MC~pc>VFF~Q0cDbasw{z|5mc8UP;D|0CjsS*8B(YB-)D1X2N|u$U@+N` MQDZyf1GfK+0JH~e+W-In diff --git a/README.md b/README.md index c04816c..f81cf69 100644 --- a/README.md +++ b/README.md @@ -612,16 +612,15 @@ The resolver matches case-insensitively against patterns aligned with Infisical' | Parameter | Example variable names matched | | ----------------- | ------------------------------------------------------------------------------------ | -| `BaseUri` | `INFISICAL_API_URL`, `INFISICAL_BASE_URL`, `INFISICAL_HOST` | +| `BaseUri` | `INFISICAL_API_URL`, `INFISICAL_BASE_URL`, `INFISICAL_BASE_URI`, `INFISICAL_HOST` | | `OrganizationId` | `INFISICAL_ORG_ID`, `INFISICAL_ORGANIZATION_ID` | -| `ProjectId` | `INFISICAL_PROJECT_ID`, `INFISICAL_WORKSPACE_ID` | -| `Environment` | `INFISICAL_ENVIRONMENT`, `INFISICAL_ENV`, `INFISICAL_ENV_SLUG` | | `ClientId` | `INFISICAL_CLIENT_ID`, `INFISICAL_UNIVERSAL_AUTH_CLIENT_ID` | | `ClientSecret` | `INFISICAL_CLIENT_SECRET`, `INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET` | | `AccessToken` | `INFISICAL_TOKEN`, `INFISICAL_ACCESS_TOKEN`, `INFISICAL_AUTH_TOKEN` | -| `SecretPath` | `INFISICAL_SECRET_PATH`, `INFISICAL_DEFAULT_SECRET_PATH` | | `ApiVersion` | `INFISICAL_API_VERSION` | +Discovery covers the connection itself. Project, environment, and secret path are per-call parameters, so they are not resolved from the environment. + Sensitive values (`ClientSecret`, `AccessToken`) are read directly into a read-only `SecureString` and never logged. ### Zero-configuration example -- 2.52.0 From 62131e7501097d0771ca52be44e4dc5d4fcac3a5 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 16:46:20 -0400 Subject: [PATCH 06/15] Promote the changelog notes into each version, and correct route ordering Update-Changelog inserted the version heading above the notes, so the section the release workflow extracts contained only the build line while the actual notes stayed under "Unreleased". Every release published an empty changelog. It now promotes whatever sits under Unreleased into the version section and leaves a fresh empty Unreleased above it, with the provenance line italicised and last so it does not read as another entry in whichever section the notes ended on. Re-running the same version remains a no-op, and a build with nothing to say still produces a section. SignCertificateByCa now prefers /api/v1/cert-manager over the older /api/v1/pki route. RetrieveCertificate and GetCertificateBundle deliberately keep the older route first, which is the opposite of what it looks like. The /api/v1/pki route resolves a certificate by serial number, which is what callers supply; the cert-manager route takes a certificate ID and passes it through as getCert({ id }), so it cannot answer a serial. Both remain registered so either identifier resolves - which is what lets the metadata path look a certificate up by ID - and a comment now records why reordering them would break serial lookups. Co-Authored-By: Claude Opus 5 --- build.ps1 | 39 ++++++++++++++++--- .../Endpoints/InfisicalEndpointRegistry.cs | 9 ++++- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/build.ps1 b/build.ps1 index d0b2edb..b560d8c 100644 --- a/build.ps1 +++ b/build.ps1 @@ -178,6 +178,15 @@ function Write-Manifest { } function Update-Changelog { + <# + Promotes whatever sits under "## Unreleased" into a section for this version, leaving a fresh empty + "## Unreleased" above it. + + The release workflow builds its release body by extracting the section whose heading matches the version + it just produced. Inserting the version heading above the notes - as this previously did - left that + section containing only the build line while the actual notes stayed under "Unreleased", so every + release published an empty changelog. + #> param([string]$Version, [string]$CommitHash) if (-not $ChangelogFile.Exists) { return } @@ -185,11 +194,31 @@ function Update-Changelog { $existing = Get-Content -LiteralPath $ChangelogFile.FullName -Raw if ($existing -match [Regex]::Escape($marker)) { return } - $insertion = "## $Version`r`n`r`n- Build produced from commit $CommitHash.`r`n`r`n" - $unreleasedRegex = [regex]::new('(?m)^## Unreleased\r?$') - if (-not $unreleasedRegex.IsMatch($existing)) { return } - $updated = $unreleasedRegex.Replace($existing, "## Unreleased`r`n`r`n$insertion## Unreleased (carried forward)", 1) - [System.IO.File]::WriteAllText($ChangelogFile.FullName, $updated, [System.Text.UTF8Encoding]::new($false)) + $unreleasedRegex = [regex]::new('(?m)^## Unreleased[^\r\n]*\r?$') + $unreleasedMatch = $unreleasedRegex.Match($existing) + if (-not $unreleasedMatch.Success) { return } + + # Everything from just after the Unreleased heading to the next "## " heading is this version's notes. + $bodyStart = $unreleasedMatch.Index + $unreleasedMatch.Length + $nextHeading = [regex]::new('(?m)^## ').Match($existing, $bodyStart) + $bodyEnd = if ($nextHeading.Success) { $nextHeading.Index } else { $existing.Length } + + $notes = $existing.Substring($bodyStart, $bodyEnd - $bodyStart).Trim() + + # Italicised and last so it reads as provenance rather than as another entry in whichever section the + # notes happened to end on. + $buildLine = "_Build produced from commit $CommitHash._" + $versionBody = if ([string]::IsNullOrWhiteSpace($notes)) { $buildLine } else { "$notes`r`n`r`n$buildLine" } + + $rebuilt = New-Object System.Text.StringBuilder + [void]$rebuilt.Append($existing.Substring(0, $unreleasedMatch.Index)) + [void]$rebuilt.Append("## Unreleased`r`n`r`n") + [void]$rebuilt.Append("## $Version`r`n`r`n") + [void]$rebuilt.Append($versionBody) + [void]$rebuilt.Append("`r`n`r`n") + [void]$rebuilt.Append($existing.Substring($bodyEnd)) + + [System.IO.File]::WriteAllText($ChangelogFile.FullName, $rebuilt.ToString(), [System.Text.UTF8Encoding]::new($false)) } diff --git a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs index fb35c90..714c16b 100644 --- a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs +++ b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs @@ -668,6 +668,11 @@ namespace PSInfisicalAPI.Endpoints RequiresAuthorization = true }); + // RetrieveCertificate and GetCertificateBundle deliberately lead with the older /api/v1/pki route: + // it resolves a certificate by SERIAL NUMBER, which is what callers supply. The newer + // /api/v1/cert-manager route takes a certificate ID and passes it straight through as + // getCert({ id }), so it cannot answer a serial. Both are registered so either identifier resolves; + // reordering these two would send every serial lookup to the route that cannot serve it. Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.RetrieveCertificate, @@ -747,7 +752,7 @@ namespace PSInfisicalAPI.Endpoints Resource = "Pki", Version = "v1", Method = "POST", - Template = "/api/v1/pki/ca/{caId}/sign-certificate", + Template = "/api/v1/cert-manager/ca/{caId}/sign-certificate", RequiresAuthorization = true, ContainsSecretMaterialInResponse = true }); @@ -758,7 +763,7 @@ namespace PSInfisicalAPI.Endpoints Resource = "Pki", Version = "v1", Method = "POST", - Template = "/api/v1/cert-manager/ca/{caId}/sign-certificate", + Template = "/api/v1/pki/ca/{caId}/sign-certificate", RequiresAuthorization = true, ContainsSecretMaterialInResponse = true }); -- 2.52.0 From 139d1f3a059bb3056411d8a57055d39a1e029cb8 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 17:41:13 -0400 Subject: [PATCH 07/15] Add create, update, and delete for Certificate Manager configuration The module was read-only for PKI configuration, which is why standing up an environment meant raw REST rather than cmdlets. Adds 15: New-, Set-, and Remove- for certificate authorities, policies, profiles, applications, and PKI subscribers. New-InfisicalCertificateAuthority -Type Intermediate returns an authority that can actually issue. Infisical creates a subordinate with status pending-certificate and never invokes generateIntermediateCaCertificate from the create path, so the cmdlet performs the remaining sequence: read the certificate signing request, sign it with -ParentCaId, import the signed certificate and chain back. Policy and profile bodies are deeply nested, so the constraint objects and per-enrollment-type config blocks are taken as dictionaries rather than as dozens of parameters, matching how -Subject and -Metadata already work. Two conversion details matter and are now pinned by tests: - PowerShell callers capitalise hashtable keys, and @{ Required = ... } was reaching the API as "Required", which its schema does not recognise. The constraint vocabulary is emitted lower-cased while every other key keeps its camelCase, since those are API field names supplied verbatim and lowercasing ttlDays or isCA would silently drop them. - An empty collection is omitted rather than sent. "allowed": [] reads to Infisical as "allow nothing", never what @{ Allowed = @() } was meant to express, and an entry carrying only "type" is rejected outright. -EnrollmentConfig routes to the block matching -EnrollmentType so EST, ACME, and SCEP settings arrive through one parameter. -AutoRenew is sent only when bound, because a switch is false when absent and sending it unconditionally would disable renewal on an update that never mentioned it. -ProjectId is optional on all 15 and resolves as it does elsewhere. Every one supports -WhatIf; Remove- cmdlets default to high confirm impact. Also fixes Update-Changelog, which inserted the version heading above the notes so the section the release workflow extracts held only the build line while the notes stayed under Unreleased - every release published an empty changelog. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 26 +- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 21 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 451072 -> 505856 bytes .../bin/en-US/PSInfisicalAPI.dll-Help.xml | 435 +++++++++++++++++ .../en-US/PSInfisicalAPI.dll-Help.xml | 435 +++++++++++++++++ README.md | 40 +- build.ps1 | 19 +- .../PkiWriteCmdletTests.cs | 280 +++++++++++ .../CertificateApplicationWriteCmdlets.cs | 159 +++++++ .../CertificateAuthorityWriteCmdlets.cs | 183 ++++++++ .../Cmdlets/CertificatePolicyWriteCmdlets.cs | 193 ++++++++ .../Cmdlets/CertificateProfileWriteCmdlets.cs | 213 +++++++++ .../Cmdlets/InfisicalPkiWriteCmdletBase.cs | 164 +++++++ .../Cmdlets/PkiSubscriberWriteCmdlets.cs | 189 ++++++++ .../Endpoints/InfisicalEndpointNames.cs | 25 + .../Endpoints/InfisicalEndpointRegistry.cs | 37 ++ .../Pki/InfisicalPkiManagementClient.cs | 443 ++++++++++++++++++ .../Pki/InfisicalPkiManagementDtos.cs | 152 ++++++ 18 files changed, 3007 insertions(+), 7 deletions(-) create mode 100644 src/PSInfisicalAPI.Tests/PkiWriteCmdletTests.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/CertificateApplicationWriteCmdlets.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/CertificateAuthorityWriteCmdlets.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/CertificatePolicyWriteCmdlets.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/CertificateProfileWriteCmdlets.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/InfisicalPkiWriteCmdletBase.cs create mode 100644 src/PSInfisicalAPI/Cmdlets/PkiSubscriberWriteCmdlets.cs create mode 100644 src/PSInfisicalAPI/Pki/InfisicalPkiManagementClient.cs create mode 100644 src/PSInfisicalAPI/Pki/InfisicalPkiManagementDtos.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 36811c2..c43977d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,19 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.31.2140 + +_Build produced from commit 62131e750109._ + +## 2026.07.31.2136 + +_Build produced from commit 62131e750109._ + ## 2026.07.31.2019 - Build produced from commit e7674af1617c. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.31.2006 @@ -90,6 +98,22 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos - `InfisicalCertificate.Metadata` and `InfisicalCertificateResult.Metadata` expose a certificate's metadata as a case-insensitive dictionary. - A metadata failure is reported as a warning rather than failing an issuance that otherwise succeeded, since by that point the certificate exists and may already be installed. +### Added (PKI configuration management) + +- Full create, update, and delete for the objects a Certificate Manager project is built from — 15 cmdlets across certificate authorities, policies, profiles, applications, and PKI subscribers. The module was previously read-only for PKI configuration, which is why environment setup meant raw REST. +- `New-InfisicalCertificateAuthority -Type Intermediate` returns an authority that can issue. Infisical creates a subordinate pending a certificate and exposes no call that completes it, so the cmdlet reads the CSR, signs it with `-ParentCaId`, and imports the signed certificate and chain. +- Constraint dictionaries accept `Allowed`/`Required`/`Denied` in any casing and emit the lower-case form the API requires; an empty collection is omitted rather than sent, since `"allowed": []` means "allow nothing" rather than "unconstrained". +- `-EnrollmentConfig` on the profile cmdlets routes to the block matching `-EnrollmentType`, so EST, ACME, and SCEP settings arrive through one parameter. +- `-ProjectId` is optional on all 15, resolving the same way the read cmdlets do. Every one supports `-WhatIf`, and `Remove-*` default to high confirm impact. + +### Fixed (build) + +- `Update-Changelog` inserted the version heading above the release notes, so the section the release workflow extracts contained only the build line while the notes stayed under "Unreleased" — every release published an empty changelog. Notes are now promoted into the version section, with a fresh empty "Unreleased" left above. + +### Changed (routing) + +- `SignCertificateByCa` prefers `/api/v1/cert-manager` over the older `/api/v1/pki` route. `RetrieveCertificate` and `GetCertificateBundle` deliberately keep the older route first: it resolves by serial number, which is what callers supply, whereas the cert-manager route takes a certificate id. Both remain registered so either identifier resolves. + ### Added (tooling) - `Scripts/Initialize-InfisicalCertManagerEnvironment.ps1` seeds a Certificate Manager project, CA hierarchy, certificate policies, API enrollment profiles, and a certificate application from one declarative configuration block, taking only a base URI, client id, and client secret. Idempotent and `-WhatIf`-aware. Seeds an RSA hierarchy for SCCM/MECM server and client authentication, and an ECDSA P-384 hierarchy for server/client authentication and code signing. diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 342cb7b..8053431 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.2019' + ModuleVersion = '2026.07.31.2140' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -62,7 +62,22 @@ 'Write-InfisicalScepMdmProfileToWmi', 'Start-InfisicalProcess', 'Get-InfisicalEnvironmentVariable', - 'Get-InfisicalSANList' + 'Get-InfisicalSANList', + 'New-InfisicalCertificateAuthority', + 'Set-InfisicalCertificateAuthority', + 'Remove-InfisicalCertificateAuthority', + 'New-InfisicalCertificatePolicy', + 'Set-InfisicalCertificatePolicy', + 'Remove-InfisicalCertificatePolicy', + 'New-InfisicalCertificateProfile', + 'Set-InfisicalCertificateProfile', + 'Remove-InfisicalCertificateProfile', + 'New-InfisicalCertificateApplication', + 'Set-InfisicalCertificateApplication', + 'Remove-InfisicalCertificateApplication', + 'New-InfisicalPkiSubscriber', + 'Set-InfisicalPkiSubscriber', + 'Remove-InfisicalPkiSubscriber' ) AliasesToExport = @() VariablesToExport = @() @@ -74,7 +89,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = 'e7674af1617c' + CommitHash = '62131e750109' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index b4658d04392d7368b289b7074ee56f0432f9aa5b..4f22bac7b9a8c1f3c06e0752f5a1c95737fbe805 100644 GIT binary patch literal 505856 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ðs#IrtzxxLXcBj1TVNz{=J~5Sbe8SGM+(vek|o zD_at6SL8>^mL8Pj1Btk6(SxLHJ{aQP4&XENCy1457@} zF0-JukCuY=B>qLKBmWl#Z4dkzyrA7AHgOjvwMO%brc0(JW$g;ut4Yf&Yp)VwDQjX% zS^E^PeI523Y_PKSLW-x$n))%Pexj8%Ig+y0TlE!~wL9%${gb#1{8MuNr2aWS?eY5Z zoN3uEA#fx4k!;t4uJ}O0;702~lI@E*9+2&0)k)}i9E%9`HqC>Ze7zMYg*+?q7>89Toy}Ib4TN8t~qG%jhNZUo3X{Z00Wbu0Aq$p?> z%xN!(LelZ;F0` zM}yZ8&C4|kS%n(H`Z$+1T{hL%54qqlYW>NSGkxxIisY2O=OL<2iy%*)WFDfqw~uKV znTBWy>)(_cH(s*iu8a@%!_HkLxAIp|I6fYu??L7vn$q(Seyw39m=LVJrz}-uih?<+ z1F5H0T4s5_jD+)LIvLmJ+}Be)-Osu*#gjU!-@r+{jQiEh+iAaAd~;88z?~&NxZjIT z3j0;C{&#|7mQY+@jg8fB^sD8dU%&c!anz`MMh&cdW|CVuC*fJTZ+xxVeM{^_`o8f} z)y+MU?BP~EgI-zW*b9K0LswY9Hr3c&`{H&spl__<>?DQxAe`xZg3wVLTplbp?j zJ=N0@^)vWk$z^PJCP(f0wU{Igxb@GHBdYBg3?l+c^L2QmT`AUQRtk&e%u0_0m-8zN zcPFruhCOO#I%+{BEu^*QQpQQ+`h@#D{JXp44(O0q7AnOI_}^RAn>11;wpK)_ul7ZbZgi zfNzt-Lb2M+u%opkk9f;{YmfDDpQ$14%1L>+O7-YMzmjlYBh1zscC_a@DV6jV8As*a zMR?a9X5Cv{t`fH8+rsLfWsq3NWI1Hcv#n5Vlle_@+&zcQg!?JK(iYFwxW?2-L}ub&FWy=Pk1nQ}+V8r4e1eTkT{Vq6n%#W4CcsXf+RM)W$Tb?{IiIb4#Xc=R@P zHfJgIrV0ymLmk=g#g6Y-R>j`1>r^K&ShS_5selfRaLHdr z%Xr4UKpDws|D(DQ0oBas4NkcM+*|-!oVZAI););fPB8tL=!K%q12-?x)eX^<9bFUj zOU#;-qgQp!d$L4$!H&B4U4Ela34GMN0!`Lz(kADg!h>2**73HPOqup!Q$GbZ&k)Pw z{~*ibFUN6p4po2sS%S%1W%rB0JPJ5tX$t^xb7WOuY6|d8SuQ%KjAx_)XNX~7|p_03GJCh z5-n!wB@ofooE_aQStGrS%zOzzHd=WiRDSfe%eyV9B%JZnqtVjWiFbXd6^m{y!rIrS zGc0XIw>C$;)D=RjGxD(0C6s z=_oF>X#lSxCKvjM3oZQ~nnirO6^Xd~G~Pp_jHDtyCKYk%#IxPSdPLB+yP(e%R(Bl` z-y`vC(D?pZEC$4PdT`nuNqnV_o;q}VTPOL!VSQT(L(Z`!gxn^ZiNWo#g_?P{m71Yr z3@R^WN_0XumY5K?Bw04VyP=ZheC#6mNxzgS{=~20O0uM1${b#Dk{FUKB~75ElI2Hu zrpeN7FXSfS$aXir-9d7uKoV+eDh0#NZl1%L+>=0XLa-2)YX z4i8iSMtYzE(CLAS#yuqOMBbkZs4c#RZOfm0rKS=2xqBHIQJgv3ad0nzRpxiq> z<7PuOf_-#8;P-OXUTu&lo*XR_5(@Rm0wd9DDZ%0Yz;ttHo#ge-d({kWp5*qMR0o18w_dCGi?BvA(xqGm9Tm1^Z zVf}6_7wjryHIuukq}NhjuuCFmB1??RUYBv%&&0ob_!06(gZx~GyH|gIA-@@S1eeIT zNH2Gq>M!tHo0yHBB{~+~bEw{$bXKa$VA3L1?BV1?^@PLtt>lW?>gkA*EQu&5dRVmM!7;(mkfoJ#k+IR^Iu++sSyJ#9w@)sPC@dLSpyp(Oo!kqHc~$!)!jIbr#jWPZGd@R(?rEgX z)IEf4ZG)oweLpaTAy$JtjFZ$Ea#(#tJbjcO_Z%k{-LrCfX+){|TUc#%PH&LM#Qm9s z#l3)|Y&5bO%q_a-(Uu1j#9j&)H|<=E>RFP6jH7xpe z%|_d)cQ0~eO$%0Xz^XWQUYeT}-E4Hcx_l|^QVy1K$-DNmXyjymvOSY+qp$?Q6Pe<3 zrZd6onZA+i93l>aTDETw(?M`>w*5=lc5{D0w*A^{eD3bK;(j^RGH3EU=dCV%<%K(w z>)m}_lNauUSQ7qO%Joh}wEIM{kymsPl4K>gsgjg21_HoFDM+uk$kcEFM zW9ljf_mnu%37+3J;yj!)&>*oS6`sYY zwPXr*FFYYm`};c}MR1_SsE14)E;%?NIPro&^Je1=9z|CYvaGvYW@oS+%R5bHllyB* z+xDikZDD4??qp6lUw(;9*0G*6oI#}?m~_t(q|WuJVwmfANPQC*iml>#1!xt|IatJJ zQ7Y&zZC`LNAg-k!*CZi-QKB~^7EbDeRt^?p_7xV+!{`-Pa;%oD3)XP)pxnI#j5~MN zG4**YUA88fv6Z^W7W8JdiL8~(TtsAifUW7Y&~CMI|ImtEd)V1t=$%^$D}~G3i}kli z80M-=;etI#luEI-BlFhDlaP%$+K>dT&5-9AYLRvGH0metTWw`dZow=)Q{7ccOTxeS zd%-rVsPN8Jd!fSPOdg(`;hzy480>j>vKPilr1)BrPtv}W!{~Yf?p{Vurue)fNu&oE z_bS?|iY>$O6WkxfN!Ce|QR^AsG1eUDMjzEbiqk*w(;SZPDbyKK#=i8n;;DFKo-(^3 znNvL*PpsVJ11SMBZaO~U zIaCr&@_b@^kATq`ZEH1CWai!;s=Vp1x_FJ|+!*i0CVEE7i%ZQ5+qmVLYH}7c@^&9| z20I@btidh8zAa%u;R)83u-9@~DHxsQwP@ie;^F1ZxxNtvU;3E#mU#CT$M-C+sne2Q z-Us5UI1pX4;xLbjUbJ9j7tLuz<26Mj`knX_({WLuSE9UJF%{H|EE%Fi|ApVhYqjPZ zk!@ACU191vcKYa&+YrYoKNiyyo5eOMtT|hi2X8*^!-F#~3)Zr@=YwOo-`64TY`jSmcOaPV>xBR>N{BUHsz>}CD_fwnzY<dyr2?L}}38j(~FL&^nqHzjs|LRuvt zc55*N4{)$jjos^-s*mBRwwTs>sS9dHTr^6_KDeZm*p;M|9IIe-Ue-_9$%B-VIH0vT z=FDH}Jx;03{5;>kWxo3pq%{}sKNg%6r;M!ED!1jj+@GbQojQ4OACc92b_+#Fx|@6@5j`(b2_fj)|@nvpn`(Zd&faVL|mn zF7u7I=1J(xVj>bC|-q_K@d`;aX=CAs+w9^2c&}fg10kcAh{LF4t86@;tC>dPk+y z*c7CGrCTB{OR+Djj-XD?O>Zeh_Yfhgo21VD3`dhozOtjLHmiPTP2sEu8fR6wQ{=h3 zIoaS)a;K#CI`6w?gWUQ~*}=Km~vmN9IBWpxXl#0M;Ry3l#tsG8s?-sCuBnkH)cB*;}Xp z^mw2G(CdK;08gXMa}@vrv;$dnLR;rCP54 zvY@k-Kjy$)Z2AVY-mNwE+@%*I$L>Y>TK=YC`J=Su*VXd=hUN8X%k$Op!G`5e)Ur057{mN1t&ef-!yNaL zoWk8rX+N%nWZa|tS_0paw!BI$A8T0NmbU!9T0YURyd!P-UA26wVfoXvIcMZ$C z#WLfb5%3p&+&u=KYk+$JJ=5ZC88X?PjO{hCHDzyoEpuU&-Vt-oS?YbdML7)JCz;7q z)_S~wNAaXHlc|1OGGL!%W>sav) zU~3Ol0JiZ!1z=kbQ~^@u0QU7j z1zZU&yy{73;(A7h-fEflpZGd$EGS-miUsC675Z8H=w9YG1 zaZ%@$FtpAqBeK=K@hPtJngQ`#%z!$t1)D+Zylil;Bm#ey4oneB6`hyht#6u7R)lUt z(y$t($?4e$-cPR;9KyGe4nO%kOgTu2`^Lek{;tl z&osS)1a*G_%*~1AiUJN0z`T@zZUF}h*vr650=^(%9|J3+WvX%nfpW8r^`_YY#`@Ci z3$UJ_Sw0ZpvOQts!Js)j*RbEC~%Afgjp}E;Y+$=P`mFN>qZzK9-)7yzY)$|UcPcyxf z=rc_3BKj=TGew_cdUw%_5?wt=zK*))^<|!N^WtG48|2z-=H!m%#eu$OP1TTLC#X`lt)G+~<|nOUa|5ytRmQHHi2pjp zSML=6GW9Nu=3ZXaIGBosCxw*oa;>uz{gx5&7&i)AmV(B^=7PL1RPJu+d%WN3P8%M_ z<+weVzPVq&`QPn}MQ!;-Ut6jGe8~e9fO#IM0L=G51>gh^Q~(xupaQVa0~LTTd!Pbv zq6aDfCwZU(aIyy~0H=7M0&uDaDga;cKn3754^#k7_do^U3=dQQ&h$V9;4BYR0M7P6 z1>hVHQ~=KPKm}lt2Pyzx^*{ySJP%X=&i6nC-~ta+050@E1>hnNQ~)maKn36u4^#jy z^*{ySYaXZoT;_oaz~vsO0DRp86@V)|Pyx8o0~LU8c%TAsl?N&S-}FEQ;A#(40Iu;s zg>Uz<_?EX&0r<8DDpD@5^%g2p7T@s}D)8dF9;g6(&jS^J?|YyEaGeJ#06*|R1>lDs zr~v%P0~LTDd!Pbvy$31)H+Y}|@DmSI0B-a^1>hzRQ~+-FKn36y4^#kd^*{ySHV;$) zZudY1;0_N|0Pgfa1>mP1r~usMfeOIg9;g8P%mWpGdpuB)%E6y|3l+G$*8>$Pm%s29 zDpD4|^cE`c;#VH1NV)vAw@{I?_>H$vffx6ApaO8e2Pyy$c%Z`jW%DvT(G51Gy|Jgb zd(p12K!$gpbeH+*h2rI{rCPP*{v|D(^lJOY($2_H$t~fx@m7kPjiv2E&s_3-+Fr_B z>^{u<$e*?AD_hfgC}%o8G$Xy9?}^VNbAWcUJWN2U11-nyX>)vp=--<@O7yd)=Zb#b zbR_yk)5nN@$@FoeUorhf(SI;KPxPNmpCI}*(+fqvVfsYTZ<#(>^xLLS75%R1(?q{- z`V6!zhvxMLk-AXKePDKHC3Ygs?nARXN5Ds>7m5DZ^m(E`F@1sPPfcGW`ZLp)h;Fhp z{F>;j>B~juOs{vL5Sl`UXKAUNOJgiREe*YNl zKDn{led4=V;}F?uCl`-9{>uRdANwqi%^+i+xTE`sg`-8H@oUpUK(zs0G|(epmbiGyKuy3N0$wpN zMZlf{{$POO9fLmsk~!GT<9l)?y(hd(6}OP<)bM)}?#7p=GdQbvBV#gZ`dXP|?qMh|@6p>lz)FbfuF0jV95?0xCMBQA zGcUWQGwc)Bw21{8Kyj_F;Ip_+zJ}m>0FChV1QWOQW2~$^`;hPB5^=!@u8 z(xe>9OX>BuBo&zl;sWk<)2pMa*9&-4Q`F{oB(97Amx^l*Z&i)7|7!7DOQQC+>9x@o*LMx9+W_xN1RA1N>cFUt_NSWtN*_={`2SdBfo+;&5Mc_?cO5B@UMeCl3FE`ubIWjE}r~v%g0~LVRJWv66-2)YXH#|@Qc+&$FfVVtQ0r-mtDgbYLpaSrY z2Py#XdY}UEo(C!b?|YyE@K+C106y?Qg|8X0_?x#-0r=1Z6@b5cpaSrb2Py#n@IXb% z^N+oS3S9ov0~LTzJWv7nmj@~UpL(Do<@pkCp#qnmd7uKo43ItIP?0*d$y=zvWyS*) z0G1cpsVY*Z=DdXpT;@Gc;ay6bQ(^sy{8`DL#F_?fsJ*1*H<{i?Zjn?MT#jAV?Di9# zH@&~;g6RWAmrV0zT)LB{4-wsJdXDH}rVkfgF@2=ycGFJuNYh7)?lN6RS8ot7+Q6|5 zFxJ5F0)8MamNUR7c*E)s1&lYqH@w5@j|8k>fDeX;)gKF35g_-xpF`h9>M!0Mf$`jM zDwQ2I>#7*qW=%t6tKa9uxH6p%7`)9|4I4c1^T)~eRkMMNz2wjGVHFF~i4vO0rcV}K zHGQh+9@D3xt*WdUIHLik0IcrHN_(h(=KtE}^lb5GRnzB+o^JZ9qE|P4zUVbgUnqJ8 z+Rq_xWc(80>ze+W==DusE_%b1`z?)MDSQ*tSBc)t^wpxb5cj&C^&~>P?b2-nfrn z>e26;Tb^wa^d9Bg@&B&>-p<;^McjMa5x;tSp1J(Y3>HZ7guU@z$@8+(i(&7m)(hrmi{i*j9sjgxM=I| zVrJ}Ouf)ah{^2<(cJUQ8M@8o+E=S-p-fN-2T4RZ7{L*=Wt*|6s@fUXsVctpL{l|HW zC?{d{pX3GPodk`&E_9v(zz%2vY)1+v$lKVR6TqB2p9~JGH#Sn28%F9y`l$hZm&V+F zhSDVy?kv~+0bw3%6YWfngrjw>cR3tilg*RZT(@&tDdc;LYe^Xl^(6e1`TQO6a|isC zty#*Au1jSY-VfVC_xg)MSU3vW;8 zKEm>K=GKw+?10MzTW#f^Bjj~l!L=*Ay1$-WIqY)lWAfP$emgU=-B`KPZOCu)xVYd9 z%Pi?+S#6U(DUd>VlV#X2HaKFbu;-(r+mw$nPuOrpw`#U6RCoz~Bk_6F?tI_awjAp# z@5XU4`jp?Q#KPWyU5D>aZ;ZQaPTW*)AtzX7vI#`bS#cFPN1~oOr@&)F9K7JyR~Lg{ zJ`@xr-gjokP0wY!rm#d@mWk)1-8ny6ekwnIlAq&N#iPwQ*U2s+J)38$_j18(E>CH? z4JGxZtSjcZsnp5T`?79ub51Dpxi#54njEgR7pk}8xTR3EGjEna+b6Zz`6GGM~$E1&;eNqkG2LwenKVf}Q1BHD2Y>rnZSENm;ig7t7VUh(vxGYyFe0N_5r# z;^kt?ZLp-8B|){km?g`lwVjc#g046YQElT3J~V8PvCusPTjqqf_=I z=e+^9Ek>}YAukirbC36)96vpsDK8#^*PYE;_qOnL7;#@L&X zeK+HF!X2O4*;$;kw7n71&Q*KuD8;(=kUhuCZdZP~?acVZqC1pGbxtirYZ9g2;kvrC zsIzhUR#|(#P}@42Ti(~ITi}YDqQb5|qoT9*V01}V8NZ}@Y=zx=#zooH#MN@q0x@k< zAt`gcqe$4vtFwQ2KAMYR#ae9AC1>%tcJ7GiIB{1VBy%_7B}SP}WgT&F1_^%&|I29q zS43P6yN3T1DfxCN>y2$*Y*+HXvz)1gnbA|&7b+YxyWCrSY(re=i-6-N=%VoIOwy^Z zIr<$zsPBfJ$2$nKDRa4S)a-J$mJi1dpUsy=H_qytJENxLGozO@^>oQI+)TjiaS%#5 zvjROl`g9HMzP>f_>smrOFD~fAqpd*Ektx2rWKVS#zkc_aVbsr@(^m+qH(^fBRQJG^ z*Wf#<_sA_Pbt`@1V5VG;5FanTjg_m^53r8K)@JOMoL)n9R@+ZD~nO@E1Q&d&G= zVa~ey8S!bL*SFG=p8qrP~Ar)8z|L=v8uVK6{_18HW|D9 zF#De8h2g@IPI{8@3&SkBj?eG*=d;+kHj490$@w+Dkyw&#z{}pFCkA>{-yhqSj@Cwa z*7W|d)0g^Wb+hd;)Hk|P)(WUrEcLZk%B{Vu|7QI_>Iy#}cm-BgAAr5vmc(MFV|xs} zC<6sKPc|Ydx&u+AT9IvX70O;jdeV-#F3Jw@^3q|cHd~jHw>KAk>__>~wp5xcEtV@U zOD6jWzces7rCM91xs-AlvXR(*oZ@zq07|{5_r}q|%9q4F!EydLxH$duqu+&k-#p2hGRWL%VL)InlF>A1!)M({<5% zn?6?bzUXXUK@+i;K996Odca|GYkJjD_8?b3Ka#A9+m}M>0eFS@>C3=T!Kzo8K7avHCoQ}*B-W1Djbd$c zCODHg^NM9fgH+bmvbm6IElp2&cUTa(gYctZt>jnFA3=Gy} z!!nMV3wpFN9i}l;n)w|+e2Q3)D%2NXtwE?hELTa!6B?%=*le>P@8h%**V$LDqd}=< z{CJ2JXbbU%IdCgFHcFE5dp4j_4oHhizGEl5%c>7>9ct8>S@~K5xwlrqorv%eTshPv zu%%7TF#c#l!WVr|*tjZ4dnl1OBdS{w9Tz-k>BMWmKYS zUU%iAX1tDB!*7Oelet#kU1`6&dSu@%tw%-&o9<)xS|&I;*zyk3l^) zDgY~ZpaL+_0~LT3Jy7ANN3rPj7AgQW4^#m9JWv6c;(-dlDjui+aMxNCQ~*}>Kt<~E z)4YWWTu%2u1znalaGx&nvI`RYWBOm#(mTe7)oH)dLd8^;7w2&(+6c)y<7K8PkoE1G6`_+h6Ou4rn>tEDOl3>yVN#z>86F)dF__6V8#WlJe}!OlXAAYyFx~0$!)Z2deT=gZFpg7sn< zCt*Hk4&jUL5kD@(YM#wE$y(0?2F6PUcruV%j{m(YL?3WYBTQj5YzBwXD*C&F{z{C7 zxQOKKd3bXm*Qj5_b?X=NQ|=BIGIFHnQy^s3N&G-ARZ>ckuPJFxk;{~{rU;`={27)a zUss|fC-(UYB^B=`tX~P}IoKxlYRt6c+&3Uhs<^AfM*0Bx;6=jy1qt^zVT@bZidC8q zJ}O_*<|C=*+rm+mT>WY+-8KA_tR`ntw^U=~LK{|oAzRzRTA$Y5p7?a>VoT9xa3s5> zXnWQcE?3Df<)+wGd*OHa?JU&4C;a>Txa&myfS;Cy zKjgPq|B-+n%a152-`2hi4|><}?aL0q8ecIj?dde!93<&*JtvgI`VANi!hV9`Zj_&! z__21lIX#!)zv;wF0>OmI=AZ0UEOQ5;lsVG7ql1>bO2%lK=Yle0p@Xq&3p;koS9`H2 z$D2t?_eJMGbJ}D!GjX;u)-BB4iOFliHkr~~GO;AXw~yIHKC6?Dvav&_PCs_Y<}^A5 z>24<6jHJKFjxe`~EEZ}NhSAa|FZi8Y_X^#u9Cxld3L6>7S8H6Yy(Hu1r=(t5yOOJo zt`v)<5$yRwBj4B37Vg+LsV%IOcj{e^9^FVzyp0oiX<3Zw?flf(1cGoB+#MXOeFEWDr3DT0fn5|K&cX9z<)XN@G{i$9`BO!0@-Nj*8y_;Xn zyG+0=LqH|t*YT-q>o{A$##z8L0e#o2=)0A1@8^Yd?u_w|7bo8?TB_z0%zyky++Wv1>^)=f40s zLk{AdV%L@iPU?< z8@a%2)Uh^Hei~cAcI#Hc&9>2Fp*oGCnXA6V4VU(3PtH((=zUL4Tf8L}w%w@=@N7&m zHJE)~vTx;c#N+U#;?daO_3(9QPV~!a@&2w~1>|h6{|;JWt=`g+%_osYe+K5`x5Z*$KCTta z{#p{B+lkK+L+9g&4I1&G(I-Af0pfg2N97E`L*&w*v5VwK_a9AisZlytBbPdKwKn5g?*DqNclvo~*P5c&a%$k0)Hma4H|H*$zx1Y)@6WOsH|>)p7CU@% zLcd#==?=17oY?)FtL{REu>-GEaRs*u7i9xFl z-JOaL{kPpMFb8!H>uBSUb#ZMP>RcZ!^rAU@QZnc6#kRd)ZT4+{+4^1tubY-~mYU3a zVz%2yCX-Mu5$9HlX zsI|y0P&RwiSMio~A}FKfE;h@v-sLyree>eCyNZ1i)0wl7KhkeHzks@e6pdfw1E(F2vp$)!FQ>me6E^}A zHu05*e8opfKs_rymRv@>SXIgaUldI;X>>~N8oQ0taN_-(*!Q!=l@Y_1bW#b#Pge@_L3gvP&nJeBd_`*+Q$SC@~VAIw7^MZGpHeW3x-DdudYWnMJ`?ip*7uX3B{a?%O zs#11kiqVbWVN+jol2TNWf|8O^E)(&ds-A-!q(yy8YH&e}`+g;6)+e6K=+e^)6{nk}mb9Hr6#O?ba$xf{Y4*U`asb~m_A7KQE2^k`xDgv)QAK6>W#i$aZ8^cgXCZRbi9&c8>yLh z$EX>)xLg)X__)5-2)kYk#K{2Q(|sicNf{$e3;;Mqu*y1pog;J#`ypeH5DcNY>>PgCC*k z0t{95hv+0OPb0`zD;hZ#t+P!WAm10f1rW*4P=kT>seyCVO-Y2bKhJxA1`cty*|rfc zdlpFq0(M!SePL1$zXqXSGE`iWwyJR-FBQFXyTq6w9@wP^t?AJIfItm(OAXtO1dyM` zm^JRR#GmKjVQH^@yDDGZWI!sc%4vfRTrU+1%iYHJSoR6#K9Y=yXybw}N*d_RQDeZf z^q6REE=_~K4u&5SZAb{%R8CiwwJ|AI-H`0@eE=SG245OFT~mpeBw6ZfJ>_9p+lzNn z7%?e3mqSJ_GN+WR=}Kk=hUFTLnXjG8;paKFFJH3DZ}c`vGb~@F!@z=_=vYpr8aN3f z@!BuT91%v%+Xr*o!jx59QD7ylZCfF+>NiWV66a~o_;UV3KqNl{hVqT6iH)_KUq>G@ zU2Lv+h$?MTGs zr%}EK%*kv*#Phm7Jst5=Ib+bG{Wq~_6z!$vWMtedWqbZI%J#Zew%1FQ?QfIzy!ZHT zj=Oi=iSP^<z9wZ;iJt)?`5CI*Zm#8a z=KBzh%XR}B;qzcNahlKxm~!7a=U?*+YM9YcH94`+&(Yi8BlIF zvU00NTyF2eTuL`aDR!pEPv(>^^HizDq+H--B_liC#SQ`cjcQmotaD=dybcPx+xFq~qCW zBzMw#Ztnr{T$3|2o&y`n>&0T=J-1nK_zg)srN8?*@$A~u$8+eu;7+({M16?(?u8qh zU`yxgSD}&o{Cn~JEoTfG-@W%5B);1Phu@yW_W|O2^8br`eTHifm9NL|O+4jisCe#7 zzE<}ekga!f!l2QdMOQYJt#KQ&S#a3(Nj&BG@G1Y7csBC&5BS=zDocuVcU0Mz4>j6! zx1Ye0Q7U?1hBr3K?&cH*rTSsqb5)OKJ^mPNZc^Xy^&Q0T<0O)wMjG`W2W&zuXybtD z>;Vb&K4%S@P$%x!FQKd+JUBS(y(FEgq|>SYPtqxwH0-vIh%S-P$cQjq*)@`@WA?w5 zTo>UylAo|c=Uc71;G?(FWXOyGOSrZ5kO#h&ZrwK2Vd9a~>}$H|+H%tVL!{yrV&Q8M zOT#0BtJ|!fy>B|2xdUWS>Iz0jwVX0B;)jTLb*Xz~39-9RvSpfcFgivjP5U;9mlEm8<;C zz!HG_yJ?n(h3+4wGot^AwlQ^1+NR)i@=L!F_mDhHV5pvPqUsOx!;+@G<(BGQyP!{z zq?fTTz~;QV!+OA#x?|`*m8)O;TuAeWzOc>8oGoL(JIzd6|QPV;N$ye9ii3*CzDJLr^CE!#A$-_l=nu2C`hMFzz zEHMjGk!IRj-8reFHn+%*nt73deU*Z-CEN^i=Rw`^{Iq1U(OJZ!gRR?1(4y=B+1se+ zAH#-bu}#~>m-WEfMV+qI=~cc=wnV;K^Au&Jqq?=!M&wB`xP$U?mgLE2ah|aKr{u{I zmM3EL&y(bdiqDgd_#IpxpNu%rXHNZV5}|Ouc;GG+O|oCCX5L+j*-VTc7w5L-L1uoe zGhi_+I94?EMqOV3Co{*yg4xslv5>M=lxO<-$5Y~dMJNd_*PDrNOI@!c`g;G1EZmDQ z>zA+gL@Wt;&m*iqO}cfTC^ot35d^=wEy0^CX;=zaj2E0u8V-GJpH$7!vl0Ydw3DP- z=^)Pt<03g2m?j<3ufVB<$SetuA{6!CX?AW$SmGDwYMs%TgT?9A{A%ymTIKq;CGA6Z zr5L;_eYKh_XT+4OxB=&>%aU2rF;8=pYX%i$D{9y(}8JXVJo>E@jdzw z7pde~xOe|7d@spDvFY%+XJzMBO3pcQ56}_OZ)hEf8}5OlFsPTr&_dOgV@XGA2VogY z+RU?RinWmD#NAA2Gg-bq6m4**&VaHOa&DooJr4O*99aqPZHjMWQkiGSy@kFJ(NDxS zDd@eO(HjsP+=8zO=LX2g4e*R6?9QC5b?eaOe}y>&SIZmexSbqWIwqm%h!%iT*IvkO z!|C$>ev)`%GqC&@14+MgCH+2%>yQI+M*6Yyu%w?D%Sb9-4n^m}Ar`u#(q^Q@-duFFopWCTO{or{-o`X!<1i0`fDwax|40HF4`<&cS$GI6X-=*B4u;gCw}=C~!IB92N>q}%QHg$x zODa+Gx;@96pDS|>{W79FXDuD6^{NhTlSX_Ydw!===5I;Lh>fq-WIV;UAA^b8`#xnU z_@OnA!N4{uNu#8V>R0ABAtXyh$p-JFr8E*9jYyrXp^p0@KN>s=`}dE+he;H~reEet zyDoLhd2(-jfTc8_l6kDxHrU!`x_Z#b@T5D7Wc+y7)jkCj~P86Nf@iI>5Bs3k-_5H8CkR9IB zCE)K#@`+8q+5 z;Uzp`o{zdQw0EI%Bz$oQ2iY7uYA}71UL{=C+0-^R%AgBDcOvm<3-hS|CLhgeOAmg^HBLOmCqA zFLv`l1z>j%Q~+jqpd#hh9^OI)F8B061z;}^Q~>t&Kt;+gb}F{ApaPfsdY~fZazAgO z0++KrPyyKA0~LS+JWv5R&;u2KFLMj`TnU;3yAN0GtOZ0CPQ10XW(N6@bVC6@a=2DgeiLpaO8L2P#r= zI?h|DNLd{3EmYve7d=n`_>u=I0P{Rhk@9Q4w@{I?IKf+}z>5VQr~oYVKn38-9;g7E z=z$8rNgk*Goa})Lz$qT60G#T93cy!9Pysm20~LVNJy4N~(;41E1uoC@Kn36|4^#lo z_CN*T91m0g&hignQ~=KRKn36e4^#jy^gspRA`esmF7`kL;1Um1 z050`F1>kEQr~q8%fr?bhUG6PZ;PUGpr~q8yfeOHt9;g6(!vht7t2|Hv_@)OcQkTEl zTd43BvUYh*`pojD^Mv&~*qwxl=N4HOcZumXv<=nmLws`VzGimAMPF`ugy<_wcZmLm z=}yt#G(Af6HKxa)^;ts3iL~v{zioEo5<8J*_Z_oaKCu&NcHc9*2?DM&JyG-zO-~a2 zW7CsG-(b3mu5K>iMgu(!aI=A01Ket0ih#}Jl-mKx-p2Him}?EIdr6O?{sLV;W{+RQ z(0w8oBeJ^0OkN&gJn<4Bo*EwTt)-W-q2FbF_s$@_Pb4$T`e%7{zXfPj3CmASPZxc+ z>D5KwV|q=|_nMv|`j@8H5&dh^>xsS(Epu7_-TsD@#P9k7rvmUj4^;RPh{gB4g$lrR z9;g8PzylS4A9|ny@FNdY0DkO&3c&Rqr~usHfeOG+JWv6+(E}B!5Z~l2RN(Sv4^#kd z@jwOORu5F9{JPCssKDjz9;g7^;em?Osdst{6}bGV2Pyz}d7uJtw+AW!Kl4BZ;2sZD z0DkU)3c$S{r~v%J0~LT@dY}UED-TqpqVQ{Pp#qn`@jwOOJ`Yp??)N}N%C85!g$i6g z=z$8rLmsFAJnVrAz#|^006gk}3V*e++#i4EPP|C&d8-?TNB1&Bi9X@SwiU=!zsU{7 ztEN|DG{<8uw#Ivf+gmsKVNK{YShdt&g}6WP(^~%{zw$zRSZA4V+5MTHf_qJ1*xSY1 z>931q`F5p{H~_x^?t7W{fWjr6yel8S2UChh&t>zJ`kUCYy7?^(_ZNPu-{P|E`TE=F z_9AaN@vi$xV)+g~yy5h&82S2p82S49{I-{P%ZX|WJDmopuCV7r!j;e`Q0rMpm?5q&;V&7}& zcjcosNwE6gIAb0wcl>n~LfyeRc3Z`!1uh%5+atB`E|nKEiK_ zUw-jg#bbFa(WIAc=BlS)15ToSf4^uiNTQu5+Hp7v!PYzZd814)9?m$rqD5u=sB`~> zvoeoX@j0x1%&+?=Kg)h^`!VjQ#xudki^z0YboXA=$C{x zdV`;M%0W)dM*AHNm7fm&bQu@34B|geuVtYd4|02(c}k7eCvWVvbPxAI^)Y_Z9-o32 z>aneQORo5?SlF~f@}Bmv;OG;R^&SrpZo)nw+>LiwwuvZR>G!lx0mO@&(m}Xd@KP%$ zEt*YrqA5SDWU*+n;6tKWuxRc>G}(JqqFI#Q6*tx|B$~e+5Y1k^NG)qgqIs@Z_yrkp zS&%jUC#2T@$QshG4;{~BI;;Kwmt}VJH)7=7{TPj0;Xyi|#Ytu9OI&%VXs>e&(Uu?9 zu35BMz$4L)7oteCd8{PSE@`w&gGYORywGUJtM-z3-zzp2@5a3^U-(;aPm;gy5$`L8 zj`!!~Z~akAf``Ol#_$o$M$XZ%lXtt4z*LSMIw_9CE|MR8w@cP5@|ut&Mf`%VB*oG% z_zqeKF2om0jl90Wk_6ygv58Y7AFuJ88JzfZk`~vH7Ww}yEz&Vv=eVI`dMS31{4~nC zW^nrSyRp?63<&>n$2YMiW$i@!WQJSqKG2`8MvzfE&yozk&$nr1XofvWjr>U+o7la32hVOv43Ic zcV9n6Xq^}j$Chv$56Aj9%I-64k~Xn3NWS~}UyqUA@`kQUr~rKEfeOIiJx~Go$O9FCe|Vq*@UaIf0RQwr z1>h48Q~>_vfeOH<9;g5;@jwOOGY?b%Sny{zx(Yy(2Pyy=4^#lM9;g81JWv71d!Pak zdY}TpSC8$oDgZ?fQ~>xEvbj(JD0`p+z!#Fug$h862Py!3H`!dM0JM3a0>Ial&4miU za1T@f_{OriPyra>feHX$UN#ph039Bv0PsC#bD`prO!Y6^mfd}0*{%50P_82bEyKC6Fg7>Siu7ofQcTc0IcYN3cw@}Q~tNXnBJQK56ohkkufC@dZ+=@2@rbdEri}7p+hJZoe&_DB&5gr ze&^gdv$K*c$$8)Rc|QBm?0^2Z%)RHH+nWNqax*!uplNYh(r{%nQvg9-;an?#m~4cC zL|CVofdXt!H9`TzszxYCI9<&Q6kv08BNRZaVT6K&(`ja)0GnKB?E_`v z+}kWDz{NgBD1g}42n7)P8KD4TeJP=*gV__1rVVT3KCAsW}pC@M;M_XVRNn-D8S~CMkq+w zJjx6dBn*x=0|j_-j1dYTjx|C7#5^MuKpba;0*Edn6hO>3LIK3_Mks(-V1xpQ6O2#* zaiS3lAWkwu0mR8hD1i8}5egtqF+u^vsYWP(_=yn;AWkzvK|*q;n}Gsso?(Onh%=2) z0CAQP3LwrlLP5gwbId>iHh*e_0*G^sPylhB5egvAH$p+e^9#&C0X8o*LIK1@Mkq)) z{h1jkz~;q9D1f-c2n7kJ3(Y_QHZL_o0mNlSD1f-!2n7&V7@+{-N+T3NTxEm;h^viI z0C9~G3Lt)NgaU|bjZgq_oe>J=c>ZSe5leOMS5FwF4YRHE8x!%p$s8%bmz#}H0C9^E z3LtJZLIK2WMkt_IKY)*D2e~unUik2SaB>8m=kL=a2=|zC1^9Qb5egvgGeQBx{YEH& zc)$n+5Dyxm0OD6hD1dm#2nB??oD8+R5bDF@PzOCi{kS<-fPYUIp#b7ZBNRY9WrPBV zr;Shm@r)4)Af7cs0mO4gD1dn02n9sr$H{2O3(+_!j>ZW+qVa+`SAc&n8leEWc71rT2tp#b7bBNRY70*J*%C?My4o6NcLLeBj<&beRp$hqvsbKNrq_&3A| z1rVHk=xiu};6y}6D1hMjK}RTn;1otjD1hK3LPsco;6z48D1hJ;M@J}t;N(L`D1ay$ zp#Y-R2n7&zMks)&H$nl#P$LvT3^PIj#Bd`NKr|Sk0Ahp@3LqMdPyo?ngaU|>MksLe zb;oB?sVii>)%Tc=a09_Cl4lIwO{RK&Ho;$#;4|>yGZ4`YRk`pLURaj>F+bsVJe;55 zW=FHmcq7JQi{+FjM?&oe5&63^p0tIBE0LEEIpW7k6f4B#O4L<|-zYJ(LVT>ma3R>v zg{R*uF`_~gj*-tcRh%rZM015$SBch&lUX{Vm{=hij+K!5MuZ#i9&W*-sXPP;`g<`jUiLt>;f}C=8d%Qos0$CW_wc9~ zodhb^h#h&D;iETAzz?L9`@xwS7RZ-wyG*u}Y^@Je~jW7JTXcQ^~vD_%4f!(W-* zQD+ThI=QVme9D;cHA9^7J}eqU@0P&@5u_F#Eza<$?sKwh(@4#;x{^ zI8MpE7V5G1S?inzMG14JWfog9@_sEZ(_1+pp4ABX#m&sgM{6u9QHZ_oD+=MiBoym0 z+*uWYB?>Dn%u7l;icL)+Y=qa8ia*zXY-$p*$rm(I9Fr_@E7$R8YYFP*CtL=9gP{VO zgJJqp9?nnD;HVMqr;(q=tXnuz*T5mTev>fuISzFl31XQ@J0 z&>~iISgFHGU1TMvt0o$UmRm99+oR;CDHttwhjISvFn^3d4u|!}0w#91a!hQF^I+XV zl%e3E<`w6H&XD~s-w*lb6L(Ilm->6U=w<3qQ20Nlr?na0IaA!%@bt{;hdKOUG*!=C z6lE@S%C@DuMDyA*U7}cR;qpkSOSCvxhQP==xf*7OQ>iN{`-XXXWSZO8H@&N^`DIDE&X$SuL%`x}R(4IwZrQd4V&d;3ejxgF@G;p9T+u$M zfH3$*C`csMN@kz{o9#v@faown0Yu3N1qr`cSmu&d0X8Qap#Wlv5egut8leDURU;HY ztY(A)h}Dfy0I`M<3J8x}d6<;OG_#-p7i$`!0Ajik3Lt)9gaU}Qj8Fivwh;;-)-gf> z?Y}Omy<~-zberXc_TM~yT(|j{9)VofoGZY;8Ad38SkDLr5bGPE0Ad3p6hLffgaU|- zj8MR!!WkMM8K^xg4%%tSpy_(r`IHk^NjZ`7$5D9Hk4T48r7+h*VLXi8N|Dac{5ce( z+RCv6b@A=9KgK||3rfv*n&MG%E%T!kaC!%uY`=E=n4H{0d!gD{Chrc#X`k*-;8Svh z`W49#a+7uRe^U7>3>IuDkv!7P(0S>$&bo==mH6Z~kacY(ro>0q12prSC0@<=c_mI+ z-y_D^U|B69tL(H4!VVYYR{OJDZ+}Mhw6lC~JEMErNrXq%mt9SmWqsML60P%#sqC@3 z1+JJ5?vP@71$^Wn`Hnfc{6bdO?NbQ$hn59(a^gapVdZz=+DOVs;tut=MaqfsmXtMY9yJZGvsSs>7dlPKp6s*XDm9@K(BEG;}L$0(9_W`XW5!Pa7ecsx6 zD-Dl;#%z3XYEBPE>ZmjN89v>}3Qy;_AzulWT@|pfyM^n8B=xoJ5}p(bTb8Xv>uJ|c zUHGb7bLpl2nVP-t5N*3iK3f($KPR2M^oUf@AwjComRNu(2|{={+553|%SQ!-Vii7A5gxc_s*mW*IDN$M;bshWX19||( zBMu-AB>s+tUUN&j-ISj@l~3tCov}2t z(H%;&QsMKODTsSo?#4`ACo-#qx7e`?M;lpqi7IPiU3go$U4ww9qZ>oHq;9IjubYeC zMXx%a?QY2Gmx-j^C)O0*$vRweWnF5mO;ZhgGG$31@-LIWu8-vZdMv@JvPSY(ZFyCm z{%SmO0jr%kCqr&+%Fm^KK&)&25^oEd9(oDunlw4>eGVEh_aG4orPG?HU_c?Y1|Bum zbnHYqB(YU*RAifQNVnuiy~5SMUs3`oYEmSqydBz2Ze!hdAGr;WRV-I@k8G%MDI#}R z%azrt-`Vy;say!&<>Op(u?hD~OE|8ZBH^s%ii<_OxzE!haG7nnY(pI;-Dc9)SBvhe zxAWCvpI;4I=bMs8d1`KI|94X(5esSbpVSW94pBVC9gO5IF0}-!uJK4YtMRth8c*&` z3-RX{QF>PPRL5(4e<5GjZPpq8Ginv;lP~$n4$W}P%V$WN(*d$IxuMyiIsXw}St9*;)`cI_(1>~$nnD~J zxtgs&=8MB4HCQ4<4fdu%N;lNBH`Ej~P$*N4TV~ucD;und=ZiC3&YkriCd8$hhHPy| zx*>b4R%*_C-J>X(IY_B_V)z(R%7o91r*NM@YP-{4j^u7%LOg*B3R9DYMlW1cn9_^o zB|lH*g_6CYoYV7JDyPGB9YIq*J5QeOIK0|r(eOR-IyzjZb7W*%dpv^@v1ulFoiCQS zoHtb~cX5QBxGSFocdVm0W+g8j23ib7pFEZwnk{WPR9BNz^i9g^v0$|2632p#a$kx# zepubhCF?w*BPE_s9w||N8*$0fX!*$m&-3Zvd52#X{Gwpi3;$MrozKC`%GCs~I(u)5 zy*C~Ho#5YrSz9bRn+qP~rLunU)YSCHY)yY!?i191o~F1LyoX&+*OB|{;gKc_y8%T( zgTo-eVkHO#r(Ix=b65jA-`VLFJI7YAKLgxOb6(baNo$g8T%>{7wJi@X)3u%a)O2mn zkL;(*rH-PBb5o?_m1B0&!Ef-m$)Ap{al}*`DOo-RpGm4`FmPo^!M#lE$fbklU^zuV zz7p<*?f7_#qj;eaoeo~WhP0$FQDT()LTm5?z90>0Iou#RO>!YNow2_brbir1IaY)b zAKaJ8Tk;aTMI>p#{~RxawXw=M=c0`3D7;zNbp^6)g>X$^o*}h!Fryc1N_n;p~HE2b&8Dw%{pMOQ9Ju*pfE}aR?8!jF$A}Pw@$Lc#EIlV;<~s z+6r4o%#pIbhV4cEQ?NLy!BLHK)K{`R=aPjZB5*Cq@`g(mS1LAU+3BE3<=X8kCEwbg1 z5KBCwMEXnKVf;?V4sa0_>h~f+w?#_&=3iCbf>+6$vHoWK&+)tHmG{Qiwzgm&e%J;H z7wjucjsJVW`+B{cp88vLEhd*kQnm_zfF=5X4H%=Lt`c)IqKJLipKKV1n?+p&3cfN6L) zcA^7I!~4yCeYP+3ZhsgfM6vxiAM-?=Fcu4KY<)dGSNwjfH#|TBYQ>jx@NBq<6y^=W-w&JGlL}rzfFQ=buGI7`6_+N?`DCankskQ?1U`u{y&!G zv3$s7g;>^dHxj1H#~Ap1(!qQ?o9EC(oefJDs(!`+VyRyk-etUrd@*6 zm%}S3^{j4CtVlf+lPI6W{WIE@sZ-Xe$bA{)e$W34x%blHK4e@{u`hKIRHff{63Zp( zw|6SSmPalh6-Uwb&We=AVp`eWS>X>8-bs(_9_j3@sU4&HWdE1*ulFaBwWX$jR?PuM zD1bQ72n7%a8KD4Twh;;-4mLso#34o~fH>3$1rT$LPyi7ap#b7ABNQasa)+CNf`mb6 z1_}}eWiwEK-$xjs0Aj8Y3LuU&LIK24Mkq*lezX}Vz~(VVD1bQD2n7)Hj8I^H=^WA% zq_ega+!^ivr8v~iZK>4@hLGdk3r7?&awPAv163@s>+?UcUFO!H<-NANK-Q6Y!FRDC zTUY`^_Ch9sdqh@aXHMx$o~n8cEjJldstFif;d^@FPBS8xa>uI%=hky~N9 zwXy!s_NdCd!<&TjKEhe9lQB1Ke|8WeTIY9@3ClkPGXS%)qrT`t`E?AdWwn*vbrike zbRcf)n(I5ZE7#+n3@c>2j=`iMlP@gnI$F^@`Qb9)jDlbt1ntH#MnzNu{p+DNEEoI; z^Fqt4`a+($vm4UEYJ5T_h?{i@ORWo>&gy07Ng#B{H|HNJB8yc_b?gMsYV$CG<&E zi}Y#^N!ZmDCq#X7W2R&Ma-*aI!`Rub<1u2qx*@Z$YrevH@>3esP@|xsW^uNuDhb?z zFA@q(x-UCVyl(LWzJeB2t5sb>t#Wy%Od2nlt9?-7B~>cfc{>z9W^x=7U1@hy%Hz2Z zI984k%qYoQA=rhd8!fi!;Fpur!8!)SaW|=7@r?m;;|+aDt!G547lLJzE54Fhr?s_w z7;>m9k3?W(wVW>f>RNz=3iIR{9FDPrZkj6O-DQx*Ofyqa8hWI6t1a0IY>oa0Nik+}{}R;GcYahy|9 zXEY3vj6+T;r|xW{w&0(sr<8er;Qb*LPcpM2BKAj_J>)2n!yO;e}{%L~}M;UNLV{oxxou4QWrgn^bk0 zN~XSBCVAa+8ftV>zqUI)v3svvIO#OTLDnaZb-8dI!}YmvbHj}pch5Jgit@pcSd7m8 zZt{XMZ>}kkV^s7A-fZ1LUIq@2hOj=;wA8qnDV7P!9lkZG1Id#Q6R&uZVJ2Urd&7F4 zl_&|~1HDgCdQ@eELnayyTg^tYnXhZAYpRddI_#UNNJgW)8D2F{-m0O-q%(EBj4sWP zd=;&_Xm7}>INB^J zGj3`w>#v5&aNiD<(}`9&DS$Z12n7%)8=(N=$3`fCIK>DB5T_cU0OBV`D1bQ42n7(Q z8=(N=3?mdkoN0sth_j4P0CBbv3LwrgLIK22jZjc2>oTdYk=Y|s*6oFA(;nVXe$v6l z@}swdXEVVJ1RiV}GqoB2IAj}i$z$`FW;ykIn6}Q$#HNlK=V(hziyEf_HbgOYojNGIKxWb2OP- znf3mOuse&5d~mwpT?Nx=lyRuL$+M4YS(KLP6fe91wF@8Tkq$P(o(zKOQao)eX@@f% zY=D8&>oJjo&((qQ>q*3&>1D6(bn#gEguSh>C#!=yaavj>^0K5>&1e!vRW~&! z!?SI#?`)@zl}~(U`(E~rPhz01^|@(Fu8^%d@i)v6iw8}42Da{r>bH=};s zbB9|dMXix~Ow!NaPdxM7ak5T1k5^SB{XW9W+O!@D#tE$0tMl4AYbSVcORGU&SkjYE2YPeZTIGW;@}vd=wHbb z@^eMPeddf?fRY=E+0y!1x8C90A*s|<@gsUa-@T8pcUcdCdA+@J%%8lEY+t6mSxU0= zEN?4-INt~bWcHH?yNqr4CkvP;%RhfCXlJiRDNGI^qF%;7h@bYoy&6V9#YPVU{Jy~a zRseCK5egtKGC~2w&x}w2aj_8!ATBXN0mMQh6hK^RgaV>8TLLOkk`#1NIz-U_YBcXM z`+@>KdASh^{#Sqhmw*m9FL5P7i{~Y-l9y;+;%W)A8~^?tI?9;I!1EH(T@$-7Q4ya- zC?5!?kU_$kJfcYi@jM+qFRVP`L)jSKmM}yI5HcHDbpRoQ^|zBS(jm_WcY^BefWG^9 z$@tIlWIuTP!LRIt(bPi4WagO!#SQw!_v%hfo&IZ^S4gK0C(cg}CeD4##Ym>Ogs{k@ zgYPCCWLvh)Ij}TK_Hak9RZ|YHHX(AIb6A#~`P5Qer?PMY$g1d$={ zU&#-{;lI}3n&1(B<8(Mgk{~J5+mT!!!>}$vi)WFb@<^U1CZpp;mnxHI67&l-R$|EinqOtsn2D~USk?BaC390byKaFE3 z`N+*bZI_yPLwr`_H7KJF%`2d2{<#qfAg(n+0mOAiD1f-$2n7(oFhT*u4Mr%SyqDE# zQor741_}}eH<^I~Y~E~yf`rXm%s>G)Z#6iYiDrpcm1(X!YZ$QQ0Z$oTqA@rxT@mvR){61*Q)rMdpmr)hdZzwQ0BJ3P zqT%t=Ao@O2|8z`HF1OC2a;82ax!Xjd0OB4a6hPc-gaU~Bj8Fh^zYz)`9xy@y#DhjC zfcTXW3M?fW8Q9y8bdZ1LGYIp7rkYe{zC8RzNXen@7`-2(4`TFTj6RCd$1(aOMxTNt zzsY!42fxpXtlgSU`p#$aaV{*pkSstWP*-|pgR>y%*l-#(!qoLUG8D}}ulx?awS`AZ zR(?U@6#{>w@F9UODSTYuD+*r}_?p1x;0^g{3Epx)Z}a27$HTlGelAuA>Fp%3J2-D= zFNL=!58m5{mcrZL4c^-k=PiX0#O~mPaNtsSd&=OweS9gr{b*osQB=`4S|wHbc2+|y z6WOT}>D%b@fll9a5w6p>3BsyOT1?-1DO%tD&FIs=jR)c1_KkxN-<<#1zrMqF!yx>7 zg_THA#!AR9;a?)Z_Tk@>^6P6O2k`a_37bonrSSH;Wd`u}ul;)4E443d>C3-__9SAT zxd6M>+OwqC_w8-pLS1F>-ZqXJAhZdgE=6ej_BIjPgtto(+T%wL5ZXjqEk$Vi_BIjP zgtto(+F8&ZlVdC1gXa@A?;{GHi{q}x6N@(uTi?F*S(Mw0RUyl-^ z?>9u!3GCOSgy{S9D5~pw%3c<)M*i+A5$R9%NAwrd3&haLen5}z?9ZcTWl3d!9wlVo zZ-`{UVZR9szr3dgRA^Uzqv|nZbj}o%))1xKGUaqu>WPiO##OZyaa81-3kM}1sxiqG? zM~T8U;nCOqc_i1c^!6wbqJ-@G4Ut@8(%Yj%h!V2zH$-wrNWUH>WZ$PpOOQQR=$XIM zF9!Bk=IkmKmZYxVs)St+f#-kN3;iF4R#Bpm4K14hG-}30%{ydt$-T)y=Xv0VSdGy)3 z19+4u8#Y|nkBpYaqYL`;=odd4e2D(q!y|^0dUf`e#=jjdt&U+|{++(}0O3oDzCZO` z8jt!_&sX*tAVi5A-LHBsjYs{e=a2RsAVi6xq2CZKjYs{4=(~SoV-oH&R!|sv_so=oDd$h1WkJcT?ql7wr-JeHW9W+3Q5?au& zN53D)qlC<7UEYt3?it9VMAUBS&!e+u4?b%BdNlRm0X#}Xt@Vn2qV|u0LX?QwuKjuR z-9RBqq*}io-E+v`qxNWjA==>30X#~CX!R@mkbi~JUVsG z;G@>BM+-L?z@tQnHo2-F87+-RH}~h!oQ(zuQ9{`N>ETgd1?38x4Bo%Puda^a|EYhk z48p$~HXVHU#$PjV`0m+a0RIv-);>M_tE#bvZ8dn0`qi;pwjR7k{T9Qswi&!fzwR$; z|J`=*9`#%2eY*YNJ(}@z>@KMm{&wxbd-Q039<}c{c#rz67}7fp-lKlY^K*6{yhq>m z7qz2y9lS^VRtz`pK6sC|yB51kO0^629KfSQS@pLb9wo~bIg<7Z=C7NB3v{Yn=h)Yv zd#iKoZdFB1x@p_ycAe1oqWShxZI(NtgY$9I>5S8n7u&YTx<>KRt&NzCU(YdL@8;*# zli+M7=Yw;2)OM`FaW6lW*K>K)bqwQ3hx0(3@}P6~yq?c%=jR+|?JaIThP7+%OdgzF zAO?@RJGYOH4P>E!I|HRHHFiCB=eF!K+;C@yWevfM>iE@$$6aSjvz8dkhVUUQd2TD3 z9+DsnIOmOIy@RgzQ2^0wgaU{bBNRZi8leDUlo1LbMjN33VvG?AAjTS@0Ad*<6hMqK zLIK2hA^4qO1`0^;n$%q6@jPiXHag=W{EDcuAH?&&BpsXl3q{ho@W9PD?w&JJgp3Yw zZ4DQz)lr`R9V~0Z7dNvIqjJ7$)Ai!h7|;I)#`rO}Mvu%tfuHD@*WEq;RMe=-C}Y6a=h2+&eE)pvKHUVN9XtCQ^Q+RMVzVo z<@tTF5BJ^z@gV8m_M}$a%NiFp@uz-+dq2bWP*y^t^%|Ahute1C#1Qwb8B6$JV=GFahn09p38~g_G5B>2pKk0fbS6<+o7my>_AQe801OGA!(&%jX4llvw^1>k} zpV^Cfn{Jo$mSq3vNaP)@?UM6j%2(io)l|FUWo^fb(eW@@$_6<;s`8`9*bF07x+gJO zUG+-U=3`6a*3{H3oNTYDM9|Z-Zqus}eXlvKXX1u`k?^l4QX*Wku47Anf!~ZmPed!+rI4On99Bjtwu;-(|u(<#)mIlBN>x$MN&G#5*H<#xs5s z(I{r;l0IYDjN;|mvwAEhtH*}7oW(iDW7?YY{zxocgURs}d7K?JFFRMxXz47MuS8(7 z4t5Rst?8J~sSocF2R&4?Q;x#Np*v<%j*(@r6h~-^XTeoC=%@`JC2ZxZ!N=lqA}%|B zT{$|FQ_DCTjT3a?-(!o@HP~wpue`yW*xI%2Q=2SwXIV->9o;I$jxZqehq;T1JIvjsoop>H?NMGGU1#T9 zbRcTBV*=acG}$DP8re_EMplU(OAU*`0X*!u-nU2`ciyWUDOX9HaO8~~99QFCD^jjH zzv;wO=PzB_P+4Cm#?%aLqKk3>m;#82Mks(-(Fg?)z7Yz>tdfj_M!*L_I&n;I6{Ig{WEhsR!5uGK^91ug7|KO7gZ_ z%bQAFd~u3>)~O-Lz z-6*i8+7HU1196J!O`;%g)9lMEZa$8JFgl~rpM;-!?&8f@C>6;DUf!iSyF0z`_mb!` zNH(dq@iiL8p!kYT~o#Do=t*IfeqKZsggN<)GIY3SI%y*zY2MEoXJi+l}BCV zPm~MlyznSI3}xsnAIrn?!2J2W^1$jA69q(V4I>mlOfy0O#F|DZfS7KC0*D_Np#Wkn zBNRZaZG-}db&OB|v91vcAZ8e$0Af8O6hN$RgaU{Sj8Fivp%Ds5x8bRkP?R^S({24Y z-8Rs4)AuMZ{zvoNT9R@vA!v6RSZ%Je)$?bFGqqM5zKxk{Ly|tz#rFL-OD{tlY7;7a zmUn*wg{3PQYZm=neclcWs_idRX>_*gRSAu`5xHDvdQ68mzUbdVF6hW{4C$=^a_3BO zkZ0qx?A`3l=9(9$G0yw9VNB-lQF`iOC!Q}ca^cF+cK<6u;ncg3=_KwTQKJp@xv@Ss z)#v8=+)|(0=yPj*?!eQ(i_#%qCaV<{7To6A-B4HAG0r(H!*4+z3uqM|o14CnoZ<@f za6WXrS^Y&`v~wczk`~toO3(!n$;uXWIjlK4Y*jXKaBho>3WbQ=O6)8q!x8MMIVK?l z%I&P28tv?h90CgJY@-~~nrSFB)_BybTB9^K7CjAMSh|(cg>;JRl=Vnu`!@ppkv}U( zHuu84vEL<1S*dC^HpNqbCT?Pc0*FnGPyn%+5egtSH$s8b$(Irc&c;dB$-7E&XqmGc z$n*6*Dsw_~ac9`@2m)vo@@~C!By#2K(iT^L_T(Atj-;rO_XbOQO$(r$m#fskx8ZU4 zZyuEz*vg($PU%(lY-tfvKn%AsLIK3qMkrWPIeQ@CadAFK!>aF5oTZ%IA2ytFTP4nY zmb2o@*$wtkt(gr`RnCe(m2&nFJPaS@F{pBO8;gkoqPDFO3Lv&KLIK3~Mks*T!3YHq zKQclA#7rX;K2n7&38=(N1XH)Yin%=6`v%^Fds%M9*-1J>#UbE59S#NG@9=!E|4VXO@Sr0W#Kc36I97<;#Kyyp zI4&k0b;OA=@iYVqdxQ`YxX!UTJ+h=NZ2zScc483xl9Dob5}Rs7k$R+9*9K2>KAfT! zV@l6A@%*EcR<=|tF{M`6af-LilXF~k_Bej`%4PLl0aC<9J9aN@SgDio!aeaYlvz~H z{jgFeS?27EAmz`>oJ52L-9a`Rxu%K3t6 zXpI-XCmJf#^VF86p{Z0-M~_9o^4Eus&bD+_KtdmEgaU{|j8L$oa{pS1xTgDcAkWu# zO?TJ6z6Lg2;dV=Oue;B3UtD><*bUHT;Pt?&a$n3U<^C)@3}r#VpvwI@783 z#9>A#fH>R;1rVVT3LwfxD1bP^2n7%f$GWVe0OCj^6hIthgaU}8jZlEh>rx+)=iaW) zYqyImROWYpJYV0Vyml|v$!j-Z5MCdPy=KuB!Yl3hcdDz~^m&Uu@7CwN`n;c~++-mw z3(tR0xrg-mus-jQqWVrA;d}TW+y(LUr1QI%mR|=(M@%pW#pseIb6tD3(!3!^> zI3p~@x%z4CKfXi!%OB$b=hFOEe$v6q@{#^5wDY|4bQyN%=z9s_?zXrweWN-bctel z;pa1eqEeNH?6IaL3Q(JQMks(d&Ikn%T}CK?m~Vsvh~te=0I|Rb1rR3~p#b7UBNRZK zWP}2UlZ{XS@na(th<i08h z|2ciWpwHjv^Ch0Hz|VWWywKGW88>`#6?CZfcTja3Lq{vLIK1jMks(-XoLcYON~$f zahVYcATBpT0mKzXC_tfQY=0QP?~y+||6hnn4v3P1S;qAK$@vg|n>Dxj~ zJCjHGy{y;NTOSwiu+3(@z2pVSaNjL6Ejh<9U_%DYOWI_8&u zDelMqukP0=zc22a2Xy}j3HJTiCB42B{2;hC%MGiQv6|pcIHp{<+~sKyqev4-e0MXJ z=T{2A1+ZEGHfG9c{4y2zis2@(s=(KRnS$M`{wlB# zJj;iJzYA{BNnI!ji_Z1pw`2<$ozr{~{M&i;pDJ=Oqzr=jHPB3#Ck;!S=NOMR<-PDC zViG>dqoGp%B+K1R$#e2&<*u|*xSu1%1R42I^xn2*AG~h8s{PLHQElzK zdm?M@-s)S)0PkzqrNq$E!rgpG<4>9U?zOugY2mr}$t5kFGd*7t%)eIp^qXbnBa*vI z>$u5hy%jQa~R}gJ04Ue==>@_bQ(vfTF$TW8hX_1L`ooaGP@fx2G z+ee)Hh&`~`>4ZZV#@z5I#HK*pBa&Fp#^)Ngn;8a{m=NG7v3u_HpYbu zc*2?gITo^|<-PEAv9p=lk;p`LUczhtYu-CH%9Yml!mq^ECTdHfmh|Zhc@Gzhg-z9h z#5L*7SNh&Z&gon!lw34_bDSmPB*VonR&w&F|99NG`SNt?L-g(g(oSc2NUuuju!cw_ zq*IxRgc4rl5b-^dytG`DhNPL6)RH!xv$84{b<(j#FRds|OC+%PFVczp*M!D1End_! z%tbhA&dD$6PV?jmVe9>5y5~AMHYhj<%BL5@rI38wX?;5by0Ra?OX^b3zm?>cxx*{1 zzEl8ll@SUct~Npe#5G1JfcUu)3LvgELV=8TWaPYgku~{y1a&L(>otq6g7W-YUak4o z$?BEo83FGY(p1ZNQlMNmcvgqR>#^ovk=2P)ZRmLZu!PIfI?kehC02r6Wu`jQ(Lkqv zH=VS$@(E%OnUMI*&ChKS&(C!?H==Xji450#fPyP)!vRBRta+(}Q{zsnOub!lNu_V~ z6Cy$Xl6a{i?1SUz)>A5h93gCPvQprfidn()3z!u(`)UFfP)g48d3_wtu@bM&cfR$HO@a z9zbcOk+za(@X9>G!h=x>?vBs%TlrdCfbZqaKaKpZOBsFwSe%_8OBo)-m$n6B;vc4G zktIIXiGTUvB)qQv&f(SHar3hsdwBCtul~TY@_}FJ2gJnZu)GekXeBo1;!z=Zs8>XK zd>|f*qObBcPQs2~Evc_kKxXo1b*AJgX>ERr9Nn6fU(44b5k3sA?U={x>LVa7{gJct z;}umbaX^49EaDlDjQRDHin6ZpQCyU!cz!dcoekmk1gVf%R_F{`r;f`O()r*qEC-MC z=oni4&ZnP%o_-7$mAW;MC&Zae3SXH|@lq|RGp=#@YICnVoAl@swW+A^&8B_|(8pVh zPylhO5egt~GeQBxFO5(Dak~);Anq_i0mPj~D1f-j2n7=(N=9wQV$+-rmaEd$>n z{XSE@Uk=%FDWEUEXHyhDfl0I?g>;z&>)%AyAe*a=gLH@^yp*J1Nrjj`fvi|U5uSxb2z!V>(+S)4MU#lJXD?16usMvp8))i~qzT*|gF$ zFE55c<+Gk-1Qt0>Y{)d`nj7;SBju{*g^dM|`z~b~wSgNYWbsmiTq^%DwFQ%^-y!?( zoU!EC#H4Dnohzv-f0kzxW%GTe9SX?DlAp``{$BEPP8&FD5h3fWmNqFrNieuI{waRK zwue%OHS4%o`DxyRXLv+LYh$Es|1(?3WfkLiev`EodtoQMkVmC`Zu6VF?;g)@S{vaZ z3#$TD``1P&fOyyl1rU!Ip#b7hBNRY9W`qKW$Bj?`@q`fyAf7Zr0mM^AD1cyY!VMQI z(7L7t`G2l??pYDkb38nMQzRQa52RjwfuGVu&)*I%Zih67HzS>F_<#x%{VuLOe>D#Wc3 zUZ_s*!D(W)BdM<`WF>#5ud<%>WvD+OKi1esO_jItpwh&d!8hq_^lbbTS)jWVUF??-wiaskFwM?WTl*qEu*r`u*YlgOWwoPxNml*lm z;4rSsIt%G-tRYzhN=q`!uQVk`Yb%m-h0>|-h}##$&0Sqtv*z`@*QjM}ZB4(3_iRK^ zIdue!rKJ0S$M~W6SQ^cCg>K z(+-v-|ASP}piInWT7ua$YFqq6ct%_}^)-W}7bti77&?+Iu5 zqLa!|+i92MKFZ~v0$o0muK%Ks5eqqek4Gw1tK@>LKZ~zL%GtSc&ZqfR>|8PD-^DKl zNX6GnahXfxPS^F8a0iq4KwUPUNQ{KTcnQ%Hc)$`OT|M+K#jGAu_a5%6Z@Gx_{@#f= z_R9M-FEzR&A5AtdtL8aZMZWT9c|VbY%oDj%RRQVqiV+GRUNu4i#A`+q1rTo- zp#b7dBNRZqWrTw2e#idAR{I?Ss{0+xTlL-V$fvF+et%RQIuK{07Y|{~q^&fW6VS!G zmBMuqkLQaS*>Z97ZK#1RX4c!WRYBavNu{yQiSA`64PzAuPHZKSX~Hph7H?R&kr!DL zHcvvQ9URfel~A1cGLuKt3hCVY`y_Z2#+>em=olR?(x6JX_41i;%grJcW;09jGH+R5 zR$fB~^z_@FAL51;BZ(0EM~gQlH|i%}4<rg|R!NYYOJ=nv{T*GBHPm%5$I+7Rs- z$$7yXB+BLv=|P@#AIXPmOru4W@^ZmTaLiSfXCV>BOQ-M?Om%ow!K*pEy5Kb&o+fxr zho=kvfx~MFUfW^mSaICBbe@8B9W_IY*K>G%!5cWdq2P@i-dOM^4sR-WGlw@9yoJMC z3f{`$tp)$k;cWzO>#$sj6>QJr8ojpFMSb0RI$i9g@!}>%!AULE(d0^=_7=U+t-buR z6y6bMT`wGuRBfv{1D4-vTeg^LcQ6o_3ew93K7xR*MiV zuk(#rxyOrb5nS8F@^2P>YcIoY=E_FB3N}Q`%MSc2l>!Ks(_$>WP}2UkBv}3TyiOyTKl#-F6YK^IZuP9?~#tREsc(y6Fb+1 zw@DpiIuRW^9}D3nMAFS!l!lA;$mfDdqA?wv@%t)HgVe#z6$f>BT}$C#gd0<^d&Jmw zL5iYLsfe!0@}^kVWX8hHfq$;f9(> z0oj?b)e|Jtr92Wl6ROMR=?G5#Ob4ZHy$M2~ea+ou8SiZF&O| zApUHG0*JpDp#b80BNRaV)d&R;e=|Y>#NUlj0Pzna6hQpb2n7)TGC~2wzl~4;@gE}; zKrA*w0mOfePyoRR`mWWfK+C2=I+glUB|rD<6v|K;$LVE;8C{^N*e1^?IK=LHXOLV6k;?{i|P zFc%FK=Hj8kw6pl4SY*e?_%GB0@LA@SIXyu-$g;xz{d_|RiZI%bJ}N7li_VC zU8N*Xmf&ISlgZWs!;NeU?1T#s;?YoVlT$<~*%tT{x+;HG4$FQ~**pJdDTig4q-yi( zs|dZeW8Jh<8&@1+Ia~o*-ZMf0MA`@i5E&yB$XwFD@bfQ~GC{KQTO^sw&c6di?@@Ms z3G2O@ELL#zY)8HkI}bJ@p_6sIH3#KeEJ4%fyF7ypv1qmRsgh#W9IUFM!>6hecqwY* zAy46_9Ile6jcx4qlTX~dWJ1O@CNKp^Fl&SYh@24$Ao4~ifG8ND0HSDw0*G286i`;@ zQ@7C`_`W(_K14n)T|QEI>3fteCl0dhr7iXMW9Pwoh`UFzF55Gb>uNSbVs2q!a^8Yj z)-UlUUiG507Xq>gEa#fxRKQWIUn@G0tgkO-NWijP&-(g1mG(Cx?S)uNWV>#(m6JTg+i&lc&xTv{6(ElWBNVtX%tgrZZ&DWfesyuyw z@A;ajN@Cxk8*888eOE{Pm3}&E>kxt5ox_4*7 zK{9&hj}jkL1rUu!D1c}(LIK1`BNXsW>F+WZm11$Xjj1H_ z+ZQB5ANg%%$xn;X0?%g}il?W~f5QY{;Utmw7TwNQ`m!E;iABqbpCXw!VI@m0se@Yo zoTjn+qO42^#}5~#N=v0cTZ+1IGJb~p@aUs%{L5c@<=JMFp#qg*jozvKkG^GiEemn_ zkl|<%N*1{V*JB|evF^Dn%DE2CgmaXHukUi|W{m!)a_S}Vv;O%$<9zM4z2e+raaMpL zwHl$omD|j-r2bivfwZaWh@Y#w>s3SaJ*vAO#rhK4REbeG?Ti&;=fT?5Z7Nr|i^suQ ziAGc>aa)4W_QB|X651K!=di7kLbEp18*lWI*(ei{0%SJY2n7&hj8LF;-)jhkwrO8^ zv4PbFedy6LqDR9e`b}6!=+UCn@k77X*K(qBG2FdR7$RNn zHz}nlj7RsdAnz3mwYqAvF6!1WPE_x&$&)+j3sh_4#H~B7N5~qVF{)zl1HmlncNJ2R z0Wda%!%g(xl8PbU+*p`)H3Da?M}Y=ZLoxUre9H`J@$>RFFXLM$9S3|z?9){Y-UT@C zhT)xicYgBn9)`gpv0B%$azkCvE${EkdwoNF@ByH8Y71SuWe9C)C;_k63S2{vbv@na z+3vcAI?m0hiw-rS!jsN!14Do7?m%CXg8)7hABT3VHDaj$k$ho)s@s;cZqf$D_(_)s zk4UtKH4Jm%94P|QrX$P*tm@}*`!Q}if5n2Wp^KY|addh~z7Xz&3aBOUp)uCgr)BQh zqejiUGg5|kltv79XQVV_OT}zML+}ZnmYQ>=VlH~=EU>($K^L%MS5HiNfo~44Ix(do zrwdt|{ZDaDi*P3#@>*MJYB0``OL6uI^S(rO;Tp<}FF<9~()ePynd4Z@emp_fX70g`stXTW4L@CPMmk9iHLOX>rC5)d`md(p zazqAsC)c?M6{NV=)yb_kJRZ+1fmguL`1=z4MCZ?HFIB8cdO543NGfs2LQ|g3Z%HMQ zve=>uuA~zyCDc|v4gn(}u{$|>vtpb~Ml%?TJCbx7{<^O>=5;3%XZ4AXJ4W9Xb3C5X z+ghhsn-y6TbJAWKMiNDTCmv2Ur1Gz*LL5L<1yPPTltE_?`_$h$VIf4P!qaU?mlPA$0< zisJ0V8c9tekI=OzD@wnNMQca=BU-sgja#DtkIF^i9UX;tOfCxU*q*`7(ZQAZy>}(N z{3}mJglr~H%Ma_0`EpPrI1}XLrzR*klSyJy>+mXq>je+Z2E!b;s&EYsuP(Sz&1(Wy z8jH`FaJbn<1*p+C$8SPvb4ia%hJYwMi=8Ok_>YCJ?O2$@{-2gq=h4<2xr6^5gfIlo`KA z$B_Kx(UKN%HszIUnI-AP_IK<&)TVYXdV{9EOeqe+Gh_#GR0I{|a3Lw@oLIK3O zMks)oVT1yR^^8yevAz)sAT}^U0mOzzC?K6=Jgb%Y-VCy|w$)YSK$nSh;XWmtF660< zAFsJ0wP%@Suu@>`A{lunhj$aai^F>e-p%2?1hXRy`}n*MZ@TXy*vlCoEXMmdd?;Av zH5WHOh!$yr2b{_yU)oQMZ2PQEBm@UIlLLC29OO(6>TPl`CNi6eve89x(;6#Bg+>$l z5U$0;#VfJ6RL00`B(#ITXrZsx4_T7+MURV^c60$z(X8*Vie^KHRWutbt`g0r&NxVh zKiJ%neMD+YXL5Lz^{pM*hjiGEz66QVkrR_L9{ES}2zGG9T){KJOy1;!{{m<`#6lP! z*XYq;WSn;WP)k)!s6mUnPQ`_NprXrJSwtUPl8~ zbBlxrJV)>lATu(1&eAT}{V0mP<8D1g|^ z2n7(E8=(MV3nLUr`I1j@n0TtD@A73eYS-T7OG$??j}?tu0}DNt2)-!QOJYO+rX-e4 zJk~_3AZj|8csvCU;w2K5iO1uhJ%7GF7wGdueV)uSAFR#?O|$nFT@Zy9ZI*&(C8<_e z8e0r6!${i-(QF{&Svi(@v2iK6n~9pWkyD#x0LgYUJu80Jy@7tkyP2x=3t3U8$NFV+ z8i;mF6RiS>t&C9M#{6V1kd44jKaUXMmTU+!MAdep!p#WkVBNRYvYlH%b?TkW?ll4EroZPTBM7``HJMNkjf9}`|hm?P#6(UA3cl+UNJ$exMwaN^%Cm4|cvOCZj* zAg%l=Y--5BdYUe@!RgT zbjf>FPfccL(&25SSF=v86w8+qCGL}18;Q!I?M_)9%bHn6x5qMf@K?qp)OytKV=O8g zT!E7YTg;uIkbNN+e2vz0PIWQ!{BL**j^`0REBbNHTRgV;ofS|zJ>S$Nfoy8eH3#2f zu`WCX^Lpn|%jC5^_FnxQ=}19ds%^;Cg`T99+eNi#$8)yZel+879_d-Ry7*qgerq$J%+X-Y3q3DKS;Bp zmRX6`{IyJyrgf^6A;w%&-J&R*;xS?jwubT~OD(4|e{HozB;oi=dr< z8l`MB;Sw#2rn+5MH?*%Vdx8BMk$%Zr%;p@?)?}LAgG9K3Vg_;5LRY)`-KnPbyy)%_ zdYB#~$CIzDOg%jENNROiDCR8`oB1QAK4MyGZ@BDI>tsgXhXvta5p-S3c~QDMlhI|OmaqNt%%lB-$#YY`@T zkZ$Q1(%L&X@#=zQaK%^#3KOmd?*t+#3as zYSyg34=*)Ye_tu5LT~PQgs*diH@9U7zeR5@P0}Gvi_`5bE^IZa$@nefPnsLXq=Rp8 z=mt;o>EMsNbdYm|WJ9`~eUo7z=oX^TKHHtvlSyWy$Vk#d#zN#@G~7Yi7%kCZ+^UB* z#}faK%C&`2qt>voTckg#M&vq5aAhRBrhTX^Yw`ah5|Vz%1AJ$g$XC~(QhgQ6i!qBY zP?_7;8q__hf@BG*)71ZBzrNtk@Y%Q!$n0kQ{GHL*!iY?O5R0XBL#7@lvO3kj9RWx& zF_+Q1FWx> z;S8se?1i95XW_gp4yPPcz=Vf|)5DG%g{p*eL~7=Nm2e(LI2$aSWIWOEEdJ|pp6#CA z%2SeCh5S1)Vx!K6fx-ESBme5Y)$!H6s+ zjkn?V0NkqXMu$WN$76v7#wZry!>+cpS6zYly7>B2SJ66BUmtwNc@H%8yP5 zxTfzlCj8fMD~*epn)2GPwYipH9e#7cx;(i$OsqBsGkCJ2Vm*18yoKjKL!7J=*2ytu zQVoO}n_u&dZ1^9Z+IrNXh3>R{G3~i|^cVOT7SBp-9(8TbRBFc^d!1i%kOffzVV-S-0*Hf+ zPylg=5eh6$qgtsr$a4( z3JCEWBNVvub5GJ?vCc>Y)V{92#i^2`MzWr=0tzAm|=?K=^|xho`Zh@nuXjVS+) zIHH#vj<7f=AX0OUPylhH5el^aW8fh*mN;5;5z`mN#5rLs zy3}UJ^2W3R>T+%bW0X{JI{Dg|&C@X66tl``g-+8>c`qMq4qbIeS=)z1`hq>F*?NzI zo_unzwV+2?j1&;Xqm57iaf}fPAdWRc0mM8b6hItjgaU{zBNRZ)H$nl#@kS_sSYU(# zh!c!Z0CA!b3Z#BMk3r^TDrtf2hYm%#ZbIBhUFRXoh{vt^T61-3bI;FULr!^=-tJ9iAD`2_&qMPH&<3aF*!$rYQIb0|B8Ns>WIY-I2 z{MqywWw@4EhNy~tNs{hwJnZ|`yNbfev=l4#ZdLBkGt$tKw9H9LABk3#HVxFzkspaV z^xUNst^r-~uOT;>T}g{3i`3YUfK0oNR=GN}Vyzm8-3UFnlad2d}%Y zIzuMPP%^R0YHf+rG?<=sM$N|r`{2Uh>Wm*-uoMu^Q;bjmajFptAbw(m0;{jbyLgO~ zcx*-ptnTZp4T6eEJXX+nhzr&Q>T@}sL8gy5l_gFGczwjFk2c8Z7C;4r_zWWyK%8lW z0*JGWPylhZ5egvAF+u^vPmNFjajp>xAkH&F0mS)6D1f-Y2n7%q8lgaByD!3;P$>&# z>BJ<;;W=XUn8-L{9U*R$@}LMo0bUu5e1Q<^=uBx8 zy@=^pwCYrcNrNm7xBwAeoBfO}6icJA88eJ<6y09$yjo3U?p+D6yZBY)!;LNnLAZs% zdO+VdqEi1ol-yloxjUJ+w?bg@XL*}-LdWgRIw48R%GD-6v-DCx0$yx{0*FhDPyn&e z2n7(A8leEIT<;A===eo#JtMqZ3n27XoyO@adac3b0qmMJO*q1)eg0I%cm>EDHBjGrC zIE|!3yldh+^rqvRYB@!67ep4mRi&h)LsC!oMv(GndP*H+cNJf6>8F4MrHA1XQ~|^d zMkvsB@cH=vI%9BAJ6Ot_y+vS}zWacpcTHb+XV#vu;iYlnF5zAk@rC07c?Pq|iJreN zP-b@Jeh|h5oSDm@+(#TfBT+wfPNK+<+x&gpNqeKkL;+E|$p{4yHyfcq<9c`$SH69q z#G(FEQ&6vamp(cIQQvvC#zb5Mm($Pj{6l)iM9eBN*#vLH8_r3_q|$%cb=O|~ms>2P z3JChGMks)|%?Je$zcfMt#O+2X(7c;Xbyebf7$FQ#OT_npKH?kot3&K^ik&{i9k(6w z48EaX&8>#Os#FvkmAF43araK`JMITEZcaBY-m^=%@33$yfVk5L1+Lw6a1R~zkK>!+ zcZt~iu&SL$`6cZQu@#^n!1+BxEoPNacYa2we|BUt)YjjeIkQ)o@3J5&Ak23gpQgxW4ezMpKT4eSVEM}E3|6Ia+`NTnn`5p_R0>XT+5egvgGeQBx z{YEH&c)$n+5Dyxm0OD6hD1dm#2nAA~{DHD-xk`OPJkOJ8MSZHS@VuhCnt-d~1M=WtOh_?ktm5>1sqaXp1I@gR8D;j;xVa`>l$-xr(< zK6I3PEBF{3uUi@Qdy-%i9`>#(D_1oNUpp5`C_(#D2IRU$$=Ch4AI;TtLMzV9krP-!y)gIjr%!!eNcy zRSsVuA1{t5COcl&h*2)MmY@1OlV$ln!YyUEe9P&i9(!@2NaVU@Xk;ahy{M|cm=Q|J zU!wlHm8OKupZwaCMFGUaMkrW9zFH`v_)RPdue&;5MSUo-6)@(HzFh{aD#668lCK&* zCkpAhLFTJREQksS^P@&6fOyOZ1wHGbt0eTh@JTBb`l^Qzmy~DMV3%@^XOPvHTnns< ziI`Pl@?(j~ewk!U`mKkau#hSs=uaA<0OBbl6hJ&}gaU|Xj8FjatPu(zo-;xL#Pdcd zfOx?O1rRS9p#b7HMks*ztq}?!UNS-f#LGq~fOy3S1rV&MT%4bK~O=I zA|L`v5os#+-moFQzjNl?>Y zo|bE~p)0yhPUtZvMva~9=tY)$SiZz^Kg$CwUt#$gq;D4*gXl#6>H{AY!HfKnf zKZNcfdFq=7op*2a>~R$%vB@FM@4>>N-veu>qilhFXmj#{5WPG{(KZf3=`={+U*s=( z^TYvY)0Xdh!W=O{2Io`RA$Z5aFrOixGbTDFp zS^{?vJ@fRlLe8AgIq%s47NGP727QU4C8xh04YBnhWbapW6kb)dqwx#k@9&0aTG3J5 z8D7KIEj-Ki_iZjcf+HJD z((vQQRrtZmqzAKsRhWn8#7PVI+}W>i=t!{dWq51(uF&OnTSypd`98{|C=wlx_32Cv z#_7jP@B^OvuHvG9a<_-W%ItLvU6@f1eFxYpJGnSWg6dYdzZcTs3)U^)mk5aq5C@&- zjEs&^=}uEL4uXfw{@$=E+T5!cZcMUE3M&ty!z zX%F3Uw#Li16gYKwAG0Dq-inSZgWW{5nf>0Y3IxKw%c%6!D~3i~uS9#@?%NmThg%E^ z_27}|i%k5lt1#N%WbPlUsZ&~4qP(U(H?*gwIE`x^aZTzI5aHPRgzZ^=yzz@oPyOz< zSFhaz_v+P_y?U}U4`-c?f;adwo9xu%{GiQ!Io;TphmUx9O0WxmH#n0`R5LSnzGd2B z=8^qnxz+GlW`Eg9>>i+sK!agfEXfj-b|pl(9AhLZhC%-&xT0^sderx*M+y3VRN1>%R?c7KcX89ihcyD=I!-4yB1EpIRM$y)|~PW!}bYTId1xgPaFKf57bA zRH0-Hp*)-g8bN8i3x*MKZ8Iv5C!xH@zXqoraLwht%LN?@+P_>jg7(+KZ}VwFeyT@7 zmC5JvFX3|%qD$cJkWJnaCK#;IXEfuCk{E_qAaA@>2xb#H3W0p0LO4s7!QH+bWp6OH zrNg-X&{s#}epaoi{^!KKKX!~N+__-CExKqEDOX0MT=zr@-+{5;tk2hzqr&weOH?9% zB+LAPrTkkUkp2@f-WH?^!=vW5pGi|NaFl-wg$3Rw1IM1;U3MwF~OABA1k=Cfk@3-$ev-hPd!R)|@o#$(;?af23eKM+Xfj)DeUEc9>7T9fsM|m-eVqHo_yw zNy_v&v9peSZ0S8S`ykT;Z4w}s5XR_hq2Le;moRRz19QhT63%SRoZ z>GI3Ca!YeG+I4)$cHqAKp=sP%ujAf>59+>eABSF>x^Z(|-2FTDK-b@K<^bYG?REx! zuT!18-<*l|Dc*#4@bz>2*y|*C0g9)ZHYa#odGK{#{Oy6525IL$o~8zVJT8f!gBd_MynN#F4+R!48&$%^ z?IL47g0nr^{gH9lM0t8oC68FOzk_kqCYUgB{ykQzfvL)hR+%PiR7NsBA^ zp#>AGP{A>@#u41_`89}lgR=oE9pBgrHbC*MtzZKb-`NT_K=Hk;U;`9C*a|j4@uRI^ z0~9~m3N}FTv#nqQ6u;OCHb8OPRk_`_DP0g69u1skBa zV=LGI#b3694N%;*6>Q)(?))BZQPevAE)^Lvf0ycSTzTK`;d<2%xSKD-Z83zd$5Duw z?U0eb?PU6zB9_kuO<*Ugo5M2j3fM>UGTI+ZF7WPB;4mp=^VDKmSn%a#kK@Q=GWxHe z=eDO*;eR?-X-@gLW5x#=5a0WMsj3FtP z7_*o3osBt+%w3H+8=0Rp<_MU18cEM%{ZAQXj!ep@jS}y6ph*~Wa4*MMM9J|6eg!Pu zMTbxx-!mVZZZ!rX3i|UU`{E?Px`^e{1D8+n57zJp-jr5Mp-zM zayTnZ<_@IrM;cef$#3l2qHs!Px?&8Jri1s5gAvY_=yB8`Lnp}A9aB+tE--d_$#HTDGhPUd=rVa^f!;t%!>$h|+}tS+Id z(tj7s^kN+8=#O+bY%}BD|3@p31b@a*k7ETMB_s7DR#D@;Ts_~ni0K&WJLIdvRGEX_ zp2F5Z?)KP#R*hE*jDihNShj)vfX`&s zN9U07)x&PctiUFS(0g9zxE6wl7{|FQK8DR!c5FE#PTMCj<>{1s;WDq?;Pu;j2-luX z;gmo7zCYHuK%1%;m8Bt%&)hz(waxnlyH+y0dc+F;654mR{+3;lBD+RmB= zoh4x#9XZ1UoqqkOr!ujH;|xupYoZ!t)?{9zLRwwYiFh}U-X@_&fLR7r{a`Z-wd*?@ z&;Y`01sk9Uw-s!FBAcyX0~Fb91sjkTwC)$cue@JU4-pS^N1E(slb!CfXGHeMG=N*n zM^|7!7|TX18$Hik%Qun4eQt3f~ z&?)~my)kxN*?`FBv=wZCBGy*0f%`k$`SUv|_FgVud&DNt2qD`g*fi6Vv*&OJjhK@w z%h!=*CyM_j=(*JyE0-NRHXyojwt@{%bV9xQu8`r|Od-^4khFKvBR}umOsPYy}&jC}=C#07W5N!3HSeZ3P>kC~Pa(07Vg7!3HRb+6p#6 zQOs7b0gB?bf(_gjLewgB%;kdljZ92K#@Tyw?%j!Fo<$CV3)+c8zqAtvvrbH!n6m7| z!TX;fflAu0jv?2uuB1}mH@i@VQ5l^v<`HB*Ys{m_j2$Di9pycvBHw-36z1_?h9cuV zjDheuumZvkKl1|4zj+VCjXIL)Jq-5q0qNaQ zXDir{(T5fcwgDU{hIj{>A{zJaLuG#vxx#KJmeVPvc#k+sZ!?P$b1>Y|+t|;El)6tJ zTFQ`2}H#&}ds8YdQU>gWob zNX2p<%LR~rJU+~lUdx5_PITQjz4sa8%iD2f10s*6-WIjPh-4q8KQd6xzD8H6MA_q0B5{bL9As92fOF0j(4ok$!wJ{))dzC!3C@Q^s67zQf@mT_xaHm5m{1rh4(#^sUlYgAxJ z2z6k=Sk=eX;YQ){J&)_N+4l?B$_B&@1J4_AhhX_uu_ABa3_QV#ugBa$;=VR;3mQ{{ zL#| zP&F)}QkXvnG7kqxMdOKV6d8k`T@5jhI6lR99vo+A;0^`fU!|A@W+80HTbJg(8C6Do zgnYsY56Gd_8d-5z$rX4F>g1|ZBV8^ zo{zGinyTDKp%BSDPnA7n zn@6ae&#H!`r~5Rzr=vfU2YKOh@xatj%7c7tUJ7$y2ZV6v5m<9GO>85IwRm7KD?-tH zd`2;u72!d}N>*eKD&A&AWKi)jE22oTi9P*=6){0Y*hmUCHh4)TDrby<-oc*zs2 z$QN`moD~IvirK6v7`$W`E8>HSa!K4o0?OF67UER zAF-fJEj=oS<>PfF(!oq?N!)sj^)M@N2pK+xdQp5Po{ZFg%FSfH!0i|DNQKUHOGmlk zJ<;gYa+qR-dt77Y!wgvbX?KPd!_aF@#Le9(u{;FJ43`A{mrx zBq>Dt%@ntfGeQ(gJ8taK8Mmt8b}9l#C~hOc<{FM$<@?8t?oY5OT2)4z+(=;r-WyHL zk64ci0ih8HMG~&2AlNd}Y{PiOt=!1qz&=>;>=DnB=qB0i-;E6L;&Th1qQJA~=99oY z5s}!6SOD3R)1CT0^u+@uv*EfEWc2z^;zIvPV?Imf(_{|ypP?T-R6S3>foz4bT>GAJ zb&*_MH0H}>zD(xShYJ2U~Sl4Y|+E=v)5k(7sXY4C??DokBUb#S5fx&Jw(;343ZS> zjrCWDJ47*8cFF$K)5!MXSO`1Lzg~Y$J9PS-4ih%gy|@v1c#2(w`QO5C&g|Fe9sgU1 z{MG2}rRhB_R0;Jp{zoH6{=$DeHR35^V(=pr~mp z*Z@T>Tfqh>YTF7nK=H7xU;`9&Yy}(a#s-VJwgnrYsAntK07ZRU!3O(MI)@DBMW`xh z3s%{P)MR8{@i>1S{FJs*3nJt3xTeNUVPm$-HaGA!|B zlDruzr@O{8094Y{nYluj++!G0-++EY{Ym)A8Fsz3y@>#yHo(=D_9G%C5Jt^@bQ))_ zXtz0)3s3)XDp$A}e)&XwP9RP)%n5gy@*x^e+i4s{VpUjqW7Iz#Re{9+Ft_D5jX7>?C)mv;HyMwP>C;bFv)6d?&ELjt`}g#)u8ERVlFEIj^( zkTcMfw66%F&d;ko{<=`&*|dkw>QcCK$J_7dY^ZmRtN6e3JGBwwhmWvO2z1ncv^O-& zkJZ|6KKjBO>2Hp``1E>sY<5p9XZckxAA#YOy(aBc{4jg3Nr=KyF8|&0Nk^(X`DWtb zKTRWD5qePYV`Vf6u6&OsPhh}3n!JI9nKkLj@G`gU<-vO_8^JPa<0rdxj-P`wTn75i#n`b8Y_8$)GX>$@cWl3v zDQ-0=ZcQa_>p5;DDQ@)Ze;sw-o_D;R5u#YW0m}@R1opfmSG1jqKn#uTox$cBj$5+_ z#qE5ixFu5DT1ecU=eUui5a~BlzKzQWQ7r9zW0%f+JC)%w@CxNySPaFDoN?S*J}7Q4 zQQXeB5^zT4K_nH^i!!*<42)(RGZtnn3l3V2Y1O`$s9K<2gz&lJH7R`^Bz;>ceeN+k z>1Q-Srpb+GG+AVt;dnxLCkIVw#_YN1U~4lXXuR~lY$E=XLr<3mn&(7smN6;v z1V+rk(+8RvjoD5<%hfbT@{A^pOq9m#AX}L&joC)PQRi?lzr>efJ*h>}8~TP}is2a@ z3@c*>kdZs~pjH!Si^C(AzZkB|ongHQCyYZKScJJiU?igJ%Gk%k6BOQDTe@88Cx~Nu zYq-p~vYIRK4BVUjs2N(?*N0O*)M*~)TAbt+HNUo3DR5c>M_H_22XLJ?Z*RF30u5aQa&C60F^o!Rc${sv#bQWQ0O-q(|yl z!$lnX1TPqw5k?fxGx!W=4}HxLvF%I#;3G8;@~7Xw^r!!Q{h>Uo!|@pq^k-B?e2`}+ zIL!m;>ekLYE0-FAW|1C%MMet4T^UAH^dYeNA1it|c``JUC&AX@EFYI@hPcun4yS_q z(ZeBda22G#4o&}WqWY9@*cE!%|M5MlU}H1QAS1SRK;3by6+Cp|Fe?gT6ojt?T1^&* zv{#Lum(@kyrD8h?z9bZQHUhWWqsL}MXc*L3#Dmtwr`mb~Gtq#>MG{5XxLBW|^(E5n z6lrlZ7DZqTgolrs%@PB%Uh*X7I+*XEK20F^=@5ZqV{o4lU{8Wd6S?uQ=iJKZb^Ilf zJm=LM-v?WpB(Oh}ga+QgB}Hw z^8#|!T#+RKH`wZle~O$RyMn^)uVd96jmfqnK(@S>@00!La~@O&CfV66C7iVmu!}5p zfV93k!8$M*JbEI8)PZuT1*o}9fhHqDXmjOK@qunn`ZTAypv&J5Sx_3k_4rp7MY`a8 zBe=`!XbL{6;N?<_lOHpjev}J3D%~Jx_R)PaE+|D8%ywSDaY-Qc+(mOeq)O2d5rE`e~wrfwv+Y@V6!SDOE<2aXrmFXweWi?$NUH@Gdta z^2_)^OHF*jZt=huunNYXm8kO+9(H!2vkUrc$FBj!uZqNP2|09)S&SdcEEP%oaD@7Q zjUV|HTyFZu_)&Nn@f*Dq#JB%!z|HhBTfqh>mfH$8*f|c16}AN%pjc@u*Z{>UTfqh> zR@(|T1pP8AYn1<{92-(THI{r@hl`L;Yw?34g&^&6Z1UgpiTn!QR{Uc=QFs~oBoVaZ zhwVhssgFqfHjqQtnCI|=^NS$;G}%WzYyOY%!_Ba>p8de}jQk4TT1fm{vG=QIL8lq3 zpJnrV0;axZw&dv_j#8qC-cvJ!d5)#8=+st{rcLD3HD)7zEOR>{brY}6{MWikeg$ty z{xQ!fyo?x*-VEZp$p%!PEw+LUP`qF(*pRh8(b~dS7|ZZgGrK+KLS|ZK9!@s{5}k6G zIA?9jJZI+&%a&z{6X)L`aK}2QD1wWfI1qSWE zybk5n&xkO`+NTY?^jQZd*}$2(f5}(_4U|L$*q@Ir6_wpUxPMH(G5d^ zzwG!wtV+2G??B%>K@I*MzI@yN(<0QH7xoSFN5V^PCWJ^Bc>_A>^|AQIcob z%_CdJ;a!Qt<4Ar2=}~b#_uTZTw>;!#6}!K|p-k>d8oZ)6xUMR)N~xACJt_~|zR{O# zmrXeB^{9ENWIp#nv+W-B&V`6=9`)plO;&qU)!rnlKSs75zG~gV**Gp^z!uWyUPbO# zTqF5?b8<6o0_j8eT9^0u^B$G9;IubfT}$maAK%SrO`47)Shgn_n?|zd5R!vlBKiJi zl0{kGSxM%rCrIuYO7bE!k!t*gHr`0}OKXxHd$#g;)ZiBz9`vZ1NJXT&)Ah9%BGp@g zWq3Pi*a|<69~#$+Ty{9v$`h$ReP{UUNHuvena^)+gS3CMlyYDPd=6J3FH=0fK}sW) z?}>r9YSU8kp+$STs`s_wNZsH5)6lP3FxQVKM7=4m3ZJfntM;EDS#!(sfgbh8Qj$J4 zKeJ%@z!=s0&9_E)R21joL&)=R_47>%Yhp8Ud2%J?VWo2ic* z+|+^0b;pu?r|+96@%hMGgz^OC%*tJ)`Mn2~&NBzOG!f4jmDuF15i#n8t8a~{tLmbH zf2OG>cvS1%YdmWBQZnD-wli@LnB-^jrvkR?b7uEBAJD)+# zPiD>IyDsgFRAt#*17?rfiL!`9OQhD+7ws-mrSI&7b}@)sR`jyD{zw(QEc+mjI>Y(7 z5i(MZTu5za47Z)0T#os=QEt2wAX$DSwVG+INZwvdvc%KWBK%yFU+zifXO@$!eVXLC z6C?+oBiW+e@_}*c;zIAJIF-D@JIbS4^(Q}DaoZW(obs?vf09uzkle~G=l9u?V)%rA2-YTJzRF!9CH-Z=Fp`>fdKo@kXZYV!+JS95cXeS8Ad)%lI7b?glx z{U&H))ZLpTf9yoE;A(P{Z7lh@h*K1Hnqt`HC2AK5?MMz!Bbg6v1U=7{?z>}DS-z^$ zgxA)@sHZus<&cts?!DrOmd}h&6`?W*U(-wz)oceC?)0GGm~N zQr}J{3Zb!^w!ls!io|!Oh(4Z36r~C=m7Yx$qlz)*oJEui-)2sS%U(-}@~BE2!pY+= zY$K}5E+3ylR6x~YYBr6ixN5;vX%bNh)tagQY@(9%t!w!C*es$_sso3xW(iRlyo z@|6ih_0!R>56SRe?hx(G~Tc&>Mccv8fv%k8-RDt~*Oy8x%bx*UO!|5w7pc>Co2x$uY z`as{$BudBI;_0B`ONpkbL`~)1>Z+moOleH>RePrQ&yw9rHGt_Arj2R>(`}{~)l#On z2b0VF>UpLeOs}ckOe5IkQFVl=9n(qmHq$buv+4>{Ri+E-6Q*V-$j=YeU8e3QH0Tp7 zjZun9OeOk4D+XSLgdOOpLQ;F*9 z8%+Hs5;fGf*q1y@h>|rHgAqc)6hrtbCaAzPq81u2Xo1c@OVmo^_6$ys01I@Y*e<5I)ja4oB#Toc53O6HHUsm!EYy)7zYe-}SRho0#tEMNAXePi?Ja zy1=F4ww~hxq2B&u%3hfrP@oNuTk zyWGbvt6OE6t{fw~S{BY-fXk65h#t0Zur{a|mu-D(5K~3Y`DAM(lVZEp);y;7x%RZR zmNM0!L%uv_tzdeK^SXnz!4O~9+1k!jnsc|SwVNq|UG}l?^a7!8VPE=Mr}Q(w6VnQg*)%J=hwQ%LG%T|!GA-fux7MoXNr&AB zTz>1Uh91iKVPh!g*I6m-awPk?QK&JeVYBrJ+il=j@3x*~TETYvtiDXqT(b^X7@QG8 zH+Ff{n#MGab%?3c zB%n=<$9DUovD(mCsW^(rJM$mx#K%&M=KTKs3?I*h(En)}~IbVKpea&>4)AzT_3ZwLSkCMwccO|BxVMHa}9hf|vqEhZI zAf*;QPVp@3?!|V~xfWCq3gMX5aF1lW-@B79b=}W|(HyMF;%rZ2{lvXAY&^p2u{_(; ziJ(>NXQhGJo-VE%x!3S@9pN%jJt8!askwV2+nrpNz8B-4dmH;X45UCi*w2@*8oQnB za*w#&#q^BO9;Q`7``DM*6XBTBwQytSB4YO3;_&$t!a;VK3wDXBrTcZJ__IW9-N%`x zbtLNSzQUpJTu9X2{VCg3JrTc?2=4*H&)239^>qJWXd2OAcW5}-O`Jp&aA#vWIGZTd z9m(|EETR$ayy59^`P&krG1XG(8h9a|3N%!e8boVd1SV&H$tFH~+ zJ;PlrBoEVWrcxnAn7S}k45`G__)T(IHKZm}VW#Aej!b9YAiHKEJ((slwG0`^)RpOp zkSR>DOnpMuF$G?s>js2uVQS7aGUN>=#WW@48dF)sWtw|>$R|uiUL{%`5|W)#v=M$z zb8iTVWh#G!=!K9XOi6s*zL44=rB?1Ay1TgEA5xF)day6A2<=CB)7-~HIzGT|XX&>Ub%@oJJ z4ENk+8qC*C^yG=8w13C(oa`ycGy);aa6jYmF|}t}Ym-?)+ z+s*XnF`~NOV>!m-x{sF=HSoU8b{*KyX5Mp5jhPpFVBVLN)RlBk~Y{>p?mDnL(re`o53hdPO>m-kPmzuB&j_b;YqY}e2GH&a(U%}G?4 zZ$?q9pT%aQMCJFoqJr@Zc-?Ggd>P{PI_!pe!`QAD$7Q%TJJUXn^$2f-!)}x}hr@2P zH_Bl*#v9|X8|%&KuuJ#ma@dXc#yRXJdh^6E^F+I-VZT3FuaJkjnA*yxy znA5l2h1HnF(RB-}#1(On`xocKHZCjAZMRmP@{t@`n&hvANv2jM`Bi?BjoHnLhsivi z<(kAoxOO_rKYb-({*+}_AMVxsyO@|bm}_@)+>%+Q7cPUaoH2>4RSufDM|9Z@)TCJGGxA5m!vb?PwJ5EVvg1H z#AKLf#x;jDq1>Blt!^cg5Bu2X^R*s>%U-oRLmK~0OpN~RI!{Ay^4#c+8xunlHxr*6 zrTf5TaTDM!;=*# z4y}At;_0*{urOlwa)y^>W`@j z#y4kanrpL`$ba?WpWSDTp)(FM<0u~<6qBqjvxa5Tb-vb8`12rJyH>3J2RErTs4R>R z|EBcIb2QG9CGC7HW1#WuR(F_?c&cn5MugZCh}Rlf`wTJaj> zyA8-?n}#HhS0#DA)<=+clIYs}$z|%AyfV`6Z=d8IsS(G#7|R3P(>6+>t0r)7`4XE8 zmLN?|9+fVYp&q+SdD0XwLNb9zsMS@-e4qeHlW(T=ki831UinxyW@%zRGl}%BhbbmTbE6_@bh%(D3}wxQQlu~J&_@?1H_w$IeZjIM z>nD;wn@f?rS(a=Muw2PkUFNxmGsogM)e&3=)^NEG=aib<=*fDMKeyOClIJs~^i8Qb zYv7z36r!hkVWhV(OH()Ub4`1b+w5$vpIy05F6H`pmdz#N=-LpLO}O7U$hGto&on;d zl(uX{?IJbK2mfQLa7wv8o7^kTF>lGzS-X02s-30wd5v=LA*p_K$iGX}gmk9jTdo5p zjm7FxC~aBB@JLsRrOA`dY~I5Cj+U9CR`ROccXAd?w=@IzTo~5UH zYnThOY*(`#%;Qp?fOO`VY4w*H(p66L0oEA3F(+~yeq#Lz?z@tzcf(al+yzbBp%K9jmxM_W+B|fMPM%3;D|9?ms2stA;6|!on5s<~WO*v~|ET^{;OA`}Q z$|h%CPoNewfWvjh)7Tn~v$cLxeGEdObQM+|YD}qDSe=4woqjDBrO5Q0|M&H37UJ+( z36jgplWbjuWEz{RusJnu5j6MKD~~68X!UyS((8tzHCj;eOnr$JL@#cPYOb?)UhpWliwWwYRwExdZv&vHtTKo8gk$qwR+7t(@}&J3mcX zm{My{X$P({wb8`T8K11NH8sJMh_in%pz#fshJgOUCpT5WmkD-=T-l8X8WLPqZ7O+g@O&TLoO{A4LP7n9Axi;R1?g@e?~z%U^jF_?~ehr{cC_b)_!f-&No` z)1BQH=KI;NYEgQZ@jcO?WHPVf`|DS^H#=RQ!{vMPP3*Htg?Y+wzqR)f$N_s@aSY5^ z*WQEa(#l?Y9}kz)6Q@JYjGF`LystDNI>&B$qG8w1$k-96lPmgDxLMoU5J!)fwZ&yE z5mOfC*@QEm_m6`;D-OD}V^wtIBE;&AjwB29B02tPlABj9s$WgjYr4FCVdZ~w4J55Y zn)y#f74hK)Xv{3A^_uGS3abtMXj}{7@+!^c{$)WbkrD}8klyCCXf)r!_vxDNb}MtO z3zVR%^2gKNL0i@vH^x2L{+Ah7roMvjk)1t8)+b6mYwbYXUahhp()sMe)O_Px7_YQE z$kwbk{{AraTAnhmLf$HN1aeOyO4l!?j>9~K>t_V7nkl|KfUH zoLh?G_#fpQo5-zuHn#|qw-#KQoXPCJGbbP9ThIrsfUA!h^YEf^#Tl|98tAjPCU3&MSx83d1C$n6~GMVK9 zmTg!LWqE2hx%}--l2=&1#qukb7g-)<`5DW-ER*=EuMW^v@34HGe-z1rPBgqX;aCpRs&k-W*F^lVG!W9&ZsB$=BwzwNH5p4oT}%5B-WNrxMZBP`c6{Jp;2ex2@}dULHAZOuKeS?xDI|MUI3 znZuj=vYb`v{-_|YchS0y9j=+xIOA!?9cLVzZk&1(H)jqk<$ls$%cYb~jHf3xD_JhD za~FC3N)eLDwJ&GHp(^)s&N!I7`ft8z<&2xtPp97WT4wFknJyEebM`(n>377_tdK__ zwp#Ts6^yf4kuY&Kei|Q)pT>XV+x`8?99ySvCbl*DQs16DgygVyNsb63`RqKBzqKd% znx7=?udr*osoTwYp6sbh^BJncSdr!&9@vn~4G z?5AwznahX8Nt5-N%W|LdnG5w5|I^xd8KmwMmyUCV+?keM@stnFmgux~)_Id^lTxRf zKe!IG%}+I!(rZepqMEj-0zxg=fn3$W?nVmVN?L=~`*;9>jJH0kZ zd#4B8Wwc`3t881gDwUeqEAnnWO0P4wP5r6Mv(2c=WSd@?e5>xrTQk4?{b9PNzJJ?C zfAu(BOZNqu?-#T>8%s}!u0@f4P_8m{E2@qAXoNK_*V$$#7HNVQ9obfUH6RMv~Fh)VAix>DPqP})0Rn^Q9HRTm6!cYAvjtY z-%LCkbN}!3`M>#@dE|2XY{rpZJo=chjAogm{y5vFu{C*a%+9M!o;&x_WUcuoht0L7 zJ{$9XUU>-mX6NcDUK1F?qv0W5B`|K5*P-#<C;fY3uYS4^lri9P)qOZ$p08<}ugaZ$mq69=zX%+_&Ko|9Dk0XWnl^qyHN` z`mg1F*xAOH*P-}0QyLs+u`kh4b4#MbF&w|8z(QH{aqSxv?6=nnbyc9JeOH)C0hWerGYOq^zq`g3&e1~{Q( z=iIv0)C{k`L7d8^hd}et6F=0)nGTE6V2)w)OKdLl-lBRqapp0sgQ-!T@d$B-cM7hW zVLb~u$3s#pk{el$)MP%%GM3$Z28r_&w#DmCz3~LKCcNbEMl8^3y9Oc;qx&Gi0q|{E)%g_wSxd&;q-Mj`(iDhp<+L{wE zA6Vyf^ET(hd4$qLuVnKjnBP@bAwP6~3it1wX^Qo?8QveD*$g*vDtE|jcKJ8VkuGzU zyJ4LAnPXo1Tv$V#X@XtW6wgSQGi!3<__$xoQ>}ZsJoOt?H?V__?|;n>;l@QsL+e-f zUYjS2Zx3bB6uFQ8nf*C9rX;R9-ggW6kF`XcN7F01ZmW1~<5yGi^k0<#ALbZRRnAvy z=u#sJvz^-aWc`LA>NlYkogQfzsuGGCyLp{DG>lOFiy5llxmUxS>XG71p_Q{mTXCwb zP|a*nIA*G|P_4*lE4O-DsA*)B%B=o#NB^qL1imLiz zN4Z;6H4&oREvgo1qID`@^P3$Oy5^9nVg-}Ax z6rvDHs)a%nLP@nsh(hqG=Y=Q)pW0!FLnx*8Gc8h6=gn$ZO7$;EdA3Nk`e1RxGU`31 zx$5e?4GqhxSpI^5sn_LHTSKVVI~rC{Uzg&%M!i1Ou)2DW4hB|J)QV0Q8YZfn`0xeM zyiPY8)>dEBOFW?Zoxg5aPi@7gV?bQ58>l@(RIeMTSB0ovH&jQ3s9rZzXM`y2N$R2y zr9DaA5TZOwR-Xw`o+YdAg*L;_M(Q`ASKwzO?6ov;DG9q26(&>>b}1@Gs6h+2ZmjYN zwP}&&ZLEq4QN3=W$_P=tZlbCPQN3=eY70@lZmN9$diyisWQtc9=yl$xu2$3(X)Da=_rIk8mh<$0T-eaPA7L(Lk4WVQ0xSr)pdQ@Fy zGWDztS>W$jNSE#a5xdefmO&q^@dOWn*{wg?>rh z)Ynyr=Bgpx$0R+eI^k#`qE4S}-#3Z2`l^vacX1$UUo}DKvy;(QKQ&$G*ONG%L(LaDJ9K|i zf3;lb>d?cW=Y+!AMOy>ZR-qW2zc@hc6)JHh+8U@{6{>P2N)1%Ugbs9zw*2ah(8+F5 z%C9a7ZB50eMHbC=+&eVs+Uky*e9SthPalGR3pTW#_5qNU5HA0qbB61-M@kU7FxX5N={c^`gj29_4>Wp zKv9O+m+>l(*ipHUSMfqr?&DP{A*#C*R7D}GyAxDRAqst>Y9K_RPgKneaR`%C8?hVy zX0GH(>ItCU>{B-q}5Y_qV>b%hNJ>rv}Rab-#_wa!} z7CO1QUY;51E1?UkORE{`XG5GXGu0ijqtwn+Za(jHN+_jvriu`v)Xq}5gebMMR6!w1 z?QB&-h*CRSl^3Ga&QaBcD7AA`Jt0c%T-8{JQae|*7NXS7QyqjTwewVWq3_y6Tk{nT z&f&VGaboOzl`2Fzu|SO$qMTTuCJ9kaEL1auC?^)Gg@!mM7O9nDM>(-bZ4jcISfp@h z0*6OAu~@w%L^-h-tM$f?a$<=(E<`!8M4c6)oLH(Z3sFuiRUaDS(3hz%#EyE?W$FhZ z>P?raKZGdHmMg2K36Jt@xymL)dA3636rwy^p$Z65zN}QmgeYHDs)EWLg{UrV zQF(=^E^Sdogs3jPph^o-U3x)P7Fxf%V)9m1OK8XLnxG^@oQ7@c5wW9~ZBuQ9C}!JK zXZt$DY`c0|h+?)~4HTl7?NGynC}umq59Q2|gj`ePJKsc7p}l_vDisVMcTnk;k%cCV?KLSMk{HML0STja|jwMxj(50U7$w$;Vp>KNnKv#s?f6zDi z4fT=GfDZ4$#1H>b*NP4s_u&#sH4iqME9HHl8>o5VmG$kjO63$ zIU&0HJfUt0{h4ci@>?ptuJProO{A_q-Y|RB&y4^1EuBP~uu2Xqu4c$@t{= z)EuFFPx?Shg~~45pL{{B6{@%Fb$xu{+gTDYaOx~L8s;u5>0-VnQU=;tq~ zQ$ja!aQh|oo)G2kWp!1Ea`&?OM2K?tef5nHrtO5=y!I zfyyC7x%+|2BSiNyS5>?a-OF56rG#iKzNRV)(O7&<)fA#!x~>`sQ7&Cq&4eg-Z>Tmx zl)E=nCm|}ao2rKpmDo)+z!2xshia(UQ7(O`#t2a^eW<1g(P;RQnk7V|;YVt*5RHZ( ztJOj@8h)%c2~qCeQagnxcWX^^OvfSA46t7ouGHO4Sge`NY?%o)FC^zE(|yCEbq%E9l|Bq7Sd@6}8p%E2GhLLth*AJi%#%E2Gi^Fow^KdK!l!L#h_k}12e^DP9;vBrKz7#vk!Q1LbAQ5m`?XSw! z(3BCS_E(i%h*JBTiWQ>N{-z!hqSXGbiVIO{e^=#%D7Am6YC@FSKU7^IO6{L2MTk=S zr)p)0V|_=p7dwje9o0>UVtq&T5u&pFOAQvHvi(bq5~8xbt0o9h+1^#p3Q>Okt>z0+ ze*Udi2vL42{hScxr_$Sm{tDfnto2@@sIb>TuNmT4Tl$#TQLHU}Mu=i<=}SUXTV48w z5Y<+f{#=MsGLFGMNw>Y_rFBCk#m zq7;SdDngW^Q2nqWPEnXn7CWjTVY;~x)sQgVPKatqxb7lEH6&d35~3QCP5XtYhGf$t zgs2u|*Xj0ks0G>eGeYZkpGuC@m__LeLKL%Tea*fOF^krp3elW4Mt>_rbJ`gFtI+!0SCVt;zlC<} z{ty(J%q7OLj@40ycy$XDIH`L3MM|TqXc0*~L2>rAnj#*wkK7viGV+$$CLIL#M}XXw*oDK1noQy^(8IqsICY z6T%yKq)~JIz0l>GpM|v2g}akW^BkzP?q&!%alTO--9Lk_HfpPfJjE`NFP}GhT=(c< zXho+V8+FiWPaB%oNu_kvD|#BDr$Rk+r(R6_RH&!!Aw;XFJ@o(~S}*UVhYHbpc`rRy zh*nX1>nTFCirQPx7NXVHK6+E`$(37LE&aPh;3XH-! zyFMaBPmKEOlS1^wsK0(!h(^%?`U4>vMF;3xLh+;AdZ7MVsQRch??C;F5UqRr^pY-FuLZ6ry$SK{~h4u07EygLNUHBYX0Le1^Ct2XqCoqc!S)t|3IZ8_@NI zC=&=D)Q)cNugm#^ql`>mf z{VC6;guZ=lJ}8^eZ|j$)%+Wc8qMut0Dj?K$*z+lKbupp7!?uFT3S~R**7I~#p(5wg zyz_J&q5AK-^?cn(sO7t9-ub$v(A1S~y+A)Mw0vcncY*FEw0`&Ql!dyt(2m^)K!b(8 zy?`}wJyJ+r#G1ICAQW@atrzR*LZvRIc^B*XhPY-e(JPo1sgvW6q%6@V2AkRw)#6Ob zGQBfkXx7?GDJyi3R6~b5UQb!6M=;G-?$e*9tk&^E$!@-Sy78|m>-0{cemC8XH|YMu zjNPl}b2Q$hdk;6X@K}MyTlH@vh~}#DxvDjOQ74Qvc2};{YP?&|7-i_>g$9lH=|WK63H3XM)jQo;DE$~#?{rV0t=F)6rw0n{zlPO2 zJzVHYC#>G-aYDB`Vf9W=6PkHF+In5j5n6UVO1-X^3i;YcTSxR-p=#};)DgW!=+M$= z>ka*)(CMX7>J5ER=s=(SNpI>mY`Z>(L8pa!1){B^`aPi$fhcuUUlV!_t@xP!MCd)V z;$!+-p{FqB9M`vn0vL0S>%WC+E{L{HXm1*o(Uj0;3!>Bs9VO(BiMHO-d4zJuM5(uQ zVMAOaPwG-)N2A(FT~UZewUfH05Y3EF=>|eHGd`u82~jV6TDK9RUih@`Bt*5~ZQaAR zLoIk)4-lf-b4CvpqS|vtj}=OK39E&Aicrg!uv(~R3pHsPpL|v?7V6&A2U;UUxqD7; z5~AEar*{ca?w;2#3sLT#*GGh?*1fAw3Q?_lSHCMnweCIrfe_WY_w+3xs&yCi*Fse5 zF6du`sMcN7e+f~oyQn>5Oc_zFyQCw9sMcN5xrL~8T-JqzsC8V{J|U`E@9PRer%|)s z*NH+@Td(N)LR4F?=%zwcTR+f`+Sj4BexRQaqS|v+KP5!9=c?{6M78dk9wJ1w?wTGW zL^bQWo-9N)>$;vLM02nkdXW&#!EWf)LNo`vsW%GI9PFmvDKvlNBaJ`Q`-L`)d=&J$ zA+D_->9@r0$hr=VKho!fuC03tbVcaWst%1m)*lJoSoIX>D?{wdE&Y?&d2S4Bd`tf+ zROrSKkbA5tqu9`ajX%-Zh4P0E0p&8pzI>|VnP`?Uy78xaN;+LPR~>Dd%lcd|V4^w0 zJ7PyG@?Y!PV`hp?O!Q1+p*d=UR(D=6gMCjpdt3clheb;|~ z(y#iq(C_^ZgZ?(ezWk=W6HI<~z|8SCokOS}W{$t7%Th{ABEuY&BI_Yrfvd)Vg<)_QKB1HM=vOX4~{B&Di2~mE!t)GR``@YsV z#JVFit?!$lkcp;@D!g;5vB!!Ks`1V_P@GV<$1XSaS_Oq-AG;1JDYS9kCyhg`@=Rs@T!k zh>r>jQA^EkO%f`9AwD_6nj!S?1s`akP@#SMlOnB^LY4O&20d?xL&#xmx9t!@4(lZ$ z3L%GeNNDPa_~a<-xX`8%KG0dACVs5fS(k-6`LSMSeQ1b7h_Sv9J4!>0^@9+F5M%uz z^wqHVijkR(Lb;1g3tW`kBkI-{j#e~ukdM>N1Ar3vxsw#FA zdYtvJ5QQFRH4^HGnLuu&c2oAmHYslXEL84fktQXq^;602|6}UD<8(M0IDkL) znc0~K(aS}Mngr1!h?W!WdUHjM-ih8qf)G7=kM6WXbWRDU*AShkN%SD{1`&jJemlRA z=fCe~_Sv1C*`1xbJHa=;!~3D{IVY*$W937OI{pzhEMG#k&|*$7wRvKl(BjT5Pm_EN zeyE%AeJ5n3-SWw-x*1D2+bC})v-8}OeR7p@#3*bzOd~f-Id4#Sa+P*+Qh0KecHX9H zn5&?S^DY%;{#V8+P0ce;wX#k{YPor;m34xtJ6W?j<(v@eudG?jSJPsta;C)mz-d55 zm=f~?rv-&ls=U*ILMc_==|R04o7MTy=}%QKA8!B98A_q#tKf{GQ1Vr9rcn7z{j8!h zn<{JSXBC~rQ~`7Dm7MRW^5)ztIh!cdX+LsyP^i;>lSEM~7B-a!}9aCmH3V z0t=!;KX%@s@-Ij-Dn+4w9qd$~P`?g#KBk^^%j(o{>QdQESPdtJ`l^3c=M$$sHM75& zrS3GR@|yZ}O{YCo+0?IVI^C%~rhZ+^`J6gy>escLA=FD#zpm|!rm{3Kv(%l*)Dly_ zuH($2wwn5N9cK~swlcHSot0F1WoD^68>ymhRwu;SPE~cY_(Gih)C^UicBpfVTA+#= zoug)%dU=?0m0E7<N#IgXp_V{qbRgV z;+;tp+9V0iw-j2?2~IM#&(vlTofXt6Q=3V2Hc+SqB{|N`g%)Pm|e zXRW-Fwt;hnVUHGf32orqq}(O_j2=*ze<T6en{tQ=%o9`%Oh_ujhuj$uGDB~ zXd@>p71C&wQJ(*7+1M$>FxOMg6z<|CP8AAwaTBK&wbj&3KXoFgeWq^u zsgppVL}}_Yp-`eUb=pu7dsAyQb3UVz_NE#2p^llb=FULsya{XWjG(?TW2P;f@zgXk zX4=A;LCrT|EuHz)Y7^GdNuf|;wsO`|C^1_(TdAw&f32O})Su>mt(_xO?Zv@CZJbk7 zgT=*tZJbM#iZCM;&UGqpgc+%D?o(~M2M4ut9#eh07x%SuUQ#HD+B<5jy{k|XwRf^m z! zH8LX=PCS*ahglKeG^VokFe?I_*3=WzL*B*d{O|w1G9wjEZ|agMX}daKQooyX=;{oo z&YAypbH-7(Oq-;eGo3=o(A}9wp=9XpEThJqF=G?X8fxYlGdAIDp(al?V-wCUYQa=9 zHsKtm4w~`5Ud~DCoEiV?Me zeOL8$GFj<9dRAy(Cl@tTFE+~mpDp`2?=cL=>*tiFaJ+s_B?`y;+zF;|yw9CbD=*gl zomht9c>SFQ6pq*5Y4M*e2RI!VhUfGEr#pq`^Z=(nRjH8~w{V6~A?7Oh!Wlzt?P*3T zoXOOWJfn4J&8IS`n6MZ62k1*#4x9wCtG(L?sTP4cN^~XqfmDn;S8owcN^i1qR{Iw z(wRu1*I}gdErni(QO-gNy$++C6_h?bKi6nyJ(c_P)zHz-_tb+^^K*@H_EOJJT@4-M z9Hs8fzZv?CbB200|DMqmDzM;Y=ve0_m4CrKqX*Q}Y}lbd!-1!*r3$ z>B7c40jlg}Wt5G=b7g{)hr)AZf>W5nb7i9QK85GXM5nx!mq(MFstiM~<|L;UgJQ=Nen_A=EOK~*qe)12{C z9TPUqnPKG}VY)M)Vc5%bXBmaPOn25&*vkxO3x&PRaCTdHdztARX4nq%e4pu@q<%2Z z_nFQ`s;Ak@x6Uv}4 zTk3pIRlnRbY?*V8LQ5*e37Ubu*t>DLQ-H$VxZEj5;ci^vl%;Stu5c<-Xi2SfKB3T( zTIqySTeF$@>`p!EWHvLO-Dyl=#CDa_io%HPDyK7ryLh$Ji^5&J+WC?~O?8bkj6zLy zjWdplG+}FxUTS zrrax|!nQd1sr*;Q8x^H;ot+l8)hR=jI6K?uBdTJ{HJu&K*VHU?|D`$KP%F*-m*z~R zwwth>&K&Bj3ESx`vGQWJ%UQ)R^xN!mHc_}fcR6Vk>Yuxv0~G3?yPe|{o)&wY^Aw&I zdz@dWt(^+g-s{|<4s|MO^e1)IlzjV~XVf32iv0p}eGcg_K)6or@_bShAY*+J)HEAI%0oVpCdxgT<(DIDRDQ=dYw-(ja2ggjylO!-d>J5 zD?Fh*+ZT4sIWh~Wg!1giu;Who+0X=E;`%FLC!NVuA$=?Clyj5%7clOM)+7VYb# zGoETy|E=&}oIwk0*z+7E!*4mOs1m)Zgx_`cyi!>BA5MXVcFP|1n}k1h%1}Gw+l2q+ z%%X<&>>mEinYGAnIdIt*;V+#3QBAvz2v6r1i)~onZV?&%{*KiDI*t#Q{+_QiBi!|; zF11^(+qWoO`_C~m)oX8fM*pDYHcWLp5&nk%0QGC@ z^WmBN*;XKIm>#?6m+&n9JXGh!P$4TX|FZZaJWcgA&iN~NvZpIvb{T;TP>MOrUM&$HA@nlzRyy-W~lgw|J#x?(@KR}`Nna7`% zLhCb+KM#f0=Ue_l6k4Be`QN9|`poP9fI{mtufHmVyFZ`57KOV%pFfg9>+@}Y0)^J+ z+x|}}v_A9u+fZnI=J$7@(E2Rk??a*WS-?MtLhG}je*}frXF>l23a!sV{uvZnpN0Gj zD6~Ec`%@^iJ`4NTQD}V@@o%Nj`Yht#L!tHgj{gXS*5^C^(-c~t@A@xMXnnrxzd@l) ze$RiOLYe%Y|1S!y&!Ya96k4A}{d%>{F|qAuDri)NO4lPOqJ+ODm90lXqX_EB;Gl?-{`i0Y_fMQy)Q<&LU$)B6T%*IOo0@VGzrnlE$l#-@b^CN#* zYWP~y+w1>`n!eWb_WD1u^3JG=Ka62*yH|*);*X>HcCTvGhzf2|&Z+8eNkz9XZ}0MV zqFy$y8BxvOlgiK{)aVNiO?(v|A28emSC{KV%a$ z)mI_vw}?jmL7pb~{z~~XqKW?&mAg~jjGy|$Q?aF;huhRY#>)3(LAuE1{`k#an6K>B zjFBz<5nHU@T9_`fjX&>Jt3{1+N4E1n@HE(W<6ObW4*sg!5H{FX_FRd`j{c=o>vJDO zcJe>>G|ZQKN#)4S{z}{JUMA=|kzM=`)2t5YhLPR<@jI=2liNo2^!MFmRaEzg?CXEN z8=ByIoPAv6P=BR8Hte04>5*Ui%kQ^Zv1()FB){)~)$fybMo#gIgV11K>GMY-r~7Mp z8s;05d^U21zy2%z5jn?y>yZ85uIM+S7WuCpw*Py4E+}fLzrYczn&%2fE%W#EG|czS zg5psr{&_#x|7|<_anyJI=|}CBVdul5*7(m+-=0f|TI(-y%x<|as&UjhzxdHAYGs?K z4gMm>t*-XzAGO(^@q|^I`2JDb{LiU<$-|;{_^+L`Vd)P|jN0YTc-kr~a!%Aff6N(Z zg0KDLB~b_c?K}X3gaHR#;7sKfr})WLJRqmKBip2h#n`uSr=qkizOIA`~= zXu;X2qyC8VR!=8hk2>ZbL19k!kN(Y`hUrI(e~&uu-$}Vk9vdB^(4Tz5e}Y1P@(KS1 zEAKu!>HqbWO4K~*FY*(PH_W&1%8RJe{?rRr3$MHxea%1UqSfsyZEN24Kc|{pc{lp5 zf7@jnHtKA-=>Pc#U9swZwr$PF{^!)#=-}wT{b^TiSg+`|HUIHf{n;wHPgJx|n1y!c zH_SJ@PurS844{&e8%HZK?^hd^E~Z0t22uZ-)!s=xqce-V*R9q}GVk3I(>zV^6{!DJ zbS|-l>Tq#XbdWgZX|OL_v+2=qilH~~KXZNhYX=n&%cx3nYji=e$&;g~g8)>hp!gc?xxuBI0KXb(A9F4mGLYuIP8f|ENX%4j4VN@^a-};lJsfkvGrr zU6Fx8Z_K+Q2Zd+Odm=A|XU==#9SYBfqM{^)=R;9Zfx`2ln5a(S`A|&MrSPmOE}|(s ztBQ;I6rNS@i)Iv_Rqu=T6rNQjL^lf0suJRJ3a!YJ;wuWR$dY0-h1y{$F^NL$u#}iZ zVFahNNTx7?Q(CN~FoIJ?Y@jfLQ$}p3FjK9p*!ORk84)Whj#+uBTTYy17}{#(#1#s8 zTTa}fkhdR*2Nd%51MxS7ye%)%-LiRvye%)%TX{$LP-J7+qB-W-FY-_;=a^@|DEyx- zD~R|1vt zvGU?sS@dBTdXOuNffRa>D~k~ndXTG#@f3QHtB4s?ee=JnVm{T){I9A=q0nPpO{}HR zV_i*bwepT$UF>EUj$U0Hrf~G?;uM9We=IIiIQqxpx|O$=U~!LO$jxB!h(c}#ix(7f zvxabQ+Z;n~))1K~^gVqda#QGg`a~3<>TEd{T~idL;d25R>>e>7|(X~ZADzG3eZynKy%D>=FbRE%(db&I?rD=(G8#9W5uI{Pp>Oe~>FoPBDv`afHS zi&TaoJ;OyBh4c&;2PyRBMTp}R`tl;gPZZKKQv5<8JtM_$6#5RM#Ge%U4x_|#3Vnys zLfo-=gucUQ@dkxHz!;H}LLXp^c$-2WV61qTLLXqPC{0ytnU*(BRHSORyb~QKf~l`f zSUnL!O*UcmL@agLgvE;n)Lj!6FIrG`Xfhuak5=0Lw!}_$miK0IhwEj+Xq8MuB z0*+^WU558GMfFLE$fR#3`0KD7b_{`Lw&K4!gbw1Y^QKtHxTPo zj6yy%6z8bkijm6(owLUqF%%X7fLoL?zH4*8p zyw#OWL^cZXY$D#Gknf+0!W8oTQ&ED#IW!gJDV#%7QH{bgu9>J!;ThLVL{TV(n~OvW zrEqi6lu9vksalA()LJuNs)guEg)WK?Z7KRvtrsO34W=+VrIi>-VRlL@F_FUTl-6P< zh1n^s#X@S8nGe=RET{IG`Cx6tda8@*lWQxsQKL(S$uk9%4L&lJ1M%JlO05tk^80Q42tDU1O0756EO0Q3`&DU1O0 z6ECS&3*U0XvwW^%a(*JBZM6C9NzUFE%L&U@TNG0?&*NypF zH2xi$;M=}1F=n_pK%viggwPKVW^3>xMHUKo$4K!eh5FejQIJCYY?LT&<;8QfDEFT& zM~lk;*>bd~N#R}@Bf=@%D`P}Fg}HFwh{hD=!hIuJQ@B^gip~`7m9e5Xg*x9j@g;>i z-#9UxLY;5C7)PPbH(pGqP@|q8=256oPY}zfa+%FovRFga$!x}w#TE+p-z2e%!u>Z% z9HwypO%^99+<%kBMJq3rrig0{LrrdqxJ#iXH$^<6P?MV~{-IEln=0HtY#yN=IZb4u zP>-A@a#N^BP8azp)FY>hqE_C~XNWQk!<@?*q7sEUmor2S3OPMfgi^@qnIewby`*W( zx1u3+Vo7VGmR8;oW{HjrLr%{UJt*Y#EHQw>{Wn_-rEvev7T-{~|K^A(6z;z{Vh)A- zZ?0HO;r^Q|R#CYB=7~)d?!S2=jl%smUmT!t|IHW2DO_0##CZx=)&lVhg)3{JxI^K} zS}6XcaAhTnXB4iiWFh`%^9WbSB9W286|zX=q;Q2S7WpV#A&bSkR$dA&5v3SbsZpnx zC87cq(x|)9$5iob<{fULE>$y|d54>bq43OEChAjo<}4G?YNotS5#6o4 zqc0bqGYr?~a`6>~>vOpnP2u`nAtq6{K39lY6t2&eBALSVxl*j8aD9F!Hc+@ezZ2W3 z@fppSx7bH5$Y{pA#W4!AZ&r)56lUM77FVsjSg#ScJfV-XU(6bzA0i*7`mXouG|oVB_&I8^u+s_>yTcn?%ebY-!d5onH`>D$Y@zLzl&D7XHTwvptZTMJ+4yCV=l^ zwuF!_%uaFZZ!4_*-z%0r^<>9I#cIkM7ZsZ+ zto=VAc2ZdTe?T0fP!BmMPEe?a926HQv@{NhUn#US4vD)|M^o=PEFMyyo09#o_=oD3 zU8FlA@>ipd|Jm|{=)th&pWlx;A^KC@ zKYwU6^gmmk6k`~M6g(*=Q%J#+Vm5^oJS7%UNWoL$J1Z|{r^QBwVK1k}b_#nrE%sB` z%NcQu!d}jZb5`D7&Wfv^@SJ`Yb5;y}j+Do9TEw0ccRktpVCO}Ne_mfNKZ)`bu9u%g zH41gw3!*lKr}hOAMWIf6Q6y5R(_R!!Da_@+B-&D#%YR99r7)NOvgk`;F8^gQn8IBC zD`F&tx%^keL<-N9t70aF=gL*FkiuO4pT%+tbNPQ3>nV&4{vx(f7#sXW?4>Z5|5xz? zg}MB{iZc}E@?R5|Da_@+CT>zF2d|6YDU^fP#S;o8(G6ifU_wCNWWqdN$v@NlZjifd#=qzlj7Y z|AOMa-^8aBdIax^HWYdU?}{!I#xU=RJ`~0L<)tu{13!B3Um4Y5L+qC<^MzMp_Z5@?El0O3Um4YCr(qC%m1giL}4!f zpW+6Ex%>~seF}5=ABw*y%;kS1UQ(FL|48VUHpeiR|FOtIVJ`n;@g{}2{C|mp6z1~( zC5lt%9eET))R!jAFCSCk zCQQf|RAUn+r1GURnY7PWy^VPzm@MhZ_JBzFp_TXild>9x@=QwejRNm(M0w`QC<^77 zE0ZXcyGk~tQ0^+(jzTYvmR%|I;%M2A!m8SU986(VZ9tBqu&Oq_oJe6+ZF>1Fg;li~ z@h>bNzD4Pbs8QF4=}cD&>-0D5O$u*@r?Z z<(7l2yi^L3BN&EM3XEKGh_LNcXn{g0eP+ z*>8npB!$^;g=8XyvZt{8ltS54ShltDj!;B)`8UiQp@{55;Rr?KAPQ?<-;pCIta*J$ zPN1;n^<6oG!kX82iNm5;gQg|mxbs0zDog^R2h7{gO^0915;hiMGvLl6ek_5}16nZjh z$N?03GHS@LDfDD~BEO-~lkth1N}(sCrkq2eC!?lZLZNP2ORl0&H?1X8DU9^imT45; zNm5%Lq|nPzM;@op%TY)EM4^|XuKeZS|CwHny7D&)b?6ZJCxzC0hPhr+oj9f-x)>VvL z>&eC?R&KFjUR+}3E^di?B~~7yaIeJ5lN9ciIC+7>y%Hy{QMgy?$-5Npm3s0Kg?dlC z{D(rlCtkX)P5C-o>cl3&qHc{skS3!ltOpV;jnrRN2czjXF`t_eQcOg?w)$ zzo3xsjpf%A^1ZPfYvrYG6FHS(C>ff_ITT8UCUOZiCTDQar*aiFJ!f&>r!v*b+e=fK z#xU%qsXRboFHPlf3VUfL&r{e-Gx-aZFGp}tb9sja1GYso`+Q=jd>w4PAX8+l;t!&3IT)S;$R|?l|TiK7owcAb(rf}`HlcOl~L9~|> zDfB_Km)}wt$?hN*QW(kZAXiZ6N9icnQ|L$OD8Hw0&3BS}DO~fNwca_;F)Qr2yJQQli-DF`3 zHRJB`eF`<>?y@|EYrco9O5vLCAnS5CT=P9;B9&qN=-6KJQz~fv1f#Z; zdu4iTZ`p;)e`StQUnIDO35QTcdKv|GN**ZuTqfoXElI19@ zf*C9;Q&}QSvux&60ga52=PnKgc**KBrn9-H>6l zl<93Ab?vz$c8q+3`n=~pqg)i8+TX~xDLl2mk?&D>YLAtrDLl2u%1RWT+T&y}g{Ss7 z8A{=)JzmCAcxsQA4Jlk96J!etSI7j}k-BF_O(x17)JrpJGEokoFcLFK4y7;>Gf93! zq1R}#oI;`3XtJE+$<`94$SpR^OY13e7q>)iPLYQwf{$`Ms5b154Z+r$V?Qj!5K2QCmYY1vYHL^;yF{+=9Y-( zOc_Zbo-<`4g?N4|Kcx`QZ)IDmw|VpGEZKz`Xx_X!OZKJqXEkGkau9XO^gPd&BPqOj ze2$zz;mzZ7(l$qE!kX%@+k zDU8xAmUStN(kzxS6h>*5$odpUX_m<56h>*5%JvjSX_m_F6w+mx{G39%ER#bhq)Un% zO(9)U|BH?&;MsKZSdGwJb_u+;@#ELt)%^jr@oT zHE*L|D{D}#&D-eL$}kGgs&z7sLQnoW*@(ikYQ1bp;aRm_cA_x*W`pcWVfM`i`2~g9 zHyh>G6lULSlw&E(zS$(FQkZ?SNzSD(`zBQ`p)mUh~+|2E5=6!LwG zJV+tmx5yI|@_noPi9)__mA_K079Ne=CV!)PEIeiO(8{|CzL(D#hS@jYOOeUu5oX_f zFW;ar`oCS~q%iuwUA|3W^nZtZm%`}(4q2K)n>kHZq|jzglfe|)%sXWWg*Nj}8B3wf zyh}Eq&}QBxTTqyNvs-qcF#Be=>|y1d(H_~KVR&2g9yx@<+oJc#G1SN`skQdX$<(wg zX-2cDqT#8v_Q^%mhv8{P-%*QA-Fv^>NTr&(_kOv9$~G;v)&aSnDmpFA=trtiCo>8x z&r#hvnNeW*Gu0vCLhK=Vo9dfz-ROT*j0rm|pHfXs*kS3=o|-%Lh7?(C%IglPwQkCcRIUzbMmZ_8dTz;l6k0vEE`t->?ufCM=s%I@F8_%MR4f z>r!jolijJu>(Y$+Q&o?q*19i;P~m2r>%JUAEjp80>vuVsT7M?ZXg1X;){F_uMbsCu zW=vRqNBw-nj0ww))c=l{F=4rb8hX@>3CsP|{G(<}SpG=;Ztk%^yDQxsWRpeD_uFyjC&%h=k{{UyFQ=EI#%9z z<1-mW;hugblPJu$c`ln$m~Zo3wxjTE>VITc3g4#wNA{yo8+{=MQ>cx;kfSJk&+Vn0 zNa1^KFXgvXATeK@&s|7mODt@(g2I=X(z)v?e3>bo`#rU#S@Af>-Af&6R@&$&g>O^) z-7^%vP3?EDQ1~W~aBouhCXa9*P~KOY+$WUx)h0JxkiF(nPPlG>LOJ2O*(j6~%FRQe zoKS9I3g4#I?)wzJO|9MX)aXnf#s%D})XYpD8`Y*ZEDeiG??zJFm&O_;Qvc`%aT(lC zsVsqJMs2NpUp8+Sm(lI@O1bii(s)Z%Ciggn zw^U_vf1>b~s?6>$6y8#m+5OGR+e;SrPln;yk;Q#R;X2FWiZ^X~;`xx(%}C+-kk!pe z;klB{%}3$6lFfaW!k4kLyQL_689TdM(aJk|4)B z&gnL%&}Po%wx`f$&gFKe;!Rj?_j9VN3Crycq0pWVaz|5WPY1b^Db&5+bZ1ehd%x)} zqR^hsS1yzVg@=AC<9_bj(W%I9^jP)PZ_?kx(b zo6mhfA$9Y)e^bbnx7~DkY#t$3-geVdcrxdAvr%|5=Xc+tK8Z48v~FRlUX&T5bxTmV za|*iUDcm^)-D(u>oI-AG3U^K+H_DSezrt=$8|Ix~VRrzx#Q7C=hf+Ad!tOT|&Y_4q zg~B-$apzDt_jlaI6wdt}cNK*z>s@yfg)8e_H;qDD?LGGZg|^yz?r{p|SJXXE;rxoa zzfd^8V(uLZ=U2@A(~~{F;%?@*UYF3tT~m;o-#%HmUryg^?QWRUSK?Jz{zuwaue5A-PG31U$lK>s-w&x@#+7#$P|Z${jH~3X@if>=&noU_PdC!xcval36pmNT z{hq?{K6ZCdI9?5RCxzqHba#825Y&Cn#JJk-F;AG|GS%n-x5N?ZxH$X`I(a_!O$?mh!tC)2S*&o-)-T5l)$GFDsRV&}%$g^=x+-8NnBlzCxcs8z;TfK-BVNdAgAf$Lr%hD2lMbzC3I5 z*6ZswD`x+fVRhkp{oEqOt@bo1Td%+S(8|ldFWk)Ud;8S2O|9z-H#e0OXV!kW1*q)t zrgzybN)?GWy~}P{YP+eC4Rk-E4u+WCW%mj0cxl_jXK>x zr2E>POFeBcKz;2lwes$cVeV>%JqRo340BVdmtpCA!`z)zrv_P_;qF1|iw5T1gzgCn zu^!?6L?PBA++Qi2?MU}G3THdgeMli@qul2dVm8W^CA?hmb(!S)M!N;Aym*dwOL)S3 z?<)01yR)b=Z2KT|EBuBZ``Kdc(+6;o9|asayk>;Ri1FQmZ&+|ePCtgba$^e z)h$xS9&c0gf%Rs(BdA%82iBYGo+@j@CN>^ZFWHUwz^X=*ne|fK5#{X>@UDSX?q*N+ zopGz(ofOLJ)$Sn*HO@8e2?{mNHSPrp<@H+kR|@6zTK6u6e$#dCLkj(->)d}R^qa1C z<%eF(H2O`~yP2pj%`l>GcL2jGu3l7ct2>mc zxq6k+H~-mkn>&SJ?$j;ywz;#ZtW(pB7XN3<@7?bhhFE{^Zln-0Bo!w%4sgA!d8sXe;mN``r4TFcW=$ zy?t)ciijCzqMxXD&>io|&O|@r{^;pOx?;zEsrQ4sw$kf!IO=ZmWW$cSp&z{tJND{{ zfd3tH=A(>QF+)_*3rxs8b2qjGj^b!$i8%uD`MuPyKb+0Cn2UNDXKua-DH=P$OI2 z$$7@jXXT~YS+}Ssd$wm?Ulr_Sg0Ju9H{;K_4LsSW;d!@}C%ff&cU#rh>GG4i$CC~F z$=z1X?!|ZU&G-v$&g!qXyyzD2G}X7h?K|-o-6vH4h?4P_-2uV&e|WzC>@M>(OgA#E z@?YIGRD07Z|JB_>)$3<^N8DXh^M0mx#63)5b4Wl}nvhJ>1k9y;rnKAD+qVk)k(>=Ep zm3Ok~9dSER?@uaNrBE+;;7+4XnR>w=?p*4I zsTcg=F17NmrT@9BJx%p}wY+@%|J)UyAeBr`*RLM`$n8|is$ytJ{9o=hPm_FeFV>6y z+wD=?rYCaxsoS4IPCs>rQpo9N?idO={mh+W5e(x@f4>K27sf~)?Zkhe)#z6;ZF@EOm73&u}QzmjRAt5vVmG*3>o z*-GPz%&m4(xFU0_LlmyaAa#Pm6&a*1Sb4F2Q~ml%rsb{fzEaaXdDP=qa(#K#i&rvj zW~J(SX=e7)G*3R2^_5&-e)Z-nnU=6B^h!Jm4==id#XSh|3CT(k0 zRPhm>ynepQsxgIHS7p_jLanQc>P(^5RYmot@D#18zNGLJt*VAoXkAxR<0!PQtEuS} zM%AmUc@##~tE*)cYEK`lH56)3AFC}Cp7z0N7lo&NusUqzM3R zT4;3bKU;pH?lSB_XiEGi>LK+abhXhx)Uqup@imp1uQ6Uu4vyO_Tke+o_0}AO`SGAy! zo*}9Oh4c(jJ*>PVgsT1w!x2K&5DG^KRbwa|AxurCaD*^5o5B&o)glT<2v^@(c}Iv) zsh&_LIuakDLZXmns1u!uk5a2WnfHd8qsORJ3P+DoJE`TSbc+C#i|q3kG;$s zPxTXZv6q?SseYx*M<)K|ftY%fQBwcg6tEBp2M`sywf)b~kz zL)ADAahc%Ty6#DQBc+q9J}_#mj?}k0x&BFf6BW|XDth&k_)pcIMpl0=eG=bP1vjxO z{N0oIW@_7~R*zObiEpkdHM45n;YoZ8rMo~=eIIYt2`yC+Rds9TgjT8%HEc;xLL1eJ z3j3@`LRr5NHol2na?ezAl359Q`w^wZ_x3`(S zs6M0K>TPB(sy@{E#E%j>s)5wb#E*?eQ0Q0eq{dU|SL~!_P~*~{&emDYrxv8Ilh9eE zP`{eKwa?UA>Y?dd`%G=6E}AtXUDR&su30nEMIE8)n@Q+h)hVi5#{sIVxn4(%t4?vI*;{VyLoPC&u+uD?Hh&uBS?6SRlHA*>W$H{ZjLUUg`vu zVPpG*-s%QbaAVhmKI$*3&V@b+ebswC?D4jp`!b=w3ZeQo%jtZfCR5K=eNk(m(mm~# z0~-%b7^KR3vT^xJjq$Y4SGdQhgs)VmUf6PiZ{Ea-2}9Kw>e|t1316!my=_>RpO!@o zQ@Rgi(`C5IV&#<~!&MN4GGw?aNa5KrLKUO%>=>cSQ5Z`esVY+#OCG6eQfo2<2aQtU z)Q$|reWO&or#-&fp{5^273ljqE~8aZD~#Ihqk0``tjH*E)E@M;}g>vv4 z6-VJ5zEO=R#B;1_Ng+iLgD--s#pr=H%T?1aDJ0i3kt`ZtU6FQ z-elF&lRe%PRiyvx<4sW|th~IPqRLZ9mno_mg)#l9sy2l&{i!O7!fd8#Dv`o$rfI4v zg*6q^Ra**cDyFNh6wYCW>Pz7qW~jjw=G)9vBme!MnQt>wO{6g2=36zB!hD-=)j|sM zZDy(E6z1E^QtK(qx0$WBQJ8NtTkWMV-)4^bfx>*7IqD3Bbv<*{WeRJn=c=0&#?j}g z-zkiv&r?sR9W%@4sI#q7NjJg|D9jfkzxkfRbYN^T) zy;E(Xkk-4@4hm_#OC6waUGG*uQn;>ntBam&KI~D`zkZz$d(=EDFCX@(r4;gEk6J?^ zANH!v6!KxO+C|}b`_v%{$J?h)d9ugbuZ9kLeZ2i@jFm=73s6 zVNJ{d^&N#-vIo^h3ita#wSz)D52^hW;(18@Na30|tjt%jW{^9m&EqyvU;i$?$RXd$xl!L;$f@3N#g>?nT)H_s$^)u@Js7g{n z>*pF(pcb~AQTMp2PNlY-YZT(irsoM2G6F}R8Tv6jFq~KLGjY0}uRr4t1%Fk*kg|`CrvZ3aNWdU7(P<*VHu%se4`BrI5PU)gub2dqe$0A$4yk zca+UBr0z|Xi9+h$RJkc!$+uK~3Rm(iRn(JB`P-`J=+|j|TMe-C()zXkRn5k{KHgo`&dO`6-Bn#FwAJpaeiYhO_tant z?W%if6xH91kKI=jsS##;?7sSzD!jLN-0x~3Reo=2qZJfdJrC4+3ay?8>U*kscGJJB z_EM4AP5-VsN;NrIJnnz$4AuH%X`?IDAEp-cr@BeKFtwmR)dQ+tXz{p*>Iu~>w6syW zZ*2adE&50WD6~Z%scaO|^Rdc9Aw3_f!c_f^$q9d{_o;3jQ;f<}e;!Rvc%rIOnU19x zg?QTI8)e#!f2&p$+7ExLyW5X1$F*pazZ-Yfx3M%#i$2$|8!Qz(fujknJhj> z52do5Nlx(VF;uZLDMr&h*;osGj#|>j^$A^Ix;=+W7v4xTuX^-k+oDqYXLx6%n`aFU zk~#zRS=Qn{sdG?A51aR~=)BbJ!{&V~`W-5$z3JuGC8=`lO)tN$Kq>P-t*cY{%>T5m zOWkj0diixUKz)wMj?^vtJ+&cX2p`!+W!m6%UAn`^bVYo)}u zb+dU^r%%^RET~segC^BXEUdSCviHh6dY_fK-@_B%(MKtU=g;Q;0r#} zImHtLj(wI2ttV(((g)d}P(uXK~S?eQxg2I=zKGGLG*)yuFD=mGUo0WC2mDfvES%*;Q zrK+rBDb#7J=mr$(Syglk3h}I}J5Y#cRo&B*Jzg~}mc2e+HJ#DQ>piHZb5N+aR@3r&L<5Hqr+D^R1%NX5rG*poe8u-=wpb0t&#FB5}x=H;)C{)sMRrBU{L zqKi`~dp^-0P&j%`U4_EYYwB8*_ns3SL3!^v(Fqj#mul-K6#AEH>oyd=lU7H6M&UbY zb#xyJeKU3SKni^`b@d3UhUu#e(c`Hw(^nayXHe*G4b}50^tXoU6bgN+VR|iv+ziuO zDSYoNT<@mvy|ZwAgj$vq92B8XQQMM=`y%uu3g0`6)YmC|?<`W^r_g?n(vK;$-=p+P z3ajs7N`J4@2zD17fMNl&Nx=uwIF^*m~*9&faaI%uBZ4fGo7oOy;f&|4^c3$3BvMd4d$ z4fSCP-$HAoPg3|6S|fdtLdnorU!zbmG}iYhlnhPuBMK!$6aC`f|Ai+fe5&1*Hjgfc zrx<1NWbdk`y4GrYSKYfXEwQOS=gF3J&Gc0(uP39KzD1!YqnZAL!d=x||4repYOb9% z_IQYO3!R=qtXt^p6k^>{zeOR|Ep-u3HfF7K)wSMUyr)wuUCYXA8@AFB6w0htI)Or5 zTI(hh;?i2Tp>XH4(VtPcbK2-W6x!Nt^*{<`R$D!S!a20l<0+g&J3WKKIkeaFDV#%l zokIO-YIz;>TFOmHG1}(Io?k~jdHw72>!@d0>5G}o8%lIC^)Rz}Ly2BV;ru%34HV9= zlTPzw_t{w|Z+N}W&U%HF*TdRbucy$n*I9p09ZFc3_?g~Iol00~^rI)c&o27Nrq}!I zqEC6UqgP$@Z5yWhn^~JE`7Yyzf(X)fp(vLhPoqQ<#O=P3NUh z@9D0KP^kBG*JV7}nDx;0H@}Wq58cd4qs87sx1-Qv@1c8ovj6L;BeuN$Ur!xx<)uG{vN80P-4b*w9^r6ki5(nxc)RoPr zjY?7vH(yK~q(7v@mS2pjQ@9%k>pB$f#=$z8Div8g?kk-{RgEld)QrN~&LO%Tg|(eS zbTc=_?f0eU8$%D2!K))(|3b=xh|$eSV|gqOk6BtS(Gp-RD?c;@>b+>l&xaQ&{&oPFJI_ z?sL4ZO<~>VcpXJy-RA_INMYUQ1l^Rvy3dKaEw$dP`<$q|QdsvnN%y6&?sJkJOkv&U zWId9?y3fgaB87FIQ}j#<>prLGWKZ_movO?1Lb?q0tvq-;ajJf}+v-8|?Zj#N?p`Z@ z=i7ztzrzFB0eKya%8OzGI*1r1^R%g<1H?I+f~>xo*ZqI_RL? za&Gs!85ipqs?fZfa*19~?L3(^X{mnh$v#t;>CA`lzhN4yGMDMx6jo&}(*-D$HYvI& zg;FC$m!(i*F4rGXC^47oPbjR)T%p6LE2hL;q3coT-3uv&GEo=ai1>KeV2!fMsE zdNqaBs%!OTD$T@Yo!&_uHE~&|4^il?N2F!I4(J)3m!QJb5n1#Qx&JlPye)iffpBrp!v!PyP)v zHG$3Acg*H3Y6+WlfI=-{i_S`+mas+Vq0oNVstZwQKWx?SQ(ewvb++jbsQzcN__pb) z)NcdKngd;ndNIJPIna^RCsD}>+jRm}FDk{TnJ0U;JM_FCy?A;xs~vi&m0oS0;XCwd zD$P8@cj(O&uE;dKlfo65rjK~C``oElAAh~iojTP@qfcO`PNUE#uu~tTx~1k$+NF6{e$ z1or6yp7!|A3$R~5KZ*Yh_FcMABx%3?@zm=xI;hWi8mg;LtC4h2KcwV=x<&;~W6M41 z(6@b12YVXodzK~Agq=EL_nC2PLegRV!crayYp6+27Q)v zRF9zEGCHo8dK&C2652cIl)mO^vak5SK}lz|_{sjSOz+5~bGiogM&`(*pLAnSgMIPM zh9zCpX*SHu_pADVr%Aq!o5v5d*p#m8r5e>|OPTzUyhQ??s~%Nq^`9KO+o%jvr)vs4r4adtOO; zs2l&{rKgwH4|R7duTJ|=e@>xJ`%n*|Ff#c_kESp(`AAQuaKAs+vnbr}kM$x7vt9qv zD=Ex&{Y$5Mvax=mgMWP;mnS;J%8Sbr9YY~5Pjmwc$NO71r*OQ#bq5Mhyr;T5g(u!q z-Je1m;h7#np^flNkMU&V@?7V*_Bt-lbzUnkF3)ul3UPU^OHxRefAohG(&Zl=?8)x) zh2CbvytICy_i)P*=8677AEBn3C;AJ0n!-L`>Pr;%`BLAYFbeDo+@~-K>d8Jg-9Va^SJQC=2Po8Z+`w^aOEWXp6F5&D zYG%fI0>4l{nRip@z#Zy=c{ha){7EfbcRMK%ct)*S_s~e(wCRHPPoxiIr11WU^nsid zuCok*d=##;41sqkTxS^rr6^oy83Pq5)U4hJd`zKc^+q6sLd_~uAm-oynVMCmKm!Uj zoy>ve6lyw|10ATvt;|?YpgWb;%8c~{`csEYUtZS05bCt)%gY)V z=$1DSMB$BYc>@Khv9ZBH`2xkLWwFJ5`2yvrd*Q)BZwD$JXfWQo!fOZQCt!M;MK~cH|gjPUNP=H~0U_ z=fnBd_jhVJb*j3yUM2#YM9<4l(9>bOjr!<0Fy2Oe^ldQSMtyZ9jJHu=y#U7B!LRFJ zydC^{HH^2ziTVK;Z-*20BQV|$C+R0(yd6%`&%$^+^wT?GydC=K*I>LIPS$V1csrb| zvoPKcr|2Avx5Fv=cQD=#Khl4K@pkx;c71B^S-c%i)oozB9ZuCHFuoG#uY17wN}#{) zD`sz_0eaVGE!${--fNp|qXGI|7;mEi`d2XCMyKhIVZ4n_(|>^R@&@YfV7$D6y6|&e zg1x-c^;2T@vHWzMvaN6_ed6VG{Q~SE`ozoWdN+)hcZS{%;9e+lE|ovA;B@$$~p zUy9kw8>Fj#*Rp$5 zb#nX+>d!DHKXnM|uV8#G4r<5mW$A_Q(=Sw>r#0*o`i08#bVnHX^)P)jjN39y_kwX> z57#HbxUYxnfiOOAj?hD3eBK*v)4VO7yPlMKSR3CHo1Qf>3SI7zlZb#FrMcHdL4}Cd4YaP%%10kI`CD? zJTKIvY%7e@Gsg?{#jsj>=6Inlg>j#a))5%@*=Ri-#>*R{=fHS*WAuD6dwFAZ(bp}@ z8>>rfE3Bk*_*mTowvx`pWA*W{!eV+qPM-|xRZQ>4=`&zmis-v#`drwlMfBY=Jrc(4 z9H%dWaXZK9iLmpxtQ>iX4#O_lavxa~#>etY^=ud)%P-Zp!uWIk<8=j$Kj%MQSHt*o z{u6X9j6df;LD$3hbN-jCzfQ*?LOz^M*3MfZmNHZpAV6}lhn_mL3U=`cRW{Y0Mw<8$0k z^!YIUdm3Rq7RG;1Bdjln@!!*k=%2v&uZBkSwJ?6~daAww#_wHE)$?FC7p@$6r8Zzy zh4+#D490(}_A0#u#(%5!D!mHE=hUlp1B}n9SL?MfKBrF88)1A-ou+>Q8+-kl3D@Z7 zVUwT=_n z2{Y&>!M46PK1|jTHvD!qai%^RHs$twvR<(B-d;1|I(-ss+}jV64TRl6cly`sA+Vp* zo&NQD1Z*^YZf%wx1N#Ym{%n@M4E7FPGu)uBfPF;Q3^(X&U~fG!z&Tsbf_?skL(SH= z!1(FG936x4(}OuW4)eaVW>xwQoYvOIXDBrec9tcjHuQ!U-sH-0uH}MXA zY5~{LZ$ZsGPZ@fYn4xw~yJ}*E?xF4J-k(rDF|N16ev-U%;?MMCk6qVc@}h~=dSV;f zR!mGxT&xEavDsH1HF~OTh5TE&HF`RXe=D~}m%#?U7wf)6-v$f4H)G@yT?NbS4s@;6 z3t)fReWI$>OJReku1>FpT}pLz`a#&pi#s@%>PKLgUrg^f=qF**>2uV}^s}(r>2uV} z^b4@+=hsYFu3v*Kd;Vdv{jhNv`nHwM!mh~Bx2^Ptuz9b4RJc?^wBtk=iGI;^>m>=fAen;smw zTAu-%e$!gAp|CcuubFVK9tk_{^@qtWh6U*>_#!aG#FA?pnQOLPAGjt5!cu zHV4MP$71SRVf=e6rmlqXQ``G>HH@Fy-mmLm{M5EV*TeX!ZG&zUv-k2f`Zq9shPy`h zpob~Vd(Rq8KN!JQ=z5ucAzjlCH;Q$9nZA3ar^EO&kPqlNFn$90fTllnDP!^z$Om;L zjGsV0s29M_-$LKL()1Wo#=K+;efLV!j}wdW@vKqPn}=e2JZsdC!1#EU)O3R(b$mQa z>Stm6dVg5&gz@YBVf`A6uNj&&{Un7<$JY!^`kw-u0ei&aDJfeRIi2gKo6zJrBmqds^=xMh}7Uy~Q(n1dN~aJ*&sS_&MLR`Z5?l=S%4; zVEmjfrLTeUb3RMYg7I@cOWy+flw8OT_H$@REMFd&_osNguRL?sHz! zAHn!O=Oz7n81ECi^tUkHCwA%l9`^EhAADK2gYiE2vhFHoFYgsyZ`a8__=;YGG5H?o z6}=Y5_du`cO)#G4tNIr(p69E22aMbDntlbwZFx<<3FBvnyY+v-_}SrZ{Tmo>zt{C= zFy4Nz>qBC8JNM`XJzM%^kFK*#K4ZN{*TeWT)_e2=uxIEunfK~-uwC>yh`ss=*m<;{ z?bFY|E~fo@pWX?3n!W||hJF?HI(-Y~4gD63kJoSN42+N0Z|aZ4>~_AT$9uV*hU$C4 zhKXk{Gx}38``B|px9!Da{#tW?9?&JW zIp$3M<-`LzA!d*HYu(st%wOxrT8;T@J)}3!#U3-Khl|y!j^WQI<}_8%za4FP37JLuJ)Q-& z$(SBb*M2Qyw)J?$>@nMV`r0OAw)JdmHD-Iy)>dP-_iSr5W_!;cTa8)l`Oj8k7JCX$ zmR8F=i#?rAX<2$_PtU{bc(F=#f_p*t&Ypp->biJ_pl+^<-ed4g6|?)LtLOSwV|Ml2 zgfWkCEa=|VQ`M@jn`Z&){=+q>w3{abyDe`}X?M@SAGNfsr)S7vHe9SyIjLnmJy(d? zOFzalz15hSG^8)Hdxg(_~dA@5^ z*UyvRpOd)?3U+$m-+;Y`m$ zjCqM;MAtJtHLb=RgpQN^&C&n zR%4#)@wXcDTu*Hg81NfM-vux}fLX zR?`JN-Ogy)4(EA#i&fI!tsK$yJWrWjN56SQ&(b}&!Tz(1o~3)LU_;9WIEQ-{z{Zq0 z)Ns#I7@r?Tcvi#s{4m1vplx#WKHu{Q>K-2DcAW2d0=99~{DSj6&%*fc4vh5dgz?`U z80mQp_930$M|s|YeM47dqdZv{e}gOJ$-(#=Tp`czY?Gy5;Q7;G=04Nj>$pEJ@C3!| zEq0-2H0rotF7&KwRX5tRrqy(#J=s=uV>}`_1lSi*n%B}JzD3zyvSO5Lm z)or$7HW>e`_yJd~; zdP6DtHO$+UDo|IAZCUqk+O-UG&$y%qntPRNUD6wN&$Q0}nLWVkYp?0|m(sqyL;a+* zeS4=`w3EjTYE%rIC_3(+iTk`+ju)QDJ zbGGMT@56R-`glI_pLY|VL86!NInlqK&mgm@EKt$?y!6W-;^SvQ36J?)F(+1x%ZDd% z{xqFynp@7pE}4&8?VQeYv*$3Fj>%5NM_m_=ihlBJfH3pdCWEsw9L8ndB5>e zuC>qdQw&}TkDsr49dRYVXF9jC#~FL;_viNSzt^=sKYqQD+y6h+=7W#$7PPO##?u+u zsd~~`)uDLUA-Pj^7{kLS?d4h?--YoPSA0K-Zs25Irez#EIp+yZj@!gr&0dzBH_-m$ zQgg23{4=^5%#-EjV;uUj+5hbsyKNcTpAT;p&#k$I|5JVV@3vgtyPB^yE8gMZi)L`Y z9eL&X@7D5v|Ms-*+t&Tr`W0;t|D|%}Y~B`j`R~8JKeX^4+XGwf=dJ%=??wOECH|x4 z_Ltgx`CMM3Bg-TA|9@0V{ypdOm-^?(ey|g}$Lw`6xA0MV&n0{|{O~fXneb0DaI-iA`=e%MnPs@o5bE~7PN2dzQRbstd zdD_XGD9@*wj)zXQK!$l*hqC98lj{(Bm|IJqVw2Kdx;>^n%ufTFp99!Q!_%DbRU-ZM z6e;a~zI!s~yXgAUr5=3HNo{_I`saV{>g!*>C);~ka}V%V<10Fcluq@=oaSMN;xQfS zv1Qz2d{ysKf9%BL+im7KIH?bLoR{d1;P5?-_hh$v_R+tb=c!dRhkSKAZG{50UABUK z@4#EosXR~ew1uti#J_(}ariUC1#P&6t?wpU53i)X(Sdsw`_9EKkGwDIO-~VBs*~(# zb}c8(_b>0uE0pK#Rs(6jZO-kbbK;iQW}fOwJ(I7t%;Hz>aJq{rRQp%b*V+`nUOZ|N z-O;pBBk5dFq)z|8XN2at-C4wKXgxPR0_4jPpg@ifg>rn*a(wW}QrgH;iexEmWzOv| zXL~KU&CT;~S&QaAX&J|*_}Qado;~KNZV$Ii#dA2ambPF!UPtbM=J|)D{q_=%?CtN* zr+KR1c5K;#M@}`lu4VpzX%5_y!}kIEiKyKYdmWD)$4U}wKw%&rgEt;Q`r|8bBxrgn3YrUoHmpfXS9ng3_z`Jc3P+^Y4H3VT}451+r? zlShup`Qc-75C6G&a{lMWeD=OSpC37A-oyXgoH=hj=jJVI_n!UCgrAepGZQ*b<;fF< zeC2<-eft7sZ|m0kKEb;GO3O|u+ey{3p9e#BQPdog2 z?s=Zpjd$fZaZ2Js^0&^p_4qez=c}XE$=^C`KgYAny-)Gn>|uUJ)ci!wPHLn#?5A^f zV)w9p=g3!d&DUx6eHp)t?Ur}3^W8ro_wO@D&f!_`Qk4w|<7ulIJOto>nz)3;V9$ zuH|i)hwXdhv{T!2EsvA`|1ple^dp~~9J%iQnxy59%%yIBiPyd5oxbM8ZVC3)-O|HS z+WY)p(@uNZ5%$(;H3vK4z0`>(mOU@z;f1tE(PuE|xrF`1wfWWb*DUM5H;(<nZhvNgOQ$N5X===fotv88sDYnt3N-^;r-uw?fx0VEw7Q* zua3XH4fS$fvp;LZ!w&VgmfSP^E{~J;Gb}ujKcJ zR*h=eEBude}nj;f_ zj^vbY+%$hLV%1DEo}Y!}QHoI+rzn z6XY-DN4Do5m3+O2+jEev%^a$K8!m5>PdQdT{QcpfH*(VYGe7^R;nr=imp+-E+`80Y zTB2L6ThGgl$koMPD($w}PYdnRPFioZA+o`)t|~vYOo9kr3^_qPRdd#BT`1C zj8mDMZryG^WDIb;e_fe@lQ3a(OC&@f1S4wG0Ia}st(Qtc} zcKZWN_PJildwcq_o=4JXYGuQS|pRCTQ-fG3JuPM2)_&XJJ z-MPo@Sn1e3DW4MOn}v?7`<;niho$yUI>FJ8rut3|lxc^k6=Anyh&mzswffq9?zG8{ z;gpZ1TAt5nsU0n~<7NEGvaG9QS>t7#@iPD2QoCD?zWUdW-O6>%M^v71^%sr~dECO? z>LL2!Q(xYY%^s(r`qSUa|I;S-QL@D=u>O&-0l@ zmCR>>w7E{&TqSL;k~Y^%ZM`J*k_^rZmHJ%V=Y3pjWU93?)o^wF{;$<=>W5KO`{3-c zYNL7}JjE5t+dt_B*Jv95JK8Sk=c`;>Y1l!-Tj{3|x5}Kis=HqvK*PKhw#yQC$(;Af zoVUw3+oiUHWB;UgY47E^9h9jKs@1a(xjvHNk7T%rrVY8jq-m#6$y+(?F5B6`c?iq> zB=ZONA(`hPnaWN3q(iwKyfxhpZb^|OMUoWR3FgmZek9YDNIp34u9-ep4;sIZtHkli z>V0{=9lVe6w)-HjhlBf}w}acz!*TT6A5+5f@8P(y@r%5Ej?NW2zesv%pyUG`yek;69uwbDJscnJcw(r44C! zQ|LSuq5Z9sDwR2uI%ZegRA4%~(O*b29r@w;G~9U)mnW{~^0n8wynWyNf)4J=u|`42 z`R=5jQF8gkwFUF?9GB2v*ULNO3HnXeyx#BKLwV>up3es_ngwb1qc=8DQnHDDC)jbq zz6}MXj#plBJ4zj=wHe?nbxfb|RKa{|!*^<)v?NZgs-nEK(+(PQn3O9g}sd zWy+WCpd(4%rT6SDnCIZVeYQGx8vR~tUj2@DsJ8EgJm-sL&itC4@8H*L)bYh_nSv@= zR+WSED#=&o@oV4A8~qObMS803L1lXF$9c)TbElnIn0DXt{5e!kr9CI@UOjDC;n(i{ zlSUP8&f_f@qQ0G77<8@Jb#q~jQ|B(GInTUzSz*Yzf6|)5Qb%_EMk>EpzlHMYPgykF^!lrXyYrr!u&*%a zn3Kp-IU@0^!iZyY$wxGN)OEk3apKqKtNnR9mK>ttB^_P5)Zy#ob_5+e>6d!wcAe}kb+Vt-$zGRs2S**Rxt%BJagGW1571`b$X5qb>3nmvu9vCS z$o{rg_NaQ9L%r;88>M!u)NYsBjZ(W&YIjNPUa5UoYIjNPE~y=@%pG5=WZs6WHT?nC znfD$=CI5;l?-dTUnMyv+pFG{`$>q`Co_8LUxqT#a`%>n1Q08_}=5|PG-A;b(6gl~o zct~mwNv-A3mu>WvIQe+{b>1hdpY!yPaY~&0+AnePmMwAeE68%hHoxuZEo1hU+TK#z zTWb4BK2Vl2MCQ;>#_5M?*F8U>4IkxrzrADXHEnqRnc2pXf8O|8+UWeohWS*sqt{N_ z-J8~HKec&5oBfU{bC*&1`v+II$vWnbYG~uj=l1M(95?0>%5N;*MCD7g$MPPswasu@ z`e<4DdI$gFc23qk=g7X9SLDyX;legWImg+fI#M}fW4EHgGPj%~_QbJ8pF4&>aY9jz zi+@?R#&zo|`uhg?t7rG4-)`sMs0}$cUOKdBvz%dr`P;7@Srp9Aj2~GP%719j=%V!w z{)<@rdg80_~C*z&n#yn6oUi#3Vzb)Cm?cn@R zR(ENuY1*D`*E?nu_M%~)w#Mau_2jnm9P1`j6ejbwU444n5WOl#Qn`BeXc{xS_S&{l zn)dp(KALuJ+u8a1I^EiKUOxZc(CmDkkCFf48?m;2=Q$VLP367^7SWhI=l;%Di~-L6 z&V?7(w;fEiO;o=5c(1lWYUfd&AiWZwYI~LR>P%UqQfYt0*`Pme8*%oT@^RaFlzh>) zCZD(LN-Ep6tI5wj-GM+hIyQ%jI&v$wWu7>ZnNZ@ zB~Mc_xZPY?;(RHi&ZdH1?V`^7LN0g8@LnmkBxxD0-@vsq@1081@;*G@$!DA@nL~dn zSGKE?yh?h$O16cc^84B?ka6P9b>n)q+fPg1&~7)CnPHM+d z@>;tZnd);&vh6<4KXvoI!msmxx$-ydcIS<}magmQRatV>O6tASiWbPRWxeCsl}{B! z9hGHAQ_fo<>X@+a?4zQN*PaMc8K7fz)N%ZEM<11TH-s*y^2Jw<*OuemN%cpW&egM@ zJE~4v&et2)x38C_*UK8!%f7cpw$vJ#vzd3-?l;@>>+XS~wKCO48sDKd%J>_R@TZf%*L7 zoj#}GEmB&YhD*yw%e29Qp-;aq`P-dB1veJ&D;zEB^0l=5YiHHY`2}A)=RZonbLl+p z>I0ohY0jL)ullgl*UlmHc(^}ZbvRu0lRu{=ZiswK`TVQgolV!p(>$HEv`4!(O>0lX zKV8+Oa|aspn9e!pwZ$iP9xg4n)Ty#B@piP-gnfa|-CU1PqQA}LI+}hBwwr4{{oUM9 z{-6gZbq?jP+B34qbpEp8uFm772PVr}^mp;^j`nw*5H>rT&IiKlI?twd(r4RPC%r`q51)r>bkCNbJ2dH%IrDLg#UqjovXP1=)*G}!#( zRa7PmE^L}#kSrLT-PmP)!O2Zqx!K;YqTzcdeN5#uqv)*aT2=aSmvjN2M-1xKD(5)Y!S}!JGR`%M_LFh0 z^=E^pmD|;iKcgA;HAmi};QFXWVH2icohilZXeC2RC()8ErT-FOb zd=e#fGG?8NkA%9Ax1cUOd(^MGbtt@I>TkR8bp>6c()MkCw4r`}dEcWuxaB%leO-Ra z(cR=P9c`vLj6B*$)6(x_yB0NFLSyoLxTL=zP32FHu9u~(kv6ZDHrGp=>!r;brFNr> z?|?Q+OE$Xrntv;eKfL>P8h;dB=ksfSmrT1$UN76F?C&^8dq^<Be_}zPUx#?aw`snl?{p1R5h?I3S=dsko zyeAv(n{L_Cqkmzi^{F0pF21`l+*|24jQcx|r|Yzw;_LJNj+K);_e{HAe(J=Y+wFTO zT6&f9ODPY@eB5+2>*LxkZ76c{QPl0`xs|y2j@9kv?O5dIbBBY*q^<0}s^ND%$I;q- z+p~w8kD`YAlgY;%Q%ZjYw)ZiS!b`3l(KVFMcO_Bjf!;J#l{1t-yz#PQw#yyjY|8T$ zuhAcl3Ay=7zMq@#3;MbFeqmnW17j8(JC6E%gtydvcVY~clb#q)W#7vtQ8~UL?2Wi5 zy+MBs#l7LdY2KQ`Pgc+L4wRO!EWB;Q9p0cb_jZ+c0d3!(d51_oMA|>jk$>%i?%e0A zXq-zLd$k>xxB2 zEB5iS|BROTkCyox?n_5~;!76Z{K}WU@owHml^0RDzVNe& zCsDb0AMMrBtNg0zLt~yhZOn0#W!eR@7cG!&G+D-(EWORwpJRJ%m7a_`&Yd=*>sH10 zOF(ZH?5Q6YtCsW zw4*12A5s}s-_ma}mpTfE(x*xso}ukjm8)-`cC^u7Jp7<@8XUpwo`qJPouJ5@pvjvEiR*SVDSPf2NgF_Iiz?8 zm4V_cmBWhI7{VK#ebsm+T!AV z?bOWTepKF2d=8a!i^o%WOYt>S&M&@|%2@HwsjMn~jLN%<_fxr`_&X{W7xy}u_KMU;?Np|C43!6q=TrHc;&oJh zRQx`bpA{c9fcn396qR2U8&n=D-a@4+`Ibs|$?(&t|4U|2SyZxw%JwCjsVph^jLNPh zT?SJBms~)lw`3NTy-OBT*|+3bD*KguNad*|-AU!(hwB5TtP38QqpHO*m zw;v7ZsD9q<-aZ{wQp)G4EL8it717aPe>XlF^gepj5Za@TzKhDbqjykQ*uBj;)c)>c zsch{2Q!3YXucz{<9-FCrtw-UxwC+7lqO!2(#pf2PqMkR?aKE1OsXVpkDk=x|+)Cx3 zp6{LOS4x$srt(vWZIpisvseufc30zsz0@S(N$P&#Y3f)c z^Z7A&r5bewy`@0QdAyuHbVb}+9vAK?H;FS;L!YGhYvmR^E&fh<2A&0Tl7CoEZ&1i| z4p0-z)Hmf`xDWJ8?uiB9K`Ny$gWQg91QOTM){ z1J8mv$;ZX$jXS&jApaSuGWFY-7tVh)f%}Dj@V-plX$0UwFeLf7SQs7wqmutN7K0mL zT=J&!1l$CZl0ROaf?Hr(@*U+Fcoxh_zO|g*)ROjTVwv(*_=N*20?0$+Lo34YsQ5SK zF}MN7CHKSeV||R z$18&Hkoa>IVR%%0PelxFfN{w`tVqC3Fe&+;DpGI@OiTVvc?O;ZbCP>v^brQTy`UzR zskW6qxL^FZ${;)>-Y*t`N5uzJ8t}MyQ@IIGif=8q;A!z4xB{!lf3Xw`T(=teozyo{cs=Xmz>%U4}u}dsr~Q>7?qsb4>!QLG6E6x;&Sl0R3GfoH*-(m|hTm3|_YsReiY;C}Iw<3V^x zoVFu8Djuse;BoO?aTA^tpHykV)8Y&6&cbuzC&yJgd-)Df6U$U}g%|Dv>6U`>SY-en z1VfV3@dzFPqmr+=GX^)nxa3=^5^xhtN$1Mnail6-e{7#;zmlHa@_1~>5B?f|`@4-9}oFbvX-yi6AZ4KM+kU<$Or444J!gDLj%K`-b717HvggAp(W8ejr6 z!4znL888c~j#xhE1$|%;41*Cc1{z=jG{F>Tff+Ch(#?Rq-k=xsfdMcGM!*|V!3Y=w4KM+kU<$Or444H~cPtmwM85C$!hN7$^2f^q@E{nH zd`Ed09s#40Z!I_Aaq&AACg3KRlzh>`6x;&Sk`JuNz_VaZ@?-^ll+NB>peB|nbDJT6Z6!SJN`j`9>dEl&6C@SONd3sq0M9hz9C-dX5_`^D#1 z1mHn1BzbOO7#;zmlK)|03~qpN$?r50a1%^QUa%+yx4^XI-l_~d3+5z$bdfp+{RV1c znHm@K!hN7$@=F&7;6X4X`In2s@CXtgD%| zYRlC*VwtM1Q9i6U=pt6D@za>K>UQw8YczS8dZfmS@qAz}VznxXGHcbysGnG-7A*{* zJ_rsYR;!z$%v!ZL8X}gdXKKQzkAP9hchtn-23Sd~R>w_e)~Y+F$BAWXPfY^#CfGo% zR==ChWw-Kw=>vNdAKctCe>eHGm>JLc0yNt>EK~C!F^>;k_2Xqmu)sQkKZ(mL1{oIRs zAJ~gX$Gb9Sty%{D>N-DpnHsz#fboLhFk-bTn#<(v7$WlPB8>V7cqOq~O`Xf+?HDEU z`xG(M8(<}|TCJYT5>%cEpQvLTIJoywgZeCZfLN{0y)h^C+n1;l(0`zdSgm^8q={wfOWW#Kpq5# zN&Txghoru#Jd8X7UMcl!Z;49%JLNIt23RTeRrBIfzoR^X+yon>e*UdVslQ`k3b_St zllsZGrKSGUB^l&d@PO2xI-gmqmdwu)%ao(m(FeyRBK7xt7qM3Lxm^>>RL5E$>U&B3 zl-rrS-}|NhoAMy)he^G4JCpbKkkor(5!7EP_21miD{59ZcT8lTtsT)`WKh!4RCYY35)urGTxD8B8y{9e%&w>ZQoYeQMQzv45Ko{sH@^e>Br0at^ zFLEE)3-n8UQ+WU$1c!kksUJ}nhDX3F!Kl=auZzJAuo8?*J>74?O|St>N`1601-HO$ zU|Q;{>$30zU{3O;a&;2cA9R75Sf=i)^TK^#FVHXbR$Txd1c!kksoz%@hDX4tq+7Pt*eOMRE68F&^v0Oq8Az*5x@>kYaenod!40qyj7$BNr3ttRHh@W~Zz@m0EpQu{ zmU?>MAD#sdfH|pub*VZT>kqm>O)OLUmwMqouovi;`d=*#z=Pm0FeLR~EDggW;FVxh z>L=D3@JcW)dAnr^xCu6ZNvR)En}S>5HZU#q$1cmjv)}a)uda1%^Q{>8Es+yc{*7cS4hvtUm0W0$K_v3{T?mZ^cueQ>|{xyu9aAQ+N- z?D8-?0!AgDv^)kkz_{esFHgWtFe$mJPQfiOExEBg1J8mv$(Juz{n2hv6U)^2IxpM@ z`Xx^;55R+9Nb;S_!|(_gmHgA17~BBkl7Cl|fSX`a@&n6La0^UJPM>3dXThB0o|qbd z_Jf*Orhd2F3-^J3$=xdg@E{nHyktcf9s#40AHO07H^8{$J69y&CYY4`nw2TI1*Ro; z-IIZ5!JOpx-QzgTZoej$sk2vk;XcqW`5UVO@E{nHe0F^p9s#40cUT>R8(>`WjjI!I z6HH1z@!k~N0@IRzdv6Aw1#^-&+@}Vj-$6~J>#u|t?gRajf1C)wgJ4MVYBLOvfKkc& z+#iD*U|jO&?>FH|@km1oZh>jZU28J%ESQtLVU0Q+?FKcGK6mnf7w!Z7lB?Ua}$qH^HRjGa6HH3rtIHG-lvgFef=(-<^qe zgPKUs-^;ylALy5SM|l7q1VfVFu`mpefKkb78e?z+j7xrRV*+l1Ny+Ja2DiYp@RR1=$HJ}r2%*l3`yQG8HPu|sN`GA zV{ikEOHS{1!A&qJ`K0A3xCN#qKPj1kXThB0X019K?FTiH@1uQizxamQ06YkWB;Q^e zhDX4tG=}e1e21VolL{L43`tJ!ufQW(JoLE%hVg2yl@}rm;B^-03HNGl2d=eBVbhWaj_WO0OOL=eK_0% zlajmcNx>~JE%^tVGVm;zlRWl>8jbdYnpmbjU+abYK)>XR*9G7~FeLfOPln+UFe>@p zCu48}j7x4jm4KUIQu3zq6x;&SlGF24coxh_PR~)tp#7jG%JmQ22l^#{q$U6lf+5Lg zEeXRTU{rG7<`~=nK7s zm;AQP0eBD$NnW=(43B_O$sgGqgBxI6@^8u$a1%^Q?un(~7MPZN+vW^B3+5!>vsqn) z_Jf+p@AG@%KF}}uhnoZNAQ+N-M@<+W0i%*Tx5VHE7?(U-lYpCGQu4N2EO=V{*ezLj zPW+v6$HjJgHL*-BZ}P$Y@E|-SzH>zc9u+@zivf>|f3V4fC&iykTJW^^We;cJIq~CH zIL2Z5#4`2D79ZR%{`uMiDl}8O15^xhtN?x)e1-HPoxsNc(fnX#4`2kXT5MA=$E`?MF1WWpV1hG zN5vCOF?d{@J{JW~ihuEJ3Z53H=U4D7n3J5IM@&GwKuzTD!Fu67&@VYXzk&zBkmOs- z!|(_gl{`NcgBxI6^3Ev}o)qt!O2I8KE&2Xb2A&0Tl7CaKETff-OuvX|=x17H}8fHBYj6QBvEKnu)(S&+U|uH<__pcnLk0Wb)L z!3Y=w4KM+kpao{YET|@9xu6&HfdMcG#=r!a0yAJ_iakFAOn@es0xd8DWt) z9~c0GU>J;mG0*@Lpb4fx3(SC7Q2hkU2fd&V41hr}3`W2hXn+aO1XG{|WMAS` z^nyMx00zM@7y)CT0VY5bOo0}d0kfdG8p{X0pbrdyK`;zPz!+$N3D5*npao_@H4V!J zy`T>afI%<}M!*s~1&;U&^1zKPR%!2A#EEn{G zJ}>|V!7vyBW1s;hKohjU444H~6w3v@pbrdyK`;zPz!+$N3D5*npao{YEU2bq`Jfl{ zfdMcGhQSCJ0}U_%nqUgFzzmoL>11l3PeCu}0|Q_XjDQAcf)(DOH3;MtS7zD#$1dM?Om;g;M1zKPR%!2BAEFbiOJ}>|V!7vyBW1s;hKod-X z7MKCEpqho{gI>@F2EZT~1|wh$G{6LCf+^4fGhh}}H(>do7xaMvFbIah2p9tmFaeri z3beosm<82rEFbiOJ}>|V!7vyBW1s;hKod-X7MKCEpqhi_gI>@F2EZT~1|wh$G{6LC zf+^4fGhh~^n=Siw33@>v7yyG{7>s~1&;S#l38p{`%z#-?&BgLTFX#gUU=R$05ikZC zU;;G36qo_kjrQ`qU;qq)VK4&5Km$yGCYS;(FaxTaupBS|hQSz^08KCjT3`mug6d}U z7w83jU;qq)VK4&5Km$yG8BpDVc7p*h2u8pdXn+aO1T8QFWs~1&;S#l38p{`%z#;t7HYrlKriS6 z17HvggAp(W8ejr6!4znL888c~`B*;a1$|%u41!@W0>(fCOn@es0xd8DWJ;mG0*@Lpb4fx3(SC7P~Cy$gI>@F2EZT~1|wh$G{6LCf+^4fGhh}}Tff>*dvzO-ueP93#f)OwV8ejr6!4znL888bv3@i`yfdMcG zM!*vc8DDOAHeV||RZ&Lwy5DZCPV1?lkFe-T` z%Yetlt1C=+Qv98A3!WDLusjRTiGNe>sI=RsiTu3N2ltD6tpGd-h9p1P3d18{RPqnY zV{ikEOI}@(fSX`aa{Bxa+yc{*54JM!ESQsgkEN>6pP(kn?{mR@pkMOpiU2$ah9sxo zb$~~}sN{pK7~B98pb4fx3(SC7Q2i9`1HGUR41hr}3`W2hXn+YY1!h2XCzb}w=e_Gi8qz&pYifGFZ2s{l!t^{%cH{Ba|V&y5f>j9GvP_`I}Hn-7LPrb zg*&S4>3m=i41*Cc1{z=jG{F>Tff+Chss-3ypcnLk0Wb{4zyz2AEieOSLG^RYAM}Dg zFaQR@Fc<-2paI5-tJE>u5^xhtO5V^X1-HO7@(er+=8&s}XdkGFtJKhK%m!7t&5PUz z`lY_1PXHbSL&(GM2pB~kgBxHRc>->NN#rTG1*VZ_;8`#y`Os}lZm(K|^#L_;6q zeV`wC03HNGk{`1z43B_O$ro*7HYsyk47mZuQJ;XDU{Z40E^rG>BhSKfaJ3li2Q^XJ z5BGt7s87KyFfIAeZA@N%26-0D zNqs{fwFK(}YND(U+%JC2wg5Z`h9sx;fJeY6@)+CzbP_o&|Hr=}X>r z|AU$+?S=b5Kk@)P2!@b{;Sn&3+g@JvqO=q4 zhX>$6FoZk;kHTYc1B@e2z)diTJO#JFH1Z5Q3+9kJmZF_RZl@3K7pMK0DEl$;kmL=0 zBJe2OfXBs;*=E9%;)}Lf@U(bCpDa8FcPv9Yh|&(YAI@x2zU@KeA>_;^HDr4Pc@((; zkHbxP5^llM@GLwhPRCzjgBrixu^jCpO1t2Gcn}_fN8nL-989(%uSXi51N91f{(dk7 zMukJSF}Xc)#xco-fPfA0AhJT9(xB;ZN$u{%=m zw0J|G3_J&?g-ZK0QI-$)i$As_01u%)43ENN@Hm{=px)e(K%PX-Y)~KUNFh&4erN}? zK~311L7tO*(Kc0&b`hmraKHGXZ2@=)^;C^@j9uj|SM;IOzU$iX-kBc|- zNx+lv6g&;jz;kew!19T_d`;y2%ZuEPoXPuF0C`CA$6jDIsG@Wjc~tUVX=Z~m(s6NW z7wVJZi_$508lHjY#OXLlT{{txL_|cA?nKZ-7-I|>LiL!SV+}IIT5WFz zLy#esYI_eR_AQob5t+7SOhl|lwb&XFNyIv+W-x6XV;hX|ysPSybH4M-G3T7u^PHbQ zKJU+cRo%7MRaf2L>UgF}@n*$a)Nak%{Cn&$-QPCF+Z9il#yhk2FP=#`%kF%p3ug61 z7JuZK?kqlJQIF!iS$xYyDQDR)7kQo9UO3aHFRIIUllb_e22F3w;*T%Nd6PJOQIn?g zm!%+y=E9)oxO|S?w0JTh(q;yIt)L zwL8`BQoCF2MC~52S8+~Ko{z*jm_6szZV($4_tkC^n-y;r+Z1ol+LNE|P`fj0Q}3(Y zt#*&vy;+;<>vkO%m>n0j8`W-7yIJiPwOiG0Q@cHDSDx)qyHo8hwY#(SjP4$_d)4;t z(E4GPf5axmo3r-hr&FfaeT(9)S$sx!o7(MacZ#v%U1GQ5iP}A4ui`1w{AhRT{D^fh zdtRvBAU0-k@&cS?>ptr%-Xu0>(`PIU)NT=5v-pUGDIefE3>9w^+q3C27Dj4!h@DxS z_g%HS#BRkCwR^-~#Z#vBi#J!t8K&pC4yN@>z2d&uBnD!O*a~MFb*9>FVtW>!|3svA zhuE3LH-9!(yG!iO;J5IeK@h=sA*-C29alZo0rVs9Q_Xm@G5#X6X6x7rP2V-{yTNA2dU&2^%7tJ9=>MOzYEF@h-7Do6dEhc8}Pb#ZP)R=iSeG^R)eNrhWcwz1j_8V;0|Z zv9ETM*qp^rSe)|yy%{G_yfuq+->Kauwr6qfJGDE+PQ_!jyTtA+&i1R_Blaq8ck6l( z>tJ?0sNEnoD(FvpCm@+FfFI7H7NF?h$(x zxB1#`u?~{|7S^lXAU0-ku4A>Evo_bU+AU(M;-T7YVtW>+K2p0=?O5$Dv0L#(?H;jL zal1#`E7rm6IIGsM(+C5^g;HfHfh7N<=6H!0qn#ktPaZV_7*57lnZ+H9}d zoodHwcV}(352njc6z|RAjMLq(?G)?aOnYQ;%5?sE#T&%NY&!4#YB!0^S-kvQpmvMc zn#E68oN|^O@?5BRo7kRBCm*WaA$BSrtKB7bXK}7?wR^-~#VK~Oy0;Ey$6M_Nu~Bhf z?Iy7~i$AhBWxC&i;w@rpHl2K~cAMCq#UELmGVK>B-XV5o(`PJ<)$S6zvpD;qc8}Pb z#ZP}OP`pKK z&8Bl*sof^FD;}xcA$Df*qn5;KcZuDK=RAK&qIi$ktLZt2q#mZ@DGg#HoN0etl9E^Qr736G21|WS zZxWl~Oxt{E%2{^6(iX*AvpC}YFsmm_RUh`ow?kLUYS z2h;ngUhM|4F^k{ue9rHl_Z4pvo3rT$FAvmi5nHqPIm<(}+r;)Pe!}9E>HBh|c!$`T zO=tW`?Jluf@kH$&u{VoTZ$F{)BG$p|yr|tEHfC|oi`q?Mv*Ll;En=(Uq1tU?yW)}B z9b%{AvD#f?cNV7(hv|9hQM@;cQ-?pP?HB7{c0SZ@5F4{N?+Y+pPLtxzS)95~?N+th z)NWV1L+#G2&A6@F-C3L8OJVkVsp36iZ#JFn?ACUQbuimbwHw4n#eKD##Ad}?)DA^P zkg~iMi5+4rc8Q7DBid8i9aFTBzB0g z*d-=nkJt;R+O5mIXY%#c!KwDZ@_Mx!#KtWC)N)_#CNU6O#87M#Be6q_#V)ZMrt44C z?h$*l_yfyrk&d%i2dCOo%Nx}8#U?QjTf|Uo6C<%hjKwZ75qm`MS)B*5LG;BYF%VnC zP;3(;u|tf-E-?{%L|d%=7VE_Z(HEP=C`^^Yt`{O=64KCU%KEqPJZA zL|<$Y1F=O6#Wpb#JH%M*5)-jU{1co`9bhl$xQO*)gXoJ*Vj#ANq1YxyVuu)uU1B2k zi1wn^FV>3*dzvGix`S+VkCBmU1E>uy^^n|LG;BYF%VnCP;3(;u|tf-E-?{%M0-{HCDw}# zqAxayf!HF3Vw)I=9bznYiHX=F+8?!kv0iKteX&Ul#1=6W+r&uh5M!}ROvE11Ueo%; zdeIjHF%;XxNbC?}u}e(E9?@Rcdc=CMLG;BYF%VnCP;3(;u|tf-E-?{%M0-Q)7wg3a z(HEPlN$82GJLr#6WBjL$OVa#11hQyTnB75v@n-7wg3a z(HEPev0*CgXoJ*Vj#ANp%{s=*d-=nk7(~|ePX@X zAo^mH7>F%mn;3~5Vk~xviP$6BpS51GUThG3F%UyB5@RtDtv6p@z37X97>bb?i-~CO z<^6pz5JNE%V=)o!eXUpY#Xtb8t48%~3#YD6Z)lc-rK#as#Oho%g{X}03 z#j{~r|3zxwtahw+BHG7Vj_8Yl7>Ti%i1rut6MZodLopI#F%j((^%s3H5JNE%V=)o! zuj()QVkkypEGD9Ts(xaF=!;EaAhw91*d|6|hZu`pVj}j4_LkK$Uue0aF9u>LMq(@`qJ63UqAvzwC`Mu|CZhdK{l!p>#8^y3 z`%3eRz8HwHn27eZ<`;c25JNE%V=)o!8}%1`F%UyB5@RtD?eFR@`eGo4Vk9P_eXD+= zFNR_y#$qDcKh#eQ#88aHShVjnzvzpB7>TiH=H=sPqAvzwC`Mu|CZc)jFZyC2hGHbf zVj`MTf6*5MF%%;)78B75>M#0YAckTj#$qB`QT;_<48%x`#YD7{`iZ_6h@lvXv1n!W z6MZodLopI#F%hkz{$e18VkE|5B3d=?=Zk?Dijf$LiCAB!eqtboVkE|5B3d79r|64; z7>bb?i-~A`)nD|*Kn%r5jKxH>Rr3CU7>bb?i-~Ccv_8=n12Gg6(N@*`qAvzwC`Mu| zCZhFMf6*5MF%%;)7VB5b`}txZhGHbfVj|iAtxxpDKn%r5jKxH>f$A^%VkE|5BHAF$ zFZyC2hGHbfVj|k=>M#0YAco@EFsqByj>SZ@!CH>!i-8!5kr<1KXltmy=!=0Eijf$L ziD*Oe{=OK9p%{s=n25Hf)+_pAAckTj#$qDY57m0bKn%r5jKxH>wX|N*7XvXABQX{e z(T1tN=!=0Eijf$LiD+x9zvzpB7>bb?i-~B%)nD|*P>jS_Ohg-@exff1VkkypEGD9j zRDaPI12GgMF%}ciuh07jVkkypEGD8gXnmqD24W~iVk{=2jZ%Nn7XvXABQX{e(MGGk z=!=0Eijf$LiD>JnzvzpB7>bb?i-~As)L-<)Kn%rb#q@Ra`2#T&BQX{e(bm)QMPCfW zP>jS_Ohj8>{Y764#88aHSWHA~RDaPI12GgMF%}ciexUxMF9s{(8|2e{F%UyB78B7n z)bd1M48%~3#6+~Q>L>bQAckTj#$qDcM(Qv6VjzZMB*tR>#@atI5JNE%V=)o!hgzTL zi-8!5kr<2hn`nJvAckTj#$qDckF-9~7XvXABQX|}E%JUgPW?q+48%~3#8^y3`>Fbi zz8Hw17>Ti%h_+?k-xmWh6eBSf6VbNPdPQFhR>Zf~a>YOl#Yl|BM6_+RT+tT;F%%;) z78B8Y^%s3H5JNE%W6_$_PYlFRjKxH>pJ{&47XvXABQX{ev3}dUzb^)2C`Mu|CZhd3 z?-xwS8H$k@i-~C4X*)$<48%~3#CXN@9khHg5@RtDty#+#eK8P2F%n}j5pAOSi@q3$ zp%{s=n25Hc`is68h@lvXv6zUqQ{F!o6VZ0oa>YcnT@)96F%UyB5@RtDZCCXdeK8P2 zF%o0ZCaIt3i-8#Lkxx%V+f(z4z8Hw17>Ti%h&EaMMPCfWNQ_1Mh2|H1F%Tm$78B9- z%KQ0ZAckTj#$qDY@2!4fAckTj#-cwZpFa>oF%n}j5p5sskLZhm7>bb?i-~Cas=pZQ zpSMFX5@RtD?Ev)?eK8P2F%n}j5$!RlC`Mu|CZZjx^@+Y1h@lvXv6zVdVOpOUijf$LiRd4$`NdF-#8^y3J3`wh`eGo4 zVkE|5B3i5Zi@q3$p%{s=n22_y`is68h@lvXv6zVdQQBWI6eBSf6VZOD^@+Y1h_RT6 zcC_XfeK8PYF%j(;%`f_5AckTj#$qDcvFb1SVjzZMB*tPQ+OO1K^u<7o#YD8@G{5MJ zff$OB7>kK$$E&~Si-8!5kr<1KXj9c+^u<67#Yl|BMD$O{`v+nuMq(@`qJN_17eg@; zV=)o!ByFGQi-8!5kr<1KXw%eR^u<67#Yl|BL=1kN_YcKLjKxH>leHev7XvXABQX{e z(N0l+(H8?T6eBSf6VaxtzvzpR7>kK$r)qxD7b7ti6VXo7{Gu-gVkkypEGD9zuKuDg z24W~iVk{=2ouU4sF9u>LMq<389p?RFF%hjz%M*Pu5JNE%V=)o!%)EanMq(@`qMfDn zh`tzzp%|^0es(^8AckTj#$qDcIaZG=!=0Eijf$LiD>7kzZi;< zXyQWFZyC2hGHbfVj|ja)L-<)Kn%rbMf-w${z#0)M6?UFJkb{e zF%}ciF4Fv>F9u>LMq(@`qWxC=MPCfWP>fc@XXNvTVkE|5BHG1TuIP(_7>bE#muP;` z7XvXA6VWc!{Gu-gVkp{Wnosn_Kn%r5jKxH>%hg}>#XttJPoh#XtTi%h<3gDi@q3$p_qtvgXR}~F%n}j z5$(o&{!om>SWHBVv|P~_12Gnp71KNN`2#T&BhhZs@LMq(@`qTQnYqAvzwC`Mu|CZf$zf6*5MF%%;)78B8ar~aZZ z24W~iVk{=2b*jJUi-8!5(TezO`TU_6iLsc7cDt4<`eGo4VkE|5BHA75FZyC2hGHbf zVj|j|>M#0YAckTj#-cwr?-z)n7>Ti%i1vG}NA$%&48=%{#YFV)()z?uj70l`mM{8Z zAckTj#$qDcJoOiSF%Xk`^69of^NGF~h@lvXv6zTJ=5iLsc7cAxr-zG(L= zF8X31hGHbfVj}tvj`ovI-#8^y3{~;}348=%{#YD7!)AB`M48&MW zM0;5Ci@q3$v6zS!Yktue12GgMF%}ciy3}9v#XtTi%h}Nz3iM|+!p%{s=n27e2`is68h@lvXv6zVVwEBy_7>J=5iS~@< z7kx1hLopI(eDF%UyB675;dFZyC2hGHbfVj|jN^%p}i5@RtD{pa%e12GgM(Uxd= zqAvzwC`Mu|CZa7>f6*5MF%%;)78B85rtK3$F%s>0EnoD-Kn%r5wB?##^u<67#Yl|B zM6?&wU-ZR548=%{#YD6h)nD|*Kn%r5jKxH>m(*YM#XtKdQgzi-8!5kr<1KXs@Zi=!=0Eijf$L ziD<8@zvzp>3MTpVP>jS_OhoI^aztMY#88aHSWHBFQ~gC>48%~3#8^y3drSRAUkt=h zjKo+>MEjHai@q3$p%{s=n27dv-aiy0F%}ci-qCtQUkt=hjKo+>M0;2LMPCd=`?IEt zz8Hw17>Ti%h}NtAVkkypEGDA8r};%+48%~3M0;QJi@q3$p%{twf#w%|F%UyB5@RtD z{SWj0ff$OB7>kK$A8CD}F9u>LMq(@`qJ6CXqAvzwC`Mu|CZhdC{Y764#8^y3`$Y4L zz8HwHn27dQ%`f_5AckTj#$qD+pXU7oF%%;)78B7v)A~eT3|8=qe0nHGVk{=2eW~S$ zz8Hw17>Ti%i1s)27kx1hLopT;(Y{hY(H8?TF1zgS9TL$hdAnZp#XyY2SWHB#s-NhK zff%lc_sQoA#88aHSWLtp+P-$IU2b>SJ$ApX>iyU|(YwIA!CT;YZkYRt+rdq9zjZIV zYGLQXVTEah%L`W*o+!LsaK)j;ql;G;=M|qVepeh@+NE@C>73Hlr2*w_%D*h1Tt2@% zqkMb$(ef+hFUspzcB_0=8C#uPonF1J`b71WYM;6(b%)elS@&e!*LAMX;6Cg38Q15i zKG*kozRx>-N__|P-L~(3eGlq;eBU$sKHB$BeS7aY9FrFf57koTMd{z;D`Zd47g#yT?3vR@a}-W4;Vaf{efEz+-u;G1KS7QH1N5B zZw|CUYYl21bl{*92VF4e`a$;%dU(*&gT5Se^6I}`efH}2t^VTb@2&0zuQ~X~gAW_L z=^C4_F=35hjX7)FvqtY4U##(iAwL;%@Q_o7d^%*{nq${IV$CzwykgC3*SvSlg=;2j ze!J#?q1z7Kf9NqoFB^LE(8q`VWvI8-+G}mP)>dmxS?jR1&RpxFwdSt%^jdv}tv>AV zVMh-;ao8!tE*Z9H*s@{o46Cd?Z0+%D@38i-);@jhOV{pPyL;{BYrnJh2WyvxuQGhp z@E;DJIDFFZ{f1vU{PE%M4qs)&4@PV;qG`nbBaRp`ZN%jxZX9vnh^I$R+huseh+_V8a#-lNwHInAvb|Lr=qiQEQGG zGiuXO`;MA6>cUZ1kGgqOJZjOXS4X`)>Mx_d8C4!VaP;WWdyYPE^pT^((N~V1H~Ndw z1J)U{&X3pm`8s>7bKE+otaH^mcdzsCI`6GBe9XaPjvF&=Oy`(a#{7BAU&s7y%s<8y z*B!dubY_ zjIe$-l4t{w(KgtAY-`vSHpG5vYuZ*e)V8s;%(r2-gRO0o=rNfd`_khetG9#cb%c$w zW9T{6*0E`}uAO1)*>7xpuKh;4!G2(!wt>yH4Q;-SwFhk@>#~jQ3HzZvW1HGbtnE*> znZ0X2v0mHU-e=8!Va=b~cq@Bb+Zx_Bwvp%C551q+kGySdOYi44-kV_Cd)wI#-u8S9 zwS(>HHQQd^L_W0H$qw~)wu`-8_z`1QyUg3o?(inrTyJ;#y|;(`!P}ETp$)4zo|aBkXhUC|k|_ z(uTOBZ7p}4t?j1T2zP>wawpnG?j+m9O|u`lU)xXI$@Wusif!el+jj0$+uogKd$`kW zPj`mx?LwR4+U!twrcHBa+3D_FJHwr4ZSH)#z_r^9_Zz#^U0~O{3$4S=usQBxyUSf- ze{h%DJa?JRcURg1ca^>AuD18xHTJo?*1mHy%@wY*QsH{5E8JkK7jCo-3XyGG=&&sd zH`(~YEb|LD+s_KK?dOGCY(imODaS#goo6`!+Ji%V>1 zajC6UTxP?H&s%-*6;$5(iUE+JkDFQ{8O*Kyrnm$ zyp{KZ@_27-d24Tz@;2VqW#4NmH+kEYf9CC2-qzcxJi*(!yq&j8d3$fKa*1+>uxF;%rMmNgRA={1 zb+vm_{cJ(1ul?>ibVO&Wj~p}`9ei-AD=%T?NbMT)b>;J{-alRPX4#hPwacye+BFWm z^G+hGPG5l5_Nw)@OLh~}rPV!?>P{y;h_11B>bH0$)rl>sK0Y;FOH*s=Uw$gp+BMF8 zG@W`wwml;{AH{E2w+PMGvhsc%o-O&hY{`q~y}+D3^WQ-8<>ymDiQ;X+BTB%wn+=m8YJ*V|wHl&nxV+;+U*F&*FKjFm+-}b~K(!bwp>X2i2vT&)@KLx||O)tz_r) zCz-AprAP0R!_qmAdv!3&S$X-*C#8LtwxnnLmHFwMCw8QMd`Id>Wb6I;wZrIp&8_Lu zs@ZY=zU9lm8LcUeCXEX1+@)`M`F5zF#zw#E=Zo`Ik>2dhJ zEm?WamDiQ;*W!8W{EKt3;;Pu-U(EB@+3C5+m;c{6``cybad~$Atd(6q2V~bzzCE?s zqc*EdYD=$;+0#?avr~R{wmc=hLTWR{2Y3I7t<9HHyM%esR>XIhm#Uk%9oq0fs@Lt2 zE;G+06SKACOU^T4zJz@3Tb`0$hj$#2&cE|(JJEN;rRl!!wItPJc1z=J%hT<-_OVod zm86kNm+sD-Q;yybU9#jLbnMNCqsN?dG`jB6bk04NrF!G_sV<&3mH31g(!OI~NF(|7 zJf2$p2jy{kZwsHx&7B^Bslgz&cbTbvPkyCIlCtQt6!w^Y_m@~^_rtoUH5nC zayB|7)p6OJt7JO+SLvMlWJjR(h@F?6_qo|M(2$+?-LiemkH$|YrM>dK+bp}fwpcBV z+{v@`dmG`J|E7m&n+rxU%#B{ zEtPa%da|qZ=B!$X_e$fdypmq|2h}~w@_*Ns?&B%fr}6ygEzizizij(!udbJ}x~TT7 zO`P*IOZa5ba&))-UPf#8;;HN!$oKKc$I`XDmg&swS$}t?`7!x2^ZVbD-s$x_rCV~- z@u|=E_v+uh!IE#Dm_|O`C!N}N-&EI_n)x$R{WLo=A7s~CzF#+F_xLSWrc?iz<-pqN z<)FGhvCNet`MKC_zqD8H390taYM$D2U7NLrE&qt+Sf=A|`V2oh(?f3m8h`fdyd?fp z{><X_SlI58Tv-nNR(=EB=rZP+WB)bP|wBT(1%}K8=ZdeDD?2`o~pe9-^#Y?)lBm($OplsM_0b0@;toqGa`SIPRQ=i>;90QyPJ;Rg(d89P~U%Qv`i6YaB&-3T^bviY_ z7f#IXyOr;e+GXa~-Zl3h&Ng@4p6d9UPC!RzddTgmKl}AmcbuQonI{z`=?t{yVtduu=ecd&$WE{y>o74jsKl1bLI8^ z^SWlUob9tbmY<8dozw04zHL||dqUOb=lmT%Kd1S%bb9uj{q3OidADWurvF;zYme~w zJ8xsXv!~BTYx~yvmCyD6>t}uXbQ^tBsuvObG?n3J)KY>1Y=_0gc_4Lf%mgz2;o}1~) zPnkUOzgH7BElRJ|`o8JWTlrY!_t*bFHGl0f%yadetZIEP)BK6E@)oYh+soMgj@w^B z$KTY0j?VOu+uy~X{rZP!?egJ8m4x8rriB0Tewy775eat-=WhFF75Z9)iC3;do91?@-6wlsbMZVs4r`oKW9L? zu4hxf>4~ZTzT=;-tB~clJmVddjXC67Qk!|cIxVf7^XFsj)bp~DpO>t|y-pX`wOg-7nr_OJH) z^l5m=%W1@A?^$;)PM;(Hn3C$i9n&kJZAv;dpC_L`pIUo_^Zl*86EDoFm)iSrpi`X=Gq_2j%_N@O)R&QKmJ8{xGasV7!ObV@dMKHmH)<+|GLyr^LtZ%1oE|ia#%Y5b}gwce=60r zI#WHMF4cV7cH1wlh4Ss`-8bE~e5>-Dx#-?!h~#^eZ(F{#?GyiF3Dx_TGEYALKgZL( z_|I}++V`tNUP5d4E6*7D=xe?g`DkQ5GFkhcl25I@POi-IUcTk|)clUi@1v(`#yQW+ z?%dkDJ0IJO_eziI%43_qIH-1PGrb4@tC6VJ*{?rlN4R!8s&-%A+%Y`@wRb`7)Y>aB z-|Ku&Yv<{6Yr2HLWupQ4{^r@Hck-WzUs@B-pLF@z$*C?xZmg-)+q)U6W=6L2$^F{Z5P5k@r z(37sR{i(;EETj4TReNXcJ!uu<`}}$!T6@>8d}rlnD$i#5zSllIYmY{LerxBi{ar85 zqWM|QuYuaTDbFzZ5zc=R{wzq(^5S`GvW5BY^0n*AzZ1xh{2F_wNBGf0(xa4rAyB&w z`IhIAyync8lSlG9wDvB}N1yJPls}L1`!Uu0>DGO8x|S8=duh(kmy<8^fSTV2^JV@| zmzL+l+GXaE+p?UWuO*L6$;PZ|k4b*~^Qrj}&V6mK{0P_nUcB;^oFC7;Z+?B|{;KTF zrFLo8XE|-X?CJC4?ENC2%D65^CO@_-k382_9rYzQz zbt{ht<{9;%x^yl1Xyp1k{l}R);F$Crt$c-Vcw!nq01OX7c&(-65^;^KYNN+bun7`8(JDcTUHbrRle(Rn%D>-QH=aV9fn_r>7I>29bc)A#IJ`szEo|%H=>R& zRY&7DL>*tNj=^t)I=)z45C22d*_O=f@nviyemp%q+ZuIzCp#AJqt2S>;n~knXWQB) z_@ATBCh*OxXWOC9w&%N7kFRPs!#DHot7j8YXFJ+B{7$H|U09oEyP}S7Z^z?zN1g4- z+C09*-3I>)*5=t>sIw`o&9i+_$Iq`5@cW_8e#P26I}UYrJZtm#TDKX00&DZ^MAX?y zwljVj>g?C7)3cLNXQ!~{^xx*5gg@2x!1FyT{&d#w@wM+{e8~DeYeSu#$yRuF7V7M5 zw!*V>P-o}z==SV9)Yg+OW z#b1s(yMn&~@a#&|*;RHl{%X|OHFhliTGZKf?6+svqmJ*9r{Zr!oprF^p525x{*SEF z@HeB*ZehPYn}a(09sBL^1@m^{`l{p`1A51`H-WWPOo2zB;v?6+qRqmJ*TFTp>8 zI$Oxzd-f>m>@oJz_j)Z4RQD@I{Bs^P=I(xxp<6lG_-)Yamzl=J2h2!DbtEjWrI3Aw8jyijTqvBbD zI_u$!Z_nODoxR1e@%YO7F8tdZ8_(WB9p8M<$Nw31_8!N^!4dN8OVrs{93juXMxFhgBjnk)sIz}? zggpBWb!Ohvcn@{vyhZo|>a6H3#+OiXnzsaBMagO2GJGGDoaQaZuY!`(ychASqU1F1 zW&CO=In8?&KM-}cy7wA>FzWcO{SEvO)Y+O|4}K_0PV?Tv4@1dm-rM-$C^^l07hjK( z)4X2%DAd_#?|u9_sIxKNhxm0-a+>!sz7ci&1Ja-1H$a_j=zWSGi#oom{~W(D>iE9? zOZ+CN<2(DW@SCE}e(ZgN-wbv36YpF6<|z5i`wsszl>FxLAO9RJf7oIZyaIkZl>FwE z@H?R7H?M-9h?3vDI{Z$k;~!V;i{AxxwyW0vF#Lh2v%njUZ$X_Mg-r=1N^U0XUBPC@yDairg|IWPe7fW=xu^O z33WEj+Z6w6)Y-}2X82Q3XVbmS@u#BBPV>g$Pe+}d;cbZzQSz!c9)A`}UiG%YpM#QD zy(av5D0$V}7T=DNSG@`N3sCZ^w>|zMl)UOS<7c4cRc}Z9C8*g-By68RH4s~|Dw-^2f)Y*;R6nun|W4(RxH=*QMZ-4yFC^^X5nKZrVeh`-44?B7sl4|~(_G3x9Q?_~T!)Y+rnbo^te zv&X&D@K2zQzZ*FN-;Fx{exwcmG)j*3&cZ*7l4HGd@Xw*-SnoXiQqTEfG z6Xw|qsIwQni|{X@w*qep_3+nj0m)ZEgqK?0RnS=if zb^IMnC;ki6*_YmJ_`jj#Tkj71*Qm2^yt(+lqvSVt7k(&8eslBi!%*^@n~xukI{uDk z0e&Rvtlr&+Z$KS?Tk`;ZG)n#E9>R}7so&hg`1Me7o$JCkqU1Wa5WfLRu5*v!$D-sq z_XK`p)bV#Z-S{7&&Ng*VbZ_8yM9G1!2fqtS4s>tfcSFg6 z?rr?;D7ntPi=Tp$>s&8>UzA+u-pB8clIz@u_ybXLo% zbD!f6N6B^WOMELzu5(}Ek3yaO(tU$J8g+Jz`xbvJNg*CX0Dmb;?dJyJ zFGs2U++h5bD7Bv(g1;IiN4cT+Yf*9(e``sOLdj8XIQ|Bd9OXvhBa|HF8t^xv3WAwi|=L1$F!#)_VBgq0Ty8BmP#@*==qE{Ou??%8kX(MafZaWBgqxHKE%CKM$oQ zberPmqtt|MGyDRSn$T^IzYnD*bmQ<3pwxtJOZ-D9HK7}ie;9QZyKV4YDEZ1Y;TNLh zE4MBFF_e7eCg7hy$yaWBd^bwIa?SXsQD@J%9r24$XV1Ew@rzMs&$(UkOHgM^-6Z@n zl={%^fnSbNAG*o-7g6d%w-^3pl-%W};9o__U2b3eYbf=h+aI5x)Q9ds{F|t=Ke-nC z+o-d5+`;&FQSy>I6#o%QUUG-y|ALa2Tr2*sD0#^ph5rmCFS(=fU!deAcP##ID0#^p zhyNNSFFCGL`#b9FTX!PlaZ42%A)luGU3m4$mKzX+ov%*JnuQU@01;5S2^ZC>caZ-F`+SGW!TQD79kYG5jx3$KN|Xf!`bD9l6kr-v=e{ z6`sboqU628BK%P(d9Sb-e>6(oD=fhui<0*W%kamcvruO@ z7b^JKD79aq4nGH__AB(occRpOg?{+kP-?$IfBYRNd9^SAKNlsh76#$(LdmOz!T5P7 zd9^SEKOZHp7KY*%pybuUF#LTed9^Sc{{Tu}EsVrJgi`wz8t^g7yLMqT{t=X1S{Q?W z4CVd0upa(Nl=tgGBmOCr_v^w2_-9aRzrtAjvnaJ+VPpJrD79Z<6Z}$?+OM!F{&|$z zudo^Z1(e#ausQxE)Y;30arjqIXRj8v#QzcHUAr(I|2j%8Eo_5NP;zOZ3I8U_yLMq) z{GU+jz`_LlJ1BKvVSD_aQR=`#GyXl4IX0Z)F7NyQCo`v5SC6^Y@!Eb_6XBN-H{}`ptEVko+f>LJ|FTjsOsWXcg;kQJc zZB?9sACFRJ7B9j3DDU0H%kV!#$)Ck5@Dot#%;Ht}?NRb)@f!R@)bV%LGx0m4j3pMY z$M1?VHdwq7zaQ#s|6&LJ0MzmK*R${e>a3+W8-Eb$?BL=Y{2{2bLyMjG!%%037jMHK zfjVm~-hn?719KzUy--iJR4 z<$byM0RGn~@5{x9@TZ`>FBc!ipNjInTr%3-N6z`Lp;K{w$RIS$qP24odzk zcH_@O$)Cli@$IOy3yO>I7oyan#l`sFqST_rCHRX`YSH2{{G}+hXmL6Ia+I7|d=Y;Y zO3p04jK2mYXBJ<@&qS#|i?88tK&d~AZ{Q=8`m@-BzX>Hz7T?0pM#+=KxAAjOYPsUO z=o7_W^x5M3#22H~X~hrmOHk^x;>Y-9D0N!#6Z~?NI<5FA{za5Jt@t_qWt2Lt_$B^T zlsc{W75+7pcg*59_%~4AF^k{gdr;mni{IhjLaEt`UXhv&rDiJ@@b99|{#-2Kdr`*p ziWU6(C}VoXI{b$yV|vBD_>WP>^osrPpP-EC75n2qMH$m84#0noGNxA?g#QwC_P63- z{8y;6uZu(Q-=O3f{?!!n3`(9U4#R(kQrDG+<2{tRt~3%~K&k6W4frxjT~`{7ucG9f z(inUnl)A389)1;+x~|lSUlpaUD{X*Z4W+Itjl~Z{8Q&{yj310LzE|1=KLq9dx3npK zDC%rjX*2xVD0N+FbNmRD`lK`tzc)&KQrZ%~4@$jJ8jn8?rQRrQgP)30Z3x6TX{Zg8O|1HY>QrZ`PF-nb5+8=)zN{vxE5Pt>A z{ZeYdUxo6%Ryr7eElOQcIuw6BN?lPp9DgH9T~TVqcc9c2rK9k(P~Oo>N8@inc}FW9 zi~k+UJ6h>D{H-YOXr-z6+fizX(uw%FD78ds8vZVnair48_`6ZYkxJ9?_n?d;l}^Lo zi!zQ>Is<<{$~aP~4gVm@I8x~>{J){p5~XwSF-k2_IuHK{%D8>09selGxP9pY{NpI^ zWu=So-6*w0X$Jlolv<*63I17>TB39r{yCIdqI3m*DM~F-x(fe1N-a^k2LA#|Em4|@ ze+i|QC|!?#1*MiK-H87qN-a_9z`u@COO$5e6O>w_G#mdW$~|71gMS;PekgU~|BO;U zly1Ynhf+V3?!bS5Qa_aD;y*&UuS<8~KS8M(O7rlaq0|he`S>qTYKGDR{NGS&hSGib zuTkF7N)O=wj`EIHdIAEVS8GR9RN zgx?=!jH^5te;`VIQXYao2&FzL55*sXQlFHE;SWQpPs+pbN1(jll}F-_LV3R{H{g#( zdA}=<#vhAPla$Bck4LFV%Io1zK&eT}jrfyLYLfB>_+O*s+wxfaDJc22yfOY%lzdy> z1b;e8zAbNx4^i@Mc{BW(DEYR$IsR;vd|MueKNqDYDQ}5yM|r0!kH=qt@=jOY27eLC zJ6*X6KLe#EDQ}Cv6s0C9PrzS}GCo$`9)Bgu_*l6ae>F_yfgkfl=rXl zuK3$f-oMI|@OPl(%<>-ixhOfaJQ;r%%KKM&FZ?`|_pkC4{Ct%6ukyb51t{-d<^A#Z zp}c>U55zx!^8QtB!9RqOGs_3#W0bM1@}c;JD0#AcIR0^z%BS3le-dTYwr%__t7UW4R6gHcI_dJ`4XYO8rwl2j7cQ|CGDmUT_DDPaA4txpaovShnUqPK!E3@%+sIxwmIrzRPIkVD< z?}w5zE4ShMqvXuW9ryt#IkPesKL{mfR_?+NM#-6#dH5kHIkPe!KNKZrRu#QunZ;tYgR#}E0hw_eAS&rWlB~Mmf z#BYuAj#haY@1wk}*4N-nMR;CDdDrIokv6H&&yDsSU= zLK*L>yo=ujWxT7>i{A|;msZ}#?}3s_D<9$~qvX=c$N0Taa%trg{1lX2TKN>eFG?=0 ze2(8AC6`vdL=UWdMI=DUsFiQ<2ccxt%D4DKP<|<>e1|_AWyGxFl^HQZ$*7eA{wS2U zyh;gw49Z(xrGozzN=B{J;g3hDS}T3=C!$oXm45hXD5GSR{`iwoM#(Az@Y7MUXk`%o zbd)Sw8H^86vS?)p{!ElCS{aHz8zqZYhT+desah+;@#mvdt(B4Z-=I{jl?MEUC{=4^ zH2$|JRcmDo{$iAjT3HW&DN5B^X~bWFQngk#z+Z*(mRA{zzXs(kud*?ICQ1cc*#v(* zN(Ecl6n`U11zXt+-+@xWRyN1aLV4q>jKj}HdE={WiJyZqGFBOn??lPWm2L31p=9Pt z6aEgA%v{+PKNlr4S0>=^LdndP?eX(aGINDzwarJ#%#|JS3s5q1WoP_-D4DskEB*nL z%v_m-e+cClhsqxKhf#iUs7%Ipp^S`G_QF4g@@86@f`0;~nyu`M??%bemHqKgqr9=7FQa7a%2D`NQ8ISrX#8s^ z8M|^U{tc9jT{#ZlgOaf;Q}J)1WbDd`__tB2*~&EhpHZsW%E|cmP_lGoI{rhHEL}Mb z|1nCIuAG7Y1f`m-wBbKPsb(u@;lDu1%$0NSU!i2?%6a&2P%79;JN_Ri*|>TE-b2a8 z)r;^2lx$p`fiIzCB) zOA}pP=0Z!&c|zTIFzcjx)8q=N;a-OhTj?`8&{ve`zXISRJ-xp zqKueTpT88NFa!f%g~fvb!06Hzj7bqRhalnh*5hTjDx16P;hcSHHbq52|zca&co zsxRaBMES*``YQexC~x%D*YJCzywO+R!0&@H@>cD^?}sw-R(%V907@RNzKsu1a&Prr z{2{2bL#w^`!%(W(>ihU3P)6ITAL5Th8Evb6jQ=G{?yY`;{}oE^t$vC>9;KSCevUr@ zrJAjNi9ZRYnyr3?|20ZATm1%q3Q9Fw{T6>JN*=C$hd&)9_g1|Mxfdn(RtxyEQF3p! zgg+N0_f{+T^HFkdwGRIql-yhGi@y*h_g4Gie~XfPtNrm8qvYP|0Q{vW6>N17{z{Yz zwmKMpHA)3r9fH3WrGl*v#b1Xq!d4xIzX4^0tvVbZp^UIqN8)cnoz1E?;BQ8q&908d z--0rFP#uH+9m?oIbv^v8D5D3}M*Qt4U;R}#z~6~Fn_C@=|2^vLuIk44KcI{xR5!uj zjWUu@-4uTh%1Al6$M$;-5hIRiZip{}jqdLUnumGbkeo)n@#&C?g5g9r4ehj3iWd#xF$~NvQ6M ze;#Edp*jiw0?J52br1YYC?g5g$@o`LMiQ!f;s1y-l2Dz3e;s8cp}H?VK^aM??vH;H z`q2%G};rI_x@^F<}!#+mI!_}kkpP*FB z)uZvBqEyS(WAUG(RLj-l@L!_j)P;jC^@w z@Pklta@|Gv!6-SoZU%k`N=~l31V0odC)ZtuABK{X>#o2LN6E=`SK&vZxv0AfKOW^*;JSJEZBRxM>gMB{P;zqJ0{pfp zIl1mW`~;MoT=xL}|M2!UP?8_jVefymh-LayVl4}y$XcNYSy8lNC4^9fz_Y!xt3leG z(atUl26^2()3e)b&-AFfXIBH3B}@pxgb<7gk3%>-4v)vd9L(eK2oQ`h!7}+VAwI zz)t`pJ0LP=dK&yQKxEEz75v`=kvY?K@IL?|bEcc%e+We8OkW88M?mzw z>0RJo2BPmxUj+UYAo||)#o%8BqVG*#0{%51`rh=V;9m!_YdL)x_+J3g*`_ZC{~thf zw&^Rt{|bl&a{5Z}zXoD~oW2VDe*&>UPG1fFw?Oo_>1)9M7Z3~N^tIqg*MP`}%FWW9#v_BF96Y_Dofx;fap<`4){?ZdQ{~U z`1641QI#(E^MQ=z${FyV2Qro`tKcsJqDNKw;J*MwkE+}Q{)<4?t(778DIn|C$_98B z$k?o$178O+HY=Op10Z9w@>1{-kg-|05Bw|;9jS6Z_`N{JY2{_$F99-6D=!ECB_QLp z@(S=@24cahyb}CXKrDEbSAoA8$a=8yYVfxLSr1lT1O7H3>%q!v!QT#KJy>}i_&b2C z2P>}!eFI} zh#pdT8~BHS=pmK2gMS2w9#VM+_(y^0A(eN6e+%PiI zz`p=w-BQ}%o12RWfzY2aika@ZKHSjBe%*)lUgI@(?Uao!v{AwWc za`l_w*8rK9tA7f9Es%M+`e)$R0kL9LzXg6hkU6^gZSWg`%+b~FfZqgUj;?+e{AM8Y za`i94Zv`?hSHA~-8<2Uq`hD={0GXGoe*-=PWL~cR0K5fcUatNSd=|*OT;;HSauCS8 zT-^aa2V`EZo)3Npka@Yf6Z{a6dAT|bJ`ZGGu2#YC0x~aG>)?w(ELYVg_%R@stLlZ| z$AMU@s=L5n2*g@dy$JknAoF$gV(=3{=IiPu;B6rDb@fv4B_QLydKvgBAmhDyId~U{ zovL~T_!%J9{_2(BeIUE5)vLho0kXSVy&8N7#7D0y)7|ZGpcI$nI)&7X0-<>{Qi*;BNq8r>f3@zY&O? zs(J_bn}FDWKney{Ov$wQS})3JAlZd>T&RQ0+Bz} z7l6MTh&`(MLh$zhu}4+!27fOQSyVj%{yreGsM-d9KM;FVbqV|fK*kW9|0nls%OAI3PdhdSHV99L>5*1;J*t*7FF*7|2-i3Np%SR5D@*Ox&i(O z5dEZj4*d6l=qJ@p@P7wHKdHVH{4+rGlj?oo{~m~bQoSGi4}j<=)t7<)ArSqf`f~6; z0|u zYVQHB0XY#-doOqc$cc#B`@k;%qPNuE4}K94y`}a6@QZ=S%-RRRF99MmYaa%`6o|~M zeFXe6Aab(yQSd8)$jRErz^?)#Cu<)EzZ!^~tbGFf8X$7A_8|DRK;&fYli=3@k(0HD z!LJ8mU#dL{z88qhtbGdnMj$e?_G$2&fXK|+XTfghv4@Bk&U&f3bGN1Y^?17 z-vFZj)XoS0B_R4wZ729I16ilkrokTovQDX0!G8tFI;Bo75u|M z_WAJ;12?^3)SYpKMBMp zU%LbRVIX>1?GX5*K=icQJou-8=xMdPz&{N{Ppd70e-?<`s~rRXLm+amb{zbVfXKbt z3&6hw#1>S0A^0Byk$bhf!T%!=xmP;@{wF}}Keaaae*z){YfIq&8Hfz5b-@1%5E)oI z1^!=w$iP|`{Lg{Nz1kV@{|-d%)mFj(0*I`u^}+uNh^(vK1OC@QY&*3f_z!^Cc4`~o zKLn!1)z5)X0kQMcH^FxRvF+4f3ceGFJ*R#jcom2}r+z`Br}=_$5H(Tm4nwmjbcR)L#vL1rYgGe+~GRK;&Efwcu9)k#F_afnN!YP{3H;2c>Uwx%Rubm^-qAW0I|u`9|S)Q#3ob!B>0Pg*ktMtgZF^gWa^KC zuK`*2)jtKk4rJX||1|gj$hxooS@02%bzl8+;Aes8c=gYNzZ8g$SN{U|eL!@)`WM0P z2cqNEzYP8|AUa}5uKrE% z*8$P%>VFFUdLVjT{m;PP07S2=e+&GLK;&Ni+u&~kBKPXw0e>?PyLbJ&!2h%Um%tC! zzX$z8Ku)jKzYqRzfSg{d{|)$W0Xe-^{{i@K138IN{~`GA09p6dxs;pyTOhhteFymO z0@1bV=Y#(q5M8Uj6Z|0{x>kJ}{1G5Bq+SL8EReNcy$=34AZxvP6a4c))_U~|!M^~+ z&Qsq7{$(I`p87@LUjbt0sb38KRUmer`X%6B1G1M_zZCo%Ku%xOF9ZK3kP{d6%fbH) zhz+@Z1^Bms*pTa2f`1!`4Y__5_;-NVkn2~2e;0_|xPA@z_kh@q>(_#RABf$!ejWJV z0Ffv4>%o5rM4mMEf=>aFCyg7ycK}%-Hf{nxABb#e+zh@Gh%Kmb3-~k;In%fmyb46l zG;Ra01F;J=o&(+lB6Auu;1>dsIgJ+hE+8_eF$;bX5Si0pO_p2&MCLT+z%K=|_H5h% zemM~N(>Mfv1rYhumn;2 z;6os~R^yG}8$i~fjW>ax1F{Znycv8Gh+JyC1^hlBa;foF@cV(tqQ=|6Uk*eTHQo;X z3Lxvv#yh}Y1w)@XPqH8t20sd(qa=C`~n~+?VFc?KM}|c%I2luKLz9lW%Dxdp9XS+vUxf9lYrRCn^%B8 z8Hk;{c_sMY17as{UIqR$K?Z-VA;t5ZTzg1^gx;vaxw9_{~6MWAirf zTY$*M=5xSr1)_H~XTWEG$irp}yahxaHfOz8w6uK;&Wb72vM}A`hFd1b;mc zdDwgv_#1%8!{)2O-v~q=HeUn&W+3vg`C9O|09lhZUkCnHAhNOfdhoXak&VqafWIAx z3~as;_@3sQfbVO*8TkI@Tk!q=fLQgLZw3F?Ks3GP+rU2rMAK`&9sJ(_(e#?{0RJr@ znqKpr;J*z-(`&v9{C9w8dd+u(|63rMUh_TRzY9dNHQx*VNg$G~`9AQ6fk?LI`@tUt zVliue0Qd*Z4+6i?{4nrK&5r=T()=j!85evE&YOYs^9w!>ehZL(e!(ZeZv}F0=Yj{p zpAF>P&IO+Y|2ZJ1C@**zd>@d#rwbkh-w&kUUhpaKMIin5f=`1V12T7C@LBNVz=OO{ z^e4O!bjj2mQ_q`PntJinXQuvW>Z?;bxp{uyc^^FQW9L1Jh`ND$l*e}b^BwQo@!=i6 zv*QnTe0xXjamOC_?Z@ptf9CuL&;R}Nzk2=;&%gQcFM9m)H{?PRAO#jLBf1Un|>BY(mD@&DER9;hgL*?I8e!udA z%C*%StG8DFp!&zvU$6bE+NbNEuiw>pLF09ecQ#I5@GBSm%L{(%i4Q&Tdrxfcx_Z~s zcRg=cZ`ZHv`i)&*-Sy2~-`@2Pe(IK=n)#{27d`KyU%2Sa7d?E@>wfx8KYiE5KY#JH zm)v;Ct(QD-$$z-y8&Ce$lmGI`KX~#pE?v0v7cTwKr60fa8GmnZ*-J0`)yv*}+50d1 zt;=@&%-qlXJ%R5x z>Aw%{k;kuo_hbw#2NE_`l*{=650*{?%y9h_2GL3ZF&N~Uwi7| zkBIZ|)DwBd@|MpZCT(6@I?3M>uPZI{*O~g`WQD&|ys&hdzb-Ery?E*g zybV*E>hZeI>eN4&TAO+{Z^G=GTIcVcsn*nhzv0yWsnOK!yaO{gb(X(#Q_r2cm%mN= z&rA4wDKFyu5`U8aPjE6%ejjwd54+z--S21J@0Tma_pT?}@63}f|3wLR>!p|f;v>A+ z_7E?GJ;Li=5AniSi&wWE;SHfjc**A>Uf6kvFBP|VRpu4EUGkaaSI=v4C%VNw+g7sc zagT7<@{#2Ak9#QjP5vI{@B92+ef~qq?fiB5d;R&3B>(s0A4z`u@egqd{vl47w>Zh& z;w17rrdm5cJ@uPU*m2&0>GSz(CHM088~pt-e}^iq^Zp}$)oP0!s^jOqy?Ok+ z_we^He_w7sl>BY;k>tD!9!h@of=7~n!S9Fo{p|~0zoWJDq2!ymcU<^LGR@yJEDmohN>&a_{s* z$@H!-ReqX3iGL5jx9xf;Y4NuJet+emWQE_Wst+Z<#P4sw|9|oO{#}nG5At{0u2v%W zfBLCMlE3|_hmt2=L>w2jlH2+F>0O`Ex^3-TecVsO^Z!1Hx_Z(h$(Q*3-jgW%C9UKK zmpqdE(vu%b-u~oAl6Ud@;FDX)SD*ZIPipP_xhK8ivd<)U{mehQw6*geUHXd49!cJE z)n}4jPkki0oWE=NyP3b%Qy)q;`2FBhrQMTfJ^PjuC-y$=#M6>z?eFwDqfV@r)Xy@M1^V+?Q zjs!KYd{7ISi*N5<$wr>lh?2`2%5ypBuXKBwmT^diZcyIYwdI9Df2lJZcGpfxW{fNh zHz|YjJaVyObd-kT)CndRlE6{FZFu2j`fV^!9CS&S%^{S1le zNN2TwHtrI|$TTix&c{_s+aVWL zC?POCrn|-{8JDg_m@DWll7-oODcGnpW4U}uM|&Rh<77FG&NY{0Pg)iB&e}*vrX%G8 zM6KgEj%;Wb@{t#cE%8ca&#s;A4*F}WB;Z2M-n-r(c*n6}CyeYk?S++lV`o$qsq7$$ zW9!RQ)K(1zV{6da9%H_*J?+HaGRYxCnv`J=Rvb4<&PR2lMkS%1ULH!xkEtV&c)s-@ zxwhGx9Ny^lM8f>y-ehieZDX}FaITppkpV((^?SXJcP%U)>a5al=hjyG8IQRmo%Ztl zT5mH;oxNwH-D5OJp4)@YAWCP{7uW6W;pxTBNa%NVhx+Sda_&=|(TM|ywa#E2={8zC z-QJrFOK9_hQ+xLHH`bOmTkYYf*V!{OT-%#0c9s@yeCE>!hTU+}Gr(GlfB#v}e&&f2 zz5Y_WHzeh?(Tz7)b3O9}$YZMD8WW2RP^UceT>mgH3VyLS?AW zzv*eWL>>2rM6#MJkjtc4YM~a(?Rk$KJ@Cw=vMWZK=Q9SypFvZGB^;m~b3vp9}b*&ZxaCA*4Qo zL#E=jB_^pTwcu%Tq|E1FXH-T$Ol{HiU(yLtP@I5Ej;M`6XB0@1mmDcnbdIiaGX#{l zTK)CSK#-U+gjHW&G@N9iJ!nJd3>G`1`R?*kv1`b{*+Y_AvkMz1(FlACr=xqg=U`{8 zGr&vIKhPhDfZtqOvObzR#rJT3w68<==^PuGe}>>VW>&~k#1P!#f24D^f2OlMGx7`> zf^b*^MI0G|aF~RTI5Gs~=&!9I>f&@-S(0$wiFlb`M^cJ}OmkF17H%f9?w~VF`7#9I zIMSB>lOanBmXL*eZrR4=vKuVU-D(RGsRrT}ewv$^)x5J#5y;MG$#Wm?56%qN+e;l6 zZS2jv-5Fr|TU2CB%{bNC&iIkDM+C?X~Vp zVh*wrlY|S^JV%v2Q9>>79qA1Fy|bNM=zcK?q--jKU0(CF^&HP4`5ZA5A*5Twbywa4 z{oZnCaG0rJe&FKCkyf%CQb0P#VsGPA2obyKGQm%HBfUP*r8>&!opcQlcqI;*Q^Hy) zEp3J-e3tV}F>qJ`K!l~WF&y>LZyi(Q)P!uU?mQ70vU10TcyO5GdNK1u%H>=u?OyL> zd+7|}9OVQeUm8?b!-v{yZPeG)*R{5c*n*#=v%j;_-sq`XQSg^4oa9fAT^=MRQyg4| zgF}2;y)M$<`2>gfL=EJ;vy`Z@@Rtxa$2jKTu=&NYv~-elEWsgxWu?JFKlaa&G`p!J zJkmj$4MWz;JT%_*ZkBT?|qvt+qRZ;T)~mcP@qfOL}ED5BQYLm z>uTY0$wYzN(tIR2$i)|XNfzdoX+aiOjx%z~Y9l#%dLTb{_5thd&7S-+C2NaGRI{w% zn2s%(3_&7a+`#PQ%enzS%bg+GlEo>lrw*xx;E>ePDTw8S%YT@rl%!mK9txCn;tAn$BncO0 zpTLx*C{M4wJ|yY6;cTySmPvRyInhmVVPWOubw|_KBKPt3U~O(i=d8AN|DyxM6P<5$ zT@*ppLA7349?#y3X=XV&7&>Q4YcDUKm>mrI16kRyeCaTdmJ^}QZ;agHCy-A_FU*P) zCx={@==J)jE}GXFhr4xMI^zuYERwsfE^L;Qf;CC=%%UPeLW>ld>8XKC2Dr{N`1JWh zL<~CzH^82iTiHMR%!w2Gkff~l4|F@d0t3t4B8#k1i_})TNb^giqEB{(RrHV7Q$=59 zR+*|;{uKSN=ZPk-xs~&V}60cM#EP8qcujrEs7E#EG{;BjR_Yd-;+&j|Kig7zd zsOWJ=cdaBV2iSioA)|Jj?w8PA=NRYBc0zY~0UK*s*afyD&&k$tL1Pk4OKo^XuP{{> zy-a)GkHXCYcR1W=uPt?oTqrtaWScCD?4n?b$*<@`=U2_Og}J`yyNE4j1AV#7PxRq( zA2u*b;yT=?!}b?gffv(Z&*s>$)MxhIQD=?S&v=eQSO`jkW^|{qTyrdY2DA6d7C&a> zv24Dc#xht{jrDGw#x~Jm_pDfWJ7K^91vz0*=tcYJ$z}9d%$V9!411ix(Lc91+ANDe zx@R#+t6fg#(8q|yz(#k-QnQ@pdF?@0R-Wa)PB$y}Tx1h+OgOI_jR{z~z9|+f(lyE> z3L6Pyydw)>IR~4StNpccerqER#h96|n7RFH!!hA{2$ym%x3DYsbklsfr_J5veuq2f zCV8`czTWSyjm8Ep_c$=X#I@YpEcfML0cSVL`l3uY#o7|NbF^FL!w?*d^IGb!m&A2+ zvy2+XYPt8!OPIiXw;aQQS*P4b$ia?s zf9xX&*)g7B*<5T1F(5HN3`!~%!`HCCws3mT9+vn@f{X|3QM&Vr*#^ncn_FX=TJLk_ zrz33iE~4>3C0?Ya+|@x?Tp1i9;+f6Jx;AwJ{iCYAP1AwJ|6o&n}JeVAfw` z!=xAyrw+#Y-Pvic6hp9FD-weqR_dE7yv2~{1GZIG^h)*MqF*``$Au1Baxw7!P2^;E zDTt>-?Rysxtn|+!@8X&6`fU5;J~V(*f3+Q#`bfw_?0R&2%vj^uX3uP3L&j=clKA}D z&fuJ!WJ6Y~+E9`|wy%m*rzFUdx#*d(1eLR7R@CJzi=Fmh>2xvnh4!d~dH{1$xsMHj zF@CCSPvY3$k$TZ>%t>qugRU60>FVVP3H462%Cf9W@0j3CoZ~{$w~O_2Y*0enhj=gb zkWLf{!`A7}(wSnM+DX-JkLo>!$1gKxhWjyibCjnT4aR>rs}}u^vYlKK#4P5dDw;%p zW2APfvt^vR@|2=TS(nwgSH@<`Hd*0}Wzm?%`f}EloR(yDv4hMU92=B)1xer)vr;aR zM-v$kITQVDG1?z&mPUVcRF<=JH*le|T5J|kR}dYUd9{?$%-8-jdRbJNZiZG-8cl0B zD5XaOtSs)J;mq_-$!X%#B}I{wlM}odXA^vbb|rdCv6}GKU5RpEXZW96D+Y`v=-a!? z>`xY1IoJ)OPg1J`DyB36EthyrVnS2zZEVFPqK|do{5e*I!_(b$@@<{GG~Hv*mXH}S(;K<2N%=XzhOu1iaw^xjP(|& z*lMqLk#FwkPBDtuqF?mQ+4D;o#IQX%7H8TVis6*eY^R8dam^1nkYh5hw2EXl9`r{f zSLz*!lu2CuA!mWgI`N&TT?=D}4iwC-f6a=_(<|YOWKM~1tRs|o=Twby4tHy?#PfEJ`XOwJqsAtx5|7!{cDLucZ82Er(M2!D zugv5nQQGh-@legrb}~6vQWn%511Jd_HF=3It79xv7;jNA*&!(5m|KIP+a2pK z_Ro!yaGCwRaZGN`lrxya(;TGU-`*^VO1bQ6OgRIK+;Wd-#c%aGw^q&=&X5%wG8`Z) zdWF+tMXyZpXGTSa+{v#Z1DnXJ?UH~QHDq275EcWcvUnWFoZR~w=jqe11CnF8YTB$96EK4-(i{Z^AJCTKjhPQN1XXTW!02gv&L|!nQ@Gt-P9f9X&r8i=aJ56z?I$7JRM;@Us4@< zyFy-H;KJwW{<*m|O2%R4BBxp-{RR7@1EyTP>|N0IFb)<2%UYv+15d966a%DhDEQTv z+$t{ed9e`5j&jDC!6|M@uZ_xmsa5v5Ci95pcNy_h%tYQeT;%ZCH0f3Jzq5a8oY!;D zm83W`Oz+kgT0l-1F@J3olksP@xKms7)CR_4UFH`nVB;8UHB{CA=Swa%wN7`r6tZta;L(BH zIa*GHezY%`Ub|V7o8qEYV5s5p(@6Q$4d3;fdBm$`QNQI@rt29%ltTz&edth2sqz_e?0M-1u=W zW?9)yaW0A4p9|G^gG2A?V_`T##QoJk=Ke4nSMDTfa=0@(M}N~j$rbK^Q?oGeJ2#Yf zLgoj@PqVkaDA&Was?}PeF1ewVy5t_rp&nJj`voagG8aq=n!D7c4Qid-pFNf9L2?E) znbQX4gjlP)s{1oSJSdS%HMy*monF;6NL$pQoS51{9*=>qpV5~ zj#j^ot;z*tlSkV|PNynch9HqJf4g(77JcfxeKcB+eN!I^=VucQ6&&ItXI_=6h#VVG zL|*qut?7X&M|%Eh@34gDRHHwE8{F$Jq7Y&IXQYlC^@!vj!nPxO(A&@2UTD9 z1ohP)ec3EI%`UcK@q=ecJG_0C9M)Y=bQ;Yc>uGr^A>=ha#BA-P@21(Q=A;`tc=Tw5 z?ky(V+Yy5lmePq!cDWrzs@YCHYh(@$@32HOnDZivBGH))9gDvm?wp)na@a{dVx2HS zokSgyv8&Y|#pjlX*52u2(38!8Q^Id5Yl%nkp*=gpo#fy1@=25x-TP(B?x`V!bjL%> ztDdfdPO91ytb0e9jO?eLM~|0AEc;{&bVX`v-Tg|7Md!`6s$w_%GDF5B&51}znVgd6 zE0kyy@l%;Kg`P^c>Nk|Z8Tbol)0MGEmAL)T329^q!XfP+e1k)LT#=yrUie1x> zT>f;smc<_f4bfx>8c*q=c8j#!YtRu(Fpr`12Zy@))Sj}brHDH`TcL5CR`YxmZFDf-#T-+3I)Sdq#!v|1_Oz7O<5Ge88m4kd^`x$)o;$*? zRq0goz!$qE7J8I4WblvO>yh8Vj`3(1pGPKxkWE`)8!h;?k&iX4$ zhJf;(`jVU5`@=MGA`2;d9G*ygL|tm1UJKCL@oT#fI74v4T>EgwLn7PEP*$P~2Qs;Y zWm~8pf9XI=793J;IrOVkMVKV?S9}(ktnm|+*RSL-xtNex2%wv>uRP>XzqrL;R6})0 zX9y0B#NScSG*CS3#zL~MbE<0__p*$V^AJWdGg6>YR;pgTb*4~^o-Y%Z^{^#|nZ>P` zR*p*V!J-nvwBS`E^omYT0!j8{8rIN?h-{W6nmWWgzcNWZ&`m9fsj|T%Xh%xXvEdaV zrRWm`fxB?E!dfDK;X<=2OVI-z^o&qi*DJKc2&@#jdL%w>;6 znoz8@?tX_BFm`K;ME*>8RMoysjeaD(!5JAfWH|PtRg=2b{KIm|!kMMv-Wzo8)3gn9 z=lSFjLN0pAkfdL9*CL5qKcvM;?9MjZnr7rPf*(&$a zcwmh)?JVCDPNL~AJsQ_lLPZNRB=Q_EISR`nck>eotXk{ZT9j&=9u zPOVW+-oNZ58$*6qJLvj2goUvjuEuD7GlW6xYwUI>CXtot@yIJMc39~|Nms4Iwcm5wt7Oa^$mh~z^Qp2IME`A!Yd+M^Bf#fO?EFx=^h=ig+Dl` z+@t0G#z;{eNvZCyu|^$OBZ%D+w~YP#F=wl_GLLl7>ytcjWMVV!b~5iUGcff)M9ijX z`g)8#q^U#nv4zO|hrlrMo>CjKw0HBNVoGBjf(SP+ zC74zn@n#4iptEb+nDAEa#MW}wAKGi$H(AUNd7rlz-U1EAXIW*gv%(m7V*&4Ax|2mo zz|=ewTqJOE7esicG!v}{MB0g2G4)VuC)I--7rSEWp<72e zk}Hrbh}_AWh~IhA!}Lf2mD}zWxb|)I&e(J|)cwZ58%5-H^~UCX%X?ah?tW0aKJYmtXDpeTLRJ;_C_QRM5>bFDf*&A09s8mHCQygiSYG1sUSpD+SqDpFz|Eu| zQyo{1DsknmKB}b2(}YiUkMc3*X`Opzf!uXDTegP;En8%Wf|ML< zu^e4gMvn_Uy^d)a2)8q7EIGX`VK@j9@UUn{ky`HDJHMjYkc*odUXh--Byvt6Dph{P z9kwgHM}}aNhj`iKA(%;M!F;U=9!i*TSi=fQ(n_y@Y8E1=`uao2emf&rlcJ)&$_nKfPq%#_Ob{98>~N{Q-XV8w=Pw$ZLy;nZsOqB= zkO&j9aFpAN_W6Jec^JJH?^Ujlw2ye`kb|;})7WH3V;-}lckk~EVy70KXB*`hj|-s| z;k#HPb8uOsz(6)M4D%C1NKD9~`bRMZZBa}W7+dtlvDT&>_dgfkL)JV3 zA}fld$Dd|Ul`oA=4mw+J6GU3ejp^VKyS2l{?`#Jy+sw@K7OpO9QYBPL+}6gHE4|Nb z`SPgTaCTbszV-;*M4{m(3=NkWJERQErEP+vc%-rT+z zaI`i#z@4|#2({5^S>7L8gQ&-~Dd$;kTnt1-*IkE2!L0fOkx{P{H(F)MB-_b>OEgY( z2xoAFv8-OCC>HDx#)NnX6*<#piHIt0b9c5ihtc819DBKs#GW303F+rZ?6o0*R6WS~ ztoy35tJ$HJoYU7;ETFQq%ZpL^Fhb)L46YC&BAcQASNTyi%hkwQ~lgW zZTHyjb>Gb}4K7(KJ@V<#svuz8o_0b5(KSYBeOd)#{g#6m;r_m6uSk`$IO|!09f66L z2sl!&_qNnx=$l~Z7jhbZdih@?j-0dWVy_<%&D?Nq{Z1Atf=fDjT36W((`g55EZ@jU z`s*hSVuXYF=;`(vt0(z#j!^Gp>WN7bQU0W;<_vY+m62&vZN+R0AVPy@SFRcfmqej! zZRv*6q5b;;8ot~|lhqfV8EgKr0ZXqy4e`5M5NWiYQ1Y;_oyC`hCvz)q>FSf`cuewwHsB!E z*M8p;vGL1`1e#3h(zbNBSW@cHKcb)+44V?jHQmPY(Uf{fEsAcQXU@~KWin4GShHkF z!WH(Te7YF|8=%<_D6x&Ywm5WMcVq?TLP|2?FP6dwm)7Uns~oE9$+vwvpi~&+TrE>Pv%- zlUWbTa{9mvq1Ur6D3Zb)22D*|kudngoMww%Q%#D#ru9X>bR^k^12(u1YcFsv;=a|!-YksL^Ti*99uUUiXl^$DR>eC*YsI_vI+F46%Yco+3 zobGaJ6w#9&8aQ@KZIr+Mp{!%PVliatjAY+55z&=!6V~=2WvpoibXaP9hM`39wM;ix z@Uf1-=y#WtAc7`Cki14!8^xMR2P4X|w!rB+v~lRXp*0<+K9o0k(s=!DiDqX>p;m1o zAMg_0ml=^F>ULu4%xK5PVWK)^(K<_=cP?Wb3ej<8By#Woqt>Qg!jOFotYc-=gThYJ9iMqHmA5pxs{??U7xWJy~B-u=leONR4DYBr{Tx*%y4Q=NHNC zB1vl_I_alD<5PY%E;lmY>{2GIe;Gcf?&PRW&B;-1Jmq8X_WwLR45GY;C7H>ErI#UD zVi}T8DMJj&WT;X>q$?-?GIVM5GI~F*ObP6c=wu%@(i$xHLEj+W(Lla=LkIQt>CTG# zz^u*I=^T1PdNL;d4s9aG=~U&2{ILKoosQgcY$8lm5q-iKi?}%OV*7&;O%Gzo-0N(| zkyof+Mvr_!Qc8#6!lTv`F-F>Y%L^~P!IzS_-4k<2AT&^xs_w}rt=KF@cp~jS%UbFY za$4%Up2iRu{qmEwZCAb{N72|;^r+^*y&9z%^iN3X;F7J2K#*>gA#fYO;+vZfr`ZyJ zc{b?2Dnz(Uq+e`J`DmfkvCv)b^hit0!|OcN;h$Acyoa99iRn(4MkAN^=Gc{qL*3ry z<7;+dR2ur7USEpN8z^q|~`#C!Lrn(OslVw0SOH@o2ZaEUP!ONp*oGuO#)-l<|ktZ)l zA#=Nn(y! zEd{~tUTX8+-YMr92qd;7+Nhtn)02vas+W^?BJP!{W+(mrv^rDOPMzuJ$~9xUkDwk@ zylm>F1eRO_xv|*iAm4ym#yVw;i?E_R@tr;Klsj_i7QQWiy>!|?ioBwGQ{kXMhQXVY zTYS3BY-Jhmf=cgGDdmoobh}+t%9SR$NE7zLxy?+%QBNwZ< zrz}n2jP;rcZ1zaf1O_TXhS&rS>j@JWqW&;}E2;};v3V>FRo>`w`a6oZlxZvf+~Lg9 zID|)gn0wBwl!>lTN{=#NPi1e#6?K(T)?6nk<%zpTDMMx-yp+SbPN^5K3=g@eT{5<# z!bZh#qm3JmB|%&dEcLU#SL#)sQhI);G*Hx4OZ`(ZBF~_dvP9{+VvS{`M~wB0qKPVM zEPJla$MVJPK9(ud_G7uM{l|K{W*h5oO*hs%D!++??Q@nkizP>mZz1u~T1_p?@L6a* z!eO(M*#5_H*m89ehpk=<9ECDtw9X{rVwT-ZHftGWv4JAPnRe6(JUQ{Gs%a*cXgGwK z{5Y4JQ3^7Ag^b%%HW{8wr=oL+V!<|7hDUa(Vu2mb&}P}JHNx@sF#~^L-3-00<6h1$W6Sm1G8P1sWwXq)AcabqvSzvQvBgutcrKIjo~fvJ7CUm( zX>8gVUxnlSBN^p{nHnR?qKa4}5jd7TGcAneiXt^_U^|>%n=Yx7?1ig+o5*ta!t54B za!Zp99$6Y}W~57$MKMX~&8)@Ae12U!i*0LcWLAo8v0CP^4|kWb*GTS``J+Q;Pq(xN zo9oco=g%BwkuA_~(U%B5mq(Aq2AIq zCpUi9yQwdBD|Uxccg{c~7PQpDU|YkfP5jP&|I7yIs>Ndu8$f%osovw=iswu_#?WHN zf8gG~VqVM$@Siu}Yz zB&K3}eP63Sa*D4RB_sbFA$_~wjvYElWJZ0ClZpw;43i0U=rB8tvGPJj&~338#El8S?b6m%;ay#@mYTKO#`QUY+Dw|D+jv=<*OWo=@W9CV-=R;XM*Tu9R4pwocc#~J0 z5tvJ|_vjxl@MeCs+iM^7HvMGH8TXY%CkP@{f$JOy+?335QRhGiIZQ;VL(j=Int?{; zCw~n7LXvTjBcVY^k$k^QFaFZ$&eC_pGx*wS1rpgQ66IJzkt*9+MJlaOO6(5$YqHMu zPd(X|QYI6D6lWq3Gnoj~OeO*~&O{)FY%%O@7Vwp+3p=Yso&WUG4AmpUQ}*Yv9?3Nt z<0ufr%M$cf-5QY{dA`@33mcM;`e}%GE}cB0R*8t2az=EduDjbwe&hKjZFzskcfd(x zWD2M1weNOOfI@F>bvdU$@N|)E{Zer%H=LpYEswG5s)b`jAJ%8P*+ET{@p-^}A6cE19u*3Qs1 zBEJ+P60Bi`gJMJH8*#(PLbQighy13GDZ+r(iE2FL1TV)m+29NWzNMKZ$Q`c8-!)%)g1!ew)tXGmSoMLFVguV~el8GQO&2$Q=S9+jij9zP)(1{#=mOVo$B+tD4m za6-_FHyP?d-bdgOy4>5hmSQmXTD?S0e|E{EKNQO<-|!=+N6-$+{&Q#EFG>)j=E*;dKtUHEmm;X9di!>{F7W(7_-!WbXc@}xW&B>At$zkM_dXJo1xX3-Xp!t%gpChWqX~#Vy zDs3OR!d#e9cq4}Ou+yP=iu3`m9Jv->JDb;17cpgF`Rs-i%b3MixJ zo8QNSq>0!g(G_CMg)C!{%(!uJ<2 z@;dqwsS}O13zPpgnkL2iMOG9AzvwMai^P97Eg6si+QxE*fN3kDXx|C`%WFf`0Hvu6 zkwTl~GPl%x>=u9j!8OfgaJ1cL*ixb5Pas-MVryY=h&{-%oo>g-`$N7T`7IrzX&a;; zX$vI`pSdEOlv)cJ6T49$iNqZrbqBNwx44*a+2T(@N! z3lwcc|F)2oCEbNI*@-3|ktDz&`#zn@f&8l;Ol#>E>@>m29IF4)8RW$vl@qRAg4>Y8 zOdEzt2K40cFi|zo%E|nqU&hlEgCl2_MXfPzMWjCmO3({}SC)dXR3Cq}K^-DFLJWHB zO%hNE<-V+^%Cuw${j}{qrl-}Gr%9kZ&8@R$F;t;XpOpnrCLZUXC(CV#kQS##*Yp#9 znv>_rWhr?)4KtQeCEX%5oRem)!XZXu9r@aGl91&EFKJnMb0jAXJ%=t&!_m050hs-`{^f6j81ov=h^%1QUj9jAxrOYm)&)P$SqlM`|(aw&2#ghlVgZ|)Vd>! zkT65fEX?iE>(oxU+0V)9F3C$<>JrftLWm4?*|C?eFj}iat{0m1R?c;Zi|jC?nG0JE zG$~Aa3PDqjoYZCH3b}}coN1O3lSD{Ijwn)^EQPsB6Gk9eVHGKhUOmW#{_@;{98y2q zQN#N%k?#rcmiUkps=Q37n5>lBLdvXtEj86(#qMiPH|PrAlJv8P7{2x(C3sYm6VLv8 z;I78xv*%qRvvJ?y{6z1UZAK#Ze$iGzFrUfCUf9e}U+^ zv$+x0EXB>i>4l6!kEe~?WemD~Tb?j-<}g+`^ZKwZ1JK(ISgR7=A)*(?>0)3FC_?_gvx zre4zVZt1O?-f>#53lv(=tmT$~$EAyT-1imlmMnW5|8ChM5U3e~K_9xZg(Gb!ub9r@-^iSfv^-95n|=Q;py8X3kd zBYT`xo}<@pm8G~^&JwjdaOGL=)kkuF-{!i+g8jc^10z4Lx!Bx;Hr};vLpKT6Ds2L? zE0&7KpTf0?F#0xb(up0?Kw*8Lys0Zp?J3EmOzM_t#g=1*nkT!mO!M{T9MZ*ukMHAw zpySeq3wpNgXojVUUajmeo#DGu`3kc=!2;P9YL*j^t2kFv)G%Dp^?s5Kk00!e^szMy ztz8{cRJSjWNRk1Gra+WR^`{M$BRIlvjJg4(msNh?S-}Pv98_??m+kdS%Smi*mTa7o zof)-ZQE%=*Vxb};rOsl>5Tq;_f^VM;Q7R`x=%h9di_~9Fvf7DV@~}keR^gEQ-mz8} z(?;ea$oXdW3uvUa++UQsEELtY!z@D{mjZhHP=|-or7SaR%buo#A@dbw&5qOOJy%Y9 zK(Ap>-BqW&nkVM)Aq5TBZm>e8R74vMmG|q)H-0S+TV-g%4wY=Nbg{eA?Vh9NmL)py zwNpf)GGB{|A}*!t>PDlHFE5K#T7M;Vx5JY8`m^S+)Pn-@MWbGpJ4BOy9y*O7qG{mB zE#cf(qm|#|LdVAFUv9E7X&;SNzHxq72iPIuI1lQy>#jY+&v-)k#I(zxe1MPVrL}5o zEg&xGOsPw#*ry5EIGhls7m zp;A0i2%S@xybcd*UFY7Pp1N@qTfaDmJ%8+d+*R76eMgXV= z#>f-(2RkFbYGi`fcgpM;1?^sokfKjsiIbx~@?-h*U$YfTG&y-=ylD^#HzFxKvx(^m za%VIQ7dZl%H_kaWvKH7%B6nQ&HgsT&1{wvI3BDw@u}qX>>zLx~kBuqLyp%Ehf|<*Y z4fv2+DG$o4Jm3?UqSRb0XhU1_AT==ekB;^y#1m(?m`X0MMFzKcnUH`p=J>TS#qHJkb1T*kM@tRc3omrg{`wXAaAvsyx}KG^Uz3wm5=uJn=9X#}j9B98Yl)vSvw-X>FNzf3#t9a`y9V zV@i-`8&ilp+leLpVwSD~tOTYns!2ns^5D39a>t#xQSUr0ob_{2biDdZP@J_bXI5^I8MyCj(R&dS2on77}(;OJq zQ}-N(AIo9%epI_B_8`k`kt_vgiV|fxo+P3`<9++((Z%tUCapxN16Fu)4oc24V5!>Z zP);)>*^V}QI6PpT>hRIPnc(GbVP(TgC&jwqwsl-^-6YZnoD1>ka{`&v5!HHj-ZC|? zA50N!-Rn*qW)Kby+L!1c+}S@D6Qr})J^)Yf$aa7>2wRDRnN#8lol`WnUN=Kx?#z?& zT175I+ypMDG_>4z@-c-3BjSnE5rfx5-9(y8!N$$d$L5*+e3s*;1h&)?Q(!(!EVeD& zlKnj2omsUDRG8Mhn{DZU%GVF0r^2-R@9!^h0CsKUnN;^x9l%pU>7zasDVG#O)v*cjxMdx&eeTSSZfz;+Msns>db|vhEJb>4`r)ORuSgZ%s4r=3v0MD@%N#LP)6_3R z#8lJ7Vv0>QF~#PZnBpg#nC8D05Ys}X#zfc1?(5F!K9e7bMELXlfC(cl5EyC!Plr(;S^K!R<28LbU)x`k)+9+zkf!dX;Ipol zW-Up}K9xlm*Bv_VT%@BqpA(qoF}>Qv#^c1?D>IzO+9FqL=IH5-)syQS{I-siAxJ)R z{*hCBGw+W_e$qe2`AOOMa7x7O8Zn}b(p*_(agJF_?qp1hZ>m{_GX&*L?PV!fG=7b! zMMItHr967{I`y@exl-@gEusC8^BIZV;xFBrTT9+Ma;k5?Z}~ss5!o_amnlum(~J66 zn`>*%Jgv&f3qDkFx{rm6BJ(Xj>o*%?JP&sGlF7=50l_@WYv3x!^}Ca#!2CH%b7q(W)mH?Gvqr>N!nk z<#8wS^njr!NnMdkJ-}i$%tM-bB595bt`>)Mwyk(%H~p3w-pk{Bww!nIVTHc;X=(R} zyn?*RYeAN3@D^3TM;C}WMcki>O=q>dW?s$_tLo((vF={vFo|pxSIA==dBHP|x8P|_ z?#Tn!4s)_nv`(abS>7!6C-&7#8p^tP!3&8gNB5OYK8Gy#pPj?~_*3p&n0FNE!Dh`@ zf^-$Sx$YB0Mtk*>l*jo=IKPP*m@@>8SqDUhtdSPUJzooQN_v^y038wq2RA{~Lv~bj zjt~wZN^1EJsMx5wm&D|Bqvsq&Au^@287WJW+#bo@($Z=|wMHImvOa`uVQ8WyqP8t|`c`z7{V?n86o2BXJ+%M7bP~^?L~-2buQth_&Kcbx0<4 zurlB>b$3l2^m=w}tt;`-ia?jNXNIX;DkgSoUNi>b)aRChYk>nE?1OG-#)D(s7C9&i zT8lC+$kQC3T~~>iQi5=(u!}FFc+OG}2_Z)c zJ(I_kZfo7(l{)Dj10KgdXT#p_-)gZDo3@*qv;!uQ9UCnj?w?C+qf#&-nk@3$J{mqp z(nnX7_fY#@WsqM9>t)Q$@b-@RWGSk}>A5!>7Yi%*rg9iuFjX_gv%#zNBM661g6J-?ynrdt9&eLlgf+W@6{(1y09ECcP^e5W)ie3k^^YRUdSv!1vR;Mk2Je$n(^A1mIqmxLEAB%ad*Xz;Cr8fJ)JGUOo_7|l&@)C( znJFTtFdyzm1R1*-f^hJGo*YY-;&n}*PaEVu_0*+V<0K<>>peNv;+Ks3o4cqE(dUdn;?YL`%l z+GjZYX&*dI^fTGPrO*A$ufZh2?C~ENLrRj`%#lU-)TBhWKRvxd`b+AgV!mAhOSi3kI^JCV92uv{%dc~6N_MFrxrz7`<4 zQn8#0oLMffZbr`_FmjBv*pX3Wc-jEwmUMNgO;AbB<3e|qcux}V9BD}w>6!X*pTD#7 zlKA)&(P2Hj*k0+3tS_q{H|sRv;GlT|F1bKg32w<;Zx=-(lTM4=^p zErEg~M!C#`qJHS6UA8n9zw;}%6-qBFZ@S||dQos3i>VzGS^O}Z$aGN7_)N%(v=sA- z$|SA6;7}nMT!=m6$sJ7fV!!xALh#95_Vg2mp0IY4hFuIgj0qGQ5;9>ZuQAOJ%=KJ! z1Lh^@3yZv$3lfuC2qcfVHp0FwLnRd}zmXqE14S@q__aqy*1Y1t_ zB+0Jz0(Y|OXwptjWz$-k(HwLVJ~60i@tpu-9Ffv)&C?KkcQQu~Ry4IPd1~V$JQCZG z)OIHeP&&A|d5`NjSQr02`aikwP7R3_&V@)`Fh0IGRVfV{poH!uX9+8*p3_uzlhOt` zS;B`i+2m~lU&=lAqsP3Wxt4Nh4c=_Im6UqKF16ApFH+|dYyQf`z(2Ni<|ftplD1-- zl1p7qD$mu))Rk9nS^rbJT2YKvs^rk5c+(tM-`ld*Z+mR9t=PHLScRY{*O<-(s#i*(r#?Ak?sPbTxYPvO5tj4#nXWOa~{&-YCly;7R- zGE=11$>chfBxUJrElsDc@zQj1j)zGyEbDz+<>1GYzf((p7ingD%+zg@OTL91xzK9B zT3V&asY&gborA_nDNV-2-U1oEE!BsVtr<3ogXa+^yO>g zd2@^U{1IhBHm8$k+Ns4Ktt8nr9!ou@^V*NsFZVMx{9L|8J^qOOGR^7VZNDt0ldI30 zpNqtsPYxpsWcC%kUZhiYrrpi_FRKUB!~YSy$*pNPN#ikvy+pW|m~}-~EjsBdYn-Is zj`f9$7M0H=nwMG0bij7rfj?Tuu9(l!E{(=w?}QH}6RW1bfC|EfwwUGFt>Zgi0| z)Bw+zlkXmRmfGm*dT1*clk4HP%D6hYh6TygrH2W9 zt~8FMX?{NRm`rC!=Kq#VU;8X7u1f_-6|7NlC#j_Cv}&?z-)ARN7p}v@qmxv|nzndS zl@++q=p`4Q(@Hvn|GG9vhjkq5mWw6cv&1MX`L(nMTr?!4uj~avj6~zzaXtM_8o>JR zkZ@;lC6{FzYmRu{wo?@ z@@;GFzHy_Texa??{3@9Ecgg%OR9ls`lNVC9yOSg{CU|N?d%3lAa?ejfCrj&e zYrQ(TIMu7;aLMIT3t6o#<9}w3y2>$8?!?j+$t9K`u{k6cXJh_Z zT2F>sa_~pZLo92F=lZfiKS6WL^xH6?SygS)pXjNq;7-%-(ue8&P3gTdW^5ix7JssB zEJADQvPrF#9NVg%%$D}pS}K|S(PGWjeN$@5WQd65WN+LS>G+z^8hdByDMjfrA;kQo z7RXK;TbGgAzoeyYE%Hld+jN{HWAw9>W4Duk5_WrfO48aoPiYx^oVi+`SOeKPXzSFZ z29DA5z4a+m1M^#l&!#t7<4vCPSmVo;d`8+{R{LhR6

gpc%)i-*!SrSOoZJi_5dH?|M6+bDFxTf9N{V*n<1$~t-r<`YYd0e*n+ zor1xgiq4&a=%vqFTqIn5*K9zL^nFbNYZEx@6~kwu0T_;|2fm zf@FPGvpy>i-_eKf$isK_LAThwpbsy|o0s(AC3z5ai(rF1ysB^TgPL$+itw|ZTv1e) zwD>M5K*gPZLnxrPQlRh+Er277eCOFaKM7yhd0)L z+UQUHMt`c0AN!9VFOyBQJ`bk=MFxpWaDokXi7glmjB$3A++d|@LRwe&_DU+W(q0P0 zI@o0kD-lwG(7;OEpVr?Op(yZT2bNJw$%XYd1S1V!2e5bjA%dTBHAd(x^PU|^_~|lM zhcDftSp0aon9CoRbP0?niWUC6iyX}TxhP*z33y8MwN?rHM*$XPv`qBqn`B)Y2@F5{ zdmWkB2kqS(rv-R-Ds;c2YR?iWvj>)4-OLUa8~ zY%f@NItj0*@Cmk{K;fZ@Sg$W8_Vtpm%AJn9^j0-)2O}naf~H6lmDLwsm50{_)rHrs zbT7ObP~=rnM*#4uua2+}6cUX`5BQ4`6fGk=I9C|5AoQZ2w3wXrHn>oBm@m97&G(0) z?FOoZklwax2|0y~qe86WD8-^9v&c|k0}`^n2P%NF2=?MP|Dr!4%fBdZL2*zL=k>^* zLcON2iK@#h{9P9uovto%T>SAGM}LUbX;t{4#J{3)m49W8Sqi%YSOh0RiHxCb)u#7=8ryYYO|dRS;4kik<|Ao@dAh+qgDKhI5;sf1zzw!m2~-ikpdB z+5LrNspLbgiIZD+A0b7^1$b3<@QEEOZqVWz9PZm-wN2p{ z($~~u;8J?Ng>`oDPvL@#t3bvTh>UZJ&*{T+)DXoF(J`>)xKWD1is%-hIjSErD7JZ` zUC?tN`CEd1@vW{t>>(ttkSry2VwT^A9||4I{2lK%+XK5bZbDVW0EvuJU(Hgxrhk{erii^Q<#a3Fy!(6~Pmipg6^D4s!E zi6-CauNV<=RFNu4*FYI_Cy>BI$ly1UDi?+N5(!iwjU*iNnav8AqSz7oxxkzJ-(XXa zAgMcWK)~V#k@^knQf@)v4j;JvdL#0X2CdI`dFR)lgD~j2+900Wg_1Ub{fK=zkT~x= zIt+52|KSRrtmfZy(8h7cyiLF+-r^-PJ$mUcv1hwW98v5CMPt0;as7Emf7E*}=IQfM zy#EU4jdc`$uC!wahrljEeE>YJX>Tuq0Ke9aCY{=-F3hsFjffBRLtJJ zD+ToWB2&fJcp0gTX`xt`WOzlcKNL7k_=mV)zlBJK82axtN5y22b8kg%SxlWdf9+PJwKp`*p=j3{!ltZZ`<7vO4 z8F{DUVzd|oVqRa>W-7q z6-3VY(z|E0rcd?fV*&HLMHYSvGRu|j2JQ>rBM|IQcR;q?k_nQq{&uT_d4UB3E z#ov>JPQ^{w2sRDnagr5bCFJ#Myq?=6=^x7d?Q*}tVybl($0hYS<|w`;_m_BGSkDwF zQ(k|w1Z40XHYOBTrxGTG>0!)TCrrYOwp{h#Y-Z-r^wi*)vFyy;#PrnYsoCkLatY+) zRxNyVDPh)bJ~TKwGMAYe&&-Z*dLTQSL%zG7+_o7@CTl;n!vpQi`?3>MuWqU@Z zC+CRzL-$1*#&J)YgMBfDdKZ0Gon6JwdN?U|hhr(Bry@W{~AiHY3ASZ1<+cnBW}N|@E* zw9TX0+#ImMn>==~k!H*LCnu+$IygT$H!(ArHT?k+=v-n8%^z@V2T2NZzn=yJc|0g47b933#n-6BDGAFaAvr}`M`{(DTPYVS$4@`sD zv!{nn&t%5tHuY4?yQ#&< z$WGn0ee2^Vw%@+{8CZ@a z)ZA2dY_7f3JLrq_)qAriGEkVq8CvJL>@3Jg!@T_H)Wnmp;IMa4O}n&fHkWmc50Pfr zu|8T25{>zK!n7k30L_g~uP#;W7`|#aEW3Ah`tRF%zIFSF6Jz7s z#>dBZZZ&43+sL)0MgqUt?A+doF&g#EEWTt|xL=!4*ylH4V0v;AJtFkmmz~PaPK<31 z3Ou&$;fHNo=Vm9SPF`u$AK6rbZ)qt+&5nFI)je{h8vv5-@kx4n(~-;w&Nnh}UqrYoq(9If<(Hu`bD%|nMb-wV?S@=srR34zPvx994he=&wT zIDQ(#iW(-lt5kSpP+0UDMmiYrweG8HI1x*jwgVHnIq)Ch++3=`p_DT&8l0Miy5vy7 znEgt?yKC@YZ9s!scXda(nvIec&@Ds@A{nM;;qBU%Tk3C%G0=Lfu!Ov)v9zV>T$#T_sj=-ae3-oya_nake?36n*4NHJ--6DPkuC zYV+Rd$?@!L&4$;hJQbSywy37F)aJvpCo@wMe`JFN)rD(^(&E+{+~vYF2HqlDc2%j$ z;U^|W<{!_E%}zXCM+0|iottXZ83Jm|?OJJ|XrP{`^J~&`i&l4It?CqdtxBA))F2K(8FMX69Rg0U`+-1P|79Gb zr=ckf8YU+rb^H}^3eb}rJO>pxx(zLjiwSPkVgb@6EfiORdJ7fBDwMc#w9_aT$W0)i zaYb&_B7u1&AMQOnl{q~zHgF2$%ubzz!k*WDnzVBFk1-lC=4d(Pw7V~>GuwwJGZRyz z*)wy9VvtJJBqWYnFbphO&f{^}sW6c}UQ1Uih+%%?1@jjnBpUvWDO`TAlq~H|~EfHLgPE{$981|0%UA;6>HFt?_oQ=_ifi zW2uWr5WJhr=Kr@+yJM}x?{&ZaPo?&SOxW*pn=&%D{Ed0c?FKf%2`f}M#H|5XUBrt5zZ=Q+^5 z`7nFAyaSsL#UCb2XYPrK8CmkiN&CU6vFUNBz2-ypzW`H0fe(%6nh&@C8m3DHMnt^% z5F{&3WuF=mmBG~_&4=PYt593bha>yBWDtfBWNtPO;zie`YCiPnMV!Xk*XG2Gu4D6I z_5#**W1W{6@}|R1T$$V)w!SP4InnVGDA^VB0Ia1rTq#mE-x081lz8Nl#kh$yR#C{={*LVl=&*%WY)7F4Eb zY%JyJ2$pO=rNJIBM)oOXv%Q(KKw@3Obd68s*xh@kr?KE1%hLxk7|%^0gd!0h@(U0c zoEo2*MqvBsEGWxT96;}#${l_R>%nuUCT1Q0m&qovQYq#b%sjpafqd9v?d5Udsp;9X z0!KK?uCExCFj7~-Tn!PKoFBLRIfc0W45F1F%QbLMuo`3fDKhRJY@{2Pwz0Fnk}%!l zWh*wYK6YaE?7@jC+FE0-Pnc`UvmAtAL6QYOiH3pbp{7zC#w?1VH{{4!5g~tb+;A3x zNFbUjwP$k-;xbA$Ch|y08_TGgAUlkeWRPuh7<@E)8k-O2BqZ#xsg`6V4rd36GwuR7 z@+s@cOv+XXP=Fi(y>T>$&1`t2AB&|RXn%GbK|7mFA;?Xfgcl1wa&*j^gjt1XAs4$H zc4CjR_i}B-i_9cuS*(ZSr zrQirQZE~Lou@(`^Ob*V@GMe9=Fl!_wJ6^VUn$*W)t*iXEd(M()eNN#!_62KrLgV}d z?Q}nShmMnIGDjskIp7_=gfgxrYC2OXVbs7fHXnWrujR6t*|8=ZiwSOGl$(=o(k>Xu^OCCp=1?Q4`|FSgvF8nsI=|L0|~QCM4sZ!gC0lza~VI zL6UO6r1^xI*4G_`H6Ml?P**x~&4(w0y`bdC#2;mwkQ>Dgi}%=^lskcq7JK2hHXnAR z+}w0?;zsGUF&296%||_2WQ*bGbo1dyi(Cp?H75xf@+_g)j5Ji;f>=iLO#KNjZr)hF6HjLvr|~o*=&>29EQl6qozZRF(Es*s*w&StT1p28-)B2iW3jv zJdGd2@uQO&o@vDxMaD*<@l4QY^u)M?wOL5Qb&Oi_)ok_~^9TU?(T|dAq9IVkxQ$_q z$-zbrw2^3X)Qhu>qY#A&#Hh2g8q8rm<9b+#AL1&9=Lg(N@mvkm&&^G0NK^q1A}%&N z#mFKfGxSFJq*avTqLFLVCNfh}I8E2_c{*Cwq%HXR>4ohd}CbmrRq=w6q>4GdYX}Gt=Wk zQyg_R9|KSUU_Nk$ix!%&&p8r<;26^t+amvY9?GBF*Y5s1l5ZtgIeE{i|7KE*DK z3%xjq-E~+sV@G4UV7U2^V?bLpQuCok?Pph0Hyw726*}JF5yZgZ_%n3P z_&6LYH6pSWHoQcTCS+_rhwlw!XPKXd0CwxtAWmS#<|Cx!|7F5l>-)h2D6GfQ&JNr2 z1)7c+bb)hY6F3==OODY3Hro|V7&9*9fgSNGb!4Rf(QSP@ZkL{F&5pj^w=EwWcogfIPiL{1`N^%z@PuvD zGuv<9F`CM8^t{5!oFS1`?L0I)vrMN@7PL z0)s}GT0A_PJu!jVUaa}&^U`~1&TQf_!8X*Wa(p5PRR@w-(=UQCG~TWoTV?0yPz;63 z4?_=AD5`b)VjwMNUj+xkhFTT{=W8)=>gX;~bEg!qSxcG9#5kJ7NkRv5f6~$s=o0_l zn4Ze+4Z4JNJ{-egZF>;^4^u8Eh;mS>H5D=TfUt_?{lPvjYO61JKeT;o{}dK7#8N@e^812R z0O@^+Su%vvdT2Aag%CQC{=Z5XC}4fE1zce^ zS6EEE3||D(Bc;d=xlaI!OOr%y|BR#F)AB*GS=lmVA6lO{oomhIPOX49fls>h=EgEp zIOgtT>rCc!O9mSaAB+*1va`CwOcSM{%9<{%gMS_z_YJ0xscWgYT&iRmuIL6OnN?Dr z%O*C+-WS6qu@z$@7Q15+^b5HRrYus{%ZLP2BD1;G+!}+*VmPkzSWM*VXqZBB!{WW! zCnv_TZAYi8IxPqJET;$Je*r^(SEc0$SQf}dfeucTzUMMZFM}b5zosAZ zsam}#(n?CyS$$0DQ1u6eW8FR}WAg|Ps%_8wE^e(9A!I3JuYd{W^JT$FUAnrtb zS_ck27?kJzSJkjD?SC9csc79x_hhl(TJPKTPn zMh*`TwhRvjrAJ6#+Xn|6umgvY3oH&L9c96=Ggs8Dvi;JbDO9K5Zjw(cMGluj2fS9} zvO0W`*s(%rpK!R6sCEpB(ybJSrEt7)5P^INwl)+UT312=n?r=T;X4H5u}V#OCG=9D z%g4T)3PS2WRNLU{u{2?%~!Amo8(5A#cbYFLt2M=U(Ls&@7ZQgVIo~usxfyw#b z*1!4>|D8!393~I`r}+2QzfGFAUZaDj|50XE;onX8_x1lVX}Dj%LlLxs({WQMQHk-|E z9-qW4u>SWC8vv%9H1=f!zgPx{+-nd`4i{3j*%y({eEae5*vCn8j+)H>?_BE++&y4M z%%iyef9;mfN&-<7#?OSHi=aoyMT;O9)W*b3A(bVBN`xyn&i}W15K;Y7M zXxqw7ZxH?NnMPAYTSs^B{{8NE&iT$A?_A40y^>U<%(z5dq;JY=?BkO^PkGy$qeVRt zmwCLNIFt)r@p8b^^g%~It8-P>3GWhC3|+tR|9@Bki@AxrMy=qQ6xW*`%ds3T9rBznrrYOnG= zZ&Ww&ME;vmsNiqyo~w>k_qffAshiyDYzh}wg_v-$26_*;OP|;q~@dR~^rbgX1 z>sfS7^UKq3(dKy4nzt;t1{jCO)GcPS)DGD-d2PbsGGofEp05JA9D(hzuZx;VPW)*M`TswA%iOXhx!GkmjUf+3}#c^-1&M=)icN!zS&w z&*6thM^4&z|4H#thfkV&_@oWD*#^V9se`RsJ>4$)zCvj=!*I1#7p9ugxjs* zWX`m>9`6URun{+j=qpL0Bo@~tyQana9~xm%!Ws}}_3O38?5&?TX`HT?bmdRNmI?B~ zoJ=NY`%5lpQTp#6KF(Cf20=MH&>G{#y!tpUj?3hF2g0c*wB&-^0?D&XPj{WLh6_mW zTqav@Euo26t}hrjy%;>fZE;)?PkI`jK09j;k*X>5X>>|tw|7`+ZhL4(2izVReV$w)J zEAtD2b4o2*<|X|eq3q@VpQK+pi^t`LPn7*Ji{;R$1+)OAoqrxvjo^^-@tAOnUh|pW zKG^9SRz4XTFDG#y81E^!3wRS9G!`{b8?Z*_IKEIe`uD<^>?TndovMP zkXR~aB2qgP8v>)3%mV2fMz5GACBtZ;Y0@f;UK1TgZx|v1VRa?pZyF%H3HS{_%FDRv znP79y+<`EMRmwNaLM<1fsT>DhUsx{G!h+PT zH%c7;Y-?&0wrn)@NCT=?_sN%NF zE$aQ^Pt(R{w&7#QlSUg(6WM6PY3-9Xd_MIgDLSN{tW&p@%Of&X+VFC1N*L$!!8|Uh z>dLL7S~O(U6}YHV>6IgD#PW!2!*WF|XFttyhjkJLMuqW2EO+FZ{&ZL)Dn&uP}bPf#u>Bt!D0(YIQ)Fr=|M3ef0VHSct~;Kf=Ui|2=!#d2s=u(Vzh z&!n40@gLO9qKI!N@!V@jJSP^Dcv|18dGj;Hz@oXtzLm5y?-Ng+-r?f;YrL?IRHJW| z>f7u>NP2V8Y&qqlojK95lo*5&&s0CrX$GcH8a^cs!7P?TS65+4IW8$NB*&MS5|`n{ zl5_kMF=^(w_cLb)3!ZKESw12yXc&e|i%-k*`ks~syUB^Z$sU{=xykb_eUWBb>|7o` zE$+iCmP5KPB59g*<|Hi!cjgN8;Fg#iZ{v$4hjrkZ0obConH>2(EB~{D6Mx=Ji)%>> z>cRgcEz&W)ni~yQ{Hr~uGN8BpP^G6pnOW}qTv zK>K9|DpCftWoDoPFKE>as7TqQ-7*6e*rfe3pu%lx-{2zhS^l(dP=C>yJ5_X49Q&B8jOpEA9k=%-C@fNnV4hzoHjFnY!;Y$Ezu)0>IqIRc(HutfvB0FW_m zCcsiak3#za)W`G#Xt5c;Mk{k_?e8u`t01&aOu7N9a-DPo-Wc2sn1u-`(C7zDp7p=! z2S`6+UHp|l>p^Dft8uU1o@jMBG34s*Z|RW~EccF%*5tH+u0$?d8=09eqD~r@qqRBo zNt|ir1G=4+>^a1IoLQ-oI`qE|*o3zFep;lp(%!oa{LWg08M$G)+v) zIQo7^;}^ZKO4j=~!J?(aSL|mKpIb@R^1|&~mdn_()Z!o&kePb(NPIanRpqIwStUng-TPh{GuQr{Rq%hn4Un4D?tZtL$X6eG$@ zxt#`nQ_jVnUD}F;h!Rnr@n#rp&N=Lxp$>cXO7d3HZ(Gh4{$-dK*^fBcnZ7HX)x)rC^Y(Y8_<+g=gp&D1W;i?vfRXi-eQq+1f6HE?9uO84pm;Pf``;TcB!Q7DMZ@wG{-7ga^3ddokPEB2|(#rHtC9gxBTc8h4SPR|fQWi3O_3g1i z0pEdB>#SF~Pa)b7-Bw)f87_*|LwQWv>$kTAVQ0RQFO5C-a?-W8J3gDpUEA9eU!&*I z@y&W36W<}{>S6Mr-H0QcjCLoFB~E_TwDQd%R(_jUDReY^x!J75J)r90;_od9*+57n zw`)(S?@r4vW6ql$x64(ll9Mwh9>K-nykTkJd7EVhS66riu78Z z|C+#>#@T?<7cf+-RO!)_>$`KHNbbR@wSW0Sv?ro%R7R@ZvW8)xD@-mq?G26Qa7e1* zpAO1c&(l%C%A0uon++)XjLfK~WTI|qnW)PYM`fdZ@TFER**!9)=Iq?7%+AU4C-nz$ zsARIE0<&FAQl&g9vuLRjC8pRHGGy8pp9WH_P~Q*I*Eu~O9D*OCm*@xM<*?`6oAmjb zSi7<(`W$Y0&zoD{pL1(lcYFWDV(E(L0InoYESN>sp}@ z&E?$JB{K{ZTx*n700tbW0MHJY4HW=Jd%z>Cctr~uG@nGF?yEgh%;(59IU6#yDH11bQtZw6EVXy^>6NQH-1 z%M4UtlSayb3IG*`0Tlq+ECVV4)b<8c0I1;&r~vHjKm}kI2Py#6UgktaDu7f|W}pI_ zR9Oa80I0kSr~puj8Bme(i(1VLRA7?|&43EP90w`@)Kg|d1%T?tfC>P$jR6&@yHTZ> zfeLI=w-`_Xpn5T&0zl#efO`)rVNZp>w&upql864^cD)8bk2Py!E zJ5T|L9H;=ybD$#S`4MiQ0-Lb|6@a<}6@Vihr~n-0Kn37v2P#r`JH`!EVDnf9Dgd8% zpaO850~LVz4pgK(Ki&;gU~_>36@U{Qr~rJyfr^x0C%Sj@{DgdWAPysmA zfeOHB4pacX=s*SFbO$OtJlejFX$gWc(l*-MG2sda+A|R`39IzOLdG@a`ZsL+Mka^R zDW=KBFgndN85TyTn0ngRwnVo=xoy@b68yy52JGpkeXq1zUbx+DgWHCE4ol| zbdlL4CBody>Xn?O6I7@6_Y5E*7Tw82kZQwis>j=2Uzy$)< z6>uFO(-o0>Vc#m5_zI{?PWn$gVm4;wkt$bL!>eS>$`j?C zr6FTh9<3#gSvSwb_iqr za@r=s%?LNrkAeo{#chpg10L)$bN3w*f4h=?R7SdY8)ga-<)hpd7V6)Vv@J##k(AM` zrY{lw9n+VIzQgq8qVGgstM6#d(;0V!+K1bPdoS(xrpl0ekFa~o)w$nH?p@>Flt;by zE#~i6#owDuUnTlmse6dy89xrC!$$G3noW>=Y6mI+Uvr=WaE${MfNLG7 z09@xl1>oxrQ~<7bpaO7%0~M(d-{=M^u=x!KDgcy4i-HOO4~791fSVnt0DQ}V3cxK6 zQ~TY+t zfeLKi<3I)AUI!`w_c>4jxZi;azyl6cr0({h8>qnMLk?5`9(JGt@Q4EyfbTm{0r-If z6@VW)P?5U*qi&!An?G`(0`Qmv6@bSbr~o|SKt;;)C*42=Hh=6u1>h+MDgZxmpaSr; z0~LUuI#7|i+cR#U0-HZ`paSr$0~LVh9H;<1??6S$^Pjtc3T(dMKn36z4pabMbf5z8 zO9v_dFF8;Fc-espz$*?^0A6*V0HYWH^nb`Pxtjq5KN$b8?x4mImVyJ+|M|gspIUeaTxy+l8e@(dr=*c2|`}U zvifQe_`TZLplPEtGMMKxT)Ai?3}lLHBJ|qoNc>1VS{9ItHp6(hSG&1r3ryu5^$dbk ztA+8Z>c;6z=elI}yPYk8T8`OD z&NAiG&6H1PE{uPUAI$kk5;tag-poa;XbWpQ+BrIk=yvA&YoqejqeYS#Z{uu~zQrxa z|3FtKVF1{hlX`~TW6%RXUf3}zzo?sBA7=|0cx^6)BmM+e@wiIzYAlnD&qe2=O}KG< zJ(Bn4)iR;#EM(?O0jeY~ltMU|4EB7*$VznfeN@-so#d)Q4-rV+4+2$gHc*Rla zWoMOACodvc#n%kXW?1motL46y@iMn~XUl3Iv~&de_pg?7&dfB{HXTk`p7=r4{%+z_@}-az{S>gGzem%?;G(}521_XVh4>eG z$Ip472HJCxT*x4%%mRnkG1gn=qJ6sTd52S zNlDEoC6(2DlucQp)ZfXQ3N5LXP*!;qD!gW(cdo;xblE!sFYPUNVMwWbOib)8ai!45 zBrXp?5d661j2)U~k<|>rq$QTc_AakibJ1Z0c=58Bi&zR9QUxz9R&}LqE~=-jQUV(M zs1)C(VLw^wXvJCXk`(8MiD`Sue2eIwg=q01xcQk@i{QDhGb8k*1lNkqs}Y4I%onVPZA zDU3z3tidX$T$1IvRF>zNIhV?*lD90+FFDJ9i$9j-;gBp}XQ^hE%PY|&&u6rpac^^N z&(q}jGM|~}Cllf&<@s4Dp3dNNQhb;U7B7M!ax{;F7;zLA-F`dEZ!G>fo z9YwKy0VWzg$zZt{l)>~B#nKmr(;F0hhG_bIqE8h~4^Q;PqUpnlzEm{5wNz$z4$bUS zNaI{2aalaGpHs6hiJ8d%MP|P*St`rZJBMcWTHS*)+n(?KmNV{X=JlGiHIqLxub(8q zHKH%)^W?oPKKldxeVCVnbbkLZ#hdw^_%XNsdFuJHUA1?2=4M?)VJua0SIGOv)lTGs z+AaNN^r6Nr!}_~qKyP9m(a+S2Z*V{TJm5Hdj$TXXP0;9#)AzKTG86Cvmb9?>mhcibi-UEQI7tF#m2=a$%RBZYT-}`o0ZUy zxE@kQvuY)b@_KGm99=`p(o#JXlIVDXqs`v(2wm40Z-IgKj5O=%<6HvBMUUfOd>69I ztC3IZ<5cwXghHhlT|@Y*Yv4FtYrTv=RkCLC%9UJcxwXbm3}pRI#Eg9xYz$i zDoD8!^XRw9#hr5TesXb_Tzr^Z+#?siPcH70i$5k856H!zlZ%JAu(I`6h)fL+DqDL? z+3LiOl`V;OROBFKOE1dFg+x4R(~D-=`We?l%2r2WpQbyEM(RZv@eUgw8wG8tp#|+# zk|C5C+s`a$onxe+J%@ks%EW=T91( z^D}-{pMXotb_qeW6bH$6z353UBn;6Qy=Z3pLav8o`#7}{Moa6tk<;Bnb9%F}lG7*u zA9DH&*vv(*;a_|W(sMdlh1l%fJc^-a-;i2j*>R1`OX`TREptz4wmn-=NA!MXzJ193 zCEw&M`E~@pdcM5{TT;Hgo#J<;?7y4he{S$*vi=tH!O2=~8oqCap^f-kyV`QmA3>dY z2Bb2WADEeo{yYdw&P9J61n9o~Jq>EB)R*I$HNxUkG|9Ah5=}NO?xQKD#c4E^LtA~8 z5s81q(iHJQ;vDsxmUu=3qQhtfITfN6%|uc$nrZs?qE{AOj8^5uS5Y*METrwB%yiQK zY-aIVD|jw+@Gzl*g*eBy@Pf8b$!KC-KeNdO&g)3}KL3{-Rwqr+_(wrG#G zU_IKxlAEIM;L(z6h}NYWg{(piVSSv-S}vdN^+PT=m|A}-5 zCz*$6?H^!TMy4U!!ur?b!A+LzL{}ykdt(+|EsyePC@detY2ZobAzIS&5Wdzh6HE$L z-%XY(GDX20)qd1d%Y9~fznp~gGTj{4=c2Eqc)Fi;Wr{cJs6hiK@iOUGGjFH;YVj@l zITt)x;zRTc(apksHEi&c5HU+Awy(j&>Non;axti1{jykUR6e7JRz9=Itz0DGS-fw2 zy_#JoW+J_ByjXSfkmR^@c!yLsof8@*!OOvi!S0)TeNzb5p}whV`X}!lv(3U*&PLY} z^jf=}qc2L%X2QPe>4^Fn99VLhn4QU0XMPrwqydlqS#m|Sy&A)afYN*u-e^~f^_i8z zd2@G3j|7+Ym4!PKSkhN441S)j?HwH-riNqi>;^n*bZW2d9UEV*M&mI0#$coI@grhX zJ)7WY>QoAyrS8sR|FlY}QoN$GTq)Ob`Ruz-~5ucFLv&3KZS zoeNxjtSmg#i8h+pWTLIRooO-gdp+~JwbELfUTIDFJ-LuvM(5#4EhiIzjxbs5c6X&J zn~5b)q$ezq_}X;wH2SNh5szr2Q!MGzK2g$jTzY!$+TQW;I*OMrMCTKnp`J~Mw-e)L z(wVh$N#RT+Dr0^w>+@=IFI{m4RKFS%EQ&F#}o#YgvT0Tw$`w# zGuKV2q_@a8Dj!{pcb#E2T7%nF!j61LSY3sg1Li!lTr%g`QK)vv{3bab^G1QlQvJ8Q}>M#}ut(LZW9Ei^8H@XStvStb0)l|0?CZYfPC| z+pu0cFqO@XN8u-_nEu*gn%qw^^dCybRZ7uA68zRtt?3LOA1^(5q7 z$5rx_W?BEM3A@g_EcC4K`FQu#IKo9PmgLg`RQ(zJJxOt5Rvf2!+Cg4!dlpAW`=)Lfs+6D@00E1BpCl9LtVnt02G@uQ^nxae}C*FB?) zmjcbpMLCK`e@l03MzeO(C6u_Ctkg&@nRW?g<_iN&!X!>GvzmB4DU9E0`nAFcd#&Sl z(gh!~{&j!CC4U($>s9uQF%x9^MJOI(d9MEDV`o8FFG*(LeQ>G`0e%kD4 z2jk4DQWX8|2+S_3*>G+$axkaIX+?io!| zmX9Wzy{QtRsiv!JQ0<(F!bGJJxsFpNmj0m(j5dW z@6&q)ywlb9nID5P71MmL_qJRl8#=s$?(55BySl5LR3f&w1EX{K4rIvtK7Ye^I;oc* z_BEP?uM*lji)OT#rI$d&*WfySK(a=98JYPKfNZ?{WT+hUv&(i%DhX%u_Gpasb&_2l zYQVFi{0{9o z(qVkXG@Ilqhc^5zB7X_-qVb))X~$2k8k@F9~{=VlrZEXwuF$!WFtB8 zIBcTle6*RK!-z4ce3U8C38Qhugt#@6WgWa5E?F+bES5w1qfGH9`3zT*CH+z6$WkPU zA<0tG1X?UvZoxB6mQMR1w;7IXZzEkQxnwN8TX6d8&2(WxF<5cNy{6&$*G)ROj+aqZy>l2-0v#^A*fuIi$bQl%z?%(Uhba{Een;xM77xH{4ia zskuuMK_|NHbIoR0N>iK3)7Wog&*1ELn(1>b0#;}9F*L;`6)BPY+u!!P42Pyzmh-O0t;CBvG0N!_?0`P$Y z6#ynS%?}lTj~u7~FxzQ1Q~>_qKm~v)P_v-|@FxcdNW%L)q>e5sJef6)3ltDN*(RVG@>S}i8)ey`$s$=|9n3$w&^zw&+K z!Q5x2+((k;Ygpud6Xbq&r5`78*K06o?VrLl4wVD_`r4Rcw6cVHyf|s2v6d_SQVBcE z4wMI;v#B0B9?3{Jv=5f-nawZ@z2a<}@A+@n8dD;2ULsTgcv)mcLQ~*j2Q~($+nhh0zRtG8oymBxbDgf;cQ~-G6U^Y|$MmSIb;5CHVPywhoPyyft zh1pO6=yae0(B(h{U?~SG0NoB$G@c>(Ci3xIAm5@^>dQ!M3~37n5?6DRw@uHqNZXSCgW~s^7!5tj0)O z0I2yd1|o~-OJf>U_1#8xK99eYB`z;SeTu< zFd%mi5O1reaSZDZV7TCL8LOF`r;=VvdBI^#86iuI%O=aX>_PGGAr3;8ZIFkBM33n4 z`*O@ghjNQd6zlE2sQPmpYm>9_FNuzY_Z+IX7M+!Ki zWJyF>qY=)R;C1G^nUBn~WbRQ6is5{TN%SLh_jJ1FtqFJx5KWU5Xsd*^LM2~)9P&yy zU*ffxACd%v{7|5NFta_xkAPHu0?(QSe_`j;;;6!+r3%!XEU=SjVIiMtpG5ev`=r>_ z9I1Mauw4;SXX<{8X>FZiwA>&tjUiTpJcX5%3%RWRL_B?(L)3@EVzj(CFO4cye+sLu zjPnM0M(m$SSfU!1vhh;YU|uomM_V3D5_2hBJhbyTRnHP#EL2YvH?y!;ihhP2&4f&J zBy<4(SH)mp$85ZndN;t8H7yv)1*_sBOqxYE8y}-KS4i8Gi^Xj6t^F=Eaxy>JnaOrg zSc2f$Oz|btnc$twz*6iSA{K&Lc3@Z2L2y8}^YhtGv;U=R=k?jd?asO4-Z|AWXYw-c zR+hf<35SyFy#qZ{PdEgzD4ZnadOIT8d!m@gCq4c0ZB5puIG)3V8fa-kEDKx*xMahl zCYT10g@4O))>RDA^I}COc-W*TNu80nkgJs8GDCfI@M%6SJIF`5YWT>vK;!rxhl#OZ z73n8vkjs3(BS9W$=?gOPW#mMY%Y7z}tp1$Sgo)Fm7dXoc6Wd`TnuOmL=F!oM&`H@0 zFB&A4q{1&b)!H%zdln{()xrJ_PLU~C&|=g_rjC>x92K1Sr9ks${R|$(R}!*p^d9!G zLOgQ8+2sDJ(zZ>Jwk^yoID*Ux=gX1EWFyv-hO1Gj2PUJJ2vYajR58qT{8)Vx8;Y&s zc^zmK&p8+*t|%3Bm$oiMuOP0cAJ-xwe^sKlS|TE;58Am{$a$b}!f~AX#g<&FA?t!Q zT)Zfceg#ZAcQ-Nhc@$l?7MZb?y2uvvX0?f|mF#>Tk?{aq(`ljIZ27^V6|>H;yR*i9A zSY4{UN@-Cz)t?31tfImxDTnc`1Uz~T zJ(c3~x+IZaWTH3FR#j{oPMj3|TC8LvX)NYQ`leWYi$iNTv9C~PNSXN3 z-;Sr^k$KAOhGb6lY&@}YlMkc>tR~O7b$uu*Jv;-Gc&POmkfl)NaM~uBFnSl28+Wc$ z9BicVE5c33Cp?ErqD9_MOzaadCZlbwW{S+*+e?-A{H_aEY0ZswFE&sYDK9QFFKpwM zYpYFH%*fkw&>d`lP_PP*1pBsx0fi@6UBX_=Wu;(rmuJz!QN+V5T5|)V3SRn{_Lg|} z7bo^j(9~(mPw+roodlw1mn6)i<5w*h+4JT$qVcvO68&EMN$B{v&@WM5x|j-TMwSdw zqJPJ6;jH$2BeLykw9$DEHTMeAZY<;OyLV!NX?EWvIa(W1@Xz*-&ocz1$R(1@gZ7*Z}U zyQ69L7SbvKF`LB@Jix+oHFmFSsXl|J+G1Mkr8cM?vC$|cdt#GPVt0~Ka+HEGd09VY zj+anMl7QCcnl-=GM>wg?{xsjOGvD2TwC3Xd-vu{|Q%2Tnl{<1h(JE5WPM^APfJpTW zFlnRFiMK+^BVbQTSY=v+*I8%a+iH^}Lz20fmXRB@Xq`N6dW-A>V&4E)|A_5~c@B0W z%1`YnlbiCanHv(PBgo4mB;SJWNFJ_99yZ?hMci0M6Q9@f==d}}kBKkQ^Vs-$IhV(s z%R|dEI3lS2ncG~|+k^Uxs?jJi2{s1xH&tU%%!rh)YOR0Fsf`ze{Yz23UfjK6u}CfZ z51_v&<4yF8H;d6fK?9-oO!~Bb(7S&pI~Wf$tydmYBL(-Y8tMd zXt=8Iq{w@Bv$D=X`O8u_WVE|w73%m*)-EIZOy%k_RCd+L9HJSN zhfLJ$dZ|UZ9BOeTSl?nzaT>fUHW-eM@!_Znz*q+=0Ib=vL9YtHcn2x~tmZNsDgZ1Q zGoS)6(SZuUBnK)0%Q#R0U~Q54p#re10~G*P9GMLjfL;eG0IWkY8!7-SWHO)vP<5cf zN8=bQ?*=LWeGXIr`W>hM@HW~!R{>yglK~ZgX%18XR&byKz>{iDQ~+2KWk3aBh65D< z7D|~76@Zl-r~t5h%510rtl~fgfR$BdLj{1fTLx4BR&$^Nu(|^kfHfSb0Icai1z;@) zDgbLcPytxSfeOI74pgM_XFWGifz9Lp|k1V|?OuDE$m41a4D zzlU}!=Qa%AH^aNd;)ka175)3PkJmvm(ftiae@q)*uZ9mc4F8-qyhsfnZW#VGZFq?q ze!pSJj`_`4T&9LUY#9C{ZFspF{-|O2ue9M;)bR0!;U{Us3)S$+hGC1Oc32z9rVTJ3 zr42ByeTwUTl2dq;RcrDx4{{|W6Ftq*5;&hWyjl&PX&4sLhTl}fXB&p4wBe0v_@afn73c&Py@fW8^YwhWnUU&i*D*qpMrwwAfDO7Dm{=PdO; z-J%>P-6xsJRMvXDi$}?%Gn1)4E*Y{jo;Yxt#+QfbAWq z0PNsE1%Td>Rgo$HvmK}a?BqZNU}py^0J}I)0oc`nid2Yqa|0DAgWcUg1zzmoKm}k= z2Py!2IZy%E+kpze90w`@`#4Ym*w=vyzp(@y>A`NG0-J|8Pysm9feOH34pgN4I@}FZU^8-{0x-{k3cwK#Q~+WJDgbo{ zDgZ}1Pysl~feOIU4pab+aiGFOtncG4l#V5T_CD?$sc$pU`%){hO~2?5rB)hGk2Yz* ze+(Tw_7XOYqJ! z%}-W@(FLYUqQ7LiRrJNC+eKe$dW7gNo34ny!gQzTubN&8ZE0|ofu08V8o<+FGs3lQ zk_Nq+2JJ+IH0a=@?;1xSs(ax$NrI7FFZo?#1rzbt>;2}wxY^)3_$X`olYegbYbu$+L;3An|;@@Sc=97Uj_+l=+6+3m&# z((Jpiz6ULz?l*JBNMUrB=^3K$F};%L`%?CQV0=~K51Qt;LRc+ldJWOv7yBQW|4$iT zTlk}<*A@Mk>GefFVR}Q+KStYLm6wy2@@M}1+U#s1cAhr9ndoOsZz1|w(_4vt-t;!2 zUogF$=od}zAetXXlIL@_=vPedEP7#6SN9jdFCK}-UC~z9-T+wHYLPkPV13DRd&c>g zfNhNr5UZVJO1+CiSwH3}w=NtJvO%uRW=`#DT^Q(h)>I7{c7iJP+WJY^VSdUAHa8&a zP-X18f%vaeeD!YeFH`T~)Y{Ld8V69Z@TQOwUaobQ;-4}i9vh9ul%=4_u(==~43&G^ z27WeZb*BxFlXBb{%-q=S|37$FeXQ4(DyTj`??46MI0q^K^Bt%F9PdB{V1WY_fD;_3 z0DQrL3c!gDQ~*wLpaO8R0~LT%9H;=C>OckHGzTgGUv!`XaJmB(fHNGZ0G#PS1>h_P zDgb9YPysl{feOI64pacnbD#onz5^A23mm8bThp+FK`xsp31}Xqwcc3C=^LjT>kutc!4OHO8jSf@*zTrRx;F}Iq0B&-i0&uef6@YI! zPyx8bfeOI49jE}@>OckHHU}yI-*KPhkEDpEQ4up6kr<|7VNq-=iQ4OFBI ze&7Zw@ZyIKRHSS^>IN!O20wBG6?pNO0~LVB9jE|2;XsA^W%Dw;(G51Fy|K5ryVI_) zK!$IhbeH*=h2jv>D3O5qn(kfQnZL;kHH$6{uzv)=?faxPe zuVDIU(JPuhR`g8M$BE`Ab)?NdUi7M_PY}JD=@Uh-VftjzYneV(^g5=$D0)59XP{*U zh0hyA>O!$-12a3TX(rOlHZrqw1Z-mZJkgt(zCiRAroSY5E7KQ?-p2H$qPH{sWzjpB zzC!eD(_a<6v+1iu?`ryMqIWlat>`^Xe_iz6rf(3vkLjC4?{E5Bq7O9vZP9a0-zNGH z)3=L0%=CBB)iILcEH;ru|6T(eVc_lt;Ek==xVHh0GH`zb90Txv|K^mljkG@=R;Oye zf2?+&qH)@N;&-veBeK@xuqJobLS|1MV2(Ouf6pxPuFENqcLc8KmV zJyP@-)1yR>L-TIpzuSY9NBK#AlvMzJ>_7$JDF-S5KXIS}@U#OJfS)>00eHrN3c$}C zr~o|cKn37A2Py#1J5T}mxdRnm3t{kr8>j&M!hwpE%@^H31vY=_Kn36>2P#rdUv>i( z*nGu-ij>V)-9QC47dlXpviU1FP?0it%?(uG#p@1KxJ{`aSvRA9RzI#{MP{rNnTe*y zqtn%)Tt~~8*#yzcnw})O*Ysp@vx9);3``L)Tfp)LrV7|uK)-=%0}L4G6R?ZeSiwL| zz^(#TG%!uTZUSZ+pm-->Wk7QdcH`ukTuz_Ki9A@0#V2vn`G{o@+3I$W<> z^8iztKa*!(_RM71C$?!53p9XYTR*{Pah?1cLevLngs(4{yrqw^vhwajejk_cv64^1 z*E3B&M6Z%2XqM@f(bZc8tgb0)b377PMu3aOwT8E!5!apYD@o=7 zY=1^v#dZ=`vCX&p9Fw@NfE*^STNA#`mk`(Gn{i#=;x|j8wwCGD(H7Tr46NAz>q+Fl zXOGAxVwj26X&7#3V7&&|SZrTwwzo9H4Ka*1Gre)c;ud0YFSEFf8Ez&Pw-!zu{s;B- z8~)&{peFdW0~LTb9jE}jm<1Q~-YGKn37^ z2Pyy`I8Xuj(18lTM-Ef~e(yj9;13Q|0RHGeh1ZN2{K*Ye0RHSi1>i3ZQ~>_!Kn37$ z4pgK(|GOKgz~;veQ~>_rKn38R4padCNs^F?l;0-K*WPyt{D$X;=%NI7kB0~OfJ zI8Xs#d7(K~k#d@I0~OfJJ5b>^rOm0Z{zU$)tK zfukDW5Cg{uxLIr*W`LjI4XfW05Eb7=)0u!Jw^=J;f+s`!k&+KG_L4u#hc8%=PL$9bZTe)< z$C^G>^l_%Yh_Yw?4mRUVp{5i?=xuQ=oeZJ_^OkXJabki4! zJ`?S8$QK&FRQNfjzbyJZ(^rVTAZ7o{#;+89k?E^NUt;MNFw$0ki z2{T9bBzq)esw6@z=!0Kbkg*YGaJ=9??3@{HW-8bi9%~9A)_F5>g)>xvNd~{x5D=dju@{7BLFds?a z{l|HWs7S)Q7Vs%*2KmD8ygs#1Z!JZ3fsg@ z8(&Z8KEm?r%j@=pAZmirLt;?}> zd{S^mWEOR^thObRMYB=}@30IT!3IYx6?Q%*zDxO7^MnmobgO3DLWPgu*At&t?9C61 z>&UUb@&POt<9~6iN-XRP*fse5>GiRf&551ro#X_|Og4b1n`KuJHxl)fn?e|Eh=o^t zeRVPT!H?x<%=nqPY|k{7h|4nZe7rO6;|bF_yd{UDSHz=@a2v@kA$=QXs*iBP zY%Wh}x(g-Gx~wbay{Xj6)cdk-aAO>l`MEXOJDMD>br!03W4WzRG?(9%Ku63oln2=P zqxq`G!`B)tzmnA(tW5bnmIpFp`o`P6@>0%%?d4uIKIPG-wuLuI*=SR4maFv;iTn)K z`Zu>K(N+Homre|~z%bMW#9Cg=P&P1;I!k^PblK^_(nwt|{SbA|4tlSwEQt*2n@QC8 zl}JwAvL`v;4MbaVs;!jG#gC}hTX7j}&7m{oV`G#5 z>3D&hZBrpBbN!=9*r_YCe|SEg$H|Jdn50Y2!ttFv5%JMtue^lJU5}3#Wjd90#K9RP z{H6Raqy4XlxB_-9|0z=P+o7yCwlx7elKHIDkG#Xp z1k4@>p_DT#&?Do2t-{kcuqu9CPe_kT3i`-+Gf;e3itjAhQ{9E5?;bOP`WZI^g|K=D z=c$?Mu9)%}d{^}$d1R$-rB58pmirOnW5l;{a+mt;*0H$4PP^eOx>j}dhq#Qsj^@Wr ze}HbyuJ#?moQ+1qG|;PG)4cwWMxryHOpN18CzaM7axV0bA62OCDUuD8Y9mrYPzrS8;K>^2E6PZJv-E+`aYPp zb+tFbv#R^YPG9Pi)y=lY(7>2VSu3Dgu{6+LDYy5t{+l16Ox@w(p?6?q^}d)#UnOCf z>9~rM-jtEIxRZ^DiqU?kQmx1~xe8@3B6ajNY!_t*c=_nCRGXtq$vaz%9{bTA+O|q- zrOk5XHOXX;@UMmjr&Q~xw3bpfLpBnVW-7Wt0x0#KJ{v~_%U_|72hYiOf*HSd-O{q* zMz&v9Cb+ew_j%J=hIm$Xq70==4F!EidLwu7cxuT(-y>Q|4*EXPdf#mHkmzq1e?;_6 zrhg#%Tc#fs{cUu1prDD^PoGCxAiZEONlTYp|713|*HXoYP)UXr$*_D|KSd&M8J4rM z^>b1vmo8hB&1Qxbn;F)gsTG)Ul1wWVG{=g7qGedAnO~ZQR2Z4ylwgJ1E!|`+#FxRc zCV}+`678xy6AXkN5Ut&;wUP@l(0H`>SJ;3}qmh#mp~Wm~q5ch_&Za}%e7IVzOuHXb z+z_M@%ITM^oocYAEqCqNaYuQ>zwU(wQeK;ZrqW$rsV6Ep=I%o9Iwk=qbbO0vp{k2j= z8>tUWZ4${L4Nf}VmTDe<$B<$K?^tfhz;diD)gYr4{li>FB7x{Y*nq* zzsyt7L1VWr@~I~}7(dGT%=N}6Q7uM?0H*fxnfIZHH1D_i`RYZEiY=x_uRf?f8ph13F83bO1>qdz<*U%)-7Kj9k6^aIlnY^=kvz7`wy126Pmj*HmXO^O4(7I_}|CmaylD|T}CaLi;OIUr9 zoBDS#l^pT;m41_1h>pd{z^Oba*2mf~*!Zj<>uv1bgn181H~BpQS}~f&aOr6?`2zDe zaVGBqO=@blCS#HnGSQE?T|q|-)_U}1t3L*{6)k1y=sd<{F)<{4GBQ36_LRIN3OQ3{t5&Bu4(=@3njfl zNjl1?MAf|R$;YjDov?=A4BfONe}CHVo<7-kOY4y_!G?R_7#e)qx5?n*$X9Hd8b|Q~)|0r~vSDEoMUnV59>TfQkbZfKd)q0N6gw{7?bt za-agRlmiujZU-s=Jq}a=Mmtae7~?<%V5|cbfN>5~0LD8|0a)6B3IIFUSkP4fCOS|7 znB+hOU>OH00Fxc404(c3g-?%S(C-E+05u0H00RzG0H!%m0a(F-3II>7ML`8%MF%QU zx1Zq#DzG`zfeOG%4peNOnZz_eus}?cS`<4gyB!sPRUD}B`$?Uj4=&`Hog>dV{pe1f z4&NC?XGtjkvNOuEa5L1dJR9uQ$I|4F%+^ohVJ_#x>M~rm=BtxAWva_^Y|G}Vy`0;N z1^Gn`>3^KUseUSl&Rl&WM!h_UQ#nWD<-*JjOaNG$lnb6DeEVp9*99$y8)X4`{!2yp z1^&;H7-XVuOj`?@9MdLoZeyFk(VVHzrj3mElNjj6FB*gTX#}G;Td04Lb9A~K7*myL zX-4Bs&$Pk`XL8w}KjAD+ZSftFE@vZqi`n`)oTGE)z;s@@uYSJpZ2bZu7s}yFg7s#Z zNWy&1T*4PWBz|0k(Q!84Bx^nQ9U3ng;K@L4Y5w;w6aNu6jWC7rh}F1^SJ2}&dXyLq za}&wi3-D$??oq#(`_?bvQ0@&+VB|>8r$ET6Q#e2_Q&LKiFDq$Hk;|2|rwF4>{27rV zUs0kZC-M2KN-AzAtX~P}JHRIPYRt6cqN^ZGszg_diSz;T!K;M(a}w^a!5Fu)6{|EK z{HT0Mn~!ES-w}?kp8U6Z{XN_!i^le3-xaZ|0aj%CQ&zYXglFs z9E2NC!%3=LBP7K1n!zsF54tH>{ zcDOY?m!NBnDfoOO5KNkC{>fg&GItP4nIpZsx@gI(WQ?YHE+{h=Ismhduxq<~wI73W zvYDiGUvv&Mr%h%n6KBg~+{WCUocT=HCR18VCKhG*?PGS4&+6o(Z0yjj(~n)UIgL(1 zM&BjejHHicN0>WB77Mis!)WP~7knqz-NWd6Tz9WH8WS1FS8Lp@vn1o?=cQg+y^^bq zsT7N)QSA9bBR|mA5pFv$r6a7Ax9eY;9^FznybFhXv@ECU-5hFc0zo(m(LG$Oemvg} zV=*U@uCT}OLK$7?L}R6ubg_2;+XuINqEDsvzt$xU50pGv1rNM`YMmQ866wy3>=2Ai ze>F7t_lxy=@(g=?OitzrrT;Bug0!SAW^0t{z1)Bg^|FUn@6%gpB;?Dz`?(CO4{+4H z%LL3a1XMD1H6&g9J*qcWPcXJ{6ySW%Q6l<}-JSoh8kj{{rM{ za*^y5ySg-RQg;-Cn@Ed;NsGb12icVr=7ApFDYn;s{;s(LY?&=!#rJqWLL48%LFcOZ zA{UsAyHx$19u;L`r=h70wF-uKkB!EeRDwmX#po{cG{ z2XiiH?pyg1@i=6$cr^BRJ!B1<6a8hiWPjK50c`p!xzR;StkqjOviW9YTL(qP*NE%l8JP~p{%a-S@O=CT5X<4;%g3o}C;kl0$FGaQ(0rT~ z%=vONK6ewJLx<1DQR_6~L!(c84hJOpn2yRBf``ea-(VKYLH8eR=2D|{u0$?%>B`5n zmmTX46RX3;z++`)b7pYJRTd|oCpb*v)Tjrt)rY0l(O)bnkDkfkuwUMtv#%B>Mx?Zv zh3Hp29c9}M!)?ln#C73m4Tq`sL*yE$+1{G~VD{QcQn^fc|0B^En; z<6zLE%X9}>E>`UM%~f|G!`OjWs<=Y50ykv`-sV#ju9sw-7wZ!Mu^e>UT`2(kqKi0A zw%whM4}-VeEiec55bJ1@ko9nH8tU8tE%bSF`ANxK^a!S%gKD#{`)%vH6TDtp%3bsv zM!RwDv>%ylhH{Zuw^AfOGHK;#@8J5J|1L){m`{KAh{e;+6Kd1-J)!8ZR9EFD<$SG} zmtSGipXgw{A&*S`2VC+S9n7zD#p|b?Y44dKp@YGcGE*33s|?qb31+SutJdjtBo;=M z^hX(LZL$lL%^nR@+>lNLWwhMGW_i}T{93YaUh;KUabR*fb50=8x%gv__MS)f>nils ze@GyivOh|~RqkJvF3Zs(TTAsKY2V9_8%Ri_d~z`;pix1J#-sRvvtzI}AXE0`^e@jO zjliT0yz-D=@sScx&x((wC?j61DCK}(6m4eGn&M!XYUK*dVmVZDT}~>MvYk1O(l@LT`6>Sq@(pTq1Fbd($QHN z()O;tVY6ITD3>cqKY6R*bKj96qv(%<4OjB_1s}9*yi!KG&HNqS@`pM0+d{s6C;q>d z-4&(m$`oU?FH6=3TAL|F6)C7$lBpK8UMWzo)Q9)~Qet71NU|!T)*3(EV9EGu33bg! z*h!j~`d8%fTeE9rMKcN|nP zr}|X&+bprJOcLvAJ?Eoq^vuXm&xPoEJr|=J^<0X+spoQZvz}XJF1XOqT3wkGiEdHW zW~|NFt*}NW@V)8an*Vu1INakpWfL+%4*z~8Y>BHSXTt4bl2qcp|NN`LysfMbPriqE zoGOlC>0Japy4&=3MBi)r4$=3UzEkvrX#MT>XQ}_G5r_2E8-2avrk)>5$iMn8@Jfp9 z_w}5QeyC?Al=WPQ9@ld*dQ#7&=qWvyqo?)U8a<=uw&+*Po<*iJn*1VXVX0 z3$SwiVKK=?_sJB31ejAJ(^egtXdtsu0KcXoTpPRoe0-4F8Cyx-adgH9i=Dy}?2L=Q zDt4ReBJA$pq#Scyv~hm|`gzZN@M`kcHa zM9Lr&keWux4K0C^yISh#ty2jUAGo zW?F`IImO@>G+lt<%Kk8&L>=Fy1GL5#Nr1dBcqbs1!*GLvwTXVNdNIeeKQFsKLx(t9 zY}tsHy^ACQ0lTcvxu{tWzYU>ZGF)7mZB^qrUMza)c8M`VGO$YzTGOGunLrKqNR8Nv z1du~x%$oFBlAq_`Wof_tc2&N5(U4SF5ob#rxLzg(mb;DLW7#v9_mk$Bh&C=bR?H8}a0=mJ8(rgFNftb<9p>be5(OUei@I)l#-pRTDyY$jRi*Lun$ zvbGoRlrUyeb{?0ETx3qExu&Z*D=;G0u*`hzJT5=YviJ9oSI(yvdmFo+`4rzuOmzuB^3om(%NX=8Tu~ZvkRC3>nHdrY6=W zA#>H6=tHJU&MWTE(5Z=?wn^u(&rSR_n6q!dy3J^q{H?j5%yJVVC#Ym4WFNKeVL(ay7R{P214|KqbUsN5bWv5|ctz1)5Rh~+R` zx!qXH?e;^;?F!oulYKXeK{NZ3{JSWa^T%fWEai5=@M$$-2k&Pk<#s#3e^hQiFAj$( zw{Kw<%VD^3yNQ-t`4%u;Zb$4mOvD$6K{MhuK4{J*dbvH}Gs^8cR&Li#mD?@9op%|M@6u2v&tTGPq8CrSzF6eW#pQ6%Ty|IDDF;eI zI-ZS2ayxzI_81b+RdJ#59NI|UDh5NJxs8HDZfnL<`n#VJ&z{{pp2PPAx5G{&>chl$ zckI{%TRLCQhsJXF_u~6gTr4rZd+ff1_-+*(a(6SnPY~ae|6ky0WQkP1=x+f`e~u##7!8pYnf+XCq&Kjjw~MvSyL)jVpWc zLyb1w?Gso!HM02A+t?_(7bgr#^@nlKRXv9F_+z!XN&SYeH?-fxN-T#)8Vw!?Y(On& zvWUlRSS=~qNQZ+fBV7fin<`bE=khO}``hHPi2j ze#7+dM89eJ1JS=R{Smr4o9ZWe$G{&N;5`F>YJlGv_)7zPVBl{J@R5O!8{iKH{wZKb zxyzpnECNJ-G0pO@F#4P6jOdTiHm1%=+Z3Eme(7(-{a9WmFjUV(qUuj^U`f*+@<{cs zUeLEl(#zNjU~^u*VLjkZy$Ou|C3oRM-q%E*a1s3kKawRC4-Q&V5j~BGESvo)=kzzG zlY)&8@HG}$`CZ-M48q3-{?A}hLWlerQZ|2l*3R+f6iyq&KPSH7M#^F@XWYyB5#sb2 zzst+Iz%_W2qYGG70M>M%!WRl+u$CLB0Icmm1z;TqDgf&`PytxafeOI-4paa(aG(OP zp#v3wjU1=|Z0tYmeSqkXOdllr52g=BYnzgZMA|l3 ze=@T}n`R=->@Q|^c+*Uznf=Yo<_Y-NbS(OxrjHc8$n?>oS<5AHI~HBNR6xeSaSf0& zaC`%V22K!gi8v_&ntR-wsn1+k-AwBF`t$OPW}=^S()|KnKxB2QQ5F%f?CKYQq>31_ z=kAM`@Gwi8IC!7&tgNfoKg+Ap79ghC!l>2sDWcm=pC)>Q>C;75OrI&b)AZS*moj~> z=pM9u%lF@X=T2eV!^@lsz@83Ncp=1KFE>yD*xP{$z#IoE0Q)#l0od1p3c!92Q~*Bb zKm}lb2PyyuI8XsN(1D6nh!1iD71*5XKn37n2Py!EI8c%D>rgjPfz87lr~n-9Kt;-F zqnM7aXVnoajIW;3Nks04F<80XW5h3cs8D?%H2? z63>!n-s;AY@zylQ@fjTIyrkl%L#rS0K(XZT_ncaj-YTC+|B}aBKltL^z#lMbtG@(^ zUgpqVe}$tgY!2(M3S7v6B~t>!{vK8-zb2B`c$Gra0{C_Cz-z1r2^V$KaY@!gl;Rr* zO|kw4ro83)HK*uJ4%I($+s=HQH&U#+Wwi@yo=+0P-*8~1%iD6w*WclkufNN&v&3o_ zsx8cxBWkZyblu)~shCw;y(j^u~#mCQov_wbjm z_I@kg_jebM+6i|o3Cow5xLGFQ#euieYo_BLO7{H@7soM!(!G-j^Yh+_$}dTuJXMc`6^5<)RP3iD7AA$a3H$UOmC|P5gc> zvZgmUZ`gRPTs&%Lix-up=P>nWIko6&xJP_)bYHKNTgs5j%i z`F7qX%>)zS@_nHem5HOzeG6-48g_gRtH0+M{ei=0uirh5C#tc2_lt6otlvFd9yNRC zbp`i2pL-2nzssDuIF7d^wDHj#ba>AG%fM{>JE3yu;!mgZ%IwvQ5u27VdW|R_{Q9ZR z?G>ck!8dm!WYNte4rz}^elGFYWlWVSGwy=}&O z>jN9{Zan+4)BA#ln)&+?@&3~A@&2^@txvEd7$+xItSrsBk#k!~rlphODgrZHQhbbA zEC*fVBlFfQ7m=h$7J5ojEWXfliG^U&L7p0UUCGc)jpN0{3VS7=%=OO>PW*W@Ev_Xk z^8Z;{q+|LxHySRcQ|1y=IW)?;P0gpu%;uPCehvx$O~Nhw6k?lSni=eLriGt|{R|RJ zhrKEQXF5;;ILm`r~sVrKn36e2Pyy;I#A&~4h+8J1}ahp z7rB9ol)=SrpaL&0aiAh)^HMiZfz8VtsBoLI=J8VUUH)tg@}`ZcKBh-uEg?T9^-nJ3 zm%9W;&zglrqMtX-=SR#$na+rQ(R5DqOQu87ub3{1UTC_Et}Y|sH3Mx8@CHEJkBsb% z8C*o!l>OVb=5gq&|B<$d@z|d@>F2Py#Hbf5xolLHli zn;obCe9M6fz%33`0KV-&1>jZ(Dgd`RPyzUk0~LVV9jE}@;Xno8yAD(U?sT96@I41A z0Czc10l3?N3cx)MQ~>UEpaO880~LV#9jE|2;6Mf7K?f=T4>?c)c-Vmoz#|S+0KV@) z1>gq`Q~-YHKn37Y2PyzRa-ah6m;)7n#~r8uJmEkE;7JE6F3nWe7{{(XYpbfD zR##O(O-8XbM0G5EXW1g+$L?GO;3)?x06%e{0`Rm06@Z^QPyu+xfeOIS9H;<1>p%tI zIR`3I0es#KRABSx4pabMaG(P43kNCyFFH^G_@x6CfR`Mo0KDu#1>hA2DgduKP>~Ap zLN`!>&0jfC0eH=U3c%|QQ~=&^paSq~2PzoK-9ScmEy_wBzUgKv0B<=^0r-sr6{)bk z?FK5a`Hlk>fOj3JNI8Aa4OC$Bw+>VQe&;|%%IW)VpaPp8I8Xuj(18lTM-Eh^{QA8c zsKDkQ9H;>N(SZuUpB$(F{MmsDz+W7w0Q}W~3c%kSr~v%kfeOIK4padC;Xp+y3jcHi z71;cj0~LTp4paa>ai9XgOE&9NsQ|P%Pyxs|Pyxs~Pyxs}Pyxt0Pyq-Xr~vRwV|H5= zfT9Bx0DgbWY^VT~9jE~Ct7K+F1)$A=3IM-VW;Rp+Ivl6~@C#;ULj_=@0~G*%*UW6F z0E}{=f{OD!tt6%5d`Fd3oNRKa-^^vIZw{$AJKebo{OfX{0>Ce(*&S5?x*e#X0CY*e zDOC{oNi}n!0vDqlr~r&{paQ^)Omm_FFwTJrz<38L0Q^dtIZ*+a;6Md{-%c|dDgcul zr~oYEKm}m30~M(_E$apV>H&B7isSZ>C_)#_smx`3rsvD@l=JF0yq-^%N zfeLK$8*b*Oij>Wo8>mPb@C$F|LIqw-bD#pSf&&!*I`8I01z<%7DgZMar~u4#paQUx z0~LUk9jE}T;y?vpRR<~nvmB@Z@QZR5FcpB+9jE~CJ9B131z=4FDgbLaPytxmfr?bh zt>XqNu(_@S6@c{|r~s_*Km}j}2P#sYZ|DXpu(^=~6@ZN$r~qu@Km}k^2P#sYZ{`Ln zu(`Pd6@V=qs7N{8(hXE#b1Mfb09!jyk#f3?8>qnMwhmMPwsW8Yu)PBnfE^sD0PN^M z1z@%V6@Z-_r~vHjKm}kI2Py!&I#2=F&4G%;Gu6wf>uPOw)}1Ek!(20@{@dFfslb;x z4pad4ai9XQuLBi;{T!&ETEB~%=m2@3U>Dr@PMCZOovGe2BnSt)a~1e^hyxXXLmj99 z9Ogg;;BW^j0FeU~fO!s70FH2=f>8e;9csBC)Q>bm{m_t5ALGtd;NP(hQ~*BjKn379 z2Py#b9jE{t??44$fddtQ6C9`je8GVVqVe-|G~|M4JlBZE&xSqnM6%JGYzT!Xy;HwT)0IqbP0&tZB6@aT9r~rJ;feOGi4pacHb)W)podXqsuRBly zxZZ&Zzzq&m0B&@k0`Lt7DgfVfpdyt}H@SfdY~JiZ1>jo_Q~+*qpaSr12Py!!I#2<) z&4CKQcO0ky-0naH;0^~WcyiZeroK^a$^}pE+MKM~TvI?QUU#~475Mi(2Pyz}IZy$( z+kpzeJq}a=?scF7aGwJefcqV&06gG81>ivkDgX~TPyu+@feOGQ4pacX??46M2M$yK ze&|32;86!E06%h|0`Qmv6@bSbr~o|SKn37Q2P*7+-4}8}aIws{R=4*I<5TL7nS-~N zshR3dDL(b!Cf^Yr?+8eCDlWu(alyx9^EkyPa4JV|gTNCst*rN${Q?OSP%u_H&z=<4smYuH>-a?u zUG=}q?DsZIjMqO#wZ?BktN%dO|H+{({)=D7xx*5ZcqFR+FR>$s_R*cWXc3~bIO`Q= z+u6PS6S*qIT@4o#P;pHzgA6MQO7o8n*^8p#MQ1tQ)a{Nrw}ZDdz1{KlPU1PP*z0Tl zk+{^2$C}RN(`0_6V03)ATm1i+dk^qBiYxB>YH!t5v9BacayLa{k?yszjlnj}riL0! zGnn2nZDB8_*vOb3YC>;;00{(0LMS2h9zqShgGDDmXdyrn63qKMXLfe?O4qWS_x+yd zvmfpK?|)`zXU^1}IdcYooDOK-aCNzccVb$@KiWFC+joR%!rJnx%s{#rS23xQFzd{t zo+EKiwe8rPB5g@-rnh4#3~hwmlGZ g8RlVer+G;QvHoG1I;Mt1<={sj=7L5c0r6HN+Y<@28Dfy8KRT&P0bhY8+#p2 z;$O+Uld7kH!he>W+F|jWRDK_er>E99%;39%C2VXGmRD({{wI5+!|85*N_+4RLhqtehNC@hrUTp%um5u&@Qe-BB4_tS5WYHnIw6b)T|? z0*Jp@LIK3nmQVokj3pF6JZlLB5YJgc0mSo`Pyq3QB@{rsXbA-nFIhqX#LJdY0P%_? z6hORc2?Y?ZSwaEC>y}Ue@rET7tl_vnqghM3Tg%#BcsCcrhFvckH&uRCUki_xtShy3 zF65-p)RIgW`C4uz`#Khhi#togK=fx5Vtg?1rhTOX;;`5f3SybnYaJBe^DRp#fOy*y z3LxIGgo0RDA6N$k`25fk3LyS!2?Y=zSwaEC$Cgk4@rflAK>W=T3LrkUgaYCtrtjm@ z_{@4xz!RTaLIK1VmQVokr6m+V{M`}?AilDM0*HTDLILByzew*T8dmbzEH{k*p5(`j z{~qrX$*=9>3JC8TODKT&))ERJ{%HvX5dX4-0*HTGLIK2gmQcW?!W$YPnW$YHM(wqD z)Ks6AJ*cvFE;{{fl)i?hr2l|4=GrKp!&69_4%Hn!8R_|2 z6%Uu=d2XhGQ(N4!8Orb@vvMBEit1-{&TNkAn(hwgRboo(^LPw7(J1&ozWgN)i)vC# zxE*O$=$vFnslL-M5|S|t+=C%0QPm<{Nmj&-J<(Re{DMc(?-A#WH-Z=8Dek9j5Pmo) zr81n6{lgjF*UzZ_en#~56N``Nmt90&h<@30N!EL4(acw?kolyCEc5PYLd2k0_o3zl z?7eH%$fYRMd7I*1+@_Ff_1M#sAG^}{jSH!<>*zU9YUp(08n|J?WUBOfvQtXzt%yN+ zJu?dRO-`beAckOU9!1X8z+#mvIz0Q#sOp(L9q0$?KW8Hb+Vo_`Krln5L<@i2?d2r# z?<&{ob%|tbIV0FVmc$K7ENQ*U77sH9(d6=^=&|;o|9^2Hi$7GC#TaCvw*642T$x0* z&-e`wXQQK3>!&V)KsyviR4k9IH3ytdKBQKS_W5TtP|zJ>)KMyQ2Hb;90f(-V@%3mG zU;iRT`lQ&fF)cy6N;9k)G5M)!w(0X2rY*i+;!{McRL2P>+HEt~Q$w`3W2otkB~9Kq zE@;;7N{*}`Fk8qLx5h5)ijrV$cGl-^CGLtt1E4A6XxXf8kn66u^rMo`Xn2~33%Mv- z)@0nJy=|D8mE6}j`9nQh@I-ATumikK;)3Um&ZU$1E^**KH9B^YI+qGPtd~0or^A$ZuM_O8!bOj|@?4Pr zF%JZ`@ap`3hfim{RmF1`m-_Dgavom*`6Kox4P^f8TCW?vZSq!}k1JtpdzcNQxK^zx z3TcW0+3stO>&;+uw{&iAOKu)^Mrx>3F==K3Te>?Y{3oUq27zzbB%o($+}*swvLkgH#d*|0kKZ|J;By$e&}Hw z(|!@%A4&okphh?s!#RwJP1boWlQLy}qzMn$#>#+sx)>QNqUPI7`WsaX-D za@KegwGF-RDz%M(RV-KZ4lAThj>uU?a&(cF?@U*1v0UrD!OJmrxC!SCNj$EZB=M}n z)Zt?8%RbJ5LLmorYF=W$Hxk1T3wiW?V!K&2 ziYJ*3a^?UFn_-nb9yw=wJS-^ESPNiD)pfsSRTzCc0~>d|`Z~2aCn1VDB_aNpwLA=~|5xg(+>+jN5k1 zc#{ZxNs2?7GHxR=E~X2ay6$8lGe6h1V?8Dh#eKb_XqmGerPfY=E2NZ)j3~nyqMh_U1`aF>v3Vxy7%^)7N^Es51^3Gg(j$tUDSs+)lExK+6O86eQ z*yACG1+EwKW-iAQtltm06N0$_E22Xx^ocai(N(3(l3? zh5P#M@j2Zd%2+P8J#@HvQ^4`Vt}PDR;*v9E_le$o)HRh?OH^(EMB~a1Sd^opE6h@`?T?+`u0ym*!>x}i{bnTgdn3y z%z4THvj^jzDJRu~Y15RG?!gEub!;SM{3wPvR|aLgp~Y6Hq&J#yTHMK$C8if|k(%~0 z3|ZC2k7+|{%}r-_Ht7wA?L=RMaQ)Bm9d3(H`8tSBdL!{6Bk4{hhMPCEd#m#X8Az`t zv@uTi38O0G>`uY;h=XXy@-PyDc{6oOZoF4WBqR83c-C73uh_ei!nmfwIl@jAh}sJA z8plUlVvaYhA2VH;Hg7F{&}YGCG3#X9W_jD%aCBVQtz8G?tt&pW-g@$r^u~&h7A{F| z1%ac8O=(wm2CjzjW&#^21UvlQ_hO zUPfE`@)Sa%IIO~tH<=5&oHoYS5r;}!pJscJI}DbG(ma$l4^_*Sqcs=WIB=7vC0kBX zVz_A)E6<^n?2+?9W7(5qc4?*@$mjit=jZ9$rAunb6>2pGbWNM$BL0T^e;{nU&Okoy zOfC%BULltA)lRW1eZ`qIjhCA7my>v;CjX4ViNqZ>9LX}%lf==#?@j%=in6+J0gaE& zGt37p$xM)DV>4dYu}EC<3o+}PYH>G*DUQ$^ZwtYVij$cZZ%b~wVsi1{mck-uM54tk zZaSv9j`yK^&v>qeW=q0YdLYPEQF zua)z&M^w;KRJ&Ks`O<8fDSGuSMWmaPsea5a(~4X3V@63j`i}1{3dUu1iE}SE?T(Cz zBn`hL4IFnmi$}d~1P|Uua7l2~vU?M`PkP&m({@~BL;E;AmCRcW7mBVp<-G01!ycqD zJcaD_q_+bkqcyiy%YS(`w{&=v+a1OC1fK6*DPEEtV`W$!VyB1bS-TEaN{5_e?E~+d zm>Q(#z-Of?&@(js(Fo7oiLe(*W;1`X0Nck#aYX?{-VzER>MWrEqTUh;AQ~*80HVd59TY$`TS5UuizO6546}p+h*nD|IFu7QMS_ki8C0w@ zzup|g63!@*|5A7Ml5#8MAZ*n4MS^CFlzf|C7TtL((zAu-H|0(x?7UOnnNT}Ayj}Ro zxYOXgU4==zYYN^C?Cs8l4p8Xij(OA$j?>I%DslzI*3t9s0&WA6{H1 zTdK{B?eyNGn001sr@x21-mi?Zl+mn8~*3 zoQgK!U2&hKk#V1;2IH1h>2zhx8QaU=tB7T^Xs_aMxe4|vj*t>BWh$2##+dZiq@i-J zV)#8!l23#WDU9<&n@B%yv6Maay%BpxZJM&H-5FA_g9A!l8^SO-nn~#J{|*tehuWcM z=*BE*GU}5!`ht=%SZiA}+zkF`Xkcd#_GO9PypmdnIcoY{iv6pb!ks8O(jmV?n7khik7TVxX-j zvo7TuNpy`G)4?L~(3~e)NcO(Smr~g3Kid-I%LMY}`u{OstTn1SKibL|<`wp)D)Z_9 zqRP;Hclk+sd&&<3_Pymds~m;7)BfAvOm-cGqc0b=3mt6q zlYoMae%ljT|BZe-^FngW=O_NAa|p-enAz$V#o+^S3380xzb3!VNu1ac**x6|S>Et} zEz4Dpws{=NlEHU{ETaMu2|ln#xjj$IcaXFR<-@}4!?NX%v z96=eWXLN&NB=r@JiKHHWpE0&foU(2t_tD6msn-9gZHdZo6}k5-!=n*vhhHJ%qEgG< z1XYypJxS$K%lFMV`f|zUg61gL-Wf^hNs*Fl*X<*{vGYUeQQdUeyu`Ai6A}0HWIx3LuJ>P!J2eWE~XXbG#)KKuoZN z0tm*0CKD9cuyhUSVLMhZwz_^yB{w6ZcFu7QZ!l5B%#qy74pi~PuFowa=akTLUsrxs zG(a71X6VS))eX22A3}N$7!Ml>e#qcW1pmq4O$Gm1Fy{=&4`$ko%eJ_suSTw<%8~JegL=^en`skjm9w+S8+Gf&6eNOiF<#EAwU^gOi$- zD)48f64fkZ;5e6#L;BC@cE zX&F17wB9IboxJq4@-ccm;q@FxNG3Tl!Mceo6P8yGlXN_;wZ&3xEb<)wZEkxOiKC=p zN<|uUs+6;uC*2y07V&cQ%srx(a5iGcJu?%P>wnCuCA!CyPbXHKM5@;#^?IgWkCv5uo9v_FO|%tH0mLLrD1ex32?Y?VTS5WE6iX<8Si=$uB2lZXpCr~S zYH)_)(q$c%tL6ojMJ*^-`;&z|CxjW%(Au2pUcbDiG^s?*+Ho{Jpn%hM1TRV}NkUp*%yq1pv<^$x_@K(kDB5cj5nm}AyA zC{LG+VcD*>=TshG@mtPa?>R;B0{J0lG71XJyRTK5GpwIWrs{$0w*{{}IDDmd2(WjI z;fr;FyG~C=bM3)A&MApA3N^BDPE9H&Zt1AW3%12m+PsgszeVzJZQ`)ZHm{nLGi5EC zKOs?-GFT^&L8j;Qm<&!cGLRpYfw^CjS$6;#ln*7zoQEfCw3!9+CeMQ@AI8N!oJ-d8 zxl&LoOD^-&VS|{f4N9)j)A;|s>^h0Nk?pO>7TcSFQ7q;$-5qJd^Z-!i5jUmc6k9Wa zdc}hA^%m|tzNRZ-PSnt4Dp~sGY{1?_3u$vWU~jUsch9W9m>hA>rP-^``kz_ckoEs< zadXO?_k>na&igYSYfb;s;&=~pXT}v-W<~$Roz*+Y$;9Df5cV5sYGTX|i6l$EoaK^E z$T?JhAYI`iLz;7{_`E^iXH^oUN~SWWJw@r^(F}*oWFI!g&SbM**HYio5a>GWlZqsx zNfz0(PTW$C)7=C(cERMCDOJsodKGA0bQR25i5-z3>N+Ap)JJk?5P>Dk=^I7VTt|uI z^F|nA(<)OgQ-YdP!TB6R(Q_H6GhA6S;T1eVDUv5k`xH|C?c*7lzs+4|YcuVl@*Gs; zuSK$z&l%UY=4|lP$|zkl;Nyi=?33JVYQ5JQ@4R_eGq*-2JWB9^O`5|K>;B&4fy^ha zK-n@n5+hNPID)trn={3sMlfSIk@gP6ml?F@g^R71d5y8JQ_))>v8vMB6 z>kNKU@QnulMet2rQu7$IIt-cHS@nKZ*c-%0&U;<(Zw2$wDDzMpL7n)cwna%G5;39oM`I(Y1nM_G~7xnXZxB62)=I?U+ ziFR;_M~kZkLB640tQ*uUd;&#bD_cjU4k=Yp58?@gqwppt2uJ++}XV?Gex^>Yob*&2iF7 z;c`1MaZ>J`{B-T*q?tVuAAKAMds7>>0*K8lp#WlYODKTY!V(G~wzPx-h^;K40OH4% zPyn&DB@~dPyCkBLB*{UOqX}lptAjaLuBFY|FN54yb0y9`4|_V#(ooS#r>|pcSZ@ zjBl4M^YH!AG5SbCBM@M)~p-#lU0X*KaRoqBIUL~U`>I*TJ$&LwelMZZkN7-dqYC#w^m@} zHsyHaCYS#Qa@&bus>|(Gafw!E>|A$G;`k+zEyf2af6NRmN4XoU+~QgIJyBVjFlL{C zFys=p3c*}{R00;@8qMWL{AO#w-LlliW0e(w`m8=X$RoloZFrRMSlQ~?Hos_B{W zPJ!gZhTS3vQ}uUbDw=;zxr@*`{8dh*DvwmSrNGe&4-z<5;o$;TP`E(gN&;KG4*6;G zRxv-T^5Yh{*kJD$uY(MB@!*3Ue$wEBoh*I_7u$oDBiK_1AMAt65$xi@2itb?;DseChc8F4=PWx|3aXU1D`oprth}972qQ1Eph0d3z>&OPeik{R&$3 z@V=-T-Zz5?Z`kGq{ z5$q)rHE9+_BlAv=_ zxAQF%Z>v^aF?`1+5=6hgG1gY?)aM-)z2Wi%v|ylswp?lOG5Wk?bUEaBjfMVsOYCvXu!_K;jJe0YQpuJ501UOJ0Rt?sUXvWIZ zW<;~hfHo1ou>x07805Qsz<^>U_uhd5k`LJd1B!`$z!=F#;D7V{~G283Dy)KVXdb8Xq`D zG1*rQXeqM)bnh_S?N0}qavy74WBtbA;$dm!UJi{33P&uUSmPQC=<>yYpnw+6TthWdsx}=>PbC70?D} z4IramZ$J1LUDGEZrjq)7>@81t$+IgXRxP|sH&{meV)duoC%lRg-0}qU%0K}fy3sOX z6e|p?{&d+XTzQkhhj;n^a|R#KeFFt_)GmV$Xx#Y&B<=d$1|QIc0|j*c9?J+Q z)>f@`L1m2Mt+5#Yo6br>t9QOEO2}HqnhYa!EyJu{rIRhQTDx@N#0l0ligg*z;`Gkr ziIQbr-qb@mJp zyJ>ZegxfQ@Eq#R1P-jUihGT+*S$XU%ad^O-ZHm@H;J|AGn>8JYQ8Vqis;!9)=NK&M zn^Bp*I{yLWW0t^|n#zKY={Zc!&Lqjkt0>AW_@iBfQUGzgB@{s1VF?8gcUnRL#9fw9 z0CBe^6hPc#2?Y@MT0#NDeU?xFala)LKs+D>zYkgm1*{3A*_EG2JU||eIt$HDF(JDe zNk#A0an~XrTimln(pmq2O))EsZkUjPp}cl~ef2sV!N8(}x1{wH7PA895&n+qJkoJD z#hEbXrPVYs2W|&uC%SfX+*3uS=t$&yB$C0ZF>#Xp<}35d+I(T*LpY&Wk|F0G!Rx|@ zxv$q9JQ?>fh&OYAorGLsXuH|FBhRnI^AA;d-dQ98#Gki&f1>AQEs@QV3HD7D-0dWN zTIw|^b^c)_&6Wfc*BMKBm&Ua?N`G3sSp=l8)!Pi%(mx_*jWw4jO)=>hUzTrmjsgv@-x?ZS#v zvMW`pcakGL-4yOPT}e~YyB6Bhd7+9K|5MW3<%~&b}eQj!(qrfFfH{Y%Esl3c!X7JR7+?v zRtdJ@XJ{LCgNc52=g!@oSQ#T0##X>{6`QhB2uI{h8#KcK&({MYq&wEwOA zF8Y(?sid1Sn)nmxPKoY7%H4-#Iq` zISvq93UQ)LpEcL@)4 z*ZHZ7DcYBU=ksJIPnPbDOq5|A1{*Z?9P5;K8UDKb_rgbrg6arto7m)1V>3+ZQ8VeI z-lFfh2oHJo^EfDD{#>5b{Wx=R|FhIHG_Oo!K#sowuIrwXjqIM)liiD9i{k>IEe+iT zx4rQ0ev*tmK!Fy+!@Vt8W8{qeago6t=_Z1BHYH|m8`--Poj;W0(T6ozAlYH$YV+ZG z9%OIDHS&vvxs0}HUA{DF_+-nHo+xwtoi4#Z zPujg)q+DSqradkTxH^)6iuP5pCN_)T9S~#;_^!MQkque>U|1F z(}1xjhN80j_faz6SjyuFCCZq0H5Y%COX($lDMc<--j=Xz5m?(`EduKbrmv7g*d14? z8A9c}^^LCs`SCUstk#OXjRj)7o)>#R65OVP4=9O?j!AfrREy>;R?(zhcw2}+$6ZuG zZY6hYB6PP0pcWr@EV92V?f!~qds~}xj=v5m@ekrs$hoT`f!;({V&*8aHTd@<>YV)1 zpCx1un2gQENaqt;52f6jv1hS8s0G)Ed=?O(v0~C))5?f!O%p}g+#%5}t>T}I5A%fG zNJERB_b-8V$AQeK%_P@8Rvcz>$wYeV%g6&U8&(;1X7@^O(|#U!lW|Zw@jEI2dva-C zq{YzI!dODh2h47lTRW}{qfPoIOO$tTT*)x^S46I~X+~ZmwY#{k`Sq^FQ*k1Dyg2eA z^tVE`$hcZcTXCrQRe!BZYPz#+-Ko~@nl>2_YS}ZXn$PP!vBDRBd2yn@-Y8pK-|^2AUwf)ANm@LlL*(ASMm+4L9we>tU_8CAQgceHYAss050Ayu zBpt0umFz@x7x26p*CiA0Q0|^0@3a>tzoOjXTURBdU2ZI+gcmske4i{Yt{CJYd8RG3 zE66wsVGj3Ww3-V(h0)Xj3zMo)r>CTF2YgwjCTNKr*+~u|9&X{@e*pp z-dre`%~^T(I$mx{eb;7=FZww>(wAaajA|);|LeBDQ~>dYB@{rsX$b`oi!Gr5qSq1% zAl|Zs0{KQt$-eHyU$l-~KtdP?rWaoc#o+}s*Cz_`e*miZ0b^4+ThWnqoTje`3V+~ll1`Ss-NXDqZ4k9?6qsk;Lt%}CV2 zluM);LH&py@-)obw{12kAYb0GgaU|nEujG7JxeHnc;6BVNUMDJP2%?%P4h*>MH?Fd zvi+k?w|@}#1t0Ka&O3xyhX$tJqteNK-*L2;&+7BiKl)pfcK>27<{|HTa<}5l5C0|{ zwFNiZY23?11VOuB+|yZjHuYVH+-CunWHzL&Dc?XS9gD<8J{Q^4VH!kz*^7ji^G+mg zmG5c4s^UGSpmp!=Ec|KZ3pSD${6=3OE@B`OOG&X8OeLUN@3;LD(&q)Ww$n^G{vsan zpXWjY6_mYrpIM8{kp;Fgw3YWJF5Xwh<890I__gtP`!YR#Ydqe$OphFDCULxbnI1W@ zD?>GnwVWKom7&OI9H|I=jCU4N%~{5<-NVFm`=!mb4)$-Qw<%y@Mn19&VpZfldW$^0 z1+w>livD9EZ)A|<8!Hx z@^81@5-rlV#p3!;8&?Gs?SEN90mQ#8p#b7LODKT&k0lg9{MQl+AilSR0*ED+Pyq3R zB@{rgam!3xD1fN3gaYkr+K@jxjTxKYDT2C-3+LbYJzK&03i*i{i=-IIL z*+Oa~zJM57BoYn$weir(ldsrj19gxipR|v|*9BHJ>|lqkJ62_7u+xyl zijIzVW+k`QO;_#oWXe)*^XV<|_7?Jj`b;jC8LwEVSwK za!6>U)tg{Q{6Q>@{pvo$OHJ-QgcS`hEBdO{k+1yOx*yBII-4B|$e(&kD1d0NgaU|0 zODKRCVhIHhLoJ~IqF@OH5KWd)Q2E{QF{#z>4gr6r9kw(SGWMeD42#GCYW5aCFiL|0H||k+_*q{4H3c z)fisgF*0u4UpADNPi2>Ahk3W-enVUx_n)yCyZ_)md!XZYj zky@g=#k4$KZEE1LtNfre-T`Mn!K92vpI|Mv8Y-Y(4zq*;h*nD|fM~OX0*H1?D9~}4 zv^B4jcfnVWeD*kXl$Z`ad)y=_xYucq^x_=e`wav5Jkr^>*C|lJh-9TK4=y1y%;Vl> zGFsqhC1x;X7{B-dDGcVR_oJse<*7vYQg3sf((eJCF4PB4J^eby)o0Ju&!w=2`&+?k1=aRC*PLl(ftKYv%=k5D9hUg?E5lmq%LHE;Os4;Y z2YpeDiYC+J^8%w0jQmw;w})G)D%Ezd z>fNkgrXZcXdaDmTds`wSmQl0uZ;;m|U7{5=sBe%_Hl_-Q`e;iifEZ&51*9dLkfpUZ zE7Q^vre&B$Pw#^=*0DTgtSNllo6x6>u})1HYsG^<<9fShQ5-6zM_%WRmlD%m3h$W_ zlMe3Co&jBiw+;t2^jTB-APchFo)6 zEPitS7#2R6`eedW3!t9bEXE~+0+@CDB?RSfaRUV~8-6uZe&`jV<~NhU0V!Ge7{^a&&-Jy8m*rk&uSJ$U zlDSdaG}h+10t&%6ODKR?!4e7}RPyoS~kNMnH06{@AgaQakq9GJOP_zu80Aivg6hKU}gaU}k zmQVn(x+N4qOtFLlh&3#s0Afu`D1ex12?Y?-ETI5mx+N4qtYrxW+BVhl#oQa!=e}Qs zwmUeMvKn*;b^S70t6a<{eZrBBXEYv612+Z~+y{*UDm95RUn(-gB>p^9 zAOw#Uj4FfR6$GRBAb2IgC@=`_5R9sV;8g^(Vj_4|!K{r4?iS2^yx@{xX5Ix)5X@w# z;E95n@Dw~*FjJd?rwC>eQ}CLCnXVK(O)wLag4Ytv6r|vF1pmX}^#p%o@Jzu>?uefa z1T&2zcq73~*a+SP?Cu~0^D{zhE|{4Z!CMNhF+$oDtmjSXf=+!?Hkc~RhEs)n2+Bi0 z7LU26+}M5Ghv=Hi8!~qDSalM&S%I7TaOm=t8$&Z8)1nmMs*+BLL0 z99A`(`)O!JS$y`iGozd4d~0)E_sBxNPL{TFjKCq)npd@4JW{l5*@4nM1tU6?fx8VLg zu+eCN>Ba`f?-idTenUIlu#|TAE6S?;*>+gY{hLR!-;#D%rb#N4tp0>(>$=ygrexJ6 zN_Mo~dDS@zRIFsWMm}<=frgK(Tiw}PFzQwewrImw!OxpA%^%M5Z@yP}zNcM#T-(-g z1yuQUETI5mT}vo{SkDp)WG(4GyyNYtO_1t5hb%MId1p{?A5>>P7Y09$+%bII+lY*g zk0b4HP~PRZyXbW{uHJ@tw7vCIGAkSoR&>$+kvK&eyd1spEfS_|0f_a+cJB85_szOw z?Av{Y6_^4fIMWgeAlA2p0*DPPp#Xv;nNCCj1i~}2*#KFErq(ML5Y7`T!bX$&$cJAaJ~;hP_3RW0 z^C2!(>e)><^{Z!mF`DEnKptCILV=mXT#PK4Tx2a`K1q8JwGfeZxgYwsH}LSeh0{Egai=i;J5ozmFFAaXx=78Mb-;q zhdvqyCR`rnHCP>-!*_rwi4uG`cXjMwgTJUt;=!VzH-qLs_M+b1Sa6VvUfMqPf-wF+ zH!ra9Z1-O_5$}_r5&pZvn=?hFs9U9uE_;H-dao^!ezj7#{#QIDdKQ)zp-Q!nNz0$~ zdy2_SV#vgm&f``Hcm}RAdlv|@-9J=`;VRVFNtzNV+vg<`rzQ#)C+5gpm90113^zI4 z)^h)y39>>*NyRz;rzKOR~^X{z`tBMyQnJ{Aq`ar$Uh|qE6jcP1fPOs}z zN=2Z{(Ko(Jn10JmRqO26U-zrCv#bmis0`C;WB-HdGW?pRze<}mLWFXfNbFnb8=}dk z-gzkHd;@3ODVL}%WjwG8PXALowMfFeuX>t)^{akq-o~a`0R?GWODHhy_NU0=!$<}) zrur%AGky2ZK*4>`cRzslrS{#iSvLI`J1czLW0Y4RE^XZ9MIHmfP-wkN7h22B|D({> z=0RWfnnsPg9YekJQa_n(XGNp{nQdt#vsy_XAZ68q$diwDJ3G-_%(e$H^>4{R} zo_qSqYDX&x1&D?(B-6GjFy(7QzEM6xHjaB4X)(hnJ}!ou`*Afmmmi~*rZK*}j|aJr zJk+VyW_|Ek!#q)gJB=%6RB&*OdzCzEwv`B(cA2Bfdus_sso!)+c_zR(>=drkeOx+* zTx)af)T>Awx*oL*pbB~K3HY`dGUDgvNp8lrk3Sapl=$aU(fbR)1UH1>%)JSdo2PN~ zo)NG0-4hD+-m`N5oZL4Q8ocKL?UUR1q`Q*X78{9pgLdE=d%Wu|oX0o-x}N zK!+zEy9K8H*4vJ6Np|bJAR#t(uiez>z9?_lkIt;^tQ&MdF?RgrdO%3?kirlX&tW1U zT_=JWhgW?a&%VU7rMuCNY+TaH_M$*LGFR*8Z=tS z8L>7wekU*X=Wr=B*%9l^eQ12hnlJfVo4+D`U_HO`Pxx)P-<03W_-z!Df5N}a{WN}u zaASFKlYb>R`Lp9*S$o_QekUoj-WxY3fN{UY&*Y(*wsXb~ zom4A7V^<4Y9uSv$sBx@HB?A9r_c5Ml7|+Lv=hm(RgY!>0+9johh-vebiYl(#xwEZS z3aDqhSV95Bu9i>$v703nK}?4J5c^m{0mQzRPyn%? zB@{sHZwUnu2UtP@#9T`#fH=?+3Lp-$gaU|zEujG75KAb4IMfmfAUsPbfH=$&3Lp-* zgaX?6RDu=9#K)A2U>(aWEgeP?4Q3#RFvI9RFD;RLhV^a~EIysx$HxnykCo(s7sFe$ zi2Q4%*nh+&HUV$@tDSZ-`dYFcdIx3t6DgzaFL}OH=hxpF=|~9WUCms(X>aTNAN6(o zRm}0qzK*|DEo8#{GISXpEJQf&ZwOoT6};E*#qtBnKjG^FsDZyC{@ho&(*OOA9}^cQ zmDIcXc@0`Lfy9}P?JuD(bi>~wcySZ5!AWM^mjQef<+7YR*3#m>B)4o*iG}AakS_%@ zs24eoZLrHH8~z~})rV1)g_E;bkDeP=ASQdUf< z;7GinRE!8pg_ILhDn?^n}~Fz%-AM)I!n?;{#Ef5SxP9plO5P>^OL z)<9~Kc!aKBvQp?r+hpZ#*JNdb2)73j9-a;2J0ghhNDf>M3VL+DmKM`2AGor<#~QKz zD<6+P4n5jde$YGS&EEEcQ{HU(NqajPmz%|9XM=AQysO~GjJLbtZWnG(gYOi)x4Ngj zeGPZ7aQhp4zu>tBKPdPhgC7=rh{2Bt_6&Yh@ZknOF1T#)lY-|7<~)d_4EKz1$AFC; z%QHx2M)O7FFPk#LeCSGrwOTjSv+eyrBnxC-AvnNf!}Z*>{5*!di3sQr<5N;zmx z($e`GC?3IN;z)ld!8*f2HtSxG4t`6LepRy+RjVf5;-M9|6hA)vqZac_DzP2Ue5Nwf zFT{+06v3jF!#FIjLsAK*6P=t*AkfJ{)0G&O8gpYy<7;zccORb`yL)#{?(#sTMIM{< zT&9c)d%o*+yKldRGpEiV+>sv3Jo(m1Y?{)y_?K0XR|!eXWDJKQX5w>+m##^(9%2+f z+v*%SR&`ZQQPquNI#bn_E!Aemb{jQM4ze?Pm92Glu89bFf0h@oMmWJ9Yq2}g%{#sb z<>f9G(P!LVe(HK#G7C575%Qw7Q1~r z_)x%Tq-+TV5Jy--0mM8@D1bQ95(*%WvV;PNqb;ET;uuRPfS7Ly1rQ4?p#b7oODKTo zv4jGMg_ckNahxR-AVZnYYG=KdaeX+pifI9h;yx|hl}ON!=8vbXLho5d4OW_>Ua80& zzb^P~!8;rLuHan_eqS&ESk^U{wEl+NGMn-DHBKLi zlifb63klx-#^sa#E_02`r~O?H!bMgyDQpx6v#c>8Xfz(7Jouk+G3kmam&Rv8yGg1x z`s#i3T}$!4_#qL~Y!eX`&H4tbXf`xhMYFNu3eo(?IDZw7zqgqot0Za*dw2Y;&mMmuhW2>SY~==>$)mSeT%R^H%$z$IF(iLcevP*>#7 zezX4naqSmnvA3zPJ<`@h?b;$+^%c+-9B&B)5GPnd0mO-xPylg~B@{rMYzYMrr&vOP zv@f{?MsE`A0jSo#Ordw}-@X)e3iEp@aoEbDva)3;QW1QLW-Gp-|KDVmU3g3fS`g`O z79MNSaST-?qJ_sF2-k6IaCF?HUekKba?N>b@IqU%oA0J9NP(8pEDg`9(ydJ3;%|wQ zI}W6JhP5)El|{{qjZ5*}O!TZ`0!Ai~>~5xGB+PrcM7x+I_jh@n&~u z6!](vJ1ZqETM$!sROPK*&9adG!Vn=o7qmDu_(vZa@f^F$(05l6qB{i{)hknR66 z5!1alFFCLBC7a7j-o>$Fk+`^f$xG5Pk@!puvv*4O^$z@!&>9At${X$_dK+dszqXrJ7bsZ9|co0{|9R&u#T1lCfGHO7{vA1a%C^VuRt(yqb-qWNRS zv`vXieq-!y+4ka4XTi@X%2*w9%KxOu^~jy!x~_H>oFi_-`M{NOICdY$TbbW-fnwSt zPR4`z&ZtQ=A&7@XMuCksmfJSxONdES`F6=BPDQ5Q;2xX^?WDS#1?LkAGpY;Dyi74FEv@6N&35!U#+^hk}qFIlCXQY4iXim?UJ6ot~Rwsv39UAiBRvscOP?68Se@n zDOhFh6pieYS?@imlao!#9QS?hyra4J$4L2@aUYkO`)yIx9YZZW63LdXY^(PH9_#%z zac?jIwM|^dVeeHZ(otJpb%kub{|j;NUfHjEfT==#Umqp(RdCR{(7@r{Ym4;d4gI1N zR{h+ATJ>wCqVJ%1c+Ojw=Q>K+&YU*`B(;4vbsA}e+NXYNN{qC1zVzSZ*|*we#YXdA z^Rb)MrBVz-WLxSNzl5*g+*xk}va~KEihkWa%X3P zkQbYzybqCFbEbRcri}Ynf%JNs^5FTvBR00`d-ulANBAkdz*+?3{1a$pg9VpBEt>9j zJ>Ag0hU^7)i%7rdEMaqwl-78j?uSG$l{SN7ppCA6>h~sEx^hx>Yxu%+m^q&Ki)iWL z{`(Va@EOQ?=qWig87%`yJ%(==`bP0TZ{;SP zasR+im+#Cwm-v;MoOx|E{N|l`3`uKRmL$8{Ox)6miG(flPg)yBCcX8j4QBE*m-N=* zrkk20BpcGjf>er$pa~?Q>p)|zCl#+ofs^Ei%!SCmsBH{XbeOm5Q<_7G->7nJW7eqM z|C5n%TI&B3kzA#^r@Inqx~>)ncN2c~`4q zye34(-IyzS)m-iNzvAp*RwCLaUE0ube}oq`OViLjnw@`4Kd?$o$8?A23a1&B6etuD z8jfnA=5^YjWZXgxs@d_^gnMb!aLt$GfWP`9ea0B3o!KeTbz;=c+;D?gvzIYBg)Z@5 z(rTv$hw#E!g=zC|9j_H?2;;YDQAHZ=->&?Kq&JLo$h_fyhT58yPo>N2$UrgM=B>+b z)?1G&W;MlYt2cuyTHG_`X5!`;8zoJ4;8((Qk`6yLHTUw4jQ>5?X!O>55c_iHkW8~L z*XiAvRcGcd^5_m^{PSZD>!<9%O#*XoL(JKvw*g+`?^tPqyhAj&V(-XiJ*GhNZ`v`; z_KCZO)MTZu$h_-~{C+Rx!^}NJxy+!#ok(hyX76VTZj7SP;0MS&vivTeaUbjmFxlw1 z>+xhbx+|e^9@tE3$m!?3{n8u%phni&S+QAvwBbAvUmsH{C^ZysN5-OlpUTFyh5La13 z0mRjoP$2a-lQ@{P{b1_t7No?#Csr7Cu#2;?A%`fSlDe(%>$scgRi1O)t+{%C!?o{* zwQmVg4|@(bteJi;k(fQZpUsS4+9)a@&cCvR0*GrYp#b7qODM2u!XAUPMcWZ8f6||$ zl3y)NqU1*kcF=U}s8@Lo4S25JI#trN7a{s`7}H?V^lKYI1;qF|ODHhy=N{w(^8^y- z-FT~iek{(LRmle#`Vm9%>$rPJJpT#PSN6|JJmv75e(~IV^M10w-bPCS@w~wj3Lt)C z2?Y?pwS)qQ-&sNdX_EQq)A)5v+V+vOH9i{UN7<(BU|fO@I-_G(sYF6Dl!=u;`OLsU z!ajr4TNZqpGdaGHegulXkaTHi(wjMNGiaM;X09Cn2ubw$d(g8*$`3ZpC!N$!|LkU) zA_XMz7E36AxYZI0ApT$p1rWDcLIK1dEujG7c1tLLxWf_(Anvq;0*JdTp#b7;ODKT2 z#}W#pe`XdZk&5zyg7On2Z7oCT+Q&nP$F$+o)}S}Xwk1BqvXuOaWvN+&5!?kL(C@_prey34X-jQv^RMIO{!bD0!EAAmdbzDI#Vz zgD!T=V`SaNT@%f})?FhT&k&0*=iL?> zqlPCwf3<*OBY$@O%FgvrsPDCfS^>m;mQWD&8EMn5o=Xh?3e< ztVzSw#KQkPmWG{e9~Ub-!8qzy8gF^R`;2jh<6aAtIa1jL%4pYd#m(rzi3KwE2@*2< zgjhm&uWi?N*`;4!_GcSY1w{Q(ODKSN%n}M99=C)7h$k$efcHtB^+f5tff)J+5;6OA zv455H24k$>;@5F+)T=z_xHob2*3-1#0<1{8_=wVesia-bn+ywPEbRvz&@b&z+ITA< zAx~LCfvH0W1?dQ)?6`mAo&NK&)cm-j&IjWz@#X!Sj@@zZ=o@Qsi(=jQB(av$0;5>l z{MuoMesTVbjiLhL{In$$EG5qONSwFfMK%X2;~b2c#Fy7bW97K_^^LQ*MR7h!;w%T+ z4l2&i*eEI>&d*vx0mO5bPyq3~B@{rsU%1Gcs?a}nE-$)?E41|AQDERbZv=kEM z_f4GjQeW#u3s zhdmT8ty%jlL4`^cMfzTOT$VF4x}2GbFK1?0&Sbb?mNOUsPLl7q58>b6m^a%l{Q~&% zH726s=&|M^ovo(t=LT!~t}s~BccsBk%gggk`FJOMwK!$HU-8qBW7Bi4O1!1zlXsai zsoO4(Buc&<$Q~`^6R~)I`aHsyzbgIdE4HvGp!B?I2?a~3S1*bvZVW}?^j6lZpg$E~ z9`iqxx0itxEtt4P_3A50Lb864_3AYnMFqt9bxSCKc*7D3`u0PwOYGPFi_J)8eX6v} zh)ep?H}UJZ@`T5%DXQnDYx`unEhDH*UIT5MygfT;IcLIK2EmQVokwj~rm zykiLk5bs(-0mOTjPyq41B@{q>U7 z#HW@}0P&e66hM4#2?Y>eSV95BmzGcf@pnrofcVN13LySr2?Y@JUS>*J0mL_!Pyq3* zB@{sX(-I0G{$&XT5OjkkPz4a*SwaECe=MN@;=h(q0P(#g6hJJogaU{kETI5`>3#EB z1rRlsPypdrLV?urTw;T?+Jm-zgs885BqdwzXMGH+=ZtzQ4d)xDW1)CO}_P0A4s>(vRXIbG|e3ENC~w9|MWK+E1bu@No! zR_|-ZeqILWxTiY*V(MI=peoAS5^dulC)SAEH6>hH^J#}rryaLTZih4t(UIhI^!eaA z<6N<+KqxMh+r_)4oA2Ni3DsZq>DX@6L%3nRh_6aBYu)ZYsLXJf+nLsEE;JSV*Pz^Q zh_|e3^ifk_{r*0gt{>{S#drj!Uq$;}80uZl%44w=aG8LH0GvJj1aZ!Ib9jf*nmqy? zKXb1(Oq-huO~vtrrkL%}adc))?)|~r!nF8{iJpEf_pa95TxjmI0;%csXFWsL(%fgg zu9pa+DsQ7Pf%tnj5lyEsR2##^-}3#22X_)K{j#Qw@~)xo2$)oLjR`wC(tA@4nGgDJK9TW^YR z3>8^mVChiKxFgGPdL-uiK;v7eD!xbhKbO~=1x2wO+JfrT1CnPgg_aiYIu&n=5${D( zZgcK5Nhr2uG->?Y&r|%|EkAWSRo~1`KaAB)#A7VM?wtgS`7n9h)`j9iRG}+~6$^Rh zDk>^WJd8gQ27$Y+JT#EMKj^zEgKm-s!*b}}r9s)`vXN2BR^GdvbhuI3a#!X}nt>SF zY;G(x7B^yd@oN{nPzPHQ(Rhmw-MPmS_F5l_)7daj{&k{%3Hq#cN~A&j8^i(fj083bhXAWZyw z6ScCwZN4AZNIY3nGf8AE>#wrDS|{H=b9hD%hs?9}029-}p>PLPvsbhO>Plj+$Y?dt zl;s<+_Xts1yH4v?LUF(Ln#Qlfq>;ex#9T4hGeXdq+pm^?-kx4XW(TL*xFCjYdO*{ zxf5TsbGpTyV`U*+hQAzl8a>B-7m3SS{3}YJQXyTb`ZEduMUnP_=?{nT8?W{f~ixD$Pc8 zp{h#buky0IL)}Buw+)N0r|@Ko6F9wq0<9%ib!W!J2+^M@HK5-ynal}}@st@}395Sp z=OpMpy+S9pXB1^Sja#6IQaPlUO)QX2Rx-gTL6Hd(l4Qco;uzHvjdC_7ky<^sR4m%H zew~;lQZ2|*SzmFVaE6`>+jfFzgK|9UiQu;6PFM#4tfjEN&1c_GbwipQgqz^a?@gN%z;Fu z(J46-TFn%JEO?aH%VW-hd1*y?=4rJrYe9 zy;H}AOx#iJuE_oy>TRM?>XIIcdK?8N-_6-TOnS#mcWaw~8p5W;r8q9<%DYR+WOq#p zvkOC6Ki4;80TSDc*@S;rFNcm{%~&gcaOP}XVzcdyexvL!s^#6NV-`3q*=5FE)Q70w zS?yPbgtBX`Gxh}2#*`pC&(w^dKlgR|2DKJAc2Z;v4=q>5#8Zi2b2^E}h_Q5+X{%#% z{U!|OW+R^Bx&bg}SGd916^y3j>>$$|HDrQYO;W{i7SF~SnXv0Pir7%J8`&1t?q8)h zY;=@zeW%`xG#OpF1S7hC&xo@r_M!~LK$U@A)jIwIJ{dI3K*Vt+IqU=kg^0E?TUt35 zJAd~#_+0ONlgl?;qAt-4Y8umxsZ3+0F-z<2BA15R(t5e#+OYt_Hgx9VSn`h7o8dW0 z-Q$9zS{v)9a*5BsO{`|?sniGgXBs*qwHkT!tG0)xo#_9ZwjOFIvT7Sg zt1Yd*d9Jm3!|pHaWzQRNlX`n5zfVY+tTtv6os|(3Eka$9A3INi08<;_>mr_G1bU~A)feYFh4`gPuBd@nx8s;FxyOA95%9&k4ew&xQ%^-m_`u!-r72rz}LcUexL`PNc=3Z;fsk{Y{EE_Cr^`hZR2HVa6d~1 z<9@~nU_8o?N$(MEJ4!=4lUgsr@d$fM=e-qfcAOx3l5F_o9sVz&Gg=dp<>%yK6QuWm z!4LA|J!J61g8yW&yvO^q!H)`l%;3ibKVk5bf}b+@FM^*o_>Y2bH~0?0cXGkp__#za zk?4`BA(VY&ngwManOxyVCQO{MV|rwcBhvlJ*oh4V%yeWep#UOh2?Y?fmQVnZw}b+S zI!h>ksJDayhz3h2fM~RY0*E1&PyjL15(*#+mQVoEWC;Zj&6ZFA(P9Y&5W_5?0HW0r z3Lx4np#Y-Y5(>1A$IoNil@g)nA_$OOw$XWP!+Emmxd_<=imHi%*2VSYc}(#z+7al< zeh$;ttcaQ;jQ&G@J!)%HFyKT zyBoZb;5`lA1RN^bd3zgj(+YB5LvAilu`nxdj1-%{AWE?vV5>14D5OOOTjIS;Gm!V@ znrD72&mUy)EWw8utioc0lZ3my@P`{b8yv-~Y{;D|$a#j`xq>`ONh91t<^9JPU%N}# ztl`Uh_N;iK2hud~?r}hS{9?{qliqzg8y(2q3Xx1dUAc<)mW~N~-oiU3gEeDhaM7Uz z8w*Agpsx6oh!|SkTjJ2&7URdmi=NTHgZa6gZ^G%37RT`q z7bq=>vy$;Xeun!wG3}AIBRJJg3Uk!#jo?ldq7_i9M_NJw#3)NBfEaBF1rTE_p#Wm6 zB@{r6vxEYO6)d5ExXN1N8KkmF>;9o+J7<=1RR!LB#whUesdN+^g;type@sVM6@)RQ zih~r!n3k}1NcGtw$285PaR^V{IZiU+Q7*YYs=bR*0AW{?cy61xJ?1|p%<#my4a4Ho z@SYYQH9QJ8{}j;7*4oC~#mw1-iKi$`2`hniC)dF7qFqjXX)yOdPF808vt z_BE()B&g^RIVqDAH{Ew26W#}jXiV7(uP6;AAWiEi>HxXQQ!btWPaoEcgg!u|l> z+{*Tk8T{JO)Y$jK@BS9!gBgW`c`op#HWQMGOM^ECvjvl*rx-i#hj$y^mXQlXrUP&h zC1?3n;aYEVBX1jGWmmj0K$l-{hwx(s&mrUQK8=HbW!A>KPcrEjtHf_H?I4=PQVAGk zNYRg~8M9iZnkk?HtYirV5Gz|k0Yrx-6hL%ZLIJXn?>V2}K-YLa5%-TLO;%%Jmnv(M zfsV|v_(hdWuM73MNUtYw^*&_?)mMY*Zo>7a9AB|GX>~4k-L;?2#VR(g3W&UG2?Y?V zT0#Ltmn9THbX!6}EWNabqStf^arM7nMtTDsnbS3OXX;g+Lw!-NXLI$|t&-l-2c-A* zqX(PbqK&HpB44tE0*LXJP@wJIex#{}w1j#x=Mo!#U*2qUaI=b)GZq+C*Gyx6zFses z_%p8UmtR*&{J-13YW!!->X%;=Z0r;eU8Vv}fmHx8(Gm(ECRsv()j4a9r{_{h&j+#e zY+aF_K!-+rIquK(dWBxE!eK?THkbxSCKm|_V9 z5NlXM0mPb?PyjL25(*%uSwaB>^BhKU3Lw_9gaU}QEujEn9ZM*HSl1E?Al9>l0<8<_ z#1%BmEs?wt;vW&5)y>fv)qXm;H{e4wapYGtaTs+nXwtiWnmDSHI}4H9@iX&EiSlbk z3*{!sqo)nNMewr*|3NSsBchJ-qM;;o7p1U__bNoFlY5qA=G|QE`zt4K2BVXkqKs7N zHL|*9$ z&=&%hWM)M=x#AM&D82qk zQp%pPeyz>#Br$jAW33JCHIr`guSy%bfsLI4qPw9b6hLfb2?Y=vTS5WECYDgZdu$&c z=<+@$srzRvb=CTKil+1v&uZ%A3CDdxuTSaqX|5j2hyBvK!bha{#AMa?Zy_rM@<%2;mW5*YXY9G6ULaBu~oeRLm*tWzvP~lMj zYERBOUKBdI|6$DR{g+Go_&R^F@H;Su!}^4VC?@9o?GEJY-yKU6!6I>SWt6vgS@>yN z;(%D$4@`uP{g}tUC#?DYd7nrF7R72NPv;Ghao^_oI{UqVDjT;)#Q+keFwCn;unL2IO zZRkIA=lu5stvlx%dN;6Pj|;*U!y-}ODGl7??5Qx+SNewfCTn@Fh+vJx3)lkPBfp9*g!<1w)>Eo{4+Ah6LN=t?Pnr`I>mQ@{inGE_n%Nj98<;KAzM5AB}(i_ z^>Gc+bddO%6A@iX>=F@kl-MmI4pU+eA>P$MPf%j7h`3OReWFKhQewY|cuI)_qDMYb z;=ss9>R^f3!4WY^i9@4D)>Y!Lh}cdEKOzoP;)p1Wlax3zBCb&4XiIc$7TQo|OTP-S zYyJ?<*OD?`)8!<=GMA*a$2cF!HWvimBdsXsqkj&R_A~gH9N}Mn2}>$sQ)ChO#=hx7 zc^ifp`Ao9sV!UM*$hFvHe!YJpPum!7O;F_*_}G~rIQ|>Q(5KvZ*HVya->wLK`fVpu z0D8GM&!o~Eyu7UpY3eB-?k7AX`|C%Lgf7;ZC2Eu_6F1teLV1TEZkK7?Q>C(5HX6#O-44O@JD=+12AF-zO+VCx#QJ6e()X^4MW&$YJu7?~TK$IgN6Nmlq^jc3psRk5N`8HQKu(37)hj3ED#<_8EmW>0b>D+(oB5uK$eJhk{5Pnh1`Vw6aB#5FRbGzYnxf>ucS&l8reqnanIGatNiU|Q`G zRP>mB&U(A>Q0v6eO||ZD=>*tW7LW(KjZ(b2Nm3!(;_Zw-qPY6s1M!zL5FJc})#z{5 z+l^m+yO?v=yY96A?L~M`tB+bQ$!~Lguk80+oyfmgsP7UzcZx*fQ~p?UNPN#9t48{d zvB}nyQJor905QuF3Lv(zgaU|dEujEnJ4+~l*xnKfAa<~X0*Kj`Pyn%`B^21ohQm(Q zK>@@ZODKTY*%AuuqhgP5BxxN%U2sYb<+&oFR&OtUx}5S51kZBK)VGnt!rcfUdp?RW zLtz_w>pK@e0^Pazey+9C?v$%4Lp7(Sp2iKu_f4|w8dP0sbjDOPq2{qZT_YvYWY9iM zY1Mx+G{whgM{OxbMXf87n+0A)F1<>LD6V26*QSx{AZz#0?96!k$#2d(fS=~t-dR?O zAmcUh^rSn8h>RkpA0*bGh80rt(6y{hLEa^1kuR;z5R@n!3c@-Qt`&UAf8GO; z6=UExOlrcv;8S=%g5LFl?>iYq9KbkOEwqJyN#!_m@8@gl#9+M0og* z%gB7ci=JtJECUz8_5Tu*BYMJLLUKlL`Z6T0H6)omHOXs#QMLhPj#Q=li@)aA@XL_6 zw)WBYf2joXK7APy*AAlROijJd%fF_+_AenhqVInh64&0|c9&OQBoNmDlrVpG`C|V3 z2I{?cSEwhP+m}NO>mZakf8xJi%%4>t!PL2(l&SOQXGontr+khXopU5K#*@H0L7G1! zA-}(!+sA)l+qY<254J6dY(t5*;lEMuVO~sKcRc-^BP&0G@^egtRNFjXr^7B|*GsQ6-qW3|wm9Jr(zyyf#LjCHXu~u8k!rYg z5Z)Ty4Fb{@Mb_xTBVgXgmC@jhm@?muYb5I+4B>^+;7zFI)zaV%2xL0t1MABn=*uiH z8W!mQOAPzGKCb{idna{L^MOCj0SUp!ec-ez4S&!BZiG403cEI# zAD!S2dO&~~h3Y7HV&+tczDQ^-0;@3im=B&IDfknlc}nUr^zYM*`fHj!|C=;Z-IDrm z1bm|#?jO_(gc=kL(uleZ)}(o=RPUnbgZ`lUTv{jN^CdWPAgKOFN0!1wV!lWuEss=d z^!s2n^t2)18{80oP%H@eJ~zmyNw6Y~x&!7FveV`D*Iz)l3red@?dH$cre@Sm4T^&V z4fv8TW-$~*k?c?_Uq!@sp+6wL-&6UEix9@$ruXX1x5pggRn-y$Hc$3K<~%fLjTSOHo&KBG5#nJ(G7aSIu>5Y zfJD*)wQ=#FCvSaj)loSiar=m5??0<`5hxuj!aqmEQn3{jdkMt0%>b9d2aVARWPHsh zmcGefqL*V-GKBD&&)%RrX$hqjXEk_L-|d)ssTVj{<#f|O?5NZ@YijCVtmyGFto^|v^Fpfc+eOS+y+YZ4#Ms-9zs4F1bwbl z?@$b$XdnEo5w!wbPz?T^LjUrnyA^z}6yoKy>k7HBd6nuNhG`_&r%@^`Qn8S<>ms-> zgBxn$4b$y!AY1BUaN=KrQ#%;?48IGQANx&1i0NcigXchGShCE9f8hIhAfs?1g@L^h zM4)fy(o>MnMJC@{=uiqahHkvG{hhiIrlr%sql_rrq0s@w%2G9irEK3cbi?p=#$&GINSdZ{r%dK}e_R~tZ z3H-DI{(+B#flT#N_y68cm{!`d^VPw52QCm+x=eSz6T3r)wp1TcdS*{ZdKG3pEHW{A-EQ zd|nvK)Q8LT9Y!?MY>-L0u*Pmf7D}rUyCsm&0XI!GvVw25@hJ{($P(*>ym1#{#T{-<% zM`-ZfEKDQq9E}6g4%6U6S{Q>))ZiCoF#g&fsB!ePQ#B6wPmb1{;gejDv?HCaWk_dt zww4NXv=#s#>Vjx`ef;^1ExHPLK;QG1FXey!?4#Zm=<=u2r))4d!}rDE0Kf$fHTpp# zNZnRVh1B?bjTJbK!?BB%&)3YT0T3O}*R1+{4gPvJq=A9<=WAw`sQ%ct^qCqwuh)Zmj?5CcwM9MbWT8l0J=o~d1h_6Xk%5qIJL)c3_g8dMK~Z_0v3 zKcDI6S*lE_@@2}Gg@>=$db@#i@1sQiAwo=mf8)->ywadgbeA5TdSeXds)lfV2VspG zh&;h2{w7l7ui7ZA68u{N_|7KakZw`!Ff#lHXM3_q-X-bM!J{nkPL{`qKbSl0s|7s! z6HrA0wi*JCR_RA`FmH-^psxz2I?!&#UASHaovLzrLEqbhAnaoTkA)oJe{eVa*RT_Y zgXhKmrpsZPtkn#qf0OsqGm6S^RAd#gOu;D5M@; zkEC>JuDjROD()NetX7d}AYMB)S)S-5#y7hL3-M|Y?j&lq!t1RHews85rjf#Xm*&x;Mj+xJ>uD28v&&2~mfnRRoeYr9En2 z#q2O4PB*;%`P5;UUaB1(1GCPBmG7rpMcK9}E7n16NxCa)e5S)z@%usyzdsG*PdkJ1 zdNqu5Ee6B;)4jhLHDQ7b8@I!B5+}O#gQe4?8W^&*hOrO+yl?{>U0>zv@@OOhH zwgjs5hs zRXn7-A}Ri)N_8Q`HXCJ+UUhrzq*j+n%%Bw3t;hJE)Xx!_gq3nx*$>l<&^ACEtEj&W zz3Ma&TlJNGXlGP^lv7)y%o2lg>@k$XVlu(jx8iubo<9e#Q=k_(38M}6j*8HmoW$6K zO3_ZD9mz@iu)hqSj`2Tsh=+b%X)<1?r+Vo^yk4%`bsxrDL-vg8gLN9#7DLWaOM67}ZbrOoRUa(r z4C*7YUca$U!tWTiiYJS)mg|!bi%^fqRTpddVSP;P=VN%?tO`o!z9>huLwnwbp)5!7 z57fi(mrF6<9n{N$EZ?29ir$&NJLw{_ti|>}vKq>Q(+jP15hqq)JHNTSKeYTz6mo1u z*a{c%ZW?M=!8LdZYQY71BKD>T=yxvS_vJ3oFZxo?x;1$yoZjD>{0{oXD;mL0gLDy9 z#$(^@ZR2`julc?@$^#Qo=4*vLB9dD2=GJ)KI05C8?@XkdpY$AbDK9zte?~7^KCzB|!7~5(zwb%_Y*j5*WV(+-2Fx(h~ zGVghm6C0yEOMNP$AEr5#O0@NRv~d1v>>b7HqCDRRWnbtiR^f2!Vp1k?o9>zz(=joV z*h_i625A*nyW+ibO_ZykWx`*;pqLFNA6|+x)({gV&d3suq@s2dT3{o>mz?GdMzY}C z4K#Hqk_&uCAIU8i$yLCMGC=v`k)W(Z&ZCgB!rz{Y1D)q2q#U9g9;q^ckJxab2d>zL=Y94@+k?aE2VjHh^C%IpW=}G1q^&}U-m&r!MHL2 znoPP-$PKB^NYqspD~JxnB2^RL5xt5>3KQ#zZjC~!hu?IE`&y4iYA!AkwHk)hO2ET1 z(D@N{5by#GP#jSt{!IX&AWE|vekmQOD5cp8zmW*!LuvNMH$s6H4aYQN1)PNgJtjNj zU{w4yn=iT(wIo_8h7-*s+8|~V?d*y%w}}-* z^NGF}8;NpK%tK;7(VP7k^SC%gKZF6amhP)9;jJVfpAo35E8*QDpix7RnoC%(0{u$VLViQE zkYaX_a4Z8lF%n~Tl3qkTNY_;c5S=0FA*&j35VPtej5$Dtlddt@GC+1F+Ca2a?jib_ z%CKA>BpNyz?^_{{5LF(7v{!y0noPMvt($0zJLwKclPH=}IV95&Eh0KBolUeQC)sjb zW+mN~I85`n%te%ytiB}66D=XnUyoSn&Fwsp}iKr*#ep`kSt)(>Y$eNU2 z{>gaXJz0-*PE^`^vIWsEl*&sPNAw4k_N^RGbb;uTOeD%ewn#Ofs1wznsg_X=Z>XlN zDw(Lz3e3-{;4@ZOM@uvvCSCt=NRH~5iEYq!8Y!JR4J1VW$e{KGWdUWeAgySDRD{S? z3|NOTi!(VdLn^1TKulNhYCBQ|mD_?XdFyy2FXe7QU;B*JRG4B8-=V1_(Q>-aSHbW4 zA!apdXZ|Xjs1f<4jv7W(jQrVHO`$ZCsQ#L$X=LZQzG!C?HIrg4BcFvcb*2{5O3fo( zKk|HMl|rXq=Mg0 zKp6@TK^mjrBWggFIHaj6qZO%HEYdUu6FktQc%jxa zsNF<@bkEd5q9;VZsZ&H5&tc3D>ON6o7*b{yYvrUPNKtkO~@p zM7?Js6){4I7B5CBW>g~zK8sYss6`~IBb7Aj63t9T3N-o>9X^Fr$%rFbMigd@Cps98 zx|+sRqH)`i>KLr9QP-MCh%4Wru7k0Mba^MBt}Brci%A!4oFmc0aF{Y?3rAu1c6Xq&YlP{4n-;i$Rls&6#@V$VKlx8Rpev|1> zN^|{btrO|6?87*wBx=lL5=AmOq(jSY?c$}zGMf^`#Ud3p zTM%uEM=D~rBAP!6sifH@9rngUlaR`q(Ue1;gd(ev`Vy^~qNzWX=qQi?-9WPJ*lDec zp_rQvXc|OhrBuAkF+|rX6)$r<(Q~GWl>0Ar-mZYr)SN=P+>13$qZ}qpM5MVM|*=y}JE^_>fCu#1_?3G02uT%=xRaUdZcpF!FTgfR>Ey}HyU zwwS&YbK?Z0{boa=4Q&q&w26aeGomI(HMJyipQ@=9rD8UHnDj~>GTRgF-S99ek9o-K zOtd)#>6$r)=*bqOJLXKHyPJ`IGM5uwru%+3_W%j8^}B~j1?3C#0O{UPDsPx-5Gl)T ziuqGZjOk!`Ofk=H!Zgz}{YGhKv3w%kd&)1T#VI|OJ@ZzKna7fe=qja|*OHs)Fxly6 zX-Z@vU67?6QBTrUwL}x$UXQ7SSq2adr`&5{F+;q5>2C+(Ux089VpE>%SWPaRKC%c49-}hH57BKCA0G|Xyvc#KTPsh zlP&p37e#5#u#_d5MENbWR41BCmMyh3BuY=T($b13n9@wPbRgPBrCn?3NpzHSDV705 z@nqR<%T%J_WZ53eETTG;-vP@Kq6o_2uw@m|ak}q>WebrLrFqJ-i>N=*8Owg6K#F zGt!l|&LL_+wv@LnBg#cFgRFard?@!&>rtXvMAfVpiBiTj>S+_Tt@nwZ6VNa2W>otxrG-w>r3B`3j9k>S#?*l$9vL z>O!=L^6La2K*X2^={j4p5M3i(XKQvB19W%c1Oi44Yc3+_fOTGmcC)LPz77iaaf(+#&)w9}2SdfDklS#5T@c&m?{Zj9B>PB+%- zZ)e$fYoHxXw1!Yje8glEQ><0&bP3jKb~N2u(~c6Yb?83r>si+NM9rvtv#ky7baSnZ z?R4|3O^M3G!HZ2Sur_y5;KBRbkrrFq+TFL@+STs971nNcx+H54J6*E1r=4y!{NW<3 z6>ZBJYagNMv<>>+mtNML^4aSq)PIY>n zfrIceL}gA4OBc z|9xCd8;hiPQwrP0nUW~=n5JuUbxCYd_9IL$uTGG=9#8C3xL39(gexzUn{p2XdBcYC z2(>yr@_3iV^mWR5{M0Gv+*g;xa*d$&Uo&I~T;KFZUriwS<{P~CY#`dxfkwG}p%`Kd z7y)rw6qx{WlYaupH|1u4j4Ck)XNKPUjDTUnHOycR-ufgrp$H0V)z?JF%)ZS$uQ z$(Jn8N%Ec##_th=vK5V%`{??e2ZpqySt+0}j@XBaVMqwgR%>X6dQ7E$PyJ5&P1n9I zyUt7dBF;kbT`Rg4|mAD#+wq=&LRy$CA{RZw|!p;@)V94k=2lt8-EGunxIV z0^|767(2!;{2A4LTt3u}DuQynC#K_C5M@=0=|R$@x)!#yG3T_R+GJm9pV#Sn zMJBv=6v<;W@8qLa>P++3Zfd>#gRx({$n*fx4=;^nd_nD5doO}4pF+~Ubxoobmwm03 z^ZXf7=;rql%9Ue7P3VA-XQE zQ~FmZeScan{ZsFl9heT%i6dFJoC{n>l3Y|FGhD9>$pO;dW4hP>8Gv`$U*Dq;9j>pl zk`1{j<>!G|(n;mMfxEgOo7WDdWKf07uS;7u~_wA|%*l-{pN>v=?+|nq2EQWFjUBAfG0IvVquB_H~=1b4U zaV0I`6&lBtB^hmoS4a(aFxx`70tqX5npwV{Q}ir6je7L4idc__iiJb`DFv`+wJL!3 z)}R*N9^^mI_2oPxAg1n*_MX=*MEhUcpzCV|jcGCEah$OqZPri?cBFd0Lo-xPnu~9L zH3D2O*9~%Xrn$7LFg~fnp%A7)(nXZp?jDgg2jh8Ene$Z0etVcy{ zv;DZF+lCj7sP?6>@5O&mZ_>S6kI6daD9@pgqfYExz9sC_HQWB+7B zRT^D!Z29Nf)HSGg#JcWu?|wxkeVY@<@TxS|l*@(J_T!AL;#jcfOv$Mr?e9&yPHms% z+Rp_42X;qkIgB#eigN!Lly~c++}3#}r1N!)`hPv&;RqjD4yFBQ^Z#zX!yUoD&v%_N zV}Bn-atX;>B=?fE_ki}~Kdq7M@3LRj{3q+8f4X--;dx+N75~K``?{|HxwZ6akjYg0 zT}X~4sqM5MV|B>?-HOQY!`|8|3wrNsFX8G?^=xkMrT@(g zZf{Q$uM=S5hmf-%HwFCw@>PLrAiti$>ryY%eN9{PznQ_;6u1q!)b+d%@|GW7FD;JO z|Kxw2*Jv6c^_cl0Q*F=G5vkv_CotytEJ0ZoWNLk-ja^dgDTV7voGDW8dNA-;h(Em( z%FTySPND0Ivw!_d3f=X23yqxmR7B4>X`W0=^ChK;a`R!7Q#!r;OKSf-|E<$AfdVBvp0BkSF_TMqQ+fIKKIv~u<-L)S&HUoUt61Zj>Z z8C?>0-=|>af<1Tu%8Rtdo^Nxg2zzsqd1?2ZoyMZ&v^&sk%)SP7kJD!Yy6@?ouVpk zeQ?&kk}Vs=yy%%1WQNQILE7(AbdI`>Y472AcxwBcl)E@p-;B$?fiQiQrBr|F;lG?(yKUFHL@Yf+-*<}ZiTYnwBi*j3ct!_DtZW? ztrbAxDVARUloh4U`#^|3zxrdwOHU6mtpob!9o0x)s`uhlYZD6xLV0Ia#M%5Zwbh%n z{%k=fKehAWUEz6ftu;HlHy-f0cTK_H8KmR(s~l^zA+QPpPG)03*Zal>Zw)>lU6i zs;7CcEtGdt?g)@KY$$bW?Bx{+*Y@LyzW1L(3XmUi(D}J;MV08xqj^y=7Fs!my?`Matq1DB&U$vKr)WxmL!b-$2ycZNS-G7 zgk-%{7@qxmlrMIpyi3wTA?KE3i0cHDug9Z&Owyo`Q4266HXLPVlC4Naliaiv!#DIs zIf3Lrk_$>8RIueIez117=s&cZ0a^+$O<-!zc7znKM6kL1mQF+6{T`5<=`$Lly7o@37} zgDaxdltSv6_9PfNS5H_1ar)%Il|wv@5Bj;1e&V2?H0ia6wqbigOf!7}%EcFDx(X;u zW=4q?rjF+$x~_)NyTMVEi^r}8?e%=P#?#h*n;$LLHtX@t!-jEmd9~%bEU$8>rkv`- zINN%NsqaeDrsnHsZiXD!MWQ@VWi!Oo9{9Vl5mOE?h;hF5i5@ZZxvTboK8Mt2lJ>hZ z`?Z*q>_RzUhBDecAz~ zt3kD6e+Fe=mZUuBhkn%dzAmXg_t4?mLcI#LPoWaEff?Dc)EHCOR9Vqz!X8LjkFI;& z55aZQ&v8a|F2hldKITF*K@Rf_O1KQll}O&7r-6FSuUmp{ zC-%Khk7=pvXSDoCeysgGUiU!ir~meO+1JQrcl3Ne8q@T92=+Gob^V;Wc1@yjTc@eV zsp9PKzZQ(yM5i*vw+ z&pP!e^z|vL{TZe{aqX8E$DfB4QR-9W{&cEbl}?qvKGoDC+lx$?i#}65NKamFk$hGJ z+vnFU=N-*ZvrFOmZ3@j?9wb#^tj9BSm&F^`QrY7N@2i1Y|)zakp+uPY+GUear}POytzhDcscBY(kY^cv?c!90>lc%2+J)4E>$bD(<23fdd|N;+haq3Q zZUfg5q9aIe6$SB!@4H!yjy)G^2j&9WhwAsoI?~=8_osiockx%Lt@tWr_1~obWjfjVt%tid zw-1E$U%|Wv-#ut^x_n)Cc*#@5=dexR3@J>}B(@&h13!@);6XZ3rNwbCi}-`dtML!; z=fz6o*SeC8?|Eeq-QdTrkczm`__)@LcZilu2c6thcF~dP zf)l)nDte^e*TzldfcZzKQmlV4JSR8BFP=~Q+2b)1;Ow0f$W$|YtoZJz21 zzt3IF*7=1ydwYnyOtr$@fQm4c09`&&hRG9j`GidqrIKF+v(5v&n_q-6p?C9(`b-DG zy9GpZCiHFr(VhvtTTnzYp?3?4KAI?pLL!!Rm_s2kk_mGtBqlOp4u!=GCd{F*Sipoi z6cHuD{q^)1D{yNmRz!N7jHlDw1lP`jr)2Bi8b(% za?nw`4iTG}uw93U-Avf7L&YH`Y}cXUbgB-@UP)YH!m?Kqx0%pqmBm9Q^jT%`oT*%T zH&sRa!BjcDtEeI*d?X!hSr7SD73r9EKz>z4CZ>{MrmQA%F$ILhI#d(+nXp}liQ-Jy zuET^U6SnK>!jB2tb#+l$6V*cvQHym|mJar=AsR8YSQ-!1$}VP25y84!(Nnx@iXKeA zN6!H2Zx^$c7|J?qA+^M4CiGG*F@*`eR9nnqLNC=8i#3sDbwo1jFqJwYg$YxsBX%%h zDs{zvCQPNSIH8GBsV6QHVLO}aT~G9ZuYT)xw$!`6xIv`bSp!tSe}^s4TCDem*R<)s z!On~PaY`A!}1ZXuGG zybd1)$^xH~#+Y7*FMGEX4Vl_5zUSRqj47{m4Hm!jZX=$0A|(hT+-hqp!r>zWNHtq$ zx3v?~nPzt?VCx{RFm*fTX^RkbDq>9C$~%iDOxVghi#ANy%DafpOxVi1h+a%jE4itz zVj$DIO7OcjF`Q|}ZZ{Pv#xX75?J6S0G^X!+1lziaxlG4KItlYh{H@_&D~U#IL*|oIegVYTxOcn&6GXGZKn0zVjX&lM@%Q% zx~X2`In(vF@OwY;mZ>t7AzDZ;?WHDAhG^l$guSY_$i#%bs<+6^guSYd$j^kms*fna z)O4#U`wCB{Zd+p=`U-!hEYSP=iONj*q4)O_wV8Yt)VK8)jhR9hv;b<&^s}X-ZGh;+ z^vTi#sHY}sCm=kVlusF#yrB&l?al!#VQw#0--m2+9u9_&7VIl|Xu-=CWcP6a&VWKD# zw%y^PEEBff;lhUra~~l>m@xMdqJ}2QVWeolx{$34Y$HVrrdnH<0(G#9IZAY69j;17 zi9SrYDj6jPGodZS(&i3lf<`7SlY>=5EGVmvM9}jrJW+Yn6R`{L=Y2} zHbGQl!qO&)dQ4c_siGMZmUgOW$7HSTrlyImOgU=1!dFpxGodG@i$P52iRoe_6MABX zn81Xdm?36pB2OfW`K&`vBntQmFSSu@xkBYtDT(R7Y@$AmtcE0mA641G3Nq-R2(%@diK&}Z{R z9wzk5d{KZ2{W4#aWJ13z5EYovFAGEf6OLdDMHMC-!4`@-n#k%!q6zEJ>P4b86I#7U zbY{XDTP%7qVT~;o1DUWyOT;iHEYT7%jtNV&R7_>U5-k;TnXp95#8M_K(K4}y2}`tG zY+}L^Ef>3)utY1wAto%*3UOK!m1w27#5yd|N^y$`OSDovw2PS}eq|lDmn89q3ENAO zz>f&wSckiwWZ}q!yPjm>#)NHYmB`72ZE2Or$AoQZwJ64fZE3YA&y+QJhi#4UW%5Wq z08~j6mEk*4lXYm>ccLK^TK1i2$%K}z6&;z-vbCZI6I!-T^kYKH)`_7^XxVx(nh7mi zFQzaBRB=-&Vir@?Dy||$EN04@e9E>#Br|y=Ujo{oiLBlzcCZeu-YE7nq17A32`039 zleoZyR&NqFn9%CY;yx2vy;(eCLaVokS4?R27V(KGYw{i2R$;{-TjHuK`7uyNO=Q_N zk)3s6&6920L|&$5%~ODiFjd~241a#43{#WcDL^(Rp9RUb9U_=1bU_MGb*7G%WZO^*JJzG2!m>sJPEGC{rGvW5PX9r_yslVV~n-9@A}$r_Tu?f>5V>>Pg|q zgx)p{4N~J}evtJS$m~t&DCN7DcnyAJuivz5C zRLf0W7AKhA)N&P<#YHA;yH~^wCiLzV@qh`vdsRGRLhoJ`ubI%h*Tg3#^zJp`5G>%o zct`Z^b&-(?y?b5cV8Xr34dKp&dzl-eC=<@bH$_<{oQrP?A13tDEfKS-P!LNDDF@k}@y-V>9Ua5lUrW-{Sy z_@h|JgtOs~B8dsTdta<)Lhs%e+nLb255ztu^zH+3oC&@AlQ_?W-u+2jXF@MM6hAVd zmmZ3zOz8PX;w2M${*m~|gfsJFVF}T7gfsJF;lhM7^AnMc31{XfBCjU$($AtW>(EO- zi_%Q!rJsd26RszoiXbLjPdpW2Oz6R9q8<}^@R?}NgdY4wv|~aK{vslo(1X8<-c0Dh zUqvhvdhodz$%Gz!E+#Ue2Y(YYn9zg2i3LpP!QaISCiLL%VjUBD@P*jQgdTh$_A;Rd zUy7ql=)srb920u*mAJ};9(*P4X(A847Ef4*9(*l+XF?CY7Vnv`v~PqFs_O_#`$jl3 zVQK#mS(vc2e~53Gu(WSQK_)EiTTzM$OZ!e#WWv(E6M;-v+V`R=6PEV9sH=&r{vevN z4z2zm+AyKjA4C@>tlN*G7ZcX)M-jt>b^A#SXTrMuB*rtLKmQcdn9!epig`@vPa&5v zp+ANEj_GGhu#c3RnLb&n1AVWFtXA?c>(FW?Pcxy_N?vBd)@sPxOxRit`G^TiWXk7E zSRzxtWx^7{2g54qI>HiJq!SaC$SN~2VTr6VHxrh~LFQ+|5;@2cOjsgE>B)p8a+Lm> zs6^>xW!7N}NhfPDVGBto8#7@Gagwc=u!T6uPE6QB(#t3&Y$568048h&&N7Y(TY_p-%>xz~qtK0%(pVvdl#;VI5lLB3Ch?WiE0f6Izy0?qovCGRlKYXql@#$%K}< z${(1}GBll~%PGvTT-x17m@tIFJR5fiQ| z^T;G7Tvg_gDNMMk{6=nP!d2xraz7KUD!-M-nQ&G4t-Qd5tIE9cI@4oVRpyoVnRdgh z?Jl1(or781UA|)KvOC%4AwMz=-JJqtt)hF?Bv_Z{lP*kiVO^e2W@qxUCfoAMyiC=s zDL_S-(DMak87B060cq1j-YqDDKhtKff-+VUJpG9FDJ-jnQSR{cW2jG2d9j8jug2qj zip!(5G?i>T)2F1|R7caDHcNd>DCK zwASR*wyFv3Pmb%iT9mdqp zH|xnZn!pn+d>hDapQ)p7L)oW2#RR|f@@*nJbkOA0c#v;18QW1)$;M-STg!P7n((Pm z2N~Xph@J{X$PP?+iW(uiGvRr8C)t+?&&xZ>A*nhzMeQu(neY^~vz*L?Pb#{|nM`>4 z+C?s6Dl`zz*<}(_#es0nE>oCxMZ-C}+|G0=8qV3}ekOck)J+~|!Y4-E!;oa9_%BVGoc6j z$o85jhrTkBbyXAB`Sz8)nHnc<2a07HpR~@mpB%|FD``8>L`{@Re>sD7Pb(et?Jwsu zy{mK_Xa&=jbq9S1$hA!S*BuAis)hu%1k+LpPyyGkw^+(C3Ov_=^A0^u|6+e@dD_(YC3Oe)B zH(o|FbvxKO`)C=%H27dKFS`CSHDT}9h2w5?0%D_>V`gxcdUCb4^Vohg|qYdO_77Xg6$_h-&55_u7mGH;H>Ar)9OgT+fVLE>( z)?u2g!_;t^DW}UOOr592I!u>sn6f7O`OT1>nLLt1fqF4@Itpjvav;;dqi`lJhck^o zYRZ{%9Mh7cu?{okG)>g9X32R(iK1Xk4Zm6PXfL!AW|?YD{N~8@(V8mEY~wdicId5X zSi??!^W^}dX=20oQGN@hdtcN|6Fo!Y{Fcb|OcTyc^jj{w_0zhbL$mynWas{x+H7C$ zw?_Uk04YJNbKB#$L6#V(buUjI^xG&W#ApgVdctp${FNv{xU}iyw*_9c)At4U>g2ag zx)H@YVlUnyb24Es-XZfbjjHXYcFJN*iM8R2x3WCbwwiEyCw-ZY)P&PJS&3;9=yuDR zOiMwxTQ*{#Xp(@W^Zhvfq%ry8!}u>6H780MTK@--Z95GS8-IjGEH=GQ^#ZurbRCBt$pdCiCW}wS(J4+s~wkRnQ&G+ zE`6AAWqd-0FyYGhgsj1Yqwq=DfC)$8lQNtMTfr&WfeBl|DcPL~ThD3PmkC?XX*q;x z#A-M#l<`cHR>NtboXk|YaMlv^U|mPp z>MlzcCTw+=Wp*a)9am&tChQ$oWDzE8SyyElCTv+(rHu(&>opn7gst_Otj>h3^}4Lj zgst_uY{7)B=Z0+0gsta>?8bzx?xyU+gstwT9L$6*>y{kFge~iqoWz7{u-h_`3D;n^ zlslQQreDf~Ojy&etsfzmrihA zCvz~3gqHkPx-(4$U%!<_naaZ|_MI%t6bkF|chZNc3i$KA3}I>s{(LWMFx7_qKF9`4 ztsuV-GMs4&=swC0Op8GGQFdo40lH7JFOxs$KFJ|WJwW%TjAt4OxuKUrUw5gua$4MH6{RsqL(LJiDB~Qu~-*&-Md4ZWq%~=UIpTG}JXF^rxYIWI}(M z>SreOr>R~t^=Mz!-=aP+^=n@X$TC9L(XD+A{jDkk(@*=F17%}!s?*lrL4C`VxlSjb z!c6DK^ze67rJ1ge=>z1=l+`WSmQDpR6?RJj3S-*pnrw4Y^_Y&krT{f(`W1BPRXZjH z_oY{nn#gC)syFL!ZiGKC$b>!BS&d}ca3tB5K}}%Vdn5&D22+zY!8R8)pDA)p7|;q$ zltV_fmUWmzMzw_rbI7RnFx~5!Y;#pdn2cU2Kxdh}I>ULLy24bwGo06{yP7D6OzJV~ zFo#U)Hzv#>lX}N=H7ePbS*ek_j^0J30HtTD3@5BvRA#28aKf5J*xkWw0%`n#xqDWf;(0ri@UcJZdRZekf5M zwT9_tCpfQDo0wjAg7Z4Hn<=IXynn3@F-`6Q?_aCaOySUP^QucsJ)v*rRkt;fm)zAO zBAiJE`Mawzqp%)u?il5tPd#V)edl!l0%}6M*8Q41-@l-G$#i4aYX3rN>1fm?h#~Da z`4?6fn10!}+rNl1#%NuhI*0v>svxHOW6t;&Q;&$I35UH^or|k#V|C0!Q>!|cP`jAu zO=k6hNY7lQlsOJ##yetdmQop*aONtlvNGY!Ra$+^R2o`A8C57XCfrv>m1eqB-A$EM zUQBnZ!(UubK}@}2tx--@V~T^dMmbfFX=ge&RbDk?`XQaGD6iTv;V9*)x-#J?<*9lz zh1YOX71SW6Zm=G#phhy`$X8KKV8W5FqME_v3F|X2HJ_;(tk1mE3Z`UdH|4F?GVOMD zgXAHLXn@Wx_R>k2=eQYcL;ml?m6-zUnR$uAzO^6DC|M`l;WUaINU4 z-ZPDu>!$pbF<#fvl)0|(SC*Warq8_MAE2@@Etz=-=o_Z>pbJz5nGS<4P?ciB^>vV{ z$b{?bAQi~;xT~8AR#lk<=z>*UrklOpRETQI^r|0(mNDId z)l6fxhUu3zuA;Hp%!I3;CTcemu7aAV!%VmeYN}2%;VP)9x~z#t+GgrD>tg2p;onR> zWEwwD1vFF7nI`Nlr<$ujnC9-4qPdb2sg5X>7Al=4$F~hL1hi0YOz9eB2Fhg@GhF3k z9rogIRg4LHakwhaguS?>@@2wa+)`Cy+6rsaR;nh`eps8fQjM5!L}{&BGU15QT17Br z-xh3Zqk1sq+ZG1YpJ@*0+Nz;U%RtvwjbRFe=T7a^6s9nE?$l1rW@-Ss_G&RxJJ7XP ztC(=a?4UL<;fUEm?PMAa_jObUnC8HJ9o0#uw;y)J3^6IWNc+&{gGN%DEsfkOxyj z<<8k7RZ*sSm5Yf;RgP(CLwHi5e3;fZgeMg$lxa8Ux~m#YM?u$JHDvk~M$8^6oJn+p zUj(R*Obue-Nrmdp)Gh{|RH%MTC*Z!GY6#O!C__&*nyEb8*Go-i3WfW6saZ@oGDNFI zOgJ(`t7Im}WAJQ3r7&ea2G1tc4yLvf;Ms)Q&lEKQo=vC|Ok3gkUte{B=`cM1>#J^P zqW;iN-De%XKi^M1Wy1I8`>9t<`2Ku<^^pnRpYN}%lhb0>Fuy^n858C=NVT(z8LPUo z4(I7u70rb6bgUZ0^cGsdU^Rj%T_bpIp(ZdTcZVkxYC6;R-Qh`vn$NTk$}m(dXF3aI z7^>E4B0J;MHljpv+u{=tr*cd|pW#}uYQQixa;m1Tr|JcaP*0hD3~LiGN)?%gI{j=S zUUeqYYq!y=CljvSMyr8LxON+(hB4vVZHyYngr^Q;)l?=tbr`GWGU2JiIJJ}sPaVdo zHB94=9LqXhZDN{pq)WhfwVSCo=q9K`OhZ98L7irrKC@@QM0JU2$;^I0x0%+1ZjyS) zbQpA#)N`i3iw6fxR(~*!Ts#6uPDf9~JLWz+E?|mE$5iC(6rfB@IIkqATueBxB&hsM zIIm1q#hGwknW{WBQ5{WFeyqb&&1tF<6P{{LQ?;0`9zK?Jx@yGq=x~>S>8h0`N@a$M zU>&A1L-k<7RA#9DOqfcd8p?#JB&sn?+d(%|O<_6)x|wRWCdy%!TFg33WtK{2!c=Cd z4NREIY_)?4Q<<#}Xrff+s1vN42lM+Jb%ALW%7c%3O7yDLvHfT=h&7r7};w zVqM0g@V>tK$dvskysxjUGpNQW=6vO%$27fz`b zs4|);m4(Wi2z$<&fQ2eYBIba*tSteHRUA=*=#+FQV5xGSiMj-Fc`7q&5>N^#Z8WZmOPSs$llo8%%R}GlLGs64qDx3+Q*sfC@ znDB}1I@O&Cd+~bJmkE3EdNqUzSE?y0o(Wf~DQYrPP0(#nGnra|Zi8CHgy&!zRT2}P zgKbnPOn82_No{As^RrEAKNFsjZC1yb@QiG;y1;~IWLwmACOjkCqV6+cFW#!2GGQ;? zs$MZ+FW#m;GGQ;?rmS;xJq%8^25wg_OyiQBfwD8*JexUihsw+J`fN_1B21Hyxd-l4 zWtf&9D+FX?N(wI-xJv~yZ3!xRPGd$(%NG#=L8yH$H8+;e@eBAIZ{ z^}XuDge#prDwYXXI(yV8ro1q=?o|_+%0U0ys}h-lLAOsWU}_G!eQKp9vTVOv$2vT> z*{`-TVf);#_A=r6^ME?agzL`(>Kqf!76;W;CY&t}s(Vby9g}T`)Dxy{9aDf_Fx`fc z@34B$^c+UM!^)gXbwrjOQO=s^9hW023lmy)M18}AJ?E$@$b>!Ts4B&TmK{?Snb5Lh zDo_*Ua9mYo9hUvLs>6gi99K=5@YL^wYQu!5ekW8HCfrG#RK1vRCv{TAXrdfWso|_M z=J*7jQsbC%ƿ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 + + + New-InfisicalCertificateAuthority + Creates an internal Infisical certificate authority, signing a subordinate with its parent. + New + InfisicalCertificateAuthority + + + Creates a root or intermediate internal certificate authority in a Certificate Manager project. A root is self-signed on creation. Infisical creates an intermediate pending a certificate and exposes no single call that completes it, so this cmdlet performs the remaining sequence itself: it reads the certificate signing request, signs it with the authority named by -ParentCaId, and imports the signed certificate and chain back, returning an authority that is ready to issue. -NotAfter defaults to ten years for a root and five for an intermediate; -MaxPathLength defaults to 1 for a root and 0 otherwise. -ProjectId is optional and resolves to the organization's Certificate Manager project. + + + Notes + + Certificate authorities created through the API always have direct issuance disabled, because Infisical's creation service sets it explicitly and exposes no way to change it afterwards. Issue through a certificate profile, which does not consult that flag. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + $Root = New-InfisicalCertificateAuthority -Name 'root-ca' -Type Root -CommonName 'Contoso Root Certificate Authority' -Organization 'Contoso' -Country 'US' + Creates a self-signed root valid for ten years. + + + EXAMPLE 2 + New-InfisicalCertificateAuthority -Name 'issuing-ca' -Type Intermediate -ParentCaId $Root.Id -CommonName 'Contoso Issuing Certificate Authority' -KeyAlgorithm 'EC_secp384r1' + Creates a subordinate, signs it with the root, and imports the signed certificate so it can issue immediately. + + + + + + Set-InfisicalCertificateAuthority + Renames an internal Infisical certificate authority or changes its status. + Set + InfisicalCertificateAuthority + + + Updates the name or status of an internal certificate authority. Infisical's update schema accepts only these two fields; subject, key algorithm, and validity are fixed when the authority is created. Supply -PassThru to emit the updated record. + + + Notes + + Disabling an authority stops it issuing without deleting it or the certificates it has already signed. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateAuthority -CaId $Ca.Id -Status disabled + Stops the authority issuing new certificates. + + + EXAMPLE 2 + Set-InfisicalCertificateAuthority -CaId $Ca.Id -Name 'retired-issuing-ca' -PassThru + Renames the authority and emits the updated record. + + + + + + Remove-InfisicalCertificateAuthority + Deletes an internal Infisical certificate authority. + Remove + InfisicalCertificateAuthority + + + Deletes an internal certificate authority from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. Certificates already issued by the authority stop chaining to a known issuer once it is gone, and any subordinate beneath it is orphaned. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateAuthority -CaId $Ca.Id -Confirm:$False + Deletes the authority without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateAuthority -Kind Internal | Where-Object {($_.Status -eq 'disabled')} | Remove-InfisicalCertificateAuthority + Removes every disabled authority, prompting for each. + + + + + + New-InfisicalCertificatePolicy + Creates an Infisical certificate policy that constrains what a profile may issue. + New + InfisicalCertificatePolicy + + + Creates a certificate policy: the constraints a certificate profile issues within. Subject attributes, subject alternative names, key usages, and extended key usages are each expressed as allowed, required, and denied sets, supplied as dictionaries so the nested shape stays readable. -MaxValidity caps certificate lifetime, -KeyAlgorithm and -SignatureAlgorithm restrict the cryptography. A constraint that is not supplied leaves that dimension unconstrained, which is what fleet enrollment needs so each machine can present its own name. + + + Notes + + Constraint values use Infisical's snake_case names: digital_signature, key_encipherment, server_auth, client_auth, code_signing, common_name, dns_name, ip_address. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificatePolicy -Name 'server-auth' -MaxValidity '90d' -KeyAlgorithm 'RSA_2048','EC_secp384r1' -KeyUsage @{ Required = @('digital_signature','key_encipherment') } -ExtendedKeyUsage @{ Required = @('server_auth','client_auth') } + Creates a policy for server and client authentication, leaving subject and SANs unconstrained. + + + EXAMPLE 2 + New-InfisicalCertificatePolicy -Name 'code-signing' -MaxValidity '365d' -ExtendedKeyUsage @{ Required = @('code_signing'); Denied = @('server_auth','client_auth') } -SubjectAlternativeName @(@{ Type = 'dns_name'; Allowed = @('*.contoso.com') }) + Creates a code signing policy that forbids TLS usage and restricts DNS names to one suffix. + + + + + + Set-InfisicalCertificatePolicy + Updates an Infisical certificate policy. + Set + InfisicalCertificatePolicy + + + Updates a certificate policy. Only the constraints supplied on the command line are sent; anything omitted keeps its stored value. Supply -PassThru to emit the updated policy. + + + Notes + + Changing a policy affects every profile bound to it, and therefore every future certificate those profiles issue. Certificates already issued are unaffected. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificatePolicy -PolicyId $Policy.Id -MaxValidity '30d' + Shortens the maximum lifetime, leaving every other constraint as it was. + + + EXAMPLE 2 + Set-InfisicalCertificatePolicy -PolicyId $Policy.Id -ExtendedKeyUsage @{ Required = @('server_auth') } -PassThru + Narrows the extended key usage and emits the updated policy. + + + + + + Remove-InfisicalCertificatePolicy + Deletes an Infisical certificate policy. + Remove + InfisicalCertificatePolicy + + + Deletes a certificate policy from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. A profile bound to the policy cannot issue once it is gone, so remove or repoint dependent profiles first. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificatePolicy -PolicyId $Policy.Id -Confirm:$False + Deletes the policy without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificatePolicy | Where-Object {($_.Name -like 'test-*')} | Remove-InfisicalCertificatePolicy + Removes every policy whose name begins with test-, prompting for each. + + + + + + New-InfisicalCertificateProfile + Creates an Infisical certificate profile that binds an issuing authority to a policy. + New + InfisicalCertificateProfile + + + Creates a certificate profile: the object Request-InfisicalCertificate -CertificateProfileId issues against. A profile binds an issuing certificate authority to a certificate policy and exposes it for one enrollment type. -Slug accepts lowercase letters, numbers, and hyphens. -EnrollmentConfig carries the settings for the chosen -EnrollmentType, so EST, ACME, and SCEP settings all arrive through one parameter; for the default api type, -AutoRenew and -RenewBeforeDays are folded into it. + + + Notes + + Profile issuance is the only path that does not consult the issuing authority's direct-issuance flag, so a profile issues successfully against an authority whose EnableDirectIssuance is False. Unlike a PKI subscriber, a profile accepts a per-request common name, which is what makes it suitable for fleet enrollment. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificateProfile -Slug 'server-auth' -CertificatePolicyId $Policy.Id -CaId $Ca.Id + Creates an API enrollment profile bound to a policy and issuing authority. + + + EXAMPLE 2 + New-InfisicalCertificateProfile -Slug 'workload' -CertificatePolicyId $Policy.Id -CaId $Ca.Id -AutoRenew -RenewBeforeDays 14 -Defaults @{ ttlDays = 90 } + Creates a profile that renews issued certificates fourteen days before expiry and defaults to a ninety day lifetime. + + + + + + Set-InfisicalCertificateProfile + Updates an Infisical certificate profile. + Set + InfisicalCertificateProfile + + + Updates a certificate profile. Only the values supplied on the command line are sent; anything omitted keeps its stored value, including the enrollment type unless -EnrollmentType is passed explicitly. Supply -PassThru to emit the updated profile. + + + Notes + + Repointing a profile at a different policy or issuing authority changes what future requests produce. Because certificate reuse is scoped by profile, Request-InfisicalCertificate keeps reusing certificates the profile issued previously until they fall inside their renewal window. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateProfile -ProfileId $Profile.Id -CertificatePolicyId $NewPolicy.Id + Repoints the profile at a different policy. + + + EXAMPLE 2 + Set-InfisicalCertificateProfile -ProfileId $Profile.Id -AutoRenew -RenewBeforeDays 7 -PassThru + Enables automatic renewal seven days before expiry and emits the updated profile. + + + + + + Remove-InfisicalCertificateProfile + Deletes an Infisical certificate profile. + Remove + InfisicalCertificateProfile + + + Deletes a certificate profile from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. Any script requesting certificates through the profile fails once it is gone, and the profile is detached from every application that referenced it. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateProfile -ProfileId $Profile.Id -Confirm:$False + Deletes the profile without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateProfile -ApplicationId $Application.Id | Remove-InfisicalCertificateProfile + Removes every profile attached to an application, prompting for each. + + + + + + New-InfisicalCertificateApplication + Creates an Infisical certificate application to group profiles and certificates. + New + InfisicalCertificateApplication + + + Creates a certificate application: the grouping the Infisical console presents profiles, members, and certificates under, and the scope Get-InfisicalCertificateProfile -ApplicationId and Get-InfisicalCertificate -ApplicationId filter by. Certificate profiles can be attached at creation with -ProfileId. + + + Notes + + Applications are served only from the organization's active Certificate Manager project. Creating one in any other cert-manager project fails, which is why -ProjectId resolves to the active project when it is not supplied. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificateApplication -Name 'platform' -Description 'Endpoint and workload certificates' + Creates an empty application. + + + EXAMPLE 2 + New-InfisicalCertificateApplication -Name 'platform' -ProfileId $ServerProfile.Id, $CodeSigningProfile.Id + Creates an application with two profiles already attached. + + + + + + Set-InfisicalCertificateApplication + Renames an Infisical certificate application or changes which profiles it holds. + Set + InfisicalCertificateApplication + + + Updates a certificate application. -Name and -Description change the record; -AddProfileId and -RemoveProfileId change which certificate profiles the application groups. The record and its profile attachments are separate endpoints, so supplying only profile parameters skips the record update entirely. Supply -PassThru to emit the updated application. + + + Notes + + Detaching a profile does not delete it; the profile continues to exist and issue, it is simply no longer grouped under the application. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateApplication -ApplicationId $Application.Id -AddProfileId $Profile.Id + Attaches a profile to the application. + + + EXAMPLE 2 + Set-InfisicalCertificateApplication -ApplicationId $Application.Id -Name 'endpoint-management' -RemoveProfileId $Old.Id -PassThru + Renames the application, detaches a profile, and emits the updated record. + + + + + + Remove-InfisicalCertificateApplication + Deletes an Infisical certificate application. + Remove + InfisicalCertificateApplication + + + Deletes a certificate application from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. The profiles the application grouped are not deleted, but scripts that locate a profile by application can no longer find it. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateApplication -ApplicationId $Application.Id -Confirm:$False + Deletes the application without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateApplication | Where-Object {($_.CertificateCount -eq 0)} | Remove-InfisicalCertificateApplication + Removes every application holding no certificates, prompting for each. + + + + + + New-InfisicalPkiSubscriber + Creates an Infisical PKI subscriber, a named enrollment identity with a fixed common name. + New + InfisicalPkiSubscriber + + + Creates a PKI subscriber: a named enrollment identity that pins one common name, an allowlist of subject alternative names, a lifetime, and the permitted key usages, so a request carries only a certificate signing request. -CommonName is the identity the subscriber issues for, and -SubjectAlternativeName is an allowlist rather than a default. + + + Notes + + A subscriber is a single identity, not a template. Infisical rejects any request whose certificate signing request names a different common name, and rejects any subject alternative name outside the allowlist, so enrolling many machines through subscribers means one subscriber per machine. Use a certificate profile for fleet enrollment. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalPkiSubscriber -Name 'web01' -CommonName 'WEB01.contoso.com' -CaId $Ca.Id -Ttl '90d' + Creates a subscriber for one host. + + + EXAMPLE 2 + New-InfisicalPkiSubscriber -Name 'web01' -CommonName 'WEB01.contoso.com' -CaId $Ca.Id -Ttl '90d' -SubjectAlternativeName 'WEB01','WEB01.contoso.com' -ExtendedKeyUsage 'serverAuth','clientAuth' + Creates a subscriber that also permits two subject alternative names and restricts extended key usage. + + + + + + Set-InfisicalPkiSubscriber + Updates an Infisical PKI subscriber. + Set + InfisicalPkiSubscriber + + + Updates a PKI subscriber, addressed by its current -Name. Only the values supplied on the command line are sent; anything omitted keeps its stored value. -NewName renames the subscriber. Supply -PassThru to emit the updated record. + + + Notes + + Changing -CommonName changes the identity the subscriber issues for, so any script signing against it must present a matching certificate signing request afterwards. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalPkiSubscriber -Name 'web01' -Ttl '30d' + Shortens the lifetime of certificates issued for the subscriber. + + + EXAMPLE 2 + Set-InfisicalPkiSubscriber -Name 'web01' -SubjectAlternativeName 'WEB01','WEB01.contoso.com','www.contoso.com' -PassThru + Extends the permitted subject alternative names and emits the updated subscriber. + + + + + + Remove-InfisicalPkiSubscriber + Deletes an Infisical PKI subscriber. + Remove + InfisicalPkiSubscriber + + + Deletes a PKI subscriber from a Certificate Manager project, addressed by name. -PassThru emits the removed name for logging. + + + Notes + + Destructive. Any script signing through the subscriber fails once it is gone. Certificates already issued are unaffected. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalPkiSubscriber -Name 'web01' -Confirm:$False + Deletes the subscriber without prompting. + + + EXAMPLE 2 + Get-InfisicalPkiSubscriber | Where-Object {($_.Status -ne 'active')} | Remove-InfisicalPkiSubscriber + Removes every inactive subscriber, prompting for each. + + + diff --git a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml index 79cb0b8..6a2776c 100644 --- a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml +++ b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml @@ -2104,4 +2104,439 @@ $Sans = Get-InfisicalSANList @GetInfisicalSANListParameters + + + New-InfisicalCertificateAuthority + Creates an internal Infisical certificate authority, signing a subordinate with its parent. + New + InfisicalCertificateAuthority + + + Creates a root or intermediate internal certificate authority in a Certificate Manager project. A root is self-signed on creation. Infisical creates an intermediate pending a certificate and exposes no single call that completes it, so this cmdlet performs the remaining sequence itself: it reads the certificate signing request, signs it with the authority named by -ParentCaId, and imports the signed certificate and chain back, returning an authority that is ready to issue. -NotAfter defaults to ten years for a root and five for an intermediate; -MaxPathLength defaults to 1 for a root and 0 otherwise. -ProjectId is optional and resolves to the organization's Certificate Manager project. + + + Notes + + Certificate authorities created through the API always have direct issuance disabled, because Infisical's creation service sets it explicitly and exposes no way to change it afterwards. Issue through a certificate profile, which does not consult that flag. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + $Root = New-InfisicalCertificateAuthority -Name 'root-ca' -Type Root -CommonName 'Contoso Root Certificate Authority' -Organization 'Contoso' -Country 'US' + Creates a self-signed root valid for ten years. + + + EXAMPLE 2 + New-InfisicalCertificateAuthority -Name 'issuing-ca' -Type Intermediate -ParentCaId $Root.Id -CommonName 'Contoso Issuing Certificate Authority' -KeyAlgorithm 'EC_secp384r1' + Creates a subordinate, signs it with the root, and imports the signed certificate so it can issue immediately. + + + + + + Set-InfisicalCertificateAuthority + Renames an internal Infisical certificate authority or changes its status. + Set + InfisicalCertificateAuthority + + + Updates the name or status of an internal certificate authority. Infisical's update schema accepts only these two fields; subject, key algorithm, and validity are fixed when the authority is created. Supply -PassThru to emit the updated record. + + + Notes + + Disabling an authority stops it issuing without deleting it or the certificates it has already signed. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateAuthority -CaId $Ca.Id -Status disabled + Stops the authority issuing new certificates. + + + EXAMPLE 2 + Set-InfisicalCertificateAuthority -CaId $Ca.Id -Name 'retired-issuing-ca' -PassThru + Renames the authority and emits the updated record. + + + + + + Remove-InfisicalCertificateAuthority + Deletes an internal Infisical certificate authority. + Remove + InfisicalCertificateAuthority + + + Deletes an internal certificate authority from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. Certificates already issued by the authority stop chaining to a known issuer once it is gone, and any subordinate beneath it is orphaned. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateAuthority -CaId $Ca.Id -Confirm:$False + Deletes the authority without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateAuthority -Kind Internal | Where-Object {($_.Status -eq 'disabled')} | Remove-InfisicalCertificateAuthority + Removes every disabled authority, prompting for each. + + + + + + New-InfisicalCertificatePolicy + Creates an Infisical certificate policy that constrains what a profile may issue. + New + InfisicalCertificatePolicy + + + Creates a certificate policy: the constraints a certificate profile issues within. Subject attributes, subject alternative names, key usages, and extended key usages are each expressed as allowed, required, and denied sets, supplied as dictionaries so the nested shape stays readable. -MaxValidity caps certificate lifetime, -KeyAlgorithm and -SignatureAlgorithm restrict the cryptography. A constraint that is not supplied leaves that dimension unconstrained, which is what fleet enrollment needs so each machine can present its own name. + + + Notes + + Constraint values use Infisical's snake_case names: digital_signature, key_encipherment, server_auth, client_auth, code_signing, common_name, dns_name, ip_address. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificatePolicy -Name 'server-auth' -MaxValidity '90d' -KeyAlgorithm 'RSA_2048','EC_secp384r1' -KeyUsage @{ Required = @('digital_signature','key_encipherment') } -ExtendedKeyUsage @{ Required = @('server_auth','client_auth') } + Creates a policy for server and client authentication, leaving subject and SANs unconstrained. + + + EXAMPLE 2 + New-InfisicalCertificatePolicy -Name 'code-signing' -MaxValidity '365d' -ExtendedKeyUsage @{ Required = @('code_signing'); Denied = @('server_auth','client_auth') } -SubjectAlternativeName @(@{ Type = 'dns_name'; Allowed = @('*.contoso.com') }) + Creates a code signing policy that forbids TLS usage and restricts DNS names to one suffix. + + + + + + Set-InfisicalCertificatePolicy + Updates an Infisical certificate policy. + Set + InfisicalCertificatePolicy + + + Updates a certificate policy. Only the constraints supplied on the command line are sent; anything omitted keeps its stored value. Supply -PassThru to emit the updated policy. + + + Notes + + Changing a policy affects every profile bound to it, and therefore every future certificate those profiles issue. Certificates already issued are unaffected. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificatePolicy -PolicyId $Policy.Id -MaxValidity '30d' + Shortens the maximum lifetime, leaving every other constraint as it was. + + + EXAMPLE 2 + Set-InfisicalCertificatePolicy -PolicyId $Policy.Id -ExtendedKeyUsage @{ Required = @('server_auth') } -PassThru + Narrows the extended key usage and emits the updated policy. + + + + + + Remove-InfisicalCertificatePolicy + Deletes an Infisical certificate policy. + Remove + InfisicalCertificatePolicy + + + Deletes a certificate policy from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. A profile bound to the policy cannot issue once it is gone, so remove or repoint dependent profiles first. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificatePolicy -PolicyId $Policy.Id -Confirm:$False + Deletes the policy without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificatePolicy | Where-Object {($_.Name -like 'test-*')} | Remove-InfisicalCertificatePolicy + Removes every policy whose name begins with test-, prompting for each. + + + + + + New-InfisicalCertificateProfile + Creates an Infisical certificate profile that binds an issuing authority to a policy. + New + InfisicalCertificateProfile + + + Creates a certificate profile: the object Request-InfisicalCertificate -CertificateProfileId issues against. A profile binds an issuing certificate authority to a certificate policy and exposes it for one enrollment type. -Slug accepts lowercase letters, numbers, and hyphens. -EnrollmentConfig carries the settings for the chosen -EnrollmentType, so EST, ACME, and SCEP settings all arrive through one parameter; for the default api type, -AutoRenew and -RenewBeforeDays are folded into it. + + + Notes + + Profile issuance is the only path that does not consult the issuing authority's direct-issuance flag, so a profile issues successfully against an authority whose EnableDirectIssuance is False. Unlike a PKI subscriber, a profile accepts a per-request common name, which is what makes it suitable for fleet enrollment. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificateProfile -Slug 'server-auth' -CertificatePolicyId $Policy.Id -CaId $Ca.Id + Creates an API enrollment profile bound to a policy and issuing authority. + + + EXAMPLE 2 + New-InfisicalCertificateProfile -Slug 'workload' -CertificatePolicyId $Policy.Id -CaId $Ca.Id -AutoRenew -RenewBeforeDays 14 -Defaults @{ ttlDays = 90 } + Creates a profile that renews issued certificates fourteen days before expiry and defaults to a ninety day lifetime. + + + + + + Set-InfisicalCertificateProfile + Updates an Infisical certificate profile. + Set + InfisicalCertificateProfile + + + Updates a certificate profile. Only the values supplied on the command line are sent; anything omitted keeps its stored value, including the enrollment type unless -EnrollmentType is passed explicitly. Supply -PassThru to emit the updated profile. + + + Notes + + Repointing a profile at a different policy or issuing authority changes what future requests produce. Because certificate reuse is scoped by profile, Request-InfisicalCertificate keeps reusing certificates the profile issued previously until they fall inside their renewal window. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateProfile -ProfileId $Profile.Id -CertificatePolicyId $NewPolicy.Id + Repoints the profile at a different policy. + + + EXAMPLE 2 + Set-InfisicalCertificateProfile -ProfileId $Profile.Id -AutoRenew -RenewBeforeDays 7 -PassThru + Enables automatic renewal seven days before expiry and emits the updated profile. + + + + + + Remove-InfisicalCertificateProfile + Deletes an Infisical certificate profile. + Remove + InfisicalCertificateProfile + + + Deletes a certificate profile from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. Any script requesting certificates through the profile fails once it is gone, and the profile is detached from every application that referenced it. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateProfile -ProfileId $Profile.Id -Confirm:$False + Deletes the profile without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateProfile -ApplicationId $Application.Id | Remove-InfisicalCertificateProfile + Removes every profile attached to an application, prompting for each. + + + + + + New-InfisicalCertificateApplication + Creates an Infisical certificate application to group profiles and certificates. + New + InfisicalCertificateApplication + + + Creates a certificate application: the grouping the Infisical console presents profiles, members, and certificates under, and the scope Get-InfisicalCertificateProfile -ApplicationId and Get-InfisicalCertificate -ApplicationId filter by. Certificate profiles can be attached at creation with -ProfileId. + + + Notes + + Applications are served only from the organization's active Certificate Manager project. Creating one in any other cert-manager project fails, which is why -ProjectId resolves to the active project when it is not supplied. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalCertificateApplication -Name 'platform' -Description 'Endpoint and workload certificates' + Creates an empty application. + + + EXAMPLE 2 + New-InfisicalCertificateApplication -Name 'platform' -ProfileId $ServerProfile.Id, $CodeSigningProfile.Id + Creates an application with two profiles already attached. + + + + + + Set-InfisicalCertificateApplication + Renames an Infisical certificate application or changes which profiles it holds. + Set + InfisicalCertificateApplication + + + Updates a certificate application. -Name and -Description change the record; -AddProfileId and -RemoveProfileId change which certificate profiles the application groups. The record and its profile attachments are separate endpoints, so supplying only profile parameters skips the record update entirely. Supply -PassThru to emit the updated application. + + + Notes + + Detaching a profile does not delete it; the profile continues to exist and issue, it is simply no longer grouped under the application. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalCertificateApplication -ApplicationId $Application.Id -AddProfileId $Profile.Id + Attaches a profile to the application. + + + EXAMPLE 2 + Set-InfisicalCertificateApplication -ApplicationId $Application.Id -Name 'endpoint-management' -RemoveProfileId $Old.Id -PassThru + Renames the application, detaches a profile, and emits the updated record. + + + + + + Remove-InfisicalCertificateApplication + Deletes an Infisical certificate application. + Remove + InfisicalCertificateApplication + + + Deletes a certificate application from a Certificate Manager project. -PassThru emits the removed identifier for logging. + + + Notes + + Destructive. The profiles the application grouped are not deleted, but scripts that locate a profile by application can no longer find it. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalCertificateApplication -ApplicationId $Application.Id -Confirm:$False + Deletes the application without prompting. + + + EXAMPLE 2 + Get-InfisicalCertificateApplication | Where-Object {($_.CertificateCount -eq 0)} | Remove-InfisicalCertificateApplication + Removes every application holding no certificates, prompting for each. + + + + + + New-InfisicalPkiSubscriber + Creates an Infisical PKI subscriber, a named enrollment identity with a fixed common name. + New + InfisicalPkiSubscriber + + + Creates a PKI subscriber: a named enrollment identity that pins one common name, an allowlist of subject alternative names, a lifetime, and the permitted key usages, so a request carries only a certificate signing request. -CommonName is the identity the subscriber issues for, and -SubjectAlternativeName is an allowlist rather than a default. + + + Notes + + A subscriber is a single identity, not a template. Infisical rejects any request whose certificate signing request names a different common name, and rejects any subject alternative name outside the allowlist, so enrolling many machines through subscribers means one subscriber per machine. Use a certificate profile for fleet enrollment. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + New-InfisicalPkiSubscriber -Name 'web01' -CommonName 'WEB01.contoso.com' -CaId $Ca.Id -Ttl '90d' + Creates a subscriber for one host. + + + EXAMPLE 2 + New-InfisicalPkiSubscriber -Name 'web01' -CommonName 'WEB01.contoso.com' -CaId $Ca.Id -Ttl '90d' -SubjectAlternativeName 'WEB01','WEB01.contoso.com' -ExtendedKeyUsage 'serverAuth','clientAuth' + Creates a subscriber that also permits two subject alternative names and restricts extended key usage. + + + + + + Set-InfisicalPkiSubscriber + Updates an Infisical PKI subscriber. + Set + InfisicalPkiSubscriber + + + Updates a PKI subscriber, addressed by its current -Name. Only the values supplied on the command line are sent; anything omitted keeps its stored value. -NewName renames the subscriber. Supply -PassThru to emit the updated record. + + + Notes + + Changing -CommonName changes the identity the subscriber issues for, so any script signing against it must present a matching certificate signing request afterwards. Honors -WhatIf and -Confirm. + + + + + EXAMPLE 1 + Set-InfisicalPkiSubscriber -Name 'web01' -Ttl '30d' + Shortens the lifetime of certificates issued for the subscriber. + + + EXAMPLE 2 + Set-InfisicalPkiSubscriber -Name 'web01' -SubjectAlternativeName 'WEB01','WEB01.contoso.com','www.contoso.com' -PassThru + Extends the permitted subject alternative names and emits the updated subscriber. + + + + + + Remove-InfisicalPkiSubscriber + Deletes an Infisical PKI subscriber. + Remove + InfisicalPkiSubscriber + + + Deletes a PKI subscriber from a Certificate Manager project, addressed by name. -PassThru emits the removed name for logging. + + + Notes + + Destructive. Any script signing through the subscriber fails once it is gone. Certificates already issued are unaffected. High ConfirmImpact prompts unless -Confirm:$False is supplied. + + + + + EXAMPLE 1 + Remove-InfisicalPkiSubscriber -Name 'web01' -Confirm:$False + Deletes the subscriber without prompting. + + + EXAMPLE 2 + Get-InfisicalPkiSubscriber | Where-Object {($_.Status -ne 'active')} | Remove-InfisicalPkiSubscriber + Removes every inactive subscriber, prompting for each. + + + diff --git a/README.md b/README.md index f81cf69..630ef88 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Import-Module -Name .\Module\PSInfisicalAPI ## Cmdlets -The module exports 51 cmdlets. Discovery cmdlets (`Get-Infisical*`) use a `List` (default) / single-record parameter-set pair: invoking without the identity parameter returns the collection, supplying the identity parameter returns one record. +The module exports 68 cmdlets. Discovery cmdlets (`Get-Infisical*`) use a `List` (default) / single-record parameter-set pair: invoking without the identity parameter returns the collection, supplying the identity parameter returns one record. ### Session @@ -118,6 +118,44 @@ The module exports 51 cmdlets. Discovery cmdlets (`Get-Infisical*`) use a `List` | `Write-InfisicalScepMdmProfileToWmi`| Submits a SCEP MDM profile to the local MDM Bridge WMI provider to trigger enrollment. | | `Get-InfisicalSANList` | Builds a SAN candidate list (device name, `.` per adapter DNS suffix, RFC 1918 + CGNAT IPv4 addresses, IPv4/IPv6 loopback) for `Request-InfisicalCertificate -DnsName`. | +### PKI configuration + +Creating and changing the objects a Certificate Manager project is built from. `-ProjectId` is optional on all of them, and every one honours `-WhatIf`. + +| Cmdlet | Purpose | +| ---------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `New-InfisicalCertificateAuthority` | Creates a root or intermediate internal CA, signing a subordinate with its parent so it can issue. | +| `Set-InfisicalCertificateAuthority` | Renames an internal CA or changes its status. | +| `Remove-InfisicalCertificateAuthority` | Deletes an internal CA. | +| `New-InfisicalCertificatePolicy` | Creates a certificate policy constraining subject, SANs, key usages, and validity. | +| `Set-InfisicalCertificatePolicy` | Updates a certificate policy; only supplied constraints are sent. | +| `Remove-InfisicalCertificatePolicy` | Deletes a certificate policy. | +| `New-InfisicalCertificateProfile` | Creates a certificate profile binding an issuing CA to a policy for enrollment. | +| `Set-InfisicalCertificateProfile` | Updates a certificate profile. | +| `Remove-InfisicalCertificateProfile` | Deletes a certificate profile. | +| `New-InfisicalCertificateApplication` | Creates a certificate application and optionally attaches profiles. | +| `Set-InfisicalCertificateApplication` | Renames an application, or attaches and detaches profiles. | +| `Remove-InfisicalCertificateApplication` | Deletes a certificate application. | +| `New-InfisicalPkiSubscriber` | Creates a PKI subscriber: one named identity with a fixed common name. | +| `Set-InfisicalPkiSubscriber` | Updates a PKI subscriber. | +| `Remove-InfisicalPkiSubscriber` | Deletes a PKI subscriber. | + +Constraint dictionaries take `Allowed`, `Required`, and `Denied` in whatever casing reads naturally — they reach the API lower-cased — and an empty list is omitted rather than sent as "allow nothing": + +```powershell +$Root = New-InfisicalCertificateAuthority -Name 'root-ca' -Type Root -CommonName 'Contoso Root CA' -Organization 'Contoso' -Country 'US' +$Ca = New-InfisicalCertificateAuthority -Name 'issuing-ca' -Type Intermediate -ParentCaId $Root.Id -CommonName 'Contoso Issuing CA' + +$Policy = New-InfisicalCertificatePolicy -Name 'server-auth' -MaxValidity '90d' ` + -KeyAlgorithm 'RSA_2048','EC_secp384r1' ` + -KeyUsage @{ Required = @('digital_signature','key_encipherment') } ` + -ExtendedKeyUsage @{ Required = @('server_auth','client_auth') } + +$CertificateProfile = New-InfisicalCertificateProfile -Slug 'server-auth' -CertificatePolicyId $Policy.Id -CaId $Ca.Id -AutoRenew -RenewBeforeDays 14 +$Application = New-InfisicalCertificateApplication -Name 'platform' -ProfileId $CertificateProfile.Id +``` + +The intermediate comes back ready to issue: Infisical creates a subordinate pending a certificate, and `New-InfisicalCertificateAuthority` performs the remaining sequence — read the CSR, sign it with `-ParentCaId`, import the result. ### Process | Cmdlet | Purpose | diff --git a/build.ps1 b/build.ps1 index b560d8c..2b5e436 100644 --- a/build.ps1 +++ b/build.ps1 @@ -156,7 +156,22 @@ function Write-Manifest { 'Write-InfisicalScepMdmProfileToWmi', 'Start-InfisicalProcess', 'Get-InfisicalEnvironmentVariable', - 'Get-InfisicalSANList' + 'Get-InfisicalSANList', + 'New-InfisicalCertificateAuthority', + 'Set-InfisicalCertificateAuthority', + 'Remove-InfisicalCertificateAuthority', + 'New-InfisicalCertificatePolicy', + 'Set-InfisicalCertificatePolicy', + 'Remove-InfisicalCertificatePolicy', + 'New-InfisicalCertificateProfile', + 'Set-InfisicalCertificateProfile', + 'Remove-InfisicalCertificateProfile', + 'New-InfisicalCertificateApplication', + 'Set-InfisicalCertificateApplication', + 'Remove-InfisicalCertificateApplication', + 'New-InfisicalPkiSubscriber', + 'Set-InfisicalPkiSubscriber', + 'Remove-InfisicalPkiSubscriber' ) AliasesToExport = @() VariablesToExport = @() @@ -250,7 +265,7 @@ if (`$cmds.Count -eq 0) { throw "No cmdlets were exported by the PSInfisicalAPI module." } -`$expectedCmds = @('Connect-Infisical','Disconnect-Infisical','Get-InfisicalSecret','New-InfisicalSecret','Update-InfisicalSecret','Remove-InfisicalSecret','Copy-InfisicalSecret','ConvertTo-InfisicalSecretDictionary','Export-InfisicalSecrets','Import-InfisicalSecret','Get-InfisicalProject','New-InfisicalProject','Update-InfisicalProject','Remove-InfisicalProject','Get-InfisicalEnvironment','New-InfisicalEnvironment','Update-InfisicalEnvironment','Remove-InfisicalEnvironment','Get-InfisicalFolder','New-InfisicalFolder','Update-InfisicalFolder','Remove-InfisicalFolder','Get-InfisicalTag','New-InfisicalTag','Update-InfisicalTag','Remove-InfisicalTag','Get-InfisicalOrganization','New-InfisicalOrganization','Update-InfisicalOrganization','Remove-InfisicalOrganization','Get-InfisicalSubOrganization','New-InfisicalSubOrganization','Update-InfisicalSubOrganization','Remove-InfisicalSubOrganization','Get-InfisicalCertificateAuthority','Get-InfisicalPkiSubscriber','Get-InfisicalCertificateProfile','Get-InfisicalCertificatePolicy','Get-InfisicalCertificate','Request-InfisicalCertificate','ConvertTo-InfisicalCertificate','Install-InfisicalCertificate','Uninstall-InfisicalCertificate','Export-InfisicalCertificate','Get-InfisicalCertificateApplication','Get-InfisicalCertificateApplicationEnrollment','New-InfisicalScepDynamicChallenge','Get-InfisicalScepMdmProfile','Export-InfisicalScepMdmProfile','Write-InfisicalScepMdmProfileToWmi','Start-InfisicalProcess','Get-InfisicalEnvironmentVariable','Get-InfisicalSANList') +`$expectedCmds = @('Connect-Infisical','Disconnect-Infisical','Get-InfisicalSecret','New-InfisicalSecret','Update-InfisicalSecret','Remove-InfisicalSecret','Copy-InfisicalSecret','ConvertTo-InfisicalSecretDictionary','Export-InfisicalSecrets','Import-InfisicalSecret','Get-InfisicalProject','New-InfisicalProject','Update-InfisicalProject','Remove-InfisicalProject','Get-InfisicalEnvironment','New-InfisicalEnvironment','Update-InfisicalEnvironment','Remove-InfisicalEnvironment','Get-InfisicalFolder','New-InfisicalFolder','Update-InfisicalFolder','Remove-InfisicalFolder','Get-InfisicalTag','New-InfisicalTag','Update-InfisicalTag','Remove-InfisicalTag','Get-InfisicalOrganization','New-InfisicalOrganization','Update-InfisicalOrganization','Remove-InfisicalOrganization','Get-InfisicalSubOrganization','New-InfisicalSubOrganization','Update-InfisicalSubOrganization','Remove-InfisicalSubOrganization','Get-InfisicalCertificateAuthority','Get-InfisicalPkiSubscriber','Get-InfisicalCertificateProfile','Get-InfisicalCertificatePolicy','Get-InfisicalCertificate','Request-InfisicalCertificate','ConvertTo-InfisicalCertificate','Install-InfisicalCertificate','Uninstall-InfisicalCertificate','Export-InfisicalCertificate','Get-InfisicalCertificateApplication','Get-InfisicalCertificateApplicationEnrollment','New-InfisicalScepDynamicChallenge','Get-InfisicalScepMdmProfile','Export-InfisicalScepMdmProfile','Write-InfisicalScepMdmProfileToWmi','Start-InfisicalProcess','Get-InfisicalEnvironmentVariable','Get-InfisicalSANList','New-InfisicalCertificateAuthority','Set-InfisicalCertificateAuthority','Remove-InfisicalCertificateAuthority','New-InfisicalCertificatePolicy','Set-InfisicalCertificatePolicy','Remove-InfisicalCertificatePolicy','New-InfisicalCertificateProfile','Set-InfisicalCertificateProfile','Remove-InfisicalCertificateProfile','New-InfisicalCertificateApplication','Set-InfisicalCertificateApplication','Remove-InfisicalCertificateApplication','New-InfisicalPkiSubscriber','Set-InfisicalPkiSubscriber','Remove-InfisicalPkiSubscriber') foreach (`$expected in `$expectedCmds) { if (-not (Get-Command -Name `$expected -Module PSInfisicalAPI -ErrorAction SilentlyContinue)) { throw "Cmdlet not found: `$expected" diff --git a/src/PSInfisicalAPI.Tests/PkiWriteCmdletTests.cs b/src/PSInfisicalAPI.Tests/PkiWriteCmdletTests.cs new file mode 100644 index 0000000..c96f773 --- /dev/null +++ b/src/PSInfisicalAPI.Tests/PkiWriteCmdletTests.cs @@ -0,0 +1,280 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Management.Automation; +using System.Reflection; +using Newtonsoft.Json; +using Xunit; + +namespace PSInfisicalAPI.Tests +{ + ///

+ /// The create/update/delete cmdlets for Certificate Manager configuration. Their bodies are built from + /// caller-supplied dictionaries, so the conversion into the exact JSON Infisical's schemas accept is what + /// these pin. + /// + public class PkiWriteCmdletTests + { + private static readonly Assembly ModuleAssembly = typeof(PSInfisicalAPI.Connections.InfisicalConnection).Assembly; + + private static readonly string[] WriteCmdletTypes = new[] + { + "NewInfisicalCertificateAuthorityCmdlet", "SetInfisicalCertificateAuthorityCmdlet", "RemoveInfisicalCertificateAuthorityCmdlet", + "NewInfisicalCertificatePolicyCmdlet", "SetInfisicalCertificatePolicyCmdlet", "RemoveInfisicalCertificatePolicyCmdlet", + "NewInfisicalCertificateProfileCmdlet", "SetInfisicalCertificateProfileCmdlet", "RemoveInfisicalCertificateProfileCmdlet", + "NewInfisicalCertificateApplicationCmdlet", "SetInfisicalCertificateApplicationCmdlet", "RemoveInfisicalCertificateApplicationCmdlet", + "NewInfisicalPkiSubscriberCmdlet", "SetInfisicalPkiSubscriberCmdlet", "RemoveInfisicalPkiSubscriberCmdlet" + }; + + private static Dictionary ToJsonObject(IDictionary source) + { + Type baseType = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.InfisicalPkiWriteCmdletBase", true); + MethodInfo method = baseType.GetMethod("ToJsonObject", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(method); + return (Dictionary)method.Invoke(null, new object[] { source }); + } + + private static List> ToJsonObjectList(IEnumerable source) + { + Type baseType = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.InfisicalPkiWriteCmdletBase", true); + MethodInfo method = baseType.GetMethod("ToJsonObjectList", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(method); + return (List>)method.Invoke(null, new object[] { source }); + } + + [Fact] + public void Every_Write_Cmdlet_Declares_ShouldProcess() + { + List offenders = new List(); + + foreach (string typeName in WriteCmdletTypes) + { + Type type = ModuleAssembly.GetType(string.Concat("PSInfisicalAPI.Cmdlets.", typeName), true); + + bool supportsShouldProcess = false; + foreach (CustomAttributeData attribute in type.GetCustomAttributesData()) + { + if (attribute.AttributeType != typeof(CmdletAttribute)) { continue; } + foreach (CustomAttributeNamedArgument named in attribute.NamedArguments) + { + if (named.MemberName == "SupportsShouldProcess" && (bool)named.TypedValue.Value) { supportsShouldProcess = true; } + } + } + + if (!supportsShouldProcess) { offenders.Add(typeName); } + } + + Assert.Empty(offenders); + } + + [Fact] + public void Every_Remove_Cmdlet_Defaults_To_High_Confirm_Impact() + { + List offenders = new List(); + + foreach (string typeName in WriteCmdletTypes) + { + if (!typeName.StartsWith("Remove", StringComparison.Ordinal)) { continue; } + + Type type = ModuleAssembly.GetType(string.Concat("PSInfisicalAPI.Cmdlets.", typeName), true); + + bool high = false; + foreach (CustomAttributeData attribute in type.GetCustomAttributesData()) + { + if (attribute.AttributeType != typeof(CmdletAttribute)) { continue; } + foreach (CustomAttributeNamedArgument named in attribute.NamedArguments) + { + if (named.MemberName == "ConfirmImpact" && (ConfirmImpact)named.TypedValue.Value == ConfirmImpact.High) { high = true; } + } + } + + if (!high) { offenders.Add(typeName); } + } + + Assert.Empty(offenders); + } + + [Fact] + public void Every_Write_Cmdlet_Resolves_The_Project_Instead_Of_Requiring_It() + { + List offenders = new List(); + + foreach (string typeName in WriteCmdletTypes) + { + Type type = ModuleAssembly.GetType(string.Concat("PSInfisicalAPI.Cmdlets.", typeName), true); + PropertyInfo projectId = type.GetProperty("ProjectId"); + Assert.True(projectId != null, string.Concat(typeName, " has no ProjectId property")); + + foreach (CustomAttributeData attribute in projectId.GetCustomAttributesData()) + { + if (attribute.AttributeType != typeof(ParameterAttribute)) { continue; } + foreach (CustomAttributeNamedArgument named in attribute.NamedArguments) + { + if (named.MemberName == "Mandatory" && (bool)named.TypedValue.Value) { offenders.Add(typeName); } + } + } + } + + Assert.Empty(offenders); + } + + [Theory] + // PowerShell callers capitalise hashtable keys; Infisical's schema is lower case. + [InlineData("Required", "required")] + [InlineData("required", "required")] + [InlineData("Allowed", "allowed")] + [InlineData("DENIED", "denied")] + public void Constraint_Keys_Are_Emitted_In_The_Casing_The_Api_Requires(string supplied, string expected) + { + Hashtable source = new Hashtable { { supplied, new[] { "server_auth" } } }; + Dictionary result = ToJsonObject(source); + + Assert.True(result.ContainsKey(expected), string.Concat("expected key '", expected, "' but got: ", JsonConvert.SerializeObject(result))); + } + + [Fact] + public void Non_Constraint_Keys_Keep_Their_Camel_Case() + { + // Field names elsewhere in the body are camelCase and supplied verbatim; lowercasing them would + // silently drop settings the API would no longer recognise. + Hashtable source = new Hashtable { { "ttlDays", 90 }, { "keyAlgorithm", "RSA_2048" }, { "isCA", "denied" }, { "maxPathLength", 0 } }; + Dictionary result = ToJsonObject(source); + + Assert.True(result.ContainsKey("ttlDays")); + Assert.True(result.ContainsKey("keyAlgorithm")); + Assert.True(result.ContainsKey("isCA")); + Assert.True(result.ContainsKey("maxPathLength")); + } + + [Fact] + public void An_Empty_Collection_Is_Dropped_Rather_Than_Sent_As_Allow_Nothing() + { + Hashtable source = new Hashtable { { "Allowed", new string[0] }, { "Required", new[] { "server_auth" } } }; + Dictionary result = ToJsonObject(source); + + Assert.False(result.ContainsKey("allowed")); + Assert.True(result.ContainsKey("required")); + } + + [Fact] + public void A_Wholly_Empty_Constraint_Becomes_Null_So_It_Is_Omitted() + { + Assert.Null(ToJsonObject(new Hashtable())); + Assert.Null(ToJsonObject(new Hashtable { { "Allowed", new string[0] } })); + Assert.Null(ToJsonObject(null)); + } + + [Fact] + public void A_Constraint_List_Drops_Entries_That_Constrain_Nothing() + { + // An entry carrying only "type" is rejected by Infisical's refinement, and is what a caller writes + // when they meant to leave that dimension alone. + List source = new List + { + new Hashtable { { "Type", "dns_name" }, { "Allowed", new[] { "*.contoso.com" } } }, + new Hashtable { { "Type", "ip_address" }, { "Allowed", new string[0] } } + }; + + List> result = ToJsonObjectList(source); + + Dictionary only = Assert.Single(result); + Assert.Equal("dns_name", only["type"]); + Assert.True(only.ContainsKey("allowed")); + } + + [Fact] + public void Nested_Dictionaries_Survive_Conversion() + { + Hashtable source = new Hashtable + { + { "outer", new Hashtable { { "inner", new Hashtable { { "Required", new[] { "a" } } } } } } + }; + + Dictionary result = ToJsonObject(source); + string json = JsonConvert.SerializeObject(result); + + Assert.Contains("\"outer\"", json); + Assert.Contains("\"inner\"", json); + Assert.Contains("\"required\"", json); + } + + [Fact] + public void Profile_Enrollment_Config_Is_Routed_To_The_Block_For_Its_Type() + { + Type cmdletType = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.NewInfisicalCertificateProfileCmdlet", true); + MethodInfo build = cmdletType.GetMethod("BuildRequest", BindingFlags.NonPublic | BindingFlags.Static); + Assert.NotNull(build); + + Hashtable config = new Hashtable { { "passphrase", "secret" } }; + + object estRequest = build.Invoke(null, new object[] { "slug", null, "ca", "policy", "est", "ca", false, null, null, config, false }); + Assert.NotNull(estRequest.GetType().GetProperty("EstConfig").GetValue(estRequest)); + Assert.Null(estRequest.GetType().GetProperty("ApiConfig").GetValue(estRequest)); + + object scepRequest = build.Invoke(null, new object[] { "slug", null, "ca", "policy", "scep", "ca", false, null, null, config, false }); + Assert.NotNull(scepRequest.GetType().GetProperty("ScepConfig").GetValue(scepRequest)); + + object apiRequest = build.Invoke(null, new object[] { "slug", null, "ca", "policy", "api", "ca", true, 14, null, null, true }); + object apiConfig = apiRequest.GetType().GetProperty("ApiConfig").GetValue(apiRequest); + Assert.NotNull(apiConfig); + + Dictionary typed = (Dictionary)apiConfig; + Assert.Equal(true, typed["autoRenew"]); + Assert.Equal(14, typed["renewBeforeDays"]); + } + + [Fact] + public void Auto_Renew_Is_Only_Sent_When_The_Caller_Asked_For_It() + { + // A switch parameter is always false when absent, so sending it unconditionally would silently + // disable renewal on an update that never mentioned it. + Type cmdletType = ModuleAssembly.GetType("PSInfisicalAPI.Cmdlets.NewInfisicalCertificateProfileCmdlet", true); + MethodInfo build = cmdletType.GetMethod("BuildRequest", BindingFlags.NonPublic | BindingFlags.Static); + + object unbound = build.Invoke(null, new object[] { "slug", null, "ca", "policy", "api", "ca", false, null, null, null, false }); + Assert.Null(unbound.GetType().GetProperty("ApiConfig").GetValue(unbound)); + + object bound = build.Invoke(null, new object[] { "slug", null, "ca", "policy", "api", "ca", false, null, null, null, true }); + Dictionary config = (Dictionary)bound.GetType().GetProperty("ApiConfig").GetValue(bound); + Assert.NotNull(config); + Assert.Equal(false, config["autoRenew"]); + } + + [Fact] + public void Every_Management_Endpoint_Is_Registered() + { + string[] names = new[] + { + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.CreateInternalCertificateAuthority, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.UpdateInternalCertificateAuthority, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.DeleteInternalCertificateAuthority, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.GetCertificateAuthorityCsr, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.SignIntermediateCertificateAuthority, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.ImportCertificateAuthorityCertificate, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.CreateCertificatePolicy, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.UpdateCertificatePolicy, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.DeleteCertificatePolicy, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.CreateCertificateProfile, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.UpdateCertificateProfile, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.DeleteCertificateProfile, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.CreateCertificateApplication, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.UpdateCertificateApplication, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.DeleteCertificateApplication, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.AddCertificateApplicationProfiles, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.RemoveCertificateApplicationProfile, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.CreatePkiSubscriber, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.UpdatePkiSubscriber, + PSInfisicalAPI.Endpoints.InfisicalEndpointNames.DeletePkiSubscriber + }; + + foreach (string name in names) + { + IReadOnlyList candidates = + PSInfisicalAPI.Endpoints.InfisicalEndpointRegistry.GetCandidates(name); + + Assert.True(candidates.Count > 0, string.Concat(name, " is not registered")); + Assert.All(candidates, c => Assert.True(c.RequiresAuthorization, string.Concat(name, " should require authorization"))); + } + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/CertificateApplicationWriteCmdlets.cs b/src/PSInfisicalAPI/Cmdlets/CertificateApplicationWriteCmdlets.cs new file mode 100644 index 0000000..9f75c51 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/CertificateApplicationWriteCmdlets.cs @@ -0,0 +1,159 @@ +using System; +using System.Management.Automation; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Pki; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Creates a certificate application: the grouping the Infisical console presents profiles, members, and + /// certificates under. + /// + [Cmdlet(VerbsCommon.New, "InfisicalCertificateApplication", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateApplication))] + public sealed class NewInfisicalCertificateApplicationCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "NewInfisicalCertificateApplicationCmdlet"; + + [Parameter(Mandatory = true, Position = 0)] public string Name { get; set; } + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Description { get; set; } + + /// Certificate profiles to attach on creation. + [Parameter] public string[] ProfileId { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Name, "Create certificate application")) { return; } + + InfisicalCertificateApplicationWriteRequestDto request = new InfisicalCertificateApplicationWriteRequestDto + { + Name = Name, + Description = Description, + ProfileIds = ToStringList(ProfileId) + }; + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + WriteObject(client.WriteCertificateApplication(connection, ProjectId, null, request)); + } + catch (Exception exception) + { + WriteErrorForException(Component, "CreateCertificateApplication", exception); + } + } + } + + /// + /// Renames a certificate application or changes its description, and attaches or detaches profiles. + /// + [Cmdlet(VerbsCommon.Set, "InfisicalCertificateApplication", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateApplication))] + public sealed class SetInfisicalCertificateApplicationCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "SetInfisicalCertificateApplicationCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string ApplicationId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Name { get; set; } + [Parameter] public string Description { get; set; } + + /// Certificate profiles to attach. Profiles already attached are left alone. + [Parameter] public string[] AddProfileId { get; set; } + + /// Certificate profiles to detach. + [Parameter] public string[] RemoveProfileId { get; set; } + + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(ApplicationId, "Update certificate application")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + InfisicalCertificateApplication updated = null; + + // The application record and its profile attachments are separate endpoints, so the name and + // description update is skipped entirely when only profiles were supplied. + if (!string.IsNullOrEmpty(Name) || !string.IsNullOrEmpty(Description)) + { + InfisicalCertificateApplicationWriteRequestDto request = new InfisicalCertificateApplicationWriteRequestDto + { + Name = Name, + Description = Description + }; + + updated = client.WriteCertificateApplication(connection, ProjectId, ApplicationId, request); + } + + if (ToStringList(AddProfileId) != null) + { + client.AddCertificateApplicationProfiles(connection, ProjectId, ApplicationId, ToStringList(AddProfileId)); + } + + foreach (string profileId in ToStringList(RemoveProfileId) ?? new System.Collections.Generic.List()) + { + client.RemoveCertificateApplicationProfile(connection, ProjectId, ApplicationId, profileId); + } + + if (PassThru.IsPresent && updated != null) { WriteObject(updated); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "UpdateCertificateApplication", exception); + } + } + } + + /// + /// Deletes a certificate application. + /// + [Cmdlet(VerbsCommon.Remove, "InfisicalCertificateApplication", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] + public sealed class RemoveInfisicalCertificateApplicationCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "RemoveInfisicalCertificateApplicationCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string ApplicationId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(ApplicationId, "Delete certificate application")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + client.DeleteCertificateApplication(connection, ProjectId, ApplicationId); + + if (PassThru.IsPresent) { WriteObject(ApplicationId); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "DeleteCertificateApplication", exception); + } + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/CertificateAuthorityWriteCmdlets.cs b/src/PSInfisicalAPI/Cmdlets/CertificateAuthorityWriteCmdlets.cs new file mode 100644 index 0000000..31f5e32 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/CertificateAuthorityWriteCmdlets.cs @@ -0,0 +1,183 @@ +using System; +using System.Management.Automation; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Pki; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Creates an internal certificate authority, signing a subordinate with its parent so it comes back ready + /// to issue. + /// + [Cmdlet(VerbsCommon.New, "InfisicalCertificateAuthority", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateAuthority))] + public sealed class NewInfisicalCertificateAuthorityCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "NewInfisicalCertificateAuthorityCmdlet"; + + [Parameter(Mandatory = true, Position = 0)] public string Name { get; set; } + + [Parameter(Mandatory = true)] + [ValidateSet("Root", "Intermediate")] + public string Type { get; set; } + + [Parameter(Mandatory = true)] public string CommonName { get; set; } + + /// Required for -Type Intermediate: the authority that signs this one. + [Parameter] public string ParentCaId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Organization { get; set; } + [Parameter] public string OrganizationalUnit { get; set; } + [Parameter] public string Country { get; set; } + [Parameter] public string State { get; set; } + [Parameter] public string Locality { get; set; } + [Parameter] public string FriendlyName { get; set; } + + [Parameter] + [ValidateSet("RSA_2048", "RSA_3072", "RSA_4096", "EC_prime256v1", "EC_secp384r1", "EC_secp521r1")] + public string KeyAlgorithm { get; set; } = "RSA_2048"; + + /// Expiry. Defaults to ten years for a root and five for a subordinate. + [Parameter] public DateTimeOffset? NotAfter { get; set; } + + [Parameter] public DateTimeOffset? NotBefore { get; set; } + + /// Subordinate authorities permitted beneath this one. Defaults to 1 for a root, 0 otherwise. + [Parameter] public int? MaxPathLength { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + bool isRoot = string.Equals(Type, "Root", StringComparison.OrdinalIgnoreCase); + if (!isRoot && string.IsNullOrEmpty(ParentCaId)) + { + throw new PSInfisicalAPI.Errors.InfisicalConfigurationException( + "-ParentCaId is required for an intermediate certificate authority; it names the authority that signs this one."); + } + + if (!ShouldProcess(Name, string.Concat("Create ", Type.ToLowerInvariant(), " certificate authority"))) { return; } + + DateTimeOffset expiry = NotAfter ?? DateTimeOffset.UtcNow.AddYears(isRoot ? 10 : 5); + int pathLength = MaxPathLength ?? (isRoot ? 1 : 0); + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + + InfisicalCertificateAuthority created = client.CreateInternalCertificateAuthority( + connection, ProjectId, Name, isRoot ? "root" : "intermediate", CommonName, + Organization, OrganizationalUnit, Country, State, Locality, KeyAlgorithm, FriendlyName, + ToApiTimestamp(NotBefore), ToApiTimestamp(expiry), pathLength); + + if (created == null) + { + throw new PSInfisicalAPI.Errors.InfisicalApiException("Creating the certificate authority returned no record."); + } + + if (!isRoot) + { + // Infisical creates a subordinate pending a certificate; without this it exists but cannot + // sign anything. + Logger.Information(Component, string.Concat("Signing '", Name, "' with parent certificate authority '", ParentCaId, "'.")); + client.CompleteSubordinateCertificateAuthority(connection, ProjectId, created.Id, ParentCaId, ToApiTimestamp(expiry), pathLength); + + InfisicalPkiClient readClient = new InfisicalPkiClient(HttpClient, Logger); + InfisicalCertificateAuthority refreshed = readClient.GetInternalCertificateAuthority(connection, created.Id, ProjectId); + if (refreshed != null) { created = refreshed; } + } + + WriteObject(created); + } + catch (Exception exception) + { + WriteErrorForException(Component, "CreateCertificateAuthority", exception); + } + } + } + + /// + /// Renames an internal certificate authority or changes its status. + /// + [Cmdlet(VerbsCommon.Set, "InfisicalCertificateAuthority", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateAuthority))] + public sealed class SetInfisicalCertificateAuthorityCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "SetInfisicalCertificateAuthorityCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string CaId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Name { get; set; } + + [Parameter] + [ValidateSet("active", "disabled")] + public string Status { get; set; } + + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(CaId, "Update certificate authority")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + InfisicalCertificateAuthority updated = client.UpdateInternalCertificateAuthority(connection, ProjectId, CaId, Name, Status); + + if (PassThru.IsPresent) { WriteObject(updated); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "UpdateCertificateAuthority", exception); + } + } + } + + /// + /// Deletes an internal certificate authority. + /// + [Cmdlet(VerbsCommon.Remove, "InfisicalCertificateAuthority", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] + public sealed class RemoveInfisicalCertificateAuthorityCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "RemoveInfisicalCertificateAuthorityCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string CaId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(CaId, "Delete certificate authority")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + client.DeleteInternalCertificateAuthority(connection, ProjectId, CaId); + + if (PassThru.IsPresent) { WriteObject(CaId); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "DeleteCertificateAuthority", exception); + } + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/CertificatePolicyWriteCmdlets.cs b/src/PSInfisicalAPI/Cmdlets/CertificatePolicyWriteCmdlets.cs new file mode 100644 index 0000000..67619f3 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/CertificatePolicyWriteCmdlets.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections; +using System.Management.Automation; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Pki; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Creates a certificate policy: the constraints a profile issues within. + /// + [Cmdlet(VerbsCommon.New, "InfisicalCertificatePolicy", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificatePolicy))] + public sealed class NewInfisicalCertificatePolicyCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "NewInfisicalCertificatePolicyCmdlet"; + + [Parameter(Mandatory = true, Position = 0)] public string Name { get; set; } + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Description { get; set; } + + /// Maximum certificate lifetime, for example '90d', '12m', or '1y'. + [Parameter] public string MaxValidity { get; set; } + + /// Permitted key algorithms, for example RSA_2048 or EC_secp384r1. + [Parameter] public string[] KeyAlgorithm { get; set; } + + /// Permitted signature algorithms. + [Parameter] public string[] SignatureAlgorithm { get; set; } + + /// Key usage constraint, as @{ Required = @('digital_signature'); Denied = @(...) }. + [Parameter] public IDictionary KeyUsage { get; set; } + + /// Extended key usage constraint, as @{ Required = @('server_auth','client_auth') }. + [Parameter] public IDictionary ExtendedKeyUsage { get; set; } + + /// Subject attribute constraints, as @( @{ Type = 'organization'; Allowed = @('Contoso') } ). + [Parameter] public IDictionary[] Subject { get; set; } + + /// Subject alternative name constraints, as @( @{ Type = 'dns_name'; Allowed = @('*.contoso.com') } ). + [Parameter] public IDictionary[] SubjectAlternativeName { get; set; } + + /// Basic constraints, as @{ isCA = 'denied'; maxPathLength = 0 }. + [Parameter] public IDictionary BasicConstraints { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Name, "Create certificate policy")) { return; } + + InfisicalCertificatePolicyWriteRequestDto request = new InfisicalCertificatePolicyWriteRequestDto + { + Name = Name, + Description = Description, + Subject = ToJsonObjectList(Subject), + Sans = ToJsonObjectList(SubjectAlternativeName), + KeyUsages = ToJsonObject(KeyUsage), + ExtendedKeyUsages = ToJsonObject(ExtendedKeyUsage), + BasicConstraints = ToJsonObject(BasicConstraints) + }; + + if (!string.IsNullOrEmpty(MaxValidity)) + { + request.Validity = new System.Collections.Generic.Dictionary { { "max", MaxValidity } }; + } + + System.Collections.Generic.Dictionary algorithms = new System.Collections.Generic.Dictionary(); + if (ToStringList(KeyAlgorithm) != null) { algorithms["keyAlgorithm"] = ToStringList(KeyAlgorithm); } + if (ToStringList(SignatureAlgorithm) != null) { algorithms["signature"] = ToStringList(SignatureAlgorithm); } + if (algorithms.Count > 0) { request.Algorithms = algorithms; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + WriteObject(client.WriteCertificatePolicy(connection, ProjectId, null, request)); + } + catch (Exception exception) + { + WriteErrorForException(Component, "CreateCertificatePolicy", exception); + } + } + } + + /// + /// Updates a certificate policy. Only the supplied constraints are sent; the rest are left as they are. + /// + [Cmdlet(VerbsCommon.Set, "InfisicalCertificatePolicy", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificatePolicy))] + public sealed class SetInfisicalCertificatePolicyCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "SetInfisicalCertificatePolicyCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string PolicyId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Name { get; set; } + [Parameter] public string Description { get; set; } + [Parameter] public string MaxValidity { get; set; } + [Parameter] public string[] KeyAlgorithm { get; set; } + [Parameter] public string[] SignatureAlgorithm { get; set; } + [Parameter] public IDictionary KeyUsage { get; set; } + [Parameter] public IDictionary ExtendedKeyUsage { get; set; } + [Parameter] public IDictionary[] Subject { get; set; } + [Parameter] public IDictionary[] SubjectAlternativeName { get; set; } + [Parameter] public IDictionary BasicConstraints { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(PolicyId, "Update certificate policy")) { return; } + + InfisicalCertificatePolicyWriteRequestDto request = new InfisicalCertificatePolicyWriteRequestDto + { + Name = Name, + Description = Description, + Subject = ToJsonObjectList(Subject), + Sans = ToJsonObjectList(SubjectAlternativeName), + KeyUsages = ToJsonObject(KeyUsage), + ExtendedKeyUsages = ToJsonObject(ExtendedKeyUsage), + BasicConstraints = ToJsonObject(BasicConstraints) + }; + + if (!string.IsNullOrEmpty(MaxValidity)) + { + request.Validity = new System.Collections.Generic.Dictionary { { "max", MaxValidity } }; + } + + System.Collections.Generic.Dictionary algorithms = new System.Collections.Generic.Dictionary(); + if (ToStringList(KeyAlgorithm) != null) { algorithms["keyAlgorithm"] = ToStringList(KeyAlgorithm); } + if (ToStringList(SignatureAlgorithm) != null) { algorithms["signature"] = ToStringList(SignatureAlgorithm); } + if (algorithms.Count > 0) { request.Algorithms = algorithms; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + InfisicalCertificatePolicy updated = client.WriteCertificatePolicy(connection, ProjectId, PolicyId, request); + + if (PassThru.IsPresent) { WriteObject(updated); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "UpdateCertificatePolicy", exception); + } + } + } + + /// + /// Deletes a certificate policy. + /// + [Cmdlet(VerbsCommon.Remove, "InfisicalCertificatePolicy", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] + public sealed class RemoveInfisicalCertificatePolicyCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "RemoveInfisicalCertificatePolicyCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id")] + public string PolicyId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(PolicyId, "Delete certificate policy")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + client.DeleteCertificatePolicy(connection, ProjectId, PolicyId); + + if (PassThru.IsPresent) { WriteObject(PolicyId); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "DeleteCertificatePolicy", exception); + } + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/CertificateProfileWriteCmdlets.cs b/src/PSInfisicalAPI/Cmdlets/CertificateProfileWriteCmdlets.cs new file mode 100644 index 0000000..bec8835 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/CertificateProfileWriteCmdlets.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections; +using System.Management.Automation; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Pki; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Creates a certificate profile, binding an issuing certificate authority to a certificate policy and + /// exposing it for enrollment. + /// + [Cmdlet(VerbsCommon.New, "InfisicalCertificateProfile", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateProfile))] + public sealed class NewInfisicalCertificateProfileCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "NewInfisicalCertificateProfileCmdlet"; + + /// Lowercase letters, numbers, and hyphens only. + [Parameter(Mandatory = true, Position = 0)] public string Slug { get; set; } + + [Parameter(Mandatory = true)] public string CertificatePolicyId { get; set; } + [Parameter] public string CaId { get; set; } + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Description { get; set; } + + [Parameter] + [ValidateSet("api", "est", "acme", "scep")] + public string EnrollmentType { get; set; } = "api"; + + [Parameter] + [ValidateSet("ca", "self-signed")] + public string IssuerType { get; set; } = "ca"; + + /// Renew issued certificates automatically. + [Parameter] public SwitchParameter AutoRenew { get; set; } + + /// Days before expiry at which automatic renewal runs, 1 to 30. + [Parameter] public int? RenewBeforeDays { get; set; } + + /// Issuance defaults, as @{ ttlDays = 90; keyAlgorithm = 'RSA_2048' }. + [Parameter] public IDictionary Defaults { get; set; } + + /// Enrollment configuration for -EnrollmentType est, acme, or scep. + [Parameter] public IDictionary EnrollmentConfig { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Slug, "Create certificate profile")) { return; } + + InfisicalCertificateProfileWriteRequestDto request = BuildRequest( + Slug, Description, CaId, CertificatePolicyId, EnrollmentType, IssuerType, + AutoRenew.IsPresent, RenewBeforeDays, Defaults, EnrollmentConfig, + MyInvocation.BoundParameters.ContainsKey("AutoRenew")); + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + WriteObject(client.WriteCertificateProfile(connection, ProjectId, null, request)); + } + catch (Exception exception) + { + WriteErrorForException(Component, "CreateCertificateProfile", exception); + } + } + + /// + /// Routes the enrollment configuration to the block matching the enrollment type, so callers supply one + /// dictionary rather than choosing between four mutually exclusive parameters. + /// + internal static InfisicalCertificateProfileWriteRequestDto BuildRequest( + string slug, string description, string caId, string certificatePolicyId, + string enrollmentType, string issuerType, bool autoRenew, int? renewBeforeDays, + IDictionary defaults, IDictionary enrollmentConfig, bool autoRenewBound) + { + InfisicalCertificateProfileWriteRequestDto request = new InfisicalCertificateProfileWriteRequestDto + { + Slug = slug, + Description = description, + CaId = caId, + CertificatePolicyId = certificatePolicyId, + EnrollmentType = enrollmentType, + IssuerType = issuerType, + Defaults = ToJsonObject(defaults) + }; + + System.Collections.Generic.Dictionary config = ToJsonObject(enrollmentConfig); + + if (string.Equals(enrollmentType, "est", StringComparison.OrdinalIgnoreCase)) { request.EstConfig = config; } + else if (string.Equals(enrollmentType, "acme", StringComparison.OrdinalIgnoreCase)) { request.AcmeConfig = config; } + else if (string.Equals(enrollmentType, "scep", StringComparison.OrdinalIgnoreCase)) { request.ScepConfig = config; } + else + { + if (config == null && (autoRenewBound || renewBeforeDays.HasValue)) + { + config = new System.Collections.Generic.Dictionary(); + } + + if (config != null) + { + if (autoRenewBound) { config["autoRenew"] = autoRenew; } + if (renewBeforeDays.HasValue) { config["renewBeforeDays"] = renewBeforeDays.Value; } + } + + request.ApiConfig = config; + } + + return request; + } + } + + /// + /// Updates a certificate profile. Only the supplied values are sent. + /// + [Cmdlet(VerbsCommon.Set, "InfisicalCertificateProfile", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalCertificateProfile))] + public sealed class SetInfisicalCertificateProfileCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "SetInfisicalCertificateProfileCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id", "CertificateProfileId")] + public string ProfileId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Slug { get; set; } + [Parameter] public string Description { get; set; } + [Parameter] public string CaId { get; set; } + [Parameter] public string CertificatePolicyId { get; set; } + + [Parameter] + [ValidateSet("api", "est", "acme", "scep")] + public string EnrollmentType { get; set; } + + [Parameter] public SwitchParameter AutoRenew { get; set; } + [Parameter] public int? RenewBeforeDays { get; set; } + [Parameter] public IDictionary Defaults { get; set; } + [Parameter] public IDictionary EnrollmentConfig { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(ProfileId, "Update certificate profile")) { return; } + + InfisicalCertificateProfileWriteRequestDto request = NewInfisicalCertificateProfileCmdlet.BuildRequest( + Slug, Description, CaId, CertificatePolicyId, + string.IsNullOrEmpty(EnrollmentType) ? "api" : EnrollmentType, + null, AutoRenew.IsPresent, RenewBeforeDays, Defaults, EnrollmentConfig, + MyInvocation.BoundParameters.ContainsKey("AutoRenew")); + + // Only sent when the caller asked for it; the API keeps the stored value otherwise. + if (!MyInvocation.BoundParameters.ContainsKey("EnrollmentType")) { request.EnrollmentType = null; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + InfisicalCertificateProfile updated = client.WriteCertificateProfile(connection, ProjectId, ProfileId, request); + + if (PassThru.IsPresent) { WriteObject(updated); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "UpdateCertificateProfile", exception); + } + } + } + + /// + /// Deletes a certificate profile. + /// + [Cmdlet(VerbsCommon.Remove, "InfisicalCertificateProfile", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] + public sealed class RemoveInfisicalCertificateProfileCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "RemoveInfisicalCertificateProfileCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("Id", "CertificateProfileId")] + public string ProfileId { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(ProfileId, "Delete certificate profile")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + client.DeleteCertificateProfile(connection, ProjectId, ProfileId); + + if (PassThru.IsPresent) { WriteObject(ProfileId); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "DeleteCertificateProfile", exception); + } + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/InfisicalPkiWriteCmdletBase.cs b/src/PSInfisicalAPI/Cmdlets/InfisicalPkiWriteCmdletBase.cs new file mode 100644 index 0000000..0cae310 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/InfisicalPkiWriteCmdletBase.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Management.Automation; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Shared plumbing for the cmdlets that create, change, or remove Certificate Manager configuration. + /// + /// Infisical's policy and profile bodies are deeply nested — allowed/required/denied constraint objects, + /// per-enrollment-type config blocks — and expressing every leaf as a parameter would produce cmdlets nobody + /// could read. Those structures are accepted as dictionaries instead, matching how -Subject and + /// -Metadata already work, and are converted here. + /// + /// + public abstract class InfisicalPkiWriteCmdletBase : InfisicalCmdletBase + { + /// + /// Converts a caller's dictionary into the plain string-keyed form the serializer emits as a JSON + /// object. Nested dictionaries and collections are converted too, so a hashtable of hashtables round + /// trips into the nested body Infisical expects. + /// + /// + /// The constraint vocabulary Infisical expects in lower case. PowerShell callers naturally capitalise + /// hashtable keys, so @{ Required = ... } has to reach the API as "required" or the request + /// is rejected for a missing constraint. Every other key is passed through untouched, since the rest of + /// the body uses camelCase field names the caller supplies verbatim. + /// + private static readonly Dictionary CanonicalKeys = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + { "allowed", "allowed" }, + { "required", "required" }, + { "denied", "denied" }, + { "type", "type" } + }; + + internal static Dictionary ToJsonObject(IDictionary source) + { + if (source == null) { return null; } + + Dictionary result = new Dictionary(StringComparer.Ordinal); + foreach (DictionaryEntry entry in source) + { + if (entry.Key == null) { continue; } + string key = Convert.ToString(entry.Key, CultureInfo.InvariantCulture); + if (string.IsNullOrWhiteSpace(key)) { continue; } + + key = key.Trim(); + + string canonical; + if (CanonicalKeys.TryGetValue(key, out canonical)) { key = canonical; } + + object value = ToJsonValue(entry.Value); + + // An empty list is dropped rather than sent. "allowed": [] does not read as "unconstrained" to + // Infisical, it reads as "allow nothing", which is never what a caller writing @{ Allowed = @() } + // intends; omitting the key leaves that dimension genuinely unconstrained. + List asList = value as List; + if (asList != null && asList.Count == 0) { continue; } + + result[key] = value; + } + + return result.Count > 0 ? result : null; + } + + /// + /// Converts a list of dictionaries, which is the shape Infisical uses for policy subject and SAN + /// constraints. + /// + internal static List> ToJsonObjectList(IEnumerable source) + { + if (source == null) { return null; } + + List> result = new List>(); + foreach (object item in source) + { + IDictionary dictionary = UnwrapDictionary(item); + if (dictionary == null) { continue; } + + Dictionary converted = ToJsonObject(dictionary); + if (converted == null) { continue; } + + // An entry carrying only "type" states a dimension without constraining it, which Infisical + // rejects outright. Dropping it is what the caller meant by leaving the lists empty. + bool hasConstraint = converted.ContainsKey("allowed") || converted.ContainsKey("required") || converted.ContainsKey("denied"); + if (!hasConstraint) { continue; } + + result.Add(converted); + } + + return result.Count > 0 ? result : null; + } + + private static object ToJsonValue(object value) + { + if (value == null) { return null; } + + IDictionary nested = UnwrapDictionary(value); + if (nested != null) { return ToJsonObject(nested); } + + if (value is string) { return value; } + + IEnumerable enumerable = UnwrapEnumerable(value); + if (enumerable != null) + { + List items = new List(); + foreach (object item in enumerable) { items.Add(ToJsonValue(item)); } + return items; + } + + return value; + } + + /// + /// PowerShell hands parameters over wrapped in PSObject often enough that unwrapping has to happen at + /// every level, not only at the top. + /// + private static IDictionary UnwrapDictionary(object value) + { + if (value == null) { return null; } + if (value is IDictionary direct) { return direct; } + + PSObject wrapper = value as PSObject; + if (wrapper != null && wrapper.BaseObject is IDictionary wrapped) { return wrapped; } + + return null; + } + + private static IEnumerable UnwrapEnumerable(object value) + { + if (value is IEnumerable direct) { return direct; } + + PSObject wrapper = value as PSObject; + if (wrapper != null && wrapper.BaseObject is IEnumerable wrapped) { return wrapped; } + + return null; + } + + /// + /// Formats an expiry the way Infisical's date validator accepts it. + /// + internal static string ToApiTimestamp(DateTimeOffset? value) + { + if (!value.HasValue) { return null; } + return value.Value.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture); + } + + internal static List ToStringList(IEnumerable values) + { + if (values == null) { return null; } + + List result = new List(); + foreach (string value in values) + { + if (!string.IsNullOrWhiteSpace(value)) { result.Add(value.Trim()); } + } + + return result.Count > 0 ? result : null; + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/PkiSubscriberWriteCmdlets.cs b/src/PSInfisicalAPI/Cmdlets/PkiSubscriberWriteCmdlets.cs new file mode 100644 index 0000000..68c3b57 --- /dev/null +++ b/src/PSInfisicalAPI/Cmdlets/PkiSubscriberWriteCmdlets.cs @@ -0,0 +1,189 @@ +using System; +using System.Collections; +using System.Management.Automation; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Pki; + +namespace PSInfisicalAPI.Cmdlets +{ + /// + /// Creates a PKI subscriber: a named enrollment identity pinning one common name, its SAN allowlist, and its + /// key usages. + /// + [Cmdlet(VerbsCommon.New, "InfisicalPkiSubscriber", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalPkiSubscriber))] + public sealed class NewInfisicalPkiSubscriberCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "NewInfisicalPkiSubscriberCmdlet"; + + [Parameter(Mandatory = true, Position = 0)] public string Name { get; set; } + + /// + /// The certificate signed for this subscriber must carry exactly this common name; Infisical rejects a + /// request whose CSR names anything else. + /// + [Parameter(Mandatory = true)] public string CommonName { get; set; } + + [Parameter(Mandatory = true)] public string CaId { get; set; } + [Parameter] public string ProjectId { get; set; } + [Parameter] public string Ttl { get; set; } + + /// Allowlist of subject alternative names. A CSR naming anything outside it is rejected. + [Parameter] public string[] SubjectAlternativeName { get; set; } + + [Parameter] public string[] KeyUsage { get; set; } + [Parameter] public string[] ExtendedKeyUsage { get; set; } + + [Parameter] + [ValidateSet("active", "disabled")] + public string Status { get; set; } = "active"; + + [Parameter] public SwitchParameter EnableAutoRenewal { get; set; } + [Parameter] public int? AutoRenewalPeriodInDays { get; set; } + + /// Additional subject attributes, as @{ organization = 'Contoso'; country = 'US' }. + [Parameter] public IDictionary Properties { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Name, "Create PKI subscriber")) { return; } + + InfisicalPkiSubscriberWriteRequestDto request = new InfisicalPkiSubscriberWriteRequestDto + { + Name = Name, + CommonName = CommonName, + CaId = CaId, + Status = Status, + Ttl = Ttl, + SubjectAlternativeNames = ToStringList(SubjectAlternativeName), + KeyUsages = ToStringList(KeyUsage), + ExtendedKeyUsages = ToStringList(ExtendedKeyUsage), + Properties = ToJsonObject(Properties) + }; + + if (MyInvocation.BoundParameters.ContainsKey("EnableAutoRenewal")) { request.EnableAutoRenewal = EnableAutoRenewal.IsPresent; } + if (AutoRenewalPeriodInDays.HasValue) { request.AutoRenewalPeriodInDays = AutoRenewalPeriodInDays.Value; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + WriteObject(client.WritePkiSubscriber(connection, ProjectId, null, request)); + } + catch (Exception exception) + { + WriteErrorForException(Component, "CreatePkiSubscriber", exception); + } + } + } + + /// + /// Updates a PKI subscriber. Only the supplied values are sent. + /// + [Cmdlet(VerbsCommon.Set, "InfisicalPkiSubscriber", SupportsShouldProcess = true)] + [OutputType(typeof(InfisicalPkiSubscriber))] + public sealed class SetInfisicalPkiSubscriberCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "SetInfisicalPkiSubscriberCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("SubscriberName", "Slug")] + public string Name { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public string NewName { get; set; } + [Parameter] public string CommonName { get; set; } + [Parameter] public string CaId { get; set; } + [Parameter] public string Ttl { get; set; } + [Parameter] public string[] SubjectAlternativeName { get; set; } + [Parameter] public string[] KeyUsage { get; set; } + [Parameter] public string[] ExtendedKeyUsage { get; set; } + + [Parameter] + [ValidateSet("active", "disabled")] + public string Status { get; set; } + + [Parameter] public SwitchParameter EnableAutoRenewal { get; set; } + [Parameter] public int? AutoRenewalPeriodInDays { get; set; } + [Parameter] public IDictionary Properties { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Name, "Update PKI subscriber")) { return; } + + InfisicalPkiSubscriberWriteRequestDto request = new InfisicalPkiSubscriberWriteRequestDto + { + Name = NewName, + CommonName = CommonName, + CaId = CaId, + Status = Status, + Ttl = Ttl, + SubjectAlternativeNames = ToStringList(SubjectAlternativeName), + KeyUsages = ToStringList(KeyUsage), + ExtendedKeyUsages = ToStringList(ExtendedKeyUsage), + Properties = ToJsonObject(Properties) + }; + + if (MyInvocation.BoundParameters.ContainsKey("EnableAutoRenewal")) { request.EnableAutoRenewal = EnableAutoRenewal.IsPresent; } + if (AutoRenewalPeriodInDays.HasValue) { request.AutoRenewalPeriodInDays = AutoRenewalPeriodInDays.Value; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + InfisicalPkiSubscriber updated = client.WritePkiSubscriber(connection, ProjectId, Name, request); + + if (PassThru.IsPresent) { WriteObject(updated); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "UpdatePkiSubscriber", exception); + } + } + } + + /// + /// Deletes a PKI subscriber. + /// + [Cmdlet(VerbsCommon.Remove, "InfisicalPkiSubscriber", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] + public sealed class RemoveInfisicalPkiSubscriberCmdlet : InfisicalPkiWriteCmdletBase + { + private const string Component = "RemoveInfisicalPkiSubscriberCmdlet"; + + [Parameter(Mandatory = true, Position = 0, ValueFromPipelineByPropertyName = true)] + [Alias("SubscriberName", "Slug")] + public string Name { get; set; } + + [Parameter] public string ProjectId { get; set; } + [Parameter] public SwitchParameter PassThru { get; set; } + + protected override void ProcessRecord() + { + try + { + InfisicalConnection connection = InfisicalSessionManager.RequireCurrent(); + ProjectId = ResolveCertManagerProjectId(connection, ProjectId); + if (string.IsNullOrEmpty(ProjectId)) { return; } + + if (!ShouldProcess(Name, "Delete PKI subscriber")) { return; } + + InfisicalPkiManagementClient client = new InfisicalPkiManagementClient(HttpClient, Logger); + client.DeletePkiSubscriber(connection, ProjectId, Name); + + if (PassThru.IsPresent) { WriteObject(Name); } + } + catch (Exception exception) + { + WriteErrorForException(Component, "DeletePkiSubscriber", exception); + } + } + } +} diff --git a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointNames.cs b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointNames.cs index fad8a05..812c1e1 100644 --- a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointNames.cs +++ b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointNames.cs @@ -62,6 +62,31 @@ namespace PSInfisicalAPI.Endpoints public const string RetrieveCertificate = "RetrieveCertificate"; public const string GetCertificateBundle = "GetCertificateBundle"; public const string UpdateCertificateMetadata = "UpdateCertificateMetadata"; + + public const string CreateInternalCertificateAuthority = "CreateInternalCertificateAuthority"; + public const string UpdateInternalCertificateAuthority = "UpdateInternalCertificateAuthority"; + public const string DeleteInternalCertificateAuthority = "DeleteInternalCertificateAuthority"; + public const string GetCertificateAuthorityCsr = "GetCertificateAuthorityCsr"; + public const string SignIntermediateCertificateAuthority = "SignIntermediateCertificateAuthority"; + public const string ImportCertificateAuthorityCertificate = "ImportCertificateAuthorityCertificate"; + + public const string CreateCertificatePolicy = "CreateCertificatePolicy"; + public const string UpdateCertificatePolicy = "UpdateCertificatePolicy"; + public const string DeleteCertificatePolicy = "DeleteCertificatePolicy"; + + public const string CreateCertificateProfile = "CreateCertificateProfile"; + public const string UpdateCertificateProfile = "UpdateCertificateProfile"; + public const string DeleteCertificateProfile = "DeleteCertificateProfile"; + + public const string CreateCertificateApplication = "CreateCertificateApplication"; + public const string UpdateCertificateApplication = "UpdateCertificateApplication"; + public const string DeleteCertificateApplication = "DeleteCertificateApplication"; + public const string AddCertificateApplicationProfiles = "AddCertificateApplicationProfiles"; + public const string RemoveCertificateApplicationProfile = "RemoveCertificateApplicationProfile"; + + public const string CreatePkiSubscriber = "CreatePkiSubscriber"; + public const string UpdatePkiSubscriber = "UpdatePkiSubscriber"; + public const string DeletePkiSubscriber = "DeletePkiSubscriber"; public const string SignCertificateBySubscriber = "SignCertificateBySubscriber"; public const string SignCertificateByCa = "SignCertificateByCa"; public const string IssueCertificateByProfile = "IssueCertificateByProfile"; diff --git a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs index 714c16b..aa313d1 100644 --- a/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs +++ b/src/PSInfisicalAPI/Endpoints/InfisicalEndpointRegistry.cs @@ -715,6 +715,43 @@ namespace PSInfisicalAPI.Endpoints ContainsSecretMaterialInResponse = true }); + #region PKI configuration management + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreateInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/cert-manager/ca/internal", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreateInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/pki/ca/internal", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/cert-manager/ca/internal/{caId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/pki/ca/internal/{caId}", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeleteInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/cert-manager/ca/internal/{caId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeleteInternalCertificateAuthority, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/pki/ca/internal/{caId}", RequiresAuthorization = true }); + + // Standing up a subordinate takes three calls: Infisical creates it pending, then the CSR is signed + // by the parent and imported back. + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.GetCertificateAuthorityCsr, Resource = "Pki", Version = "v1", Method = "GET", Template = "/api/v1/pki/ca/{caId}/csr", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.SignIntermediateCertificateAuthority, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/pki/ca/{caId}/sign-intermediate", RequiresAuthorization = true, ContainsSecretMaterialInResponse = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.ImportCertificateAuthorityCertificate, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/pki/ca/{caId}/import-certificate", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreateCertificatePolicy, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/cert-manager/certificate-policies", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateCertificatePolicy, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/cert-manager/certificate-policies/{policyId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeleteCertificatePolicy, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/cert-manager/certificate-policies/{policyId}", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreateCertificateProfile, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/cert-manager/certificate-profiles", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateCertificateProfile, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/cert-manager/certificate-profiles/{profileId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeleteCertificateProfile, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/cert-manager/certificate-profiles/{profileId}", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreateCertificateApplication, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/cert-manager/applications", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateCertificateApplication, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/cert-manager/applications/{applicationId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeleteCertificateApplication, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/cert-manager/applications/{applicationId}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.AddCertificateApplicationProfiles, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/cert-manager/applications/{applicationId}/profiles", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.RemoveCertificateApplicationProfile, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/cert-manager/applications/{applicationId}/profiles/{profileId}", RequiresAuthorization = true }); + + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.CreatePkiSubscriber, Resource = "Pki", Version = "v1", Method = "POST", Template = "/api/v1/pki/subscribers", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdatePkiSubscriber, Resource = "Pki", Version = "v1", Method = "PATCH", Template = "/api/v1/pki/subscribers/{subscriberName}", RequiresAuthorization = true }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.DeletePkiSubscriber, Resource = "Pki", Version = "v1", Method = "DELETE", Template = "/api/v1/pki/subscribers/{subscriberName}", RequiresAuthorization = true }); + + #endregion + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.UpdateCertificateMetadata, diff --git a/src/PSInfisicalAPI/Pki/InfisicalPkiManagementClient.cs b/src/PSInfisicalAPI/Pki/InfisicalPkiManagementClient.cs new file mode 100644 index 0000000..0f40883 --- /dev/null +++ b/src/PSInfisicalAPI/Pki/InfisicalPkiManagementClient.cs @@ -0,0 +1,443 @@ +using System; +using System.Collections.Generic; +using PSInfisicalAPI.Connections; +using PSInfisicalAPI.Endpoints; +using PSInfisicalAPI.Errors; +using PSInfisicalAPI.Http; +using PSInfisicalAPI.Logging; +using PSInfisicalAPI.Models; +using PSInfisicalAPI.Serialization; + +namespace PSInfisicalAPI.Pki +{ + /// + /// Create, update, and delete operations for the objects that make up a Certificate Manager environment: + /// certificate authorities, policies, profiles, applications, and PKI subscribers. + /// + /// Kept apart from , which reads and issues. These are the operations that + /// change how a project is configured rather than what it has issued. + /// + /// + internal sealed class InfisicalPkiManagementClient + { + private const string Component = "PkiManagementClient"; + + private readonly InfisicalApiInvoker _invoker; + private readonly IInfisicalLogger _logger; + private readonly JsonInfisicalSerializer _serializer; + + public InfisicalPkiManagementClient(IInfisicalHttpClient httpClient, IInfisicalLogger logger) + { + if (httpClient == null) { throw new ArgumentNullException(nameof(httpClient)); } + _logger = logger ?? NullInfisicalLogger.Instance; + _invoker = new InfisicalApiInvoker(httpClient); + _serializer = new JsonInfisicalSerializer(); + } + + #region Certificate authority + + public InfisicalCertificateAuthority CreateInternalCertificateAuthority( + InfisicalConnection connection, + string projectId, + string name, + string type, + string commonName, + string organization, + string organizationalUnit, + string country, + string state, + string locality, + string keyAlgorithm, + string friendlyName, + string notBefore, + string notAfter, + int? maxPathLength) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(name)) { throw new InfisicalConfigurationException("Name is required."); } + if (string.IsNullOrEmpty(type)) { throw new InfisicalConfigurationException("Type is required."); } + + bool isRoot = string.Equals(type, "root", StringComparison.OrdinalIgnoreCase); + + InfisicalCreateInternalCaRequestDto request = new InfisicalCreateInternalCaRequestDto + { + ProjectId = projectId, + Name = name, + Status = "active", + Configuration = new InfisicalCreateInternalCaConfigurationDto + { + Type = type, + CommonName = commonName ?? string.Empty, + Organization = organization ?? string.Empty, + OrganizationalUnit = organizationalUnit ?? string.Empty, + Country = country ?? string.Empty, + State = state ?? string.Empty, + Locality = locality ?? string.Empty, + KeyAlgorithm = keyAlgorithm, + FriendlyName = friendlyName, + // Infisical self-signs on creation only for a root, and only when given an expiry. A + // subordinate is created pending a certificate and signed separately. + NotBefore = isRoot ? notBefore : null, + NotAfter = isRoot ? notAfter : null, + MaxPathLength = isRoot ? maxPathLength : null + } + }; + + return Execute( + connection, + InfisicalEndpointNames.CreateInternalCertificateAuthority, + null, + _serializer.Serialize(request), + string.Concat("create ", type, " certificate authority '", name, "'"), + body => + { + InfisicalInternalCaSingleResponseDto dto = _serializer.Deserialize(body); + InfisicalInternalCaResponseDto inner = dto != null ? (dto.CertificateAuthority ?? dto.Ca) : null; + return InfisicalCaMapper.Map(inner, projectId); + }); + } + + public InfisicalCertificateAuthority UpdateInternalCertificateAuthority(InfisicalConnection connection, string projectId, string caId, string name, string status) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(caId)) { throw new InfisicalConfigurationException("CaId is required."); } + if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(status)) + { + throw new InfisicalConfigurationException("Supply -Name or -Status; there is nothing else to update on an internal certificate authority."); + } + + InfisicalUpdateInternalCaRequestDto request = new InfisicalUpdateInternalCaRequestDto { ProjectId = projectId, Name = name, Status = status }; + + return Execute( + connection, + InfisicalEndpointNames.UpdateInternalCertificateAuthority, + new Dictionary { { "caId", caId } }, + _serializer.Serialize(request), + string.Concat("update certificate authority '", caId, "'"), + body => + { + InfisicalInternalCaSingleResponseDto dto = _serializer.Deserialize(body); + InfisicalInternalCaResponseDto inner = dto != null ? (dto.CertificateAuthority ?? dto.Ca) : null; + return InfisicalCaMapper.Map(inner, projectId); + }); + } + + public void DeleteInternalCertificateAuthority(InfisicalConnection connection, string projectId, string caId) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(caId)) { throw new InfisicalConfigurationException("CaId is required."); } + + Execute( + connection, + InfisicalEndpointNames.DeleteInternalCertificateAuthority, + new Dictionary { { "caId", caId } }, + null, + string.Concat("delete certificate authority '", caId, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + /// + /// Signs a newly created subordinate with its parent and imports the result, taking it from + /// pending-certificate to active. Infisical creates a subordinate without a certificate and exposes no + /// single call that does this. + /// + public void CompleteSubordinateCertificateAuthority(InfisicalConnection connection, string projectId, string subordinateCaId, string parentCaId, string notAfter, int maxPathLength) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(subordinateCaId)) { throw new InfisicalConfigurationException("CaId is required."); } + if (string.IsNullOrEmpty(parentCaId)) { throw new InfisicalConfigurationException("ParentCaId is required."); } + if (string.IsNullOrEmpty(notAfter)) { throw new InfisicalConfigurationException("NotAfter is required to sign a subordinate certificate authority."); } + + string csr = Execute( + connection, + InfisicalEndpointNames.GetCertificateAuthorityCsr, + new Dictionary { { "caId", subordinateCaId } }, + null, + string.Concat("read the certificate signing request for '", subordinateCaId, "'"), + body => + { + InfisicalCaCsrResponseDto dto = _serializer.Deserialize(body); + return dto != null ? dto.Csr : null; + }); + + if (string.IsNullOrEmpty(csr)) + { + throw new InfisicalApiException(string.Concat("Certificate authority '", subordinateCaId, "' returned no certificate signing request to sign.")); + } + + InfisicalSignIntermediateRequestDto signRequest = new InfisicalSignIntermediateRequestDto + { + Csr = csr, + NotAfter = notAfter, + MaxPathLength = maxPathLength + }; + + InfisicalSignIntermediateResponseDto signed = Execute( + connection, + InfisicalEndpointNames.SignIntermediateCertificateAuthority, + new Dictionary { { "caId", parentCaId } }, + _serializer.Serialize(signRequest), + string.Concat("sign '", subordinateCaId, "' with '", parentCaId, "'"), + body => _serializer.Deserialize(body)); + + if (signed == null || string.IsNullOrEmpty(signed.Certificate)) + { + throw new InfisicalApiException("Signing the subordinate certificate authority returned no certificate."); + } + + InfisicalImportCaCertificateRequestDto importRequest = new InfisicalImportCaCertificateRequestDto + { + Certificate = signed.Certificate, + CertificateChain = signed.CertificateChain + }; + + Execute( + connection, + InfisicalEndpointNames.ImportCertificateAuthorityCertificate, + new Dictionary { { "caId", subordinateCaId } }, + _serializer.Serialize(importRequest), + string.Concat("import the signed certificate onto '", subordinateCaId, "'"), + body => null); + } + + #endregion + + #region Certificate policy + + public InfisicalCertificatePolicy WriteCertificatePolicy(InfisicalConnection connection, string projectId, string policyId, InfisicalCertificatePolicyWriteRequestDto request) + { + Require(connection, projectId); + if (request == null) { throw new ArgumentNullException(nameof(request)); } + + bool creating = string.IsNullOrEmpty(policyId); + request.ProjectId = projectId; + + return Execute( + connection, + creating ? InfisicalEndpointNames.CreateCertificatePolicy : InfisicalEndpointNames.UpdateCertificatePolicy, + creating ? null : new Dictionary { { "policyId", policyId } }, + _serializer.Serialize(request), + creating ? string.Concat("create certificate policy '", request.Name, "'") : string.Concat("update certificate policy '", policyId, "'"), + body => + { + InfisicalCertificatePolicySingleResponseDto dto = _serializer.Deserialize(body); + return InfisicalCertificatePolicyMapper.Map(dto != null ? dto.CertificatePolicy : null, projectId); + }); + } + + public void DeleteCertificatePolicy(InfisicalConnection connection, string projectId, string policyId) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(policyId)) { throw new InfisicalConfigurationException("PolicyId is required."); } + + Execute( + connection, + InfisicalEndpointNames.DeleteCertificatePolicy, + new Dictionary { { "policyId", policyId } }, + null, + string.Concat("delete certificate policy '", policyId, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + #endregion + + #region Certificate profile + + public InfisicalCertificateProfile WriteCertificateProfile(InfisicalConnection connection, string projectId, string profileId, InfisicalCertificateProfileWriteRequestDto request) + { + Require(connection, projectId); + if (request == null) { throw new ArgumentNullException(nameof(request)); } + + bool creating = string.IsNullOrEmpty(profileId); + request.ProjectId = projectId; + + return Execute( + connection, + creating ? InfisicalEndpointNames.CreateCertificateProfile : InfisicalEndpointNames.UpdateCertificateProfile, + creating ? null : new Dictionary { { "profileId", profileId } }, + _serializer.Serialize(request), + creating ? string.Concat("create certificate profile '", request.Slug, "'") : string.Concat("update certificate profile '", profileId, "'"), + body => + { + InfisicalCertificateProfileSingleResponseDto dto = _serializer.Deserialize(body); + return InfisicalCertificateProfileMapper.Map(dto != null ? dto.CertificateProfile : null, projectId); + }); + } + + public void DeleteCertificateProfile(InfisicalConnection connection, string projectId, string profileId) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(profileId)) { throw new InfisicalConfigurationException("ProfileId is required."); } + + Execute( + connection, + InfisicalEndpointNames.DeleteCertificateProfile, + new Dictionary { { "profileId", profileId } }, + null, + string.Concat("delete certificate profile '", profileId, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + #endregion + + #region Certificate application + + public InfisicalCertificateApplication WriteCertificateApplication(InfisicalConnection connection, string projectId, string applicationId, InfisicalCertificateApplicationWriteRequestDto request) + { + Require(connection, projectId); + if (request == null) { throw new ArgumentNullException(nameof(request)); } + + bool creating = string.IsNullOrEmpty(applicationId); + request.ProjectId = projectId; + + return Execute( + connection, + creating ? InfisicalEndpointNames.CreateCertificateApplication : InfisicalEndpointNames.UpdateCertificateApplication, + creating ? null : new Dictionary { { "applicationId", applicationId } }, + _serializer.Serialize(request), + creating ? string.Concat("create certificate application '", request.Name, "'") : string.Concat("update certificate application '", applicationId, "'"), + body => + { + InfisicalCertificateApplicationSingleResponseDto dto = _serializer.Deserialize(body); + return InfisicalCertificateApplicationMapper.Map(dto != null ? dto.Application : null, projectId); + }); + } + + public void DeleteCertificateApplication(InfisicalConnection connection, string projectId, string applicationId) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(applicationId)) { throw new InfisicalConfigurationException("ApplicationId is required."); } + + Execute( + connection, + InfisicalEndpointNames.DeleteCertificateApplication, + new Dictionary { { "applicationId", applicationId } }, + null, + string.Concat("delete certificate application '", applicationId, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + public void AddCertificateApplicationProfiles(InfisicalConnection connection, string projectId, string applicationId, IEnumerable profileIds) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(applicationId)) { throw new InfisicalConfigurationException("ApplicationId is required."); } + + List ids = new List(); + if (profileIds != null) { foreach (string id in profileIds) { if (!string.IsNullOrEmpty(id)) { ids.Add(id); } } } + if (ids.Count == 0) { throw new InfisicalConfigurationException("At least one ProfileId is required."); } + + InfisicalCertificateApplicationWriteRequestDto request = new InfisicalCertificateApplicationWriteRequestDto { ProjectId = projectId, ProfileIds = ids }; + + Execute( + connection, + InfisicalEndpointNames.AddCertificateApplicationProfiles, + new Dictionary { { "applicationId", applicationId } }, + _serializer.Serialize(request), + string.Concat("attach ", ids.Count.ToString(System.Globalization.CultureInfo.InvariantCulture), " profile(s) to application '", applicationId, "'"), + body => null); + } + + public void RemoveCertificateApplicationProfile(InfisicalConnection connection, string projectId, string applicationId, string profileId) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(applicationId)) { throw new InfisicalConfigurationException("ApplicationId is required."); } + if (string.IsNullOrEmpty(profileId)) { throw new InfisicalConfigurationException("ProfileId is required."); } + + Execute( + connection, + InfisicalEndpointNames.RemoveCertificateApplicationProfile, + new Dictionary { { "applicationId", applicationId }, { "profileId", profileId } }, + null, + string.Concat("detach profile '", profileId, "' from application '", applicationId, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + #endregion + + #region PKI subscriber + + public InfisicalPkiSubscriber WritePkiSubscriber(InfisicalConnection connection, string projectId, string subscriberName, InfisicalPkiSubscriberWriteRequestDto request) + { + Require(connection, projectId); + if (request == null) { throw new ArgumentNullException(nameof(request)); } + + bool creating = string.IsNullOrEmpty(subscriberName); + request.ProjectId = projectId; + + return Execute( + connection, + creating ? InfisicalEndpointNames.CreatePkiSubscriber : InfisicalEndpointNames.UpdatePkiSubscriber, + creating ? null : new Dictionary { { "subscriberName", subscriberName } }, + _serializer.Serialize(request), + creating ? string.Concat("create PKI subscriber '", request.Name, "'") : string.Concat("update PKI subscriber '", subscriberName, "'"), + // The subscriber routes return the record unwrapped, matching how GetPkiSubscriber reads it. + body => InfisicalPkiSubscriberMapper.Map(_serializer.Deserialize(body), projectId)); + } + + public void DeletePkiSubscriber(InfisicalConnection connection, string projectId, string subscriberName) + { + Require(connection, projectId); + if (string.IsNullOrEmpty(subscriberName)) { throw new InfisicalConfigurationException("Name is required."); } + + Execute( + connection, + InfisicalEndpointNames.DeletePkiSubscriber, + new Dictionary { { "subscriberName", subscriberName } }, + null, + string.Concat("delete PKI subscriber '", subscriberName, "'"), + body => null, + BuildProjectQuery(projectId)); + } + + #endregion + + #region Plumbing + + private static void Require(InfisicalConnection connection, string projectId) + { + if (connection == null) { throw new ArgumentNullException(nameof(connection)); } + if (string.IsNullOrEmpty(projectId)) { throw new InfisicalConfigurationException("ProjectId is required."); } + } + + private static List> BuildProjectQuery(string projectId) + { + // DELETE carries no body, so the project has to travel on the query string for Infisical's + // project-injection middleware to see it. + return new List> { new KeyValuePair("projectId", projectId) }; + } + + private T Execute( + InfisicalConnection connection, + string endpointName, + Dictionary pathParameters, + string body, + string description, + Func project, + List> query = null) + { + try + { + _logger.Information(Component, string.Concat("Attempting to ", description, ". Please Wait...")); + InfisicalHttpResponse response = _invoker.InvokeWithCandidateFallback(connection, endpointName, endpointName, pathParameters, query, body); + string payload = response.Body; + response.Clear(); + + T result = project(payload); + _logger.Information(Component, string.Concat("Infisical operation succeeded: ", description, ".")); + return result; + } + catch (Exception) + { + _logger.Error(Component, string.Concat("Infisical operation failed: ", description, ".")); + throw; + } + } + + #endregion + } +} diff --git a/src/PSInfisicalAPI/Pki/InfisicalPkiManagementDtos.cs b/src/PSInfisicalAPI/Pki/InfisicalPkiManagementDtos.cs new file mode 100644 index 0000000..545d8c6 --- /dev/null +++ b/src/PSInfisicalAPI/Pki/InfisicalPkiManagementDtos.cs @@ -0,0 +1,152 @@ +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace PSInfisicalAPI.Pki +{ + #region Certificate authority + + internal sealed class InfisicalCreateInternalCaRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("name")] public string Name { get; set; } + [JsonProperty("status")] public string Status { get; set; } + [JsonProperty("configuration")] public InfisicalCreateInternalCaConfigurationDto Configuration { get; set; } + } + + internal sealed class InfisicalCreateInternalCaConfigurationDto + { + [JsonProperty("type")] public string Type { get; set; } + [JsonProperty("commonName")] public string CommonName { get; set; } + [JsonProperty("organization")] public string Organization { get; set; } + [JsonProperty("ou")] public string OrganizationalUnit { get; set; } + [JsonProperty("country")] public string Country { get; set; } + [JsonProperty("province")] public string State { get; set; } + [JsonProperty("locality")] public string Locality { get; set; } + [JsonProperty("keyAlgorithm")] public string KeyAlgorithm { get; set; } + [JsonProperty("friendlyName", NullValueHandling = NullValueHandling.Ignore)] public string FriendlyName { get; set; } + [JsonProperty("notBefore", NullValueHandling = NullValueHandling.Ignore)] public string NotBefore { get; set; } + [JsonProperty("notAfter", NullValueHandling = NullValueHandling.Ignore)] public string NotAfter { get; set; } + [JsonProperty("maxPathLength", NullValueHandling = NullValueHandling.Ignore)] public int? MaxPathLength { get; set; } + } + + internal sealed class InfisicalUpdateInternalCaRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } + [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } + } + + internal sealed class InfisicalCaCsrResponseDto + { + [JsonProperty("csr")] public string Csr { get; set; } + } + + internal sealed class InfisicalSignIntermediateRequestDto + { + [JsonProperty("csr")] public string Csr { get; set; } + [JsonProperty("notBefore", NullValueHandling = NullValueHandling.Ignore)] public string NotBefore { get; set; } + [JsonProperty("notAfter")] public string NotAfter { get; set; } + [JsonProperty("maxPathLength")] public int MaxPathLength { get; set; } + } + + internal sealed class InfisicalSignIntermediateResponseDto + { + [JsonProperty("certificate")] public string Certificate { get; set; } + [JsonProperty("certificateChain")] public string CertificateChain { get; set; } + [JsonProperty("issuingCaCertificate")] public string IssuingCaCertificate { get; set; } + [JsonProperty("serialNumber")] public string SerialNumber { get; set; } + } + + internal sealed class InfisicalImportCaCertificateRequestDto + { + [JsonProperty("certificate")] public string Certificate { get; set; } + [JsonProperty("certificateChain")] public string CertificateChain { get; set; } + } + + #endregion + + #region Certificate policy + + internal sealed class InfisicalCertificatePolicyWriteRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } + [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } + [JsonProperty("subject", NullValueHandling = NullValueHandling.Ignore)] public List> Subject { get; set; } + [JsonProperty("sans", NullValueHandling = NullValueHandling.Ignore)] public List> Sans { get; set; } + [JsonProperty("keyUsages", NullValueHandling = NullValueHandling.Ignore)] public Dictionary KeyUsages { get; set; } + [JsonProperty("extendedKeyUsages", NullValueHandling = NullValueHandling.Ignore)] public Dictionary ExtendedKeyUsages { get; set; } + [JsonProperty("algorithms", NullValueHandling = NullValueHandling.Ignore)] public Dictionary Algorithms { get; set; } + [JsonProperty("validity", NullValueHandling = NullValueHandling.Ignore)] public Dictionary Validity { get; set; } + [JsonProperty("basicConstraints", NullValueHandling = NullValueHandling.Ignore)] public Dictionary BasicConstraints { get; set; } + } + + internal sealed class InfisicalCertificatePolicySingleResponseDto + { + [JsonProperty("certificatePolicy")] public InfisicalCertificatePolicyResponseDto CertificatePolicy { get; set; } + } + + #endregion + + #region Certificate profile + + internal sealed class InfisicalCertificateProfileWriteRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("slug", NullValueHandling = NullValueHandling.Ignore)] public string Slug { get; set; } + [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } + [JsonProperty("caId", NullValueHandling = NullValueHandling.Ignore)] public string CaId { get; set; } + [JsonProperty("certificatePolicyId", NullValueHandling = NullValueHandling.Ignore)] public string CertificatePolicyId { get; set; } + [JsonProperty("enrollmentType", NullValueHandling = NullValueHandling.Ignore)] public string EnrollmentType { get; set; } + [JsonProperty("issuerType", NullValueHandling = NullValueHandling.Ignore)] public string IssuerType { get; set; } + [JsonProperty("apiConfig", NullValueHandling = NullValueHandling.Ignore)] public Dictionary ApiConfig { get; set; } + [JsonProperty("scepConfig", NullValueHandling = NullValueHandling.Ignore)] public Dictionary ScepConfig { get; set; } + [JsonProperty("estConfig", NullValueHandling = NullValueHandling.Ignore)] public Dictionary EstConfig { get; set; } + [JsonProperty("acmeConfig", NullValueHandling = NullValueHandling.Ignore)] public Dictionary AcmeConfig { get; set; } + [JsonProperty("defaults", NullValueHandling = NullValueHandling.Ignore)] public Dictionary Defaults { get; set; } + } + + internal sealed class InfisicalCertificateProfileSingleResponseDto + { + [JsonProperty("certificateProfile")] public InfisicalCertificateProfileResponseDto CertificateProfile { get; set; } + } + + #endregion + + #region Certificate application + + internal sealed class InfisicalCertificateApplicationWriteRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } + [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } + [JsonProperty("profileIds", NullValueHandling = NullValueHandling.Ignore)] public List ProfileIds { get; set; } + } + + internal sealed class InfisicalCertificateApplicationSingleResponseDto + { + [JsonProperty("application")] public InfisicalCertificateApplicationResponseDto Application { get; set; } + } + + #endregion + + #region PKI subscriber + + internal sealed class InfisicalPkiSubscriberWriteRequestDto + { + [JsonProperty("projectId", NullValueHandling = NullValueHandling.Ignore)] public string ProjectId { get; set; } + [JsonProperty("caId", NullValueHandling = NullValueHandling.Ignore)] public string CaId { get; set; } + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } + [JsonProperty("commonName", NullValueHandling = NullValueHandling.Ignore)] public string CommonName { get; set; } + [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } + [JsonProperty("ttl", NullValueHandling = NullValueHandling.Ignore)] public string Ttl { get; set; } + [JsonProperty("subjectAlternativeNames", NullValueHandling = NullValueHandling.Ignore)] public List SubjectAlternativeNames { get; set; } + [JsonProperty("keyUsages", NullValueHandling = NullValueHandling.Ignore)] public List KeyUsages { get; set; } + [JsonProperty("extendedKeyUsages", NullValueHandling = NullValueHandling.Ignore)] public List ExtendedKeyUsages { get; set; } + [JsonProperty("enableAutoRenewal", NullValueHandling = NullValueHandling.Ignore)] public bool? EnableAutoRenewal { get; set; } + [JsonProperty("autoRenewalPeriodInDays", NullValueHandling = NullValueHandling.Ignore)] public int? AutoRenewalPeriodInDays { get; set; } + [JsonProperty("properties", NullValueHandling = NullValueHandling.Ignore)] public Dictionary Properties { get; set; } + } + + #endregion +} -- 2.52.0 From 9f6e81607d2b95e126562723e581c9db6cd187c7 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 20:15:24 -0400 Subject: [PATCH 08/15] Publish the merged pull request description as the release body The release body was built solely from the CHANGELOG section, which is a terse changelog entry rather than the account of what changed. Gitea's pull_request webhook payload carries the description - PullRequest.Body is a documented field on the API struct - so it is now passed to the release step as PR_BODY and leads the release when present. The CHANGELOG entry is kept behind a fold rather than dropped, so a release records both the narrative and the versioned entry. With no description the body falls back to the CHANGELOG exactly as before, and with neither it says so. Co-author and generation trailers are stripped: they belong on the commit, not on a published release page. The description supplies its own headings, so no "## Changes" wrapper is added around it; the fallback branches emit one because a bare changelog fragment needs it. Verified by lifting the run: block straight out of the workflow and executing it, so the test exercises the shipped code rather than a copy: a description plus changelog produces the folded form, description-only omits the fold, changelog-only falls back, neither produces the placeholder, and the trailers are removed while the real content survives. Both workflows still parse as YAML with the same three jobs. Co-Authored-By: Claude Opus 5 --- .gitea/workflows/publish-psgallery.yml | 42 +++++++++++++++++++++++-- .github/workflows/publish-psgallery.yml | 42 +++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/publish-psgallery.yml b/.gitea/workflows/publish-psgallery.yml index 39447ec..ff816c5 100644 --- a/.gitea/workflows/publish-psgallery.yml +++ b/.gitea/workflows/publish-psgallery.yml @@ -129,6 +129,7 @@ jobs: COMMIT_SHA: ${{ github.sha }} PR_NUMBER: ${{ github.event.pull_request.number }} PR_TITLE: ${{ github.event.pull_request.title }} + PR_BODY: ${{ github.event.pull_request.body }} PR_AUTHOR: ${{ github.event.pull_request.user.login }} SERVER_URL: ${{ github.server_url }} RUN_ID: ${{ github.run_id }} @@ -175,7 +176,17 @@ jobs: Write-Host " CHANGELOG section length: $($changelogSection.Length) chars" Write-Host "==> [4/8] Building release body" - $changelogText = if ($changelogSection) { $changelogSection } else { '_No CHANGELOG section found for this version._' } + + # The merged pull request description is the account written for humans, so it leads when present. + # Trailing co-author and generation trailers are dropped; they belong on the commit, not the release. + $prBody = '' + if (-not [string]::IsNullOrWhiteSpace($env:PR_BODY)) { + $prBody = ($env:PR_BODY -replace '(?m)^\s*(Co-Authored-By|Co-authored-by):.*$', '') + $prBody = ($prBody -replace '(?m)^\s*(Generated with|🤖 Generated with).*$', '') + $prBody = $prBody.Trim() + } + Write-Host " PR description length: $($prBody.Length) chars" + $sb = New-Object System.Text.StringBuilder [void]$sb.AppendLine("**PSInfisicalAPI $($env:VERSION)**") [void]$sb.AppendLine('') @@ -188,8 +199,33 @@ jobs: [void]$sb.AppendLine("| Merged PR | [#$($env:PR_NUMBER) $($env:PR_TITLE)]($prUrl) by @$($env:PR_AUTHOR) |") [void]$sb.AppendLine("| Workflow run | [$($env:RUN_ID)]($runUrl) |") [void]$sb.AppendLine('') - [void]$sb.AppendLine('## Changes') - [void]$sb.AppendLine($changelogText) + + if ($prBody) { + # The description carries its own headings, so it is emitted without a wrapper. + [void]$sb.AppendLine($prBody) + + # Folded so the release leads with the narrative but still records the changelog entry. + if ($changelogSection) { + [void]$sb.AppendLine('') + [void]$sb.AppendLine('
') + [void]$sb.AppendLine("CHANGELOG entry for $($env:VERSION)") + [void]$sb.AppendLine('') + [void]$sb.AppendLine($changelogSection) + [void]$sb.AppendLine('') + [void]$sb.AppendLine('
') + } + } + elseif ($changelogSection) { + [void]$sb.AppendLine('## Changes') + [void]$sb.AppendLine('') + [void]$sb.AppendLine($changelogSection) + } + else { + [void]$sb.AppendLine('## Changes') + [void]$sb.AppendLine('') + [void]$sb.AppendLine('_No pull request description or CHANGELOG section found for this version._') + } + [void]$sb.AppendLine('') [void]$sb.AppendLine('## Install') [void]$sb.AppendLine('```powershell') diff --git a/.github/workflows/publish-psgallery.yml b/.github/workflows/publish-psgallery.yml index 4a211ed..2ec2a5b 100644 --- a/.github/workflows/publish-psgallery.yml +++ b/.github/workflows/publish-psgallery.yml @@ -131,6 +131,7 @@ jobs: COMMIT_SHA: ${{ github.sha }} PR_NUMBER: ${{ github.event.pull_request.number }} PR_TITLE: ${{ github.event.pull_request.title }} + PR_BODY: ${{ github.event.pull_request.body }} PR_AUTHOR: ${{ github.event.pull_request.user.login }} SERVER_URL: ${{ github.server_url }} RUN_ID: ${{ github.run_id }} @@ -177,7 +178,17 @@ jobs: Write-Host " CHANGELOG section length: $($changelogSection.Length) chars" Write-Host "==> [4/8] Building release body" - $changelogText = if ($changelogSection) { $changelogSection } else { '_No CHANGELOG section found for this version._' } + + # The merged pull request description is the account written for humans, so it leads when present. + # Trailing co-author and generation trailers are dropped; they belong on the commit, not the release. + $prBody = '' + if (-not [string]::IsNullOrWhiteSpace($env:PR_BODY)) { + $prBody = ($env:PR_BODY -replace '(?m)^\s*(Co-Authored-By|Co-authored-by):.*$', '') + $prBody = ($prBody -replace '(?m)^\s*(Generated with|🤖 Generated with).*$', '') + $prBody = $prBody.Trim() + } + Write-Host " PR description length: $($prBody.Length) chars" + $sb = New-Object System.Text.StringBuilder [void]$sb.AppendLine("**PSInfisicalAPI $($env:VERSION)**") [void]$sb.AppendLine('') @@ -190,8 +201,33 @@ jobs: [void]$sb.AppendLine("| Merged PR | [#$($env:PR_NUMBER) $($env:PR_TITLE)]($prUrl) by @$($env:PR_AUTHOR) |") [void]$sb.AppendLine("| Workflow run | [$($env:RUN_ID)]($runUrl) |") [void]$sb.AppendLine('') - [void]$sb.AppendLine('## Changes') - [void]$sb.AppendLine($changelogText) + + if ($prBody) { + # The description carries its own headings, so it is emitted without a wrapper. + [void]$sb.AppendLine($prBody) + + # Folded so the release leads with the narrative but still records the changelog entry. + if ($changelogSection) { + [void]$sb.AppendLine('') + [void]$sb.AppendLine('
') + [void]$sb.AppendLine("CHANGELOG entry for $($env:VERSION)") + [void]$sb.AppendLine('') + [void]$sb.AppendLine($changelogSection) + [void]$sb.AppendLine('') + [void]$sb.AppendLine('
') + } + } + elseif ($changelogSection) { + [void]$sb.AppendLine('## Changes') + [void]$sb.AppendLine('') + [void]$sb.AppendLine($changelogSection) + } + else { + [void]$sb.AppendLine('## Changes') + [void]$sb.AppendLine('') + [void]$sb.AppendLine('_No pull request description or CHANGELOG section found for this version._') + } + [void]$sb.AppendLine('') [void]$sb.AppendLine('## Install') [void]$sb.AppendLine('```powershell') -- 2.52.0 From f2a1492b66de5bc0a9bf5f75381e9f11ab304c8d Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 20:36:02 -0400 Subject: [PATCH 09/15] Actually commit the seeding script, and let it authenticate with a token The seeding script was never in the repository. .gitignore carries "scripts/" for local helper scripts, core.ignorecase is true on Windows, so Scripts/ matched it and git add -A silently skipped the file. The commit that claimed to add the script contained only its CHANGELOG and README entries; the script itself existed on disk and nowhere else. It now lives in Tools/, which is not ignored, and the ignore rule says why so this cannot swallow shipped tooling again. The script also gains an -AccessToken parameter set alongside -ClientId/-ClientSecret, so a throwaway instance can be seeded with the bearer token from a signed-in browser session rather than by first creating a machine identity. The two are mutually exclusive parameter sets, so supplying both is rejected at binding rather than silently preferring one. A supplied token is proven with a single read before anything is created. An expired browser token is the common case, and failing there is much better than failing midway through building a CA hierarchy and leaving a half-seeded project behind; the error says as much and suggests copying a fresh one. Renaming the internal token variable was not cosmetic. The script held the bearer token in $Script:AccessToken, the same name as the new parameter, so PowerShell applied the parameter's [ValidateNotNull()] to every assignment and both authentication paths failed with "the value $null is not a valid value for the AccessToken variable" before reaching the network. It is now $Script:BearerToken. Co-Authored-By: Claude Opus 5 --- .gitignore | 3 +- CHANGELOG.md | 2 +- ...ialize-InfisicalCertManagerEnvironment.ps1 | 823 ++++++++++++++++++ 3 files changed, 826 insertions(+), 2 deletions(-) create mode 100644 Tools/Initialize-InfisicalCertManagerEnvironment.ps1 diff --git a/.gitignore b/.gitignore index 707e68d..dac35c8 100644 --- a/.gitignore +++ b/.gitignore @@ -30,5 +30,6 @@ TestResults/ *.trx *.coverage -## Local helper scripts (not part of the module) +## Local helper scripts (not part of the module). Case-insensitive on Windows, so this also matches +## Scripts/ - shipped tooling lives in Tools/ instead. scripts/ diff --git a/CHANGELOG.md b/CHANGELOG.md index c43977d..85a79c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -116,7 +116,7 @@ _Build produced from commit 62131e750109._ ### Added (tooling) -- `Scripts/Initialize-InfisicalCertManagerEnvironment.ps1` seeds a Certificate Manager project, CA hierarchy, certificate policies, API enrollment profiles, and a certificate application from one declarative configuration block, taking only a base URI, client id, and client secret. Idempotent and `-WhatIf`-aware. Seeds an RSA hierarchy for SCCM/MECM server and client authentication, and an ECDSA P-384 hierarchy for server/client authentication and code signing. +- `Tools/Initialize-InfisicalCertManagerEnvironment.ps1` seeds a Certificate Manager project, CA hierarchy, certificate policies, API enrollment profiles, and a certificate application from one declarative configuration block, taking only a base URI, client id, and client secret. Idempotent and `-WhatIf`-aware. Seeds an RSA hierarchy for SCCM/MECM server and client authentication, and an ECDSA P-384 hierarchy for server/client authentication and code signing. - The script **adopts an organization's existing Certificate Manager project** rather than creating one when the configured slug does not match. Creating a second would have succeeded and then been unable to hold applications, since they are served only from the organization's active project. - It creates a certificate application and attaches the seeded profiles to it, so the result is navigable by `Get-InfisicalCertificateProfile -ApplicationId`. diff --git a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 new file mode 100644 index 0000000..5049197 --- /dev/null +++ b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 @@ -0,0 +1,823 @@ +<# +.SYNOPSIS + Seeds an Infisical Certificate Manager project with a CA hierarchy, certificate policies, and API + enrollment profiles. + +.DESCRIPTION + Stands up a complete cert-manager environment from a single declarative configuration block, so a new + Infisical instance can be brought to a known state without clicking through the UI. + + What it creates, in dependency order: + + 1. A cert-manager project. + 2. A root CA and a subordinate CA. Infisical does not sign a subordinate on creation, so the script + performs the full dance itself: create (status pending-certificate) -> GET the CSR -> sign it with + the root -> import the signed certificate and chain back onto the subordinate. + 3. Certificate policies, which constrain subject attributes, key usages, extended key usages, key + algorithms, and maximum validity. + 4. Certificate profiles, which bind a policy to an issuing CA and expose it for API enrollment. + + Two sets are seeded by default: an RSA hierarchy carrying server and client authentication for + SCCM/MECM, and an ECDSA P-384 hierarchy carrying server, client, and code signing. + + The script is idempotent. Every object is looked up by its natural key before creation, so a re-run + reports what already exists and creates only what is missing. It is safe to run repeatedly while + building out a configuration. + + Certificates are requested against a profile with Request-InfisicalCertificate -CertificateProfileId. + Profiles are used rather than direct CA issuance because Infisical creates every CA with direct + issuance disabled and exposes no API to enable it; profile issuance is the only path that does not + consult that flag. + +.PARAMETER BaseUri + Base URI of the Infisical instance, for example https://infisical.contoso.com. + +.PARAMETER ClientId + Universal Auth machine identity client id. + +.PARAMETER ClientSecret + Universal Auth machine identity client secret, as a SecureString. + +.PARAMETER AccessToken + An existing bearer token, as a SecureString, used instead of -ClientId and -ClientSecret. Accepts a + machine identity token or the token from a signed-in browser session, which avoids creating a machine + identity just to seed a throwaway instance. The token is proven against the API before anything is + created, so an expired one fails immediately rather than midway through building a CA hierarchy. + + To take one from a browser session: sign in to Infisical, open the developer tools Network tab, select + any request to /api/, and copy the value after "Bearer " from its Authorization header. + +.PARAMETER OrganizationId + Organization to create the project under. Optional when the identity is scoped to a single + organization, in which case it is resolved automatically. + +.PARAMETER SkipCertificateCheck + Accepts an untrusted TLS certificate on the Infisical endpoint. For lab instances only. + +.EXAMPLE + $Secret = Read-Host -AsSecureString 'Client Secret' + .\Initialize-InfisicalCertManagerEnvironment.ps1 -BaseUri 'https://infisical.contoso.com' ` + -ClientId '00000000-0000-0000-0000-000000000000' -ClientSecret $Secret -WhatIf + + Shows every object that would be created without changing anything. Run this first. + +.EXAMPLE + $Token = Read-Host -AsSecureString 'Access Token' + .\Initialize-InfisicalCertManagerEnvironment.ps1 -BaseUri 'https://infisical.contoso.com' -AccessToken $Token -WhatIf + + Plans the same run using a token pasted from a browser session, with no machine identity involved. + +.EXAMPLE + .\Initialize-InfisicalCertManagerEnvironment.ps1 -BaseUri 'https://infisical.contoso.com' ` + -ClientId '00000000-0000-0000-0000-000000000000' -ClientSecret $Secret + + Seeds the environment, then emits an object describing everything created or found. + +.NOTES + Requires no modules. PSInfisicalAPI consumes the result; it is not needed to produce it. +#> + +[CmdletBinding(SupportsShouldProcess = $True, DefaultParameterSetName = 'UniversalAuth')] +param( + [Parameter(Mandatory = $True)] + [ValidateNotNullOrEmpty()] + [String]$BaseUri, + + [Parameter(Mandatory = $True, ParameterSetName = 'UniversalAuth')] + [ValidateNotNullOrEmpty()] + [String]$ClientId, + + [Parameter(Mandatory = $True, ParameterSetName = 'UniversalAuth')] + [ValidateNotNull()] + [System.Security.SecureString]$ClientSecret, + + [Parameter(Mandatory = $True, ParameterSetName = 'Token')] + [ValidateNotNull()] + [System.Security.SecureString]$AccessToken, + + [Parameter(Mandatory = $False)] + [String]$OrganizationId, + + [Parameter(Mandatory = $False)] + [Switch]$SkipCertificateCheck +) + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version Latest + +#region Configuration + <# + Everything the script creates is described here. Keys map to Infisical concepts; each takes a list + of dictionaries so a set can be extended by adding an entry rather than by editing code. + + Cross-references are by name: a CertificateAuthority names its Parent, and a CertificateProfile + names its CertificateAuthority and CertificatePolicy. The script resolves those to ids at runtime, + so the block reads as a description of the environment rather than a sequence of API calls. + + Enumeration values are the ones Infisical accepts verbatim: + KeyAlgorithm RSA_2048 | RSA_3072 | RSA_4096 | EC_prime256v1 | EC_secp384r1 | EC_secp521r1 + KeyUsages digital_signature | key_encipherment | non_repudiation | data_encipherment | + key_agreement | key_cert_sign | crl_sign | encipher_only | decipher_only + ExtendedKeyUsages server_auth | client_auth | code_signing | email_protection | ocsp_signing | + time_stamping | any_purpose + SubjectAttribute common_name | organization | country | state | locality | + organizational_unit | domain_component + SanType dns_name | ip_address | email | uri | upn + #> + + $Configuration = [Ordered]@{ + + <# + Used only when the organization has no Certificate Manager project yet. If one already exists it is + adopted and these values are ignored, because applications are served from a single project per + organization and a second one could not hold them. + #> + Project = [Ordered]@{ + Name = 'Certificate Manager' + Slug = 'certificate-manager' + Description = 'Seeded PKI environment for endpoint and workload certificates.' + } + + <# + The application profiles are grouped under, which is what + Get-InfisicalCertificateProfile -ApplicationId scopes to. Set Name to '' to skip. + #> + Application = [Ordered]@{ + Name = 'platform' + Description = 'Endpoint and workload certificate enrollment.' + CertificateProfiles = @('mecm-server-client-auth', 'ec-server-client-auth', 'ec-code-signing') + } + + Organization = [Ordered]@{ + Name = 'Contoso' + OrganizationalUnit = 'IT' + Country = 'US' + State = '' + Locality = '' + } + + CertificateAuthorities = @( + [Ordered]@{ + Name = 'rsa-root-ca' + Type = 'root' + Parent = $Null + CommonName = 'Contoso RSA Root Certificate Authority' + KeyAlgorithm = 'RSA_2048' + ValidityYears = 10 + MaxPathLength = 1 + } + [Ordered]@{ + Name = 'rsa-issuing-ca' + Type = 'intermediate' + Parent = 'rsa-root-ca' + CommonName = 'Contoso RSA Issuing Certificate Authority' + KeyAlgorithm = 'RSA_2048' + ValidityYears = 5 + MaxPathLength = 0 + } + [Ordered]@{ + Name = 'ec-root-ca' + Type = 'root' + Parent = $Null + CommonName = 'Contoso EC Root Certificate Authority' + KeyAlgorithm = 'EC_secp384r1' + ValidityYears = 10 + MaxPathLength = 1 + } + [Ordered]@{ + Name = 'ec-issuing-ca' + Type = 'intermediate' + Parent = 'ec-root-ca' + CommonName = 'Contoso EC Issuing Certificate Authority' + KeyAlgorithm = 'EC_secp384r1' + ValidityYears = 5 + MaxPathLength = 0 + } + ) + + CertificatePolicies = @( + <# + Subject and SubjectAltNames are deliberately left out below. A constraint is only sent when + it carries values, and omitting these leaves the common name and SAN list unconstrained, + which is what fleet enrollment needs: every machine presents its own name. + + To constrain them, add entries carrying values, for example: + Subject = @( [Ordered]@{ Type = 'organization'; Allowed = @('Contoso') } ) + SubjectAltNames = @( [Ordered]@{ Type = 'dns_name'; Allowed = @('*.contoso.com') } ) + #> + [Ordered]@{ + Name = 'mecm-server-client-auth' + Description = 'SCCM/MECM site systems and clients. RSA, server and client authentication.' + MaxValidity = '365d' + KeyAlgorithms = @('RSA_2048', 'RSA_3072', 'RSA_4096') + KeyUsages = [Ordered]@{ Required = @('digital_signature', 'key_encipherment') } + ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } + Subject = @() + SubjectAltNames = @() + } + [Ordered]@{ + Name = 'ec-server-client-auth' + Description = 'General workload certificates. ECDSA P-384, server and client authentication.' + MaxValidity = '90d' + KeyAlgorithms = @('EC_secp384r1') + KeyUsages = [Ordered]@{ Required = @('digital_signature') } + ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } + Subject = @() + SubjectAltNames = @() + } + [Ordered]@{ + Name = 'ec-code-signing' + Description = 'Code signing. ECDSA P-384, code signing only.' + MaxValidity = '365d' + KeyAlgorithms = @('EC_secp384r1') + KeyUsages = [Ordered]@{ Required = @('digital_signature') } + ExtendedKeyUsages = [Ordered]@{ Required = @('code_signing'); Denied = @('server_auth', 'client_auth') } + Subject = @() + SubjectAltNames = @() + } + ) + + CertificateProfiles = @( + [Ordered]@{ + Slug = 'mecm-server-client-auth' + Description = 'API enrollment for SCCM/MECM site systems and clients.' + CertificateAuthority = 'rsa-issuing-ca' + CertificatePolicy = 'mecm-server-client-auth' + AutoRenew = $True + RenewBeforeDays = 14 + } + [Ordered]@{ + Slug = 'ec-server-client-auth' + Description = 'API enrollment for general workload certificates.' + CertificateAuthority = 'ec-issuing-ca' + CertificatePolicy = 'ec-server-client-auth' + AutoRenew = $True + RenewBeforeDays = 14 + } + [Ordered]@{ + Slug = 'ec-code-signing' + Description = 'API enrollment for code signing certificates.' + CertificateAuthority = 'ec-issuing-ca' + CertificatePolicy = 'ec-code-signing' + AutoRenew = $False + RenewBeforeDays = $Null + } + ) + } +#endregion + +#region Infrastructure + $Script:BearerToken = $Null + $Script:ApiRoot = $BaseUri.TrimEnd('/') + + function Write-Step { + param([String]$Message, [String]$Status = 'Info') + $prefix = switch ($Status) { + 'Created' { ' [+]' } + 'Exists' { ' [=]' } + 'WhatIf' { ' [?]' } + 'Sub' { ' ' } + default { '==>' } + } + Write-Host ("{0} {1}" -f $prefix, $Message) + } + + function ConvertFrom-SecureStringToPlainText { + param([System.Security.SecureString]$Value) + $pointer = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($Value) + try { return [System.Runtime.InteropServices.Marshal]::PtrToStringUni($pointer) } + finally { [System.Runtime.InteropServices.Marshal]::ZeroFreeGlobalAllocUnicode($pointer) } + } + + function Invoke-InfisicalApi { + <# + Single choke point for every call. Adds the bearer token, converts the body, and surfaces the + API's own error text, which is far more useful than the raw status line. + #> + param( + [Parameter(Mandatory = $True)][String]$Method, + [Parameter(Mandatory = $True)][String]$Path, + [Parameter(Mandatory = $False)]$Body, + [Parameter(Mandatory = $False)][Switch]$NoAuth + ) + + $uri = "$($Script:ApiRoot)$Path" + $parameters = @{ + Method = $Method + Uri = $uri + ContentType = 'application/json' + ErrorAction = 'Stop' + } + + if (-not $NoAuth.IsPresent) { + $parameters.Headers = @{ Authorization = "Bearer $($Script:BearerToken)" } + } + + if ($Null -ne $Body) { + $parameters.Body = ($Body | ConvertTo-Json -Depth 12 -Compress) + } + + if ($SkipCertificateCheck.IsPresent -and $PSVersionTable.PSVersion.Major -ge 6) { + $parameters.SkipCertificateCheck = $True + } + + try { + return Invoke-RestMethod @parameters + } + catch { + $detail = $Null + try { + $response = $_.Exception.Response + if ($Null -ne $response) { + $stream = $response.GetResponseStream() + if ($Null -ne $stream) { + $stream.Position = 0 + $detail = (New-Object System.IO.StreamReader($stream)).ReadToEnd() + } + } + } catch { } + + if ([String]::IsNullOrWhiteSpace($detail) -and $_.ErrorDetails) { $detail = $_.ErrorDetails.Message } + $message = "$Method $Path failed: $($_.Exception.Message)" + if (-not [String]::IsNullOrWhiteSpace($detail)) { $message = "$message`n API said: $detail" } + throw $message + } + } + + function Connect-InfisicalApi { + Write-Step "Authenticating to $($Script:ApiRoot)" + + if ($PSCmdlet.ParameterSetName -eq 'Token') { + # A token supplied directly is used as-is. This accepts a machine identity token or the bearer token + # from a signed-in browser session, which is the quickest way to seed a throwaway instance. + $Script:BearerToken = ConvertFrom-SecureStringToPlainText -Value $AccessToken + + # Proven before anything is created, so an expired or mistyped token fails here rather than midway + # through building a CA hierarchy. + try { + $null = Invoke-InfisicalApi -Method 'GET' -Path '/api/v2/organizations' + } + catch { + $Script:BearerToken = $Null + throw "The supplied -AccessToken was rejected by $($Script:ApiRoot). If it came from a browser session it may have expired; copy a fresh one. Underlying error: $($_)" + } + + Write-Step 'Authenticated with the supplied token.' -Status 'Sub' + return + } + + $body = @{ + clientId = $ClientId + clientSecret = (ConvertFrom-SecureStringToPlainText -Value $ClientSecret) + } + + $response = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/auth/universal-auth/login' -Body $body -NoAuth + if ($Null -eq $response -or [String]::IsNullOrWhiteSpace($response.accessToken)) { + throw 'Authentication succeeded but returned no access token.' + } + + $Script:BearerToken = $response.accessToken + Write-Step 'Authenticated with universal auth.' -Status 'Sub' + } + + function Resolve-OrganizationId { + if (-not [String]::IsNullOrWhiteSpace($OrganizationId)) { return $OrganizationId } + + $response = Invoke-InfisicalApi -Method 'GET' -Path '/api/v2/organizations' + $organizations = @($response.organizations) + if ($organizations.Count -eq 0) { throw 'No organizations are visible to this identity; pass -OrganizationId.' } + if ($organizations.Count -gt 1) { + $names = ($organizations | ForEach-Object { "$($_.name) ($($_.id))" }) -join ', ' + throw "This identity can see multiple organizations; pass -OrganizationId. Visible: $names" + } + + Write-Step "Resolved organization '$($organizations[0].name)' ($($organizations[0].id))." -Status 'Sub' + return $organizations[0].id + } +#endregion + +#region Seeding + function Get-SeededProject { + <# + Adopts the organization's existing Certificate Manager project rather than creating one whenever the + configured slug happens not to match. + + This matters more than it looks. Certificate applications are served only from the organization's + active Certificate Manager project, so a second one would be created successfully and then be unable + to hold applications at all. An organization wants one, and the script's job is to populate it. + #> + param([String]$OrgId) + + Write-Step 'Project' + + $response = Invoke-InfisicalApi -Method 'GET' -Path '/api/v1/projects' + $all = @($response.projects) + @($response.workspaces) | Where-Object { $Null -ne $_ } + $certManagerProjects = @($all | Where-Object { $_.type -eq 'cert-manager' }) + + if ($certManagerProjects.Count -gt 0) { + $existing = $certManagerProjects | Where-Object { $_.slug -eq $Configuration.Project.Slug } | Select-Object -First 1 + if ($Null -eq $existing) { $existing = $certManagerProjects[0] } + + Write-Step "project '$($existing.name)' ($($existing.id))" -Status 'Exists' + if ($existing.slug -ne $Configuration.Project.Slug) { + Write-Step "adopting it rather than creating '$($Configuration.Project.Slug)'; an organization serves applications from one Certificate Manager project" -Status 'Sub' + } + if ($certManagerProjects.Count -gt 1) { + Write-Step "note: this organization has $($certManagerProjects.Count) Certificate Manager projects; applications work only in the active one" -Status 'Sub' + } + + return $existing + } + + if (-not $PSCmdlet.ShouldProcess($Configuration.Project.Name, 'Create cert-manager project')) { + Write-Step "would create project '$($Configuration.Project.Name)' (this organization has none)" -Status 'WhatIf' + return $Null + } + + $body = @{ + projectName = $Configuration.Project.Name + slug = $Configuration.Project.Slug + type = 'cert-manager' + projectDescription = $Configuration.Project.Description + } + + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v2/workspace' -Body $body + $project = $created.project + Write-Step "project '$($project.name)' ($($project.id))" -Status 'Created' + return $project + } + + function Get-SeededApplication { + <# + Applications are how the console groups profiles, members, and certificates, and how + Get-InfisicalCertificateProfile -ApplicationId scopes a lookup. Seeding profiles without one leaves + an environment the documented workflow cannot navigate. + #> + param([String]$ProjectId, $Profiles) + + Write-Step 'Certificate application' + + if ([String]::IsNullOrWhiteSpace($Configuration.Application.Name)) { + Write-Step 'no application configured; skipping' -Status 'Sub' + return $Null + } + + $profileIds = @($Configuration.Application.CertificateProfiles | + Where-Object { $Profiles.Contains($_) } | + ForEach-Object { $Profiles[$_].id }) + + $existing = $Null + if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { + $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/applications?projectId=$ProjectId" + $existing = @($response.applications) | Where-Object { $_.name -eq $Configuration.Application.Name } | Select-Object -First 1 + } + + if ($Null -ne $existing) { + Write-Step "application '$($existing.name)' ($($existing.id))" -Status 'Exists' + Add-MissingApplicationProfiles -ProjectId $ProjectId -Application $existing -ProfileIds $profileIds + return $existing + } + + if ([String]::IsNullOrWhiteSpace($ProjectId) -or + -not $PSCmdlet.ShouldProcess($Configuration.Application.Name, 'Create certificate application')) { + Write-Step "would create application '$($Configuration.Application.Name)' with $($profileIds.Count) profile(s)" -Status 'WhatIf' + return $Null + } + + $body = [Ordered]@{ + projectId = $ProjectId + name = $Configuration.Application.Name + description = $Configuration.Application.Description + } + if ($profileIds.Count -gt 0) { $body.profileIds = $profileIds } + + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/applications' -Body $body + $application = $created.application + Write-Step "application '$($application.name)' ($($application.id)) with $($profileIds.Count) profile(s)" -Status 'Created' + return $application + } + + function Add-MissingApplicationProfiles { + param([String]$ProjectId, $Application, $ProfileIds) + + if (@($ProfileIds).Count -eq 0) { return } + + $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/applications/$($Application.id)/profiles?projectId=$ProjectId" + $attached = @($response.profiles | ForEach-Object { $_.id }) + $missing = @($ProfileIds | Where-Object { $attached -notcontains $_ }) + + if ($missing.Count -eq 0) { + Write-Step "all $(@($ProfileIds).Count) configured profile(s) already attached" -Status 'Sub' + return + } + + if (-not $PSCmdlet.ShouldProcess($Application.name, "Attach $($missing.Count) profile(s)")) { + Write-Step "would attach $($missing.Count) profile(s)" -Status 'WhatIf' + return + } + + $Null = Invoke-InfisicalApi -Method 'POST' -Path "/api/v1/cert-manager/applications/$($Application.id)/profiles" -Body @{ projectId = $ProjectId; profileIds = $missing } + Write-Step "attached $($missing.Count) profile(s)" -Status 'Sub' + } + + function Get-SeededCertificateAuthorities { + param([String]$ProjectId) + + Write-Step 'Certificate authorities' + $resolved = [Ordered]@{} + + $existingByName = @{} + if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { + $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/ca/internal?projectId=$ProjectId" + foreach ($ca in @($response.certificateAuthorities)) { $existingByName[$ca.name] = $ca } + } + + foreach ($definition in $Configuration.CertificateAuthorities) { + if ($existingByName.ContainsKey($definition.Name)) { + $existing = $existingByName[$definition.Name] + $resolved[$definition.Name] = $existing + Write-Step "CA '$($definition.Name)' ($($existing.id)) status=$($existing.status)" -Status 'Exists' + continue + } + + if ([String]::IsNullOrWhiteSpace($ProjectId) -or + -not $PSCmdlet.ShouldProcess($definition.Name, "Create $($definition.Type) CA")) { + Write-Step "would create $($definition.Type) CA '$($definition.Name)' ($($definition.KeyAlgorithm))" -Status 'WhatIf' + continue + } + + $notAfter = [DateTime]::UtcNow.AddYears($definition.ValidityYears).ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + + $configuration = [Ordered]@{ + type = $definition.Type + commonName = $definition.CommonName + organization = $Configuration.Organization.Name + ou = $Configuration.Organization.OrganizationalUnit + country = $Configuration.Organization.Country + province = $Configuration.Organization.State + locality = $Configuration.Organization.Locality + keyAlgorithm = $definition.KeyAlgorithm + } + + # Infisical only self-signs on creation for a root, and only when it is given an expiry. A + # subordinate is created pending and signed in the step below. + if ($definition.Type -eq 'root') { + $configuration.notAfter = $notAfter + $configuration.maxPathLength = $definition.MaxPathLength + } + + $body = @{ + projectId = $ProjectId + name = $definition.Name + status = 'active' + configuration = $configuration + } + + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/ca/internal' -Body $body + $ca = $created.certificateAuthority + $resolved[$definition.Name] = $ca + Write-Step "$($definition.Type) CA '$($definition.Name)' ($($ca.id))" -Status 'Created' + + if ($definition.Type -eq 'intermediate') { + Complete-SubordinateCertificateAuthority -Definition $definition -Subordinate $ca -Resolved $resolved -NotAfter $notAfter + } + } + + return $resolved + } + + function Complete-SubordinateCertificateAuthority { + <# + A subordinate is created with status pending-certificate and no certificate of its own. + Infisical exposes no endpoint that creates and signs in one call, so the CSR is fetched, signed + by the parent, and imported back. + #> + param($Definition, $Subordinate, $Resolved, [String]$NotAfter) + + if ([String]::IsNullOrWhiteSpace($Definition.Parent)) { + throw "Subordinate CA '$($Definition.Name)' has no Parent configured." + } + if (-not $Resolved.Contains($Definition.Parent)) { + throw "Subordinate CA '$($Definition.Name)' names parent '$($Definition.Parent)', which was not created or found." + } + + $parent = $Resolved[$Definition.Parent] + + Write-Step "signing '$($Definition.Name)' with '$($Definition.Parent)'" -Status 'Sub' + + $csrResponse = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/pki/ca/$($Subordinate.id)/csr" + if ([String]::IsNullOrWhiteSpace($csrResponse.csr)) { + throw "CA '$($Definition.Name)' returned no CSR to sign." + } + + $signBody = @{ + csr = $csrResponse.csr + notAfter = $NotAfter + maxPathLength = $Definition.MaxPathLength + } + + $signed = Invoke-InfisicalApi -Method 'POST' -Path "/api/v1/pki/ca/$($parent.id)/sign-intermediate" -Body $signBody + + $importBody = @{ + certificate = $signed.certificate + certificateChain = $signed.certificateChain + } + + $Null = Invoke-InfisicalApi -Method 'POST' -Path "/api/v1/pki/ca/$($Subordinate.id)/import-certificate" -Body $importBody + Write-Step "'$($Definition.Name)' signed and activated" -Status 'Sub' + } + + function Get-SeededCertificatePolicies { + param([String]$ProjectId) + + Write-Step 'Certificate policies' + $resolved = [Ordered]@{} + + $existingByName = @{} + if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { + $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/certificate-policies?projectId=$ProjectId" + foreach ($policy in @($response.certificatePolicies)) { $existingByName[$policy.name] = $policy } + } + + foreach ($definition in $Configuration.CertificatePolicies) { + if ($existingByName.ContainsKey($definition.Name)) { + $existing = $existingByName[$definition.Name] + $resolved[$definition.Name] = $existing + Write-Step "policy '$($definition.Name)' ($($existing.id))" -Status 'Exists' + continue + } + + if ([String]::IsNullOrWhiteSpace($ProjectId) -or + -not $PSCmdlet.ShouldProcess($definition.Name, 'Create certificate policy')) { + Write-Step "would create policy '$($definition.Name)'" -Status 'WhatIf' + continue + } + + $body = [Ordered]@{ + projectId = $ProjectId + name = $definition.Name + description = $definition.Description + validity = @{ max = $definition.MaxValidity } + algorithms = @{ keyAlgorithm = @($definition.KeyAlgorithms) } + } + + $subject = @(ConvertTo-PolicyConstraintList -Definitions $definition.Subject) + if ($subject.Count -gt 0) { $body.subject = $subject } + + $sans = @(ConvertTo-PolicyConstraintList -Definitions $definition.SubjectAltNames) + if ($sans.Count -gt 0) { $body.sans = $sans } + + $keyUsages = ConvertTo-PolicyConstraint -Definition $definition.KeyUsages + if ($Null -ne $keyUsages) { $body.keyUsages = $keyUsages } + + $extendedKeyUsages = ConvertTo-PolicyConstraint -Definition $definition.ExtendedKeyUsages + if ($Null -ne $extendedKeyUsages) { $body.extendedKeyUsages = $extendedKeyUsages } + + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-policies' -Body $body + $policy = $created.certificatePolicy + $resolved[$definition.Name] = $policy + Write-Step "policy '$($definition.Name)' ($($policy.id))" -Status 'Created' + } + + return $resolved + } + + function ConvertTo-PolicyConstraint { + <# + Infisical rejects a constraint object that carries none of allowed/required/denied, so an empty + definition becomes null rather than an empty object. + #> + param($Definition) + + if ($Null -eq $Definition) { return $Null } + + $result = [Ordered]@{} + foreach ($key in @('Allowed', 'Required', 'Denied')) { + if (-not $Definition.Contains($key)) { continue } + $values = @($Definition[$key]) + if ($values.Count -eq 0) { continue } + $result[$key.ToLowerInvariant()] = $values + } + + if ($result.Count -eq 0) { return $Null } + return $result + } + + function ConvertTo-PolicyConstraintList { + param($Definitions) + + $list = @() + foreach ($definition in @($Definitions)) { + if ($Null -eq $definition) { continue } + $constraint = ConvertTo-PolicyConstraint -Definition $definition + if ($Null -eq $constraint) { continue } + $entry = [Ordered]@{ type = $definition.Type } + foreach ($pair in $constraint.GetEnumerator()) { $entry[$pair.Key] = $pair.Value } + $list += $entry + } + + return $list + } + + function Get-SeededCertificateProfiles { + param([String]$ProjectId, $Authorities, $Policies) + + Write-Step 'Certificate profiles' + $resolved = [Ordered]@{} + + $existingBySlug = @{} + if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { + $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/certificate-profiles?projectId=$ProjectId" + foreach ($profile in @($response.certificateProfiles)) { $existingBySlug[$profile.slug] = $profile } + } + + foreach ($definition in $Configuration.CertificateProfiles) { + if ($existingBySlug.ContainsKey($definition.Slug)) { + $existing = $existingBySlug[$definition.Slug] + $resolved[$definition.Slug] = $existing + Write-Step "profile '$($definition.Slug)' ($($existing.id))" -Status 'Exists' + continue + } + + $haveDependencies = $Authorities.Contains($definition.CertificateAuthority) -and + $Policies.Contains($definition.CertificatePolicy) + + if ([String]::IsNullOrWhiteSpace($ProjectId) -or -not $haveDependencies -or + -not $PSCmdlet.ShouldProcess($definition.Slug, 'Create certificate profile')) { + Write-Step "would create profile '$($definition.Slug)' (CA '$($definition.CertificateAuthority)', policy '$($definition.CertificatePolicy)')" -Status 'WhatIf' + continue + } + + $apiConfig = [Ordered]@{ autoRenew = [Bool]$definition.AutoRenew } + if ($definition.AutoRenew -and $Null -ne $definition.RenewBeforeDays) { + $apiConfig.renewBeforeDays = $definition.RenewBeforeDays + } + + $body = [Ordered]@{ + projectId = $ProjectId + slug = $definition.Slug + description = $definition.Description + caId = $Authorities[$definition.CertificateAuthority].id + certificatePolicyId = $Policies[$definition.CertificatePolicy].id + enrollmentType = 'api' + issuerType = 'ca' + apiConfig = $apiConfig + } + + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-profiles' -Body $body + $profile = $created.certificateProfile + $resolved[$definition.Slug] = $profile + Write-Step "profile '$($definition.Slug)' ($($profile.id))" -Status 'Created' + } + + return $resolved + } +#endregion + +#region Main + try { + Connect-InfisicalApi + $resolvedOrganizationId = Resolve-OrganizationId + + $project = Get-SeededProject -OrgId $resolvedOrganizationId + $projectId = if ($Null -ne $project) { $project.id } else { $Null } + + $authorities = Get-SeededCertificateAuthorities -ProjectId $projectId + $policies = Get-SeededCertificatePolicies -ProjectId $projectId + $profiles = Get-SeededCertificateProfiles -ProjectId $projectId -Authorities $authorities -Policies $policies + $application = Get-SeededApplication -ProjectId $projectId -Profiles $profiles + + Write-Host '' + Write-Step 'Done.' + + if ($Null -ne $projectId -and $profiles.Count -gt 0) { + $firstProfileSlug = @($Configuration.CertificateProfiles)[0].Slug + Write-Host '' + Write-Host 'Request a certificate against a seeded profile:' + Write-Host '' + $connectHint = if ($PSCmdlet.ParameterSetName -eq 'Token') { + " Connect-Infisical -BaseUri '$($Script:ApiRoot)' -AccessToken `$Token" + } else { + " Connect-Infisical -BaseUri '$($Script:ApiRoot)' -ClientId '$ClientId' -ClientSecret `$Secret" + } + Write-Host $connectHint + Write-Host " `$Application = Get-InfisicalCertificateApplication | Where-Object {(`$_.Name -ieq '$($Configuration.Application.Name)')}" + Write-Host " `$CertificateProfile = Get-InfisicalCertificateProfile -ApplicationId `$Application.Id | Where-Object {(`$_.Slug -ieq '$firstProfileSlug')}" + Write-Host " Request-InfisicalCertificate -CertificateProfileId `$CertificateProfile.Id ``" + Write-Host " -CommonName `$Env:ComputerName.ToUpper() -DnsName (Get-InfisicalSANList) -Install -InstallChain" + } + + [PSCustomObject]@{ + BaseUri = $Script:ApiRoot + OrganizationId = $resolvedOrganizationId + ProjectId = $projectId + CertificateAuthorities = $authorities + CertificatePolicies = $policies + CertificateProfiles = $profiles + Application = $application + } + } + finally { + $Script:BearerToken = $Null + } +#endregion -- 2.52.0 From 74d22a941c3345c3d6457df1c791f11616017f05 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 21:23:33 -0400 Subject: [PATCH 10/15] Fix the organization listing endpoint and stop blaming the token for it Seeding a real instance failed with "Route GET:/api/v2/organizations not found". The route genuinely does not exist: /api/v2/organizations mounts only /:organizationId/* sub-routes, and the listing lives on the singular GET /api/v1/organization, which returns the same { organizations: [...] } shape. The module had the same defect, so Get-InfisicalOrganization would have 404d on any current server. ListOrganizations now prefers /api/v1/organization with the v2 route retained as a fallback candidate, and the organization client invokes with candidate fallback so the fallback can actually be reached. The endpoint shape test expected the broken template and now expects the working one. The script reported this as "The supplied -AccessToken was rejected ... it may have expired", which sent the reader after a token that was seconds old and perfectly valid. A 404 or a connection failure says nothing about the token, so only a 401 or 403 now produces that message; anything else reports that the instance could not be reached and states plainly that it is not a token problem. The token probe also moves to /api/v1/projects, which is the next call the script makes anyway, so a successful probe proves both the token and a route the run actually depends on rather than one chosen only for validation. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 4 ++++ Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 ++-- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 505856 -> 506368 bytes ...ialize-InfisicalCertManagerEnvironment.ps1 | 18 ++++++++++++++---- .../EndpointRegistryTests.cs | 4 +++- .../Endpoints/InfisicalEndpointRegistry.cs | 13 +++++++++++++ .../InfisicalOrganizationClient.cs | 2 +- 7 files changed, 37 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85a79c9..a96f5e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.08.01.0123 + +_Build produced from commit f2a1492b66de._ + ## 2026.07.31.2140 _Build produced from commit 62131e750109._ diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 8053431..1fe7074 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.31.2140' + ModuleVersion = '2026.08.01.0123' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -89,7 +89,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = '62131e750109' + CommitHash = 'f2a1492b66de' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 4f22bac7b9a8c1f3c06e0752f5a1c95737fbe805..b5a4796c659d7c126a4b0c82cdd262bbae33bb01 100644 GIT binary patch delta 42394 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 Qu&TGThyHEN?N$E&1_8QHQvd(} delta 41975 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 map) { + Add(map, new InfisicalEndpointDefinition + { + // The listing lives on the singular v1 route. /api/v2/organizations mounts only + // /:organizationId/* sub-routes and has no GET /, so asking it for a list returns + // "Route GET:/api/v2/organizations not found". Kept as a fallback candidate all the same. + Name = InfisicalEndpointNames.ListOrganizations, + Resource = "Organizations", + Version = "v1", + Method = "GET", + Template = "/api/v1/organization", + RequiresAuthorization = true + }); + Add(map, new InfisicalEndpointDefinition { Name = InfisicalEndpointNames.ListOrganizations, diff --git a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationClient.cs b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationClient.cs index 18f7d67..ed4cc23 100644 --- a/src/PSInfisicalAPI/Organizations/InfisicalOrganizationClient.cs +++ b/src/PSInfisicalAPI/Organizations/InfisicalOrganizationClient.cs @@ -33,7 +33,7 @@ namespace PSInfisicalAPI.Organizations try { _logger.Information(Component, "Attempting to list Infisical organizations. Please Wait..."); - InfisicalHttpResponse response = _invoker.Invoke(connection, InfisicalEndpointNames.ListOrganizations, "ListOrganizations", null, null, null); + InfisicalHttpResponse response = _invoker.InvokeWithCandidateFallback(connection, InfisicalEndpointNames.ListOrganizations, "ListOrganizations", null, null, null); InfisicalOrganizationListResponseDto dto = _serializer.Deserialize(response.Body); response.Clear(); -- 2.52.0 From 30151384845f5cc664f39accc36f93677afa5b8e Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 22:02:24 -0400 Subject: [PATCH 11/15] Make the seeding script survive real API responses and emit complete policies Ran the script against a live Infisical instance for the first time. It failed at four separate points, each fixed here. Responses are read through Get-ApiProperty/Get-ApiCollection/Get-ApiObject rather than directly. Set-StrictMode makes an absent property terminating, and the cert-manager routes return bare payloads - a naked array for a list, the resource itself for a create - where the secrets and pki routes wrap theirs in a named property. All eighteen reads now handle either shape. The application-to-profile listing is a join row carrying profileId, not a profile object with an id, so it is read accordingly. Renamed the local $configuration inside the CA loop to $caConfiguration. PowerShell variable names are case-insensitive, so from the second CA onward it shadowed the script-level $Configuration block and every lookup into it failed. Renamed the $profile loop variables for the same reason: $profile is an automatic variable. Policies now carry subject, sans, and signature algorithms, and profiles carry defaults. The previous comment claimed omitting subject and sans left them unconstrained; the opposite is true. Infisical refuses any attribute with no policy entry ("no subject policies defined"), refuses a policy that defines no signature algorithm, and refuses a request missing a usage the policy marks required - Request-InfisicalCertificate sends none of its own, so the profile default has to supply it. The enumeration list in the header dropped domain_component, upn, and any_purpose, which the API does not accept. Verified end to end: a clean run builds both CA hierarchies including the subordinate CSR-sign-import sequence, and a re-run creates nothing. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 4 + Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 506368 -> 506368 bytes ...ialize-InfisicalCertManagerEnvironment.ps1 | 266 ++++++++++++++---- 4 files changed, 213 insertions(+), 61 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a96f5e9..00211a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.08.01.0140 + +_Build produced from commit 74d22a941c33._ + ## 2026.08.01.0123 _Build produced from commit f2a1492b66de._ diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 1fe7074..81840fb 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.08.01.0123' + ModuleVersion = '2026.08.01.0140' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -89,7 +89,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = 'f2a1492b66de' + CommitHash = '74d22a941c33' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index b5a4796c659d7c126a4b0c82cdd262bbae33bb01..6f2e6dc93070ae8b306a3202587cc76b330f8cc2 100644 GIT binary patch delta 343 zcmZqpBG>RmZbAo(Nfg8L#-7$5#?~ID)*j}qJuGz(7<<~eAF^!ce#rXtr$FF>pvZ}d zlRcMw?syUTYH#hf+iV+SdCW~xjEoX3O$?Kbji>LmU^ikiF_`|*f?ZVG#6TNa(!?~` zIK|Aw)I254FxlMFFwM}=%+Soh&^*n+bi1J?`|5I*o$GYYOn+cWMc1O;9z*g-m`t` z7WQaHW)lX3?Vq=@yEBFYSq$0?<_snbDGWwHn8;uWWE(OhGZ+J*341Afxpd3??fwX>DiR!Tz5S070^GS^xk5 delta 343 zcmZqpBG>RmZbAo(_4(728hcuM7+ZUoT6>tc_OR4FV61NEe#o+&`yuPop8`TQhc{X> z3;V6DpM5a-@ZV?KZnJHS{31p=K z`DqO1K+>4O0;oC_D4GVO4T17WKrsWL{$!v`%Jly2?2hapqxBdJCMz;&ZD-uU{+|&5 D8Rl=l diff --git a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 index e26ae7f..e1c2d40 100644 --- a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 +++ b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 @@ -116,13 +116,15 @@ Set-StrictMode -Version Latest Enumeration values are the ones Infisical accepts verbatim: KeyAlgorithm RSA_2048 | RSA_3072 | RSA_4096 | EC_prime256v1 | EC_secp384r1 | EC_secp521r1 + SignatureAlgorithm RSA-SHA256 | RSA-SHA384 | RSA-SHA512 | ECDSA-SHA256 | ECDSA-SHA384 | + ECDSA-SHA512 KeyUsages digital_signature | key_encipherment | non_repudiation | data_encipherment | key_agreement | key_cert_sign | crl_sign | encipher_only | decipher_only - ExtendedKeyUsages server_auth | client_auth | code_signing | email_protection | ocsp_signing | - time_stamping | any_purpose + ExtendedKeyUsages client_auth | server_auth | code_signing | email_protection | ocsp_signing | + time_stamping SubjectAttribute common_name | organization | country | state | locality | - organizational_unit | domain_component - SanType dns_name | ip_address | email | uri | upn + organizational_unit + SanType dns_name | ip_address | email | uri #> $Configuration = [Ordered]@{ @@ -197,46 +199,80 @@ Set-StrictMode -Version Latest CertificatePolicies = @( <# - Subject and SubjectAltNames are deliberately left out below. A constraint is only sent when - it carries values, and omitting these leaves the common name and SAN list unconstrained, - which is what fleet enrollment needs: every machine presents its own name. + Every attribute a request carries must have a policy entry, or issuance is refused with + "not allowed by template policy (no subject policies defined)". An entry of Allowed = @('*') + is therefore not decoration: it is what keeps the common name and SAN list open, which is + what fleet enrollment needs, since every machine presents its own name. Narrow a value by + replacing the wildcard, for example Allowed = @('*.contoso.com'). - To constrain them, add entries carrying values, for example: - Subject = @( [Ordered]@{ Type = 'organization'; Allowed = @('Contoso') } ) - SubjectAltNames = @( [Ordered]@{ Type = 'dns_name'; Allowed = @('*.contoso.com') } ) + SignatureAlgorithms is likewise mandatory. A policy that omits it rejects every request with + "Signature algorithm ... not defined in template". #> [Ordered]@{ - Name = 'mecm-server-client-auth' - Description = 'SCCM/MECM site systems and clients. RSA, server and client authentication.' - MaxValidity = '365d' - KeyAlgorithms = @('RSA_2048', 'RSA_3072', 'RSA_4096') - KeyUsages = [Ordered]@{ Required = @('digital_signature', 'key_encipherment') } - ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } - Subject = @() - SubjectAltNames = @() + Name = 'mecm-server-client-auth' + Description = 'SCCM/MECM site systems and clients. RSA, server and client authentication.' + MaxValidity = '365d' + KeyAlgorithms = @('RSA_2048', 'RSA_3072', 'RSA_4096') + SignatureAlgorithms = @('RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512') + KeyUsages = [Ordered]@{ Required = @('digital_signature', 'key_encipherment') } + ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } + Subject = @( + [Ordered]@{ Type = 'common_name'; Allowed = @('*') } + [Ordered]@{ Type = 'organization'; Allowed = @('*') } + [Ordered]@{ Type = 'organizational_unit'; Allowed = @('*') } + [Ordered]@{ Type = 'country'; Allowed = @('*') } + [Ordered]@{ Type = 'state'; Allowed = @('*') } + [Ordered]@{ Type = 'locality'; Allowed = @('*') } + ) + SubjectAltNames = @( + [Ordered]@{ Type = 'dns_name'; Allowed = @('*') } + [Ordered]@{ Type = 'ip_address'; Allowed = @('*') } + ) } [Ordered]@{ - Name = 'ec-server-client-auth' - Description = 'General workload certificates. ECDSA P-384, server and client authentication.' - MaxValidity = '90d' - KeyAlgorithms = @('EC_secp384r1') - KeyUsages = [Ordered]@{ Required = @('digital_signature') } - ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } - Subject = @() - SubjectAltNames = @() + Name = 'ec-server-client-auth' + Description = 'General workload certificates. ECDSA P-384, server and client authentication.' + MaxValidity = '90d' + KeyAlgorithms = @('EC_secp384r1') + SignatureAlgorithms = @('ECDSA-SHA384') + KeyUsages = [Ordered]@{ Required = @('digital_signature') } + ExtendedKeyUsages = [Ordered]@{ Required = @('server_auth', 'client_auth') } + Subject = @( + [Ordered]@{ Type = 'common_name'; Allowed = @('*') } + [Ordered]@{ Type = 'organization'; Allowed = @('*') } + [Ordered]@{ Type = 'organizational_unit'; Allowed = @('*') } + [Ordered]@{ Type = 'country'; Allowed = @('*') } + [Ordered]@{ Type = 'state'; Allowed = @('*') } + [Ordered]@{ Type = 'locality'; Allowed = @('*') } + ) + SubjectAltNames = @( + [Ordered]@{ Type = 'dns_name'; Allowed = @('*') } + [Ordered]@{ Type = 'ip_address'; Allowed = @('*') } + ) } [Ordered]@{ - Name = 'ec-code-signing' - Description = 'Code signing. ECDSA P-384, code signing only.' - MaxValidity = '365d' - KeyAlgorithms = @('EC_secp384r1') - KeyUsages = [Ordered]@{ Required = @('digital_signature') } - ExtendedKeyUsages = [Ordered]@{ Required = @('code_signing'); Denied = @('server_auth', 'client_auth') } - Subject = @() - SubjectAltNames = @() + Name = 'ec-code-signing' + Description = 'Code signing. ECDSA P-384, code signing only.' + MaxValidity = '365d' + KeyAlgorithms = @('EC_secp384r1') + SignatureAlgorithms = @('ECDSA-SHA384') + KeyUsages = [Ordered]@{ Required = @('digital_signature') } + ExtendedKeyUsages = [Ordered]@{ Required = @('code_signing'); Denied = @('server_auth', 'client_auth') } + Subject = @( + [Ordered]@{ Type = 'common_name'; Allowed = @('*') } + [Ordered]@{ Type = 'organization'; Allowed = @('*') } + [Ordered]@{ Type = 'organizational_unit'; Allowed = @('*') } + [Ordered]@{ Type = 'country'; Allowed = @('*') } + ) + SubjectAltNames = @() } ) + <# + Defaults fill in what a requester leaves out. They are required whenever the policy marks a + constraint Required: Request-InfisicalCertificate does not send key usages of its own, so + without a default the request arrives empty and is refused with "Missing required key usages". + #> CertificateProfiles = @( [Ordered]@{ Slug = 'mecm-server-client-auth' @@ -245,6 +281,12 @@ Set-StrictMode -Version Latest CertificatePolicy = 'mecm-server-client-auth' AutoRenew = $True RenewBeforeDays = 14 + Defaults = [Ordered]@{ + KeyAlgorithm = 'RSA_2048' + SignatureAlgorithm = 'RSA-SHA256' + KeyUsages = @('digital_signature', 'key_encipherment') + ExtendedKeyUsages = @('server_auth', 'client_auth') + } } [Ordered]@{ Slug = 'ec-server-client-auth' @@ -253,6 +295,12 @@ Set-StrictMode -Version Latest CertificatePolicy = 'ec-server-client-auth' AutoRenew = $True RenewBeforeDays = 14 + Defaults = [Ordered]@{ + KeyAlgorithm = 'EC_secp384r1' + SignatureAlgorithm = 'ECDSA-SHA384' + KeyUsages = @('digital_signature') + ExtendedKeyUsages = @('server_auth', 'client_auth') + } } [Ordered]@{ Slug = 'ec-code-signing' @@ -261,6 +309,12 @@ Set-StrictMode -Version Latest CertificatePolicy = 'ec-code-signing' AutoRenew = $False RenewBeforeDays = $Null + Defaults = [Ordered]@{ + KeyAlgorithm = 'EC_secp384r1' + SignatureAlgorithm = 'ECDSA-SHA384' + KeyUsages = @('digital_signature') + ExtendedKeyUsages = @('code_signing') + } } ) } @@ -282,6 +336,62 @@ Set-StrictMode -Version Latest Write-Host ("{0} {1}" -f $prefix, $Message) } + function Get-ApiProperty { + <# + Reads a property that may not be present. Set-StrictMode makes an absent property a terminating + error, and response shapes vary across Infisical versions and route namespaces, so every read of an + API response goes through here rather than risking a crash on a field the server did not send. + #> + param($InputObject, [Parameter(Mandatory = $True)][String]$Name) + + if ($Null -eq $InputObject) { return $Null } + + $property = $InputObject.PSObject.Properties[$Name] + if ($Null -eq $property) { return $Null } + + return $property.Value + } + + function Get-ApiCollection { + <# + Returns a list from a response, as an array. Infisical is not consistent about wrapping: the + secrets and pki routes wrap a list in a named property, while the cert-manager routes return a + bare JSON array. Named properties are tried first, then the response itself if it is already a + list, so one call site handles either shape. + #> + param($InputObject, [Parameter(Mandatory = $True)][String[]]$Name) + + foreach ($candidate in $Name) { + $value = Get-ApiProperty -InputObject $InputObject -Name $candidate + if ($Null -ne $value) { return @($value) } + } + + # A bare array carries no named property to find, so fall through to the response itself. Strings are + # excluded because they are enumerable but are never a list of resources. + if ($Null -ne $InputObject -and $InputObject -isnot [String] -and $InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject) + } + + return @() + } + + function Get-ApiObject { + <# + Returns a single resource from a response, handling the same wrapped-or-bare split as + Get-ApiCollection. An unwrapped response is recognised by carrying an id of its own. + #> + param($InputObject, [Parameter(Mandatory = $True)][String[]]$Name) + + foreach ($candidate in $Name) { + $value = Get-ApiProperty -InputObject $InputObject -Name $candidate + if ($Null -ne $value) { return $value } + } + + if ($Null -ne (Get-ApiProperty -InputObject $InputObject -Name 'id')) { return $InputObject } + + return $Null + } + function ConvertFrom-SecureStringToPlainText { param([System.Security.SecureString]$Value) $pointer = [System.Runtime.InteropServices.Marshal]::SecureStringToGlobalAllocUnicode($Value) @@ -381,11 +491,11 @@ Set-StrictMode -Version Latest } $response = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/auth/universal-auth/login' -Body $body -NoAuth - if ($Null -eq $response -or [String]::IsNullOrWhiteSpace($response.accessToken)) { + if ($Null -eq $response -or [String]::IsNullOrWhiteSpace((Get-ApiProperty -InputObject $response -Name 'accessToken'))) { throw 'Authentication succeeded but returned no access token.' } - $Script:BearerToken = $response.accessToken + $Script:BearerToken = Get-ApiProperty -InputObject $response -Name 'accessToken' Write-Step 'Authenticated with universal auth.' -Status 'Sub' } @@ -394,7 +504,7 @@ Set-StrictMode -Version Latest # The singular v1 route is the listing; /api/v2/organizations mounts only /:organizationId/* sub-routes. $response = Invoke-InfisicalApi -Method 'GET' -Path '/api/v1/organization' - $organizations = @($response.organizations) + $organizations = Get-ApiCollection -InputObject $response -Name 'organizations' if ($organizations.Count -eq 0) { throw 'No organizations are visible to this identity; pass -OrganizationId.' } if ($organizations.Count -gt 1) { $names = ($organizations | ForEach-Object { "$($_.name) ($($_.id))" }) -join ', ' @@ -421,7 +531,7 @@ Set-StrictMode -Version Latest Write-Step 'Project' $response = Invoke-InfisicalApi -Method 'GET' -Path '/api/v1/projects' - $all = @($response.projects) + @($response.workspaces) | Where-Object { $Null -ne $_ } + $all = Get-ApiCollection -InputObject $response -Name 'projects','workspaces' $certManagerProjects = @($all | Where-Object { $_.type -eq 'cert-manager' }) if ($certManagerProjects.Count -gt 0) { @@ -452,7 +562,7 @@ Set-StrictMode -Version Latest } $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v2/workspace' -Body $body - $project = $created.project + $project = Get-ApiObject -InputObject $created -Name 'project','workspace' Write-Step "project '$($project.name)' ($($project.id))" -Status 'Created' return $project } @@ -479,7 +589,7 @@ Set-StrictMode -Version Latest $existing = $Null if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/applications?projectId=$ProjectId" - $existing = @($response.applications) | Where-Object { $_.name -eq $Configuration.Application.Name } | Select-Object -First 1 + $existing = (Get-ApiCollection -InputObject $response -Name 'applications') | Where-Object { $_.name -eq $Configuration.Application.Name } | Select-Object -First 1 } if ($Null -ne $existing) { @@ -502,7 +612,7 @@ Set-StrictMode -Version Latest if ($profileIds.Count -gt 0) { $body.profileIds = $profileIds } $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/applications' -Body $body - $application = $created.application + $application = Get-ApiObject -InputObject $created -Name 'application' Write-Step "application '$($application.name)' ($($application.id)) with $($profileIds.Count) profile(s)" -Status 'Created' return $application } @@ -513,7 +623,13 @@ Set-StrictMode -Version Latest if (@($ProfileIds).Count -eq 0) { return } $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/applications/$($Application.id)/profiles?projectId=$ProjectId" - $attached = @($response.profiles | ForEach-Object { $_.id }) + # This route returns application-to-profile join rows, which carry the profile under profileId rather + # than as an object with an id of its own. + $attached = @((Get-ApiCollection -InputObject $response -Name 'profiles') | ForEach-Object { + $attachedId = Get-ApiProperty -InputObject $_ -Name 'profileId' + if ($Null -eq $attachedId) { $attachedId = Get-ApiProperty -InputObject $_ -Name 'id' } + $attachedId + } | Where-Object { $Null -ne $_ }) $missing = @($ProfileIds | Where-Object { $attached -notcontains $_ }) if ($missing.Count -eq 0) { @@ -539,7 +655,7 @@ Set-StrictMode -Version Latest $existingByName = @{} if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/ca/internal?projectId=$ProjectId" - foreach ($ca in @($response.certificateAuthorities)) { $existingByName[$ca.name] = $ca } + foreach ($ca in (Get-ApiCollection -InputObject $response -Name 'certificateAuthorities','cas')) { $existingByName[$ca.name] = $ca } } foreach ($definition in $Configuration.CertificateAuthorities) { @@ -558,7 +674,7 @@ Set-StrictMode -Version Latest $notAfter = [DateTime]::UtcNow.AddYears($definition.ValidityYears).ToString('yyyy-MM-ddTHH:mm:ss.fffZ') - $configuration = [Ordered]@{ + $caConfiguration = [Ordered]@{ type = $definition.Type commonName = $definition.CommonName organization = $Configuration.Organization.Name @@ -572,19 +688,19 @@ Set-StrictMode -Version Latest # Infisical only self-signs on creation for a root, and only when it is given an expiry. A # subordinate is created pending and signed in the step below. if ($definition.Type -eq 'root') { - $configuration.notAfter = $notAfter - $configuration.maxPathLength = $definition.MaxPathLength + $caConfiguration.notAfter = $notAfter + $caConfiguration.maxPathLength = $definition.MaxPathLength } $body = @{ projectId = $ProjectId name = $definition.Name status = 'active' - configuration = $configuration + configuration = $caConfiguration } $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/ca/internal' -Body $body - $ca = $created.certificateAuthority + $ca = Get-ApiObject -InputObject $created -Name 'certificateAuthority','ca' $resolved[$definition.Name] = $ca Write-Step "$($definition.Type) CA '$($definition.Name)' ($($ca.id))" -Status 'Created' @@ -616,12 +732,12 @@ Set-StrictMode -Version Latest Write-Step "signing '$($Definition.Name)' with '$($Definition.Parent)'" -Status 'Sub' $csrResponse = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/pki/ca/$($Subordinate.id)/csr" - if ([String]::IsNullOrWhiteSpace($csrResponse.csr)) { + if ([String]::IsNullOrWhiteSpace((Get-ApiProperty -InputObject $csrResponse -Name 'csr'))) { throw "CA '$($Definition.Name)' returned no CSR to sign." } $signBody = @{ - csr = $csrResponse.csr + csr = Get-ApiProperty -InputObject $csrResponse -Name 'csr' notAfter = $NotAfter maxPathLength = $Definition.MaxPathLength } @@ -629,8 +745,8 @@ Set-StrictMode -Version Latest $signed = Invoke-InfisicalApi -Method 'POST' -Path "/api/v1/pki/ca/$($parent.id)/sign-intermediate" -Body $signBody $importBody = @{ - certificate = $signed.certificate - certificateChain = $signed.certificateChain + certificate = Get-ApiProperty -InputObject $signed -Name 'certificate' + certificateChain = Get-ApiProperty -InputObject $signed -Name 'certificateChain' } $Null = Invoke-InfisicalApi -Method 'POST' -Path "/api/v1/pki/ca/$($Subordinate.id)/import-certificate" -Body $importBody @@ -646,7 +762,7 @@ Set-StrictMode -Version Latest $existingByName = @{} if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/certificate-policies?projectId=$ProjectId" - foreach ($policy in @($response.certificatePolicies)) { $existingByName[$policy.name] = $policy } + foreach ($policy in (Get-ApiCollection -InputObject $response -Name 'certificatePolicies','policies')) { $existingByName[$policy.name] = $policy } } foreach ($definition in $Configuration.CertificatePolicies) { @@ -668,7 +784,10 @@ Set-StrictMode -Version Latest name = $definition.Name description = $definition.Description validity = @{ max = $definition.MaxValidity } - algorithms = @{ keyAlgorithm = @($definition.KeyAlgorithms) } + algorithms = @{ + keyAlgorithm = @($definition.KeyAlgorithms) + signature = @($definition.SignatureAlgorithms) + } } $subject = @(ConvertTo-PolicyConstraintList -Definitions $definition.Subject) @@ -684,7 +803,7 @@ Set-StrictMode -Version Latest if ($Null -ne $extendedKeyUsages) { $body.extendedKeyUsages = $extendedKeyUsages } $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-policies' -Body $body - $policy = $created.certificatePolicy + $policy = Get-ApiObject -InputObject $created -Name 'certificatePolicy' $resolved[$definition.Name] = $policy Write-Step "policy '$($definition.Name)' ($($policy.id))" -Status 'Created' } @@ -713,6 +832,32 @@ Set-StrictMode -Version Latest return $result } + function ConvertTo-ProfileDefaults { + <# + Profile defaults are flat: scalars for the algorithms and plain string arrays for the usages, + unlike the allowed/required/denied objects a policy takes. Keys are camelCased to match the API. + #> + param($Definition) + + if ($Null -eq $Definition) { return $Null } + + $result = [Ordered]@{} + foreach ($key in @('KeyAlgorithm', 'SignatureAlgorithm')) { + if (-not $Definition.Contains($key)) { continue } + if ([String]::IsNullOrWhiteSpace($Definition[$key])) { continue } + $result[$key.Substring(0, 1).ToLowerInvariant() + $key.Substring(1)] = $Definition[$key] + } + foreach ($key in @('KeyUsages', 'ExtendedKeyUsages')) { + if (-not $Definition.Contains($key)) { continue } + $values = @($Definition[$key]) + if ($values.Count -eq 0) { continue } + $result[$key.Substring(0, 1).ToLowerInvariant() + $key.Substring(1)] = $values + } + + if ($result.Count -eq 0) { return $Null } + return $result + } + function ConvertTo-PolicyConstraintList { param($Definitions) @@ -738,7 +883,7 @@ Set-StrictMode -Version Latest $existingBySlug = @{} if (-not [String]::IsNullOrWhiteSpace($ProjectId)) { $response = Invoke-InfisicalApi -Method 'GET' -Path "/api/v1/cert-manager/certificate-profiles?projectId=$ProjectId" - foreach ($profile in @($response.certificateProfiles)) { $existingBySlug[$profile.slug] = $profile } + foreach ($existingProfile in (Get-ApiCollection -InputObject $response -Name 'certificateProfiles','profiles')) { $existingBySlug[$existingProfile.slug] = $existingProfile } } foreach ($definition in $Configuration.CertificateProfiles) { @@ -774,10 +919,13 @@ Set-StrictMode -Version Latest apiConfig = $apiConfig } + $defaults = ConvertTo-ProfileDefaults -Definition $definition.Defaults + if ($Null -ne $defaults) { $body.defaults = $defaults } + $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-profiles' -Body $body - $profile = $created.certificateProfile - $resolved[$definition.Slug] = $profile - Write-Step "profile '$($definition.Slug)' ($($profile.id))" -Status 'Created' + $createdProfile = Get-ApiObject -InputObject $created -Name 'certificateProfile' + $resolved[$definition.Slug] = $createdProfile + Write-Step "profile '$($definition.Slug)' ($($createdProfile.id))" -Status 'Created' } return $resolved -- 2.52.0 From c40160f78970395f09be029c7b1b200e5721f595 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 22:17:38 -0400 Subject: [PATCH 12/15] Seed SCEP and ACME enrollment alongside API, and auto-renew everywhere A profile carries exactly one enrollment method - Infisical rejects a mixed one with "API enrollment type cannot have EST, ACME, or SCEP configuration" - so reaching a policy over more than one method means a profile per method, sharing the CA and policy. Added mecm-server-client-auth-scep and ec-server-client-auth-acme next to the three API profiles. SCEP for the RSA policy because that is how domain-joined Windows and mobile clients enrol without a token, which is the NDES role SCCM/MECM would otherwise need; RSA because SCEP client support for EC keys is patchy. ACME for the EC server/client policy, for workloads that already speak it. Code signing stays API only: SCEP and ACME prove control of a device or a DNS name, and neither says anything about who may sign code. A static SCEP profile needs a challenge password of at least eight characters. Added -ScepChallengePassword, and when it is omitted the run generates one and prints it once at the end, because Infisical will not hand it back afterwards. ACME sets skipDnsOwnershipVerification. These are internal names from an internal CA, and the DNS-01 challenge proves control of a public zone, so leaving it enforced makes the profile unusable rather than safer. The comment says so and says when to turn it off. Auto-renew is now on for every API profile including code signing, at fourteen days. It is an api-only setting; neither SCEP nor ACME has an equivalent, because both have the client drive renewal itself. Verified against a live instance: profiles create with their config ids populated, a re-run creates nothing and does not reissue the challenge. Co-Authored-By: Claude Opus 5 --- ...ialize-InfisicalCertManagerEnvironment.ps1 | 179 ++++++++++++++++-- 1 file changed, 163 insertions(+), 16 deletions(-) diff --git a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 index e1c2d40..b20814e 100644 --- a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 +++ b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 @@ -1,7 +1,7 @@ <# .SYNOPSIS - Seeds an Infisical Certificate Manager project with a CA hierarchy, certificate policies, and API - enrollment profiles. + Seeds an Infisical Certificate Manager project with a CA hierarchy, certificate policies, and + enrollment profiles for API, SCEP, and ACME. .DESCRIPTION Stands up a complete cert-manager environment from a single declarative configuration block, so a new @@ -15,11 +15,16 @@ the root -> import the signed certificate and chain back onto the subordinate. 3. Certificate policies, which constrain subject attributes, key usages, extended key usages, key algorithms, and maximum validity. - 4. Certificate profiles, which bind a policy to an issuing CA and expose it for API enrollment. + 4. Certificate profiles, which bind a policy to an issuing CA and expose it for enrollment. + 5. A certificate application, which is what the UI and the cmdlets group profiles under. Two sets are seeded by default: an RSA hierarchy carrying server and client authentication for SCCM/MECM, and an ECDSA P-384 hierarchy carrying server, client, and code signing. + A profile carries one enrollment method, so a policy that should be reachable over more than one gets + a profile per method. Seeded by default: API on all three policies, SCEP alongside the RSA one for + clients that enrol without a token, and ACME alongside the EC server/client one. + The script is idempotent. Every object is looked up by its natural key before creation, so a re-run reports what already exists and creates only what is missing. It is safe to run repeatedly while building out a configuration. @@ -51,6 +56,11 @@ Organization to create the project under. Optional when the identity is scoped to a single organization, in which case it is resolved automatically. +.PARAMETER ScepChallengePassword + Shared secret that static SCEP profiles enrol against, as a SecureString. Optional; when omitted a + random one is generated and printed once at the end of the run. Infisical does not expose the challenge + afterwards, so a generated value is only recoverable from that output. + .PARAMETER SkipCertificateCheck Accepts an untrusted TLS certificate on the Infisical endpoint. For lab instances only. @@ -98,6 +108,10 @@ param( [Parameter(Mandatory = $False)] [String]$OrganizationId, + [Parameter(Mandatory = $False)] + [ValidateNotNull()] + [System.Security.SecureString]$ScepChallengePassword, + [Parameter(Mandatory = $False)] [Switch]$SkipCertificateCheck ) @@ -147,7 +161,13 @@ Set-StrictMode -Version Latest Application = [Ordered]@{ Name = 'platform' Description = 'Endpoint and workload certificate enrollment.' - CertificateProfiles = @('mecm-server-client-auth', 'ec-server-client-auth', 'ec-code-signing') + CertificateProfiles = @( + 'mecm-server-client-auth' + 'mecm-server-client-auth-scep' + 'ec-server-client-auth' + 'ec-server-client-auth-acme' + 'ec-code-signing' + ) } Organization = [Ordered]@{ @@ -269,6 +289,19 @@ Set-StrictMode -Version Latest ) <# + A profile carries exactly one enrollment method. Infisical rejects a profile that mixes them + ("API enrollment type cannot have EST, ACME, or SCEP configuration"), so offering a policy over + more than one method means one profile per method, all pointing at the same policy and CA. + + EnrollmentType is api, scep, acme, or est. Each takes only its own configuration: + api AutoRenew, RenewBeforeDays (1-30) + scep ScepChallengeType static (needs a challenge password) or dynamic (issues one per request) + acme SkipDnsOwnershipVerification, SkipEabBinding + est a passphrase and a bootstrap CA chain, so it is left to be configured by hand + + AutoRenew is an api-only setting. Neither the SCEP nor the ACME configuration has an equivalent, + because both protocols have the client drive renewal on its own schedule. + Defaults fill in what a requester leaves out. They are required whenever the policy marks a constraint Required: Request-InfisicalCertificate does not send key usages of its own, so without a default the request arrives empty and is refused with "Missing required key usages". @@ -279,6 +312,7 @@ Set-StrictMode -Version Latest Description = 'API enrollment for SCCM/MECM site systems and clients.' CertificateAuthority = 'rsa-issuing-ca' CertificatePolicy = 'mecm-server-client-auth' + EnrollmentType = 'api' AutoRenew = $True RenewBeforeDays = 14 Defaults = [Ordered]@{ @@ -288,11 +322,31 @@ Set-StrictMode -Version Latest ExtendedKeyUsages = @('server_auth', 'client_auth') } } + <# + SCEP alongside the API profile: it is how domain-joined Windows and mobile clients enrol + without a token, which is the NDES role SCCM/MECM would otherwise need. RSA because SCEP + client support for EC keys is patchy. + #> + [Ordered]@{ + Slug = 'mecm-server-client-auth-scep' + Description = 'SCEP enrollment for SCCM/MECM site systems and clients.' + CertificateAuthority = 'rsa-issuing-ca' + CertificatePolicy = 'mecm-server-client-auth' + EnrollmentType = 'scep' + ScepChallengeType = 'static' + Defaults = [Ordered]@{ + KeyAlgorithm = 'RSA_2048' + SignatureAlgorithm = 'RSA-SHA256' + KeyUsages = @('digital_signature', 'key_encipherment') + ExtendedKeyUsages = @('server_auth', 'client_auth') + } + } [Ordered]@{ Slug = 'ec-server-client-auth' Description = 'API enrollment for general workload certificates.' CertificateAuthority = 'ec-issuing-ca' CertificatePolicy = 'ec-server-client-auth' + EnrollmentType = 'api' AutoRenew = $True RenewBeforeDays = 14 Defaults = [Ordered]@{ @@ -302,13 +356,42 @@ Set-StrictMode -Version Latest ExtendedKeyUsages = @('server_auth', 'client_auth') } } + <# + ACME alongside the API profile, for workloads that already speak it (cert-manager, Caddy, + Traefik, acme.sh). + + SkipDnsOwnershipVerification is on because this is an internal CA issuing internal names: + the DNS-01 challenge proves control of a public zone, which a name like host.contoso.local + cannot satisfy, so leaving it enforced makes the profile unusable rather than safer. Turn it + off if the names being issued live in a zone Infisical can actually resolve. + #> + [Ordered]@{ + Slug = 'ec-server-client-auth-acme' + Description = 'ACME enrollment for general workload certificates.' + CertificateAuthority = 'ec-issuing-ca' + CertificatePolicy = 'ec-server-client-auth' + EnrollmentType = 'acme' + SkipDnsOwnershipVerification = $True + SkipEabBinding = $False + Defaults = [Ordered]@{ + KeyAlgorithm = 'EC_secp384r1' + SignatureAlgorithm = 'ECDSA-SHA384' + KeyUsages = @('digital_signature') + ExtendedKeyUsages = @('server_auth', 'client_auth') + } + } + <# + Code signing is API only. SCEP and ACME both exist to prove control of a device or a DNS + name, and neither says anything about who may sign code. + #> [Ordered]@{ Slug = 'ec-code-signing' Description = 'API enrollment for code signing certificates.' CertificateAuthority = 'ec-issuing-ca' CertificatePolicy = 'ec-code-signing' - AutoRenew = $False - RenewBeforeDays = $Null + EnrollmentType = 'api' + AutoRenew = $True + RenewBeforeDays = 14 Defaults = [Ordered]@{ KeyAlgorithm = 'EC_secp384r1' SignatureAlgorithm = 'ECDSA-SHA384' @@ -321,8 +404,10 @@ Set-StrictMode -Version Latest #endregion #region Infrastructure - $Script:BearerToken = $Null - $Script:ApiRoot = $BaseUri.TrimEnd('/') + $Script:BearerToken = $Null + $Script:ApiRoot = $BaseUri.TrimEnd('/') + $Script:ScepChallenge = $Null + $Script:ScepChallengeGenerated = $False function Write-Step { param([String]$Message, [String]$Status = 'Info') @@ -832,6 +917,30 @@ Set-StrictMode -Version Latest return $result } + function Get-ScepChallengePassword { + <# + Returns the shared secret a static SCEP profile enrols against. One value is used for the whole + run and reported once at the end, since a caller that was not given the password cannot enrol + with it. Supply -ScepChallengePassword to set a known value instead; a generated one exists only + in this run's output, and cannot be read back out of Infisical afterwards. + #> + if ($Null -ne $Script:ScepChallenge) { return $Script:ScepChallenge } + + if ($PSBoundParameters.ContainsKey('ScepChallengePassword')) { + $Script:ScepChallenge = ConvertFrom-SecureStringToPlainText -SecureString $ScepChallengePassword + return $Script:ScepChallenge + } + + $bytes = [Byte[]]::new(24) + $rng = [System.Security.Cryptography.RandomNumberGenerator]::Create() + try { $rng.GetBytes($bytes) } finally { $rng.Dispose() } + + # Base64 minus the characters that get mangled in SCEP client configuration fields. + $Script:ScepChallenge = ([Convert]::ToBase64String($bytes) -replace '[+/=]', '').Substring(0, 24) + $Script:ScepChallengeGenerated = $True + return $Script:ScepChallenge + } + function ConvertTo-ProfileDefaults { <# Profile defaults are flat: scalars for the algorithms and plain string arrays for the usages, @@ -890,7 +999,8 @@ Set-StrictMode -Version Latest if ($existingBySlug.ContainsKey($definition.Slug)) { $existing = $existingBySlug[$definition.Slug] $resolved[$definition.Slug] = $existing - Write-Step "profile '$($definition.Slug)' ($($existing.id))" -Status 'Exists' + $existingType = Get-ApiProperty -InputObject $existing -Name 'enrollmentType' + Write-Step "profile '$($definition.Slug)' ($($existing.id)) enrollment=$existingType" -Status 'Exists' continue } @@ -903,10 +1013,7 @@ Set-StrictMode -Version Latest continue } - $apiConfig = [Ordered]@{ autoRenew = [Bool]$definition.AutoRenew } - if ($definition.AutoRenew -and $Null -ne $definition.RenewBeforeDays) { - $apiConfig.renewBeforeDays = $definition.RenewBeforeDays - } + $enrollmentType = if ($definition.Contains('EnrollmentType')) { $definition.EnrollmentType } else { 'api' } $body = [Ordered]@{ projectId = $ProjectId @@ -914,9 +1021,34 @@ Set-StrictMode -Version Latest description = $definition.Description caId = $Authorities[$definition.CertificateAuthority].id certificatePolicyId = $Policies[$definition.CertificatePolicy].id - enrollmentType = 'api' + enrollmentType = $enrollmentType issuerType = 'ca' - apiConfig = $apiConfig + } + + # Only the configuration matching the enrollment type may be sent; the others are rejected. + switch ($enrollmentType) { + 'api' { + $apiConfig = [Ordered]@{ autoRenew = [Bool]$definition.AutoRenew } + if ($definition.AutoRenew -and $Null -ne $definition.RenewBeforeDays) { + $apiConfig.renewBeforeDays = $definition.RenewBeforeDays + } + $body.apiConfig = $apiConfig + } + 'scep' { + $challengeType = if ($definition.Contains('ScepChallengeType')) { $definition.ScepChallengeType } else { 'static' } + $scepConfig = [Ordered]@{ challengeType = $challengeType } + if ($challengeType -eq 'static') { + $scepConfig.challengePassword = Get-ScepChallengePassword + } + $body.scepConfig = $scepConfig + } + 'acme' { + $body.acmeConfig = [Ordered]@{ + skipDnsOwnershipVerification = [Bool]$definition.SkipDnsOwnershipVerification + skipEabBinding = [Bool]$definition.SkipEabBinding + } + } + default { throw "Profile '$($definition.Slug)' declares unsupported EnrollmentType '$enrollmentType'." } } $defaults = ConvertTo-ProfileDefaults -Definition $definition.Defaults @@ -925,7 +1057,7 @@ Set-StrictMode -Version Latest $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-profiles' -Body $body $createdProfile = Get-ApiObject -InputObject $created -Name 'certificateProfile' $resolved[$definition.Slug] = $createdProfile - Write-Step "profile '$($definition.Slug)' ($($createdProfile.id))" -Status 'Created' + Write-Step "profile '$($definition.Slug)' ($($createdProfile.id)) enrollment=$enrollmentType" -Status 'Created' } return $resolved @@ -965,6 +1097,20 @@ Set-StrictMode -Version Latest Write-Host " -CommonName `$Env:ComputerName.ToUpper() -DnsName (Get-InfisicalSANList) -Install -InstallChain" } + <# + Reported here because Infisical will not hand the challenge back afterwards: a static SCEP + profile is unusable to anyone who did not capture this value. Re-running the script does not + reissue it, since an existing profile is adopted rather than recreated. + #> + if ($Script:ScepChallengeGenerated) { + Write-Host '' + Write-Host 'Generated SCEP challenge password (record it now, it cannot be read back):' + Write-Host '' + Write-Host " $($Script:ScepChallenge)" + Write-Host '' + Write-Host ' Pass -ScepChallengePassword next time to set a known value instead.' + } + [PSCustomObject]@{ BaseUri = $Script:ApiRoot OrganizationId = $resolvedOrganizationId @@ -973,6 +1119,7 @@ Set-StrictMode -Version Latest CertificatePolicies = $policies CertificateProfiles = $profiles Application = $application + ScepChallengePassword = $Script:ScepChallenge } } finally { -- 2.52.0 From c75cc145cbd23f1a9e9042e8139eacd359575ec9 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 22:28:35 -0400 Subject: [PATCH 13/15] Enable enrollment protocols on the application, not by cloning profiles The enrollment methods were not appearing in the UI because they were being set in the wrong place. A profile's own enrollmentType is one value, but that is only the base; what the UI lists under an application - "configure how this application will issue certificates via API, EST, ACME, or SCEP" - is a separate configuration on the application-to-profile link, and those are independent. A single profile can answer all four at once. That replaces the previous approach. The mecm-...-scep and ec-...-acme profiles are gone; there are three profiles again, one per policy, and each declares an Enrollment block naming the protocols it should answer. Applied with PUT to /applications/{id}/profiles/{id}/enrollment/{api,scep,acme}, which is idempotent by nature, so a re-run restates the same settings. The routes take PUT, not POST, and a POST there returns 404. SCEP now uses a dynamic challenge, so there is no shared secret to distribute or rotate; each request collects a one-time password from the challenge endpoint. -ScepChallengePassword is kept for anyone who sets ChallengeType to static, and is otherwise unused. Enabling a protocol is what makes Infisical mint its endpoint - a SCEP URL, challenge URL and RA certificate, or an ACME directory URL - so the run reads them back and prints them, and returns them under Enrollment. None of it can be derived from the configuration alone. Verified against a live instance: scepConfigured and acmeConfigured come back true on the intended profiles, the dynamic challenge settings round-trip, and a re-run restates without creating anything. Co-Authored-By: Claude Opus 5 --- ...ialize-InfisicalCertManagerEnvironment.ps1 | 300 ++++++++++++------ 1 file changed, 202 insertions(+), 98 deletions(-) diff --git a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 index b20814e..e6f378d 100644 --- a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 +++ b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 @@ -21,9 +21,12 @@ Two sets are seeded by default: an RSA hierarchy carrying server and client authentication for SCCM/MECM, and an ECDSA P-384 hierarchy carrying server, client, and code signing. - A profile carries one enrollment method, so a policy that should be reachable over more than one gets - a profile per method. Seeded by default: API on all three policies, SCEP alongside the RSA one for - clients that enrol without a token, and ACME alongside the EC server/client one. + Enrollment protocols are enabled on the link between the application and each profile, which is where + they are independent of one another, so a single profile can answer several at once. Seeded by + default: API everywhere, SCEP on the RSA profile with a dynamic challenge for clients that enrol + without a token, and ACME on the EC server/client profile. Enabling SCEP or ACME makes Infisical mint + the matching endpoint, and the run prints those URLs because they cannot be derived from the + configuration. The script is idempotent. Every object is looked up by its natural key before creation, so a re-run reports what already exists and creates only what is missing. It is safe to run repeatedly while @@ -161,13 +164,7 @@ Set-StrictMode -Version Latest Application = [Ordered]@{ Name = 'platform' Description = 'Endpoint and workload certificate enrollment.' - CertificateProfiles = @( - 'mecm-server-client-auth' - 'mecm-server-client-auth-scep' - 'ec-server-client-auth' - 'ec-server-client-auth-acme' - 'ec-code-signing' - ) + CertificateProfiles = @('mecm-server-client-auth', 'ec-server-client-auth', 'ec-code-signing') } Organization = [Ordered]@{ @@ -289,76 +286,65 @@ Set-StrictMode -Version Latest ) <# - A profile carries exactly one enrollment method. Infisical rejects a profile that mixes them - ("API enrollment type cannot have EST, ACME, or SCEP configuration"), so offering a policy over - more than one method means one profile per method, all pointing at the same policy and CA. + Enrollment is configured twice, at two different levels, and only the second one is what clients + actually use. - EnrollmentType is api, scep, acme, or est. Each takes only its own configuration: - api AutoRenew, RenewBeforeDays (1-30) - scep ScepChallengeType static (needs a challenge password) or dynamic (issues one per request) - acme SkipDnsOwnershipVerification, SkipEabBinding - est a passphrase and a bootstrap CA chain, so it is left to be configured by hand + The profile itself carries a single enrollmentType, and Infisical rejects a profile that mixes + them ("API enrollment type cannot have EST, ACME, or SCEP configuration"). That setting is left + at api for every profile below; it is the base the application builds on. - AutoRenew is an api-only setting. Neither the SCEP nor the ACME configuration has an equivalent, - because both protocols have the client drive renewal on its own schedule. + The application-to-profile link is where a profile is exposed over one or more protocols, which + is what the UI means by "configure how this application will issue certificates via API, EST, + ACME, or SCEP". Those are independent, so a single profile can serve all of them at once, and + enabling one is what makes Infisical mint its endpoint - a SCEP URL and RA certificate, or an + ACME directory URL. The Enrollment block below drives that step; omit a protocol to leave it off. + + Api AutoRenew, RenewBeforeDays (1-365) + Scep ChallengeType dynamic (a one-time password per request) or static (one shared secret), + IncludeCaCertInResponse, AllowCertBasedRenewal, and for dynamic the expiry in minutes + (5-1440) and the cap on outstanding challenges (1-1000) + Acme SkipDnsOwnershipVerification, SkipEabBinding + Est a passphrase and a bootstrap CA chain, so it is left to be configured by hand + + AutoRenew is an Api setting. Neither SCEP nor ACME has an equivalent, because both protocols + have the client drive renewal on its own schedule. Defaults fill in what a requester leaves out. They are required whenever the policy marks a constraint Required: Request-InfisicalCertificate does not send key usages of its own, so without a default the request arrives empty and is refused with "Missing required key usages". #> CertificateProfiles = @( - [Ordered]@{ - Slug = 'mecm-server-client-auth' - Description = 'API enrollment for SCCM/MECM site systems and clients.' - CertificateAuthority = 'rsa-issuing-ca' - CertificatePolicy = 'mecm-server-client-auth' - EnrollmentType = 'api' - AutoRenew = $True - RenewBeforeDays = 14 - Defaults = [Ordered]@{ - KeyAlgorithm = 'RSA_2048' - SignatureAlgorithm = 'RSA-SHA256' - KeyUsages = @('digital_signature', 'key_encipherment') - ExtendedKeyUsages = @('server_auth', 'client_auth') - } - } <# - SCEP alongside the API profile: it is how domain-joined Windows and mobile clients enrol - without a token, which is the NDES role SCCM/MECM would otherwise need. RSA because SCEP - client support for EC keys is patchy. + SCEP as well as API: it is how domain-joined Windows and mobile clients enrol without a + token, which is the NDES role SCCM/MECM would otherwise need. Dynamic challenge, so there is + no shared secret to distribute or rotate - each request collects a one-time password from + the challenge endpoint instead. #> [Ordered]@{ - Slug = 'mecm-server-client-auth-scep' - Description = 'SCEP enrollment for SCCM/MECM site systems and clients.' + Slug = 'mecm-server-client-auth' + Description = 'SCCM/MECM site systems and clients.' CertificateAuthority = 'rsa-issuing-ca' CertificatePolicy = 'mecm-server-client-auth' - EnrollmentType = 'scep' - ScepChallengeType = 'static' Defaults = [Ordered]@{ KeyAlgorithm = 'RSA_2048' SignatureAlgorithm = 'RSA-SHA256' KeyUsages = @('digital_signature', 'key_encipherment') ExtendedKeyUsages = @('server_auth', 'client_auth') } - } - [Ordered]@{ - Slug = 'ec-server-client-auth' - Description = 'API enrollment for general workload certificates.' - CertificateAuthority = 'ec-issuing-ca' - CertificatePolicy = 'ec-server-client-auth' - EnrollmentType = 'api' - AutoRenew = $True - RenewBeforeDays = 14 - Defaults = [Ordered]@{ - KeyAlgorithm = 'EC_secp384r1' - SignatureAlgorithm = 'ECDSA-SHA384' - KeyUsages = @('digital_signature') - ExtendedKeyUsages = @('server_auth', 'client_auth') + Enrollment = [Ordered]@{ + Api = [Ordered]@{ AutoRenew = $True; RenewBeforeDays = 14 } + Scep = [Ordered]@{ + ChallengeType = 'dynamic' + IncludeCaCertInResponse = $True + AllowCertBasedRenewal = $True + DynamicChallengeExpiryMinutes = 60 + DynamicChallengeMaxPending = 100 + } } } <# - ACME alongside the API profile, for workloads that already speak it (cert-manager, Caddy, - Traefik, acme.sh). + ACME as well as API, for workloads that already speak it (cert-manager, Caddy, Traefik, + acme.sh). SkipDnsOwnershipVerification is on because this is an internal CA issuing internal names: the DNS-01 challenge proves control of a public zone, which a name like host.contoso.local @@ -366,19 +352,20 @@ Set-StrictMode -Version Latest off if the names being issued live in a zone Infisical can actually resolve. #> [Ordered]@{ - Slug = 'ec-server-client-auth-acme' - Description = 'ACME enrollment for general workload certificates.' - CertificateAuthority = 'ec-issuing-ca' - CertificatePolicy = 'ec-server-client-auth' - EnrollmentType = 'acme' - SkipDnsOwnershipVerification = $True - SkipEabBinding = $False - Defaults = [Ordered]@{ + Slug = 'ec-server-client-auth' + Description = 'General workload certificates.' + CertificateAuthority = 'ec-issuing-ca' + CertificatePolicy = 'ec-server-client-auth' + Defaults = [Ordered]@{ KeyAlgorithm = 'EC_secp384r1' SignatureAlgorithm = 'ECDSA-SHA384' KeyUsages = @('digital_signature') ExtendedKeyUsages = @('server_auth', 'client_auth') } + Enrollment = [Ordered]@{ + Api = [Ordered]@{ AutoRenew = $True; RenewBeforeDays = 14 } + Acme = [Ordered]@{ SkipDnsOwnershipVerification = $True; SkipEabBinding = $False } + } } <# Code signing is API only. SCEP and ACME both exist to prove control of a device or a DNS @@ -386,18 +373,18 @@ Set-StrictMode -Version Latest #> [Ordered]@{ Slug = 'ec-code-signing' - Description = 'API enrollment for code signing certificates.' + Description = 'Code signing certificates.' CertificateAuthority = 'ec-issuing-ca' CertificatePolicy = 'ec-code-signing' - EnrollmentType = 'api' - AutoRenew = $True - RenewBeforeDays = 14 Defaults = [Ordered]@{ KeyAlgorithm = 'EC_secp384r1' SignatureAlgorithm = 'ECDSA-SHA384' KeyUsages = @('digital_signature') ExtendedKeyUsages = @('code_signing') } + Enrollment = [Ordered]@{ + Api = [Ordered]@{ AutoRenew = $True; RenewBeforeDays = 14 } + } } ) } @@ -731,6 +718,117 @@ Set-StrictMode -Version Latest Write-Step "attached $($missing.Count) profile(s)" -Status 'Sub' } + function Set-SeededApplicationEnrollment { + <# + Turns on each protocol a profile should answer, on its link to the application. This is the step + that makes a method visible in the UI and gives Infisical something to mint an endpoint from: + enabling SCEP creates the RA certificate and the pkiclient.exe and challenge URLs, and enabling + ACME creates the directory URL. Nothing here is exclusive, so a profile can serve several. + + PUT replaces the configuration for one protocol, which makes re-running safe: the same settings + produce the same result, and a protocol left out of the Enrollment block is simply never + touched. Removing one from the block therefore does not disable it - delete it in the UI, or + send DELETE to the same route. + #> + param([String]$ProjectId, $Application, $Profiles) + + if ($Null -eq $Application -or [String]::IsNullOrWhiteSpace($ProjectId)) { return } + + Write-Step 'Enrollment methods' + + foreach ($definition in $Configuration.CertificateProfiles) { + if (-not $Profiles.Contains($definition.Slug)) { continue } + if (-not $definition.Contains('Enrollment') -or $Null -eq $definition.Enrollment) { continue } + + $profileId = $Profiles[$definition.Slug].id + + foreach ($method in @('Api', 'Scep', 'Acme')) { + if (-not $definition.Enrollment.Contains($method)) { continue } + + $settings = $definition.Enrollment[$method] + $payload = ConvertTo-EnrollmentPayload -Method $method -Settings $settings + $route = $method.ToLowerInvariant() + + if (-not $PSCmdlet.ShouldProcess("$($definition.Slug) ($route)", 'Configure enrollment')) { + Write-Step "would enable $route on '$($definition.Slug)'" -Status 'WhatIf' + continue + } + + $payload.projectId = $ProjectId + $Null = Invoke-InfisicalApi -Method 'PUT' -Body $payload ` + -Path "/api/v1/cert-manager/applications/$($Application.id)/profiles/$profileId/enrollment/$route" + + $detail = switch ($method) { + 'Scep' { " ($($settings.ChallengeType) challenge)" } + 'Api' { if ($settings.AutoRenew) { " (auto-renew $($settings.RenewBeforeDays)d)" } else { ' (no auto-renew)' } } + default { '' } + } + Write-Step "$route on '$($definition.Slug)'$detail" -Status 'Created' + } + } + } + + function Get-SeededEnrollmentSummary { + <# + Reads back what each profile ended up answering, because the endpoint URLs and the SCEP RA + certificate are generated by Infisical and are not knowable from the configuration alone. + #> + param([String]$ProjectId, $Application, $Profiles) + + $summary = [Ordered]@{} + if ($Null -eq $Application -or [String]::IsNullOrWhiteSpace($ProjectId)) { return $summary } + + foreach ($slug in $Profiles.Keys) { + $profileId = $Profiles[$slug].id + try { + $summary[$slug] = Invoke-InfisicalApi -Method 'GET' ` + -Path "/api/v1/cert-manager/applications/$($Application.id)/profiles/$profileId/enrollment?projectId=$ProjectId" + } + catch { + Write-Verbose "Could not read enrollment for '$slug': $($_.Exception.Message)" + } + } + + return $summary + } + + function ConvertTo-EnrollmentPayload { + param([String]$Method, $Settings) + + $payload = [Ordered]@{} + switch ($Method) { + 'Api' { + $payload.autoRenew = [Bool]$Settings.AutoRenew + if ($payload.autoRenew -and $Null -ne $Settings.RenewBeforeDays) { + $payload.renewBeforeDays = $Settings.RenewBeforeDays + } + } + 'Scep' { + $challengeType = if ($Settings.Contains('ChallengeType')) { $Settings.ChallengeType } else { 'dynamic' } + $payload.challengeType = $challengeType + + # A static challenge is one shared secret; a dynamic one is minted per request instead. + if ($challengeType -eq 'static') { + $payload.challengePassword = Get-ScepChallengePassword + } + else { + if ($Settings.Contains('DynamicChallengeExpiryMinutes')) { $payload.dynamicChallengeExpiryMinutes = $Settings.DynamicChallengeExpiryMinutes } + if ($Settings.Contains('DynamicChallengeMaxPending')) { $payload.dynamicChallengeMaxPending = $Settings.DynamicChallengeMaxPending } + } + + if ($Settings.Contains('IncludeCaCertInResponse')) { $payload.includeCaCertInResponse = [Bool]$Settings.IncludeCaCertInResponse } + if ($Settings.Contains('AllowCertBasedRenewal')) { $payload.allowCertBasedRenewal = [Bool]$Settings.AllowCertBasedRenewal } + } + 'Acme' { + $payload.skipDnsOwnershipVerification = [Bool]$Settings.SkipDnsOwnershipVerification + $payload.skipEabBinding = [Bool]$Settings.SkipEabBinding + } + default { throw "Unsupported enrollment method '$Method'." } + } + + return $payload + } + function Get-SeededCertificateAuthorities { param([String]$ProjectId) @@ -1013,7 +1111,17 @@ Set-StrictMode -Version Latest continue } - $enrollmentType = if ($definition.Contains('EnrollmentType')) { $definition.EnrollmentType } else { 'api' } + <# + Always api at the profile level. The profile may only name one enrollment type, and the + protocols a client actually reaches are enabled per application-profile link further down, + where they are not mutually exclusive. + #> + $apiEnrollment = if ($definition.Enrollment.Contains('Api')) { $definition.Enrollment.Api } else { [Ordered]@{} } + $apiConfig = [Ordered]@{ autoRenew = [Bool]$apiEnrollment.AutoRenew } + if ($apiConfig.autoRenew -and $Null -ne $apiEnrollment.RenewBeforeDays) { + # The profile-level cap is 30 days, where the application-level one allows up to 365. + $apiConfig.renewBeforeDays = [Math]::Min([Int]$apiEnrollment.RenewBeforeDays, 30) + } $body = [Ordered]@{ projectId = $ProjectId @@ -1021,34 +1129,9 @@ Set-StrictMode -Version Latest description = $definition.Description caId = $Authorities[$definition.CertificateAuthority].id certificatePolicyId = $Policies[$definition.CertificatePolicy].id - enrollmentType = $enrollmentType + enrollmentType = 'api' issuerType = 'ca' - } - - # Only the configuration matching the enrollment type may be sent; the others are rejected. - switch ($enrollmentType) { - 'api' { - $apiConfig = [Ordered]@{ autoRenew = [Bool]$definition.AutoRenew } - if ($definition.AutoRenew -and $Null -ne $definition.RenewBeforeDays) { - $apiConfig.renewBeforeDays = $definition.RenewBeforeDays - } - $body.apiConfig = $apiConfig - } - 'scep' { - $challengeType = if ($definition.Contains('ScepChallengeType')) { $definition.ScepChallengeType } else { 'static' } - $scepConfig = [Ordered]@{ challengeType = $challengeType } - if ($challengeType -eq 'static') { - $scepConfig.challengePassword = Get-ScepChallengePassword - } - $body.scepConfig = $scepConfig - } - 'acme' { - $body.acmeConfig = [Ordered]@{ - skipDnsOwnershipVerification = [Bool]$definition.SkipDnsOwnershipVerification - skipEabBinding = [Bool]$definition.SkipEabBinding - } - } - default { throw "Profile '$($definition.Slug)' declares unsupported EnrollmentType '$enrollmentType'." } + apiConfig = $apiConfig } $defaults = ConvertTo-ProfileDefaults -Definition $definition.Defaults @@ -1076,6 +1159,8 @@ Set-StrictMode -Version Latest $policies = Get-SeededCertificatePolicies -ProjectId $projectId $profiles = Get-SeededCertificateProfiles -ProjectId $projectId -Authorities $authorities -Policies $policies $application = Get-SeededApplication -ProjectId $projectId -Profiles $profiles + Set-SeededApplicationEnrollment -ProjectId $projectId -Application $application -Profiles $profiles + $enrollment = Get-SeededEnrollmentSummary -ProjectId $projectId -Application $application -Profiles $profiles Write-Host '' Write-Step 'Done.' @@ -1097,6 +1182,24 @@ Set-StrictMode -Version Latest Write-Host " -CommonName `$Env:ComputerName.ToUpper() -DnsName (Get-InfisicalSANList) -Install -InstallChain" } + # Minted by Infisical when a protocol is enabled, so they can only be reported by reading them back. + foreach ($slug in $enrollment.Keys) { + $entry = $enrollment[$slug] + $scep = Get-ApiProperty -InputObject $entry -Name 'scep' + $acme = Get-ApiProperty -InputObject $entry -Name 'acme' + if ($Null -eq $scep -and $Null -eq $acme) { continue } + + Write-Host '' + Write-Host "Enrollment endpoints for '$slug':" + if ($Null -ne $scep) { + Write-Host " SCEP $(Get-ApiProperty -InputObject $scep -Name 'scepEndpointUrl')" + Write-Host " challenge $(Get-ApiProperty -InputObject $scep -Name 'challengeEndpointUrl')" + } + if ($Null -ne $acme) { + Write-Host " ACME $(Get-ApiProperty -InputObject $acme -Name 'directoryUrl')" + } + } + <# Reported here because Infisical will not hand the challenge back afterwards: a static SCEP profile is unusable to anyone who did not capture this value. Re-running the script does not @@ -1119,6 +1222,7 @@ Set-StrictMode -Version Latest CertificatePolicies = $policies CertificateProfiles = $profiles Application = $application + Enrollment = $enrollment ScepChallengePassword = $Script:ScepChallenge } } -- 2.52.0 From b27fe6f002f4ba508eadee021396e4ab685553f1 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 22:34:27 -0400 Subject: [PATCH 14/15] Drop a stale variable from the profile creation log line The line still interpolated $enrollmentType, which went away when profile creation stopped varying by enrollment method. Every run since had adopted existing profiles, so the create path never executed and never surfaced it. A run against an emptied project failed there immediately. Co-Authored-By: Claude Opus 5 --- Tools/Initialize-InfisicalCertManagerEnvironment.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 index e6f378d..3df8d20 100644 --- a/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 +++ b/Tools/Initialize-InfisicalCertManagerEnvironment.ps1 @@ -1140,7 +1140,7 @@ Set-StrictMode -Version Latest $created = Invoke-InfisicalApi -Method 'POST' -Path '/api/v1/cert-manager/certificate-profiles' -Body $body $createdProfile = Get-ApiObject -InputObject $created -Name 'certificateProfile' $resolved[$definition.Slug] = $createdProfile - Write-Step "profile '$($definition.Slug)' ($($createdProfile.id)) enrollment=$enrollmentType" -Status 'Created' + Write-Step "profile '$($definition.Slug)' ($($createdProfile.id))" -Status 'Created' } return $resolved -- 2.52.0 From 22c2db4a96bcfbf61c099ee740ae5a9f1f54932d Mon Sep 17 00:00:00 2001 From: gsadmin Date: Fri, 31 Jul 2026 22:46:14 -0400 Subject: [PATCH 15/15] Repair the changelog and write up the seeding work Two problems, one cause. Before 62131e7 the promotion step renamed the Unreleased heading instead of consuming it, appending "(carried forward)" on every build - one heading had accumulated the suffix seven times. Notes were left stranded under 103 such headings while the version sections the release workflow extracts held only their build line, so a release would have published nothing. 62131e7 fixed the mechanism but never repaired the backlog, and Unreleased was empty besides. Consolidated the stranded notes under Unreleased and collapsed duplicate version sections: 1441 lines to 570, with every one of the 144 bullets and 16 sub-headings still present, checked by diffing the sets before and after. Described the seeding work of the last several commits, which was undocumented: the enrollment protocols and where they are configured, the dynamic SCEP challenge, auto-renew by default, and the four defects the first live run exposed. Verified the mechanism end to end - a build promotes the notes into its version section, leaving Unreleased empty, and the workflow's extraction returns 245 lines rather than a bare build line. 340 tests pass. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 1549 ++++-------------- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 506368 -> 506368 bytes 3 files changed, 354 insertions(+), 1199 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00211a2..bbfeae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,75 +6,25 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased -## 2026.08.01.0140 +## 2026.08.01.0245 -_Build produced from commit 74d22a941c33._ +### Added (environment seeding) -## 2026.08.01.0123 +- The seeding script configures enrollment protocols, seeding API on every profile, SCEP with a dynamic challenge on the RSA profile, and ACME on the EC server/client profile. Enabling one is what makes Infisical mint its endpoint, so the run reads back and prints the SCEP, challenge, and ACME directory URLs, and returns them under `Enrollment`. +- Protocols are enabled on the **application-to-profile link**, not on the profile. A profile's own `enrollmentType` is a single value, but the link carries an independent configuration per protocol, which is what the console lists under an application — so one profile can answer several at once. The routes take `PUT`; a `POST` returns 404. +- SCEP defaults to a dynamic challenge, so there is no shared secret to distribute or rotate. `-ScepChallengePassword` supplies one for `ChallengeType = 'static'`, and when that is used without a value the run generates one and prints it once, because Infisical will not hand it back afterwards. +- Auto-renew is on by default for every API profile. It is an API-level setting; neither SCEP nor ACME has an equivalent, because both protocols have the client drive renewal itself. -_Build produced from commit f2a1492b66de._ +### Fixed (environment seeding) -## 2026.07.31.2140 +- Seeded certificate policies now carry subject, SAN, and signature-algorithm constraints, and profiles carry defaults. Infisical refuses any attribute with no policy entry ("no subject policies defined"), refuses a policy defining no signature algorithm, and refuses a request missing a usage the policy marks required — `Request-InfisicalCertificate` sends no key usages of its own, so a profile default has to supply them. The previous configuration omitted all of this and could not issue. +- API responses are read through accessors that tolerate an absent property or a differently shaped payload. The cert-manager routes return bare payloads — a naked array for a list, the resource itself for a create — where the secrets and pki routes wrap theirs in a named property, and under `Set-StrictMode` each mismatch was a terminating error. The application-to-profile listing returns join rows keyed by `profileId` rather than profile objects with an `id`. +- The certificate-authority loop assigned a local `$configuration`, which shadowed the script-level `$Configuration` block because PowerShell variable names are case-insensitive; every authority after the first then failed to resolve its organization details. The `$profile` loop variables were renamed for the same reason — `$profile` is an automatic variable. +- The documented enumeration values dropped `domain_component`, `upn`, and `any_purpose`, none of which the API accepts. -_Build produced from commit 62131e750109._ +### Fixed (build) -## 2026.07.31.2136 - -_Build produced from commit 62131e750109._ - -## 2026.07.31.2019 - -- Build produced from commit e7674af1617c. - -## Unreleased (carried forward) - -## 2026.07.31.2006 - -- Build produced from commit 276958e3a83a. - -## Unreleased (carried forward) - -## 2026.07.31.1958 - -- Build produced from commit 633f40c1fa54. - -## Unreleased (carried forward) - -## 2026.07.31.1924 - -- Build produced from commit 93b0cc1924ec. - -## Unreleased (carried forward) - -## 2026.07.31.0045 - -- Build produced from commit d47a5af6b3a6. - -## Unreleased (carried forward) - -## 2026.07.30.2350 - -- Build produced from commit 67cf0abac2dd. - -## Unreleased (carried forward) - -## 2026.07.30.2344 - -- Build produced from commit dadba2f4c890. - -## Unreleased (carried forward) - -## 2026.07.30.2305 - -- Build produced from commit f65124fd9911. - -## Unreleased (carried forward) - -## 2026.07.30.2259 - -- Build produced from commit f56fd15b3864. - -## Unreleased (carried forward) +- `CHANGELOG.md` no longer accumulates duplicate `## Unreleased (carried forward)` headings. The pre-`62131e7` promotion step appended a suffix on every build instead of consuming the section, stranding release notes under 103 such headings — one had accumulated the suffix seven times — while the version sections the release workflow extracts held only their build line. Existing notes were consolidated and duplicate version sections collapsed, taking the file from 1441 lines to 570 with no content lost. ### Changed (project scoping, follow-up) @@ -158,18 +108,6 @@ _Build produced from commit 62131e750109._ - Reuse detection searches the same store location the install will write to, instead of always searching `CurrentUser`. - Elevation detection moved to `InfisicalCmdletBase` and is shared with `Write-InfisicalScepMdmProfileToWmi`. -## 2026.07.30.2239 - -- Build produced from commit f62b3e90b1b1. - -## Unreleased (carried forward) - -## 2026.07.30.2151 - -- Build produced from commit 14c8c4f3845b. - -## Unreleased (carried forward) - ### Breaking - Operation failures are now reported as **non-terminating** errors, so `-ErrorAction` (and `$ErrorActionPreference`) decides the outcome: `Continue` writes the error and lets a pipeline keep processing, `SilentlyContinue` suppresses it while still populating `$Error` and `-ErrorVariable`, `Ignore` records nothing, and `Stop` is promoted by the engine into a terminating error. Previously every failure was terminating and ignored `-ErrorAction` entirely. @@ -197,76 +135,10 @@ _Build produced from commit 62131e750109._ - `Get-InfisicalCertificateAuthority` table output includes a `DirectIssue` column (`EnableDirectIssuance`), so CAs eligible for `-CertificateAuthorityId` are visible without formatting the full object. - The README end-to-end PKI example issues through a PKI subscriber and documents how to choose among the three issuance parameter sets. -## 2026.06.16.0217 - -- Build produced from commit 6318d06362ad. - -## Unreleased (carried forward) - -## 2026.06.16.0215 - -- Build produced from commit 6318d06362ad. - -## Unreleased (carried forward) - -## 2026.06.16.0213 - -- Build produced from commit 6318d06362ad. - -## Unreleased (carried forward) - -## 2026.06.16.0207 - -- Build produced from commit 6318d06362ad. - -## Unreleased (carried forward) - -## 2026.06.16.0156 - -- Build produced from commit 6318d06362ad. - -## Unreleased (carried forward) - -## 2026.06.10.2018 - -- Build produced from commit daf1cdce6576. - -## Unreleased (carried forward) - - Renamed prefix-related parameters across `ConvertTo-InfisicalSecretDictionary`, `Import-InfisicalSecret`, `Export-InfisicalSecrets`, and `Start-InfisicalProcess`: `-Prefix` is now `-SecretsPrefix` and `-ForcePrefix` is now `-ForceSecretsPrefix`. `Start-InfisicalProcess` also renames the pipeline parameter `-Secret` to `-Secrets`. The previous names remain available as parameter aliases (`Prefix`, `ForcePrefix`, `Secret`) for backward compatibility. -## 2026.06.07.1435 - -- Build produced from commit 97193d46f2ff. - -## Unreleased (carried forward) - -## 2026.06.07.1426 - -- Build produced from commit b5575222eb36. - -## Unreleased (carried forward) - - Added `-ForcePrefix` switch to `ConvertTo-InfisicalSecretDictionary`, `Import-InfisicalSecret`, `Export-InfisicalSecrets`, and `Start-InfisicalProcess`. When `-Prefix` is supplied, names that already start with the prefix (case-insensitive) are now left as-is to prevent double-prefixing (e.g. `MYAPP_API_KEY` stays `MYAPP_API_KEY` when `-Prefix 'MYAPP_'` is supplied). Pass `-ForcePrefix` to restore unconditional prepending. Centralized in a new `PSInfisicalAPI.Common.InfisicalPrefix.Apply` helper. -## 2026.06.07.1421 - -- Build produced from commit b5575222eb36. - -## Unreleased (carried forward) - -## 2026.06.07.1350 - -- Build produced from commit 1aa51b8cbf9c. - -## Unreleased (carried forward) - -## 2026.06.07.0017 - -- Build produced from commit 77cb03ec9845. - -## Unreleased (carried forward) - - Added Organization CRUD cmdlets: `Get-InfisicalOrganization`, `New-InfisicalOrganization`, `Update-InfisicalOrganization`, `Remove-InfisicalOrganization`. `Get` lists every organization the active session can see (List parameter set, default) and returns a single record when `-OrganizationId` is supplied (Single parameter set). `New`/`Update`/`Remove` honor `-WhatIf`/`-Confirm`; `Remove` defaults to High `ConfirmImpact` and supports `-PassThru`. No project context required. Backed by new `InfisicalOrganization` model, DTO, mapper, and client wired into `InfisicalEndpointRegistry` (`ListOrganizations`, `RetrieveOrganization`, `CreateOrganization`, `UpdateOrganization`, `DeleteOrganization`). - Added Sub-Organization CRUD cmdlets: `Get-InfisicalSubOrganization`, `New-InfisicalSubOrganization`, `Update-InfisicalSubOrganization`, `Remove-InfisicalSubOrganization`, targeting the `/api/v1/sub-organizations` Beta endpoints. `Get` lists by default and accepts optional `-Limit`, `-Offset`, `-Search`, `-OrderBy`, `-OrderDirection`, and `-IsAccessible` query parameters; supplying `-SubOrganizationId` returns a single record. `New`/`Update`/`Remove` honor `-WhatIf`/`-Confirm`; `Remove` defaults to High `ConfirmImpact` and supports `-PassThru`. No project context required. Backed by new `InfisicalSubOrganization` model, DTO, mapper, and client wired into `InfisicalEndpointRegistry` (`ListSubOrganizations`, `RetrieveSubOrganization`, `CreateSubOrganization`, `UpdateSubOrganization`, `DeleteSubOrganization`). - Added `Get-InfisicalSANList` cmdlet: emits a deduplicated SAN candidate set containing the local device name, the device name suffixed with each non-empty DNS suffix found across operational adapters and the system primary domain, every IPv4 unicast address falling within RFC 1918 (10/8, 172.16/12, 192.168/16) or CGNAT (100.64/10), and the IPv4/IPv6 loopback addresses (127.0.0.1, ::1). Intended to feed `Request-InfisicalCertificate -DnsName` directly. @@ -274,239 +146,47 @@ _Build produced from commit 62131e750109._ - `Get-InfisicalSANList`: output is a single strongly-typed `System.String[]` array emitted non-enumerated (`OutputType(string[])`), so variable assignment yields `string[]` rather than `object[]`. This lets `[System.Collections.Generic.List[string]]::AddRange()` consume the result directly and lets the array bind straight to `string[]` parameters such as `Request-InfisicalCertificate -DnsName`. - `build.ps1` `CmdletsToExport` and `Test-ModuleImports` expected list now contain 51 cmdlets. `docs/DesignSpec.md` updated with `§16.7` (Organizations) and `§16.8` (Sub-Organizations); full MAML help added for all 9 new cmdlets in `Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml`. -## 2026.06.06.2229 - -- Build produced from commit 207e7429e448. - -## Unreleased (carried forward) - - `Start-InfisicalProcess`: switched stdout/stderr capture to event-based `OutputDataReceived`/`ErrorDataReceived` with `BeginOutputReadLine`/`BeginErrorReadLine` (removed `Task`/`ReadToEndAsync`/`GetAwaiter().GetResult()` to eliminate PowerShell `SynchronizationContext` deadlock risk). Restored the original `do { log; sleep } while (!HasExited)` polling pattern using `Thread.Sleep(pollInterval)` so verbose "has been running for X" / "Checking again in Y" messages fire at the configured cadence even when no `-ExecutionTimeout` is supplied. - `Start-InfisicalProcess`: TimeSpan values in verbose logs and on the result now use a friendly format ("`7 seconds, and 364 milliseconds`", "`1 minute, and 30 seconds`", "`N/A`" when zero) matching the legacy `Start-ProcessWithOutput` `GetTimeSpanMessage` scriptblock. Added `DurationFriendly` property to `InfisicalProcessResult` and a "The command execution took X" verbose line at completion. -## 2026.06.06.2227 - -- Build produced from commit d3c7b83da717. - -## Unreleased (carried forward) - -## 2026.06.06.2221 - -- Build produced from commit d3c7b83da717. - -## Unreleased (carried forward) - -## 2026.06.06.2207 - -- Build produced from commit d3c7b83da717. - -## Unreleased (carried forward) - -## 2026.06.06.2206 - -- Build produced from commit d3c7b83da717. - -## Unreleased (carried forward) - -## 2026.06.06.2155 - -- Build produced from commit d3c7b83da717. - -## Unreleased (carried forward) - - Added `Start-InfisicalProcess` cmdlet: launches a child process with `InfisicalSecret` objects (pipeline or `-Secret`) decrypted directly into `ProcessStartInfo.Environment`, with optional `-Prefix`, additional `-EnvironmentVariables`, stdout/stderr capture, `-AcceptableExitCodeList` validation, `-ParsingExpression` regex parsing, `-ExecutionTimeout`/`-ExecutionTimeoutInterval` polling, `-NoWait`, `-WindowStyle`/`-CreateNoWindow` parameter sets, `-Priority`, `-StandardInputObjectList`, `-SecureArgumentList`, `-LogOutput`, `-ContinueOnError`, and `ShouldProcess` support. Secret plaintext is never written to user or machine scope. `build.ps1` `CmdletsToExport` and `Test-ModuleImports` expected list now contain 42 cmdlets. -## 2026.06.06.2138 - -- Build produced from commit 318db7048017. - -## Unreleased (carried forward) - -## 2026.06.05.2040 - -- Build produced from commit 1270c9099cae. - -## Unreleased (carried forward) - -## 2026.06.05.0240 - -- Build produced from commit b438abf18f18. - -## Unreleased (carried forward) - -## 2026.06.05.0215 - -- Build produced from commit 82f99ea7d4a4. - -## Unreleased (carried forward) - -## 2026.06.05.0205 - -- Build produced from commit 86968c18cb15. - -## Unreleased (carried forward) - -## 2026.06.05.0117 - -- Build produced from commit cffda99591c9. - -## Unreleased (carried forward) - -## 2026.06.05.0015 - -- Build produced from commit fb27ab8a8503. - -## Unreleased (carried forward) - - Fixed `ParameterNameConflictsWithAlias` registration error on `Get-InfisicalCertificateApplication`, `Get-InfisicalCertificateApplicationEnrollment`, and `New-InfisicalScepDynamicChallenge`. The cmdlets each declared an `[Alias]` entry that matched the parameter's own name, which PowerShell rejects at bind time and made the cmdlets unusable. -## 2026.06.04.2335 - -- Build produced from commit 3c39a99b9a4c. - -## Unreleased (carried forward) - -## 2026.06.04.2305 - -- Build produced from commit 485ee8a7dd6a. - -## Unreleased (carried forward) - - `Get-InfisicalCertificateApplication` added with `List` (default), `ById`, and `ByName` parameter sets. Binds to `/api/v1/cert-manager/applications` (list) and `/api/v1/cert-manager/applications/{applicationId}` / `/by-name/{name}` for single retrieval. Requests carry the `x-infisical-project-id` header so the certificate-manager scope resolves correctly. New `InfisicalCertificateApplication` model surfaces id, project, name, description, and counts. - `Get-InfisicalCertificateApplicationEnrollment` added. Returns the API/EST/ACME/SCEP enrollment configuration for an application/profile pair (`GET /api/v1/cert-manager/applications/{applicationId}/profiles/{profileId}/enrollment`). The new `InfisicalCertificateApplicationEnrollment` model includes sub-blocks for each enrollment protocol; the SCEP block computes a SHA-1 `RaCertificateThumbprint` from the RA certificate PEM so it can be fed directly into MDM payloads. - `New-InfisicalScepDynamicChallenge` added. Wraps `POST /scep/applications/{applicationId}/profiles/{profileId}/challenge` and returns the minted challenge as a `SecureString` (default) or string (`-AsPlainText`). The endpoint is gated by the dynamic-challenge feature on the target Infisical instance and by the calling identity's permission on `certificate-application-enrollment`. - `Get-InfisicalScepMdmProfile` reworked into three parameter sets. `FromEnrollment` (new default) consumes an `InfisicalCertificateApplicationEnrollment` and auto-resolves `ServerUrl` from `scep.scepEndpointUrl`, `CAThumbprint` from the RA certificate, and the SCEP challenge (auto-minting when `challengeType=dynamic` and `-Challenge` is not supplied). `FromProfile` keeps the legacy projection from an `InfisicalCertificateProfile`, now requires `-ApplicationId`, and the default server URL is built against `/scep/applications/{appId}/profiles/{profileId}/pkiclient.exe`. `Manual` requires explicit `-ServerUrl`, `-Challenge`, and `-UniqueId`. - `InfisicalApiInvoker` accepts an optional `extraHeaders` argument so callers can attach the `x-infisical-project-id` header and override `Accept` for plain-text responses (used by the new SCEP challenge endpoint). -## 2026.06.04.2147 - -- Build produced from commit 183fb48c32ce. - -## Unreleased (carried forward) - - `Get-InfisicalScepMdmProfile` added. Projects an `InfisicalCertificateProfile` (pipeline-bound) into a new `InfisicalScepMdmProfile` model that mirrors the Windows `ClientCertificateInstall/SCEP` CSP node set. `-ServerUrl` defaults to `{baseUri}/scep/{profileId}/pkiclient.exe` derived from the active connection (the `pkiclient.exe` suffix is the RFC 8894 / Cisco SCEP client compatibility holdover, not a server-side executable). `-UniqueId` defaults to a sanitized slug. `-Challenge` is a `SecureString` decrypted only when materializing the model. `KeyAlgorithm` and `EkuMapping` are inherited from the source profile defaults unless overridden. - `Export-InfisicalScepMdmProfile` added. Serializes the model via `InfisicalScepMdmProfile.ToSyncMl()` (XDocument build, XmlWriter emit, XmlReader round-trip validation) and writes the result to `-Path` as UTF-8 without BOM. Auto-creates the target directory, honors `-WhatIf`/`-Confirm`, and follows the project rule for `-Force`: if the destination exists without `-Force`, the cmdlet logs a warning and returns instead of throwing. `-PassThru` emits the resulting `FileInfo`. - `Write-InfisicalScepMdmProfileToWmi` added. Submits the same model to the local MDM Bridge WMI provider by invoking `New-CimInstance -Namespace root/cimv2/mdm/dmmap -ClassName MDM_ClientCertificateInstall_SCEP02 -Property ` through the host runspace (no new package references). Guards: throws `PlatformNotSupportedException` off Windows; device-scope enrollment requires an elevated session unless `-SkipElevationCheck` is passed; supports `-WhatIf`/`-Confirm`; `-PassThru` emits the returned CIM instance. Override `-ClassName` when targeting a different SCEP CSP version on the host. -## 2026.06.04.2112 - -- Build produced from commit 3754de74f6c8. - -## Unreleased (carried forward) - - Infisical API error responses are now parsed to surface the server-side `message`, `error`, and `reqId` fields. The 4xx/5xx exception message includes the human-readable explanation (e.g. "The project is of type secret-manager") instead of an opaque `Infisical API returned 400 (Bad Request)`. The `InfisicalApiException` gains `ApiErrorMessage` and `ApiRequestId` properties; `InfisicalErrorDetails` carries the same fields so PowerShell error records and logger output expose them. - `Get-InfisicalCertificateProfile` added with `List` (default) and `ById` parameter sets. List binds to `GET /api/v1/cert-manager/certificate-profiles` (optional `-Limit`, `-Offset`, `-IncludeConfigs`); ById binds to `GET /api/v1/cert-manager/certificate-profiles/{certificateProfileId}`. New `InfisicalCertificateProfile` model surfaces ca/policy ids, slug, enrollment type, per-profile defaults (ttl, key/extended key usages), and the embedded CA/policy/apiConfig summaries. - `Get-InfisicalCertificatePolicy` added with `List` (default) and `ById` parameter sets. List binds to `GET /api/v1/cert-manager/certificate-policies` (optional `-Limit`, `-Offset`); ById binds to `GET /api/v1/cert-manager/certificate-policies/{certificatePolicyId}`. New `InfisicalCertificatePolicy` model surfaces subject, SANs, key usages, extended key usages, algorithms, and validity. Polymorphic string-or-array fields (`allowed`, `required`, `keyAlgorithm`) are normalized to arrays; `sans` is normalized whether the API returns an object or an array. - `Get-InfisicalCertificateAuthority` gains a `-Kind` parameter on the List parameter set with values `Internal` (default, preserves prior behavior against `/api/v1/cert-manager/ca/internal`), `Any` (binds to the generic `/api/v1/cert-manager/ca` endpoint which returns both internal and ACME CAs), and `Acme` (uses the generic endpoint and client-side filters to ACME issuers only). ById retrieval is unchanged and still resolves against the internal CA endpoint. - `Request-InfisicalCertificate` gains a `ByProfile` parameter set bound by the new `-CertificateProfileId` parameter (alias `ProfileId`). The cmdlet generates a local keypair and CSR as usual, then POSTs to `/api/v1/cert-manager/certificates` with the profile id, the CSR, and a subject/attribute envelope (commonName, organization, organizationalUnit, country, state, locality, ttl, notBefore, notAfter, keyUsages, extendedKeyUsages). The wrapped response (`{certificate:{certificate,certificateChain,issuingCaCertificate,serialNumber,certificateId,privateKey}, certificateRequestId, status, message}`) is unwrapped into the existing `InfisicalSignedCertificate` shape so the install / reuse / chain-completion paths continue to work unchanged. Issuance that returns without a certificate body (e.g. status `pending_approval` or `pending_validation`) is logged as a warning and the cmdlet emits a status-only `InfisicalCertificateResult` (new `Status`, `StatusMessage`, `CertificateRequestId` properties) instead of throwing; install / chain / private-key-write steps are skipped in that case. Whether issuance is immediate or pending is dictated by the certificate policy bound to the profile (auto-approve vs. manual review and any required validation). -## 2026.06.04.1920 - -- Build produced from commit 0f8f44afdb38. - -## Unreleased (carried forward) - - `build.ps1` gains a `-CommitArtifacts` switch that, after a successful build, stages and commits only the build outputs (`Module/PSInfisicalAPI/bin/**`, `Module/PSInfisicalAPI/PSInfisicalAPI.psd1`, and the auto-inserted `CHANGELOG.md` build stamp) with a message that references the source commit whose hash is now embedded in `BuildCommitHash`. The switch is mutually exclusive with the older broader `-CommitOnSuccess` (which still uses `git add -A`). README extended with a "Committing source and build artifacts in lockstep" section describing the recommended two-commit workflow. -## 2026.06.04.1917 - -- Build produced from commit a34db831d8bf. - -## Unreleased (carried forward) - -## 2026.06.04.1915 - -- Build produced from commit 2489b7adca98. - -## Unreleased (carried forward) - -## 2026.06.04.1911 - -- Build produced from commit 51bf819c37e5. - -## Unreleased (carried forward) - -## 2026.06.04.1906 - -- Build produced from commit 51bf819c37e5. - -## Unreleased (carried forward) - - **BREAKING**: Removed the plural-noun discovery cmdlets `Get-InfisicalProjects`, `Get-InfisicalEnvironments`, `Get-InfisicalFolders`, `Get-InfisicalTags`, `Get-InfisicalSecrets`, and `Get-InfisicalCertificates`. Their behavior is now folded into the corresponding singular cmdlets via a `List` (default) / single-record parameter set pair, matching the existing `Get-InfisicalCertificateAuthority` precedent. Callers should drop the trailing `s`; invocation without the identity parameter (`-ProjectId`, `-EnvironmentSlugOrId`, `-FolderNameOrId`, `-TagSlugOrId`, `-SecretName`, `-SerialNumber`) now returns the list, and supplying the identity parameter returns the single record. No back-compat aliases were added. - Added `Get-InfisicalPkiSubscriber` with `List` (default) and `ByName` parameter sets, backed by new `InfisicalPkiClient.ListPkiSubscribers` and `GetPkiSubscriber` methods, an `InfisicalPkiSubscriber` model, and corresponding DTOs/mapper. Use the emitted `Name` (slug) on `Request-InfisicalCertificate -PkiSubscriberSlug`. - **Bug fix**: `Request-InfisicalCertificate -PkiSubscriberSlug ...` was returning 404 because the registry's `SignCertificateBySubscriber` endpoint pointed at `/api/v1/pki/pki-subscribers/{subscriberName}/sign-certificate` and `/api/v1/cert-manager/pki-subscribers/...`. Per Infisical's `v1/index.ts`, the subscriber router is mounted at `/pki/subscribers`, so the single correct path is `/api/v1/pki/subscribers/{subscriberName}/sign-certificate`. The redundant `cert-manager` template was removed; the PKI endpoint registry tests were updated to match. - Updated MAML help in `Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml`: the six consolidated cmdlets and the new `Get-InfisicalPkiSubscriber` each ship three examples — two straight-line invocations (one per parameter set) plus one `OrderedDictionary` splat example. All in-text references to the removed plural cmdlets across other cmdlets' examples were updated to the singular form. - `build.ps1`: `CmdletsToExport` and the `Test-ModuleImports` expected cmdlet list were updated to drop the six plural cmdlets and add `Get-InfisicalPkiSubscriber` (total: 34 exported cmdlets). -## 2026.06.04.1825 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1820 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - - `Install-InfisicalCertificate` now routes chain certificates by self-signed status instead of dumping every chain entry into the Intermediate Certification Authorities store. Self-signed roots are installed into `StoreName.Root` (Trusted Root Certification Authorities) and non-self-signed intermediates are installed into `StoreName.CertificateAuthority` (Intermediate Certification Authorities). The leaf continues to use the user-specified `-StoreName`/`-StoreLocation` (default `My`/`CurrentUser`). `Request-InfisicalCertificate` already routed chain certs correctly; the same routing helper is now shared by both cmdlets. - `InfisicalCertificateRequestHelpers` exposes a new public `GetChainCertificateTargetStore(X509Certificate2)` classifier and a new `InstallChain(IEnumerable, StoreLocation, bool, IInfisicalLogger, string)` overload. The existing `InstallChain(InfisicalSignedCertificate, ...)` overload now delegates to the new collection-based overload, so PKI chain-installation routing is centralized in one place. -## 2026.06.04.1810 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - - Authored MAML help (`Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml`) covering all 39 exported cmdlets. Every entry includes a synopsis, description, notes section, and two examples: a one-liner and an `OrderedDictionary` splat (with `OrdinalIgnoreCase`) that includes preceding `Get-` resolver commands wherever IDs or slugs are required. - `build.ps1` now stages the cmdlet help XML next to the deployed binary. After the publish step, every culture directory under `Module/PSInfisicalAPI/` (matching `xx` or `xx-XX`) that contains `PSInfisicalAPI.dll-Help.xml` is mirrored into `bin//`. The script hard-fails if `bin/en-US/PSInfisicalAPI.dll-Help.xml` is missing or contains zero `` entries. - `Test-ModuleImports` in `build.ps1` now dynamically enumerates exported cmdlets via `Get-Command -Module PSInfisicalAPI -CommandType Cmdlet`, cross-checks the result against an expected list of 39 cmdlet names (including the previously-missing `Copy-InfisicalSecret`), and for each cmdlet asserts that `Get-Help -Full` returns a non-empty synopsis (rejecting PowerShell's auto-generated cmdlet-name fallback), a non-empty description, and that `Get-Help -Examples` returns at least one example node whose `` block is non-empty. -## 2026.06.04.1808 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1658 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - - `Request-InfisicalCertificate` reuse path now falls back to the Infisical certificate-bundle endpoint when the local trust stores do not contain the issuing intermediates or root. The cmdlet builds the local chain first; if the result has no intermediates and no root, it fetches `GetCertificateBundle(serialNumber)` and rebuilds the result with the bundle's chain PEM merged in. A new `-LocalChainOnly` switch opts out of the bundle fetch for strict offline behavior. Bundle-fetch failures are logged at verbose level and the cmdlet returns the local-only result. - `InfisicalCertificateRequestHelpers.BuildResultFromExistingLocal` adds a second overload that accepts an `InfisicalCertificateBundle`; when supplied, chain certs from the bundle are deduplicated by thumbprint and merged with the locally-resolved chain before classification. -## 2026.06.04.1652 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1651 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1634 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1631 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1622 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - - **PKI contract fixes and cmdlet expansion**: - `InfisicalPkiClient` no longer auto-injects `connection.ProjectId` into PKI CA list/retrieve calls; only the caller's explicit `-ProjectId` is forwarded so that cert-manager primary routes (which do not accept the query parameter) succeed. - List/single CA and single certificate response parsing now tolerate raw arrays, wrapper objects (`{certificate: {...}}`, `{certificates: [...]}`), and nested `configuration` blocks. `InfisicalCaMapper` reads CA detail fields from `configuration` first, falling back to top-level. @@ -518,43 +198,13 @@ _Build produced from commit 62131e750109._ - **Multi-algorithm CSR support** on `Request-InfisicalCertificate` via split parameters: `-KeyAlgorithm` (`Rsa`/`Ecdsa`/`Ed25519`, default `Rsa`), `-KeySize` (`2048`/`3072`/`4096`, default `2048`, applies to RSA only), `-Curve` (`P256`/`P384`, default `P256`, applies to ECDSA only). Signature algorithms are picked automatically: SHA256WITHRSA for RSA, SHA256WITHECDSA / SHA384WITHECDSA for ECDSA P-256/P-384, and Ed25519 (pure-EdDSA) for Ed25519. The underlying `InfisicalCsrBuilder.Build(subject, dns, ip, options)` API was updated to take an `InfisicalCsrOptions` object in place of the prior `keySize` int. - **Sign-certificate endpoint registrations**: `SignCertificateBySubscriber` and `SignCertificateByCa` registered with both `/api/v1/pki/...` and `/api/v1/cert-manager/...` candidate paths and marked `ContainsSecretMaterialInResponse = true`. -## 2026.06.04.1554 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1512 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - -## 2026.06.04.1508 - -- Build produced from commit 19615363e356. - -## Unreleased (carried forward) - - **CI — Gitea artifact upload fix**: Replaced `actions/upload-artifact@v4` and `actions/download-artifact@v4` with the Gitea-compatible forks `christopherhx/gitea-upload-artifact@v4` and `christopherhx/gitea-download-artifact@v4` in `.gitea/workflows/publish-psgallery.yml`. The upstream v4 actions abort on Gitea because Gitea is detected as GHES, which the upstream v4 actions do not support (see [go-gitea/gitea#28853](https://github.com/go-gitea/gitea/issues/28853)). -## 2026.06.04.0123 - -- Build produced from commit 2cbd5c2008f5. - -## Unreleased (carried forward) - - **M10 polish — formatting, type metadata, and PKI route aliases**: - Added default table views and `DefaultDisplayPropertySet` entries for `InfisicalCertificateAuthority`, `InfisicalCertificate`, and `InfisicalCertificateBundle` in the module `Format.ps1xml` / `Types.ps1xml`. - Realigned PKI endpoint registry to current Infisical paths: `ListInternalCertificateAuthorities` and `RetrieveInternalCertificateAuthority` now use `/api/v1/cert-manager/ca/internal[/{caId}]` as primary, with legacy `/api/v1/pki/ca/internal[/{caId}]` retained as a fallback alias. `GetCertificateBundle` and `RetrieveCertificate` similarly carry `cert-manager` fallback aliases. - `InfisicalApiInvoker.InvokeWithCandidateFallback` walks the candidate list and falls back on `404`/`405`, used by `InfisicalPkiClient` so older self-hosted Infisical instances are tolerated transparently. -## 2026.06.04.0114 - -- Build produced from commit 2cbd5c2008f5. - -## Unreleased (carried forward) - - **M10 — PKI Internal CAs, Certificates & Windows Store integration**: - **`Get-InfisicalCertificateAuthority`** lists internal certificate authorities for the current project, or returns a single CA with `-CaId`. - **`Search-InfisicalCertificate`** wraps `POST /api/v1/projects/{projectId}/certificates/search` with rich filters (`-CommonName`, `-FriendlyName`, `-Search`, `-Status`, `-CaId`, `-ProfileId`, `-ApplicationId`, `-EnrollmentType`, `-KeyAlgorithm`, `-SignatureAlgorithm`, `-Source`, `-NotAfterFrom/To`, `-NotBeforeFrom/To`, `-SortBy/-SortOrder`, `-Limit/-Offset`). Auto-paginates unless `-NoAutoPage` is set. @@ -564,24 +214,9 @@ _Build produced from commit 62131e750109._ - **BouncyCastle dependency**: Added `BouncyCastle.Cryptography` to bridge PEM/PKCS#8 parsing on .NET Standard 2.0 / Windows PowerShell 5.1 (where `X509Certificate2.CreateFromPem` and `RSA.ImportFromPem` are unavailable). The shared `PemCertificateBuilder` assembles cert + chain + key into an in-memory PKCS#12 blob and imports it back into `X509Certificate2`. The DLL ships in the published module bin directory. - PKI endpoint registry entries for `ListInternalCertificateAuthorities` (`GET /api/v1/pki/ca/internal`), `RetrieveInternalCertificateAuthority` (`GET /api/v1/pki/ca/internal/{caId}`), `SearchCertificates` (`POST /api/v1/projects/{projectId}/certificates/search`), `RetrieveCertificate`, and `GetCertificateBundle` (`GET /api/v1/pki/certificates/{serialNumber}/bundle`). -## 2026.06.04.0020 - -- Build produced from commit 211fbcf34dbb. - -## Unreleased (carried forward) - -## 2026.06.04.0005 - -- Build produced from commit e0a6ef02df3e. - -## Unreleased (carried forward) - - **Bulk v4 batch routes**: Endpoint registry now registers `POST|PATCH|DELETE /api/v4/secrets/batch` as the preferred candidates for `BulkCreateSecret`/`BulkUpdateSecret`/`BulkDeleteSecret`; the existing v3 raw routes (`/api/v3/secrets/batch/raw`) remain as automatic fallback. Batch request DTOs serialize both `projectId` (required by v4) and `workspaceId` (accepted by v3) when populated. - **Strongly-typed bulk input**: `-Secrets` on `New-InfisicalSecret` and `Update-InfisicalSecret` is now `IDictionary[]` instead of `Hashtable[]`. `InfisicalBulkSecretConverter` accepts `IEnumerable>` and parses `TagIds` from a comma-separated string. Nested `Metadata`/`SecretMetadata` dictionaries are no longer accepted in the bulk hashtable surface (set `SecretMetadata` programmatically on `InfisicalBulkCreateSecretItem`/`InfisicalBulkUpdateSecretItem` if needed). -## 2026.06.03.2207 - -- Build produced from commit 09c3d5c68bbc. - **M9 — Bulk, Duplicate & Inheritance**: - **Bulk parameter sets** added to `New-InfisicalSecret`, `Update-InfisicalSecret`, and `Remove-InfisicalSecret` accepting `-Secrets Hashtable[]`; client methods `CreateBatch`/`UpdateBatch`/`DeleteBatch` wrap `POST|PATCH|DELETE /api/v3/secrets/batch/raw`. - **`Copy-InfisicalSecret`** cmdlet added, wrapping `POST /api/v4/secrets/duplicate` with source/destination environment + path parameters and per-attribute copy toggles. @@ -590,17 +225,6 @@ _Build produced from commit 62131e750109._ - `InfisicalBulkSecretConverter` accepts flexible key aliases (`SecretName`/`Name`/`Key`, `SecretValue`/`Value`, `SecretComment`/`Comment`, `Metadata`/`SecretMetadata`). - Test count: 161 (up from 139). Added coverage for bulk DTO shapes, the converter, the duplicate request DTO, registry entries for the four new endpoints, and the resolution helpers. -## Unreleased (carried forward) - -## 2026.06.03.2206 - -- Build produced from commit 09c3d5c68bbc. - -## Unreleased (carried forward) - -## 2026.06.03.2136 - -- Build produced from commit d9822aab7a4a. - **Resource CRUD expansion**: Added full Get/New/Update/Remove cmdlet families for Projects, Environments, Folders, and Tags (20 new cmdlets): - Projects: `Get-InfisicalProjects`, `Get-InfisicalProject`, `New-InfisicalProject`, `Update-InfisicalProject`, `Remove-InfisicalProject`. - Environments: `Get-InfisicalEnvironments`, `Get-InfisicalEnvironment`, `New-InfisicalEnvironment`, `Update-InfisicalEnvironment`, `Remove-InfisicalEnvironment`. @@ -611,820 +235,12 @@ _Build produced from commit 62131e750109._ - Endpoint registry expanded with login routes (`/api/v1/auth/{jwt|oidc|ldap|azure|gcp}-auth/login`) and CRUD routes for projects (v2), environments, folders, tags, and secret mutations. - Test suite expanded to 139 passing tests, including mapper round-trips for projects/environments/folders/tags, secret mutation DTO shapes, and request-body validation for each new auth provider. -## 2026.06.03.0131 - -- Build produced from commit 7be0b7b42008. - **Behavior change**: `Get-InfisicalSecrets` and `Get-InfisicalSecret` now default `-ViewSecretValue` to `$true`. Real secret values are returned by default. To request the redacted/hidden response, pass `-ViewSecretValue:$false`. - `InfisicalSecretMapper` now treats the server-side `` placeholder as a hidden marker rather than a value: when `secretValueHidden=true` (or the placeholder string is detected) `SecretValue` is set to `null` instead of stuffing the literal into a `SecureString`. This prevents downstream consumers (auth, exports, dictionary conversion) from silently using `` as if it were a real secret. -## Unreleased (carried forward) - -## 2026.06.03.0113 - -- Build produced from commit 09c577ebd0fd. - Added `InfisicalSecret.GetPlainTextValue()` for direct plain-text access to secret material from PowerShell without needing `Marshal.SecureStringToBSTR`. - Added `-AsPlainText` switch to `ConvertTo-InfisicalSecretDictionary`; when present the cmdlet emits `Dictionary` instead of the default `Dictionary`. -## Unreleased (carried forward) - -## 2026.06.03.0057 - -- Build produced from commit 7e5209190ac2. - -## Unreleased (carried forward) - -## 2026.06.03.0056 - -- Build produced from commit 7e5209190ac2. - -## Unreleased (carried forward) - -## 2026.06.03.0055 - -- Build produced from commit 7e5209190ac2. - -## Unreleased (carried forward) - -## 2026.06.03.0047 - -- Build produced from commit 7e5209190ac2. - -## Unreleased (carried forward) - -## 2026.06.03.0046 - -- Build produced from commit 7e5209190ac2. - -## Unreleased (carried forward) - -## 2026.06.03.0032 - -- Build produced from commit c86676010532. - -## Unreleased (carried forward) - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1648 - -- Build produced from commit 430e3a00c921. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1638 - -- Build produced from commit 3c47d6ff30ec. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1648 - -- Build produced from commit 430e3a00c921. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1611 - -- Build produced from commit 3c47d6ff30ec. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1648 - -- Build produced from commit 430e3a00c921. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1638 - -- Build produced from commit 3c47d6ff30ec. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1648 - -- Build produced from commit 430e3a00c921. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) - -## 2026.06.02.1724 - -- Build produced from commit 5801b4774af5. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) - -## 2026.06.02.1737 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) - -## 2026.06.02.1902 - -- Build produced from commit fa65c18bc171. - -## Unreleased - -## 2026.06.02.1907 - -- Build produced from commit fa65c18bc171. - -## Unreleased (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) (carried forward) - ### Added - Initial repository skeleton, C# `netstandard2.0` project, and PowerShell module layout. @@ -1435,3 +251,342 @@ _Build produced from commit 62131e750109._ - Cmdlets: `Connect-Infisical`, `Disconnect-Infisical`, `Get-InfisicalSecrets`, `Get-InfisicalSecret`, `ConvertTo-InfisicalSecretDictionary`, `Export-InfisicalSecrets`. - Build script (`build.ps1`) generating manifest, copying binaries, creating release folders, and supporting unit/integration tests. - xUnit test project with unit tests and opt-in integration tests. + +_Build produced from commit b27fe6f002f4._ + +## 2026.08.01.0242 + +_Build produced from commit b27fe6f002f4._ + +## 2026.08.01.0140 + +_Build produced from commit 74d22a941c33._ + +## 2026.08.01.0123 + +_Build produced from commit f2a1492b66de._ + +## 2026.07.31.2140 + +_Build produced from commit 62131e750109._ + +## 2026.07.31.2136 + +_Build produced from commit 62131e750109._ + +## 2026.07.31.2019 + +_Build produced from commit e7674af1617c._ + +## 2026.07.31.2006 + +_Build produced from commit 276958e3a83a._ + +## 2026.07.31.1958 + +_Build produced from commit 633f40c1fa54._ + +## 2026.07.31.1924 + +_Build produced from commit 93b0cc1924ec._ + +## 2026.07.31.0045 + +_Build produced from commit d47a5af6b3a6._ + +## 2026.07.30.2350 + +_Build produced from commit 67cf0abac2dd._ + +## 2026.07.30.2344 + +_Build produced from commit dadba2f4c890._ + +## 2026.07.30.2305 + +_Build produced from commit f65124fd9911._ + +## 2026.07.30.2259 + +_Build produced from commit f56fd15b3864._ + +## 2026.07.30.2239 + +_Build produced from commit f62b3e90b1b1._ + +## 2026.07.30.2151 + +_Build produced from commit 14c8c4f3845b._ + +## 2026.06.16.0217 + +_Build produced from commit 6318d06362ad._ + +## 2026.06.16.0215 + +_Build produced from commit 6318d06362ad._ + +## 2026.06.16.0213 + +_Build produced from commit 6318d06362ad._ + +## 2026.06.16.0207 + +_Build produced from commit 6318d06362ad._ + +## 2026.06.16.0156 + +_Build produced from commit 6318d06362ad._ + +## 2026.06.10.2018 + +_Build produced from commit daf1cdce6576._ + +## 2026.06.07.1435 + +_Build produced from commit 97193d46f2ff._ + +## 2026.06.07.1426 + +_Build produced from commit b5575222eb36._ + +## 2026.06.07.1421 + +_Build produced from commit b5575222eb36._ + +## 2026.06.07.1350 + +_Build produced from commit 1aa51b8cbf9c._ + +## 2026.06.07.0017 + +_Build produced from commit 77cb03ec9845._ + +## 2026.06.06.2229 + +_Build produced from commit 207e7429e448._ + +## 2026.06.06.2227 + +_Build produced from commit d3c7b83da717._ + +## 2026.06.06.2221 + +_Build produced from commit d3c7b83da717._ + +## 2026.06.06.2207 + +_Build produced from commit d3c7b83da717._ + +## 2026.06.06.2206 + +_Build produced from commit d3c7b83da717._ + +## 2026.06.06.2155 + +_Build produced from commit d3c7b83da717._ + +## 2026.06.06.2138 + +_Build produced from commit 318db7048017._ + +## 2026.06.05.2040 + +_Build produced from commit 1270c9099cae._ + +## 2026.06.05.0240 + +_Build produced from commit b438abf18f18._ + +## 2026.06.05.0215 + +_Build produced from commit 82f99ea7d4a4._ + +## 2026.06.05.0205 + +_Build produced from commit 86968c18cb15._ + +## 2026.06.05.0117 + +_Build produced from commit cffda99591c9._ + +## 2026.06.05.0015 + +_Build produced from commit fb27ab8a8503._ + +## 2026.06.04.2335 + +_Build produced from commit 3c39a99b9a4c._ + +## 2026.06.04.2305 + +_Build produced from commit 485ee8a7dd6a._ + +## 2026.06.04.2147 + +_Build produced from commit 183fb48c32ce._ + +## 2026.06.04.2112 + +_Build produced from commit 3754de74f6c8._ + +## 2026.06.04.1920 + +_Build produced from commit 0f8f44afdb38._ + +## 2026.06.04.1917 + +_Build produced from commit a34db831d8bf._ + +## 2026.06.04.1915 + +_Build produced from commit 2489b7adca98._ + +## 2026.06.04.1911 + +_Build produced from commit 51bf819c37e5._ + +## 2026.06.04.1906 + +_Build produced from commit 51bf819c37e5._ + +## 2026.06.04.1825 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1820 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1810 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1808 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1658 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1652 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1651 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1634 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1631 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1622 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1554 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1512 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.1508 + +_Build produced from commit 19615363e356._ + +## 2026.06.04.0123 + +_Build produced from commit 2cbd5c2008f5._ + +## 2026.06.04.0114 + +_Build produced from commit 2cbd5c2008f5._ + +## 2026.06.04.0020 + +_Build produced from commit 211fbcf34dbb._ + +## 2026.06.04.0005 + +_Build produced from commit e0a6ef02df3e._ + +## 2026.06.03.2207 + +_Build produced from commit 09c3d5c68bbc._ + +## 2026.06.03.2206 + +_Build produced from commit 09c3d5c68bbc._ + +## 2026.06.03.2136 + +_Build produced from commit d9822aab7a4a._ + +## 2026.06.03.0131 + +_Build produced from commit 7be0b7b42008._ + +## 2026.06.03.0113 + +_Build produced from commit 09c577ebd0fd._ + +## 2026.06.03.0057 + +_Build produced from commit 7e5209190ac2._ + +## 2026.06.03.0056 + +_Build produced from commit 7e5209190ac2._ + +## 2026.06.03.0055 + +_Build produced from commit 7e5209190ac2._ + +## 2026.06.03.0047 + +_Build produced from commit 7e5209190ac2._ + +## 2026.06.03.0046 + +_Build produced from commit 7e5209190ac2._ + +## 2026.06.03.0032 + +_Build produced from commit c86676010532._ + +## 2026.06.02.1907 + +_Build produced from commit fa65c18bc171._ + +## 2026.06.02.1902 + +_Build produced from commit fa65c18bc171._ + +## 2026.06.02.1737 + +_Build produced from commit fa65c18bc171._ + +## 2026.06.02.1724 + +_Build produced from commit 5801b4774af5._ + +## 2026.06.02.1648 + +_Build produced from commit 430e3a00c921._ + +## 2026.06.02.1638 + +_Build produced from commit 3c47d6ff30ec._ + +## 2026.06.02.1611 + +_Build produced from commit 3c47d6ff30ec._ + diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 81840fb..755c053 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.08.01.0140' + ModuleVersion = '2026.08.01.0245' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -89,7 +89,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = '74d22a941c33' + CommitHash = 'b27fe6f002f4' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index 6f2e6dc93070ae8b306a3202587cc76b330f8cc2..0dc79cb99296218a4a95e794e190912742797412 100644 GIT binary patch delta 351 zcmZqpBG>RmZbAo(Lbl(Y#-7$5#?~ID)*j}qJuGz(7{9i2KV;d?{gCzPPXWKF=a1ah zpYOjZCHJ;cxT*BE+iV+Sd6JCG(^AdS3=E9YOs4O(U^iqoGBKV0(Slt>2guMymQG4E zHLyrcOi4{OFfuf@G)px}Ofs`DH8nL(Gu&=y$-cUr<(t*qEz=)tU=I*DYWjHg`C1FF z8By!!Y|{GpZo0!p_F4s~=&u`4QIPr-T`LmZUoY)CQN{3W``wM~8=2U@GH@`wV*k2* z>K67$Mph#R69&`mpSQBRGKPcM4B8Ay3`Pv*3~3Ch3}!&m00@nMvRIr>OgE508P;DwuO(Ia08Bm2O7#aih8BXut&Th{MFRmZbAo(Nfg8L#-7$5#?~ID)*j}qJuGz(7<<~eAF^!ce#rXtr$FF>pvZ}d zlRcMw?syUTYH#hf+iV+SdCW~xjEoX3O$?Kbji>LmU^iqoG%=X|(Slt>2guMymNqd> zHcl}!F*Q#~GfXzOG)yxzG&3|aFf>myFx_rw$-cUrW#>AbGt(bzU=I*jyD*~V+t!sX zJ0qWMPV(B+KHXs>d#wUgwB;vM6r_IMgqJVuL@syA-oKsQo)coY9)rPTMJBE7j62x>GXem0VscLa -- 2.52.0

dnf!-Q%T4G#$F^2B#Hu5< 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%0Aida6hy{yD_a8v5rcMX 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