From f958707e05bd9b23c774341dba689e1f17bd8c9a Mon Sep 17 00:00:00 2001
From: gem-uhe <85994882+gem-uhe@users.noreply.github.com>
Date: Thu, 14 Sep 2023 13:25:29 +0200
Subject: [PATCH 1/5] Update FHIR_VZD_HOWTO_Authenticate.adoc
---
docs/FHIR_VZD_HOWTO_Authenticate.adoc | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/docs/FHIR_VZD_HOWTO_Authenticate.adoc b/docs/FHIR_VZD_HOWTO_Authenticate.adoc
index 019835da..ad066ae0 100644
--- a/docs/FHIR_VZD_HOWTO_Authenticate.adoc
+++ b/docs/FHIR_VZD_HOWTO_Authenticate.adoc
@@ -18,7 +18,7 @@ image::gematik_logo.svg[gematik,float="right"]
[width="100%",cols="50%,50%",options="header",]
|===
-|Version: |1.0.1
+|Version: |1.0.2
|Referencing: |gemILF_FHIR_VZD
|===
@@ -36,6 +36,8 @@ image::gematik_logo.svg[gematik,float="right"]
|1.0.1 |25.08.23 |Chap. 2.4 |added chapter for owner auth |gematik
+|1.0.2 |11.09.23 |Chap. 2.5 |added chapter "2.5. Authenticate using the gematik Authenticator" |gematik
+
|===
== Classification of the document
@@ -330,3 +332,23 @@ CAUTION: The diagramm displays the most important interaction parts. For detaile
++++
====
+
+=== Authenticate using the gematik Authenticator
+The link:https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[gematik Authenticator] is a windows application that can be used to simplify the interaction with a connector, the card terminals and the users smartcards(SMC-B/HBA). The authenticator app can be started using a deeplink call (authenticator://) and the authenticator app takes over control. The authenticator offers 2 possibilities to interact with the caller:
+
+* calling the redirect_uri using the registered application for http calls
+* calling the redirect_uri directly using a HTTP get Request
+
+The first option would require that the redirect_uri provided by the VZD-FHIR directory has to return application specific content that fits the callers needs. As the caller can be any application, this flow is not an option.
+For the second option the caller needs information on the actual status of the authenticator authorization process.To fullfill this need the VZD-FHIR directory will provide an endpoint that can be used by clients to query the actual authorization process status.
+The following sequence diagramm shows the process in detail.
+
+.owner-authenticate with the gematik Authenticator
+[%collapsible%open]
+====
+++++
+
+
+
+++++
+====
From 3e1dbc9f6deaef7137589b26ff45b06ff7ecd33a Mon Sep 17 00:00:00 2001
From: gem-uhe <85994882+gem-uhe@users.noreply.github.com>
Date: Thu, 14 Sep 2023 13:27:56 +0200
Subject: [PATCH 2/5] Add files via upload
---
...IR-Directory.owner_auth_authenticator.puml | 75 +++++++++++++++++++
1 file changed, 75 insertions(+)
create mode 100644 src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
diff --git a/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml b/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
new file mode 100644
index 00000000..a4cfb967
--- /dev/null
+++ b/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
@@ -0,0 +1,75 @@
+@startuml
+autonumber 1 1 "[00]"
+title "Entkoppelte FHIR-VZD Authentisierung"
+
+actor User as "Leistungserbringer"
+participant TIMClient as "TI-M Client"
+participant Authenticator as "gematik Authenticator"
+
+participant "gematik IDP-Dienst" as IdpDienst
+box VZD-FHIR-Directory #WhiteSmoke
+ participant "Auth-Service" as VzdAuth
+end box
+
+User->TIMClient++: Anmeldung starten
+
+TIMClient -> VzdAuth++: Decoupled Authorization Request\nPOST /owner-authenticate-decoupled\nHeader: Content-Type=application/x-www-form-urlencoded\nBody: grant_type=urn:telematik:params:grant-type:decoupled
+ VzdAuth -> VzdAuth: Erzeuge PKCE_code_challenge, PKCE_code_verifier und state
+VzdAuth -> VzdAuth: Erzeuge auth_req_id
+note right: **Siehe Bildungsregel:**\nhttps://openid.net/specs/openid-client-initiated-backchannel\n-authentication-core-1_0.html#rfc.section.7.3
+VzdAuth -> VzdAuth: code, state und auth_req_id werden als Autorisierungsauftrag\n in einem persistent Store gespeichert
+
+
+VzdAuth --> TIMClient: Decoupled Authorization Response 200 OK \n(\n\t"auth_req_id": "...",\n\t"poll_uri": "...",\n\t//{redirect_uri}//: "https://idp-ref.app.ti-dienste.de/auth?\n\t\tresponse_type=code\n\t\t&client_id=GEMgematFHI4HkPrd8SR\n\t\t&scope=fhir-vzd+openid\n\t\t&redirect_uri=https%3A%2F%2Ffhir-directory-ref.vzd.ti-dienste.de%2Fsignin-gematik-idp-dienst\n\t\t&state=HkX8By1qMekEg4a7B1aXyw\n\t\t&code_challenge=a0kY3HugNKgveqhBQjc1tmX4_m-OT7FMF175rDlOIOM\n\t\t&code_challenge_method=S256",\n\t "expires_in": 600,\n\t "interval": 3\n)
+
+par Authenticator Flow
+
+TIMClient -> Authenticator++: Deeplink-Aufruf:\nauthenticator://?\n challenge_path=//{redirect_uri}//\n\t**&callback=DIRECT**\n\t**&cardType=HBA**
+Authenticator <--> IdpDienst++: Der Authenticator interagiert mit dem IDP\n und über einen Konnektor mit den Smartcards.\nAm Ende des Prozesses erhält der Authenticator\n den auth_code vom IDP. **Siehe nächster Aufruf!**
+IdpDienst -> Authenticator: 302 Redirect auf die redirect_uri des VZD-FHIR\n mit dem auth_code und dem state
+deactivate IdpDienst
+Authenticator -> VzdAuth: Der Authenticator ruft selbst mit einem HTTP Get,\nredirect_uri&code=XXX&state=YYY auf.\n)
+VzdAuth -> VzdAuth: Finde via state den Autorisierungsauftrag\nund speichere auth_code in diesem Autorisierungsauftrag
+VzdAuth -> Authenticator: 200 OK, Empty Body
+Authenticator->Authenticator--: Anwendung wird beendet
+VzdAuth->IdpDienst++: Übergabe des auth_code und des\nkey_verifier an den Token Endpunkt
+note left: **Siehe:**\nhttps://github.com/gematik/api-ti-messenger/blob/main/docs/IDP/\nidp.adoc#3231-erzeugung-des-key_verifier-durch-die-relying-party
+return signierter id_token
+VzdAuth->VzdAuth: Erzeuge owner-accesstoken auf Basis des id_tokens\nund speichere dieses am Autorisierungsauftrag
+
+else TI-M Client pollt
+
+TIMClient -> VzdAuth: Access Token Request POST {poll_uri}\naus Decopled Authorization Response\nBody: auth_req_id={auth_req_id}
+VzdAuth->VzdAuth: Prüfe ob für die übergebene auth_req_id\n ein Autorisierungsauftrag vorliegt und \nggf. bereits ein owner-accesstoken
+
+alt Poll Pending
+VzdAuth --> TIMClient: 400 Bad Request (Pending)
+note left
+{
+ "error":"authorization_pending"
+}
+end note
+else Poll Success
+VzdAuth -> TIMClient: 200 OK (Success)
+note left
+{
+ "access_token": "..."
+}
+end note
+else Poll Error
+VzdAuth -> TIMClient: 400 Bad Request (Error)
+note left
+{
+ "error": "access_denied"
+ ..or..
+ "error": "expired_token"
+ ..or..
+ "error": "slow_down"
+}
+end note
+end
+deactivate TIMClient
+deactivate VzdAuth
+end
+== ...fachlicher flow... ==
+@enduml
\ No newline at end of file
From 95b9304854c44c8f33d11e93377b0d0860481bf1 Mon Sep 17 00:00:00 2001
From: gem-uhe
Date: Thu, 14 Sep 2023 11:29:09 +0000
Subject: [PATCH 3/5] Commit from GitHub Actions (GeneratePlantumlImages)
---
...HIR-Directory.owner_auth_authenticator.png | Bin 0 -> 190897 bytes
...HIR-Directory.owner_auth_authenticator.svg | 85 ++++++++++++++++++
2 files changed, 85 insertions(+)
create mode 100644 images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png
create mode 100644 images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.svg
diff --git a/images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png b/images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png
new file mode 100644
index 0000000000000000000000000000000000000000..f90c739872d311c5e75d78ac718614d614b11a01
GIT binary patch
literal 190897
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%0AE&41kU<4SF80UB6=M#bF;6tFt`!0c*TibsAwM
zVyG~Y?b(M_2@b>L!9W3R?T-MdHC{e_`X{Qg+)*2Maa@B?@t7R|Hm506l+?3iPei0W
zIG9oVuN+Gw3pArB*%&SasIYiMV#{VXcb(J{@xJ@deol7^QHqBY2Cwg|CD49S@KiNH
zMS0L@y;;D8>i9VxMYF5YV^+RP13fu3W84^cgNYG#Iuxo$n3-GQE`3Qwz2fS}*?XRP
z7At#|TJGL_4Z=$gaYdZG5pVaa!>J<|98^1X%z|~SI$c=HHa|j;w~rL0O>VZOlDbgz
z4!kM}Dx>8&w_c+FC#2WYe)?`lRCBUW*9fwkdBH>Ysn0!(lTcEM-uia0C_G&ci;f-Y
z#~4ZvXJuu96IVC`yo(D8q<${arS7}Glk*QGRjZ)N{v?bf_%bW2Y0bHr(sP>YFMwM$
z^C_6lK=7SvZGJt}KJpagys=hfJ*&v;wg|}~oJe2_yk=}Xa-w{(5%X46U9F+Kae#ZZ
zV)>)2OI&7`)pD=3%R5dkB7QK-n%S4#zUdk^-P-}IPW9jZ8L9ivzK&EZu5#43L5ve0
zd#Wp1G`{gr{otAk`Bue~E0(rD4)o0%F*wJlLq*2Q2`69X&WZE}B>Cq-@bS<1a0_PP
zU-taz1MaV3!qboCjpOGz9k7c8#TTfr9ivI;)IpY2v)GT}P|6ROFH92)Kt+bwuGtnt
zD&+PP^;)osh=+Y^wrvt$;GynM=Xdv=lH77X*66qd2eE9fzLVdLMPv?>O=PSIJrKW8
zZj{bvUrqXp!=*F7>V@~(#n&J^%~|Bm21Lx2FV4BmD5xlI3Q>`f360&zsluF1qj`WU
zn|8ipM=I|x0hfLm86AZh9*)Zd&|UnrvTE|n%cp0pzxme)u@CX`d#DOYed;>|+zLV6
zggdE_@*MRDD#8%R@%Anqz{mIHU;~2JH7=#;?$G-}QD{Rcn)V&U7RZO?Gze4H)Xe3
zu{Rwz3;FHk>lRn(cQgdvkdl!hp;$zEqG=-&JFrokEwOpa)5M(hH&^`ds;5a~g}D0m
z)A7$#x`CTYzo1|7^c950d&QNFi|Co*qIveLBgc4k(1J7@HQUvPb}?UO-(?Ed&LrU4
z{w-}_%n^2^s7XSdHVM66WS$We&`jB5RbLV)c(q>a(gk`PlJlz>@VO;UJZim#Nkho_
z^XQL@_pDSLIg_8iQUQJif4=(Fa;j2<)^YVLz&-3X!bi9LlZKD7rqb32XmW53=NllE
z>f8zGCWn~@sbPN@6EJlA{`>FkIp#9kHhvqOKq$+O*w)zzUo`5v35i?*H@%ku}T31VmPftXep|3DZZx1i$%E*|6u;ylB5HaJnIgPznVy^Va_o+d6L
z!uROq)5z~Iqk>mRCSNw``HQ<_L0$q$y#1`xYNmSfsE|ws@%9*(%%{17LV7K@vF#oMT}Ui
z*qr{fM+cmc(#^lV`zcE9Q#U_8vP(B<<^{Q8?8F1^!Gny9&FG#0ehj=j#75cF)-vz7
zVI>&5Ob}0jsQEG^?9k2e@@C`WBy1@jZOgUYzJAOlMUCBw!Q`cm<})kuL}u?Yn_HxJ
z!jc+fvZZ<}_o$s(%v3{K`O^zs*qK5oz1#N4mE5B_z7)2vIa({eg2f?p?XdIT;kaN0
zp_=+BwkC&>+x)R`Y8>aktRNDD9Tmyrjej3=zxqWTXXd!uch&Tt^lK?8`Fa6}XLC^n
ze9bq0%nYRB9ta;;E(@5biF#H^_yy2y8T*nS{`5Y)$
z)a>V63B&yTBe0KsN&kMh+m*dMJ<$^7X?^BT4&!`;|
z@iahJ07PDvOy_un-H_z0IQa*%J3{&ObC`DV?Aan9id+_h{@&i+j~~lhI5zAfMw;bN
zZ@R*lcmrd3lI>v>!CD4uw-#CEmbr=4+-9UBTo-C+2-6mavp?pff0`us-A+0tdf4B7
zVLE(|r1c$Q686L5{7cTbG(9&e0#6_wNv~J(%}=|FN;Xc#7S?bD9pSo53*|p1SV0bNuztspgG@~9;(15^
z*W7(YMDctIM5XknRO>6QNUX>&llb+H|C$aHsKfWmejDLceDV)~JzsVk{`&u#Bs=0f
zA*y))YkPi$q<#uQ@p}ysvqEjA>+YU*d|}+>bp>~@My#yl>Hk>zzy{g->?Aot`=;25
z&jegNIxsP0XK`tFD26m4SmaB({tbnoTY^@F;d8z2?p9r)Xwe{Ao7@LgaDV_{G9E`V02)-9$;sH7e;xJYlsnE~Ps(v$^Gs
zWsvKn`+EzKwVFn;qLSx{HTv&qY=|)F78I->{rDvQO59Z#cXt$oqhLPA-O8yLu#S~=
zrzYzV9rvTW^T&=g%zwUrg|9hNmcKum+j+A7IdX!)d~En%vrBCj%lWAC
z+5LN`gF{OK8MqVLVshu(z&SKe8D^3^yQeQ;7t>*@tKG`&pJDVrX7KSyi&jVW9}~@z
zx8#-TLL(1`>fZh@_~`4z1?Y-BmrvXuEOE7NFf|~2?A@Olq}uR6yU&fSgT~#D4_R8)
z=i1EiZK?EQyfk&qjm8pWy&nJS0X)d7Nd~ug!RhvEk2to=ah6jt3N0#UcKe&jo&*2R
zeq1S7M6~Bn9jEiL#mA3R_*(6H@|~Ia#CeixYBYV6&4+1K6(cMT8b~y0LL?G7H`sh-
zjobQhO{;*@j;(aH^orBsr~2Mi@uBR
z-c|7~N`#N;eQ2_rbe=(j$A!5M)>7dubbaDHoC1dC1If=e*(?ki2HH!bpH}H`cJaZP
zOZQ8h>=s)2$?sFB+60b9tJqsD2!!yd<^9!6Kjc8iAY6h1Pa4_Y{#X;0m!B^iao9}J
zXPW0S7FPsQe5BCSFxxy%FB-JfVyvK8brX%v&6c)J_8h`_8hITp+4n!ENf?IJ9r6@p
z+%kBkh$K8V_3+PSwzNaClK#Q%&lX9v3wcT=$x*Fy${0Oez2wX=eoM#fZBsA#RoL$lOIF)_5hEb=Si
zhSl-u)DAc6Nt)Lkr+W@=Kc@zR{gXA{-yCMg5}%2HaD03VC3I8BTw}rD!g7pOO226M
z*{^jj49TpJ&|;Y)SJWBu}tDT~SYRazDQ!&aFi#al)^
zZSpmg?JCA2qnKJVhk~s6loQoIN>M1A#wN;7$x#aBp0kaexV7Gj8}o1=$m*y%%1P52
zzvj-)`~Mb{JNt(ALA;sTu3~17((>G-=VL?I3%q*o^JnVO<>mUgU+!%CwaV7T_)9BI
zOt?9}&5~jFu1BZOX2F}wf$BT(H%3g;WULT$d7;ki$(C(q!-l=Bma$v(2+bXAnrC&*tD
z9@&n(1TsuT)RmDIJ3BdzMQsRyvGZtkb#;C=ZL0VXR3Tu~Ci-49H=lr)jmzVmHT4S0
zp(dpyxb=OAjwaIz@Ty81*51wa{DS}W@rB>|yAD~-Ms|(n2G|a!^FCqcjk@4x2!?|?
z#?3^3M>jTu+*x7)xxRHt*K3@}<(jSOmm#U1d+6g6;O>r^R^8p)nY(rq#Esx@l0kpq
zfZ0&s?5A6c6TNvHHaNH<%fkZ~EVwS&`n)dYU)1caa7Nt?vLcUPek)U*E!T+UEyTvA
zAvU&KI~Uzu_dj7nxB2+@X=cE??%qdW`fsU+mwp6+s)V2s*Ix1Y>2iAmFbq@|Mkp+M
zv;LkFWb-44J*fZ{+S_1868L}xp3RVug;Pl%^lqy+(fG4zR{_k{P{NAi>VOShettf1T!^L!Qmb9<9x6AWcjqtCG=y0I
zA%u8O9iS*M?p++8TZ7ide0+T>AciEvRR=r6OdE+Yk>NX;rbWhqPO_Z83rHL^Qb0^5
z+3`=I=V27-Zsf;DtYsVmg2lzf52WqGWS|=e)B(zb#(5zMUk(bfe6T3yN>fCDIfAP6jnsvS
z`)@Ra{8F=EQ8(SbcCj!0v{vGo;zK)coj!X5R0XA_~VMPQVMUUDOLZB16%FY
zM@ZjrI6`5m3WGCBLahd;(KSdm%ut32-uAH&q9dSwEKr@Ix9%em8mx>CFE1|~5Je>=
z+kDV;R}0pM0P60LAC^UVN=S*$YKN;#5a>e~2(t$`{i9JYixQAA;$_>ZrC%NOJz@k}
zg5%NI=%xJ~lh#DJL2T{RK%LMF(!Lm(j+F;fW|Q-EWnK^cG3Q;$c!0&=4tLcxinoH~
zZ5;x)hJUJ%WJnxmwMqzS^kbf%)lnvB1yJy7vIX9KU6v8(zo$n>KULdV%Eo!1vc5f5
z=y)tirj4T2K!2m&@EYeBMa3*x`Z=-JhLp|5TRVi)_Qf>PADIoLDby3KVIMA6si=nCG|MBY?xb~f^Du!a%eMz@Pm1+nxaH0m$(`IGgT
zod+0xcxNO_Aq7Nk{!b33m#*N?2D~d>=x%dH7ocvyxc#?7_=}&m^LRdb+ap$9+*gsH
zF{)^g9@hST2c`X$t~fZzc@(3R}J#@CD#d?p#mFeij
zF-FtdU+gwy|EF=d*hj>#C~5L<@*#gQQPx;_V2@SWbhiH!gYV)pHjY^Y&?n^%@n)TDHBuR?lU;GbLPQLS?HXEXTZ0jV}cF
zM6D{blh!D?e;7CN`6leZ3m|Q0ShVshH#Uat?tZgYUS)e-Wz-x^cY{3>4#(1GiR*b3
zGWa$&UQ3xsNgL39Z_xS-h`_%_2WMUYBivl=KTfohkbw;P*@-MJv`QL1du+s^er7Qs
zvt@^n^kDXoIis^cVXPbi8#f3F4WyBDKt#4`xrY*9Y$^JZ`DppLa!K-grJo
ziS~@XVc$(kkJTGE7CU0>4;`AH&2yA1d8%8^GJ7WKh($0}RPkByH_5&8)~W_$&&aID
z3THcQXK8+nHw1tXjhFZv0MT;gQjASOK$)Oot}b9~?CwNe>hfkIwW^QV{Q8UB
zrf016%CZ+{IvKO$RTf6-S_ADDILly7x0=+pTF72{cf%^+*D%4}D9_wH>IS?iYN91|
zpH;sDWE^eZm<7{M1G;k5h(cA4
zY&j)Q8+j*Saz3jSa`%5@$7Pyi#HU*W4$qZR1a4
zLi>aDITV*(#$}=nO*^(YejeWYYAG4{##Z?UCZ#q@E+(;GtvKmMeLtkW;KJf0%U_tP
z6MU;K$tRC{b(JUSH=f&6Y}{hWyO=R!?{DU|>1GC5O{i!smb+DXWOjdWqyvrgeIaTU
z6JmPeH|p^0n$J;Zp}}HgIFafx`s`7{PTsel_QfPL-Aznw5PNfdDkVzKr*WooXi%=4
z+%Cl)Ds20t#lNf+zr0flMLv7Rz-7CHQA1A7-HWqrnKBi%RpS-x{xR8%2G&$5jgtre
zM-o2pLQdqFN0e)ZLYEHk+F*B)GJ#6?SUPvr>5}cXdNjjSBl+xJwBlkhrY`P?{eH%n
zV)WfYLi$1Q&*NZ&5$o=x);edKq+rmC@l=i`ZP`vBl
z@KK8ayG&7^=+(3{@rI(drbBId1Nugd)i0ZKL=e=Ri)9a4HtPBU)9cre7~~W=`U7zR
zH;@UC_!Wa5*9QwZcW*nOqO1}xU!bZmCs-b+jQkg3n28>la_Z)Vw*2&c!W%rdWUI)`
zFU~@VuG^S2?R}6S6gH-yHTc|AJm+M0mqs|QgO8&Fz_+SaA1fdo4!Mt8huNy6xbNtY
zqas4)D?lUN+V&aB=-n9zv>T69l@LkMKYx%k~w5amya~TJ1
z?w1sgke8c(bSEL}qNE(i%flO2la03BIl}CuZ#r~e{^HDJtg=a1t9`hkXvhE8wShch
zpvcRkFx|np`ob030Ob$S)}9{J5j3J4lQJSFKs}Z*W9Pbik%Ip9ZtdmkCql7bD-puV
z**!Yrh7zQHny$`Ok#Dz_*^(+R++{VD32+q)t`P!`FX+02wBSYsDF6M(#6$cOZi;EV
zX!VP1tvuwZ04IYVaf9Vb6_OPB1OglEf9t0lybUfp@5;;3LrteNMbp&FW+waOtAYtkF0w&VhgHl_9w
zYfloKYzfFN4X{`QFt@|&<7De}2W{(zEJ5$}%%4W9+7I{-OG)`xhvnJrm80IWEQ~V?
ziopbQQToY9Fww&)TWnjhNFk}fEu)Y`H63>~^i4>WxHQ*`xUF2TEQ=3%$tc>7cz~hm
z=V(0Hye%&{(KUuvu_==yE@Psh(xj)Enc>ZS)e&5-T+EL`wW|}053_T3m`VGOx@1Mv
z3F%aIp4aj_A-e!>|N6WaNlCT*Q?Kkj2dD2RZlr%lWLjJJ`2N`Wukye;y;xb>hq9X5
zcY!PT-x3_yVw^mDTS>pk>zYBE;{mO)!Dd@z_D*yR;^p>*^#!$VjDyPlaK;jGkz_R=5hPX-u9cn&E`y1WhrO2@{Q%Mp1hEIrQ)ew8N26E
z(L3B1abEK-`zR@PkE>n5$djZHi#7ie#YAHdqg+f0FNYS}MNgwT|LD1^!Oz>v85us+
zGNK)Lx?!sd?e=-ef?Vv^h1L5l`aA=lG)nkpz{TgBSRPN`)Sa9bn@FME(TTOZ<;$WP_3WNZ9+
z&q0DHo0W00Rw&edafqWat>sDoz9-y63yI}}$UJJYtq1)UXJ>z3Pg_%EYKA!^Ep^Q7*^VBp4-l;EVp62L>Ik(h>
zP{cntUm0&F2bdr{-77F-kNYfS!>;!h4M~bJztt7(%r_&Wv4#Dedfnh+NpF4N?U2ck%1LossV2|V;uAJblg`4uimCH5G%85IW98<{
zhq@i21T`kERNIX`8=~CZml~(qJF|1#-Me;X6LT4_0{jEJ`CWHg-`&ta^HkTcEYpMB
zjiO}yP`Y<`55H-%+2Ti+exb3^ig%fvZ-V`m{`*G3XhwQR$;A=eV$=>Xv6E?HD6cFH
zp%v%#-ubbylmr7&Yt9b(PE$8Pl*BfeXsgH^7>@*!)
zNV>vdQdZpe64-SDlNF#6iH%AJu57R4ygnwM)p3FJZeo{Se%kMKRj~0Rfbss2DnJ!l
z)QvHmw3UPI7Sf4F<1*UrMQQT0UyvRdWwu>NO>`w2Z>(cBwRN%jSh05ix70$vN9x$q
zfnPEvy0f_Dhp)#g4b{ox21ECNcdmX5aog&)M%HGSmALV#bn%ETEvJqD#gjePcO?a=
z1i&Acx2B9Z5CIVuySSgb5+k2!ifxSiMO}h^LHf6jiXA7&aHH0oJdJQKyRi`s`m}a2
zwmuJvjGXr$7ZViPWtHmFoS_oyBoZ{^W^2i_x~R97(#ZQLKXCG^&epVj*SQU<72qog}MJ)p*i=RGl-GuLK<-#T|Sw8$^?SeV47sl8-1@VtG$
zC3mu=ktw5Bsprr+-yb7&5K!Krl1nf|K)^~9B_JQbuQGr!mb6
z9k2WSl-0creglKAZQ^-o7C3uMXIoQMt`!7yeF&aJtDbzy@H_JVzO2kZkV%00yuDp*
zRB*#SIcl@EP91Q6zJ^kWy83-td|sH!AR|l1=0$!+q*8^C1f;W&)yynzYw{kjGBtno
zaPPcO36|?ZyryICtIX_}M#@bKxqwRB4D?rly)%e=6BDl-|>g4Xv#m)5AM_V?#r?
zUVkU*JMfB0AyRibhQ38ILq8Wur5?a+DLo&K1REN&ON1uq^n<#zXHeQRXkl!B-O#S1
zRucD9L^^FF-VWthzs{a)W@6x0gqnsO&9*Nd^qgYo)Y-Rnc}xl9di|P5QLg=4jXU&&ga5er-)Cf}
z&bP{Ud(^k9>1Uwo>zDow<6#%}E}N)*|A@$YP!e9AbMpQ7{d=Pj{QqaMFF&6mSOHPQ
zU~T=bcJn`o`-GlsnX3H%qVasw8nC~Pn-y9HqQjH^-?a+=o7DvV&9dAc4F3Nl=6wC>
z<+upTNf&bNoZic7dYZ0FCtv?bumedbNYY4Wzijxk8ttB=S+G0=d4|WN=JytvAC(X`
zd*!UF`a;ST;xGKQ!!4F;cc>UQKWB^72p@F^Q`YC#`OXx6lF+eCZTijO3oQl70a5d_
zaWsf!f9E3OTN-kZVINh1U}$;9wJ*PzVlu3P)W4G1Zg~CZ9lr+iz|XM4Qy@Tno?U`+
z6|LgS)(hBk9!71X1zZ{M;9^u6*!0kW*-e+II-#30&wxZ!+3l0|d%k|be-Tl{vr*`1
z2ICcy%d6F4rO**D++Iz#E3M00QIKdY5JE?$fjT8WT5%CNGW^7nk7x37O#eD=xlA}2
zLC}S&7vv4&XpY0L63`{7?)Q~x4+{R(+URK{eJS{vt39NOj5j*S
z@bA)|`rOxA-cBxVZtIpT%YrWV{;>y&1;%2H>`8|!ufwSfEJoO>aTw%wT?>neNX(IQ
zoB}$oF)x=p;}z|&7QTDCQpF2=6ZN;dmDmQk4T*lR@#AC!#T$C{5Mww1fz)_9-?eAY
zro|!p==~i~EWl(ub86cT`y(MC_OGRLZHErMNTdPOcEU_nMv3-`FA3&edAGOPr+~XT
z9_TV8McO3Jv%y2>nRsJuqQ2G1iq>_@(*46>de~xJDMW$aKqJrjd(;LGU%~Ul8cb1I
znM`!#vWI-MXo`2TX>+o&i2Vu*x?dvqZ6!l*E&Orr=!8u_$qCOw3t`ySa4x%(PG9|^u@U?HrwYR6F
zC?|~92p9Tvlkhavx=u;o>gu=0+G7PWx4NPY2Yp}+Pg1inN40E?d~1{e{MJz9b#%H~
z@%*d@9_Mroiow<;jH&+~^ci+mm_*vZ!y+UBPBPGzM5K+58@p0$-|jHmAb+8$E=jvu
znst66JA8Xt^|gUgjwIeB^g3~BY*N;Tx~0Wq*ftWCF^iPSaQ*&zcHTX`hQBW-WNDCM
z###X)D14Na)nv)uxlB_-qbLIo4;79|`gp!p>mgowNWser3qO~U%zG;?V~B%nMjUCz
z3M+SUnI7cjRjzf_gfA3G;hD1T}ZQ&VJq}Vs5U7-whix0;UEo0mo
z4_tXy&+hcLtBpUX!`tVtas4pFJAP@;Mn;S!DHfe(phNFE)YIQZMPa{X#@4aX)2!qB
z0b*k*La+9c4BwbZb<ZY&PjPa`ZwoI{t$rn`jt(xkEgHmF&8pm!t%_W~&j-&@x1KS^?
zO8VC)@xoG3nI?u4AnZ&p2ftnL@6f8ZZyG>P4t|b{%R|cd^rZcE>WkKU$CZX65_qeuqYGC(ZQEyw!VS
zvzwPsPO-Ys=<4|wDdKO~Pc%Mlp;bD*|B7{F+lIdR{i)-hczIV+8vg$D-l%{V*sbZ!=mRO{YDXtCgg*pK80G-}a62kFK1jyL1E$9{a%U&9MMQXc)VQ
zi;8-@l8sS#VcIg>_ZF|_?&RczRKS&zRe1agn;$G)eBIw|C)#Lq7C!3ptb*_Xn30c{
zm!tLejnZ-jO*NNKoqC1b5VU^OS#H6xHr_?M@t(PcfAZ3Sqhppx$b_IgcRw{C!`ekV;dxY=vnbVhs8Lo>LOh~_>teL%FK%6f(Qh)t{z8JM$rg|TQgHIe>
zX!-3>Q6^Lyz)jGMQd?K=<#7(EP!TDUa%`cA
zZ$bSsB)*R*)#84J@Q)BHq6s6^u6s-@(HhFTKkoFh#P}#2v1s+3xRyq{6BLj=)lOpY@@BhpA>&oY{nI`0ME$
zg_=Xg$r6JQo>f&<0SbU^&{P@s5Sw^iD!#f;w8H1;vY=;_iKbjRN5_UO@Y3eKIG_Am
z2ov2%4b&^>ThZn2?hfx~+sVvU^6){33FZ~F49%RB2F^Z=d-O_gJG*5}z4GzILtC3+
zGzi`j6pDXhGqE8#*&JLq>6CRw>2+_eHyBWlUl!m(c&B
zWB2*j%bNexKwHFz;n1w&SX*3BU7V4F40W4YRX9jeG?)!$lLGM7R?bH~dX1)0ttXZ-jy!k_fYrVTt(Xm3z;zySi`puF
z=LB_I*9tX}ibdaLIovT!8TF*ziEeZ-IP6ve7C*Y^p0F9K6hXKKhEwizsbLxaqK##7
zM`Yf%wo>8ioHyRTqGkQ@l<=r06`Dl1O+KSqvY__x@$qqYN5QQJ=9&|J8y5$#y5Tz1
zkH8kXoVfJvC&1l`(>@7id4?oFCkwj}M=@+&MQQ0jhEo5DmA|p$_IHHLgVhEnf=_r!
zNSe^{d0_~x4RC`&h?mzzxNuskA8-)uE(-wNi7>52F`w{CJ~qgb_k}12b=Mv;m>(
zq2=c%ro{b)%jckVFz`9mYx9`V$GiAn$eofUj80(Y;o`Evh&g1nS?zRhmbH|{fQ{^m
zb_)A~AG53Zb=v6-u%}kTuvkwHLb<9#uyE=>x1v4h&ylaXk~y78^1n%ES*^HNh^DL{
zQX!Su2}LY?9W{8Q=cTl@LbADSm#7&jygw?GW8J7XU2z~Tw6!H~
zAn^n3I6f=O29pFDh>ZSg&cl`)I<1CiIP=bojR_jg(L?o#;dtx>rUoBR&%%sPZ^w-Tt|l6F2+Oy=yewdDo)T@n0a7P2c?!ZD
z6B&j$-?X661KlFNp+xt$Cu2P(3;&?uGL3lp^eJdgh!^GM<@pze-AHfsT%+>j&FVk}
z>Wg*FOf0={AmbwKr5(1BH}&co0?+EJ{w|N$Sd!LHM$fJ6*@^jB-oT?bre6PRn<(a<
zR*0=V9*Y(rWZJN8JlK&C|Blp``hqNgf@=KoypV4C0>-S}yM&+D7Wg5CF
zL0Q*&f9z{TL62umE+T=UY|xNY?dvvnn%=qFxtjY5f3&%~8WAEo=pKas6yn>}nBb&_gzce`Gho$|L
z2H?QM1Dk5t!w)s44#Ajs7mL~*my!aS^oIIGtxc521iLNkqUBl9x#!s_j{6K8Xlpoq
z;RP~(nbsz%?#;|&B$E;+xVs)rX1i$*jjt=
z5KEywp?CEXU9G!
zVjX;WF__Ony#z)vVU9K5I{jvs+HiY5p<)&j8ze>5!3fNSJyuJr^a%;)rbiA1UXDmb
zKpjm0j*7+I{s8BrH;mv)u$R9NW`zIhtz|zEkT!uR=KO^Vq5IN)zO|tBZn;~|?`WQ=c8k{TJ@gbpFyOaC8H;k`
zZ*jlg$k;sQbr*i2KhYTp>60skMU#;Tr1;1%A?LU039xt){^qZ!6;GK~+G?~dt6U>c
z#4KMJrt>&IU|^)g|_kIJWx8bZ|O=(IdU2&ba&+*ekz%PHo*`zVb1
z!&ebi!;C&WR1nB*-iXrD6AJ&+W^7#l8@~%z+3hO!#Q^EQb((=ze}7Nm@}ei}z9kk9
zgpdD$GJYkId_g~#^;`MjL6!{;zI_LwKl?%R_e0%+ZR&xYF#y{YbU%(4NX)xoWsl$!
zR~L{4Y_?&
zveXZg4ei-i8R9o>B_TnDPO`&|pGffik$Do$jtXX;ERBEH$G&JB|HmAn_Ou*){MC@{
z|7CZ;^7#MRqvyZ0v40!D{r|BD`ffv*2TKfi`!u9%lG<(N+(8%}ZH12$A!Pn)L8is>
z4`^bZe8Igo#nzYZ6Z`9u&O!YoNbv~a
zxPudir;#F=v~*rFVl?=XWC6v;4WY^Q(v?X8MD|kP?}cS$fhPqW{WRfI4^F$$dXQA8(KHAF
zfs1#ag8cB#8Z&n;lH+H%vY{%%`9#`?!WG~?WaWm7l&|ICM4V#qXvEN4E36BZisL(7?u76h0)BzHTdeBgyt
zz$dh)hvWwLcOXv^Z_7`)MnGE5rQ`r#-JX=k?~f>FjDo%a
z5sBE)WnMZmlAmhRYfQ&)jCm@dA6egRDGJ!
zm7g*Nw7uz=Tcaf_TT4_=l>JN5>CjAZK~h?J7NQf5#ztWZ#_^l}sYJ7m7^oQ#CM}sn
z!3e5Eie{9heaXKjrL36POH65&doGvwyjqcNV?s
zAO#Vw^d94#o$9>Rbx4XR#nI!;T}fC1UZK&{0ucg|!v?fvy&-C2%=1%k`D^3I;hW54
zS$s8)Oy8)ZqJw>$_GJ|_BL6FBu)e_f*Ea=@zhChmfq738+N~m1=Qr_zt^{!J8e-C8
z2G&`K!r((|Sf3E;n>a&t^Y2%M1&9^qn`0h_5rRoov>$PL&&RLp+>d5s1M}$(fU#0w
z2r_eR#nzpQ+~0Y`F;U)JEN_{ADYW
zS5q1l1|u6cozg!X6|8*jEq@aUJa&mHf
zyrkKN0N#j;4|6`;vdfm!wtDe@D0}aK9^1En{Ebv3Gex9AO9PciX`!V=R7yi>mzJco
zqzFl+L7MK$XlgGFk(P$2v^QF$wAb%-g>c`#&-48J;d6gTUGM9<&htEu*E&W=M}fhM
zSaR4WW(hnMo#|0<_*fxT0HH857gvAS+%y~G$xA!q6odEbmD2P~83PRvS9^H21z_#5
zV^y#(jO&xakDO|78Iy=t-b<8OByL^a#Ue|oF10=3VJY-3IwQlMw4dm>P~dE#rG2&5
z08KwAxSE<8T@%!El9J?}J2ju#qQQr+W_rr_V`W&SrpA5z0=d$Oo)}*wFE5YlkEF0U
zq$sVR@F+oyVXs;6x0y6qDNMuA6S_lQP1YS`o?Ftgq6{GOY+QOv5~mj%Kfhnpwt+j}
zw#MuTd8jyrp7@gbmI-Oo=B(7HsH?Br0dy!8Rn@!hU)F+M40~ZBr-He@KI_Ex_oivM
zEu+*XQ64q*E^jLCa-V*6F`j>|rjwJ?p+jV%g6|+50>*m0Pi#35u8PiQNVW#na1mjl
z$`p!BHAsD~iZgxf40P|Hgv6(8uSH@-Pg9nBxeDZwhzBI873-2YET{dJe?mj{CbO5e
z#V1V2tVAp{vY}=$E?W5fhZT(twYAEpPHmv0qg%b&``*0_Ol_yngRcnf*lYdd5?u`2
z*+bo6ng-N7Hg5^XQ)hauR)9l*4guUuJCQDJ6eq;08o
zZ2x|vK!5+kqc?BgW|g|j$}V$uG(`5p%vft4j==uX&XUT?FK-{APfpvZrL+|ge{s$%3C$hT)kI33X;T&CsSxG3xjV>l_aS5a|=%k~h8(APP1
zRAUOHL9vWIzrTx36HP1I22S3+qeIygGV2<%oDTOs|Lm{tWNSw8DV$h`m%oLnJTFB4
z<{-qty^xqtos~BYICtLS^V4U!=&P|^uYH^@cJ5~HPZ{2k@o-awQJU|hrxLF?&TJH+W&hI
zORZ8*RUM?LiHh7Xv_Ue$Czh&^J-^0nij8E;)O7#%Cy*N&Q@H9FN#Ozq$2H+=d3kfr
z-Z58A{`LrPAE0Xt*OF*7qV)_7yWV@`(
z_yW->ld2YHs$E_geMDw=*KQ&tM!SG)H!&cTq=~<1CPH3FDfm6ym3SlURwS|a1Kol3
z@Fg+0p43K-HgZ1WM~q6VvIgnxm*+R%P_S(*2vfYfVQGf3#T*%FmD}lcwmTPoXhGfi
zRAThh!L}Fk?@+$`|9sOH4{B#PFTPAs5V!0Z-0xY4DJ78%@jLCeDskdgksLPs&kys{
zT36V0gtrLos{H$HznA~>wuc{yx0gL>M3S}izWSFZBrQk!{(gjs``*(ys<&LoCNnI?
zllpbx@P)*U2~^p*FPC@zdSAVFlD@A5k%MQit;tk-_&(EbV%N8FWsDH$0otV$`0dOO%z+q(ps1&H6AZDgmj{-Yo^SX6NpgUX!nxw+_fvL%((Z!4Y@^*}0($T@>1070-d&J8<5se#;Pei_S
z>Bh}y7>{;V2geR)m@0{-rKP7QN53(Qq=-Utx?xjmYpZ_p8(xmbqcT(>4OC=*c{SVn
zZY=v*iRA9U&4>PjnwmN;F3!`_)1lXwOTnn#I5laXV-44~$U`9p(pTd!#^J(+3l45u
z4@SqwKkP0om8F~Nf2YZmKeLV`yxL5@E$6qjrXY7leAWEj8B)^Sk!IH1fO8cI+Yr(O
zbO2|>*jf{KujAs%i;K^Et*SZ}ur~EbbwUMSWI-)DI|K$+Z&IZI7vvjJWou?;h7oBp
z6xI2KA{wn_C9GRo<(_a^B$d4Q%c{JZ{(-V-p$tiA`2F|-NvN8Z_|HFEQ9Uv-F^P!e
zMn<|7Vqzii(HGHbR;lOCo$I=eQQ=+en0^7?{LxqBSH;H0wzai=`hGI+9u2$sS@^y`jB@{zuuNEu$@x8E1*S!*Q5M~cfuR_SGLSwZx^3i6AK3rj>A$??rv_cLk~=K6ngNtR96pSEQjxn-qt)(
z4(}a#LR#J|rrl#ZkeC%z4uR9U4hJQ6D)D-G*{r7?s|x=1{#G7p`*~J~9K26-K0-ZW
z%Ym&g_Wbza!yV(CgR-)vNUt7mp18urme~M69iv}mI{&wCth@F5WAsko-LL}OM~b?t
z>c(~J4whjc3YX^bV5bJmr-Q?td*qgew+hZdb>6dT|{Pdbg4#b%*fanTg+*-G_^Qcd%-V6
z+IRk@Uv<$R{|agm)c%-PQq*!p$a&UbG`9gDOK|Y!T21z1**{nDv4%1kwxa@H$Mt3P
zTzuv6ZAlHkzHM%(1A{r3%g-yomDE+
z-wT@dD?i_A6{FWR^j+6I^E>~x1tolxdKykKU!*P?-_<0#D1S+NEm;fI!qfa?)zJe5
z`qGekDp$ifhsB0kxI=YFntdt6bn|@$$0`|j4(fv(
z@o%6q1w*)1GGQ5A<@G)16KD3E=Po+W?S<_p1k;OtG%am`)IZ+7$jQk`gm7Y-*u$J0
zjiwJt381c#YDycSkqWE@p(=NE-ZAh%E((z=zzfS4{)V$h_N-@r>3{!%IKXN-xmzh*
zWu8UdM5KRI)Zts23>rdL;|HQ-?bGAGgjq+S4Up$!5%i9RY?J4!@$qp`!Ecz(RhFXUt+W4Dq`C$v*H>I!&+6zvgcfz_
z&>|ycb#+sLAdE4RjK)C-ZSl=px3=?1vgSQ`awBccQFlR1*g)@G@&>Ad14h-6$c(AZ
zsD9($aqHWuYFEXhM}ui~E3XQ8Yl>$#rFyTFe4-Fqogds^#uMW^q3fxtv|re@;K^<%
zZmCzTqPs#OSy2Dlt%fSobC>+AsD^f<5W#>P=3($Z8)!y})PggoPj7nS1aTc;
zaQ2-$&5e!Ko}O7`Z=Vkcj=0l=EZAvW8|k#R|tOd*qLkFQ_Z5bo>#}gTftpEcwb_C{OuJYpnU}e
z1I=Ga#{j@!V~|GhtY)~SZ%K;XuzpZE^so;wfMsyN$R+peUAfp}`qZ>M>eBY{2?+`^
zGVMhi_PDo5!L;jr$DvkUS;;75V~PbT#pnn!_#L9VlJps-ED$CH)~dFtNsgx;Ddk)6
zIp|gPXDJ4=h3wBQ-6v?NcIIRC`}gd@9{ub6a%c(JuX~5zH7eIV*%tccD~J7v=?d^0La_QI#Scq
zi(bCmEb0`jj3OC&C8q4o#w+dZ?UAybKrlfPZx>IpM$feJ=Ck3xo{^COprw&vtP+_?$<8}>
z2H)ly;@}M`Pl>g*j@qZN|AK?RrBz2te#O<*6^BQcmugbAf0A_^@*{tkveQ}BuE1d^
zD3Yx#I_Z%lHIP#XXB^1#`_33q{I(~1JLirtEL0#XR4)dNkslHP-dq2Y4F^wCl
zqtmBPPh^}Ym$7+m7p!znU=z3RmApJrZUjI%W8xonW?GMKXcYS2x3eJ)xU!_gCqQ*B
zk~7!9NjOPL_iaV=^q1m|o|3hf2Zx8xmY>?xf*W2Ei)P@>D0st1maao@^g4yxPsNr>
z9*!ZFqPj4hvVRV(#MvkjJJ}^C8t&%B9{u1;>lUr3o+hhxeo$c#dfS@!qLNu)AXzuThMCM$b06%|9TAF}>
zK=c+3jtbwS3|e}@!TY$Mo?pYRAugLiTX4p2VS(%@e}sE&w=YsJrlz!`;-jolFXwm_kRXNu8W^#znqkq7v0D-ym`kGs
z_co$&3B@nL6r9;rmGk~H&nS`U1{4+V^y~yyI6*5VCGoB$#Bmtv^Lo@j6|z)lr$Vrz
za9`QF@rIObQF+|J^3miXcY2iHN-ApV?$$uglQPLTMJGdRL3VMUdV2X4h7@7a8qRsy
zBS+*}*R_UD*S~-N9EAPKw5dI>rbZu@wc+VXEcHL{gIxwUF(upL
zu(;D!o|nZBJP+qa
z)9Bn3bs~5t3UYEt+@ED++{@X225ca(1Pm<1OcD@1qRk!ypD&355Dk0r;zda+(~Nqq
zL*O9+)AwR?2QsRbe8ItpxbkI`l-E5yv6+#;Vp9|LeG^=F9$_^vOkHBYbaFhX`wX}>6R$26H&7W_e
zu>Yd(z)kCU=qNV}+j=|OKhe~9X8U!dPKyyS>ly9QJ!j@2#txfQmtqL@HfwyD6y
zzFNW%m(4Ig!_-{_o
z$MsRH#X=Cobf~RcuLN`S1d{t#glsmeja9|!*}Z!=nf-0yP`$Hgt6Ewrq9r2|J2yp=yM~1^dj9)p*PUuG6;NYc
z>g?={-|I8HkLxMbSNKbAJ@Uy8qCwzmsCr?$;NarYJ*O*G^JK}_@wa}|`vcbrwDB-9
z5Q_*wCO`3jpP08x(9=lf^_w=GR#7REvc*maUb)}O+cD-x$M658ruvGh(x;{gX|iv6
z*(-XCQLYj^jIQqXxit0qH#-=vD?AuFwZsE+L%!4`MIcZ#$;t0FX7rNkFc<3=mMu2V
z4=mo>?(20(TwEL~s|y$QsP+fky=$PWTV<=S|ACm9C~z7_d5P{n;z{P0F70<*(w|}3
z`952fVE0<;zq5NU8s1(x=0Birv^`1U;6YVZzlNvUOM2$8%NeYRdSlZo_6!D5uZ?^F
zJFhuw#Z|+I{UIsBm%P6z+rb)_WkI*llMz5YR5(9h3~y1O%-?ryDlDw|U0cW#cZ#c?u{bEmb6wD=o<@)FWa9+@#+<(z3BQ}=H3O$%%^*!oT6RD!VY(StO&>5?*
za9K6a{tc2OKG#Hm8$Qrim+*00sBlBY-@vFDUFt0IAH3>nTTS{)2ZugEH$YRTQHKwrlXvU`O#UzFEp62o-Gq+#xf!+G=@WJy7;Ph4Yj68goskk|Q
z?T@ej{edp7jQLIpQ8pPM3=%Xjjw^gnjOJLox9m-*<=g6mk496~;?V1(JtYDv%k_uB
zun$8{QzcKnjFu6xp7!=aeQti3wyo-FBDXKT`rd?q#Ig66uon*wT8O-V(yZzYaBvPi
zd^Yr?nx@R|7nFcbL!2+NGEyv>-w6}DU}CG#N!;KmX_bT7)ww9LlO3O+!Nz}20X5;r
z0trVZ&X4uMJp75OE%`g)SfrCkT$e!507hdF!zcHa`N+3ixEZiTy>$$Q&=T?$wwR3w
zOs-^T2Dz|^eATqF;%$z8x9SEPD{C%78@ZA$^eL}BZtR@8tjM3?+Hm;O3)t$R?`U@o
zY0#j&BQsl*;53rIWR-fR#+F8tcaM*wX_$N74iPe&5=DCcq-GOr0D0RNEft0K$FZaBDok``vbOOa6;0bF1Y=*o?_<6>fBii&Fwc)J`7D$zL&Vt*fab-?EL?%jjD1avy5rsh$0F5XbA9$q%C&$?@ipRQZG_LgKPZXn^2
z2GXL&MT?EIdKlvu43j~#%Y_ODS~o&chH1s9q60pcJ#8^``6yg$&f>o9tzmNgc(_M4
zq~16YV#C8PuUd;-(Ur@VX@iXMDAzv^^;Umr-ED_0aLkC6VRvFvQe!m2~@Sh~J|oQN3Y4hMm1TrDP5(fjFtg;N;a
zINH9(_wV=pX!Oa^>&C{!fcikl--(%{oL;GDCbZSm8Zb7wudnZfqT+Z&na+WGau4wl
zpGIFcFWL4LU5-bgg!u{N0dLn^t37bu%IcLDqjRY?l8K3XMYLVK?z(GfzfTLjb?ess
z`}Ar#7z}2ZjJp-!@4sj7-Y}tyW^jkVV!o>}g!Yuur8&O?bhKUREpU`WVzcf_eE%#2
zf^OHY!67C8UKS9iJx0jQt+
z2N%f=Y32tHE~)QE3zuUhL{c}XKE3X8`Y&pNxP7I+*K>Pu&ZV5V-GF?S#{{
zFiIt(;OPkh6V%mx&oH-R4i>DlmRtAlzwfv)V8yM%5V?Z9xfydcR^Kzn?yYN?82(tU
z&&QoStLo3TN%y_7+BmYg%yLGQCwFMlTI-FeXxg#h4SM!0xb-S6N~DoZ6tu`N-)HjB
zdf-zZ$EV}cF5NaIH*i8B;N
zi1wp%fP7B_$_k&A^;5<&{sR)w