From 6842796a6cdeab3ef3a8645b0249967d1cf9383c Mon Sep 17 00:00:00 2001 From: Omar Ibrahim <31526072+omar07ibrahim@users.noreply.github.com> Date: Sat, 1 Aug 2026 23:28:28 +0000 Subject: [PATCH 1/2] Add deterministic DP work profiling --- Makefile | 5 +- docs/assets/quality-gate.png | Bin 146672 -> 146227 bytes docs/evidence/manifest.json | 16 +- docs/evidence/quality-gate.txt | 12 +- scripts/profile_complexity.py | 496 +++++++++++++++++++++++++++++++ tests/test_complexity_profile.py | 195 ++++++++++++ 6 files changed, 713 insertions(+), 11 deletions(-) create mode 100644 scripts/profile_complexity.py create mode 100644 tests/test_complexity_profile.py diff --git a/Makefile b/Makefile index b8eaf2d..38a863f 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ EVIDENCE_ENV = \ TEMP="$(EVIDENCE_WORK)/tmp" .PHONY: \ - build check dependencies distribution-check evidence evidence-browser \ + build check complexity-profile dependencies distribution-check evidence evidence-browser \ evidence-check lint test typecheck lint: @@ -39,6 +39,9 @@ build: dependencies: @$(PYTHON) -m pip check +complexity-profile: + @PYTHONPATH=src $(PYTHON) scripts/profile_complexity.py --format text + distribution-check: @PYTHONDONTWRITEBYTECODE=1 $(PYTHON) scripts/attest_distribution.py \ --root "$(CURDIR)" \ diff --git a/docs/assets/quality-gate.png b/docs/assets/quality-gate.png index 66e3e9e64a22dd0229c13fba30180c1696bf8646..405a8e9788d616b1a4c7ea9bc779ca3cc9473b57 100644 GIT binary patch literal 146227 zcmdSBcT`i`*EZ_WqZ|t=Dj*2p~ne^b(4wNC%NBT{?u`LJL8W z-g^y54G45`f9=AB z3zRREz*-kBTzPik!r#PyE&^wCPG%=B{B_~N3-EIt@0l%>m-jv0+15oHF$Cvl)2j&l zd@kOU`X2Z>SpF{vlvI)Z-atd+-eWDWZ`?c-oBnzJ`i4JJhGx<#&cRdcs?&-WnRl)>=Vl5kbC zjodONqdymjHtP?ox%i@VgRb&yZ&4ThS2GW{h4n74R&a3z<#n6JHvSpv@!)7~B^PUm z?%7oyE&V@Zj>*5K{Q7Y(JkhfJ&j}{Olt_(A?4gjM4@X6p>7U0)E}h@zbd{&-Kev6p z)@A;fyD;F-J>HfH&e4T_cMLY&>8Jm6;X+}Nko>CaT|M!K|J_Pf;eL;Kf=G~Vi%QR> z-*^5(7DUqJ?)!ZFJo}%=Yv?psM)kzEE*<@+o%`85KDn;-mm>cA8(*r>(eZy%{dx3S z-{Idh{LFv<{_h=2&#{E;&i`g+tt~D_;BWmgL#sjlYJ87715K9 z|1U0-brIDVurq;kiwHOg()iuCmwSg1O>TjZjzz6RTp*X7R%|La_d0C5dGQy7+U_Ju&`fS2QT?+ ztiIMmZjaaGI4NKqaFvT6AVUO+%kGa0`x(j!j3K zBlU(kTsyit!NtkzQ`((sjN)%=Dk?MxoCACVC||GA$%>5BRQrJE0S@k48_PD)OppVV(l<-jT`o(QoW z43vUE@SW%zF=K)5ZJf{|b`^RR_V&7F>%`FGQ^L{a0$YXA=eW4nT3Y)>uM3VG7GNmF zE1zn{SPD4TBrcUSb6mX2BS(Gjo~5<5t@O;4fqtn`p4~W?qY*sqxUU`!N%mY^S`7!C z9v5U(R97?LSC(&y1mQ*wSY3CAV#!)Yxw%Sun;mDIPyknT?BLGx)6Jd{p^p---Qtfi zB|%&E*Lop+L@oho&4PDz$%XfEkYZn*bV0|e+FIN^BjHCI>(=%*y{PRI_ruQ;I1KT0 znKeN^i)O1In`^_`7E#Bur%jip_)L?>%7b91XWL$GQl zpt?7+7Q@7Lv9kF`btdh4v%91>@lch6gMFAz=@RWP20ErZ|11SnhPAa7qgextPV3Y@ z>qv?2Xw8^#u|Za&|h}AR*2schOW!QuTofyF0|Ezr>dkBSrY}k(;)>%&?L}Mh5Bhp%FoG z=!!3FwAkZ%EoY~cPMOBP`jkq^jBcfCc=>LI|8rQ} zm7nZoM*qDL>g7ydi|(ofVkQggRe){IssyWrlMGnk*baqG#D2$^XZnmC-#@k2*G;($ zjHHFE-fP(kphwHKzhH~ROrJspB)F`9Rs2;tTPqQ;@-cL3W?IcVz)!)q0}ctuj13_B zgu;@_OeF$OfawW|V#;nX6RMMjJIzV^9F9eltNENZxMT(%%WopaEb!WPZMdz1B_n!Q zP_A$PW>kvkh^mr^y*p_$3Yd${vG3=zP$M7bRxoI6Xei<|@rK0A5Y9p6WP;q-*q*M2 z;DZkWc*_mws6T4idRgdMCk`Yoh4hzxjy#Mk;Eb_Hm5s+# zAq}xfsgpU*cs7dY;7=dvskP)b9e!Ql?hM;4Kjtq9N=QrF$7JU@BS_yQzKZNk?@@b| z0FX3WXxkLxLl_UFjs<|+`sv_d~FVdl()LU2SVrPeP0 zY^qG#m{vc@12$pLS1|7M3gNQU)t%^Q?Caf_`YJOmEv+9@H#0NsxieA3Lph1e41Z&* zrnb}10H>Eu_I7o5Ezy%&-w*C>A0MjUA1|iREizi2D{@O3fVjGNTrFnOsd;Js%?=NN zZi*FSX@41;R&uF$B_%OTI)#P?W(DS@YUhh65^h_CA-k))Td!Ie)MtZ#&JWK!sE4hJ zR7*g(iX&hubaHlEpM_v2S_+B#kV+p61lvq9O5k!bX>>n5Jeb~$ z+O(>^$s{4@(^CVVPaZ}>uw1%xb`!S6Bsm+Kg38wlUfUx@MjBbw)uRY#5sQ}`ej9X5 z2$vZd8S#j&T2Eq@@NnQ~l>kvufk3mJiZScs)yDnwil(Nf zMI>E!IJ=1F3^#xC;SV>~{jJ=jBj%?%?)uk)mxj)^O-(bB_#kwG4ll(OI(Dt;N3=Vl zZ;!_3X-8UgU6>edF-hg@jCPtRaiJE2*Bl;l>z9=poS^HFo|~8w*L00j1bzUs+!;j` zn*f_=CY&jf;EQE&$jWDUH(u+NiadLnq z_RpbU);4G`7`!tLH5*>Cdi)sQGxFieM1LX2eFitFyWtqQ3r~!9n08q2&@$L4E#~v4 zSXx<|NJ1;S+Km^n5qeXgsUjIshmj|2Qp>(Bx7gFAUGg0}MR5#bQ%HMcH?F~F+uF#^ zDE+intekt4i_-T<`#CSdeP<+8pbgfjulll{oU8t!11G<-AI#l8F;uwUZzQVnqQwiZ zRu~*CujZ*Xx~94_-(p-d1rQDthaJyR$G6My^ClT2RjIntCJc-%q={hqq&A#hg;NA6GV8>%DY;SxY}|H(u&-Fhe3QGcq$E-_G+}-72b- z8z@=3ezk-EP_mp{8%)RL-~jjdbbE|86S~>mDgRK09MqW$@^ldM8bFuv@omOTPm6C- z*BaHmIoc9hHqAIX9e&MuL)eR$g$R8+Ocr)&mVnlpk51rah+yyoM#eeG+ z@*In&&Citd=%`^5u5eNi`5vFFPb|7}LBsP}a3NVGSA%O#YEChlk&1y4`WE{w`?4_5 zrPCTL!!KHDy3*>84Kua9lfr@cqrLF(P_83nohFqg>(VyH%G*C&t4QZXSogfNX?q>) zO>NXnjFEhe4wx^aNthUBPMIn?_V6CPh@&@QjWHc+^YT%-#-o&)H-1MehB)KWGSilc zdY>H1Kqnp}`1|+o5ul@+j8Z>Gd)fFz=UdHlIQ2TNd}BSnd>WzjQpW*+zbm4OgDgGw z1Er*3AwhS+f%PRNCC&bbD>3)o%?7_Oho~pte%r>`)Q!@Q7P3b%GjOP<3tP>s%!*-O zA>47BdG^Cby#aL8T6fh_*MuNSW*ZC0FXDhW3o_ttVAfKOnDF_!CPf}Q1{z$#}>{( z@?azW%Si2&n`V@>v`Iz$YAybpE2LY};y#;^wY9n-N88dVCuId8gmulfo6O>M9<$LQ zPrfM&zJ0bZNfuKDd+y8-P8qO8WI4g@1lqBp%xOp<8DQnhmoJ+zVV+_RzVZzWKn70N z=T0I71oDVttq8mE7@HPa1_u22mb2H+eA3sihI!$$g|Tg>0k&1Jh~Dz+XiBEjpXr~Q zI1aOdJcOFBc61QGrQ2P&U^SWL@}WH7SoT1GgKI67zomDehp*_}8^rd&z0ooTP0h7>&9E%x}xSesus5Tv|83F*zf3j37?dNn8VE5)}gaYpN?)dG1PgkHdZt( zc6=I}8eNmi;D1ji^z`L)Fj81!W?FTXt6~5yZ09#K(0!Es!L)kCxmM(Ll1EhKf2Ka#7?Pphk)($F= z=aC@SX*%AT>z<(9N(JBzrtknaclXHC`h@|~4}b+lMV-c$mqjrB5QMM)lAE?Z@y!0f zT9rda%pAxNS#z?ZFe)m&&T9eYj*kBPA|7LRmjOB$pIyFtCm;>EJGN1+LetNmq%k`) z6A9hCN;O>z&9tV1B_~gj5obHE(?L(4K0Vw)+N^dewqRpy$%vI~~#@0xT?=;HqjjPwaG3LPG5d{4%Sc z@7P<_iPh`twT| zYcqkn7H4nOL@vB@bs=J|ePjkxpCEyF9485SvgQq0v=RWps|#;#h*Cj*Z!rRJb-Tg3#v_yfV@$6X^mBb}2? ziVI9Ag1gE~B}vcq`by{%yQ)-AWuAqv9{j8Gz@l+Hc8i0Td-aO)0;4K~Y5VAbZ66Zh=-Q1Nw_|-|h$Y>o zwy%&b2O%fOP^H?eR)Fz0#GMwT5q3JaXkufezveaUjwTbfV=i9~*3;8tQ@o++O!qX) z`Pn;UsNdeWn1r(m&!b1jzGbJrBNjthXB`S=&&bke0WGY8Xbe^)DW0BFJ;U^fQ0#iu zqwNZAdwW~n5?w|io1U5qC3WypUA^%Ljaw9TK2bqj(8!#Z@@TP}D-1gQHtc~BOK|?b zJuQx6_xRnCZ&#H{5)Q4wfHZnTV>_u z21yD_0)JahQxlYdfPMorDX43w86plhr$})~OiT_cq8HPVnah&OuE@Q7B@=jGzmrZiNz*Qq0hl%&^Kc>!zj?V(}go@C7(R4 zX+VI{?o;FEv25|oR^c=OM`RSpKC zT3iU2!IqQLYG>=feOw=0I^$qta>j$Z^HPyX!&`P%o_$kgyN1EXaw$3F+Z;D!NmBMo zhd@wy+D7flz0wtwqe8<+9s7%Z{N>XyI_YUu5WC)7UwByfbhA@$PadqKv~HJ8wqCQo3Z!fneW%@Fw zT0dbCeOZP-JTz2T^d727D!=6o1o`dw@`9=Z^jDXRDcY=eaBTFoR*$`mT+}-d6|Uy;R6JnwEQMtg?;QMK6ouEfEB`&KAd{Y!tHZ# z%rPaLovQQ)W7R2Q^6RmwsZIW!I~K@Ow|-w7M8f@zjqELY1F=gHbPNX}p2dG%(D?}P zOnrUh)HFlQ`u^(mr0uP3AO|g|Mh(pGblY@_I=GVkeUb(to^LD4XS39XrE1>H%I0aA zGe|NWdJ=zR&RGMaz)=SU*;lt;|l(jv)>sR`n3}8x3 zSF8-La4@pAv1x}(dT2&dXc-d^M#M7%OtwzJR%zOwgcZpwJ%Xt4Z9}!V`Z9kxF)b}y4Ju-n>wG9|H}(u%_6lJ- za&>2-6vUd{^8GoOUbK*(748&rkFf4)ZoW9V&_~#ZIUn+%bu3irCun0qUOU#7_mEsG z+p}IhdDj6RW@F7^WzBJQb+wx)nJ@4fw8^By@2d=wvExaw%a=oyUWnBuwx3d_%I5;w zUa3*t(ENOX{w=EM8lTh*_|{jNulsiSm2A0%>M{Wfv$MUkvzXDC1@a`Qz2>j9&!6ub z&)EyQx*mXk{`j%9sQw5@>>+^}=+#x9<+akQgK97Mt3)@K*n7u42-}m)NWxk#6RPPx zL)$D|PMJQ@W)MY|$*Hv;7yd>;S&|ym9vO8a2O0+?+xMs9NnE<98;|`~T8C@KYFOAP zKoa88yMe7&jsO!rby+zR>{GnOsDen6a6i1AZsCEMv;{Pujk`8WDyE?3vD2sGARNP( zn1J+fp>AdrNFx9fY07zaBiSx5 znxyLS8UX^6cMODn%Jfo#k z86ppTuc+OY1C-TpC3nk6x{N!$F4ppj?Z*_Sc)BS?kS>~eou73xZ?5;wNXV0wKD|}r zODY6v=S}@fxdjCaEpA@;41fDc$B}@GN;y+ey0FHgav1Ibw=^G1y^#jBm_J*NT>=;D zNTr-H?&3WA@Z4*yyztb}+}zxFsO1<`?IqV<<G2cwZ&1w4~(pXk!|# zKG@gS#|Xmn5UsjvF=98wm4`d`&cxwF(yMO~5ph?g-k70o@K_u5^^$ZhUGRRoWU(aw zb9RzbP*NGuJ}}Ss=&4eHfrYGvuaU2w^~6$U;>#2XmyX#{K$>P?q+VWMnQGRp2Gqfw zxkk*uLXwZ+SHp-k{s5=VpMZ|u;*37)+EwDVhXKNAEoMygP;GsN8uJnslTfSs>@)c_ z3KY>5<3_tqtp1!~$56|xdY7v#53LTlFYNaV2yA}HwZ+AKQBgPB;B~gOovwJ%rh?|* zAogklawQP`s-}p{H`g5-=T-|=-^7AOitIbHA#~>=eTCyP#A9jNP@T65?e zUX;vGITY*UQn|MYr$}Val@EDvmFK{!tM|Ak;ag-Bogbgv@q!>@Wqv-JnmJd|3V3`1@d|h8LAJS_i?s%)~Jg8A8xh6SQoR~GLEcmMl~4Gli|xbr+LH@Q-vJWHGM!mq{98!>(T-Huba-#3;E z#*OX9iqCo&v^~N}4SxNA_$$8xR8`8QQ$_*t)(O!hAr4wyTlo~CK-_OD-?T9omX(u5 zCZFiS=S@KFw%E-zqtB4r40oGc`tt#)mu7`FSuYbPJ^=-t(aymwR73fCLh+d$Lkn|M zxV^2bmg^L1x7F^il*Ww$q#xpwhvT*be>(pfnFI*nMdZ%`0e=O=F1D8|R5?$csi7pO zQBDpeH*Wku#6#Vr(`R9UgA?0ExUI>YtgI(|98RQ7%8(-_z6DLv&`ljax8kjkCw{l- zN2;$V47Og)wsEJXp_x~Cf$&@0KT@3?=YOdK1H@iHW~cnxyGlK1@j5j%PP;`2Gq`GB zX3{cIWLy9M=Jd=oJNrYX887dJGEz!i>VuJNxt-x}66fQ2>#iVLu4l{|eV>L{b!YJ0cc#cG4QRc6JhewIIPO z_|-ta-N4Kg(fPJw3&81X0ErxF(Wi z_>q`1N)N6?678_C%f^+7Ic|cK0A)KoV0B}$Y{1l(;b~TRC|E(BT(c{dUOtCHahLTD zWFoyeSIRClqJuz1)u<|2hPy z&KXYv9Ezw3E7j#00iNNfrlot!9q}`Xo8zzq_f#z)aXpi!GU0;)ksJI=I30sqoVv*Q zz|E=@#e!;IqnW5Qxe{^|Zt&K%0uszPZ6*+C3|D97bgG3aX=uDdA|b=h2n0gZ(V*6; ze?ROlb|KVdX@!oevZiKhyc#;ZF9mfsX@2v4N&fmv?={TO;_FQsN;=`Jsf)l`=kyOQO4k0^>U_b!P(B(3|7~b zu00EV3V!H+GNVz+8nvSOzlcvb$J$krfQ0|x-~f_#T70VO?~FLH!#kM>U*=FxdAqf{ z^E$)}ZZ}N~TFZRukDC#p(zJo&+&o-1hFVlBAyN0G!C(OJMEK8yn$P2sMb#&wYaE$? z^aJd&u#9oKXx}@rO+^*Uy8k0SOvGMq@}$nQG=*Q1ToU>*IM{hQAKOtUqgSqtJll$z z%%?`oE(HqZ7mJlakcJ2=Tqb4=F4LEM_GN%{-P6;PzvambFi_C&!cG@VmziR_hreqE zM(B|n__(=^!KQxZUrsFyj0>W-DQ;~-wr)Ak)w8okN8j`(9FEQJENw}iG}weEs;j8b z#@c;zzDZw<1TX{srJw;tX$0msp&wm-K)UJQb}#T5F+NKYSR3&O$CaZGM! ze1qR#0P~uv;jXJbO6xUrsI`%9{_oeXo%R9A9{9XGTIX9Tn`qDuDM$OQEp3&YC8q<@ z(7?Uecql$!HBgRJ5vlM3_E<(}5vU2L=C^DO4i4%=&Weym@PJVe);~Tq752D9hik#x zai)4OQai8@xc(@9lQw8|b=6=#ilmN)O%;OXb=YJ$=50Z zG;JUr0Y4NMw;CGi9LFfoQg#urEdo15oHf-@Ky_i=U)5izahz2y=+4Msg6Z=P&-ugx zyBHiDOEn&;Wk|TK_K4tqNSHL@^%s6|ur_%*=*X1BCnq1a5rZR=cqZ?5YcYUae+~^w zpFAVs$L%MOxTBCOH?PRCy8ZgKXv5L+#z+XKKVL{?@!oYK-a?GVYV3ljClx+CLxX+X zrsv=;B>n75=&PoH*N1oS3JMAmNq)5aMz`;|2kw;sg(8m>1@Hi*UU+f(v9HsQkq7Lo zteat-iiIJs)YQt>4qf+GHj+$zcm)Ky|EpXw#bP(}+xD$&(eiVu?m#bgq^<;z`kUR* zd=EJb3=9ncr7=w$8gMkZ;Dr%*#tF^qERRS$+5x$5R3*T%A6HgafpF?$h+>He+!hc< zA<$*1^y^4K^B=VCr<30A2J|C&1$kN;8lb#1-{@hp_hprIC32|SG^`6Ez^uD`BqD1C0)jfcTySrmPk=OG*i^ zE1T|KdJq=8I?tu13+ba6AHt zz5=LlwQ>{=UDYjNM)S|r+opz&m1+}a8>)GD;;CYRDrpRn7*Rf$iA>JO02J!4Kxt*Y z@-DVn%ndLKrQgThwy&A}MDK|WA@sj$j`8|Sr`^%4Cy0EG>cA=Rh=277J`JhN%XSm1WX5s(Gb;NV~~ zl!O8*P1%>qGAQR#bE+)S@Z%u=${t|{oGgS7>lf0rleh$8mBYF-7`Ifvc;J<&!w^dwUuCL@?Eh7Y%SXyfo{L^XI>7UJ=?Eolds zDyyrtAKhc!pFA?T9%y1QHfZB7J~=*awf;G%)JT-|1s^2lVl?qg~oy+mPxRA^+FZ<8$qjw=e@Y{d3&;3G% z{ZDU>{2$+K`F~P_DOQF7uV7Xn*8f=gT07%^Z(Ox%yo6aR$^qa0JqZ^+JvlL#{@-nH z{Qq#{>iUjBUZ`| zMwR|98_A8yx}e@Aug%$6gIpVGgGbaUVBHt9-11&eE-=wU8LsDPjZ|Oz=lAwxNjomp zi@np|UAsY)Mq@7F>fO3Uxs5T7XpXYDE2pYw`!i>5-PHc>4BV>`ZA5v?0j?dQAd0a3 zVcU^s-q@P}cO3rYKvCnEIokJKZ`y98`@QUVp!b>HD@XB|bHFTY=IW<6aE_+5)9kc8 z8Auio;-@Xv+0IY%^_WDq{5sSuLFjULTm-5zql`G{CrKjX@DZVwF~U7!}5DXJ@P`MpDFd?BeEr1p?+hJJPF&54dPvqY6v zMV(f-l4(#+>-M`kO)O*!KO;`v_Io=olT^YQl`JiV3RQO(-&+r2!2q{syQL*9xC0%3 z$c;M%M`cP+l$R2wOy|E#d$PLXoI0`{H8%wUbZ_I|bjunlU$(q}{#)(coD3(Y2NZnRcn(r!+Pu=0xjgiFIWm$@9B@wku)c-c z0yeq^l@ZUxK?cPi@~_5oxTlyEBe`s$mGAwx@^9j?b3aRqBXqUw=D%NmyijuUR@lJE zV{0=n9egd+HaW0>!$~*2^vh`YLTZrW*xHUo?b#^D^Z7b5e0|_Ye|rf!Pp3=U->>6v zw`{{EDM8ztQ^J0)Ze4`197*5E5nqxut?544#(dychjjLkX*%qCuRW1DZQ(N+lzT>a8_Lxw&o~y0RKFcy!BpIH$6=Syhqn`!Fe{!*%h+ee}_+MkZGQmM^Yhwy~FYEzE;r`L6bXgs>~))cms3%Zbjr_G`3-qD*Q^gFNeFKOHp`V@4;n+bpVa z*q+hxMjKeMaWn_fLsEcMS`o1q;z1?u6P)rzbfSkgfsLvuH8n zuL_LL(t!4huhW-5Nccu>ZulDib8!RUa8Xua>ic17-}|e-$-H{E;{Ny2|w$ zMU5BpNcU^h_v1*Uw%I4e+Ob$`vsslCWS-u5p(nMm&81nG>fm(#*mD^2%jzA9bMSl= zQQYzu>m4tAU8PKku$LLBLF}lX6V~tBvKDS4&~bLOw`2NYK_YN(fV9<`?Kq5)aU?Ej zkUszu3VCT*3#tRg_?%Hn4@*GPBy$buG150Eu&+Fj%;aH3Iz|L+hy6=ss3EItG4(p5 zZ2^(>;+dadQAfSBw2;E(Xu`@qDLyk5r(QnpR#BTQfj>R{u$RJob7N(1o7*EG0AUKZ zEx4<-UxOEKY?@rZ#b;M$vJfcYJ@QOu+n>H20NY(-^f(N%5Z>kM|8i(j+n%|>-Fd4| zWz(i=jF9=X75nSt9;s<_s4K7YP{?=xRl89I%Rb8G`=*)Q0!(+rlktp6RHm=cxKN7{ zidoA0OmJa3OGeKn*$0A32VV21kC;w2jqU8Z!M}>-I4S6T&w>wxbfTQQn4!ywh{<1= zqFU&{(;O{2ub+g`ZrQy9432*MEzwE!*vtM$grm|2vyjdvC@Q?`!EQ$b@nS;gmUw#e zQroA&L%c~HTSwtHd!ugGOh$=}4JuZ7c9J%1(}Xy(Q)}#EeC=G~d87=UV2*?!#3uT?U6(G%r2Chl zn9Ke7znoGD0kdMYSNEvDX||40bFnJDD{$dIUgcenQFm z^x~Eo3oCvEi)IZ(-N6B|KqzwAK}QELEC<{qP*;_^MBC=IqGplyGjf(lv3&j?#5|); z;0Q{9WciXhje!M#JW+ZddJLUWV`O@}OGpIpk`D)ms$u3it9G6>ht`y0OXd$|F6{w$ z2?Q1*m#=snY7|+HXBb?9!3l?#R1}LQYg}u{=oF-4FBj`Rx}`oFsk<;ck|R%@z72qf zU0~#kzVYdTXn>Ap0^M5>SsuZeX`W7#2xh?d%2t%rG%ba8SyVrAEe4SSu7`)T(BTJ(P=U(^=Vs6+_3|&*0nHx9vpVebL?l^fYN1~|nA|E!SJhnYajb1k{ zF|rABr@9)^OGCv8RWY`=@^o74K?&TYIKH{LzDF3iPqpV>eUARSdGT*QV4wdJ7Lb*D z8tkiFO0c~s=_tSAX(`Yv3KP5HJ5AGMGAQlwAZ=2MkTamQJ~PO1I(2I??IvI9|F{kTb+DnN2iz}g~3^P|;b`S^rJ!hNYYBnCxCOpjMoMDFBVRCFq@XX>PcSxot^D7;GypxWO?k7s+ z|8?lRg#YJSTBiCjflITAys0A-nd8_E8D`b$T~H$r!X%709IhT#QNK*fAw=DFbh_6jU9=8|5UT_Luz-P5zp7!OL32_ zeJO}nYD`9{xvUI**Ge6x+>Y*g5)?{FSCg+hvI02|w_4@2#qSu@61NLtuB8cry}r8H za|Z+E?IhPG)#1L$teZ@%*`%AbIEv+Jx9b!h?szx2t?8^SD(E<^Ik4*AlqRlw*Y2if znf`5KNjsPgiQ3wH%-W>Jt~(+SADaNYMxfs2!CjTBPX~;OgB6t`Q(+t|dlWEA+^q7v z!iO$**|#eWt+D-;T}>K{p=VB;6zrOvm||;b+C6H#w6}0Zx3l@CVFh(XUYm=a@&hB- zlH72wKhcbNw(5q-Yn4R8*3d*_#=-l^O#tk&&hCHxe9%EOW*sTcaFajG2~vIJd6sCT zn=_*uyJJq;7d^OILPBd_yQT|70-knD#nW$I=jkBt1hjqgCdp(9 zNK|N2Dwf`Ozx*+vrNJjyri_d>*|+_AG8@faSGX-{6^fJvoLy%3qmJnrsn;X$)?H^F zqk3^J5w<`}{c@Ic$r|{rjTM3H2z_PWfK?O0ld)Q1D!PS9#p*mD5GyRpScS%~f-Jz6 zBhMC6&d77^M=xc7gCowe{0{m$gD)LR$ZQ?1uM(223kR7u87DgnK9!?Rj5qY#>IBzODD+>x!3BHMWSnwddUZpwsb%O{x}!V^IPR z^bck(Xo*j>hKKf^nVb9^Tl@=&&?T?0LY0FpCJscJM7<7*?5Y8GOyZWsk%`38ny5^X zX-}R#UvGu1g6+?0K=H_8#!JjeL2`F}qFAa@4g`(FEW15^XhKNGvwlf8zJDj3dh0d5 zHx*Zxsiae6IZ*s0C*^i(Jb|b`84!>&?=`v^xwGT3qzt%A8FsER*4|g|`wD-#U3r0N zgC9xJpy?A|n*{U}I>prZS*v~84oI783CkV0y~mw74;qvAmrp|<%Mr!==PkF->W|}_ zfncFg*bOj6fX6)LYrN;F?+hBb;E(CH16hlq{2sDM2*3?_3(ERY0KydbLs2Vi#X5r9 zvkXC|b^Z1r{{!W1G_q08ow~pZlv5COBTWo3kV#n55;_10yVllfaTKgJi5p5x89kJ$ zuYd>1O@97T9(A<}Ug_=Q{cd11&?=MhJkecq4)qSGAm~xxXT;>wp&$FaNqwcEC-&vB9S;A7p>NoSs>AR;Vb8cJl(9UJF- z|6NSFW2Z7?Yoq@%974agP*iCT%)9o;LEQt@G&o=L`VTopzPyi}RutYdWn4Q~;^-Do zL^Ij9>CZxv6#ve*Sz}0Ty%YO^R?GJ#=wR+&WM@hv;>j2UASG8C$0#5y6|Cw~>EVj4 z790J9fSPv{w&vHS(fuqie$h=YxSbs>g_^W+;KxEYP72Bj22AOWNQV+mYKf*!6A~)l=$^V$K5npv z%hV*dG`ex<#ZYXemfR>a`?QLq>RukQXkEI zJu#^_gYl9d=H>mx@%*o~sVYv&c5`8FlL04eQj*FA$s;3Gr(FT#S8(n(cKZi=lp8$J zo9exB>b`9QXU@ z3EnBHva6U~#$mWv&5iLiD{BhOl2k)Y)y5>FZhfaj7r5!RaSe$`smb+&Jd;Vsh&2K| zt#GDY;M=~5I5Zu}W0+ybsQOC2F^j1vh34RyVI%b!ULiCYrKwwiJN+xYR5({8kjv&8-pbtp=Dsxg%wSH|T{lweN zy4Oq(rn3jbLDzOe(3Zf?t0yRJs~6%HvQfH{qmDI~2IC#ciz=+6=0*JJ_&S z=I#wm57CnQ!ANYr=<88;P|}n8Ti^Vpsr~hi0btlH{A;>cfiT*#Fr}5Uw!aV{io?xU z9e*bxVr){?A==c%H(&Y+t)4RCI)D-ZtA zdtC7lCbJRNHflY;kP27CsGIf<_RZk?Fm#%gn^C5zUS7vXZHdgyRrY<{*;;fSV3E8$ z`B_8fhKW)a$Kg#(gdR+6!rSj%Xqq=c#pCb&5ux`XM`fh3itBDPo3_ri&!zBEghmc^ zcT7yb2~B{e4RN=A8NH-#a+@k?<~!h+FPj)D@f-Tr53YkBuI&~@A6QS^m(qx99SM9x zTA;t5J&{RNH@Efqb>ekr5TcvZP-*FizMLs&`VDkP0WDshE(&L#tJoyj=` z2ZDkmsHe^&YO86-e$Fd~Gqb2yb$W3scVYpTz@q+fxv^U`Q=j3vIHcNC%Y47N$-E#` z$5uz*#yP14lKrATRB5ZS+NE<)eDa^-k&5U_#d}nmkBpkh;WnxH@I>e4{bj*^Yi>mf zs%{k({lI2~-9c$Ws$kCYAsoL}<&mfIi7&y0U?xulqi{&j+*_ zdnBDP6A1JH{Ik@Q@;rNwG7XT(8hi~PN#hed?e_MIb2o~>n|c-*s)Dt!A5D_0HAwE? zm;^#RVqgPT8^!E___NLfI}po1_o_|}%;Vs=C0RV~*_@iUyvmAyz@%gq-og)XU z1h-q*x%FNe{YEY(k#lug1!N2?PjK#Jrp%@v^-z-=aU+5QJ3Zg24X(1d>t2U`xX}Be zrJ!2VCSmUf(T{4l4eypv{t>&QUw=1~VzGl0rNiX6_rcz8U)kLV(OSO?bBeN zq+{@iQoQEOnetjJJS5c84wa4b3e`%k`Q7C|B?P#Nu?lo{imgCf?nf=0;@0-^B!bic z>@i$hO|7#Dmi>0dEO!lUWl3KJ*Jd8*AAH0S8}G|GHpMpK?^#o*v!lA%BvzF4b|?Hu zA6Tc*jI^~$gq#_p-} zT{pFCQ++p%TGTyq7l;GBQ;WhRjUtN;rOGj7s`)oD~c;L0)w`GT0)rzS9-+&cc_KW>bTUpR`jYV zi5`Vgfo>`=OHA9XMb<$O)#T|(4^QLdB<8cpvt8uTEEHNpe47G2_@qk4r&-INSWMT8 z+v^o*RpW7YVoQ#}y1;w3!hR>VfV}~8P|h~$n>@31)OD9Ry;X`fmXnQ7Pj8fGmtdFvTg!f5cLp2AXtm8f$(;?+#)7z zV6g9KV{T?-Ko8oKy*_HgE?MQ}g}O;qbn?@z!0s$1N<{J2+v2rM?;Sf&zb~4)2!t=J zQ0KgR<%hX?{$QDce~~NPVpvq8{T9_Y-p|CaLeh1Rib4kKS-qfHo|{4Sf3f$TQBh`F zqpq#3wh2T91O!?XQKEo=WLpUmCFdX@ITSeu70F4mWXTjcry>cGb0~7osj7$tRYg&E zf&1)l?>+iE_na~A9rygWWB5Z6iZ`rxt@+OR%x95qjTLwxc3Zf3=%IF+m(_W(=4z-K z2Cc2p0eAZX#rn3K-@r7%6I-YV>6Gd}pJ3yg;1t3qr@Ac6l7jY7QqIRBPAU+RXh!Q- zs)$@Z<^3X_U7MuU5qEt#Fwop#<%S&R(cF%%p`M{Rq`6-p4}Lp5BgfxQvD*kD1kr>e zrt^V~!IV!Idi}bV*=5)$G})Db`Oq=Pe}s}>$<)x)6cQU5kt=(JbS91E5#wm{Xj_@` z()ZJuZGpU6c%HiPi9cmJ)>x#K#^Z45bH0T`iECu??Qklo(R-___`5<><_@-NoBd31 zO)!yNx7|OftsXnh;!uYfM$+}cQ7E~Hz6uAf; zGva%k94r==f*Ra=DEMGoZ)=`Rq%T`Y6_{nwTV{tWvZ7F@Z`Nqr7V>1H))UY2}&D1xTI7k?txY?H%S6-jIes=`6uLK$8_IUs=iydmN;1Y0S+68Rap|raU4-+g z*`kj*S_cWHJeP8_wDR&lrs~#~adsRAi`}*&%ASAqEGYg~&!=iCH#PKw6*)d}thiRD zeqOP{W_ClZTZzBw{LhV_FcjZI7b2fLDAJ47p|jl| zk$e@91DfVUl6r;>PXj<3nTm;h&yvll~E2kA-pL`TjJ6}bY&org9NQ*tOTSzUbDv@KP7tH&3 zu8?vTQHuXPrp$XK!ilmxXX#!_M4p0#1MO6wj26SKgM^cn3jA6G6Ly_j1r#SSK^=+8 z(-_0rqxP$SP^hcgK|`j}ZcTtA?S0^Vb;SyoXhc-mr4lJib}#p|CB0 zEW0wAVBifv1&szyqn@5_A4X-^v+U#~2l%7{FT|DFi#XwWV`!<0EG_9vk9+2jXo;j( zZX^@-FMl*4vPd~$LDpA@yEH*PSX#jwn=v0t%-x_Hjn=#t^v$0QR=49GZv6Aity)zES*mYkjQQiyVTsht z@V|zCm%Pg-^Bk@lU0y%_CRV8@r)hJfG5DbZ<1$o8$iUTk?4Yc>>sj61qzY%vgLu46 z{KZTnn&IDZ<1*C9xtah?W%9g?kvfoLYEY-9xs#Ns*wYlQJ~M{Q)H_XzuU2-bl$2%i zgj}JKPk;r%vF{RocbPh!OXI)6LtbX24jttDK$aj^`dRj#=#jt)d%rObr*c##)zAFW zLGWS02c(w3G3|@rSFcB87@mK>b0bcgkuN@-UTs z;<8UJD3OaUFVR1|+L!&{Wr{7k{!6o$cOrE_%!SXf~ol^6(-;wbw#?oZ>)DK!U$} z4V^t|;)Bdhsma1O@7N74&FTf{{$%Baz>~)lNa8?}9hA#Sz&s&wXM;lE z$=2kwC7i&OOSN2#a9#u@Ud&~VV(<2Kq>dlk?C?$E7ICAhRVyZ83nl(0y)o#|r0fWe zvKydSc^?knZ^A@XFKZcu>iFQW%ii=tC$V_uWTt*NJ1`?DW3d@D6`vH)iSaEkodqka!s z<-`I&e1u4L@Hz{ri+E0v;V19@MOXU$%hnD^l@fU!eO}GQMM`ji+;to~qxCdHEGqkC zI^WB+AlbX1b);r&j5c`e#QH5m7(^Gk4=VY!GWe*l)t z6gB*`k0=Jzgo||cFe)OWTLzySk~MH0nQjKgIts$z6`b(%H&1Yw>vI5rVHM0u8H`+G z9Q}MN92I&)<*Fi1ry!z|>e%k?MNI{~%pdaqQ%qp#^c9Q4&i(GWmQ_Cr2Y_$sLA2}c z*?M){^6Ifec2_hesjQX6%9<8!X>WEM{0FHJ*7-N2f-%{R*8ZX~bETGD7}vsF!8NwZ zhrS~HP3jhaMi7=?cg|`o@|TYDK%5lVlSuUD^HydbMLj&FJ#}p#_k3YJ6g`QK5KBMJ zrGytoYy#AX5n2iA!1!q9*z+Q%^S3il?FP44;W+7%i7~tB_Y@xmn}hb4qOfawx%!qJ zkTr<^h}K|0N5w$!3crEK^2Bcqbfrrl^cBo>+S>}PWCK9GciDw--P#KEpK@nzFH;}r9wcJsO1bk9Ob zw-hn;Iu^8d;!o7r)&ekJyB~_TRkB zJ004kQNzGZKtPV4>Yn-A%Nk7nR@0GAPe-LKt5tsUf!=35}5%RrLm4@2JOJb|% z|MM<(2LAZsSt)H9urZszPx2HYK5UbSillz!WrHI}ejcvLgzGXBvp^q;iM}H+a~FIN zO?e6?evxGzEZ%*qNHfiI;tuJqQ({P9?x)DUv%+GosgJ{^#r9K1hkq+0|M^Kd_~asd zOL&&@WE2CiIgy`p!;YIfAHCkrwRY<~xk6KCb1z6uu8kXF3i#Zz(d7Oc? zeqo=GgVKH_{4{+Zak-#-a=9EAYfN6DKn3P=;8hz<8)-{!NH!C?)bgb%M#<~$>jS_y zuqwXGgDe)8$-AnSprNk9P&0GO>1D=BT;R;HnqpPj8(ERIzPgc(Rz*JI>S#U=*bBS6 z;a_u@z20degsbQ{MKk0b#LtpO;HjaRoG{oxe~WAMSvM_}9~>4Al3`LGWC$D{8xr}@ zCsna^nb*G~WT%JN3vbNwJUz{9K7+Fcfz311&`aW@0&CRs4+E5Ny5YsMd1qd)G+zrY zX!pnxxmny`nMdTlbP|<%dT9#gh1KefDnF4CKPVW;FN>)1|I%t0?4poD*g-Vo8S5-=8RJX;vfORB5a)25h0CfR>+CrrdXGc9ItH(8XCp0PD zey&}?3i5QI23n(>JR6kF@@|FcK+DFzM38!G0GRb-DvMt zZgk7}?2>gk{TC0DKAD&D(0eq8ERO8Fc0wF!NMCT&%D=(Z(?FJ>=$&4k7_XSt#wN^*n5-NBNwNI(LSe7efxDgf}qu!&8JuJRy5O&Oi*B_={W-*}xv_3MjJb?0 ztJ$5FW4g-2*SAI{a?mjz|2ledL5Ul%4E)@Vf*yjFgqo`~U)A?i4}SjE04n|mgu2|a zXd{`s6|dO9jgshsYmF34Q{zl;wf}~gA-4>n9QpBx>k*-7DZqEE_VkrMbP*9c zU4l^m;A?o+UYPCt;_A)rzE1YX7mi6rFM_dbw}4&#PQlV#Bos zf;_oO^RoT7`J$C1+U3Ml8vNG0aqk!m4U)1?Nuh6-tJptiZPkS6KO`2q!taKU`S6>nuYA7hyLbMf|r3 zh?IrG&={#%OF8&NF7qI#85xyk>GZpMlNw`oIy)LO(3VRhw2$uE&VKWf648L$75*w9 zhqnE*fc)YtqRCV#-9C?KcD^cy{yuuT|Lj*l%Fks3w%@UDS^_B$8rExbJPJSDa!sO|`+8Ds$y(ue`L9is#QHnp9v?NB@c$IvCp@ zeIc=#00r!Cd;;@TRh!`5;2l)1$F;#|Y}HCg*%F;3b80J^bDEOU7+twr_5|=EI>h~d z9F$WJb-qcJlg1(2di|vl`e0=PU^9DRSbyeMdjxrX&|607eOOpnN#jf-v=&bd7*g)ejAS$2KcosRl zHyWY+dIh-e&ii3(Mw92h&wDnppg19aS3=ad24P z@70JKjf6Y)Sk+?QzP8u5D$|hFPJp#$FU#W4wVmRC5#?q9h<)RF$fM4G|c~6iji!Yp@&Av?m@0Ah((S|Y! z-sJt=KEJi z+V{Tp!{H(|K%2iM$3b2bEzbKy(G2$qfaR(r%L>%ZyKfS25OE z2`{Vfx`6jUSCYwJ;{|+aViosm+>G^;2kcDQJ8}JmR>|-TUCpDTwyXUoEI-TFDY%0E zor(x}J!LF~nhou7&8_M`781f-&P`Z|L$TEr;M)TB5a%$E3G+W;AiL~;r6PzUn`hxO zUsAZXhonTTlKHSZ=2{E`p15tJAL&F?dm4p1T-2f&KdKF&6j!uwTVc{nZwbS=Bj3fl z|90)WJB3hCND_*WdDo}Y@@&Qa=m%Bl23;4Xb3_JSIr$m4xOX!5#3%-4>uqkew@#&X z>ijk@a-PsyZ2=g;v8$R3YgJ^Ws`Qa;CNi zhs@jFPLxTgqJR9P(rls*l9GHTe01&k!lYVg8hE%dvk&@1l^7@L4vW6>J9+1+QVkTn zJF*H3N!dAp4jW5Nx*#;TL_dIr{z)nWeFJLh2iI>X2S)@dS}gabgoGS+vk9`bJ}wTN zJ7@JSbfwuoE(WetBhcdwdKNGF1rrg6$w5xm39}xHyCkTF!^v;i$?zz5T(4@hyU8LR`XJ$OqUUJV#bc+KL2|OOqN2iod2P)c@&Gp?(k3p-#JzWZQ!Y$0ieJog zt6~MBI$@R*naKJ(;lKpu3O<}gle?_A`03N9w@J*+&2@DlBoifeVOitA(%Fx-F!H`~ z2!y4ecRmoQRp0d0Katl(4j&uu5FhyC2JvOp8?K&vWz_uT1q!V!yeqTekJ=kjj)rFj zp38g!P4ohSp3;Z&W*Zw6K%9)TMOOij20cOssub#?zYL5I=1N5|(McXWkL@>5c`rJv zBXaU48w|pZ=G>M_`jR|PS9p4*n#_3tc3pZfyrCES=YJn$n@*-hKA=R!~4v^E)cI8G!aR|9fPoWv`U2tgK8- zoaN+RfolK^&hn6a`TBVO4~B-Z_6hxKy6*VZtzpsSEy(K1@-n4z32T_c2{NHbvq{^4Nqb%gVG%_WBi=_S>j9X||>}iV*xj*kts$qElPiO}Hz~r?A{7ZPp>p{sOc+yY!UaCO%oLvssX(TKzAPb=qz|h!0K<8b$N-WH|D=MQrGp!XyJxfhaPEf1zoP>(u!;cQE=PDfv z$|8sJit6iahPivue_g`$o$d|09Vy@rXk)&9&B;c@Bgk2GXn3*D4mnN~lT(g24`PA8 z8r*fv0cU@n5+jMrS^+`E8QbZBBbIST(zm$%n3$08D2qnlQgN-M8X~{a7H4-(V}0Mt z{g=ublc_gQ`RaNdl9FIH)5r{@=QE(c>j@5I;ZM^#cbOa zwS37=v9-27wng*AM}6^sAYi`?ZZYt)SxlCP`@iJp59p{LQ97&&ie)8OcA~;bO?PZWT)8MIG)-et{?!UV=-NB z**h5mrp0$*w0VsPO3)Jy-sYD>sbQi&n_t)1Ph58ZeKwV-aTYpY`d}{7dG3;P|Gx40 ztV;7&OmxW*khDjJ&F1MgBHLu9D)AMHZa8y-+e%HqySZu?b3C?pkiBGf_G|%(0yjn} z#w)kbE*njE=gyr?)LLFWzAx!(DD@<_g&bjf;zo9VB5FJpk>79RdF+*<4f9-D?VW0! zb<3=@!e=>bp@hARjg7aqw=K-g(@#yz%@e}IQyYbV4EcGbtM7vnML$P{>7a|mH16}K zFrb+_q^gp>FI@Q!MZ=_8AP;#k&=@9}36zRg(l1T{4S>UoK+iLE3rWjWr>#j$-o)Id zDXcA1N|np&ovcJn%(4dMz!+=vE@Lhq@jN*xV`mfA6=9AdTY=wrLQLB7Kj!o-(AYfdY>5RU zSHKC`{Iip7ZF$+mi_3HRJ_!bi!%S{f05^vF5&lG($rHDnew3WBC&@c10#)+wFo)E| zCMWA0oGl#zZ=IcgHa$$o9d7X2cQiR7ChNd7l%4GEzFjS$r`KBNU##4{3j9~{P^FWG zlQ3_;&^Ct0YEM~4i?prYdnl!GoZZ&Jp&*0un7i;=ncK5+4v(&&{{Ru&FyQrP}HJ{AFi zg|M)0Qj@ET3z^`0idP}zU}4Gwht?{!Z~f@$p`bYIxIJxP(ff#w&U`dqr{0wdp_w`I z**j0drs`RA`X1tP3$8immk?s-EmS(F`ph-S0K`jR{AH)aMI`I=C_01nicSI8cajiX z=D!EMHPhg2{DA;sX3#RBY?p-Sj>VU{wP$^A`l!N^;6*^FvPs9~%+ipO?)SNYET`zc z5tw;A@wIfe>jT2(G|D%w=T~o1IRA{ymJRCocEx1cFz5~L0T(~NF&J;)8ptGY zPga}e^=aGsj>Ayj{clon?eZ8|=TF1qe4) zvl|ai?D`+@x}L;Iuo)Q{k!c!j>GF#%9}?;pfhcEUeSZGA0agjvq|J3PU$#+xbust` zg-nI|=Y|pJu4#kz;9MFlM00ERSmE3sVg6vYYhRYQ`+{ds=}e>%r>@?LZBiB7q*Itbi>ujtCH?Yw%Afu;uVqtZ1_sH!>7qUvy?x6&Y7 z9P!$9vzAAL^2!joSnJvLOBX(hORhM7v2H7m%@Po1XJW#EpdB3kD8>=&eo#|WL&t&g zOVO+}8Ld-~)aK_#j@K~o@wK%K*BggfCDR~51QjQ^2IEk9#K}1fjDFa1^0C4x=hNoQ zGGjJ(F5J}E=}}kKEiVh4xwy2nR^*dgv|H2cLJt=z#^y-Ff#W)boHhA{&B-LZd(?6~ zU+$^cO)6%(Aae2)FZGhmejtoX2KyxdsZC~9CRoDT+S>Te?Uq5_-fwJeB}?E>p_S*c zXtJ=^E(qFszoCb6R~jv+%juZ~IG#Rz|DMp$$fkP;wtNVrIqDZ4Bc>UL06Cm$p%$?7 z$6vDv4GK!Zb`ikxc$iouM8)pj0aY{>%`ogX0{bX*0D-$&! zi^d4M*V~QhL`xnboc0ebcrw_6L;mq76M-GkVAq7r$1`L7rv)4i7Do2K9$2momb1B$ z*g_ylD=xmztKaecH~i*E!OHslx0qxw|Ac_IngVs$?x##x&{QMZGjQgm>Edx`zu?k) z2%*<$e~s-}w7$f^ud-j-IoC9@4UKjj9At+%qHs1p*d!!6HzD8!1l;>}0d^40$?15W z7HB%fFl(0pdHy2*o7DUJ#~nZnM|AU`F*e?DwWkKsfZN@gNP!n9x&dEKf1;qS0#{%` zkZj8EgDRVB)){V5R~ICE4y;{Nb71W^zSQG%Qc8H!v8V8^BOaK$s5e(RJJkL)g$(_A#j`Y{J)-($9%c4Vz`%a z4W4_Mh-QS))~hLeQvLPguOGDi>*9?SqqYO+5prg#)B%^zwr2FYsj#_W;w60&Bg$-xGHkaT3$#NHsGt zp}~*7^&vhA&pbvyisZ1&Vr(|+)xpr#7uumHQ+m{)e^ zEEnrBHmv|%=SE1INLR|bkc)SN%AK}z8asV~6lw)W#C*9!oO-XbmD&oS)sq}&xvTdo;9RzPOa1~`RF*l4G84@MU0p6q zo)x8{QRTHp4X4=yK95r;Zs2w3hulyeDoS!Ixt0$qet?H!j=J6(11J;Jm`I(_ll7Ks za0Yir(d?50`A?whN!T*Djx-!Pal8^ZkXZK`2qW*wqRGOz9NZ8A-+`?{%)^?U@nQC~ zQ%;#5Xsu?B3LMXv#=;+%VW-Sd;vzyichc~?Kr}Fk6W@)s9PQdjzgS~oaPz*<70{jb z0Kt4+nb9{6^E_3N(O^tT%aY|_B=~X+XH@rY-lpo@{tlG zr9Wl{zCUHhGYpCog_{=9-{Oy6EwS7KWm`c9mI@gUfYXDjdnj@ho^BXz)jNYu#H^tU z<2@ahaL1r-=812=M1Y)vhWtq$dXEx;gZ;HL(EuKKJP*2&^ZcpJs7}8bOS+!+v_9O= z8lxB*T*`}1B`!C7lYtg@xF}^zxX@)Xf+N3nG3g>W+V6{Jq}tzbT8Fcq^k>bgTt$eH zJO?V6`&SZKh)qwB4jTz@f7W}h&qvhR!2f|fzA42+;k&E#g(wJ3F_>izm3H~ zKH4XNt{r`VoF1?E?3g3Z(~+w4wPgswJ{87b^nv^)G9#ghR zgFU-u;#K1sAHLo%!h<$1ML(RA)uIZ#mGK!D3gn$3Dt>+<#?khF9u`sxd*p+(Zb^Ne zx5u`~^5#r1fK9lmWp9%dF^;yAmoq+<x`wpS&OD#x!{91_nf_{I4uJbZV!OEKI6%Sr*X+CtKLKFIrmhDc7coiosDHMS)C zk2kWHuQ&z*q-&TfQ{`|W1$#i8vDx6rc55Fs0*p3g%C;KpFb+$y`=n>n&vz}Q_^R8! zttaF*&sdcEmCv8GaK6Pw{EGqBAz9$*KJ^s5=RHc`Qf6C}!ee1%z^m;j2ue z4XNG8n%!`S6924D@jKCnaO_NwLskSbYf?^xYnw z6mEgfPn6`$vhRe5Evm7k@r^2mF_l96H zaA5FAr9Xk~0%^&{NHs>P1y7g;L2d-@$M6pyMi;LI>NjLc8{^~3BKB4(&yJ`WNjWki z#nmj(&@Cuk>4tUld?<}KziVP+^r)dc-Ah`zXiZ>4IY_&0JPfTM%cgZx!mQHjsuNg6c|9_Nb8U#w^ecj4a9269O)s zfa7=up7T54IcJXCppDB6{Vj~Iv!(Mj=O}(Um1VC(&^v^DGA{FT-(-STdLp^^jYfJq81Em9 zVs;web$D%uXrgtz!C@eImx3h?7nz?ko)rvUxj=y*=)cj-?0D_X*uMDDr7)PDnP4OZ zN|rz@QuTmkH$3j^dVUHw$k?gX9og>y^A8su5sL~Q)Y@OyVgN!FtlK28d2ru!bl1xv zFhrUyljk&OkZ7dxZx4*a^8ycRFCFbaa_fJRZA^M|b3V1=as9Iw;$s-a@?~JSi8&Bw z!t4FAyMPT{&g?EvWn85U(7DeM-F*R<@L;W7EeadaY7XcC#BA&vj$D_i%KWYT>{9?W znu#B3n6&LBv4hPIFX)m?*l@5v<0>*RQ02+?Dy_m#s#KKA<Vh zbh?w{RgeM7#zi8_%N0r_&=m;8H1#={xm8Nj z)?!aXpEE{a`7^gIdCYnQP84-Zymy8Tomwi0Y6)6On=htc=!Lof0l71)_Vax0)nbeYo9C<~A)qgQ47HWYrCi5N4Ht&UB>N`XkUf4Re(@iw` zb7JDD_5)_i0u-UeyP!hB82Svq`vQP{PI3QvgHl3Sd#6PnKW3C#OQE$AH3DXg$(-7y zjV;rx-p?F;XMH2{!pThv{Qom5?al$=Ipf1MP!k6q2HZXBygqb8*&#RpQfh{)yLv{) zDeiPed_`r!L07@C^R8tt92OeeSd$#5{glqfCpUQeGu1*Iy|z)*5)sf2j+i?m2!%d< zs$kxYqW_f1TN~;F85y1^#f#`e-Q4~j7PB7|-7<)rhwoW~Oi2{Uf4qLI{O#ak}6R-O-`ssQ8KVGNNK8;iTeuo4> zHTO&FW0Njb&pyyyIgW5eLzm|3VkT)FMhT;yLhJ+-PG?c^^qQ?sgQN)a&Fag;U$iM` z7Hm=Z`Yj6EVwc2?B<#iVLrZVYrS zE&az;4n0+0@#<;*yz%0DutCrrpue^m^8Reb0X!Sn`Yu)BVGtou$XbYAh+Y+{WPwkE zntIOxc5ucJ%io;yHdkrIF7SB)&>OL~pUpYeSSOw#jvxsZZQ}0d|GbJ>XAYQu2juW- z{{-Z2P6VtzYX(FvoUL=x{YB~?`b;W8w}n+Pg|}wXu&Km#R3ISs+Z;77dMv%BsW;a_?VKY($3gB8?ygm?~)4t z8}^Pi?LXMN_1WvHEn~9UP2(P$&zI3vUg4ieSdaP`xtZx(yS{{*elNZGp88+FyT4wW zGl89!8cXPDn@@&@NmlN6mR8M-v+sX>=fMZWL%_z_H~SVweb_XUge+7Ett7MQbTN#( zOv>W~9`=tBN}RwbRIIES!u;ey07D7ZK<)1if@_zH;7NP}ukh>~57&UoNF+nK zerPnl=G+jZIyjpn*D(u;*VP`CB`o4MML+xl$b-E48z8U06UXo=qlV$N-lpyGCcTB2 z<1RB6-cbnlXw6$34kEDPNm$$aIAoxY%7P7=zW!!0|B&(uzkkQ6-LrU>A3~Le6en#l z`2(y>6_2`X8K2hxRx?B%1RO4#Os0P()x|T?SyEQ7M-leZ+pexv+}x|=vLyR9eU|0= z9t@BHa{?ynmpl^0zh>N%YR}-1SF*=?&M)Tz!av{2+YXlddE~coXoIy!gr5#^)n*IMh~QZl4NWM4Wb)*|Tn^ zpZ*;gpBlLE1Q(fEPQ1H0b}FSho-)rVGl3%g5*6Hfr1sP)aiE_Eys@?)66&rAv2c1# zmHZ^DNXovstNQfA3i4_)q^rBps|114GuQY)W)&*g+d(@4H}CL{`w1dI&>|)&(XU(0 zyV>YrG)Q|EzYRz6adf}Da+9Lz3Jo1s`YRD2c`;GA#zs`1!v7RY_WI4D>HAI)TvT}u zD%B6@v^uCmspVr7KXqpN>%-b|$|hO_4x?XuB_oh#Ds%#6&}2|`*w&I_%NX*c;2iuKelheJ~xxEc#ow|j8a9Im) zX8$qwKvO2EC%0}U%abraYS1bW9SNrJHT%6LBBY?EGP^*9>R$f>@i3F0MMa4bPUbZ>Z!y>?ngS+q?oOx&e8-tNO*$vGK21gU)FdGkdR-X*>#u6Rs z77#cBd#mnjK2VRQNzwyN4F!A$B-?D`Wg z7iBk+0|KMq*$B=39%4yEEbTV{8hKE+dU$)0mr5g&I zpvO_urgJ(xF8>(O^Wks7`a$0P1_(zP4)!hQ29#63o+73Jj)t2bYwD zupoq=%`fjK9=&CoquaY+W+L|1ez!<&+WoQK`>SW|HK&Ka$N0Nf9v~4N`Pr_xVAN8i z?)O@XWXx&vlrM8FVPgmeA~BiuHU4e(cbN*!`lXHP)TjHa9d4O|?AX=MQ|IsX;}!1` za-VIu0PAU=Cb_4ebQLU2OY&M+H_=YHw(>OMA!h>&^W)1r-zOrrus@{xdw94%(bHXJ z%Q*PvxLWg<=UEy|FQ?JtENmEwnfpttRRj^?RL z_cl3GD%kcmR4)Lak~+9({cOgN79x!@93h?J5=-i(S%ns5d^%{U^$&6yN}*aGYfOUG z7l2lN{=o(TO+UKE>J^o<&)|Cv>$FcRtuzC;M*|&V{ zs=jg#L4aP(baAU&%x7P`a6y3X?fY|N??O|4_&-p)kLr*9;UfCqXru+j0)opZtE^Cx z##Akg^uyY;MoqxSj|=B|hv*yEn4<(IzPO&TtlJ*&m{eZfK2 zKsP|Ew>I9za5L$7l0IvN_m+TQbAcxde^{=|2E}eRn-18vc)L5an0!}M~iTA*TA+$-KUluzR(>rP*IxcPO14oNh zjlc{eTffqEG6y@^^Le*6`Uzj_V>K(I8w2xJoW&5Azc#g`r}M#J?ET`Sy*+>=g|(-5 zW`Fr0xa0m|n-Qepwm`nq(nddx^C>k#B3q78*5g=ae6)U(#fG7;%9*h8g!2iKf@kS( zj$xKsGw|)tKJR!IjQYeF8GaC)15ho=GZY7EJGFIn>dhlp=t@DSI)a+-%JFF2^X5Dm zPII2v>8O$FyK9B`J#km(s6oSv9%nbAOh%DPHFny~RJ8kd^p?i{?x)aCo*0TaUxN+Pa|L=R6yhOW9Q$rbd*7^9B`XtaNyazw5YU>zUTEG$Hk2lFo8<75eW>AE z>6=A0@-qwfzniApsc7jpPjtt6spWcIzgG|-FFvvZ+!&Ls8*M`sXNH_MUlKii}+aWtx-7*b+T2`l)KCoPK%&Wm>P2N;k#f6KG|e{f(i`0Ejc6mM8&UOuTt9G z`Kox2n_F_eWdEyw zSG~G-d>HXf$^ra(9xX#+y~W#st|79PX!Z;~R!^K}dTa_=IMcotTSxEkX|9&OzJ`;t zlLdTrcq~dKhJ>Fu)AtMivCHLyO^Y@4ip9{JNU_fPSTe88G;~|yvKw7m{TD?&D;+Qt z3_gY#d{5!qqgzz!)fEAk=lcE)>HCjK$?BF1bBO+|wCqHQx*i$rjYK z>-mn2Onxa~ndKT(0Mnden=LP`;>XNx?;x(e5WcxSQv>gzuxxZTUt5p0jZlyb(Nv$* zHyMlK&ET_Q)y(dD3AAORIOMmzz<_HrdZ?udY$V|sGYhc*L3R<7w;93{laHvIR~*g~ zgNl#X82;D;>a{J4e4vr?pN3JSHQ*%?+s4A>Df?D=ah$9kN1EU|gAvpMT@qbJwk0Vv zyS~G^WiK`(2TOMg8FWUc6;*Wh$C?%ncCK=tja>n=C}3eVAw#Lx~)a5T@pDe~AI_i3QlEnhp)Oo+YXYjt!ci+u4*GIs92=|5-H&uYMNZmrio`yxr&<`5QQ+z;=5+Y%4W8m z+)mkx5U~*6W0x8A`oqO(T^Xvgk;f#=GUiEFTDJ;uaWT0>b#_Tk^FU#diSvo)QRHyH zJ0IKW0sR`~Uk+`=sFPu1K~)bF5Z;x*_WnkM^>cs&5g!B&D5E|s8=X=<@CS)ap6VNs z2v)7T;bf@#ZH2OU&>(yb_S`siHT)IOj6L0KvO$DxUJYfY-saK-8a4&pdUCwwdW<05 z;&4gk!>g`;SUz)mdrL`&ojsLbV2V3(aW?S2+qT7J>XLicMfa<8fqzF3T&|88zltgz zpm>^5MSb`pu8XzW?L0El#UiV|*r}F9Du_T|SbkN~8jobv;c*S6dOqIO{f27%>~w*0 zM?GLOm+@&e%(H#wkUu~1fq*7YflytTcy}A35i>t-o+3gkpuV``5*}pfM*EIrP)ACN zg#nZ7O8;kimq4YpN=ZBLIgy8#r4Yug`e4clqo{_H1h6LSO`&Jh%UD3%pe+WpHIl?3 zBd0l@!tt*${q?3mTO%4|N*MjoKlSxew40{nW_;b`PNu^*IJuZ~X0#egTBeWiwUzuQ zT?9jhCsh1z8CkdaP;^g=Fq%3vljk$aM*?Gam)Zu1UBESaYP+~%ge2=KnW|AC9r+@Io{_+bD23*8B9a_LM7Djft#14g@ zuOtQge^Y4WdO^8yrJyyP(Q%N@faVADQDxK!m*F+2ymY9Wnp%!)0}I` zcF1~8+CD+BKN5>pUX6~M!t3S&A9Hio`$w%jmt;eZ>C?R*WE@64~ErPHDU!&k90No`0MLPj#pDSC3|eA;?&gZ!j8>7B^UjU+hJh>vmQS= zQVe`(efgr8w9$D&o0ltxJypr$--SxaAAka$&)(EMd#MICZe(HZO+L?cuK8D_Md&(@YFYxB;MW}%rsnvPcitNd~?t0C-mPN z*725zUR0_Hra3!ZL0sq@^X}l4^BK@R*S3vP%|(c9xAi_j;WVjY=&t^fQX@8EaYAyTIsrq!YAYsMLB&5c`N_$_chMvx);c2F_XNXH9eD38~ z7gx%giHPX-5Z2jrgl^->n-;cHZYdGl*k=#vOdAt?UWcWSlN>z}>YQU7_$e*|{wY=U zRT>#os2y4Jq&M{Z+=8m@--t|a!UrV#rQ=+ma(&Me9~&i!wMx8y(nvgriZJ#MaDGTv zDSF)`bLyV$-SB%UKVq#=?&U`P5lcKbG;!&-&Lfj!rIp|dqb-Q5cl4JM%~e>((;AFi zOZr$u9xsniWc++g;$m|cZbUK8t4i;3n+J?k=u#!ml z2atxB0}L*WIv&GJXvtKGmad$wub2|53vh&NMmGKs{`>?(HDV1}ynBR2)N}o|K^D>J zF<4^GF_AGb_=Im%%jswg^)(~oqKx?zDZwqy8XO5dKvqqzDm^3gCC_O1CBba>Ockx*~KCc+f zY4y;Z{Ep*7wkfISeHCQFZPNsQDa+fR|79~DwwlXK)AV6qQA_=$_bW^KjB3-ImLyAFY z(nT%xw$mJ-LLru~YEgl2J3W(vS$cwwERME!HhRiuaXaM34K%uj%{-)DGz+u&R?901 zbP?GW64`-Wwz~G)@zUI;j^zQNTw^mqTc3E=3K=)%YF0nnggMa$ zcv70JtR^=86@sI3B-)pbA#kelN)H7 zKBJv$?X&K>cb{|5v-i)#%!5u6+8*kkg!TCOM|T7=MPcoV!kfRN60atW$r0MB8qW6BwLdr zt`ScCvV$tJ<-+nal`D6A%AvyMv6`Q{OM?l_DxlG zT2G4_+}3u!*c3?p!sy{-u`vXTC<{1)U9;L{MSiCI8_76i89gct?K*Dt6kj3u2c_V^ zj<~8NJN@@1FoMAFfByc?lPmuq8Xoif_Rk8y_rHI`Lj+K4HTcIr$%hQ0f07R`>HL0m zZ6YA>mm>H_8|3Q||M!7FUjH>2vaMbFM&Xcj$41xhA5F?mqq^L$6pPf#2Uhne{oRU; z;6i%&D?xl&^kR>Yd()0;mrQ}yvG)d%0ZCWFOe}j_-on0AX(u_t8WwJG%WsLZ-BK%= zOk4NyO6>S)RO*PsqOC*iOU38_MuhLy#Z7`P9l_PDFj(CFft_3&y7FdJsGRJVmi|@V z?#bg5=N;kwljt6fk<<9xGcFp=4J78%4Bm> zkq!IH-~E(cN8WrFv9YW_H)3|&I7nar%0-D;cMRu+m33c@d@g2{Xx>`NE_yRc!FVRb zimJm$<{?qeD??)o^@?I_*S*~x%QYKxlhpvN(Q8^`b6YR2!fXto=q>aqHg~+bb^6ga zIA?m(&IW=J<)ckid^YZ?ciVy_-JMRjhR`xiT#RO8u$@#lDu|IG)ci`%>RjZG*8%$< zZs&*PKfjtx%zk}FHuT+lZ9|5#w9|q=Kw~wYmm(rIbd6(CmZXw-)65<9L%7eiqMlc* zue30?+i>UBeG<-#ldpO2{9e%-!`Q+f#GD>q`|t>(^tP~k?`!87F@e}!K?c9EZw^#M zN${P5kg`{C zMl+aYm@W-mNf6^tic24WjE-gLzFynQuVLDv3h8QqDe;Cu0<0@WkoL$#(va5~V#vr{OH{{#=+pP!F|z+n%Y0^$JL3lUN@2U#G86zm^(&Kf0k-VW77t@$+Z(+)gss z&~UZOocMK;86U0|-vgU5SX!3-)!bDZFuvKcczwL<444V*AZid zQDOet^JXQy-P83#i6LDh!IN|e2K_VVJkPlJ+^c#{1V(Bs)9*PSK60oI4pFG;bt;f8 z5?x;WR()0!S6xxfQ-@3a>w3y{Oako~`Z+w%PF!ES@<0RI{iOg-oWw$@XRGh^cxskUeT`FN=``)&&p}f+; zC@Xf$nV~)9uj8%Tyg9Gxc${{%_zhGv!xAUkFf^P!E&I^k;hmw1?eWGheVDQ zO%vbdeJ|U;hjDm!PoZsAg^ZVsi3*MbymuT<)=&+K`*QB%o2uf_vS_2RIc3;-T=yZV zeUD4fJ?oWmMD!v5q5tLncu$RK{i}06*Bvd6`EorP?cs;aHkLvmUAc6IWz-MQP~V~1 zo-%orEf)0Llm5?pb_*v834cYk&JE0;ROT1u*f|Fk<~WQ|+i#qO3G`XdJF_jTv7;l^ zh!{(oRC7kz&Bakg4`g$!#hzR~yYMdfYaC`Nz+0S}*Gf3SL9c5iKaw$iR?qKnQ-G{- z%js)MwszQ)$ci9R4#@hCnmEGrreI+Q!S1|N@9b{(aq7!XKa1U!r?ggtBBas4@J4R` zWdC8?tWG{&@~1GgfjsKdj^JU|D|>RN!^s?Urs{mRaFzD`nCzMkPwv;MfT0j8l`D)b zF<-tqyqVEgcso7jvbm3eaq}Bk#0h@2xr{tMuo0oCMsJ6ew-;~44x}~6BeA0u-vVkK zew3I?zGX}H6zr$cpPgLq_lrNH({E>++b{l94~Z$f7uFHGeQ|hfjJrVWN6(DprDA7G zWrMp;ViuxWjl$}5D)(H94LDsfIK3tpoK4*lBQky1pZ%&*LO;??V7sDaysv?x%4g^- zw#UZ8taA6KBQjgF?kGTLzzt_)F#f}nPQc?No>5~}%EoFfO=z;UMZVU-E}uQf`Wk+`MI0kM)Fxgm3_gh@j`auXyzOTGIFMqbkBlNebXZ?86UoUT^jWE zLc2ovBXBNv#oRTYmbyD~NUw>Qd7#VL*^-7Vw?y-u1cQ%acHea=`+NP?8M|AbA!=d)<_c{i5|2$9UuJKmwBC(`~ag$ZrL@8p^vlX$TTca4}7%7;OU~&10 zZ1lG~Pw&{aQ7ra2^dRX?&1K_RX~(9`!rqzaz?3HxYiYpP9B;(~ErV{G%dJ}Yf= zmnxktjIUMX!l##W>-c^_7so}am*JTZ|@zCJ%jp@y4;b`?^Gi}9^({lViE0a zjm0tWvkA@7`HT4NTT=%!YgcvZDC-|MFY1g!Z=_>lE5Pmf{4-rnIPA^wz;?Q18&&;* zszm(mEfw#H(Yh;YFo;6l_`Dv(wX+lv=47)j(xCUTq-jn$2Y{D;YVDTp+4qB^!n%&>%(=#rWK*+XSe*S~X=(oW z+j{gfGj(Y+lfQ_fzV8^YnT2$ckVXTw38$tZGXu{$p~Su?`XWLMnNt&*R5+ZUw(E22 zl}S~#>+YlEKAcQUY5Os@N~UfyTQByUwrANoTbh86f0-jERWR-35ZiatrS;D1hSAHT^r5Y4i2H^K1MA zziHIkD4eAEs+7LkwS=yyYRbo%qozpDDQ{1kUu8VhZWRSuxzpGL8m(AC7E{@j_%1Gz z<|xx_3xZ84v*Q}25@Q&WkVZ^N06TR%QpLK63 z%a1>d7b-oOc%s+8kW~9eu13yw&8#`(qlba%a6aTb2okT)RK8Sql>o=oovJ$IK9de~ z($dCobY@~qra*u;sMdAtI|+s@=7d^ zrrs*R=ItwV$w=rUuvS^eir3 zM`pl_UZ{U*v*O?RWND#m zC84uK!ky$B>zZLU=JW@1-5n81Vg7^Tpw|id)7s=#QeM6Cv0^Jb&`+I(xSypxFTWZa z1k2oXEy^(Gv?3JK#09E*AF{8SSy+D^T=^`&garOc#Fr>x{zt=~b4~r%A#y7ZqAj+l zy@Qns_0Lhrqsv)#0IZt>@Y<$h?hnjAYhU>IHX#HTdOsR7VB}-4|0gO^5l(-cUp?o~ zET<^@V}t9lliggb%{iX6XFPQb?I;2ZgMaE8m(#t8CE7&W zxbi&*DCF9vcifxTbwQBv|4=kRv+EjOuZHsl(c@HZb2AfF7Q8q384q8=4l%sWSobOH zBhTTam@0G>N2O}Xbp+P-rSbu$J-5_%wk|iujyFhXWhZ;CLrE)bs^`r?lwx#TKyUcGb6PEY=>^ zmrxh?<8?mYsEf!^X)CH^5Tj_w5H&PB9NGgG2qHUO7`UFBz2Kvu_e9fPs|r=hIn~?4 z$@Jz@B!3Ggr1MA(mSJdfhPKy%zp^Eo`aBFxo1ngDwH5=nJ)70xhi!|J7MyYMa48na zvt2vH(tXXZt@{-GcI=c7chF~GKwN5ZaVym8_@xAEU&JtSYTIf+$6zu{X0PHgY;PTr zhid4V^wyX>Z%N}9iiB3?OlmMOY;x^6p=Kk3S~nqGJGy-fgE(=gEEhpf7RPMK8EAp; z&2@+S8=``YGhZdv9y zN=kUwIG}cN>g~XYL|#7CHpXXyQz;(Ha1nPbWOT+28yR3?epQ%gD&AT$r8Ob@NUSGk z=8K2AFz?2_LRLX0`n;ZZgNT<7-JEeJAu4F(=#zifDXF6G&b2}&TMNYysJstRcdz6N zB=d%S?Z7UI5O2KBEt4+|bJpT$EN;nh z(~WUcNA*50J=SpK=D?N2ANKcY*;B^njis?(OYSj2C6a?tX{cdX`iqwPbi2tS?kf}+}${Bzj4 ziJeZZNeS^pHr19$DWkwLwV?R3XTZs~!7mgGe|Rtz^Owr14;T)~DrL*Fb(&$9O6zrQ zcU#WgCBor+W$#9v*GEGLiC+vGI+&kS1x4iF+qo|7OI; z6;<1X*OG)X-6{@sJOFbnu>Bxx&sL~bb>gYH<2q_Y2dNu(L=fxy(L zf0w4c2XtlF=8b4!+KGUYr?Tng*Vrtl8?OTcH6jIahs8KI8&fiW#4imYI7dX2%-4TQ z*j-s2Sx6aBC)we)ZJa@XnDbbY{=tcc&VJ7!34c9l>V7nq1auPwK6V#A*cNnBqOdS zrwjz53WY*m@E0;oos?$zbd{IZIb#~W-ceqcjew9*C=#qJh=ZS-*EVjbe)FUQ>E!y8 zJ*e;gh$ZJ(!h-;Pbbkk9{R+cAE=9)~-I*qh0;UkA%AAm$X5ps(cEs|YY(Oy*`Z4LA zow1W8^x2!t+Ybva_S_EHjqN8ZahsTz#*ZF2&sef6d@&)|DcD>wO`(o(1*~GM}Kq zY%;a`Ia@QUC3`Vew!QzRDQVIy$Hrf=z{ZEH;1fUHX9n|~QR5fPT zFb5q++dkeExpj}=elwRqob05Bx2@|!e+pd!jx){kZ1;XsE_?edtAhtWMH2}mH{Tg~ zP)lea>kdKIJ#q}|3Mo=4h}#omx1SE|Y&v1*$}qj$Ag4CZ<$_rWhIH}Y{;QJY9-t5_ z0YL*RKfyS;nK&?5V5ekbR;iD~+8Axbo;04luPO4M0-zZpyK-Ku8C^-55#e_Hz5RRd z*mwC((=WU$WxOh-ung6wrAfh`8iUn*uj+dKJhPK5PSJ4GDnHb&*o-XAUUG&0Xr@*n z9@Y)O*-v7OY~w*3OqW%e*Ye1|Oxd*SeUc8>p{BuAi-B+Xgtn1p3BS$%E{f?i(4gFw zFYb$I(f1kjyjUOp+ZAw)){;kwpoX6s02RUvH07TKAV56WK{s$L5bU%a2Fw~4KjdBt zQGWXIJIgOE10$6wJQ1$qZH$z4N5k;s*99%(aiKGXuXJb~IQN|8t&IS-&$V;g#?~VH zZVYW6exd4oRc`-aZS!6H{1EF@Z9gkU%6YXYZKy(AR8J~&K6r?H5J+!0xkup*5k#!8Uhx5&nZk!T8vU1%@<;=SX(J8nf(@Rm72gD5KZ?a%;}-S zW#v7{Bt8Jy-Nlo4Bj8>%&r|gke2!7MLzSb3&|EcZkCUnX|G*Iez?B zO_yWTS@5v&302)Go-;&*)`Iw=y#D1$YJ~ibI3%#suq>iT;K*(x9))X)UMu4zigrbf zXm7teo>L~;*x6DY-9dHE9$9azj`kgF!zKns-liJ4VSa-?DjPptFhqigV>YNwQ1{Zu z>o~=Azg|%~9{uguZXs8>Yx*iK@!=uOW$Ao`ZKQ{f_uCrm)YkfGb=6_@srj?A0Jw3A zjyr&%9J80Kd3P`Xh?&+y>FIv}5{Gx9bZ2_7HaM(3&eP6LG+fd3!lW_p=&>8w&g|Ww z)?&8sP0e1tQX|_jE>1F`V6IWp(rjXU1j%w7m2-s+Cp3_s9vANtv+2-G)o{uM^jV6m z9{AF@* zoJ3M`yziU-+-kvT(jmWp9%>cIqfko%zkU8XB8lGSfavkx`}!FfR1yE5Zmb_JHr4+2 zLd-XG1;04is1RNf;bSVHLDAZgT&nYqGde%PbQgh9}8CQ z>3iAJ2?#O05xK23UX(b~D^dIOX90VC?S_mNF5b4V>Henl@x}MFJhjshj2Qd=&wzx+ zG0IIyFShi?U63t<`NlEeD(ylf?Ad@}p=;;o-A#w+o$75EozQ)?5o`sQ^!N z8x1;0=c{V`=1Xzn(^lME2}d}f`l{!9wuLC&*X*6HFdmZ3MS^L->*0UGnirurpzz{_ z$*Ro5dXA(a(65Cmn1X=zpFBJt2liPO8zf_oXR=9TiB!&p^r3Mcx3iSHLM3`;Y zkA&;Op}pu>s;eB?Y4sa2lbQx~zVnFBc;g#OvOm3i$gId`c zJ*`W2%`15B(dxa20BywD)d!^&0F!Q^Ua z_#SL`uw`cGz8M1BxcG8#B$54YYCW%0q>@Y><`jv(?LVyFZ?FP?M97Zx9svg&Bu`{> zL~ePD+hCWj%|LT8q)5)gzpht19A3_r7_Nw@*okioJQB1zToR6|^o6E2P#ps=;lp?+ zu9m#CgDUjWP zO0}(KT!F%N1VMy=2b%lNHmYOahiBKdCAR5iInF6qU*reu%n|BPA!Q(aXyCaf?G|kgXpGGug^);59-1# zkwv1;$fYZ=S)tKB(g$QIi;zD%E3~I?sMJ*!X7;@6TK|`Qhv03*-}}x-*DRCtb1Bu;q@#B4~ZS7` zg?s_+-BIe3fBdvSmfo8G^1ywtB2mYm{lzB1)9g@4J~QnEA*ydZutU%(C`AAJJ6_o8 zo;%UjR0{OIO{VC+MOW`q^PP*Q-5d4S38t8zah+7qj=!E>7583>JHPoD1Y5@SkMLKN zp(7Fmdz>o`1mgg5->MdUIq;p}*lt6kYbpzJw^KN3u5a=*@jCvAGW$aj(2kd}j;?nJ z#Qp*V;mp}GOow@*Onb!@8WR2s=M@8oeXmv?7(qe18MWj;2*enSlL@+*vxVxU5fSq) zw2KpuzJmnY`}@ABgf#Bq-eN;JlT)#mghnY3*)Wp z`$a9|lwRpwlr#i;_A3p%|EN9qOuT`(9{=Uuq&4?U&ftqa*Dl~b%_RSeYv<^$FY_E%E`qMnGUPaZ` z2>5cZvUuPxCkQ^V0<{zwO<$i)!Eu9)*dSUugY_@Co)Z`fS?h)BUm4}9sT06)ZlGC6 zm1gT5r^d&n4%z7Fvc-Im=$$DKY=vcD?xv1qdr^>sh#K6jGR<|Ih}sg^d$w&G_go9YK+t z_*uYr;Y-`6wjsKpyL+f?A9z!fLC7LiPkgDE@4^EGFiYA`=?=a~MC{AF@0r09l`xoFnGFlqX{opq;w2@=%x^Mq%z}=KeA+Ke(P%`zA@~kZVkglEt6NB~Cm$-?r`I?tO6qP+_QRuwImlvNGVmI?c%`BJbqmc7? zaqyk(`8=&M+N&7QL{=@YKUfCm<3lg&#;#p=u$aTb!wViH_C_S&K7pS#dWK^@CGm08 z*}3nVFR?o5nD2zc?8}|dPC-GTYP*R-?|KbdhlRxzYTqXYvm@C}P4n2FH+<#OB!xlC zjGt4H{1;F51l=LxdTXLorY>wo=-my0WF1^>U9Xn>ad>0&XHn*-OZ;|HbvIUWVBKcu9jzy^F(el8tBHd7>>u<-iE^|`y76Ta`?{Y23CV{e?IbN7EeY=Ptz zSV|Avz?YsDS?97nUX?wr8$`JKFgh#U^q584`S9oLSy<^?gqUl;I?>r>kO8%*hZkCZ z@FU_1rBG#(m?QfRAzmEUe~F`~YiQmgM@vUbKK&>q_>}N*u4`F3Rr@&xgG7+?cz3)7 zZz_G`2GPyC-t4qAGy{@tL*G9h;sGLc$V?f7TP>)t+9^7=P95x(sh^flu}- zEl^Y{;={R&!i1jj@qRJQm#*kD$2{&|GwuWbM3HH+F5V;Xy9^JHy>SAJpHkBm>8P|9 z`E|~_vp$obuh4$^{8>f`Z+4{dX2&l*UF^1sxcnaIM;EApNE1e1zdlDC-PZO@2wyEG z_^aaV=piK~Y(D09@yMSy2>q!=zNX+e?xyna-_wQ(UYPth)t~|YL_i?Qk=4<0b|6%6 zNl8R@cIjRG5;6d~@+H7v!O!UFMZHO0`Qn#_$>px$0(|Kpu z@E@cilUcCPlJX_=5Gq_ppxHi|^?8(mFKOcS;nhxB~pOL@H zUOH**r-I~NiSs<)-c6OwX zjyJb!Z;zPwBRu(K(!O_fn z76KMM_;+!)#}_{{fl@jV0}(g~k=WlLcuLM|t!%fI%L`60;=@LF@zm`|s0cE{2dO}= zq469SU{)<8R>cQ1&~B|i2dgz3&~roUD}%;^_}`VA*gL0#2GEgD1bH}V>@QpBLvDs- zOWz~^IWLX11!m?!yJ$R{0W4G>NRt5izzo>?&k>De+^-7MeRwzP*>vGWs*33%qL*lB zhmUZfd(pkZhoBqyeiQC7aKtlN*riS-^$>B~sa_Drj2HU2D^ky+Kvf5B%|QEFI=t3- ztN-$95Zp$8rq20rgL^Gh1~@7#=Ioldn}B=wooW0mLMYX*Z`G4mP|$mO5Yjd0ePb-7 z9!+sSS~W*DF)=Y;b@OzzyrQSdvd_c$NLFH%4a^XD#O!5gV)9kCtQ@cp`T3f(2M4CH z!CJbyA;D#3`=9K^S>n2fj2rnY8EL?V5@`R0-}otdcJ|$c)=pa08s(SHM$s+TB%d*? zdV6^_Fy|=KpuuDEl%ONCd|U?s!Os{N3e^Yz-x#>@Mo+`Do+tgDdg3ARIs!*kd!O?Mn*=fc5`69LqXA)MNMr)g)T6->*AW+ zXo#WVf=$!5&Q}>4;Cg9jGGD&@4%|Z+Nw50z*z683YVw{wfAHK>6MU`c)B5KRL!-e} z{iO-fy(6@NQ<~ zZ=ba>TBb+cwA-nada}i>j9454E|ZikaV*0pE#2p83mxqjyW_q@Fmm8DUD$PD%g$FO zd+*tLQN4->ElEoW9Di4fvz1xN?TK{rrXviYA zxX%5<_pBVv5`EBh9v19{Yc0hPQe4hQHHFH6-pTL1fULb_@u2Fn9=Kg1*_N%P0z1l* zycN>5#c#($-1LOA#tucb)~~ldH-g)lsm#*+-#O6lZEc@UK-afsMmqD~zj-)qRho`$ zo*#R;0Y8IxbQh!sW~2Q`jD*Rk=4*$k=|W;yaWNQ&@QfCNrq*DLe9ZUF0GiIIl(sSD z*p3}L62?_rAYtnVd*(= zuml~E&_{PC>-sB9YDY^9G&D5iNcz~(l1T|1*(bZgk3paF^=0MKlBk&MR^XrO(R)!I z$Fg8t1LfrWJO{%n7T^yfEfFvJo;fc9RX?=_ ze$r3r4FCkd;a*Wyuq~X=uMPeb5YXAyz@NXlQeIV6F#s7vdSA|N^x`YG{b&X~ug7zO zIWc~7|0j-opZbOTF$y#oC(}80*_|bS?52cIIIiQX#+QE;iVvzeIUNCCai`kjJ0aC| zaW@%!2=bFS<0~G&fS-3=|4mio9X#N{9{Lgy5r-?zs#sxKt^+J)l0wDi-=a7?sHWKa z|Bm8lrPb@L67IDI-nk$B>6663mz8yCu*Sz?{~pD`QdQUf#x9Qb_LpY8nnzE;=Nx|j z`*TchPIkm&7j;Y6`{@D+OF%P@?(V|3k|^NL-phK zLoZVeh~#s&{cRfH`L})c{42TL98&C7*M?v%}%=DOihx2wn$4mAx5AI4`u`fF0FL z3J`H}a}Ox<#r@|l^v7-R{R9s8@dKNF8msk%a&dAF$@24pEW_j^nyfoFrzWq{?-Jqv z*I(xS$@BB`sO2(mcnMV4-3ym-#T$6IUmj;!0@-6z2#3etoV-nNOiGpR8aU|tTXct=iq7K)*fWw{^1v{+|26g}k^{1l5 zFFEe4ml4wrXZTRUoFLuN#*AFC3VkElT0rRauKu|LiB?8Ni|aq1(q?83NIrYETpKJP zB=D?>1|J5!@Dil+8_U+sV@uJPC|zrn)A#v}&?{xwES(l5%Ln4MC4 zbgTV@vfh991}W3qe2bXCH*elx&k02VPa;(jf(MZQKjTOw3lKPg3G6?QBUc#r9uP<@ z??o?x_01y8eXA_vZV+y3!gN-Uo+t44V=64HImUcSQAT)Dp~2Ixqu713EvH8VdwN)N zdU^^rx`VL|cd*sgE~hbwp99qu;?QvixQIKSEgz_1rTQeFv9gK)a2%QM!mg_;jCp$v ziCh~<>&JhFz)Rj^pqVRo2Si@LIvzC75fE)`@c(>Y4jH?vw${HBbeHTY?aiAZ|7w6Y zHY)DpuC%J-8to4?6bnxN=G#JKjEo+n{WAX_@%rTv8W}kU$0_|J)(Na}D^P|Jv1^|IPKMUykbq4>+*in4|mP+VbjZ>=&?v&)#_dO>ieNDQV;9 zN9=XN?F4^W(Es4i6FkcO_2b{c_6gvzpKnE6<&UF0UD=B+RYog{&ylaLAu-20D-eY2 z?(7Liwtkw3yT@wr86lOJs`>k&1`D(;DLyNeqk(IgX1rLy( zXVl_8vW~AE9V;C32*HdjjRJi}hE)W+Cu};~Qs23WTDZ>aF6vrXe4%X&I3-|Om(6^M zGl-0g=bC))UwmjU6o*?Q)4g0rR{+H#?zy|TEN+%6RAwO24LS0`o=5EB8KBQAzwm-T zx9M~-o^9=_xv5q;R|pxg>Zp7}Tkbe92Lh`{>~9C*7E2&n6>{D3Ug}^Y0)dA2Xji6E zx`E?x`Gsm&?r-_bDPj7;09>5PrKP%8Gdy6hf17YY~r*BuSBdLVRVf;>xY~1_d znvWU;MH&irU|`T)a(H2u=EiQ-^!iY%)%e~V!h9ZhS9KA_X#qzf`S=FRetso`$yRg69OV(O~$+aZf4n$aBFRSS4Vj zQL~LNGnKuj3fB5k;E)iuWd1asg#F=p_xjir4%09!7{m0Fi~T@eBuDd{jH^i zZrXMI@^qgVQvHBlztopkJ04(HY4%|b#5h^$IKww_1G95vr16X*3ud+Ko!+p z`35*;Fhs-Se0l1NY0>a6DS4rHx_0%16;i~^fn`kIxT1T>s?t*NIxl^#-++SG;XQ~{ zxA<+(&Qqu>`KZw|Q8qgKP+{NwuRlg4O)gU{K!04%V=A}hb$iHlZf^Y9LWFxjdh+a5 zRlk66N z1VD=@iR;XDJ~v`>+%8v#OfLZukHe8$oQ3l0BYa>Ej6h30s}4$ zBF;-}({voom9QXrpjoO7%|vKaRd`g#b_a?lB(P!5x`vF$_#Y%EC(kvwXmGC$y{-ow zpffNNtK05<2VlM(A@yWt5_k5_fHLDhUSX%{gpFOV_@m_CMigv=gA1R+W)P@FxYc)K zCavkikFoYzqjm?KE3soNq>tFuzgbkc@bQg<6i0*mR`sTSwfVrSCQ8f*nEuj}fT4}} z!lLm!0lXi(UL#P1Qs5o>2;yI5P9lue<{A`_$*cajeOuh=RBI?JK)33Byoldep(*#- z+5?@!GY#jhQ9fQ?o6-D6OU3wIPj8IkJ4-e^?@A=-bAb{UB5~r#h+CUIyWN+ziKs`5GU|dg)L-&nY@#|D=#BvzSElHn9NJ~%HjUJpGz93>UDA|Tu#RHa1{je}a z=f{R^PL9r4cTYmU=i#bN%8A}zfBgjsLDsvR@6JRAMNyyu9Vd~RO5uu{Gy##K(K0_^ z_X^-Pt26Hp+UCJQLFU_A^{teFY=x+Gm*30RQkR!ogn-AR5ODjt>j{&6V}E^ogZKso z#lg`L`G=#)n?x$lAI30TPS3*2g4K&vw^n+d6EUf+R^0Vvj|vO3n#jaNki*rdR)ts#C z?AI%@kJMxQU%iHQws!!69PV7Sx_fO_HjZ^D&lPxNp#W)#Q#AF-f$8WBe29dE1X8GO zJzet>z$Y*|lT6SkI47qakVx!r8&ZEsXk|YpZP>OG`bFh;sYaFX6!rsh^1Qk6?&(5@oLgYr;RgqYi^Z^k zpu3bm*AqKOM@MI8y^ewL`!;&GW_a`F%{l!s9X_-8FFj?Wi zTQ>=?vn!&1Nsu8*&WGrx=l$5ByGg&0s!A>nUitaP2zJdOU2Ht?m7<o*4sr;_4wA4hgTlSbIRvIhvv{i3%5IuIuO8w6 z5)m8IIj=WV>0@PAvOARktx{?7Ll(wJP**2_-kchnsZVxn^a4W+pLlFf{s;(5unGBkd(odQDO{I2exEP!cp>y*u^!!AJeaHb&O zluKY1{O~6=H#fI)7MR4FIMga>GLmb<1A@=f39=CY?7-*1>8Q3qHh_J*abi1Dk9xNp zM%sUNFjk~13@8F{pbTo<1Qoz%FP-smH^Joy80T1rK0=LV>MeB~>+;xHnwmbMr1V}> z{P|Vf3{08i<>ZWJ0E{0_2u~9b;G99WSgX!!YWHdu}-ft1*QOKRr+N#S_TVS=d`hmCo{7QnB7 z&Pfus8)}!+beb9;YjTe`oqnQ*X~x3S$>v8VY2W)Z_*EHtEMP$HCzh zo@9@lPqqUD9Z8Xm#9bjELyBVs68BU3^mjD(EJq+1WZ&@MC7q&DICB81tE)}Vz<^B< z?$0lk?FhR_OGtQlkQ5n|DuO$FAj3r|;`R*2q1({`lDA|68KnUM?w0N# zZI#SxJPgWKuFSYfN=RuGE0?IWdQ@3@RG}vEvpco*b4Ksox=Q8@e$|&I3dvNqp08cI z#QtmvxXo)boADAWU&Yrnqbq2@i6IRN0c|n7EnG6e6a~YB4Z@39V9Yc=U)azT|6q8ZuFkG zs2yQcIBn0QlzK}jQwfTi)+%kc3{TZ!xLPn*7Bt>=0;J#~96()KMp zOY$(6X}7;--bcj8WT4N=oN)K{V*unM@7*ipvazw@am>|=p>D*TgK=^oj*x{R)lH|T zR?f@4x4>fFHhx&_ZYQ?VspOn5BXN&HqxSZ261o|uTHRRxS&xJ8VF$yy0Q2`a|&wkE@Fqytz6 z=iPBkM}%%Nc_fu+1E4kl9hN5Ms2F#!HDEkbZQ;H(p5}f#UQ1WI%6dZ>@ZTgPt5)N- z%62ONYgaN6gCsPbkw?v8e>>Al;j@UnFmGb#1%u|30sBotx=Sf5FNCoI%D$jQl$cV@V`4%*8f6@__v@K`Im?rs-|V$Z3? z?S*1m?Evo$V%h0(=T5K*;6U&Mq4=eKtwTF--?npgdc5xe z3G9Pe@ddjvnuy}AY<78qAR{61**^UNQV^RHhf|e;e>xWBDm)480(lLfMpfUhVybM% z@bDdTLd~pMA`b}FAFhJgdPzfOsiNi!05(-UC{izZPRpU+5FQpLmmQLPT8*H-cp7mh z;8v})BtpphoZ6rH?<{(59SOv&Ft+1mCOUs)#X39e$=sNv398XwXTuXsnXj7%lFOS# z8l_8IzY{e3e*S+J?_^!Oaxw9*j7FY^O)^PeiemC!Pis)r7O!=BV&eMp`ZudJ23_(L zBD$t2l5cVd8}4~2VE#@v$F>3$bR;DtR{L#yH%~A5?dCNKG^7uu(t)V?EoL)}6ZFA& zAxWZzZ> z0B;Y7s>1G4jjDr#oI?Qq=0PR|LIrr9e`PyXntT*VoeU6`(b@j~??pJ|6Ous*QBIOw zcI{#O_FM%=`?%WJA@Fp`L;QfR-NL;!v#^-T(S@qz4Op(K`_{2z@OB}&M{TsiIuu$| zQvpXshR zNvqtGe4u&=W+WV03K1hO4mzq6c6<>w9#_^oO%PcU{7fV|;q^G@KnECU3A{Y zvgj2ji{}Jqi5K*fvFWAryDTgGK$UshTnpu174A3I=agx-kxB6xP|MfK@v<13s5^)F z+9FkDFiVL9HO$Vk@GV;4AGt(N0Z^M1e8;yXo%J``4e=393f6fb2$uM)*nr&}D#?k9 zTLM}e=4s;2-3P*M4#4sOZ-OjPYwBW)7Et_h)(I91UYm)iZ(FqTH+XIEGK!h*?YL5B z&5-;KIWA}HpgEA8cN!>ZX;soYdxhQ71ph^CaxqC}kyo9JItdy&vQXbOsl2VVwLeH& z_?n>xX4P7{Tl;fyz?2{Oyq;;D{V-YjA%`-CdUS5Vcn z=#7iR>JWMoDQ?Q-&I z>}F_aNGK0xO%4gW6GH>v;7t=Z%Ru4tcpdgC*(jEJ)~7@Hs6$Ro zI+xv}Se$WRW*_zs`68QtvWOjaMRv3XCMIn7X2%a?*tZOIbamkTqPwch$4vpzus*9E zk9Bq;5r1Mu3v8y?nR zz#+4;{v8}cwJa2fKCP@42=JXt&2Biw#;%uIIV~`F*E*ZvuXKix#OwTpngMz%9|upQ^_xYS=NEjG}>0`(p=Z}9@2y!)B5ov+V@^iCKHS1UJ| zsGhH;x#=kS0(#{;Z!R6VZ9Pv@E_ymy%p%n4!DWJIC#wfB&ECNnjpO*;ASSBe!;nh7 zjYIAdi~dEsztS}-;9?002|<{e*O8u1PkZIY;lEDS2pOMXQOEGRjIPO#*F&Q1?Cb=c zmlubV@+#B^;5hc!n3(5O`;}jSnq0O6j(ro-`SOZRNUqMNG4Jp2{2;+6~m1N~uEYNNh@$gl&yQ;e*E?VuV zG8!|`FkiM|MlYkRtQPbMYVC!h$RPPPVlq`!J{|4;X3e5{qN6((5CoP(wrbfL6Fr}A z3(+Pkr5pgWe*A{D+8g07#uly{lVrlpsXRJ5>b18vxiV(fxg|Pey@8z{%9Cwox%f2b z-^Eeq?W)yVy+0L(+{bJQK32)qHku*i<5NG^ECh&S>|(G&Fm3XQAh2P31$fqr;wr^{ z;|PCZfP+ZqK95#{kgHay83-B(>AO`jpFG;156tM)J}uyEHdd*048!K;jw~xK9S4spcef8(UapM=}Tr^)}HZ=H#@8 zXLNJ-!QShMcj8;RyLT7r*eN2DY&dT&=HG|}^`I&fD+>$v zP^-fF1P4qb8t*;&1+V8VCEuZXUPig!+CP4&*&BC**J^+Htt}-_c7;b%YYXWFBO`un+8GENrF{zDC>*nn4q zX)33Ia@q4Qr3^GltO4p2_ADG@?&fx_PwOiRWM3rbFV-^r$8!tNBNHvOftK`4*ZhSA z`Sk0bH@3Daop>WZsp=*)tCL7&!rK+2Gn87S-IAc9i$#dWX%XZB?yUvwRf6{jI z$P%~N|A9Zbc|+4d*U2G%3RQJ z)D8P%pw|bsx+?3#u3fAll*$WJVFmC6gS4vugLXtu@Zp{=1qlfS8MRWW)U)lsct`<( zLV&E2UN%`>Kj=E%-QY0K=7?P^;3>eMv%^*$`5!wu;^9N{Ck?@B)l9Q3MOSs+z$~++ z#m}L^u8QRO zEdz00(aG_nEjl6FI|qANr`{f_K;@jMdMG`f*lMIcPkMCvz#=kTR{lQ}cfB@WKEFON zXFJd$upj z7eBSAlq6*Oy9-DJ337+Tb?;X0* zG*E+=5cQ@rmd>bj`Xn-cyxucfIqPWgt?hs%m!`)1oP>i4-D!$H1gKB72K{H9pK?bE zvN9NX@BlyRH)pgfR$lCLW&>EyV|hg7l!xrg30CX`l^)#AnV+TkRgkzo{Psb}$>gLl z&GV?*R;$6jeUOTTBvjvH-SrX{1NZ{fW+zV76(F8-m-a270rr+VsFPnJoA1`Y5(;Q( zrdpXjtoENC>6_=R6dSkiB)vZLKHOFZK~VPmm2BN=N2lJIMW`>X6gr{uQSM@5U)mxV zbxYo;zkrfQ37w`pz~gOmo%eY#OpvIY;0`2jh6xIRM}g% zm1=^b^T=Vl*ZMa>YGE(TY67}KIt7`7TOKIMG3yBKNu&Sr_EKqK;Q|&Ly>rO`w%XxJ zuO_ISK>}#+-~jlyRML~co5DK)fMSH;RK=3g(wn@FpVB+W@^$L++v{t+X%2r(rU2vt zQm$fKTvBRkDhLJAm4X7DRh;`qjqBRMBB2LRbsV4N)YOy*reD+Dy+)1I6DqZyEJH!3 zgi~iWyoKHN0?65$LlTo^G|N4Z(7SYc+*m=mJl#z=hN0a*C~Hp?AlS_KT>3q6jv!b6=C*=SzD9|Ku*o@O) ztY98!fwFP|-HlgP#+1wpI$0HLuWpc9s`h0;B4m*a&099f%;48Y@V<8>z4=^r`a#WX zjV=;|6%$X-^O{44ao>K+#de~07G?zjV0k5>bO(3#VMcj^z=9c$m zqjLK{@Hx0hqVJGQDDxXLq9 zO7{^-h_?Q%rZ<0h80)<_RH43Y5xF$9=?9C)P{Q%%9P6OgSufy-K?Y(qRBkM_u!--p zE7?;dLXLrgrf%{lTEiaiSUXnRy}Ri2_ie8NM^H4C`$g*hf{yt#*+>?=l!H;l)D~T( z4S+LK(jr&1^+_>B?^=rhS}cV-z|#nG)2q9 zH&&f%=9VLkE>nAnz<7_Bx$AFNj{?glOWw`8>AENlbwYf@dxAl4c|e=g+4KvY#)1JL z=**t5>MxuC$ZVcfgVU~;TkE=q`dxU(PtnppL}jrAYF(8+-@QNG|9NeD6`UTUumoE5 zRlCA-Otg$DcR_z{A!q-vIh&(i;hZ2;MNGqA|9st^tqAu>o|5l!Xk-qqBdqseXH}{2 z>8rWU*xx}I?B4Y_mi(U|L*Ujz!39w6Nb}dPsVZ-sgKiA5Yo!)OMj~Nxj2CsK=*5QtuzpIk)Z9$ssNf3+-b5j|xz7yR|p zb9;x7+65%!=z-n#9=6c{!EinqLZM zh`;;?)1qGS&{cJ*8Q}gA=uDOC>Vmb{9X+5B&oj z)SN)F1d_)FQ|yW2$=h(y_-983T&O00V88Vh8e1zXYs$d_uAMO@pj|g;?t?Z-3DMCZ z2SP>$&6}Uv4mef9-@hLQ$myE*E51y1hTFG$S{7)yeius=ttc;+k&|nyXOfTMW#;8o z7$BOhzt>mp6cE)Jx3f*-1`mp&ZJ@E2=>Xk5(hE0kSh5#bfP&l%RjiqjUnlnXF|H{I zFxM|=@8i!M9a}T4T<3_XNnnp790VOH5HA3moH#FcXWzLec}Py281nq*Wxb5LN%m>9 z$U(7>{t^&*)pmX5iZzDy)Lh9=9_`v)O~=CzksHksF*gQT3#L_ai~|&nb_?|C^pZTP z0QlFheUTMoV`QY-oG}OeIg=VoLCi!}fWEW3c~e_i_97G0@xj)S#n&GkDQ`T(e#`B^ z=BfdE+;KFUQKVmPd%V3c3H{SS#ZHcwa3W*4w>Pk<(W{3oO)kZdBysW?; z3b~vZ5Yg0m{&fehn4R?g`T~5$Uy}Yo*l7VclN&Y|x&Lum z)r`t0vdzN>r_&&f@V~}r1oRa0(!a4m6jb)0&30M-?hK|mb+&{DP6oKfeJ)XEUC#Xs za!2<2_%BO6=5qLLpZn~4c&z3XR=}X?4FW(8Odht}ZZ6>#yep-oP-=4_5 zhUXH9Bp5bKpKYNDpl;xoToir&0(t`M1WI0BeqgbyYaa}97Tx)sKwi~5?{6jO#x)!| z8`XQb4p5ZaXgR_G%r1+cg}&IBH3V z8|tDSC%?a1K|@7#Q{y`rx`9b0{d9qlP`}C|FD^$G1na$B`+yR8@10mm%fwbZZB3US z8z&@t4?;g8{c`C9hvkYCU7Zi=xmq=*STE?jGUO@H;}z>4G*xo*@}lxIJoj4GyG5CK zTy|91gU~ZS36*kIZ(bW!+@4>b!yKD{`%W!TDsg=IY{+ax)N&SPhen;;wDap7$&f?h z>%6v~uMD(9can9&VbgeRz&i$A*59@aiq77@^q1{twJKliL(h4GH?v~0n-qAfn2~1a zhw16)crvjmk$MdYA->CsJA^v2a6`i`c<-$}LQK>J0I@mbX1TR6$z%BfJ5hq&igAD& z3a+31ouvY>7nMEl*#J6vAbYXQW~G=jF?z5=1=gcagH8am!Md{7p}EPfTipv1QETnN zD8|hgHS^c!c5ZN4?15f}j77)!(D|u_L_W{wt#1M3hv<|7VZA!8!Hywocd?oS?u1-L809=3w2&A0%JSDqP34gOas+cR4yD;w~-P>lhib8eikG zz!pWM zN(Ur=oh|ORQvxaT5D}i*>aUZD090@34 zJz*1U@YvTX%Z{|R%0<_@=E$htyS9xPtOsvsieyONgwP6;v9!-mLMdk`U-3k3fGLvl zu-x@%&yQLx-#U&gzGl1Laj{_kQMTT7p-laPiPK0%0FC-Gf)!kLzMItL;gn)2@yaJcy@g?w? zWPjZ!jLO$5^9|sDoBpzt(LpCDC0UPEtGKbXC&_Z2C~KB+b4{SCZG(I|g1 zR!Aa9jnv$%@^as$zD#oG&a8i=Wxwcy-MVoNj6TR`f#REHP;kG- ztW~~j8iVen@jAiVIt`lqVG@!CMz*dln|wC-2NVbpNigez4*bAj zIRPTs@c9pTE`)$qOw0yA0u0SQZLzuROJ5JA@(%RrTuD=A=A1Kx(ReDP*m!A2yJEEx zfGqv|TodzO#KQ~@`+GkNYr6}t>v@1VBUv~W?-QrS_2~>p7DR}yY^P6vdTq8k1@2H$^l0x8AS_T~ z8k?*Rpc_89U=Q84)(*CptS${_$(TPW2=-kbak%yK?u}LC^?6WGQR&`l&^|fJC#JFJ zHtoSoUA)AfH&&AXOa}?nu1@~{kPHvLbzU05d+=$ed`za2?lg1jzj-4v#Du>`Wmgb0 zquX(!M_Y%H%tLT*I%s$>Edgq+SxP=${XG4p=I!OYd2xsR`APl@)}zI!<_wc*iR}UA z@u6SjPHQhR`}y-XUFS86GtR!)OBF55QIGUyTgk9r9%jUk`AhEE76LWsk7~~ZNQT@T z1m7nfYI&dW?<|GxQqKmMv?#JpTpoKg>idy+GkE!ikdxe*MPHS`b0bEm(Fm+naZyoM z7z(=XJ*Zs)2?y_GmR_DrGm&+UT2|?c&$(Ww-+-hC5q)KAxU4@AkWa!ng@Pw10V`vJ zsPnZoz$Jood+9p8l$ey%0$j4i3-yY^`|9%kS^C`|>q31z{2Y@T=0!@qKEQ`HFhG2T z@Rx${@Cug!=m@zp^($m|C$t`&8whbYelreaVJthc1UwFDg9L=<&ku~QL2;-R^5JUe zIby`?Mp*(F0cpe|Rq8ZdE$3w@3D5iaVUy9QI`Y&DewZPaEKixUibPl|Yilst>D33y z@Rh{H<@o-N_I`iFiZt-z;~Qv)y0O;nxLOZ2iuSZk)?$%!!hICji%fEO3|sqe)FO+- zR_dlCJs(ojldDtk@dE_CPd|t))fvo=Qlo0NFg?bA*~BjW2IAuH~sqvG@HIcy#d+rX^=xZinnKm5|%JbDeRe zF7iB|9M3=Ylk$K4gxn2lWkGj0I>|(OMTK)_GNl>hH;ao(EUpm19k)a|?4KQO+3pw_8baZ4m2gyd~i@eyA3i;>o5m^nKW{bSA@+$twOBp|W z-%rwD{EngG&K=nV&-KCfV$2Z=GJ8NK?t+5&1e*<*>na z;^0y!A;dvL13}-uo2{1yns8WQdt?$To)-CDW7Qf4mHTwXJ~%qc&n_=dv^O}TzTtHY z&Rx3=MJZhR%P`2$-(iLd?$Cl-lO#00X4gbIvN*L77DZAL;t&IK)AsN0WU1{3l4F}^ zHo6&Q-J+vr1#@baMXrPk+HI7&-J;6?Z>o)+`%w!uFyk9Il~)(Y+1?A8COtkgo9N)f zYkTQ3o}LZxtx!iYGczOGn)w-Ke7`WDlCD!zGt%bcYTK0&8*@%m1{Yy4Zdtc|(B6h8 z&23}Gd|p9cKtRB(4vAMu_vkQZe{_Gva5t6rev_|*2L`>UfEmIj@w zV$tKZ72jvCOM8)ux<}yPv)J%;W8Dd4TTOU#tvy#GX&ekfkd%<6C*n?auri#8NcE^< z=fwGCkA3v87`V^Dk)@BGUxloKk6X4cWol$JHJ;r`Q$|dr^0hNsz8#0XPCOMv-+4dU z6XN68^&d>m%)FOxjtGVU>EI6V`r^JadI^GAVDl&4-I6-Vhb2*+d|tcaG?K5ETEIgN zp@mn4o90Ay&Lp$FXC8#e<{##+5DO`D<9s85!0}Ov*dCp2yHCVK+4qAbRCA} z;i&y{0%j2ruhGCNki9{f+v6tdq^$z+5*V6Ko`)wqO3bpWNX;q>JpJH}n}{Xkb-@hh zKTrBoy#Q6|$#6e>)^@yd8$8w3P8MahLo!^b0(CwT{^x7H7U{1oSgEDWC08K7T1FAp@>4rYbBCrWuCP`gG}6ULzw*pgI?^`j3G+Z0$1z*$M|Quikyz zYPE~)eJR6V*F^(bXjDuxm7`d+_kqit1(i80 z0hus)t4cDK$Gq<`GBTFYtvE#+#DJ8ToJD7FtY9pCo0-oRmH*`4XsHDoZF^K+TbP%s zu$=Xb@8{&rOHa(zrLh-WV5zgR`T+Kg3u8Lvpyt}ob!^3d&l5w5(HkZ!?*v^j9pC{! z+;c*gdd)`V3DVNiHtbE|7sNy%SAn@WobkY9%5E2ijjJ!HdqJJiw7(hsQ}>sR%)3cN zCH(xm`XmXia@!WP7h>mjanOQ6^T=yGa>CJlo_}ghdI+|@bh$VlkA+X7>g*`8!s(vr z3=kH2#&K(v9dzpn*Z6-c{Rv5a4=XvX;pgWEvm=4uGfeH^zXS2bEOG=*@j^tK@mdgm zN58p*(bUrV>#x5c4$Qu*R=kzwN=71J3*+@yhau!D8_Bf4jfr~yeh(NK^S*f&t>P(E zjSI%=zu@$9r!}%7`C*L%a2n4^r>Ptgudjn=00;3)f-WnaVev@RS!DV0JcOmduZQe% zN^?^6eZbTDky^_ZErG6dwOqz|X;yftJbo+?aA>suF7Cb^28N>AdGUL)>(w;n{e|^# z;8)l+if1XbQ}VZk{5R8ZV@;22vV?^uq4x$Jbgix*vBX)PPaa=a*LL=uYC*i@3EO zyrBU*UNr&JThC@>`jv)y7|2sfV+4z@Q;{mJtr9{HNSyZ zz!Ti!!5e9R+!-b-ERkQD0|UT=LYFac^xx61eclya0Obg%g+x4N_Mj~?r^SD{EWD&( z50XLt=bCxs_H!iuuS=2Ob>@=bs(%aXIIC{Ge>(ox?{4Sf-4FQJ{{d$nntZrpvACL` zzc~x4M(Mkuh$|{`_~C;DzW*AvQYRSAqffTYB1`LcH|)K^&q4e2l=Rwl|@`ltT^KIDJHsg!{Z2v&$;%#|&Nthxal8}vpF z8SKpJ`R|5Wl@KJ<)Q}I<#A7+6U*#qoP8Wdh<%{mP2L(nz=F$PLZM2q8`%eRNXR~>7 zv9Tz6ZGPh#`e3`lPc|w~xq;<>=q!-3gvxfLTs{EgBiESKps)u&$rot*q6##w($L`S zb~68mmV@`RG&7hfA%ndi0wO$6sw*#ZLjEB50ySY@0r~Yrt*bj^BUWva>DD^VqO;eU zZHpY^q?$t%`2J@hBqMGADTG7;jlZ*N=uoax8jx<-smB@y=S&B0&7MOdGVsB&(ZNc`hx$&sR#fs_QgJH16fCVjI9A2Ag?NhTBZ1A8+ zlL4iE>x^H6h{s-~f+speXEFqBu*e%4Op|9=Zur(k5JCrjsc_*NpvzrXpj3hs$}6Fe zBgbp2bG+B8f}UG}X)rsEN399?m5MGP#b*vC>nKobD%z*pI|q!1-<@!9VBHTceaFKy zK-0QyVQ}Dv0Wyn>Sq*^=S=+j&Hr{7A-&F?!bT<&|LdfEq!s+~cHrkDao@wrl{`D+l z(`ZXD2V)i@eLJ)Z5eO#Ly~Y-hD1KJWl^Ppl1y5Qk7#XDGIu2p<1Ef#_WyS9Lv3!;W zwzd_xPtTlE#SowYb^h^#1QZ#d7b?NL9!G6<$J7))3s;M!NzH>57g6z z7TTb7{kH+(g}#Tx&mV%JvUw}Y%de0a8cv^|_ELkek!BCYEqsJ5!O3fpG6FTo{`x7c z9nGdlQ36s>zwAH}R*@zW0@t?Uc zkgX}1|IgKDkmJA0+-Z%bhNLtCf+O=BhmrO4y?0DHwh4~%uWkZa?I(D@(AYc>ROCVi29PoW~21V%G02N!Cw>DnA}EDi0FebOc=>;D*Mi&$^N2?V?d`?{PzBl>ZrdGxlfJZwLIU(+pmZM3`34k2R z4rq_8hbx`F1y;G<+$go097}iF1g4?X45j3xsAiv@o}MCckt7rVJRDv#NR^G(%0dE^4H$pY{AU#t`FCws%3h06J2-HGO^FTV zo+x}cM7zqYmakiHWCLA4kiNTp?9<`4X;1EX9lKhAezD@ra<9&6+u%0|1e4mmp-em2 zJoIy}4CU%J*d4do>qjgOl(a+5TjJybpbX;fzG}hWu}U~~O4sIKVbG>QHw7M7t~_nb z$@T?Y0O|Mj6fV^-5YoFHF8qI!()*0)7JeRo`tD(2`7~=vMJ*~S%lL_SB~+u3hmzRS z2wGAw&5(pbu=7NXgXVUkMbkZWI&MyR6#xR!6QO*FJ%UAvN#nlpffb4QaG{>Rw&%YI zk-7VVf`Y_nLKwO5D~q3>tEl0e5Q+I9_gM5@b@@^-QT#{56HeyNITW#8oyjq%7I>{E zc7On`JFccs@WC}*SlH`17%2RoCO{2z;{!JF&!vaOZ@GXM1xP{TuG0Pl0wLibp@kyq zUE;xlc|&t^S0K#A1EMWYpyR1|b7_elXLr(r5Uu@3qcwoH9M1%|sNgL7GcDi)_XIc}Gg*>cY%Vm(bCJJPV`L z(uxWd;WLVTiA%hGQWb1emogf024@_P%!Dn>jEuOSjVoU8vG0Fhg!fQ_(-Kfruj99n zM0={~C%V3lt6Z}957q9k3`Z?(;TLOCh`{j9=Soc1 zXv4mpUM!aRFOgS=a6PuR-m6=aPL|Q;X_ECX7-=E>g$G{m{+?yqnMs(r&k(GmSLIe` z*j!G#aZKE>D*AlSTl9p97SfX^w|?%BIB?z(Sa!y4gC!aStlf#CK7NmZE{zu`h2=q~ z$iiAe*4f@MQ>$zPoac$aaBN3e{Kkl;zl6)HD=#UzAykO|@#wg;x8a_)1Ojf8oYbEC ztNj9ri>qTb&EQ!9=dt%8uYjw$X;%VyC=-&&B27J8^${XpuPy;qQ%YAuI()_NDLmxS!j zwzZW}>Uf>I_eMqVO<_Fw3Xm3rxEwLNdxDw}!danvG@CozRn`FxDu_Z@4nfAMnWS)& z!|ExNRf-7$eI>guU9wo5aP!qcpnaV;CX=EEN+AQcwA9mw!((e+CaLp|WFfwaYa z!f1u}50EGp0LTptCO{i^k5{e60G$0wLr~e3b!^3NmVlOa&34cj=?Z_Ce?4>RHfIdu%PNgW~~_Y7&I8vB?Lpa-pYB z-y!rcL?2&KW>HZIc$Kd5+#GJ`{(k!yvS0R^`(v^r5`?S4wec02;M2~_8`ixo0Q7@( zl8jC38^zC+%s%QLdO)t~$qb55PB_|x~z>U75YzJP)f z0#nAuM(P6nK|Im;p(?-zeg3HBHB)rn3Z(Qc4Q9icNx^4WIxj zDk^kyt$wu!sV?LZ!s}g$$JB4RFq_z8Mf(~XX$1tdvbdGc6hg!=?IsL@`INKncaJTVHLq zzTq&>o?g_-XDFcoYb>M!k}?lvU#+m!H8nS$M5cH>er%vHvim{9RLs!CWUxY!m?TET zkS*^~AD)dRuzz>+>L<#>l}sC5K~M_X46Po6{NKs0btv=MF)5&#QjdHxo#pR#Tn_G0u1tH#pwi$Hyn< zN`_oqoyqJJga-)NZFGQSL}mPYf4?eXYI>UIs-V+)yWMfb)g?U31OrEBFF}waJI^jY zQ-Nmq>9iyxJAp%OA%e(ysC*VLO|VVVT9QPtB?zV;NGf#~CvQ?d^tn*IyEN9G;}(e* z=}FXq8f^=NL^MJksa=5R_CcTw8Jp@FRL%j>Y>FQsN8w9zR%BFC2W=RG;_9|#H0ix} zxFIw>n`Su^-eXJ3G-NgW(dO-r^*D;~-ZlFr=N}-}C^Px6n4l6}M-~c}fqvJ=Vu^{u zE_NFLt-L0(S8aG17(Vc1jzEUH6VWQ+@%F=Xyq&|mmsQtzDv6l!nnXf2${ur zi3Ma+Kxw5}GEXDqsEXC=S};?rS>)^|)EqX`=F4LQu@{s=(5Ur}e;*%T9$)+d#S$`m z2rAVA*-OYnWM|ImuA$^m?quE59_0ZYE@)(n#Ku5=4yl*-=Z+80eI{1VJ#Ya3c=g3) z6^0!KnpU?`QvBVy)%<&*|24LIv`{Dx$~1UQNBOE|sorkN1Cu=Gzd%%PM2ghp3n=>N z{aU(o-4jJT)heGqf^KnXuOBm>w+rDxh}01MU0{hJo5vB3`4GQAZUH$Bc&7!oWe$Y_ zRJbN2MWv-WrB6*>o!VzmjHxox)KXMfMt2v$+{WIapQa5UmPxBkd3BTz+A`P~Y^&w7ci*_}hDQBu?&rA=A&1IUQxN@` zmzM`&@ij2e(qUl6a>9;gfuG0o=HwAfyBL_pumHj6$*-dgAxA$h=T_=gdmtQ61 z5+CI4zG!(Oo8IF{vEsvGRobat9?gVImYzPV^;<4jxuH|xwHnX%*IU&4(v$KQf4|(j z>%mBnrHt>dKqqR8s^$U}pCxln6sspb&ZDtWXS3WGb*`M+`sbGNra z%yAm)!ZlCCHxERd*b(3+w6nEkq(-GQ!*u`ROX3{JY;e$CBH} z%B`u&Z6%$Z6`H$tjPo_-R)l6zop*H%o_=(BK)-x^Nc>vpZCZM|o$<0&UWJv`@sG(n zrsN^Od^?zi3=|YBiL@Nfq)OxLr~I zmKwUA|6P9D(J}MraCBJRsP=R~TA6|MJuEL9%1z*{;g>RQ9$2|ZNj)_x#|P57!^9hA zXJ&Ssox3|anCevCoINPwIQK$m;xhK7C@xla1v_ZFj&(>BmR;-_%d4!^NN=n1Y;au) zew)F*TYmE6<0r=OZ=NSQ9_ziN4KHumWO(g)Wj7=$j>r7#TV%}0CueQlbl!kxsu%7*K}vvjqm z@R^=L`{^SO-%JzvOHDRi=x%i}F~gp)%acy@Buxw-6d$-0Y4*{tjF!!ri22@Q;EO(7 zDW|F_w;`67^;9zPS@v-inrJ-ZU}arxHBznez@6?h+cR@$lAgji}CxJOxCnVj`>7P1>q>`vQ$n5rdiec@Oz@5r*^* z=Fh4#z1JW8flWzDg4mF9QSsGFfxdxN?z{CxcCU%ZR%UWMOc$spUF0FAFw8e1Vh^%I z$rPT$!BJtp9kD!FQX=>6hS}%leEL}Dy1CO4^ZSZcnN@DhAMKgh+0G7yvhM2}ZIMgG z<@b&DEhd*qNqG1yckb>lo)rEuxqLmkPCoWM6C-15?C^ySe5w;3F8YY!c(vW!i*$9} zw_)>C&(r7~=t{RUysE98<763S*S&a+)KhtRu6k7Ss*?Q%*B!CbJ-7rRY5HU}R_)6@ zWlMa%W|K$!ot?2HJy0XV%C0&w?X~P}6Y2UbJViJz>O)u>NvL5(zA-i;kB21QUy!-n zi05Pbd z;1SnS{imT> zC(31LRTO@E(78YRR!=zIZQF5*EJ482d9@Zz{AQ)Cyw+(9qD^By^&#Y6t4$ zjb|k!u58TAwmTNhg7wXFb1rW@($wVmxN>S2HBBE5XC= z32y>NJ9YJ{PX7M(iCt@SM)y}6xp1v8UaY|E^yyc#U-a@|T`gw9aQxm53NZLl1*6862-T!!6 zBH(G^ah-Y~cIWlGS<3`bMUuMaRHvmVM8x|SVnuQ8@iE3`AH5++xG0N*D!!VM5<@`| zkF)U4+>N=h(tRRI1FYgIhTwWZ#pcrEcTg3vz%CWV$xm_o#n( z>$0a`O_AN{{R3Zd3k$7qdH`yJWE!$iUsFjUoxCqGFfRqw*C)KH*NZ85QSfwj<5~AP zAB1wS6Df7+>(CxOG2w%qMOPRbL2c$smxAC|7e;EJ;>pg+Qi$Wwejys|@9#hEm-i{~ zS97;VoK21W#K~*(W3IOXl&}Wvhy1&2jEsK1LaD=@x^+=fh^QzsgLapdamNjfQoAo_ zqo`Qb*z|?yAH35(nG!!BE}6fqbS_{g&C-zlX!FB9EDt$qw%_xSmVIv`VZVqPRTUIm z>gBkd{Fei{F)O1}f!{*gfMp}8IREgNj19w~|CuvbU#Vrkyxt}aEoOD-oJ)n>J(V1F$=UB;IAFC-W9QSIXt6C@tOk{zs_9o3o8*H}^}tJm!v@gYoXW zG^wfS+p7bfTTx&)DkFfag5+}>O_6jJKCa(2cl1$cc8hEyjmuFlAo@1BZSM*{6h+EBH-aRpL951Y#&RYjVa6+uxbs z&a5V`b?+ z8(-~cM6OAQ)3_ysL6qXBrYgmS{5qH^kwj(pzLDZf$ZF4&*jP+t&Jep!rA|$GIov?s z7O@Gv*M6CPnu0M}%yVChG9|u2RG2qD3IWQ;S>{3ecI#Zh0?jg2UEO1lUa1$*Ur}lf zUdhW7Ais7kkSO5=@bnv3tPV>3QcfLTxNw1%me?4i8z z*V2j|D)<_(QW=``Xgq5ehHHn)dUnB>zgYJ%WLKSOIveDB@zU0`LQ}n4WKxE@x9XZp zhC)2aF{>mKR_Gy(a0Ya&?6Q4c61ZiCF49G#n; zpk=8;q$|;#A8(5+T>5|2LVn-UQmmqXQk2*H+r6hcH{c6_rjA96ZyDn!0N3{5 zBgrP&M(^7+4`2QH`V@RiosH(U zy}ve-+gSy*mWfbDclXV^Cyq(zel3r;s~8IRe5nXtdi3_`msyM$j1MbiXL~o~E2xyr zbx?%+-4hbJ@befn0)i)h82<&jQxT<}qSt5PIKck(nW9WEc^cQbrW9lhL9J5lwDdJz zdbrY6@bRzd^YQX~u+F~go9|9MKJ{naTcXvm3RCY2FG@;E(1Yw^MKz9^AskJr)pp@0 zM@T^6{NfxO(AHp zU!P|=bNP?oWn_+yj{cNEwWS3M9fWyVVASafRvZ;v<_tZ!giKGuCOqPlHl${&JYG_aE% z+d*_>vLQVY&UgmpRR7kmZW zP|ookpi#&$nr}V5y|rF+2}ZSbe~QlzTqMQ1C`l6e@R=Jx$oLKvK44sBsf$WC=~QVp zg!vM5Q&?oRBYNqZ4UzNG5Lq1RzrLU0$%+>liUb93_x1@#E;YkEC)?c(gcU;XW59hVk!b?O(? zdYhn#VVdA=wfn)w=@Uoh{$2_raagk*@CVw7YyD_{Z<;xp9ZJbh8V-w5>>otuJ&xAh zUGk$UTn-N0O1$5DZLNLQmL|8Q(-m^t`+@U%pPr$vuW^ghV;4TVyj;zI8LHF?nd;}$ z2mF&OXO(wzYJ-1l?u$$$^n@Os)H>~tMwUD~bl!4VQlDFulE1QJ6Ujq#cjL+MHuJjj zYg?=Fr=6ogb@3=4bw7h~op{TkK@mGnh0;%pm3!eCUH$oaE0|vObb}3Kep1pS#K;Ig zVr$2mmt-I}>k*=@t*wE5FS2{S`~7}Ozh%GwP5otEcAjv*Oo<>$_y$VncE{y}yeG%~ z0Np9K8Ax_4k`cf#`_i4JyLl2A8gb#ZL=5Zxelr%XZjEMD7e%~p%l~tVeQMAy^Y(+N zK^otM< zO_7VeBlas8V;)Njyfg(KOQzehvV;xKCQhHL47zZ#+7@YvaJ)~OZY=9CUtf3S3Y$mW z9p_W8emvBGBeZF*zt+@~>^O8PZ~pk33wA=k;+d@crJ&zV>%h!YhjOfL{^fJlo#3ao zewSr$R=zJ0{bO!pS>xx$63i`2+xyq@eMy|ExM|`L3iy z-s0DlyIO*7?%mY3}T3Tn|_GeH^Zklr9{KQ!7)QybjLCp z>gHy2u-4OycpJ!M&%ofVzqr(|Sm5vsHbJG5K{DwE&Dy%Q$EV)q zx{t(hl~ysrkAP|85GN1- z0??GaqyDxwpAL|n&NKJ*wAb!anC+BNWrG>IfmSODm|g3W2Wz2L%rml!OJfEB0@q!A|k-4@%CyA6+6lO2N&c?JRSwX=DuTe_4vbhenC#zL!Bg6{XECoIa z_RfYDN!cQm`tPk{W#CFu_G5Ft!;|OtTE*}>(jAam+xsq{|M0`#mbg!LA@K>uTi5ef ze3tARoezJVU#L*Xqj)jt58n8}SO(Tq z%;x<4&qnT=R$??X_=IceL;%CsEOd%Pre{?s1GA5z{r+D zXI<3T4wSJ1dfv$zz#zygC6Ier**9;@`F=5(iH;?x7 zIrX-%@iztiJcDuT4-+^EHzu4ker_e^4q4mf1G}0cztE6~i2hF=sj0dN z-I~I}xLpHm^!VQ1JGe_-MPeNwy&4`;(ACj_KMJv|YGzg+MzXN<=`v}d7`MF;7f1Nv znF}^{VT4b8pJQun@x`4pP2YwE?1e0Et(t4a5U!+gmQ_UkNW|~E*AClOJnN7PanS# zAUt>;NR-|ott%AqUQb`OQJo06YnkvL&`wCF0>dl<-SL-Kkk}hGk9zRYLi;Wpwxy^VfkDFG3nKB;O#;U?Sjm2?t zI6J-{637|r9=f#G$CAcF!t*u6T&VqP?9ZTt63(K}Nx{AjXoE#M*ASD`p)7N9!1z)~X;)Bh{&+>HAK@Z>xyb87g?p1_ z_08$>tv?%XYx6zDxgI8yCaT%>J|bBvLamK9B1px;6&Or}x3Idj)GcVCEE~!TU-PrM zS)mc?ZDpqiB&E>*qZG7HHrg3QG19oMWm|l>2>-)7Y#?l0F*(KJU9KHRnB^n;+3!8q z=#48f&MV{M7_=_9T~TUfmJb9)E-Fr$B(;;;3eptaFgua-f?Jhcu;~Lv*M@0SGwXE4 zqW1VY;_s{m{z`dai#-&+*SDze-E(*64g#Cy9J8I42xZnT_RKfOIIjp~W3>+o;^epJ+ZF|uc?V25wGxv?>%NaD(Kb9Oesp~35I z#maDBiw(C*YaA({^HAL^&X1OXm`JDfYcbO`#@l7V77y>Dk5+DKJ6qF-Q&Gm7sy`7q zGHP97!8?^J3{b@Qw#KDD7o^=G5syY-WxA>k)#8^mA@HZ6=ox>uaN4R6DloQXB+>JXUb`7y)OyS$O^&XRcFnAMmq;v)WH1g{E?$V;e+{2+m4uI!mD0a z#|qZQqtn$Cb^AWoz5DUda3mk&YHtjW&@~i4PY)imAEVFqDROR&urgq+jGR2sR{$6V zfR&9+6u{K)ur<$bUMVfJMcsbD!a#ShwFo&p*jD-SICv*&F;v)bqHYolrzHXs>Kqeb z2f#F~qLt_P#V^XQe6QZo($>z*P8LMc_w-CpcNmYBuhe;Mb>DVf9ULr?Y=9I)VaSU9 zxJ^>xt-O}tx(#AKtWKzG4QpX@sf%&ZB!ns*ABWvxE9D%jQ9=>(#{E(WRzDIo8_6t#| zz9orKOqxn5@2f66a9J-nJf{yHW{HP}jiSc4uYi zQ*NrO>l4rt!&L{#FwD&SaTyEz2!EDCcdwNHIoj#mxisd#{pKY4|2_zciutQ`3Xl6D z@qdf7ZpUseICTTE1AU6CznYEb&Pky(_oZaQ?T3bYyR+%Dz{)W6hB!jAl@u$@R)Bi& z{u1GsSU`>)prK6WC_BSH7a0EYktzjnQc>TV=`!GX8ux&6&O}QlL{rcUl3Dh_5j(s6 z)BSm#tkyRZp&=z%(U}E4mh+7%0*rk>7yay0r2i08RuuH@Q{dPli+7WycZihf&qzgB zGZsEUopmybxqm-(v_{o=f1;E4E!4zwvs{mAO3%9tH>r0O=;>}Rtn5rZw!5T%i2ZF< zGA}2;rLC>@PmuZCgm90q4AO#YH7tW##*Zr}3ZDQFz|4taY4!;u5~3;&r^XBD@<0*C z>wKa#UP^l8c2*`=nNqXaOZyKOr^fn5uh{P{@%Ea3$Tbxp^jjUb&w*i40=a^Zg*Nsb zAVZCLdxe$NaOfNf3yElTiXCgCp!h~KDX2kAa8o&$$;`+(5{Pk&LkH$~_ zrkx9jLRMv{4dHOjAMJZl%Vs(sESKnnLsRO#CSdx?m1d4jMARnvzn7VRTY`roM_AZ9 zFVCD#rJMxZq`#vgZewE$$%zXlucr7r4RLVj4;ZG|7)CKXbgASOP(vf)GF$%SALo)T z6#F3&1q3@V!k&(XX>DML@a^R@+WnX-Eei|tV$$Jxs{^3>B=;3I?y-Zmzg5tX5pX zFsh1pK=)Kx*>UlxF5a)DNg1y}z4P_MnA&%nNQjf;Ro04~DX+mnT&371+#PZa?#rk) zN9?xMch_Jb5TXmv#1+K>)ZJ|i(U+)1bB~dj6rw<=x`~*bokjbB&#w1rV${~_(@B3d zKfT6c4Gcwu&z6wvDZXA?lK>p-3Z2R9b~-``h=5Z7fvP_xZh4kzYIvJ0s}%-KSid)V z^w%TQWGAi2h>M5w&T^3`RJ{_iJ!=o!+_VydmBT45nku+vI9e{kZvPm$OT;~z$L8&R z$Ts+(kC{tI=B$z$1A6{P`#bEv*Pib5q-_(`cdkK>tddZYsT;)AxVj zA|^YY{}~rqzWo~)xf%eY6Mz0l3)SOrshj>Wcg$G^U3T#-RdnsF13f4EOZ zK6V42CoU%^r`;U|y$xkOCe-U_u*w$b$3i4A%hA`40W{<$CM*Gg6 zu`A6>kJW|6aLF1nLRGPH1UmZ@8$k)(<0$(g-7&^h;TlNis8k}uI4$*1CPeEP7#Ydp z0hcJouI>n91ysdy*n8*-X?)3fDk`eP@As*wJiUE=ynR_7bSjpcs3eOLI7RTNe{D3C zaE9Xecex5TsHaTIKNhU^#0p7Hj>=>_zZXu5zHgC0PBK~e4o~+f;LlEfeA(ZhZD&hO zNf8d`t}HIz+kM*5MRos4QE~M!%PD&N*I|?}q{vAU#>Hl) z`Ub80KS&#Zp)UI9nQAOCoa9$m5{lgxspJ%OG3&3G(m$Wi*XeQy>*$1uy)Y0cSTO*G z7$d=pXVec~`qsj^)rnC|hx@6z750`yJl(1`d{WVz1s)4yphI#NLUIZ0LU+#l8lf)0 zY6h-F11}-QgW*ew_30l7!-V5Bzb?wW#vg8G{ad=B@Nus)Yg6$CHB@S|6U)@M>uC@}## z1%wqCq`>|n;<2l_Jy@|@y_cI1dYt^}Y1uxzZ82>Y_v()?>N>8duNuGT$c>SodHe z+9EiBSYQpkAds1>+-o;ivjzM|4XL9|8BWtjwy01^!maUy3l!kANX_Y zMB?zLOZ{mKrY0A*ekpU$w1P;>h-wL$DOA(6)3@0k7_ry~>go3daF_bT_Zt+0F|;Bv zw9*sfj_BJlETt18&L=u+^h}zM(BSrL@mUIcYDy(ut^&6ZirCXH-oMBSua{DWh0Anw z@4-w8%_~f814BeY&l{ywGxZf${OMd1u*bLpw+cTOWhuPn>mPG>KN&nc;tL}eJk`mL zt1rU0oi&Gvc;1S~oKysn`tR|drhc2F%08@osMdJPL4JhPxH`ZB5HyG`jp6jvQNxy%GyoPCbiGro+hk~+l5Pq zoy@75K5Jt0jm!%cwK_>QFZxVfT+;l#()hz2#!IUGJB?#`x4p$Qjj?}yofFNpHUhZ{ zt^x9ROL1M6AluOZ_0YV+ua$RZ^%h2ioKM=57h0N`_8JsV8?6rIzvGt#?Jt^Ndvi+v zeaKm_?AM395Rs0&mZ5;#jFeiR%(H5%8Yw?S+I?~B(9K3^QKTks4RIgdQ(hi<+)$Pr z<5BtAeU+DX&}{GVR*5i4nyTPzH)l&ntkCd*YP0jHyoIu#(e~+`0p>Xet@QwV>q2Wp z<_CA&8^Y+c8S$-ne!+>%k#-DWiJoSH2?7B{vnyme^}r6p6cm*0L2(SA9}_05rWZ1#AEa?a*r z&lXzzCHM!^S8y#270Zk=agEKqri``Rmc^bq?W-8{5S*v)zt=Zoo@$zU<_9BfbNCNEljR_nc;J%ZM3`cavFuX;01`ci;{TTG0_N z6PqtRoMuE0nC0~m$MaCCBD&(oI+9RXDB?>-0$WDEe)@uXg{vQpE6{YSJJPp}g@9IX zq@c^{6kvEa+Zx9HOg+Phq4*^J#nH^=1@mm7=PBkWnXuMx%N7qhs_Yj#@N+qm}Ah}X7Z7!>g1m7|mbrhp|j9zl9Yft~0xhwV91*^iNr zS1cvl_8mBFb}W~^qtW8^S*)dvl$npk@lA*xmA0RvGMVP5m@hn<+aKZBxD-PDLS^(5 zYq0x){9<_| zI1qJF&d~wlgI`~CPJn533ug@9SmidEs-9#bh3myJu6}u*5?fSFm93Iix70P6jB-*kQ*5NL)`4Y>4VYaPH~j9!gh4-5GLf+?wql|#Hy zhl>b9jw8mYB3AV)cj_h@d9A7K*P3K~v0y8I_fYxV-<9^NN8#|X)~h3*B4qydy3i`8 zgR+J~c%(_u0Kr~WWDOqwoR0x_M$yU47gV>lvRc}%%*@YD5hbn>-Fuq5q*JOWvdhM@ z#{1Ser?YR41o;9Xg2h{UUNd368~=@b*ND5BGJe!r zq}+bt(k|P9?ItD(V_I^lo!RD80LJc`@tEjIce~3@X$u9jB5zl#)2MV;k?u%-R-a?{ z_Ix(46j=_&6h%pDloKnbAf4v5SRw=6c!sa3CkegQ$692jC}PU?Wry=Jf3#n&xt6iP zDm!i_K+q>07>Qkex_of#6XZ?LRkmhP-#$be>TBGuzOfyEasTXq%rbOKE3yn_xH1~A z`xRx4w#;H>c|7G=*Vk{NmdWAqT#|p{{bT>Kpxb%D-wD&+PFkDL=)mK|6<&W8$&bw4 zbuTT!9e0}{Bp6G!h zA!SYS@sl1LZ`FXpwO;D3hES_mo5x6kR_6CY=MQmu(^AXVwy3+lo0E9DJ6D`;r4L6m zyBy!BTe`uwsbJ$MiX6=|gXQh&enAo+bwuBxVaU6s))R-F>fF|HvGh*=t$Ue1Pchq7 zOfAQs(dm3j?$0d=(UBI~;SJ?%AZE$Icxpt2SnLyD>=dS+JDTXo2*=ascKYGekt$nr zpVnwRIn}@PGlp2@rzy3Kk@n>KB$2#}=uC()D|@-pU#le(89i#OT;YTC`?t5{UbxRB!qUtGnt@ zS5at8uceqWW|i^Ox1j-KZ{m9_S@XT2f#&DsmC6?HE-4v)4-V=am&_2m5naCXWJ_>0 zlZU16wDR)mc0>}^4?fM0CIqQ_lLIsh|-uhZb84r*rUcPBYkvZq9hwJ<|9VSeSEQ44$^(cN+A^?_;T0C*v`)O_wpuc49C_L zekIr1J^fK1?(@=>Dg?KWOI4HT`=n-s)!lXqJnrq+*^?@>be$3=R*=T`C$Y#!P!Szk z4I^)nZ^+yiRg$o}BtWUT{d`q^-{Eb-w4(2C=I(+?o4=`=s`Wc(K+v!U+dEs{0C67JgWebZ2IE zmpsliFUpe)Gd6(BM7k-ygB19_CQaQF7!omSon8B!|1-6 zZl&*oL@R4N)K~cq?Ham5Yplib`XtHYvBRh08k=dGn`to=!{|2X(mXH9R3>5g=M}V1 zddbIDRZb^*#J$Xq1QUYc%bcne_dGj7H*eC=QCxA>mz*w%}&0puK3LN$um4Lou2<5V&Z6u$fh|oUb?} zlN64rI_T7YuEwVy{qW|tp~67K>_}s_-^sUFBOamCyXA%RxgrcfIXqP4EIH6*tIE=I z(^BxVcHXu-5uHU zs#$v6S4t9o-n&3JNN?f#|W z5w?gsX`v_5>K9ycUJF}>$ZVy~!1)+AHyXL9T46)kz%RHxfbc0%)ttKp@&(_t^M~)r zbIh3ghSH2=jJoQ$R2_eeqSXrbO6@WA^G4*caM1l&iJp0L*fAlUbBr_e7#Xy8cWq&o zrt36|r?KL+{O+`&e{Yh^%N`<+l!rV&Ry)%Z6#P|Aw0K(D&Znk3vAkyPmJBpDpO{ih|`1G1~pkl0!XAF zcwFhIq@y`F#E`d{xGvW2)>m2X&|LelXe*n$bP=P=Bi)z^BOYE0j0GX$%lTthT|sNo zyTH%AvHPe+$P2z%QW8P0>~Zq1(_M?`US(XFcU0Zz^;3&_ta;GX`>#dkUo%@6=YHtj^+xi zcy5{1VFu@Fql`O~kmPD}5C~PIdgk&3J6hbcV*VA)UK?lI3BQak@josp{+d)!sH|u> z`KS-~NLRqe;~wK=!Au{eJ*&Z3angE&30jGZG zbTnnh+@U(yn%(G2iHX_`Gw`S=S<&CJd#sk3oddP@y8}7XLfpdfpn}Y6zzNF#2~-P zwD`%G_9ck~Dr+?ZA4hqKM}%V*C9-wq5qGXr*fD23rI+Ov$Fbj8s^BKU9T!xUODf5& z|7JAB^ul{3)jNSSC-&j;+KQcZR{Hv%w?JjZ5@-i|z0uOql6;8pa_qe3@&tue9tIw|S>6Iq0Q4UxrDUut`^V;+v!FZI37 z+IHRUuZoUx=HgJ@l7$FKS><3HPd~`qbF?s<5rA=^zGfb7HQ5*G_t0z2Fzi*OT6}o2 z!RCZBVa3Ag_hrA^*Sa9BFYr%&X!N8DW#oNy(>DaFRfZTc@}^_S zhFEcM1qBI9ah3Sio5D$LMip&r%LhFcI;vdc)3rg;Xfq=zz11N&Y)v97+L?jDq$fvr z5i8s$X7Pfx(t)ivziQ4@9%}R`C}v(hH5^ZdiyT+)ITQk97H9i%tV0p~V9P%CNkd4! z7f0+q<9GGLq=+#ZJqShYru&W|Db3M$JkU0=R-9PJTG$;_BHwB=oyEJSs^7E}jSu}p z6O>SAS7$vbsnk2@#&$>3q-l4vN}p`^Vi;)+bfqygK4d!*uFn}iFvDjLHnkAmWR#JW zj(CvcGT7sMo9K5`K8Gncd*C>b2dUQHE=!J4V%xMo)O%C4<*}@M91h|KWx85f_S|O` zhL6=+yJg;{*G=U{1_Uj zb=iv?8lzMpn$^>p$l3|};|X$$B+o=>*~`*jS2wW||HaKsYi`G=o$;d3llAd~Sl&=> zVcXs5`iA)IqEo|$p094UCyuD2E0+5Xb}=W!8qUqGVfj%G920JB7=w({6mhA?8J24F zS|N5_tjD>#w)G<+c(;%@}p^z2l6Z%2_J!yiLL+Q6J*A^Di(0+$?{$L5fKUVpi2O6iN z)V||0RW~A4zl|4+AJ4DJyi2@G`|-_r?D5CwY4^Q<=QPqE7$5N?dn&y1Hu)Y$w?q|@ za-1G(U%W`Q02j=~KmK)HJm0qe8-ylkR(0X5(fd0|o z7q@W}GL`i|mgz%B&#AUtKEzoaKxTr$G6IfYIsOYobD!fCXq}Rfpa_+Xj&hS={HaN4 z9+X*Zt}9e|MrE0NGL5ddzlXZ}TttY=mTHyA_!$87teL9!(XWEkY|kMvb3}lgCN!aJ zwgtV*|5ZzWG<>y{vf&tx$k(mE9{YpeMwNlH8p&>|{#Aproui`?IlWiX(tTYCM;nIzQh8hyBYG6B z4(ge*UBcpGRJuF`pp{g=e&uMlt25Y{Qd~UK6gac)z7QQ}|8*xQH|!pv-~99}hw;f& z+6T8hEm6ePi&aOZFB{r&xGYAbz9M!fP2@ve|liI=8Sx zb42t~gzsP@TcMtlrgPgEmK++9Hqh7f(W@)kTXSFepK_Lhf|#wbL6-|k6>dHb`;5vN zIqB(n0T_Iw(*?GhS|G0Ec8a2r;fKdqXczJE#*5*wUtRZ~j!=lGu;*+$c~x2WB2;?h?!rn{N;2`D*@cmx)3wj9ody#F=e=IVx%b zi$;E@;e4o*BeXuTsMn8M?^F1AV;@yoK)Y=;fG;GAJIA;TT#H|y9M{w&Xi!lANSzyL9OTww4`s-#nMKhf#u;dsrs~pz4Td@zQSHNDfa6`aC1#ht#^P81>Muvf zoGfhwe-}EDBbG_p5=uQN+up=m)zs_0$5-{uPOUqhyafy>CY>zLs5J`6-me+a3mEz% zt9^@%|7xUKJ2XDj1Vt4#4=$hQe55(s@fkmKn;T;}r zHjidjR(3Y_od>P`{muNUvFvoy<4< zQRFKR`d9eKk&zwq_Nd$I_}n=ld*3DEOGGQfXD14sM+(Ru9GoQVu1#dCzv!~S3E0A(pL&R7< z&p#3SUB&%n)h;7i;}SVZ(CFN_c|AX`;EcH+Su~`^ArDgLCYhv9pCSzvioX6l$S`K*-W7&J^6M;A>ykfkD%msAfP@@RF0 zi5Q>r^Vjj_cuZc8ql96NzkI%aR!n^(m@aPmnfrL%Tf!D2?#LNnAjh=Ssz$_WlT7`EpmH#WML%Z9U*D#JSFA3ttLN~{14in+Pv>QHUh zfbkaC2hDIXH(MOGD+6QEVdmEnZgfk|$|P;j%fz?C=&DV}t`wp6xq*6<=z2P^Q;Uqh z6?}g-`Y7;8ec2y&T+!OhB8{vt9F+E)s+*SYmnUQQ`>b#+r_$i(SFwrMLXO5 z-u_}9sLjc;QxX%OAvsD)M*T*tmWNAum}$2!O7nb9w-ip_R)t&b-st{I{x@f2f^HCa^y4&ZQsKCQL${hWee z#0Ze>wybxljCYihGm^Y9W=bbIPSe-}@>D-zB4<#WO%zXr^ad+NE}4MBqj{=z>O z`~wr^u_H4xGZ;frL{*T)yElfFS+C*Yu`Rsp5_M?`iHvM{|I2~y+{_E07%dxQq-4;NIIF+;oxgkioI?%T=firGB_O~45& z^@^Ma4-DwC7s&TeJWM!m zb#mwQ6NF$Wo`C3X z!EdyUGyt!2u$Ro_>jOnRYDY(&uGvw=z?ntlg$pFZMcRttReik~^8P0hQuae(}`JPS(fhjz+J@B@#M&Mt#ZBMu%;lN z*)XHb26a1Usato`Rr;YiOXt799wA%yeRuV#PZ)m13;(EFj;Gl3Z6H`0 zFPAp>+}GP_v%AXkYe`-!r8Qg(`TUs?@xyj%z)gY(UFg{}%f+=J7|`>_v2sQRr&ug& z*MPSBZjOIPY;ul4(Yxnzo{lG5@&?aLpE2zE#m9@yW&$ZUZr-EWK+(3tX?C`0r#ciU zgtU?U>-*)|&Pv;1)pp06E!F%T zot<}CR?-KEfhk38ITjxu-?%W?xFC1oLPZ_QJb0{3CJ!+++uN2noaw+E3^Cox-p}-< zdxPgMrnspoLu?23)r;}6Ira6ZGb2j>a+P_vmW##6po`QTOOsJjqUoW~5{^tsO5!xE zH<(mcf=uxC%GXvJfeXiYY(^equM_?x>`1PjNW46Y=hSMi75PXG7Uw6P6I}(y(8!Ry zxuhsi4slrxOlFt1fehw_rC9VTuV~;K#4c$mDPE_eMmgaORM7WB*hKZd@t%#aIbvLb zltPfc@h@weMb!J;L$GbTRm$)Fx!6A7s+R2CrlhrBJful2@8JC1^A8iA)-DcX| zldMGNS>Ed4X1ip+423@#Luwho7^?3NDLPszK$1X0gPyKE&@Mvh_ZW}O;I6f^^rwOe z-a@mU%w%=VzWtqOzB;XJ_XSA$kuw_uf2h6cGHUPO6Aouq$+)x2tPk>+-Cjb7maF3x z6KRPh>w@)LTDxs_#0;P+0|y)rx|ts~g6e1#%3Kgr#3}_6gfkT)CQ8hKNcZc}H&Vf+ z1}p<%3KZD8bW6;9F3C-80zwXXMsPqxf0^uV7wPePHa&0~iafFNK(qE}Kd$ZU{7BLk z`GD8m{z}O@hV|cgNM<|?9_|hmJnuEZij080S|o$8e#c;_kco}W_+wdmx)4#ZWRa2Lk9e{D#=#QD`Y&mC811G}rzKF1G)8$1B+Cdw=Z8$mwySi}zyNDxL=Wd`r>$gMDTr0}>_n(SdYR^}zH2 z3?@dE7Hgd&o^ns_?a@ld5yhglZ=}C!6@K2nX+#ZdU|LjpuzV`6C@cIYPnRMYyMuI8 zyds|)_=J_t^Isb85c;t-j`_G39&cw_K`7;Q+$r}rtu06oCFCrp9>`f=RQ9%o&Ve^x;V%O(FGel9KaXqX;-lH-qzJl?8LeC#4M$l&_E*w@kC z#Nj--QEC}kQWS7Xko%u(Vlc!p^Q;0!B(>C`o&c^|US3}RKo4nr=;Gp!AM;>Jx-(TL ztC}h^SNhwt$M7IM|J#ppSDQT>fZlb20wb-D?IapKS%gAcjg9&Z);~-RU>ZO5Rk3aH zXzWiCdR=8)R%i$r0=;TdEIUq-))>VkTV>P0uXDCS&({HFS)Z9Tw!y!n+1o07+nqtb zf9u8830Qq>nbX?Kq*!OKf;j`P<-u~w$7`bjpuhs_4+YD`Pv8ItEXu{ac|qT(!F)}( z!Il9WFOS3q(4;#l=8(;GBEq{BlMDbq&mpQo_NFKIJeY`s5Vg5~G=D#}K`d(gvu5&o zrj=Uy1Bx>OV1nQ!z`xxxMURVMd<3C;-3Rh|Gqe0`+3az*T_Uiie60SBFSzz8 zhqn;?wORGWerGTKyDucB=I62R<+Ka#2D&%abkni1WqU3s%}_``K~M9i8dP1U|Bjpq z19qt8V7^l#|6Q;k{I(fS?Ik`D)?|=lU*D!bftXl6>{IOo1PfA<+xm#Q4i>l)byW;Q11AA zo_`?pPP;9N1pTVhzU3F+XnPHx*TODp93PtvgcFk>%`}c6WxdNIy-g}o zB8}_WGhNRf4L_Ckx4a!`>{-XY$8@uX=9b)Tp{m9$mu=J!V&} zWJ>TA{{fy$moT`V$lHSWw>UT9()ogo<~umJ=;Bgali+@ddDu5=CaT)4T9K9-C$6Nl zq3UbcckNADTJt;8hkbVETbjCF^?BC8)$^nQzrD2?a-FVZYqTr&iemJqV5~!_p9O^V zEaigM`lOcB9_=Ys3LU-v<({(njBv>){1vyuD@~kkePyzKvn^O5K`+41YKBrwL>O=T z`$%N^5~Mcr)-Jhsrk~*WnLYuGLt(rCh5?;vW@^a6s)g4fYyj@)n?xM`5fNH1KMo{Y zi%|+5f+)AhzT=Nq3;@Z%UHHSMJZvyQEQTyHA_B(oq|1sWcYVQxggE7;{`U5^mT0V! zf5jb4{4+B0@^Vy|fFL7NUTbT_&hn(jL?5fo=qJhK_QoL5WjxK+SM^uf^oQTM->f4H zCOyAwsKtHuPG%Dy+Fq+3&!f3DZd3n~@#Za>Hc1=a9Jf$S3o3d;IVlb0OLLKG3^z}_ z1umjok|8fp)i|y`xco|+@70TMI4tU|I3x98Ox^|3OIO&=@%MfCpS=wCm*gB~_sXAP z_JCLuBtB#BpK0E|}|IG~oV*RZ4)0O#$t45#>;d7W_FGBvyk#4?C zwHz>w@CfUjEd=E7sXeFI2%K74oQ2g=lN0cDUM(#_3)aOR+zrx9SZ=U+%qf2N1(z*N zsSIru!x-<7XBJ-BcIP@GjlUf^|`*MW~tC{4ufvOJ(8p`OW- zi$08V57ggja^7e$xS`Hae>G?*%rp6+ZL`q1otR+HiXY$JvF%mrtMzGXqm z-!H&;ABXl;wYUM3+-2t-;zwzoveI_Dzmz4+$T#Q55w{$EZ*u>y%WxVY$u!$r|>#J7;%RLK$j6hV!> zRlI=?Wp-<|>4V@*#e#bkcBIp;;Il*y=oX)`GOs1K-52Ak-k$sR=cOK91Xs6HkjlZA zpjW80Ovlr@wpt)4z8;VCO*-(4XWOft=r zt=WjL3iz-tu_?Ip8o)Kqo3nUcYifVP3S=OMHug^hR}VM)XZ2;RcEqyZB104y=&FD$G2H5BJQ?yc-Diwqs&Nj>GO94-vO>u=0~i^- z%XkwTrK8;A9wfaWo&ev0%l0?WReJifG99NhqI7CS8|q@YEt9Ma4P`?sZ|lZDHK3@N z4%5(?cGMRu7P>0%{2E3OrLr~%Q6!~Uohh-jxOl1!XYlwv^_xsj{ZmdS*oQhe>6&YG0J}@zc z$dl(exrVOpBwMTfw{u0Hk#2H)+wF}L2>mt!4!fhNMCwtD!>mHc+U7QG!B!8vqCi~- z=h1%0WNRDG5&UVhyg?W3`JoPZ%YIKzVHicS=LsM%oE)5cH;8Ou5FiP-AyJ`U9UYBo zaS*xPFjO}U-o8z3OpJ{8XlQ2Md`y*>eEfKJWn_6u&361dvr+54jxVbSe>c%6Z~dMm zX|^j|Aej&-KLQ;vEzN(B+_{S&J|n-)tIk=k8Z5H(o>_8YGlSXY#N5f(`OTz`Bk?_1 zg49<*sn0yGpVt>@HqBu<{swkIlnNvhtk+(CBsa2jVfBA+L9uvS?wA))ZL= zKo6{x)WGAj_fyvjm$MlPUL@;O`_a3iQKr@N5aN736HS|G7yF8iiIX0KH366pktsD6 z%(TZ&bqJ1DnuofVS}Zjl5B9Y`Sq_RYU*2ni>S@P{HLh%@X@J|&v0_bIxFp6#eWLO$ zQ<6x4F}+OoP_bRxliUE<5ExyNY{uY2BKO6D$~?iFqxH@t*ww)#84R}bx3HXoSk8O@ z!*;HQ+mJY#ARh->$HGiV#&skcAqujft6`Kp?$J#g;aY2CGq$=Y&v zotm$UpgJOshpsBbA3>k3NG@XpVzIwRzQD}G)%9Q|bwcnl5mwghQnz+f{6v4oQ9@Ck zy_Qx8{z$=6cWQRa-N{%9RMf3ddPO-2iDd>d{yj#o6Qg7B1l#p{Tm`aPfSwFqe#HK4 z@d`@bUmXOcaIoEi4g$TxUV5IFAQ+{CSa_0GJv5Zpp`gBhUl(Q%$8u_N?=}R2 z^&+XD7>xo(O*BK^=AGUN?Y+jYUn58T_#F89COWih_CB5&O6}{gF<+H0&3S^VNgspmdbHDt+W=&$rN#}IfZ&~YD@os>)<&g|Miac%qYcS45 zbdA}g0aQ;TnPsIj5#kP}?O>m<1tl1`K46MJssDa_g+wNMOioH_Yu6(w?x8KQh=@J$ z(eA0!k>&C5tPoa*VzJIpUUG+s2%bnRtH1jW5j(sIk{-I8wfilQ{r&LN*n^Z4+|^-# z1y)7JDRfK$`?K4&RIO-6r&X$|q(iXiX|x_g!&;q$>Uekn44V+*pvRvv8aFm~&JY){ zo!jLLM(@E}XdXoohYA<$Y2*|wZ{EC477uNRqcN`5#jnNUA^2L}>-8Y`MX7_P?o%gp z0lkZ4x75A)ZGBz|UkGt|ZAR+Tu`^c5lr6bb|oij zRt!zlmTzv1FqW{7g#zL&-!%Fcv%)61+lTzLwn}PI6#=+bA zzXvy@69!R#;9YRy@4E8G(Z8A;2UPuk?{WCLLpjRA%#1~Q4G}YoF78mX4>H6^7Q^l= zW&Kr++^Vtx@a&_$gC%g`Em(KaD6muVo*V_G=AD(;o8ov_~H-^-vDZ(2QS0?{U`TK zANmpUAddAZg~*phB&5(!csoYQMYiZG{v{5cZDS6{P%%4ssv^6q0yTIS`Pm`gpB*@Dfsc!!&=X_*jPT7? z+CRrnN;aXc@L14xvFA?Q_uh%%lPnDbOlfdRP8*MC-n55JBRm-dOm0nssM4-qD*)&J zkz*UI(%>XqKKN0qk&}cqDXeVufu+_@iR^al2WJd)ZSe~`uOEN;>tUNl(~tOllQMf0 zy_q^3(_B>!W6hn3>>4o`qG=v${wNxKj^u75GnCPe+cg0C5_(BI?_pKr`(>fo4qyCU{S5 zxZiq#(87C8Zb*53@%x_ywB)oXb__~teylPP5X1b&tD&dKnsIa6c6Z4cLw3j_=f=h~ zQ|r@}z7m7OumaeY0SWOVoBbUpQ|f0(n1vl%ifmamw;+9*4$MC8yjFA2A$th5WTd>35{>Myv*QK@nJ#P_L1I{06-O5Tbm%yc{A#~EH}l$z?a>z-8cGBzt~c5yi+ zBSS(^NJxW`s|0JJW0%H-{^+S-YO0adJxS;ndcNNU$0@B#mS?)torSj8_=pH)jvlpv z0@LGhfpJB)61cN+rIB!FWuGVi^WeZtpyzJ~2UXwUuLoyu>|Kfhfh4nT6K6_AEByU6 zF_vDM_Xl+|MB5ESF|*yG^m>(= zq!OYY##KmCfR!X%w!*?BD8m&RFR65Ob)P~+Npz@skV;>5!_&vpn2hvwW|$oJm~Y30 zGu4fLI+*z}2#^+^u>Q0C9gdMvkDQ!103WxSvrwUL#B=SjB2^O$&l)MvkzF0()BRYD zd8k6LTO`}wfdA9C9z%Lx+5B6KysqCvc#i!d_*aH1W7Wzy5cDehv%Ra>nkjA-P{_UM zvk6S@3b~i51)IicwVT{M8r4DfwjCcZwzV z{4Gz($A7fbr>WnnA1+7Sw&OONI@lUlXKe8hZCxhMB2o_uKxTEkH-`d;mGwuAde zK*4lq4DgsCNl2#SM|C^aH_Sj5#Z6QcBSS;)2Yn6W>K_KO$45nEW_D?gxZJDK1Vz;`I0aZR9?Hx z`>xDAR{sZ6Z^TewoH=7~Ii9GfGXp~gY*&wtvSxI5S5R-Fq1;+oq%21>fZupqPGAu| zMwqA(e=c?~`}v7pS`))+R;g@?b555D7(nZG&M5nc`^Bj8TPqE_M8l|;$`&Sjt1y%S?4&%b`SbsU1p z=ph!1Pr ztU4}U47lr3gr}1UmsL5;Z<`X61RX%dT9LIpl{2^TyyIIs@$OBSXm{Yz)>3kCfUOnE zhg>r`=_^rE{Ier4X7=L=zI`+yCml>3z;=)Is&eJb{w8*NB--;LGZ8^=Z_bla8b=dd z-4{LS^UyX5DVq1>U&A;Hxz5pzOLBEzN(!)`vD~`uHN^1bIi?TP=C(QcWwSnRc0EZG%jq<0bT06JM7Bt(VRca-ii+AlADl!kx zDPlVGmHk8-4)?5Rnm6~o|CSJW#?+xMeOEt8?9cbXX8BX586R1xBSVlEJp;qHp5X%P zPCy+&=}tpS543nJ)cAv9dOKk0`K z)h-;%pA6ad~UMS|S3hC=B0LGNcU&4LY{KPh3dC{9belAg+ zd8i~=Z*bB7tsY2Uh>W_+;_*%S{#PZU$>dthLB!e;Aru3wum7^)w>}*z zGAwsGjXtz&E{uYz8~D{Ar}N63Tj;2V#WJK`^kl>iy7gQd?AgUd7!Dm{Nsm;eKAwSoB;;SH?(F!NUAl2bAru5|G7ZYwQaZxaB(_NTa7tFWZ9F;7-1#9~9 zQ#U>Bz+2RD^RiWGiHVe|$+5944jnJaxGl+^eSt>>St(sdVsq8;TtpeQwqP|g zU&TSKJBZ&03k?el%=;#(8;9P*ZUjc+_V!lUt44H=GYeBMPIpZ0Y_9 z%6-;&^yrb`R4l|<>?{x36y%A(AY$si_)DIZ{|3T*fB5omM8~jUrYx2Ur){N5lRGi3 zfs$N^)e(W=gY8?yrBLLmR#_T5AW|9B~FP!WU zm$@Ul4Zh0*3a;wtUfSm|H94E5G{5VzvcV&KQ7}(;)hHM5QOtkw;)O|n{y?0|Ah1vY zr@y_S=g6lPMKVkbGGO3iCdD9_!=3!fs+C{`yHwBR z8hZ2TZ7v-hd|wvf&*jMMgg=_k#`a4;OX&|^{RFsmnEO2iku!IhN&CJwb8&~3d}1MO zN((+41u>&>Embht#xMPK6r`qJ#r);sugBESnff{oZ@j+WeX+qlYY$6Ff+sj(eND&X zXy>Xk|Ap%u1&G=IA{RO89w8*03;bs?W>%$fJOCfTi&J3Q3B9n>4m~A3FD=zh1C$N~ zXNXJaK(s0aR0{6RZtl0r%0RkmgTM0_~2&aOn?i#IFALd%ioSh!5-;pl$_HD{uxuWb+u{2n`YnQJDAYNFjP%U4DGz%t(=DV}f;g#TAev0YA@eRa|fA z(hi?qf3kQzmySp4Us+Efw{QbrAA6#0zv#&qv0R@8wDd9$y5(*9xGkRcf6l_8T2X(C zLh=ez7#~>yYHoI*n#1rO=F37tLN`fx0cJK_;DngJnwNm(baqxLf1TC7!S9%VT$`t6 zzoB#)B|@K>;AhE4>DljT6QS$78MK4k5p@#Fii{L%-$S`b>fM*l$jij-P%N{XF*?iuuWrcGM#H~!&-2b2g> zrd)mY@`{S1WlZAIqxiqIDpCwI|hn@EgHX27tmVTJ1ZY?@SUkQlVt|YaUa_ zTUMusN=7i}1x*Sy^EPo0$!iA2)R`h877$6g5lv z<)Gpl%f5Uiqx`Z1E9*Kvy_ojOmfdTnwMxWT zDF-u+RU6rt#5HTG!oZc5isK7lI=_JXpCUr_`rG3qS4lwY8?AnVIB}3v`rgp?>dZ88 z>aZKFbR%4dF%bgWdo!Qw>vT?c&9hk&VFAc-XMWfk#(U2KcD^3J)s6b9Z4x<=r|~x- z4)bNV91dhL^I6{bqXIJ?94Q&R)o=XJ_xvm_KDY06=I?RIt}AN zeSHa7z2>eO5%HRJq{tfRrW%3j!1Ly&4%RCE)Rl-*!!Hx8q zE^ll%5e92ek_Gs2Q!FxOn}o2KEt%>JCD(3B#_U@C+}k#xx6pJLydhfGd?VF08g3~ zD&lw=A>etv)Or77`07=y#?R7!oON{zY!d)&#H9TMy&?bssl-3I?loANc|ZJIXy4ld zW|Y>*s+V9h4Q=Oezp~j7y9Rp)*qysZvmrn^p(h;4a@((f1-ZO5PYww@vPq{*WUL-4 ztZl=#Fjfa&pRF}%Q)RD2Bu9Y%gLfZ4&a8}YLZVYq+mCLC#yFs9Cvt7uXk{5?dmh53 z${ED~wpr~01KBGQkogq|Y_SuJ&<-^jC z&2Ko;#|VLJfm6Uy1W4l#CnorP?|NXK*Z7CG&%;OmyrGn38Gou#-WR1COZTg}qUj3pn@>c&Xq|q3P>Mk| z8Rb~ijV!wNZ_%>9rgI%@h+=;HOFY_~FKWx%T~F>7sdrt@g>F&`xa5&X4)OD^Dcrz5l8_8GkGwaDfa{ohj5_VSy$46vn{r zv;BfwC&!+k0>qNGr@j(#5ME&_*ws)xeim+4Pg-R^YviET27mo#)K!GbdaG3>T#`6Y z9Rkj_ZJMGJ**VOz^_P(lIbIt))1h>}R*6Vw2#RI+P=6*)AxJMhkp%yG*bL}qG;cly z%NdX_1KKKTeXo#lJJ1FgXUu7l70^P9D7ZCvR9A~?Le|vqk`FPCiGvebLvmrNk1V`Y zfcJ{9$Lh0EyA|ZNwUeDGByWl3pPRHJ@MW?4L&tQV}{}m=xAqIG^(8x1Z_P z{(ka)-*8WlQTNB~M1;IZL?cX{KV0y8>#gm3E#?o1sXJ*uPGBXy7J@FnLlW*N6I*@r zc0`B#MjzSz2TMs7GCDNd7Rd=074}|}mvA&v=M3pF>*Dq<%uFAcf%-cPNQ47r$ zyP>v`u?{6~&gA;bD0&`rX$A%ckdr`NYSqkRzwkLd-5G$K;M#Ielf=in*EY;R#ySJ` zTwGjJ;w4kaV!gS(QDwPVnEhX*GiC;XBul`^J5j`Dx^0gQ~78aJ4mX?y2 z>pm}jC@Y(LB^U3d%@#pViGqq+!T};qIcaH!Lk^X6zsNK;@1eM?3^iX-8XoFd__t;l zw85pL$8j3`zxYs#|CbOsNeAkOz@7%FuBaJ_*hAPb_zl9(2F%$k9A=u(s)3!Q#NA(l z$g-C$F3>>qMg!z0C}#E3^!S0-*Lx1US#h4;U8%*Fhwg4;4=(fAdnbz}1q=l)sZ9A@ zLxGqbOsBoRARTJ3xT>lhxY4UYjBw%0Myqz>@KQCTwx3$H649YLvxob!(mU>3EDCke zCVoy$9fgoDq1~(a2}EUfFkdOkyEa^q^_~3bU!mjgZSf%6VB`}0-#&ygrDIoQ$f7sr z&N2^|&HzQusDiLQt1CD2%(fl@YpMiS0;UEiV!kngTV%d0XKOn?#VRJpe%_?SZaWwJh2W}nrrDtheFu3m zqs*(XFAND^LQrpidA4&-;nw8S+L!N{Iv>>&aO#J^HXHn$uzdwFU25c8wfV*K5zjpO z2UQ8W!y=wye*c@(8T&9w>$?)9`Df4U*0gkY{Yi-5g>LH)2B?9# z{48-ATJJwz>tMF1>9&$x`}IMvUfRo&)C7Yy-Yx7G5Q1Br0NolWL}IvYk?rjxsbbXQ zYq~m}?sTWyq*$Lk9S=uKkEh=rg~#YSINgY5e((Ya%|n==MFoUAI0`R2ph0TZB(8`1 z6Vv{D$M#x{C^cT-hbuLOY|mE?K)T$3txD5S*8eII3KCxi$@eDyy|MMlsXxHQoEHpt z++a~A5$scLW&eh-pBjw_@>WBQ4lo^VxE3!#`voph+o2UV|_#m$B zs{Lh2LE?cT$~bDt_w|9qeBbR~KyZLyNYJ|D>1(fUV@_NgoMRV0oflH-MPI&Dyh}0l zxO~tY&Om?n?hZcYZD&-G-^SnixKYO~J32;24%WXZfe`y?wZGWww0SpVvg+|Kz(e6Q z1bJCmklm?~`*NgKs5zR?#ms2n1#H~}^G~ZEX?@ALD7eJ*^zUkytB5+8ZioU0v)k6f zA_Onrd2R|$Zo#hPAj|pV&}^YQFj;}0FBVDd|Afthlk=7~|KJYX29@N}nPo?K;vHJO1AZ_#rRGNGP z#gi=P&#DmY$m&p=v8S058zM^}n=hst_m3=;U-MHdif%~_6}xw@i(2yd0qsGy#aV_A zn9B?Gr%53?kc};mLQv(4DDFdunBInZ>qYg^1V~*UR>-_a)K;=UcT{$E+LCW_mn$>V<6?Im<+@_A{w$~te z=IF7<;Z^EvrQGE57tQw)#41=XC7YZ*50OPHy1M0%H)YaRJ=Z*H%56^(2ZaP44vw;I z4t7|6&cX&ryo!rows+rj6G91OAsZ;;|MW9IRdwRuO#CtOxIMScYqN}CWl2yg>+#bQ z9W2*-g0Rmbe-aqZ$$=sL%#3k&vXHn8JRTBaE_W2fjSe9KYs;Ul&qJv1OYw3&gqm`0_gct}+-ZGpvUGOo|0~2WEvPq(%{%#7 z)PP=L)nAoBb*^=}s2iqokB5|g_oubw>1*v)*`8%l8QUNV#H2cp9T|bMZ$ra&1zOZP z++aV-znD z0^@(t~+6jUNVy zpuH)hm@_hv5NvF0{bq*exIxhm1~J&CU}Bl)h6LGG{gdv9akG_GW)Q(lcAzPEZ`b^H zF5+@?W9G+?&tX76&+WiF0;Rfr4}Vg2oqzr0**X{$A0U(x68u&!jz~;O zTGTWTkBFc=IJp}3%8T1(?gdCo{cXeTOjQtjQZxs2VW}rdrA^3zrXPt}A5#}bT*eKV z)FD}U-_Z%2LRiw$(gdSCceQ*GNxQwBKLpRR?#5P)4f|go2K~q3+{n3IZy~2H@7IW| zOrkfP%tQ*A-=A{+B^uI0r1iq~8uDAh=+*8Pl1(x;6t!74e9xNgw*nKM(3;M%qq$jdO}=x|4FD z4E6iO|CA(>zCqva%5N_WSXoP`6LtDOe4}XZ#h~mPaE?j{aav{Xjmqa1{hTriP zxvQ!`187tdR`_2)1Y&_qGJ}$TPtQ=xOpx0lwu7GvLEGpwOaewv*YcF6f!H)w=W8=Q zeZ~HHiOv3k8V?5;=iio{msU`qiUUFscC-OjJ46bDAf$*)H^{iEvQ~B(iv4E7u#Ewv zZB29d#AwjgFRhd7U7erFnQr^6O;rx$8WSv+-L^G#d?Ueh4stTMwl4<|QXkPZfi;rT zRH-{HN%rAbALMBG{eiK)C$a&ny)wJi79a&fk(hxQcp_p_P|8)FDvhI)S{3wAR-UreMJ4|M^9W9S&d>LFnkyKuOefQCk~sNlhj* zK_@@uDD}mcJ|gq%SP9`Vs>6bCt|JjErWG_5-tcm*C{Lr}WdUVNSFd{>A{17F4zZ}~ z48%7!6P^EHi)kf~gUwmE@&=@m`043}zJI^aF`8$-N^;?#Oi9@``hjU&RxA3d7I|G| zt%%Vf1J85VXnC~Gx~~l2#aN8n>VLu1xJ%}&=rC;{9yzr-8ysT8X0hc~Tbp%x5o~6l zE)G$jhLwR}f{Nr5dHI6uZ04%ZpTok!=9c4ctx$fuL3H90eP^6b5hB%sQcP9xo|2H3 z7@vC}S?<@RV$l2*A00V>KZ&fM*Q{$Qh+9=TKHA^(2{qnb8Q}(HWBi*cooin2F*U@* z(vp*D_)pXF+yHg)_U(DkL&s}bq)OV&)BEU52v{LQBLyhn;He}4Q*qn9VB(F^9@UXKT*Z#!p~wBUV-nlz-ktv$24^nwK=Ey!7Y(wm^t+w`X-t}a|jFs+l6kNGPkrO zl|UX9Ocmey$seB{M0nxSt3E#z-#$*0Oo(kZOmLfQ0jxGiKq)!X6sbyWGCpMZ8sSLxS_=soTI^Uz>j zLtxQXG;6rre5)!@H1+7cC8p>?=-qQv*~MCkbKm=|T@JTQv_?MhBvo0gqhL@{4m+Qo zyp<1s2IkQ0!WAoEesz$R%A6MeCEm368fabF?{$H3g`l~iNF%5{2mS{WL0`O<#jcdE zl6eMR6&ECp4&glfi(ug&U%N`dXbKb;;mc^Sdm_JWAwFN_nr}GVQB$+hk(d_FsKLO8 zj)#YbIFS1$QBedNypk@O@3ZS(Pq&!x0rwEz`<_aFS=UHKp@#_QC>LD#t}$)=TM;xB8s?g--uXErO%3>IQv^|8VGNfZQ8d^%B;+ew2Z%l$f0W<3?)fW)z`k^xte4Z-v3psV$;`&lWe#B^WOK628p({$0q}0$x$@y{beFO!H~w7ODc;~|3XK3ZhxuN194>;e zwi(gX!Z*5v1gZMbG(O_W6!k*5PM6Qi6&hJrk?wjDg6}Ab#~z4#QIUmAw6vwsFXLUx zfZSC8`ZL*s9Xi~9rMmWQ{5#cEhaf`9E?=p{dHuuK!DnJ?aoI=zfZx6Dv`>6Rxe?;dOopoD3Y3WBwQ%{%HtJIFdMYobkuEzZSN(&WOaUgQ zh%}z1JclHv7r86TEZVV+@4JR{rVFBBtuM^d@U?ee(Jud7KHaRrUvfd`*c= zicCde(Es86Z(Y$g*_p10Pl|;sD@-@V=g_Ie>y;K#6Sre(}2M+L_p4;J-Hw`;fvrNFyPF7P({t@Jb>*|%a;Fm8JjfoGR9bp*QpNx~&cXYB16q@Rdc7rJWOW^9$@wy9Q z5s}`rz=jgAUqhHc5k^EF^E+yN?E1*1Oxy_16U~}svT9nRCX{= zV7%!x_(d|3i?%K6^XJ=S8&Ysr9qyQx4)lY^;|AE?%BO9`Eym!_e*l}>|C!W9M=YMw zUrPc-l+whP*jSK<8-avmwDQLTyQ8k=@cC^UTSpsvaAI47Uf=bkrgpVIgzz1Nk{#}v za|Er-xeDMbAX7v zYdS~?j7nk;7hl!0_`?5GYFS(CG>SjR&)KuT#?RB2VklGneh$_8Zr=VqRJ+++>i2WANB$beY3yl+gtGE} zhr2BNA(tKZhG=F+;N!N_KhQ&*r3FJUEfz;iHxD z8RE)v>iNoy7yH=IUkUvMz~&;TVEW>AI;)41zeWh)^8F{j8882XUD=2Ze)8=JRs2UPI@Y@b|eJR{j-QloenJfp5XFa9xTX^7h41`GytVI&HF7Yx)z_~ zXSw4K_WU#QrtiWst+FsfbXys)Uu}_xbmqRZ39{G_g!u7Z-nL)v z?M-*+{7A^Yxv{x2?1WBi4FjizG)^woiwPhP>|-H^)N*|MIT%fXBAten+pc%zSbLip z*#ipuSOLC|?4~lRNBcEzpB$nI-n#0G?t~w035WgGt;5UyBw8@>m&|en0Wjz`dou=A z4=T@vE$8Cth^vL2-SCw3ti-7AJ;`@c@q;D4oM;m~gXttH8eu#9r$gCeo|ng@QCXFL)?pcT7=k)86r?btcUlk}}WeuM0eDvk(J49wxj3&XT5SI)LCYL z`#fl}@}54up^QW}wVfRM;#6Eb8zqEcLc4a0!V-L9p|H^g#sa*n^?0;yh zQn7#kz2`83-nu9Pw;H-YQG`7+M6dCS5#0GDc_QPs+Tv0-04@Y{+}dSqaQ)l+bw1Q$;9X==WtIquB8KS2t)yZBAjx?zIu_}*hnsg>QO<% zt$UXv*0SdN%?qX7&F4mY@wgtM|FO4vksxJ*RMDaLwv4P;PKl!9lfK1MJkm=z{p?la z>M4eXfMghFPEp6(UXzqQkz6+YD_Tg50dQr1Vuff|<^Dg&tYT|Pp^>Qnd;&lUPSXJ; zxGF_9^1ys}mSzd0YW{+^Oa8O?gmaP+yfuwEX&xRP?ulwY|!qKN7NxpC}A?u2RsPS=5{=Ka{sp@eqCYVx7O2 z3O0t6uB0@9!)Y;x|1}Eg3xrFnhx4S{GXZST)>f-uD>$jB0Ai?^HKJ6ZKl#=(P>w!n zXficC$y24RAr{nPDQbgUOicVcJ;K{|& zvfYRI9}7Y$F^JLl9am2-c=M^^@OZa(cBaq&#w`NLRz zEd)X5S*P@ptfQxgg!I-umjT_^53_PB9Go1|l?y`ZCxrw_5C`|#YicSrMn@nv6>uRv z`>5@r0c0MNsl7+$GXVsA6WfcuPXePrLkj58)yd8@C(f)@*F8PBPUW8~cgIUdZQ=w8r>Ymh>miXY(r_H(_jb9?)c!qqO*CM zD5twk5Epkwqa`Y1;@N`;Zmpg4c`#vMJPFX#*Jn5GNr1hjx*G47XQxZwBQ||9|M3?w zW0Epr*@W-kJ^I8b>-?l8!LGvbsLPUN+Ci5zIs6_f;rB2#`c(6nCw3%7$BCT$E1N;9 zj$bmS=ZBPc)dw&9uYX))k*{xS)2uP)uXH)=F|Tf$n!+|42M3PbUUto>E4zVU+e>e; zH)>8h8fA6@NVKZc6*_zS@QAz_5U3&x@Ijd()7a zm`@_nAO)TOXlu~JmM%e&nUz(wc+3FyB(NR&#B+K=NKZB~SIXXud%SL46nzYl0iiUp zaO8X6Rlj11f5I!~_&~dBZ)@wi+4%c+@@0jm?5B|>cuZ?}L8Z;E9=#-LL zBHvAdvjnhUvI?o&ZA6@QT_9EucT1Oxdj|>Z_hVX5wO5K_wJ?U>i-j{X?JXzmkA7b! zWiBUtK3^15rD%Cm;^V!8rB1`f#=C#Kjt4bliTm-f3m((abR<(1x*8|z-+uZ#=5)5U zd`^;vzkd2J(WHL3$l=Iq@-jA$oP@4EKo-j%?w%hboSH2AaL{YJI^(jVDrdP)bnnsx zI)3*Dd(9hjqfA?4ErU7Xj6zYWIVQ0grUKqLOD3kSr`z>&oAs-88hqBQN4pw`baNxx zoPe#(Mpiqg&F3L|3UNf+h`p7xJr$N39bsBEIkHsww4UT3ft#cQE<8Ij-|J+FdNN*g zmL}?suI;H9o7C!^WwE0Qa?07oE|&G( zMLIQiErBcU#6z}=$hzW4Jp0w5sllQm%=+oR!G1>g?fBw78>+I-sQt+5VcC|fCAhU{ z?khMOFBlRXy*~J+j+>iX;QSR@X=P+?> zrM5m}BCiB;u%%V$4Q9f7k8R3LOiU~$W(|Iw4Zj!TIg?4=$?|Eq1xDR6Hl9m4-w3!V zs=t1z|ftj>*?&oV-1bdn&HLuB5lFM+-&BU(;q{V zPj1$Ymfk`vZmh?9RvzmIfMKiTHN!4lDCJZ!ZC8eh!MC;Q?6+kTX6orn6rU=R{SMRD zh((N2un!GOmip4N-H=G(3A{(&j&iAy*Mg_xL?+t&3HzCjH+P%yBuBl=Fi8r-)7&#m zzjo7wtNPz3LeR}rS1u2i+DY3e$=eMlwGj|EZ%4Utm_A3k?oBb-+vFX5p$lX1tFm>N z@w-beFQq4!y7)$jj02xsw1g|Xuf%3IBBC4da&@L+FRdf1i4c1%W^Ju!r)kLcaQNpEzwV;oh^eQdQ-38oyuZ`dShz zrjbSlPtx9d(V)dUILXOocW1+9G{-t?Z$t8n_*Fu7`i(hn9iSAcC?6bdUsKNg4F4cs zTqfDMV!^59=^S2N3=AO>zMzi>wKX*@SsJ4&!{tx>BLH&k;$B-E^p+T7IMk7Oyk+=M zaH<0aE={>15@wP)PvT3@zfGL(7pv>rTgqrsx`bp79(>{_9s9z>myJDx({Q41sJxur zn3J~M2AmSmE*2J;&S{$4&#v&TYcevrlApY|dFb4NDHgZ*E^Efcm5sv;+*6w~&I-!J z(;UsI-9!o*Be!!xeetkw(V>u+B3%y3l(jCs@U=ab&i*6po_iYbU!H!nu=p-8BM)zDU%tgU4aY|;w zNyE?&i)vCR*bN?y&R#r|!JNUGk<1wLn0J(@`33n@k|g1wp%r?AEi*qpf>=98zq`W{ z>w$OW%Ltdhem5{LcBfZisBj)B?}v9CoKz0`P3&Q`G<>vaD{q7@^%6h2^#= z&6xt#`O1iSu^B6^_%%pDMzV^|`sk^qd@MYR=ZYCpab2&_&)RFFx&50-V>U0AQ1Whi|-JTsr?#U><7#RMzTH8*{{N4b5;X+MLWA&f!oHg?z*G$Lw8 z$!`!V1NFgX3@T!IzB7hrU*|6G6EoZt!(d@Siet;&Gsfowaile9^J;prPMz}gU(qHloU2i8o8b++rfvkX1*OX#H^Ebz8OkDB*~y(fmHse-ZzHHt~-bMg|)%s z@Cu)$Ee!uqUTV&?+r-lm#uU*KVNHL~RXjyA& zW{9e&^D3REORaACi}wNh)v=F;(#o)+DO^wbxA<|7ocEgwawfl6%wnoe1`@N0hE!`C zHa2A*Vspm_JGoHTR9Am4%(2`U)##s4RpZ{>CZaDbkTt^zAqtgutf_s5cVyaTbGRW?hQd_I9;pPtW7@qkGd&9q=UmfS@CVAsj?9W8{RkkJ zYG;XuhVU%=k=}4T4qe_3QVBRriO`uR`qqO}m#j};Gq*1Z3p(u(Q^cVy4|<2)Gw*?O zo9A-nu@EPfMS<~9-=l*78w_INsFE0jsNiCc`GLhoLAqkrO6?_nAtAMcBi}5p7l+EMIs$bsU% zKHaQX68&E3f!Pub8RjrevyyUHF3S$K*u7L1<`7w}ls=-E0(qR2H*l!t&uS^|LU^BV z5@Wu5|Gw0vKKf?M1Dps~9Y&2P_Cqmax@OxnfdEpze8*|bNRJ-qr1!UX>qM8{xxBxH zi9a?!UPz%EI^>u1_y;Ta;RLSOwd_yGu1F$`dyeJDALyk+Yr|^CDE5i@vIV<%XsWY{ zyijlR%H5sp^qKzmmY;H$pqv^TT_7*fLaJX1o21R>4C~WRcaJ+}BsU{SLhDZ|z$qn0 zaPske9T-T}5->LN&dVdm$WSWCOi1|FT_=+Nr7TTMS-HQ&T3Ya)-BR)Z5_x#j!#l~% zYtCY?9qtWidr4Fp{c3(5?zU|5IB_ft;_ElUxvnY3C0p$(cZa?gQ=84-Fz3;XW)3Yw zAFR|Vn!AE7`H4$H@cHv2(9(IIVA>shGbA&j+9|@7e=ZZNthTbP=FT8Bely&YUWM{R zGk1uVhLbjJ>y3Mm->SUF2}eHWH^T*KaD1EkCuie^cK-KVK0OFT(Tj*PHH@ zt+=Qc9g#?+qvL98*w)q-06!9T8z5D?hv%b(x z6eqY1R+3MjxIqpuofLzI9+VS=fpP!7-BKs#!!5O39Ivpt*V|61vE7~o}NONnS)N$;8>!6muR z$kou868u=Yy{^;W3ll4t!c5%>dhoBqiMDBBIXOlBU-w!m>EOq5c(~o&**%=MtGVEd z2YvD*a?g(+KA;1qDdlmf9xai8B#SWAF#`8P&mge`D)O2T>VQ0E2xQgHokxVj)`EuaEL}gErN==3B+Aq zM#joqo`evyF!Cn>2KxFXWhMFMy)&Rw4_%f;LgCM-Gn@PEn$9`JZMl?*B6)e6ilu1n zo6Sbi3T4yr5RS1Z+>ikvMfCkE_gdjiX}x!v-Oe#bv*a&x;i=lWW<(cK9C?14`ghpEHR`xR~c0=CECAa-dckz zrOb9&W_;3w{;O!LU2yTPTbY2w5rwLET+^_DyrO7@hDEAo%-I<&v!0E)rwR)16zX<=xExQHhlR?e)?ZWF74(LW1U_q9^CC z?$(hrQr-^*>(=${EgL=6T+uP3Qv2O76n=JARyi8K7^(+E+|Emq{H~o4hXLVl)~KzY zD%Lic5VyFq^FDum7~8}e>K~hgA1|%;I`&hOXx+#jN&&47&Xfm%7%7XeyH(C`iFK0M zaQVtm1)k;92VE03&fx|O0V)Z6BA4|IH<3;ugzlkn=Z^oP;tojghujPaA|iZRX6b{c zviK26@v_D%ilaG4DH5^z4jcE@8#}*6mF>8|3z{|a1MsbjoN{eX{#qIorzVNwRAu~+ z(g5H8RGYN%2HQ?2e%NI0s(%h={}tcIXBQ{VvAWb%`;;ZPWq`oFBG1!~r{hI4vmsAi zAFw=7SV=%MyRsq*i1doqB_$OV4C#qZiunplRHEl9&0OB^dD8m^B_;}a=7TLLeQ51t zGc_c#TRC&}TLmK{ z71`^DYX{rL-hmX+M|vr5FynJYnUwm-Mg1)qwMHuiV8*etxjl}lq`xf@b&Ch7TKQ3? zT_^I@#V~G4>ZH9J_yfI3v()WA5s5|`A_MJySa2_A0!^+B5u=hOnioHVNN%{SlOMyT%=vlrNYyg9>ns6y- z1p!K!$my^)hQay%ECsF7MFqH+gMCUzNJX^W14*JtL}jYpk>FFA|HIx}hgG?LTf=U1 z3xd)mpdccxNGPeW0O{^hx{+=Wl`fGIkQV9gM!LIGKzh;L??m1Ex6ki8=e+0rzW2{> zUHjUXm*BJ3x}W=*_nc#nF{Tuw!@+@L^jH>uL(St|F*&)yf`SnJ6Z^5m+!s!Hhhy@A zb%*h5e1Yb#4kqW9QH~csrY(N9+oD14K}5nvn}Pqk`~AtnYTDKGP3*y!B(Kh%9<`^| zOLv@6>d%knoNa7Prc|1T!FLj5kbYSbX^e8uO+MvpV`$1ez!(L_NNY)+*TUWvVZ`1% zO}FJ(8a;IQ$WJSGb8~ZNX$FwP1qWeg?J-O{(r(sGn8J|T+uIi#50`GOL>7(3V4#~7Fsar7eYp=LTDlEWU9!lt={JSM$4jT!Nis3=|~js?ldP4$Vu z+k-Hd<0WXk$|>|HEDH{v`u>8g_Ms=MRvbxUF6;80D3ebbW}3OZK60jG6EgTVv%7hx z>hVadzBY;Ti2WRy z=ZlhxR(Q0u7>N^4!ssoIqa325*!o$S+nd^uy-9d6os&h}*iY}=%TDDL6ckjj)dK(L z#KeR6D^-@OV~a-zTgCFz+FDwQN)gJ6ib9{4Uz?`L*cZu4_PJC({&A9H2Imc&rWSMU zc;hmP!=_P~-Jcn_qMp2JYac3xVleQumT#0Lqr8GMOQpma@TEnDPayK_>A_qLxC#&3 zKqwdSIZy1E0nqUG@^T*=+DG!jxM^rcYih=NYRYSDtf^&e=M<4%1qHHsUqx3ZT^>}H z>jyO;wihJd)*ZsW#W?GwIXMx4_CZhLWE(XvzfNdKBA<#%dEG&LiazJ1ODEggB5pOd zfHKPsgx+nH<93OrJ>AO(I0qwep~#ki=C3lx>WX{3R@lEEsuUV!FdTIT>5!f+796D9nSp4Ce$bi1O$ruQxJCwKcTe>jB$gOruxHx`bkXPH&Q3lg`4y3MFj)@Uva6T@DKxQ74>4NYd5s>ek4Xk($c#k~^1PNfwdR~6{c+u-^-}Gy>o!4?$fD>!YmA=5qo}}8GiIJ_Kx}kawM*;ISbZYI{)xX6NhX%1=_WbQ@i4)zKijB@?Tb{pdWNaxO#T)+fc87+Exo22;^iGIg5@ym~3nV1RA z`{FlnwXI8Hp4p%55v>)POwwVaT)KK#fJt=bcN+=h)bth;zO`oshwGfya8|mLj18yh zvQq3e`?t!1^g@J*kW!qa@uX^>E+WQ-#i`|sS(rwqZ{!ov!&T{SK?Ue)TIdS6RB=t~ zZ!*j~@gs=NoZl@%ya#EXPWv(9xWWnErs@;tJ5QG5olfFK5EW-2x!qdMP6x#s{0;h= z)bgi3#bN-AtX_rDs=CUE8!b6BMGhD#XQ_jO)yAzD!7`hzmgZ*8+ay#ur?5$tiVUc@ zYW+!=kAV)i%xWUH0Jtm?7sV|`B>49Ee9 zM2yRsoNU?4N5U?Mu&CP4FU-l&i*t4ThV0b&Ftm(6WCQ16k45mpl{8FgT+KWL;`Z#; z0r$ze-@=K+MOTu&BXtZ71}1G4KeNBLS?VY1{(a-bhD=@LziqRsfT7y|5U8@5h&9Kk z4=W_%TEyJF7RC-1z~1)eO?gTXx%!cO25<@zizM+#1ZgF+Rd47D_=&u`cwGO^0}P-K zFW=a1ZEqbdw-a#Fen}vQoN;sO;nPmq6%yp`Nz_A*`&RHFpf2(r&>zTe24GW>f$EI@ z!p!@W2A}%{DzdV;OG}(oA-JS2S-c+BOQjEGEM?>tub^roQYbpK+hnd>acdNhUhS$} z`Evamn0Kw6^1isxZ^_|=B~8I%xH9hJNunN*5-rscxit(Wk6MKgH#Y9KnT@O0wqXX* zY7O6A!?RPbY4NXOpEwNXf$Qs```oju zyM11@)`cwK$;)Q9lrHf=rO*)#qkhsG#%|lJP5=zU;}tIy?5b&GWVxk;?KS@JY_Tl` zxNRMs3{S8Lqtzw8&n=~=rD+;#Yimf2mX$HsEN>zed%45e;)?g%BdmxZN29cRRbm{r zkoB6Y!hv47^iAiy0H3=3`u7~gcZcKUW%vXHnWNc?$2SYf-LIYQpA7QxW!>};s1y>n zd7Ztt*sm%eFdx7tOyl@8=LYR8Wjy$nh(7NkYPQd&nz4f7^OR37(#&rncKSOp=zE&G>N8k1|XG zX89>B#%2GtmYke*lGq9-=U9ij=c(4={IrYg%XA36KX%Xa#77Sml%kz{vst+`({g28 zIe*38p_@vhL;G!uf2tCXuT~s?QNK@JGh})7>eWb=%%!0?RWY$u=*y~Ailmw9jN}Qh zLVM@@o)B@!Zohlt%dX{1alI!fgQs0;bjWscA_FE8bjDB$@HO5Fl*h9%G)#jc_FbbW z4rkQ2V#1^J)}azwvl{&Br6}tDqo2!%EKWW;G)^O~VIG zj_dNt&>IU@6IBfPI8nqY_SdwU{THI;dVxf}r6#l~j8OYq=%ETtXS;mqHNse}pD@ld{* ztnOfDeZ8p`(%VT&)>1}DV&?qeqr#i-$+)Na)!b^a+_;quAc3<}-ZR(Q4;OlFiQZQA zTIeXjBGtVJF4Z?t7PvKRW8YO63+n6h)bv71!AEiuTR2{37l2CA57TD3V#2mLw9j0- zK%)ZvSXKUu!mB3i)_QyGgBB4i`tYboD=74JHwSq-A5Sg6`NLV5M^1Ksxz&8H`N=nc zMKEeF3i#bN(A10yQ-8fRm+@gXEsXXw!!GYDue)Cf0TJbhtoA+h^GRP`GmXG}sWgdV zyW-|nWKwTBk*j(rSq!XtznkbwU6raUBMlJu2Tkiv3-m`t>(zs+rJTjq)W!ktHyuyC z64U7t{n>o8Z&)<4P?#gJQ^7VAfr-IvI$*gJyaCkwR85VKL6HtSOMd-^Eaonq8m(RW>i)J{VyNz?F_Xt$!V)5 z+E;DYZ!^8zU#|vl!mzL~PW#|&8<&OCOL0A&6L~VBIYzk-=lKZ{zPYkm+@qR_ecue~ zA`}!isN8c9SB{=noo;TKeS4lZXrxfC<%Zno7_tN`2}-8@z2(t#J1pKywQp+9FD)U`+NI?(2*-_2tZHrAZcj}bw3kB|2B#6up@o$x+;y$OnUK^a#w=3T`w zv!=Xr{3y*VRc5Uy#J()LB55eebLlgkVgr=}Sk`GW?*;NmCt@Z&Vx(uBUH$c744pq1 z4oeFI?S|t^AHWAh1!Q5p(!rhZ&2Ct^tw4wzHE`TG6PwixrTF!e*KQ?FDEg=l}^5@gQK1BquJwk9yQ&B7tXxloLLypEAzc)E_!z+ zYyYeifMkfXTics~8%3{^b%ZFh_x0G%S!{34u;JU1j8_1{O74GK!0^JcGK=Z3zP9#o zLK$mBy!ZCT;_z3iR%7@NYc!{oWHvCUi{)7!k^#p^Ilx8(t~E+(Vh|C&qaa1edY(q$wf?( z2_akC)}bL!CoI=zFZJ|d_1z}(?aJQ0tB}XLxlMI`EqLj1K{YIg7@7!btj*77N{a#? z2b(p{TTBM{Y=8dxl?zOym>mtq66dl>p!jEt$n3VK>o&OljCIf03?H!q_ zfRN)8;=k0@-6}2KUmd>&^=tiP31yBlyK*E`FpWT)KgNo)n@cZbkz6@I~e z$5YQKS8$Os`0-Nyc&Pa> zPi?G|{8z4AtPlu@NmnUYZ5u|#6v!{ii(<4Z_b3wvgHvrSt#GR=w}f7>AD@8gqY)Cq&&oWFl}-CN^UDRT~rbNyEB>g;p6uXv|xw7{VXN!EU* z6J1&Pa@2nu4&@WaqxZCmu^EZXcALfN=}5X!YZlXiz9gFfpnCg9t_yD0x5fh$!2v^z z$l~EXNJ*koh-X7d!440hh(>G;5oI=UnQ)b*9uLxffhX0}8=71^5!JZw_J|m@eD^OsVV<`Z6#g+FRw3@vhObJfU z$B3S3e(Ma&QXyhD@s@aijbo1dBpH7>G%?W*df;HT_|C&$Oi*wZm*k19ZEu4tD&BGD zAOrlOlCq*Zts=Mu?|Mqkz#OXjj69Q*xhQrPp|HCYvu*$(H~juu7xaqH>V(I5YyCZQ zQ?K97yH9mSpk#9pRZ?+ojAZxvZ|-7Ir=^q))}Qu zZSel#Sdb;mo)t6#W_D0i6!}anRGO5&q$^Xa2CrVxSE>jLcVrlcD=NmHG0@OCR6X2^ zaid5~M0}|q{P^I<#JDo`SR6zd3`Ir7TY>v@N}tn_DCVz$(37Q(r+MS|JHzv5i>biR zAHszuFClTqL76K?fKmD-j=4FqSbxTVE2cVMsBc@U?o$!te> z-iscAW|oA#M^2FmR$x(B(moGKfDOlHR|XMYd)tzHvFu+c(xCA0@Q93RM%JV!1sT+! zn5{M@leUM5;tWwj?r1 zc@+(rwT*7G_VgLzo2CHFbYf6?a$gUTz`qMw;MXKw$1W`w?%2lhvwooGtj0ivx%tCv z?5yXQS9tHdoWWb-_xr^Dal{3`dJn9Z~;n?H1PnuBYia6 zuIGKuwLRmTXzU+>k`~81N*@j5&r{T$Pb%~Z;GBn{1}lRcRd>pil`UD!lr|n1@d?S zzHMz!EvjY*ynKArF>}oUaCNXY;kxbo!_GVvh@L=V1Gh^8Zj=1|378SDqpgpD;{*xe z?-!GbpUBJl`g%AXI4l~1fsCByjGR(H+BgsaJQSv|9(YbhP{kpIQ!eJ-0i!0s~!86f5nU zrzb^33?lnkLr$rl^=GJ7Ev{A^&Aff*XusDth*$0yUZ}sd3tmXxXEM`3=_26*{XIvj zY0QKp7sH}mOHKV<_#PoIUc$*?vC$Lq_AQU^U#_lQum2;6@Emmj0ra`~&f6!*tt_Zn z`C)L@&)2gZz3BxZgiS}3ge5Q6$SU^(I5+C*beq(EU+X+)8F1;&oi)6QcAe*+nas}w z?EE7Cud*Z5U+;h6!vFUK?8-fk@(=(xa&o#|))x%!-ue>)Z>k0F&MJbg{(>*@{(^&0 z1xEfE>$_2{7;5P!9W7=qk`8PxgdM(P6F;JhU8l1CBPJs(?~5ny-z@p zX&>}%WT%SNbzABdK+XD@jK*r>NYa&I+_CzeH;9UbsX8|7jlB) zL*(hz$DprVe(Xr8ySBNx7tpe_ygXTM4P3Y{(z;nTYZEzxrMXWLaf<#GUulgKTf*FU zW@Ne-l|poWJ{9{6U8#vlS#>%()_$H3j`)Ojg3Teqai6a5KxqigczKoMuck3-rzeN* z#9UHvL@2+4QUIZ4sw)o;QMDL>!^6XwU|xT;EhJ=rdSas<5)uOEx0-^&kJY)J&Oypu zxv{MuE<&roqI78d+94K2!sQ4N?A)&pV#d+I?)BRo>pDhb;M&AzXfB{w=G;44v{vj> z3M@e;{T|zmk2r8!rUo{4H-`$for3QBiN!p1nM1lkuszz{A;A7l>h$P7IeCyLWTBAR zz=jyEn1ALLvNBN6I?%ohFtORLV;?XG!Nl3D&*k(!3V!fH_j0ZNN| zhtsnQK4GQ}4UbG{QnU1(dRJ8|&WV-NKf?R^!cy}K5tqC}7nYX9q8Lwk`Vvtk!)!U6 znpF)^{y$pIj@*NdC7 z-Es9)s?H4;1_lPApK7*%C|^99EiyE8b#ZEGFe|`6vm@~nO*~_^<>xW`=0AN=(%Pi5 z)m=_aM*6(M3Br%i-vgC$VR~d3x+VNNb5T`~xpIk~n_%V0d^S7ZD8A#VUC20Bw9(k- zPSAb_U{<#ydfvJoNIUzhG(b)km*49Pw}^M&d2K_`RW%7z`dV^->PNalop+IWpLx_T zn~w_BGobFO1x3^J;s1&o%u1ZC;MH=9^ol3i+!hrHd7@^xriR$ww-?!wS(|plLL>Zi z7K?Y&)r0?QGY2f4YMz)0~UX61W; zjoJN+_SaXk)s1yu)Fs9%&D5T0GZt(#<}E7Wu#>SwKwrTJ?=&JTY;A_<19&buW3OJl zZEU=Pwk!wy-E^gjsm?^2VjReG0{Cw~pm%<3yRdLR_&P4hV-(u-B%EUFKbe_uBmowl zu2{AR6ulni0>Iqte>}@jD&W5=T5Pt3`!lZ0`}^&PiV7lkNkcUWh=|PgMqZ4m*XCv< zS1uBS^Lhk`;+A9)MX8xo2c6xL9wU=ZZQ zG|r$AJzWLImoc_WhkMG~jh)~j&*^mNW5S(cbQ3wNd*eHBZzVPFgKQ{983tJfIXM&p z@_5ZJ9NXf6TC*{yFD>`}#|DM$bJnlNs@>+j?m_PC^P&dk?G~A+MFOF{k@Za?hL%f< zl-X_$xx3z0kE<+3WrZ0xk)zRIVlzH2FY|_c>Zs%M(@A)+)?8?Z*KO2JM@{E^ zi8(iYN+#Xi`5wR~XuFH#Ozgt@Ls&V5(J5yyVp}C{;=<4BEV(=4NhxM`lm#XB_y=|J z)W#D>TQz5{y-uhKO(sgonP=VV49*)cCmds5SV>^Qy{CT+klVog1J{`G zUz9m@FO2S~^#ph-SRSQt0+|n`$C+c|?WD`*Ynx%f5FR-2K`!|2#*G`m{KZg>Kc7yY z2#;tai~d-p6A{^=VQ=9de~?p`nUg%$`SR?}P~KYX!bNva%oqwf6>PGc`>i?D30;Ly z-h1h0$>^`N05KaQ@w(^2OT8x;R(g|S^|l}Ap4bLM{|4+85sD;aC}=*#E@z;isf7b7 zZ%xSLfB?08DvK^YO@qvSf8mjhkHq@q^QIm%gLFKHZxO79hfEv8m6zgFrr&rLUoiPu zo%#IReK61Sm}5e&?3XPr5)2H;p%E!r#IUimV|IJXE<Tf_5K)z{M2#tM7}=toa`87c-b3R)P~!ndwkL|=v>-eN%I=Oaazs!Dd7m801r zzUfxzL10K~XnZUPN!)jVVhmGqS&nXYps#m4#Pf@K5+)9XU0x)0qm-WVhM_Hvav3Ag z;-U81^9+rPbM@Z1la%sTT^J8_VWI;=mBSus?yvQ8+*Jv#`A#-2ZOxwTWDYz;}u7g4i1=!w;$xbbBAubOm>wa|Bn zfzNr-%-V#vkBvF9Y1XN23ARGd!pKf!iJe_bzmf*JWNDJtU~pnaAEQ(A3iIq&m4a)a zcm-%p;Hyq~ozv+acb0lyTaL7cXRQM%m;G&AYpupiC#di-)3kL?w(`Xk^@oAt7O)Op zYM6nzXE9X`%74+7-ofl;C1n^AX72jkM_je%o@QmxzdJ%&OeB?dQNo-f&jd)cQ~K*Q#I$$fWc@#*U~F==UAV^8zm z@95rka{pU&$ zgD>K%sX+J-y6Zl;$34KvTbu91st{GwhvE-pBmjE}Rv8XYO!!kDI@m(zPPbD{p?qPm zKP~hI0UQ4@i=S^BEsd}boETmXtRkYz1o#U{NxCg`;{5!8G?j#eXbUY}V|ZcERV`vJ zisPSX|FmED&}y;&*3G}`{*VeC<%(Hds@DJ;BG&e%UfYzF+lQ#h$pL}mXGofB4+mdD zcHIfb?jUUt7(3BsBZ(NuhA#phGRV;+`BvO^xKH1u0FMHy+VnJQ zCViBArqbHnocY-|a>=w*HA7i@A%0c-(NseBcjnTWBbR>S1>eb~FHN}4{unZ=&*g(w zd-cgyy-&XB+!+E9#bzzxG(R>9ZLWP`7wn((hOn-i+$XrWBqiqk_CX^BteNVPMJB}E z0#Mgu1_ntBc!^s74I7lqmi&zytgg)7&3Qko5RZqs#Z}JCvtw>x&LJabc>TWsCR{E! z*p~{@PLbU`oYvm;*G$3F#LB@-*KVCdU=yEow%UUxa_D!WOl1$V(FmgRx}@fa6rG4YRg&DHyXMhzazf_Z zDra&QPR@kGOSX{0Pn&j`4(A>$NY;X(RFU(H&fkkh%U$)x6YzwFlOQm@jOOq^a#{W3 z!LZ+*A}@uXn~CpdunF}9{uVtQ-Ol=JEAyqMap!vA$E$>t})AETdV?r*}t%q$ob$H*DWsI>hS6z2ah( z$pdHRV=nNTXrXYSKQvyC{bMkz5i>AB^BSxCJQy4;KCWzPO5eAGzULF&i6R!X3;;OG z76R0vIudw*-Owc4fvKR@16HmMzs5e3N~Y~t6`KL{4b0SN(7(^H3m zZIB@YxqXx4Y5zcB9O$#4C+bVes^lmds##&TwX4`;0o?)s!9PPg_yIP(a;5v7P<<3k{pDDmcrCs&ay7Qc03*j20Ssl^U}r)C8Px)jsa_b zU~yt$M(5hF30L4pdRDwF+eHFgwb{e%0{H6RgoU8UNL?T-R9D}jq?ETNZ!#te^?vM6 z4B0TvBV7X`qMInUacqt{su<7DPjkB%8hO*=66?7Q+cDH^#C2M-rHS?<=yC#fo}4pq zp7GDTFi}o1M6|9jli8mf7F1TA>gIhV=CFLSx=YM__16LFf-62*C*#$w|+t7&LxVXoi-nZa0k zg&s5LJ1lg`p#8)C#Ccu9{l9D{PQQyW590DJv3uv1T1|1`0^778;34Ay8AuUm^uufRG_WfTS>XQO}W$m4niFOB-^<+6Z<@JN| zFY{DKH{ZiN>OGLfVhV&gz?uxjjkBtE>H~)~GgIuvyI=P1 z=R}OzCT9=ekfhmUttPy4FEZ(W+d0oIF80)J3HeoYltS$_dBU_W$L)!Xg*;f_Ygj66C}#|-q4H|-Wj>g#Wqs`x=0YN*g@4;b*O@y9});X-ZZ zzUr5u`kxNFa`fb!OZv~QYy#mWd|kTpm?qK7Y-ULj&pt2a`1v~Rn}A5)Wk+n0ic^*C z$SU=i67>#l+XuJNP#2ibfBB8USIdh&0fm>|oc;N4EzSl=;t z&i`=!`uD!%|1IQAl;~#zk+8n*i}jv~8W=UWNFVEfy_4Rp^S4cYbUhu^)t<=-LAuV) z&;1OwnQ_(b+|twEKt=W8`uZSPFD4+@|7?T4fp(*NFy6g^&OK76!FawSiX~GSFg%dW z>^ssy4>Xzm)*0#ZUaCjiU2Cx17E|cyg!jpevMODx6NIyJbItoO`m@+dOG|?&uV9@6 zl@C{Am!@|o{g}Ko$dSxi9}f;&JHad)?yS@3?zrBAI_}C8Nn7}c=$H!3A|q+?(6)f? z>G@@*4TaA^zVAX;Q`t<;#$NYd!9rv9Yl&N9o!3?sHoE*$cz} z8otBKke*V$U8Heo=${ReEP5C}>a4|IaQrf-@1?UA}(f-r*QI-1Wdbr1H;NP&R0xz4Sn=@RFe zIe@5T6pS3$mAju?m~YXmmX>SGmg)+2^3mK_m^4Lx!hpu6n;RdirYW6DIk@nLA1!#S zRf3}YZ2luoWTDLQM+~>r&Yn$kSp|WAYYEGj`qQpdtKkvQHQ3S)Yay$0mxLQ-!6*UK zFjro}q!8DZnWqQY!vEkFm|&+m1ihN$IQg!S>m|!;)fX~2!R`O5(Ll*hg^F4#DP*3Hx`%V z!l=LS;SDrqAmSU27Fx-hiUVWo75Q6exnTTv{pP*h*0VW49DpWOTd>SZK!|_i_QHAh z7&`Q-WqZQuPfaI`00(aLk12PYRdTxmy)XrmTu)E($SSPy-O1j*K*Yn#&oSJnPkz=F{k{ z?X&MVF}2vio z`^b_IJqq)mM>z^}=er80|LtsXu7LD^RC~_@7Z{OmGkLe5^D`rv zU*fd4Kla~lak)bZP(xjAhw^seH$4Fdi3x!@XR5503Q|L0j~_@L;+cS zTZP*E0aHAL6xu%`CaOT853WCCyf(-I_0rH!KLQwEdb;~tkfx@o1!~p7lF#>?1ZXaiaGS9e)s3`lE(Bfzfg>RS(^Nyd@)(Z; z`zZAJ2UwYLxaGhxs)l!u15nvz(k4!_skxcH&o{6;(-+ z_!&Hxq1G?6e2}=B9HBRI_ZTFdc8fK#?g(F&dx9H`{{-`obo=ETR!<(uyEZ10roOV0 zbU#SsSM`?q^G0FI(j!!Fv%ZQ*ZU^5LFtN3?w|AE>ssy$LZNjID7a@Fv!u28e#JReC zD5x{NWgh0nWHpRlvT{7T=i!R%NE)ZgE>T%3MDS~_9e=CG z>j%2Mu$vgvOIWPOuuYzsx!SKfZiBc@QB1N=ip4DTGiA2TZQzp>UU zd!4_;=JB~m90)F%v+v#s5a8pdPiFI3UKBvUlLZ`~d{9+@S5w2U8!x?}fb+4!lLLuxXvc>s+K6F?&Ll$3+x?T`-@+Flh97GAE7t2KYjEQCm) z4vNG)Kb4g3_K&{T#!O3pkCaYBdhx~S3v`>R>B~N9ey~9&t!QHk747zsA*I;o`($)< zr;sNg1mFL~P)VyYGT;!Gh@ZiZ=nSF%(xWL9q9dt?zsh~<{%Q61Xs2u1A}TQ0d%ja3 zvM+OGb&gC42E&c^k3Qb1Z#5h=q23!$l5p*3-0tI|hiK53=}wUi44;n*n7AZ@2r;p! zVi)VJRUQP0m=lXQ@$El(mRhaEkHv{caZ#Rjf~?7_sjKT*ejNau)QA0Fk{>i5_5H#m zvtP~Nl41V2O~~}{F)Ql~S5I$mkb>gzh`17-I4hZuh)8Z>F80~lVlRTsU_6xq1GLow z2spY^faVJAkd2@i7sUrhuFok_)vf4$>zM^BEnc-1Q;jzHlF7U-$W`nN5h3CKbh%{woP!AeISR;N(XuErQHep)cwmvv`#7PvN zJ;UD^emm40;==4i?X-DW85^Fnx1i+21!Z$&ic+4EjA(?>y%%!qIJ z-HESsviAzLwK5wV9K4C<_dSQ~vlG4X3-!u29HMR8x5e_z{DeKbY*xmFLpkU%0AA#eZ0Fw`uR3wOc={{3$v!ZU11K@RCz@;Hn{4TJFTXc`LeF2% z0YQmz{NX)0#p}aKa>H0YNOA4Gl(BBfR~h~6%@6j@9|c{&mN^`LVaqp5!hT}Q>S>3q zUmLbA&$5YKUA#o4`XX_jATc1h>!IT=vV;d~5NznckJDjy;c&&K02&3J$pPZx8=t@a z3SV@*;w!&Ws_1G=r#SCm)XB*e6{*cmhimU;z8PBDavU77GBTzj6W+eP_*66{Llof{ z{o}xOn{!mmpP1EHrG0+O8aYOULmU(so>D)E!daYGGcKoqms9sgfakfGKtbWb$znp| zbwu#z&(o|g^+1>f>gtkGwoY(a((B6(OrYd)iEf+NG*8RYXl>0%K+>rFK3^cr2qD!M zf9>oho`&kcKd<*I2UI-AW(yrF;j4Hg$5-&dK_#?%d%=w7Kb23)p~w{K#HPE)(P*7tUc4*w=oUL<>rbAo_x};arR0 z`Da*fWsLCD`%ff==g3!g5@cbrGktMF$qyc}1>Y|d?dw6Nif80f;u6HPtV)+8@Kywg z?6|Zhi>+u&3tyt{HtSb>K`}=l>km6tMq`={8<$JN_T?m3MaSm~FzGOO`SSGxS`{#` zo1ODZ#kYqQjYx2>xYXL)E2?pQFQGM_bbEGU|JK85b^FmbuBZ2QSzP1e2NCzoTnZo) z?9nc>K5}hW<^DW|E4`uMz5Azw zN{*)2vuu+3@q6n%WtoiI{jPN-OnDng3GNAN}Uhv3iYEBjnV$QeKY|TQFn^+(nK8Do$t@ z?E+R+tt>5pC{RBhl-MGYsp8si>wX;&mdl~3IvtQchyUY zH&s>Yq#J1eK$s6s*bPk^0Dg-NHNf^s3F=dPV6Hl z0KQY8?2G5_%y()uiIdoG?(+h@TfE!f61qK@hSE%x0xBqxXnfjIiZ~#;Aht`3KOO0= ze+mTI`|i@PXnp1@(*q&RKzTE!%Cr72ISGI`zw0;zU|Ni%=QAk zd6D7ZNScoTFho9=OkzqZjiiAGkjUqUbKfghJZi`QZT|k|6p=r>Mj8`wGHeOn3C(@i zkpZHbSf+QT4}r3Ul0IM zi7E5FcU90^ii?xwc1N^}B~cmeAa4_kW~0GI38Pa_IINb;*}*2%L*a9S)4}hNoK?XG zA8jVH-L;!5YlAjFJn!zUa^5<_uqjBR?NOl4-0hZBe5F<7H5RLFYMuD=%#H8$k5AyW zCzRLznBr|pfYZF9Q4l6dH-DX$xRK;cR`Lbk{CTKqd8ma=NchNbj&jm*$1N`IkG-<@ zsck=eugGaEKp}9)RaSJ)Wp69Ec?K+1z+o>mGR$UsKjj>|wLO@v7nVQVM<)cbWm3}U z7q4%KZALodftnJxFEaV8n5H5N5?LjUcy;sl)E)<7tgfL{8Uon1$F{xdge#-T`u)XQ0S z62Onq>U&uq$!g>cOjLL-Z0z9Y-+A+dD~8l*>b;<`=FO~$mRY=eB2kQSHd!V^Kedn8PY>(7kRMI`S3_euD-lL7TfWpKzs4@kKx(Bro}#)FfWF9bApf>- zk6bsPmeo0HC zQPR`W+Mg{SMp&+Yf0a)nG-lMeIM$S&S^qaYJkx_CW zOkqLfJI#|=t*pPc{Q+)1z+H~!GTX0feylh=j5{~S>0p@w+FGDh!4~x%xU>_&@n{I} zyQ-=+NbF#wQP+=nxzU9W-S_`gYFk=2>wFAXkA1rS=iN77)4&S0X^Qu7ccmZ9A6;F~ z?e1zl0?^(0Z$H78Q&aQbmBb+V_;G!Gq8(&PzGF$X@EtWHx-kyM6oj-&VUIM1@}J8*aE;nXZd|sKAXWnkgHIxtaGUD{U()jQZe> zz~&z}H7^-o4)Uzb42^rXOul;2lI_>OerA>WNd9}n)e+??{r;42N&Z##xDU5!w@dRM zhcDF~3QfA!m6G%1l-VB0y|zp`hQe?Y@+sH3W0lp2tkR(odT*{;jGzDjqWA#dWV zb`=dCnZqwJ;e`tZ5}KF_Tpc@}dMi^hQ#~JYp~^pl~lOB z@m%Gm8L`~v+piZPGmwyn#w2>@*EVTB`{-WD zQ?Ys*Ay)ZznuiKEmM5wwc-9X^6_0!4>&t>nxT%641SF=cYPqD*uPiHsFJVd=%#Fgb z4Y(&(w%OCDB6q*ZAC?XfP1KG}@JJjN_BgfFuVgGIv2vptEewp*NvJO``b^_o3#w(% z83|u@VsDtpDam;jcD8V^{NbcIDO0y~Jj8bwTRo$Hq4j_-5ye>Ht^?{f-{%9WBmF7z zWpdWef_*DvADo)K7eFd;}mCEE6vQ~`Rcbvzz zEqUuu+x`+G8hnuz7FYLbZ$lDdNbdRs8_+CN)9YCI8P;=BwYAV(Uoy_IRA3@1%&sv@r>f0RuWuKQXX}A!=($$c{xw# zH7pGEw@R&(AAd1?w`EqMKfH!uw=`5es_rz7QXZ&`k-^4|GFy3G=@n<~5^z{s%36Gy z{fq;xaYb6*gIiOg*5c^PPtQZl!>6kj_SYEdOCmkq=v`=%db?y=l=Hra_u#5v=L zGt&=WU$1Yg8PtwmS=x8#tJ-*Yc96y@RFt%DkcOUEPDdrL$E&Z(J}|tc897&YRUk_% zsyI|uiQjp3$HUt6^&>9vK6IpNSB7TPICsAONZ0qio%Eo=JoPH7t-WOKFKNT@4Yxnr zc#}xVJio-5p*mS)Vvumw*ztw=Rmvy1-&>ekrZe|0Mk2RE{DM349D4eRuDa9H7L#wm z4P|19RHZA~t7wNVICy8U_Gv4UG<%B3KUipeT5Ig3XH2o^b%7!8`Q!xd_}W%$9e;uotkA7R1z6-cXtXo z#-Kc6=~_LLy}c*5^FDaGgxn~sP0xN&Y@#V<^>yc=*-=baCp9&_e8{fMjQhZjm3+I2 z8a?(^M;sT*jT5nAZ7icr%3 zmX#&UX-qd!nYZZ6olvybMzfLBZyjaNhlq+G@Cp@K&{Z6ja9A6bp9aw%ieJl+&8{pl z`O5W^^n1H@>yGZ{gxYHzNy13!yUPBRw@&VV?`{nT72Lcr*P+z**VF|0T+ieZze?|w zlm;})eMJJ4{DJphz0Czx*vCX^a~}^{7@4Fi;Qjo8^Z2PqFh~v|j>J!!M-DI87#Vz7 z!0_^HOyEvp-7(V5<>J^0h!XrH@p}uU^7sk93<TZz?c)6Dj2~x{)8lLaD*>i^^~znQVkPt(cV*hjx6g97dj2*_laSQ#vXM zKV?fXGkLDRPoc^~}f^QkUzV?o=dR-xC7!Hkz<^FEWFX5O0a zqzpZEqLJfYm5 zF<-!w=1zl;RkD_jtE|gd4?}+6DH-AwLZ#LHB)1q^=XL7QS3KOU`hTElQ)UY#Mqi>m zW0#dux_>X;qf>p-S!$st)!GRw%6H7>WK86MW5j6*$H5N8M_5q~OX`aFy-n(7L7Z}W z*<{iCw8acF()4j#mH0I`Q_pOM6`GC3t&E!zV{9FFEdMAf>I~(kwpG1HnkPM{TY)l!1f8- zOt1D$D}xPI=i!gbh~FPA8HJhLwZBg3EblIh^tBh2b1F%=0iNclvt#z;Q3sngS>lK> zh8yNQ35*lvG<$mw3mE%XhWZw|+y96qi85y)Cb%5?N!f*`u>T7K6lujFRYh zfn)31AYMGi&=ql(M|~5A#x#q6CuGTd?Jr(N1+>!9{IB+|JF2Oy+v8Xm;6sWEqachl zm8uw;5`z*9MM0W0X(PQwKnNs+I4HeIMX} zIKqD+lh%w?cIG>Eh;=@s448zqo1LA!+jFUKSd|9m>#mu~9L*xu4Go^kF1R$Itbe;uv6_UD8?B|lRf!D1B9ps(xv+|pG%z4Vn75oB_tmR z(-QACj<_uPK2*MON~&0zhC2hJ>4S>SHVB>_(Gb?!2q1$^gWWGHnS3s`P1z#piETdH zj@LdEd{3Sg{WR1v|8Dobu?KSp|?3AjmgshF&FLYZGR`z>C8h6C3Jo1^Q0#5cmH}$GEy}tj!$nx0EMhH1ly*&hft4Bp0v%d2Q7Q{hos`nX1$kXhihXWgz z_{A-O%#4&8s7VTQlXMwvH>5nA<7e~**$?nzPa!X2FZg;5KKqnLfA^Bm(al95QI>E% zcw*hPt_Sy_8CI4^kFU0ndO;ND+ARzij5OG9O{#uOvp_yCu{JuxJAj(^oU2* zd;77Zt;?LclM5B=XN5$m>wTqC23mPBybhynO=i<(*g8^1kWfLum3eoka08jkJ4T)* z`RgAQ?D>!pJMP+(!6oKdSy~Vj?&B{*+G1S$l}iSTUwp=@V~?3wdEEwUpw1LYc%q?p zCgxe}f~Ia)1ov&n1t21(dfI4kF6V1F$sd;|5A1R>y-?*Y+;-e4A6Czb=Z_Cs02nWqYXRBx7xd?)d?M5lUe^Y^UIA zLn>#7cXVQCX5}OuTdk0mI0yANfTOis|Yi+TOHcWg9lFQH$9tPLxtNO5rTC8IB^rScSif z>npEL_sH*pXG`PdeVUtds%}d+&KbZZi+t~n!=x&o*_Xu2zHe+W7hZ1euk{PiQoqNq z{=MT^O%||o8}A}HSQ&?VFq)^rh9i3NMrCG=rmzXulK{ltsf-Mp!^z!-XPYy;r{~(z z_mC@#mlfUF-dSUpBdzJH^N3P=JR zJ3D=vzf6Huy^2->8pN)VwL>G&&80N2$O;q=Hgq~L>8v)jv(n8D1>ddzFt|&J3}vV~ z?aIXLD2ffe=rBz-A*EBQ@ID(kWjqdKqxjvsX#y~0cZ@7wyT5PFUasAo3<2`97a;`me`n^y@5!j@l3!EzRc z!3_2Dw@Qi9of2M2)TitF(NRP{W--GKZliohCNc1^5ANfZ%(6;wwGdHs-tK8$m;iZx=Na7+S=xcuHnYb1zuJ@man%sL|$%Q!*tvl=8w)(x9%R*fGQa1fL z!5`iyAyJPjikt`0w>8yLwk%fI6peEH{-p1;hFZ=*{2jRKTGC=*=5WL3Y%F#m4KD6Y zRiwrkr2#+h8Qbbxw2`wEU~7~Z60J7xPI=yUqv8c1uS1}dE^D=zGfAbtq4Dc zbrgrS@|yN_aX!Y@$nI>PB(4F}$?k!Mro!{pPbcn6-_mQ+T--$^aY6K=3zYl0#tGx$ zR!>f4m{!C%?@{PgPBfR|{5nKcA84<3dO3>4oiu$7f^V30SNmfr&PJm zwkX5QSiU!NYL3GLzsDN)0STDnwwO*fy{F}5U(O)%5I1BDJ(%7Uvu$ir`{klJ@}1iS z<~hBAo1y+RlBA>;hqvKwT~a_~xT$iG>|5=j%+;ru0hlL#@74B_^bUhcU}|#(Sna(h zd{|u*skEcG?vYqc>uIY%*L|+vdIaYj#gc+SJ7oYbHw&S+#F*`$ow6X z^A(%fr6cr*j=y7dilSY0!GLvc_0`@bMff z?hN8ZWUNAdCD$(HINv-713)CXL!%Eic9tMA0X!Eh(~+%bGHtIs_dXtVP{5u zFs~!H6WP??#7_-2Srq&Hq39UfIiU1p9m zv@G1!#Q^!L*}DCWux2TSk)J|m>}mUYEJRjz;>NnORp!EHucxBGpX`O_94qGDp%zg9&YfK+yq z0fql0jeAIZu~t%2p(~h^nbGJXzkI$@SQx8+IaYNAhNq=hWg#!%uShMmWg0vh9(MGq zN{}nD2S2(0_EI(HJ8$ji$ahaWu5wLERw_6VbQaNvenzRc=ftCdAq30*;E?z7B;Y8( z+q9UO1A(7S@RFr)8w+c(J$8G3BN3;Q12j_Z6H%lR8*KF3L|9uew0^R1$ZSZ}R)-Qo zs;4))9paQm-|#}p6c+d6WDMk}99D7&-g90a+96KHQHG~{WM0cnFo~#5UJaT`ffu=K zv@dY!C#c{nR34hHA!c7r-Q`Kf<>D^y|Ky@*ADk^>q)RduV>U6-O7L3rS}RK--nsi};MEknsPim-l4{GwniXmLsfng(2M3}N@LE_vz*d;$@~)d8TdyPOZYuf@SOT(2A@#^$9|m7|^Fdfbtg6N- zE;dgcPzJ%m({8iLouHf(yYA#*Ka`K^jrqo# zLO?7Y<406*fGbIu7`VCG-?Vx)>n$j5Y4B+GQEK85XK;CP%}^gij9`4N_j|VRT)5c& z*<4h3BG7{s0go=1IX|FRZ8)~pOj19fk^5?3eYq&8PCi=g2F@KY{QNfB-hy`$_)sA8%ENLR0aLba`*gRfCSaD>cf5in8FZdF3ZyZBciz^$2Lv^ivPBFwO3#hC z)uodjOPKDP)@=g4Qjh* zoS8@&Z-O2@n+b_{M-ew$*_(;5cBHyLxb4oP{pZCb;Ka8N4*pwqgHDyA}2x2hhUitq8pyEF))c%pq zzpAMJWz5F^|HR)*pARxlJOY%X_}4?7pliuc|eR!?r2dHb^fk02>=LZIl~X(3%^A!D`%YG@DBblsD5T7Osj+c z<=wmatx9q z41g3i0H-E$gC{r`$;Xm?*7q+ z7F`ciH?fR8tM5eY&yog56C|ZmGL;M6Py7qdl#c&)!qHng(E0x@1k@vX|4k+S=M0tx X8PUhBfGx5IzHy_Xqz=uyYv%JGJ@cD% literal 146672 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

j@~R?Ku8zwyj&=8oX#>BoS0KcATv% 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 D)N>Oi diff --git a/docs/evidence/manifest.json b/docs/evidence/manifest.json index bedea62..1b3c291 100644 --- a/docs/evidence/manifest.json +++ b/docs/evidence/manifest.json @@ -53,11 +53,11 @@ "rendered from normalized real gate transcript", "all commands exited zero" ], - "bytes": 146672, + "bytes": 146227, "height": 1276, "media_type": "image/png", "path": "docs/assets/quality-gate.png", - "sha256": "9c9e04e71175d5d90aaa8ffd242a02611b9f44a20dea3884f0756656a9080985", + "sha256": "0b96bcbaca72adc18d1809d260d5fdd5b2d6c83dc58d34935dd2f489fe2e873d", "width": 1600 }, { @@ -185,7 +185,7 @@ "bytes": 1874, "media_type": "text/plain", "path": "docs/evidence/quality-gate.txt", - "sha256": "aec144f46e7385f6dc217ad9b6ac4ac877bb688cf0fcce7c557b74a3847b98b3" + "sha256": "b5b4d6c218c2130c499f6a4f1311952a208569741eb67a61337f3131698fe967" }, { "assertions": [ @@ -352,7 +352,7 @@ }, { "path": "Makefile", - "sha256": "70f4fe061b50a4548ddd13f47247c2110fff7eccec33252d47dfde69468be2ea" + "sha256": "d6d1c0b532cc82a7a211013aba0821cdd90e9ab2d4b71342af54823a68227e20" }, { "path": "PACKAGE.md", @@ -390,6 +390,10 @@ "path": "scripts/generate_evidence.py", "sha256": "96e00dd2f4e48c6ffb20d7543ef02b687d3f94df2d259bc064d2b6f48ef3c534" }, + { + "path": "scripts/profile_complexity.py", + "sha256": "fcc4c3d050d2cf8f9ef11acf87f0853e80aede3bce9cb0d405596d0a65e70f3e" + }, { "path": "src/password_policy_lab/__init__.py", "sha256": "23cb122fab42f49e6843c7ae6ea7bbcba7d9c0971e8f93e451fb9b6d0dc73efa" @@ -446,6 +450,10 @@ "path": "tests/test_cli.py", "sha256": "12e93f725e570849c588ec631968bf768dbde27121067a88617aef8cbc07ea54" }, + { + "path": "tests/test_complexity_profile.py", + "sha256": "e6b127df936de0c47b6cf697e44d18d6618fb331201b2c02697fc69cacd8f167" + }, { "path": "tests/test_counting.py", "sha256": "5f72e9acf6c22d35317549fd13eaf87a6a864d5ad88c1441bfa50850eefa6718" diff --git a/docs/evidence/quality-gate.txt b/docs/evidence/quality-gate.txt index 99f8a56..ba8952a 100644 --- a/docs/evidence/quality-gate.txt +++ b/docs/evidence/quality-gate.txt @@ -2,15 +2,15 @@ $ python -m ruff check app.py scripts src tests All checks passed! $ python -m ruff format --check app.py scripts src tests -26 files already formatted +28 files already formatted $ MYPYPATH=src python -m mypy --strict app.py scripts src tests -Success: no issues found in 26 source files +Success: no issues found in 28 source files $ PYTHONPATH=src python -m pytest --cov=password_policy_lab --cov-branch --cov-report=term-missing -q -................................................................................................................ [ 42%] -................................................................................................................ [ 84%] -........................................ [100%] +................................................................................................................ [ 41%] +................................................................................................................ [ 82%] +................................................ [100%] ==================================================== tests coverage ==================================================== ___________________________________ coverage: platform linux, python 3.12.3-final-0 ____________________________________ @@ -20,7 +20,7 @@ TOTAL 526 0 130 0 100% 9 files skipped due to complete coverage. Required test coverage of 100.0% reached. Total coverage: 100.00% -264 passed +272 passed $ python scripts/attest_distribution.py distribution attestation: PASS (unofficial) diff --git a/scripts/profile_complexity.py b/scripts/profile_complexity.py new file mode 100644 index 0000000..2429f19 --- /dev/null +++ b/scripts/profile_complexity.py @@ -0,0 +1,496 @@ +#!/usr/bin/env python3 +"""Profile deterministic dynamic-programming work without timing claims. + +The profiler deliberately retains only selected project-function call counts. +Wall-clock and CPU timings collected internally by :mod:`cProfile` are dropped +before a report is built. The report never samples or emits a password. +""" + +from __future__ import annotations + +import argparse +import cProfile +import csv +import io +import json +from collections.abc import Callable, Iterable, Iterator, Sequence +from contextlib import contextmanager +from dataclasses import dataclass +from math import comb, prod +from typing import Any, Literal, cast + +import password_policy_lab.space as space_module +from password_policy_lab.errors import PolicyComplexityError +from password_policy_lab.policy import CharacterClass, PasswordPolicy +from password_policy_lab.profiles import VISIBLE_ASCII_CLASS_SYMBOLS +from password_policy_lab.space import ( + MAX_DP_CELLS, + MAX_DP_TRANSITIONS, + PasswordSpace, +) + +PROFILE_SCHEMA_VERSION = 1 +SCENARIO_SET = "deterministic-dp-work-v1" + +_ALL_VISIBLE_ASCII = "".join(VISIBLE_ASCII_CLASS_SYMBOLS) + + +@dataclass(frozen=True, slots=True) +class ComplexityScenario: + """One fixed, public, candidate-free profiling policy.""" + + identifier: str + length: int + classes: tuple[tuple[str, str, int], ...] + + +@dataclass(slots=True) +class _ProductCounter: + calls: int = 0 + vectors: int = 0 + + +SCENARIOS = ( + ComplexityScenario( + identifier="default-visible-ascii-20", + length=20, + classes=tuple( + (name, symbols, 1) + for name, symbols in zip( + ("lower", "upper", "digits", "punctuation"), + VISIBLE_ASCII_CLASS_SYMBOLS, + strict=True, + ) + ), + ), + ComplexityScenario( + identifier="balanced-visible-ascii-24", + length=24, + classes=tuple( + (name, symbols, 6) + for name, symbols in zip( + ("lower", "upper", "digits", "punctuation"), + VISIBLE_ASCII_CLASS_SYMBOLS, + strict=True, + ) + ), + ), + ComplexityScenario( + identifier="skewed-visible-ascii-24", + length=24, + classes=tuple( + (name, symbols, minimum) + for name, symbols, minimum in zip( + ("lower", "upper", "digits", "punctuation"), + VISIBLE_ASCII_CLASS_SYMBOLS, + (21, 1, 1, 1), + strict=True, + ) + ), + ), + ComplexityScenario( + identifier="near-budget-eight-class-32", + length=32, + classes=tuple( + (f"class-{index}", symbol, 2) + for index, symbol in enumerate(_ALL_VISIBLE_ASCII[:8]) + ), + ), + ComplexityScenario( + identifier="arbitrary-precision-one-class-256", + length=256, + classes=(("visible-ascii", _ALL_VISIBLE_ASCII, 256),), + ), + ComplexityScenario( + identifier="rejected-eight-class-32", + length=32, + classes=tuple( + (f"class-{index}", symbol, 3) + for index, symbol in enumerate(_ALL_VISIBLE_ASCII[:8]) + ), + ), +) + +_CSV_COLUMNS = ( + "case_id", + "outcome", + "length", + "class_count", + "class_minima", + "state_vectors_upper_bound_per_layer", + "dp_cells_upper_bound", + "observed_occupied_cells", + "dp_transitions_upper_bound", + "observed_transitions", + "peak_count_bits", +) + + +def _policy(scenario: ComplexityScenario) -> PasswordPolicy: + return PasswordPolicy( + length=scenario.length, + classes=tuple( + CharacterClass(name, symbols, minimum) + for name, symbols, minimum in scenario.classes + ), + ) + + +def _bounds(policy: PasswordPolicy) -> dict[str, int]: + vectors = prod(minimum + 1 for minimum in policy.minima) + cells = (policy.length + 1) * vectors + return { + "state_vectors_upper_bound_per_layer": vectors, + "dp_cells_upper_bound": cells, + "dp_transitions_upper_bound": len(policy.classes) * cells, + "dp_cells_budget": MAX_DP_CELLS, + "dp_transitions_budget": MAX_DP_TRANSITIONS, + } + + +def _layer_occupancy_oracle(length: int, minima: tuple[int, ...]) -> tuple[int, ...]: + """Count bounded deficit vectors by an independent polynomial convolution.""" + + coefficients = [1] + for minimum in minima: + updated = [0] * (len(coefficients) + minimum) + for subtotal, coefficient in enumerate(coefficients): + for deficit in range(minimum + 1): + updated[subtotal + deficit] += coefficient + coefficients = updated + + return tuple( + sum(coefficients[: min(remaining, len(coefficients) - 1) + 1]) + for remaining in range(length + 1) + ) + + +def _state_space_oracle( + length: int, + class_widths: tuple[int, ...], + minima: tuple[int, ...], +) -> int: + """Count strings by interleaving class populations, not deficit-state DP.""" + + ways = [0] * (length + 1) + ways[0] = 1 + for width, minimum in zip(class_widths, minima, strict=True): + updated = [0] * (length + 1) + for used, existing in enumerate(ways): + if existing == 0: + continue + for amount in range(minimum, length - used + 1): + combined = used + amount + updated[combined] += existing * comb(combined, amount) * width**amount + ways = updated + return ways[length] + + +def _profiled_calls( + profiler: cProfile.Profile, + function: Callable[..., object], +) -> dict[str, int]: + code = function.__code__ + for raw_entry in cast(list[Any], profiler.getstats()): + if raw_entry.code is code: + total = int(raw_entry.callcount) + recursive = int(raw_entry.reccallcount) + return { + "primitive_calls": total - recursive, + "total_calls": total, + } + return {"primitive_calls": 0, "total_calls": 0} + + +@contextmanager +def _count_product_vectors(counter: _ProductCounter) -> Iterator[None]: + """Wrap the production iterator while preserving its exact yielded values.""" + + module = cast(Any, space_module) + original = cast(Callable[..., Iterator[tuple[int, ...]]], module.product) + + def counted_product(*iterables: Iterable[int]) -> Iterator[tuple[int, ...]]: + counter.calls += 1 + for vector in original(*iterables): + counter.vectors += 1 + yield vector + + module.product = counted_product + try: + yield + finally: + module.product = original + + +def profile_scenario(scenario: ComplexityScenario) -> dict[str, object]: + """Profile one construction and cross-check every retained work counter.""" + + if type(scenario) is not ComplexityScenario: + raise TypeError("scenario must be a ComplexityScenario") + + policy = _policy(scenario) + bounds = _bounds(policy) + expected_rejection = ( + bounds["dp_cells_upper_bound"] > MAX_DP_CELLS + or bounds["dp_transitions_upper_bound"] > MAX_DP_TRANSITIONS + ) + profiler = cProfile.Profile() + product_counter = _ProductCounter() + space: PasswordSpace | None = None + rejected = False + with _count_product_vectors(product_counter): + profiler.enable() + try: + space = PasswordSpace(policy) + except PolicyComplexityError: + rejected = True + finally: + profiler.disable() + + build_calls = _profiled_calls(profiler, PasswordSpace._build_layers) + consume_calls = _profiled_calls(profiler, space_module._consume) + common: dict[str, object] = { + "case_id": scenario.identifier, + "policy": { + "length": policy.length, + "class_count": len(policy.classes), + "class_widths": [len(item.symbols) for item in policy.classes], + "class_minima": list(policy.minima), + }, + "bounds": bounds, + "profiled_calls": { + "build_layers": build_calls, + "consume": consume_calls, + }, + "work_counters": { + "product_calls": product_counter.calls, + "product_vectors": product_counter.vectors, + "consume_calls": consume_calls["total_calls"], + }, + } + + if rejected: + if not expected_rejection: + raise RuntimeError("profiled policy was rejected below the declared budget") + if build_calls != { + "primitive_calls": 0, + "total_calls": 0, + } or consume_calls != { + "primitive_calls": 0, + "total_calls": 0, + }: + raise RuntimeError( + "rejected policy entered dynamic-programming enumeration" + ) + if product_counter != _ProductCounter(): + raise RuntimeError("rejected policy entered deficit-vector enumeration") + return { + **common, + "outcome": "rejected-before-enumeration", + "rejection": "dynamic-programming-complexity-budget", + } + + if expected_rejection or space is None: + raise RuntimeError("profiled policy did not enforce the declared budget") + + layers = cast(tuple[dict[tuple[int, ...], int], ...], cast(Any, space)._layers) + layer_occupancy = tuple(len(layer) for layer in layers) + oracle_occupancy = _layer_occupancy_oracle(policy.length, policy.minima) + occupied_cells = sum(layer_occupancy) + expected_product_calls = policy.length + expected_product_vectors = ( + policy.length * bounds["state_vectors_upper_bound_per_layer"] + ) + expected_transitions = len(policy.classes) * (occupied_cells - 1) + widths = tuple(len(item.symbols) for item in policy.classes) + oracle_total = _state_space_oracle(policy.length, widths, policy.minima) + peak_count_bits = max( + value.bit_length() for layer in layers for value in layer.values() + ) + + if layer_occupancy != oracle_occupancy: + raise RuntimeError("profiled layer occupancy disagrees with the oracle") + if product_counter.calls != expected_product_calls: + raise RuntimeError("profiled product calls disagree with the loop contract") + if product_counter.vectors != expected_product_vectors: + raise RuntimeError("profiled product vectors disagree with the oracle") + if consume_calls != { + "primitive_calls": expected_transitions, + "total_calls": expected_transitions, + }: + raise RuntimeError("profiled transition calls disagree with the oracle") + if build_calls != {"primitive_calls": 1, "total_calls": 1}: + raise RuntimeError( + "profiled construction did not build exactly one layer stack" + ) + if space.total != oracle_total: + raise RuntimeError("profiled exact count disagrees with the class-count oracle") + + return { + **common, + "outcome": "accepted", + "observed": { + "layer_occupancy": list(layer_occupancy), + "occupied_cells": occupied_cells, + "transitions": expected_transitions, + "peak_count_bits": peak_count_bits, + "valid_state_space": str(space.total), + }, + "independent_oracles": { + "occupied_cells": sum(oracle_occupancy), + "transitions": expected_transitions, + "valid_state_space": str(oracle_total), + }, + } + + +def build_profile() -> dict[str, object]: + """Run the complete fixed scenario set and return a stable report.""" + + return { + "schema_version": PROFILE_SCHEMA_VERSION, + "scenario_set": SCENARIO_SET, + "counter_contract": "logical-dp-operations-v1", + "profiler": { + "engine": "cProfile", + "selected_project_functions": [ + "PasswordSpace._build_layers", + "_consume", + ], + "retained_fields": ["primitive_calls", "total_calls"], + "timing_fields_retained": False, + }, + "claim_boundaries": { + "candidate_output_included": False, + "entropy_consumed": False, + "hardware_performance_claimed": False, + "memory_usage_claimed": False, + "wall_clock_timing_included": False, + }, + "cases": [profile_scenario(scenario) for scenario in SCENARIOS], + } + + +def profile_json(report: dict[str, object]) -> str: + """Serialize a canonical human-readable JSON receipt.""" + + return json.dumps(report, ensure_ascii=True, indent=2, sort_keys=True) + "\n" + + +def _accepted_observation(case: dict[str, object]) -> dict[str, object] | None: + value = case.get("observed") + if value is None: + return None + return cast(dict[str, object], value) + + +def profile_csv(report: dict[str, object]) -> str: + """Serialize one deterministic summary row per scenario.""" + + output = io.StringIO(newline="") + writer = csv.DictWriter(output, fieldnames=_CSV_COLUMNS, lineterminator="\n") + writer.writeheader() + for raw_case in cast(list[dict[str, object]], report["cases"]): + policy = cast(dict[str, object], raw_case["policy"]) + bounds = cast(dict[str, object], raw_case["bounds"]) + observed = _accepted_observation(raw_case) + writer.writerow( + { + "case_id": raw_case["case_id"], + "outcome": raw_case["outcome"], + "length": policy["length"], + "class_count": policy["class_count"], + "class_minima": ";".join( + str(value) for value in cast(list[int], policy["class_minima"]) + ), + "state_vectors_upper_bound_per_layer": bounds[ + "state_vectors_upper_bound_per_layer" + ], + "dp_cells_upper_bound": bounds["dp_cells_upper_bound"], + "observed_occupied_cells": ( + observed["occupied_cells"] if observed is not None else 0 + ), + "dp_transitions_upper_bound": bounds["dp_transitions_upper_bound"], + "observed_transitions": ( + observed["transitions"] if observed is not None else 0 + ), + "peak_count_bits": ( + observed["peak_count_bits"] if observed is not None else 0 + ), + } + ) + return output.getvalue() + + +def profile_text(report: dict[str, object]) -> str: + """Render a concise transcript without candidate or timing data.""" + + lines = [ + "Password Policy State-Space Lab — deterministic DP work profile", + f"schema_version: {PROFILE_SCHEMA_VERSION}", + f"scenario_set: {SCENARIO_SET}", + "profiler: cProfile selected project call counts; timing discarded", + "", + ] + for raw_case in cast(list[dict[str, object]], report["cases"]): + bounds = cast(dict[str, object], raw_case["bounds"]) + observed = _accepted_observation(raw_case) + if observed is None: + lines.append( + f"{raw_case['case_id']}: rejected before enumeration · " + f"cells bound {bounds['dp_cells_upper_bound']} · " + f"transitions bound {bounds['dp_transitions_upper_bound']} · " + "build calls 0 · consume calls 0" + ) + else: + lines.append( + f"{raw_case['case_id']}: accepted · " + f"cells {observed['occupied_cells']}/" + f"{bounds['dp_cells_upper_bound']} · " + f"transitions {observed['transitions']}/" + f"{bounds['dp_transitions_upper_bound']} · " + f"peak integer {observed['peak_count_bits']} bits" + ) + lines.extend( + ( + "", + ( + "Scope: deterministic work counts only; no elapsed-time, RSS, " + "hardware, or speed claim." + ), + ( + "Safety: no entropy consumed and no password candidate " + "constructed or emitted." + ), + "", + ) + ) + return "\n".join(lines) + + +def main(argv: Sequence[str] | None = None) -> int: + """Run the fixed profile and write exactly one selected representation.""" + + parser = argparse.ArgumentParser( + description="Profile deterministic PasswordSpace construction work.", + allow_abbrev=False, + ) + parser.add_argument( + "--format", + choices=("json", "csv", "text"), + default="json", + ) + arguments = parser.parse_args(argv) + report = build_profile() + output_format = cast(Literal["json", "csv", "text"], arguments.format) + rendered = { + "json": profile_json, + "csv": profile_csv, + "text": profile_text, + }[output_format](report) + print(rendered, end="") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/test_complexity_profile.py b/tests/test_complexity_profile.py new file mode 100644 index 0000000..e15aa5f --- /dev/null +++ b/tests/test_complexity_profile.py @@ -0,0 +1,195 @@ +from __future__ import annotations + +import importlib.util +import json +import secrets +import sys +from itertools import product +from pathlib import Path +from types import ModuleType +from typing import Any, cast + +import pytest + +import password_policy_lab.space as space_module +from password_policy_lab import CharacterClass, PasswordPolicy, PasswordSpace + + +def _load_profiler() -> ModuleType: + path = Path(__file__).resolve().parents[1] / "scripts/profile_complexity.py" + spec = importlib.util.spec_from_file_location("complexity_profile_for_tests", path) + if spec is None or spec.loader is None: + raise RuntimeError("could not load the complexity profiler") + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + spec.loader.exec_module(module) + return module + + +profiler = cast(Any, _load_profiler()) + + +def _cases(report: dict[str, object]) -> dict[str, dict[str, object]]: + return { + cast(str, item["case_id"]): item + for item in cast(list[dict[str, object]], report["cases"]) + } + + +def test_profile_records_exact_sparse_work_and_fail_fast_boundary() -> None: + report = cast(dict[str, object], profiler.build_profile()) + cases = _cases(report) + + assert list(cases) == [scenario.identifier for scenario in profiler.SCENARIOS] + expected = { + "default-visible-ascii-20": (304, 336, 1_212), + "balanced-visible-ascii-24": (31_213, 60_025, 124_848), + "skewed-visible-ascii-24": (2_288, 4_400, 9_148), + "near-budget-eight-class-32": (164_025, 216_513, 1_312_192), + "arbitrary-precision-one-class-256": (33_153, 66_049, 33_152), + } + for identifier, (cells, upper_bound, transitions) in expected.items(): + case = cases[identifier] + observed = cast(dict[str, object], case["observed"]) + bounds = cast(dict[str, object], case["bounds"]) + calls = cast(dict[str, dict[str, int]], case["profiled_calls"]) + work = cast(dict[str, int], case["work_counters"]) + oracles = cast(dict[str, object], case["independent_oracles"]) + assert case["outcome"] == "accepted" + assert observed["occupied_cells"] == cells + assert bounds["dp_cells_upper_bound"] == upper_bound + assert observed["transitions"] == transitions + assert calls["build_layers"] == { + "primitive_calls": 1, + "total_calls": 1, + } + assert calls["consume"] == { + "primitive_calls": transitions, + "total_calls": transitions, + } + assert work == { + "product_calls": cast( + int, cast(dict[str, object], case["policy"])["length"] + ), + "product_vectors": cast( + int, cast(dict[str, object], case["policy"])["length"] + ) + * cast(int, bounds["state_vectors_upper_bound_per_layer"]), + "consume_calls": transitions, + } + assert oracles["occupied_cells"] == cells + assert oracles["transitions"] == transitions + assert oracles["valid_state_space"] == observed["valid_state_space"] + + arbitrary = cast( + dict[str, object], cases["arbitrary-precision-one-class-256"]["observed"] + ) + assert arbitrary["peak_count_bits"] == (94**256).bit_length() + + rejected = cases["rejected-eight-class-32"] + rejected_bounds = cast(dict[str, object], rejected["bounds"]) + assert rejected["outcome"] == "rejected-before-enumeration" + assert rejected["rejection"] == "dynamic-programming-complexity-budget" + assert rejected_bounds["dp_cells_upper_bound"] == 2_162_688 + assert rejected_bounds["dp_transitions_upper_bound"] == 17_301_504 + assert rejected["profiled_calls"] == { + "build_layers": {"primitive_calls": 0, "total_calls": 0}, + "consume": {"primitive_calls": 0, "total_calls": 0}, + } + assert rejected["work_counters"] == { + "product_calls": 0, + "product_vectors": 0, + "consume_calls": 0, + } + + +def test_independent_oracles_match_a_small_exhaustive_space() -> None: + policy = PasswordPolicy( + 4, + ( + CharacterClass("letters", "ab", 2), + CharacterClass("digits", "01", 1), + ), + ) + exhaustive = sum( + all( + sum(symbol in character_class.symbols for symbol in candidate) + >= character_class.minimum + for character_class in policy.classes + ) + for candidate in product(policy.alphabet, repeat=policy.length) + ) + oracle = profiler._state_space_oracle( + policy.length, + tuple(len(item.symbols) for item in policy.classes), + policy.minima, + ) + occupancy = profiler._layer_occupancy_oracle(policy.length, policy.minima) + space = PasswordSpace(policy) + + assert oracle == exhaustive == space.total + assert occupancy == tuple(len(layer) for layer in space._layers) + + +def test_rejected_profile_never_enters_product_or_consume( + monkeypatch: pytest.MonkeyPatch, +) -> None: + rejected = profiler.SCENARIOS[-1] + + def fail(*values: object) -> None: + raise AssertionError(f"enumeration must not start: {len(values)}") + + monkeypatch.setattr(space_module, "product", fail) + monkeypatch.setattr(space_module, "_consume", fail) + + case = profiler.profile_scenario(rejected) + + assert case["outcome"] == "rejected-before-enumeration" + + +def test_profile_never_consumes_entropy(monkeypatch: pytest.MonkeyPatch) -> None: + def fail_entropy(upper_bound: int) -> int: + raise AssertionError(f"entropy must not be consumed: {upper_bound}") + + monkeypatch.setattr(secrets, "randbelow", fail_entropy) + + report = profiler.build_profile() + + assert ( + cast(dict[str, object], report["claim_boundaries"])["entropy_consumed"] is False + ) + + +def test_serializations_are_canonical_stable_and_candidate_free() -> None: + report = profiler.build_profile() + first_json = profiler.profile_json(report) + second_json = profiler.profile_json(profiler.build_profile()) + csv_text = profiler.profile_csv(report) + text = profiler.profile_text(report) + + assert first_json == second_json + assert first_json == ( + json.dumps(json.loads(first_json), ensure_ascii=True, indent=2, sort_keys=True) + + "\n" + ) + assert csv_text.splitlines()[0] == ",".join(profiler._CSV_COLUMNS) + assert len(csv_text.splitlines()) == len(profiler.SCENARIOS) + 1 + assert "timing discarded" in text + assert "no elapsed-time, RSS, hardware, or speed claim" in text + assert "no password candidate constructed or emitted" in text + combined = first_json + csv_text + text + assert "/home/" not in combined + assert "generated_password" not in combined + assert 'wall_clock_timing_included": true' not in combined + + +@pytest.mark.parametrize("output_format", ("json", "csv", "text")) +def test_cli_emits_exact_selected_representation( + output_format: str, + capsys: pytest.CaptureFixture[str], +) -> None: + assert profiler.main(["--format", output_format]) == 0 + captured = capsys.readouterr() + assert captured.err == "" + assert captured.out + assert captured.out.endswith("\n") From 09b346c94f25bf37be42da3ced6514892d36fdc6 Mon Sep 17 00:00:00 2001 From: Omar Ibrahim <31526072+omar07ibrahim@users.noreply.github.com> Date: Sun, 2 Aug 2026 00:41:32 +0000 Subject: [PATCH 2/2] Publish differential DP complexity evidence --- README.md | 38 ++ docs/assets/dp-complexity-cli.png | Bin 0 -> 104431 bytes docs/assets/dp-layer-occupancy.svg | 108 ++++ docs/assets/dp-work-counts.svg | 91 +++ docs/assets/quality-gate.png | Bin 146227 -> 146498 bytes docs/evidence/dp-complexity-profile.json | 715 +++++++++++++++++++++++ docs/evidence/dp-complexity-profile.txt | 15 + docs/evidence/manifest.json | 103 +++- docs/evidence/quality-gate.txt | 12 +- scripts/check_evidence.py | 617 ++++++++++++++++++- scripts/evidence_rendering.py | 659 ++++++++++++++++++++- scripts/generate_evidence.py | 109 +++- scripts/profile_complexity.py | 16 +- tests/test_complexity_profile.py | 12 +- tests/test_complexity_rendering.py | 237 ++++++++ tests/test_evidence.py | 181 +++++- tests/test_evidence_generation.py | 50 ++ 17 files changed, 2922 insertions(+), 41 deletions(-) create mode 100644 docs/assets/dp-complexity-cli.png create mode 100644 docs/assets/dp-layer-occupancy.svg create mode 100644 docs/assets/dp-work-counts.svg create mode 100644 docs/evidence/dp-complexity-profile.json create mode 100644 docs/evidence/dp-complexity-profile.txt create mode 100644 tests/test_complexity_rendering.py create mode 100644 tests/test_evidence_generation.py diff --git a/README.md b/README.md index d5c0914..efa67b0 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,44 @@ policy-satisfying share on an honest 0–100% scale. Counts and entropy describe uniform draw from this state space; they are not a password-strength score or an authentication guarantee. +## Differential dynamic-programming work evidence + +![Exact logical work counters for six fixed policy scenarios](docs/assets/dp-work-counts.svg) + +The profiler constructs the real `PasswordSpace` under six fixed public +policies and retains only deterministic logical counters. A context-managed +iterator wrapper counts every deficit vector yielded to the production loop; +`cProfile` independently records exact `_build_layers` and `_consume` call +counts. Separate polynomial-convolution and class-population oracles must agree +with layer occupancy and the final arbitrary-precision state-space total. + +The controlled comparison keeps length `24`, the same four class widths, and +the same total minimum `24`: balanced minima `(6, 6, 6, 6)` materialize +`31,213` cells and perform `124,848` transitions, while skewed minima +`(21, 1, 1, 1)` materialize `2,288` cells and perform `9,148` transitions. +This isolates the shape of the deficit state space instead of presenting a +wall-clock benchmark. + +![Observed layer occupancy for five accepted policies and one explicit rejection boundary](docs/assets/dp-layer-occupancy.svg) + +The near-budget eight-class case is accepted at `164,025 / 216,513` cells and +`1,312,192 / 1,732,104` transitions. Raising every minimum from `2` to `3` +pushes the conservative bounds to `2,162,688` cells and `17,301,504` +transitions; profiling observes zero product, layer-build, and consume calls +because rejection happens before enumeration. The maximum-length one-class +case remains accepted and reaches a `1,678`-bit count. That bit length describes +integer arithmetic magnitude, not allocated memory. + +![Real deterministic complexity profiler output](docs/assets/dp-complexity-cli.png) + +Run the concise profile with `make complexity-profile`. The complete +[canonical JSON receipt](docs/evidence/dp-complexity-profile.json) retains every +accepted layer, while the +[real command transcript](docs/evidence/dp-complexity-profile.txt) stays short +enough to review. The evidence makes no elapsed-time, throughput, RSS, +allocation, CPU, hardware, password-strength, or cross-machine performance +claim. It consumes no entropy and constructs or emits no password candidate. + ## Deterministic audit CLI The inspection commands never sample a password. They emit exact decimal diff --git a/docs/assets/dp-complexity-cli.png b/docs/assets/dp-complexity-cli.png new file mode 100644 index 0000000000000000000000000000000000000000..69f9e0c0799d7c730a3461a3a132a82c551b1977 GIT binary patch literal 104431 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

", normalized) if _ABSOLUTE_PATH.search(normalized): raise RuntimeError("quality output contains an absolute machine path") return normalized.rstrip() + "\n" @@ -1113,6 +1176,18 @@ def _artifact_assertions() -> dict[str, list[str]]: "rendered from measured distribution hashes and member counts", "claim boundaries remain explicit", ], + "docs/assets/dp-complexity-cli.png": [ + "deterministic profiler output with selected cProfile call counts", + "timing, hardware, memory, entropy, and candidate output absent", + ], + "docs/assets/dp-layer-occupancy.svg": [ + "rendered from every observed accepted DP layer", + "rejected policy has no invented occupancy curve", + ], + "docs/assets/dp-work-counts.svg": [ + "exact product-vector, materialized-cell, and transition counts", + "balanced and skewed policies are directly comparable", + ], "docs/assets/quality-gate.png": [ "rendered from normalized real gate transcript", "all commands exited zero", @@ -1159,6 +1234,14 @@ def _artifact_assertions() -> dict[str, list[str]]: "real normalized attestation output", "no password sampled", ], + "docs/evidence/dp-complexity-profile.json": [ + "canonical report from six real instrumented constructions", + "independent occupancy and exact-count oracles agree", + ], + "docs/evidence/dp-complexity-profile.txt": [ + "real concise profiler command output", + "no timing, hardware, memory, entropy, or candidate claim", + ], "docs/evidence/quality-gate.txt": [ "real normalized command output", "timing and absolute path absent", @@ -1232,7 +1315,9 @@ def _manifest( capture: _CaptureResult, architecture_verified: bool, sampling_verified: bool, + complexity_report: dict[str, object], ) -> dict[str, object]: + complexity_cases = cast(list[dict[str, object]], complexity_report["cases"]) return { "artifacts": _artifact_manifest(), "capture": { @@ -1251,6 +1336,21 @@ def _manifest( "architecture_ast_verified": architecture_verified, "sampling_ast_verified": sampling_verified, }, + "dp_complexity_profile": { + "accepted_scenarios": sum( + case["outcome"] == "accepted" for case in complexity_cases + ), + "contains_candidate": False, + "counter_contract": complexity_report["counter_contract"], + "json_source_command": PROFILE_JSON_COMMAND, + "rejected_before_enumeration": sum( + case["outcome"] == "rejected-before-enumeration" + for case in complexity_cases + ), + "report_schema_version": complexity_report["schema_version"], + "scenario_ids": [case["case_id"] for case in complexity_cases], + "text_source_command": PROFILE_TEXT_COMMAND, + }, "quality_gate": { "all_passed": True, "commands": list(QUALITY_COMMANDS), @@ -1270,7 +1370,7 @@ def _manifest( }, "generator": "scripts/generate_evidence.py", "runtime": _runtime_manifest(capture.chromium), - "schema_version": 1, + "schema_version": 2, "source_files": _source_manifest(), } @@ -1317,6 +1417,7 @@ def main() -> int: write_sampling_svg(ASSET_DIR / "uniform-sampling-flow.svg") write_setup_svg(ASSET_DIR / "setup-workflow.svg") _write_distribution_evidence() + complexity_report = _write_complexity_evidence() sweep_rows = _write_cli_evidence() _render_sweep_chart(sweep_rows) @@ -1328,6 +1429,7 @@ def main() -> int: capture=capture, architecture_verified=architecture_verified, sampling_verified=sampling_verified, + complexity_report=complexity_report, ) ) @@ -1339,6 +1441,7 @@ def main() -> int: capture=capture, architecture_verified=architecture_verified, sampling_verified=sampling_verified, + complexity_report=complexity_report, ) ) second_gate = _run_quality_gate() diff --git a/scripts/profile_complexity.py b/scripts/profile_complexity.py index 2429f19..61410d0 100644 --- a/scripts/profile_complexity.py +++ b/scripts/profile_complexity.py @@ -297,11 +297,13 @@ def profile_scenario(scenario: ComplexityScenario) -> dict[str, object]: layer_occupancy = tuple(len(layer) for layer in layers) oracle_occupancy = _layer_occupancy_oracle(policy.length, policy.minima) occupied_cells = sum(layer_occupancy) + oracle_occupied_cells = sum(oracle_occupancy) expected_product_calls = policy.length expected_product_vectors = ( policy.length * bounds["state_vectors_upper_bound_per_layer"] ) - expected_transitions = len(policy.classes) * (occupied_cells - 1) + observed_transitions = consume_calls["primitive_calls"] + oracle_transitions = len(policy.classes) * (oracle_occupied_cells - 1) widths = tuple(len(item.symbols) for item in policy.classes) oracle_total = _state_space_oracle(policy.length, widths, policy.minima) peak_count_bits = max( @@ -315,8 +317,8 @@ def profile_scenario(scenario: ComplexityScenario) -> dict[str, object]: if product_counter.vectors != expected_product_vectors: raise RuntimeError("profiled product vectors disagree with the oracle") if consume_calls != { - "primitive_calls": expected_transitions, - "total_calls": expected_transitions, + "primitive_calls": oracle_transitions, + "total_calls": oracle_transitions, }: raise RuntimeError("profiled transition calls disagree with the oracle") if build_calls != {"primitive_calls": 1, "total_calls": 1}: @@ -332,13 +334,13 @@ def profile_scenario(scenario: ComplexityScenario) -> dict[str, object]: "observed": { "layer_occupancy": list(layer_occupancy), "occupied_cells": occupied_cells, - "transitions": expected_transitions, + "transitions": observed_transitions, "peak_count_bits": peak_count_bits, "valid_state_space": str(space.total), }, "independent_oracles": { - "occupied_cells": sum(oracle_occupancy), - "transitions": expected_transitions, + "occupied_cells": oracle_occupied_cells, + "transitions": oracle_transitions, "valid_state_space": str(oracle_total), }, } @@ -426,7 +428,7 @@ def profile_text(report: dict[str, object]) -> str: """Render a concise transcript without candidate or timing data.""" lines = [ - "Password Policy State-Space Lab — deterministic DP work profile", + "Password Policy State-Space Lab - deterministic DP work profile", f"schema_version: {PROFILE_SCHEMA_VERSION}", f"scenario_set: {SCENARIO_SET}", "profiler: cProfile selected project call counts; timing discarded", diff --git a/tests/test_complexity_profile.py b/tests/test_complexity_profile.py index e15aa5f..89308a4 100644 --- a/tests/test_complexity_profile.py +++ b/tests/test_complexity_profile.py @@ -147,11 +147,20 @@ def fail(*values: object) -> None: assert case["outcome"] == "rejected-before-enumeration" -def test_profile_never_consumes_entropy(monkeypatch: pytest.MonkeyPatch) -> None: +def test_profile_never_uses_candidate_or_entropy_paths( + monkeypatch: pytest.MonkeyPatch, +) -> None: def fail_entropy(upper_bound: int) -> int: raise AssertionError(f"entropy must not be consumed: {upper_bound}") + def fail_candidate(*values: object, **named: object) -> None: + raise AssertionError( + f"candidate path must not run: {len(values)} positional, {len(named)} named" + ) + monkeypatch.setattr(secrets, "randbelow", fail_entropy) + for method in ("rank", "unrank", "sample_uniform"): + monkeypatch.setattr(PasswordSpace, method, fail_candidate) report = profiler.build_profile() @@ -177,6 +186,7 @@ def test_serializations_are_canonical_stable_and_candidate_free() -> None: assert "timing discarded" in text assert "no elapsed-time, RSS, hardware, or speed claim" in text assert "no password candidate constructed or emitted" in text + assert "\N{EM DASH}" not in text combined = first_json + csv_text + text assert "/home/" not in combined assert "generated_password" not in combined diff --git a/tests/test_complexity_rendering.py b/tests/test_complexity_rendering.py new file mode 100644 index 0000000..b50f5b1 --- /dev/null +++ b/tests/test_complexity_rendering.py @@ -0,0 +1,237 @@ +from __future__ import annotations + +import copy +import importlib.util +import sys +import xml.etree.ElementTree as ElementTree +from pathlib import Path +from types import ModuleType +from typing import Any, cast + +import pytest + + +def _load_script(name: str) -> ModuleType: + path = Path(__file__).resolve().parents[1] / "scripts" / f"{name}.py" + spec = importlib.util.spec_from_file_location(f"{name}_for_render_tests", path) + if spec is None or spec.loader is None: + raise RuntimeError(f"could not load {name}") + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + spec.loader.exec_module(module) + return module + + +rendering = cast(Any, _load_script("evidence_rendering")) +profiler = cast(Any, _load_script("profile_complexity")) + + +def _svg(path: Path) -> tuple[ElementTree.Element, str]: + text = path.read_text(encoding="utf-8") + root = ElementTree.fromstring(text) + return root, text + + +def _local_name(element: ElementTree.Element) -> str: + return element.tag.rsplit("}", 1)[-1] + + +def _assert_accessible_local_svg( + root: ElementTree.Element, + *, + width: int, + height: int, +) -> None: + assert _local_name(root) == "svg" + assert root.attrib["width"] == str(width) + assert root.attrib["height"] == str(height) + assert root.attrib["viewBox"] == f"0 0 {width} {height}" + assert root.attrib["role"] == "img" + assert root.attrib["aria-labelledby"] == "title description" + assert sum(_local_name(item) == "title" for item in root) == 1 + assert sum(_local_name(item) == "desc" for item in root) == 1 + assert all( + _local_name(item).lower() not in {"foreignobject", "script"} + for item in root.iter() + ) + for item in root.iter(): + for key, value in item.attrib.items(): + if key.rsplit("}", 1)[-1].lower() == "href": + assert value.startswith("#") + assert "url(http" not in value.lower() + + +def _groups(root: ElementTree.Element, prefix: str) -> list[ElementTree.Element]: + return [ + item + for item in root.iter() + if _local_name(item) == "g" and item.attrib.get("id", "").startswith(prefix) + ] + + +def test_work_counts_svg_is_exact_accessible_and_deterministic( + tmp_path: Path, +) -> None: + report = profiler.build_profile() + before = copy.deepcopy(report) + first = tmp_path / "work-a.svg" + second = tmp_path / "work-b.svg" + rendered = rendering.render_dp_work_counts_svg(report) + + rendering.write_dp_work_counts_svg(report, first) + rendering.write_dp_work_counts_svg(report, second) + + root, text = _svg(first) + _assert_accessible_local_svg(root, width=1800, height=1120) + assert rendered == rendering.render_dp_work_counts_svg(report) + assert first.read_text(encoding="utf-8") == rendered + assert first.read_bytes() == second.read_bytes() + assert report == before + assert len(_groups(root, "dp-work-")) == 6 + assert all( + group.attrib.get("role") == "group" for group in _groups(root, "dp-work-") + ) + for expected in ( + "304 occupied / 336 bound", + "31,213 occupied / 60,025 bound", + "2,288 occupied / 4,400 bound", + "164,025 occupied / 216,513 bound", + "33,153 occupied / 66,049 bound", + "1,312,192 calls / 1,732,104 bound", + "bound 2,162,688 / budget 250,000", + "bound 17,301,504 / budget 2,000,000", + "product 0 calls · 0 vectors · consume 0", + ): + assert expected in text + assert "no elapsed time · no RSS · no hardware performance claim" in text + + +def test_layer_occupancy_svg_draws_only_five_real_series( + tmp_path: Path, +) -> None: + report = profiler.build_profile() + before = copy.deepcopy(report) + first = tmp_path / "layers-a.svg" + second = tmp_path / "layers-b.svg" + rendered = rendering.render_dp_layer_occupancy_svg(report) + + rendering.write_dp_layer_occupancy_svg(report, first) + rendering.write_dp_layer_occupancy_svg(report, second) + + root, text = _svg(first) + _assert_accessible_local_svg(root, width=1800, height=1320) + assert rendered == rendering.render_dp_layer_occupancy_svg(report) + assert first.read_text(encoding="utf-8") == rendered + assert first.read_bytes() == second.read_bytes() + assert report == before + groups = _groups(root, "dp-layer-") + assert len(groups) == 6 + accepted = groups[:-1] + rejected = groups[-1] + assert [ + sum( + _local_name(item) == "polyline" + and item.attrib.get("data-series") == "layer-occupancy" + for item in group.iter() + ) + for group in accepted + ] == [1, 1, 1, 1, 1] + assert not any(_local_name(item) == "polyline" for item in rejected.iter()) + assert "NO CURVE · PRECHECK REJECTED" in text + assert "No layer table exists, so no occupancy series is drawn." in text + for expected in ( + "occupied 304 · product 20 calls / 320 vectors · consume 1,212", + "occupied 31,213 · product 24 calls / 57,624 vectors · consume 124,848", + "occupied 2,288 · product 24 calls / 4,224 vectors · consume 9,148", + "occupied 164,025 · product 32 calls / 209,952 vectors · consume 1,312,192", + "occupied 33,153 · product 256 calls / 65,792 vectors · consume 33,152", + ): + assert expected in text + assert "no elapsed time · no RSS · no hardware performance claim" in text + + +def test_terminal_png_renderer_is_pure_and_matches_write_wrapper( + tmp_path: Path, +) -> None: + transcript = "$ profiler --format text\nASCII body · exact counters\n" + title = "Deterministic DP work profile · six fixed policies" + path = tmp_path / "profile.png" + + first = rendering.render_terminal_png_bytes( + transcript=transcript, + title=title, + ) + second = rendering.render_terminal_png_bytes( + transcript=transcript, + title=title, + ) + rendering.render_terminal_png( + transcript=transcript, + title=title, + path=path, + ) + + assert first == second == path.read_bytes() + assert first.startswith(b"\x89PNG\r\n\x1a\n") + + +def _mutated_report(mutation: str) -> dict[str, object]: + report = cast(dict[str, object], copy.deepcopy(profiler.build_profile())) + cases = cast(list[dict[str, object]], report["cases"]) + if mutation == "schema-bool": + report["schema_version"] = True + elif mutation == "case-order": + cases[0], cases[1] = cases[1], cases[0] + elif mutation == "missing-case": + cases.pop() + elif mutation == "timing-claim": + cast(dict[str, object], report["profiler"])["timing_fields_retained"] = True + elif mutation == "occupancy": + observed = cast(dict[str, object], cases[0]["observed"]) + occupancy = cast(list[int], observed["layer_occupancy"]) + occupancy[1] += 1 + elif mutation == "product-counter": + cast(dict[str, object], cases[0]["work_counters"])["product_vectors"] = 1 + elif mutation == "rejected-series": + cases[-1]["observed"] = { + "layer_occupancy": [1], + "occupied_cells": 1, + "peak_count_bits": 1, + "transitions": 1, + "valid_state_space": "1", + } + else: # pragma: no cover - test helper contract + raise AssertionError("unknown mutation") + return report + + +@pytest.mark.parametrize( + "mutation", + ( + "schema-bool", + "case-order", + "missing-case", + "timing-claim", + "occupancy", + "product-counter", + "rejected-series", + ), +) +@pytest.mark.parametrize( + "renderer", + ( + "write_dp_work_counts_svg", + "write_dp_layer_occupancy_svg", + ), +) +def test_complexity_renderers_fail_closed_before_writing( + mutation: str, + renderer: str, + tmp_path: Path, +) -> None: + path = tmp_path / f"{mutation}.svg" + + with pytest.raises(ValueError, match="invalid complexity profile"): + getattr(rendering, renderer)(_mutated_report(mutation), path) + + assert not path.exists() diff --git a/tests/test_evidence.py b/tests/test_evidence.py index 88cc4dc..c42d28b 100644 --- a/tests/test_evidence.py +++ b/tests/test_evidence.py @@ -16,7 +16,11 @@ class _Checker(Protocol): + COMPLEXITY_CASE_IDS: tuple[str, ...] + COMPLEXITY_JSON_PATH: str + COMPLEXITY_TEXT_PATH: str EvidenceValidationError: type[ValueError] + EXPECTED_ARTIFACTS: frozenset[str] MANIFEST_PATH: str SWEEP_COLUMNS: tuple[str, ...] @@ -44,7 +48,34 @@ def _expected_sweep(self) -> str: ... def _expected_inspection(self, report: StateSpaceInspection) -> str: ... - def _load_json(self, path: Path) -> tuple[dict[str, object], str]: ... + def _load_json( + self, + path: Path, + *, + label: str = "manifest", + ) -> tuple[dict[str, object], str]: ... + + def _expected_complexity_evidence( + self, + ) -> tuple[dict[str, object], str, str]: ... + + def _complexity_transcript(self, report: dict[str, object]) -> str: ... + + def _validate_complexity_envelope(self, value: object) -> None: ... + + def _validate_complexity_profile( + self, + document: dict[str, object], + json_text: str, + transcript: str, + ) -> None: ... + + def _validate_complexity_renderings( + self, + root: Path, + report: dict[str, object], + transcript: str, + ) -> None: ... def _distribution_input_digest(self, root: Path) -> str: ... @@ -267,6 +298,149 @@ def test_manifest_loader_rejects_duplicates_and_noncanonical_json( check_evidence._load_json(path) +def _canonical_json(document: dict[str, object]) -> str: + return json.dumps(document, ensure_ascii=True, indent=2, sort_keys=True) + "\n" + + +def test_complexity_profile_rebuild_has_exact_schema_and_invariants() -> None: + report, json_text, transcript = check_evidence._expected_complexity_evidence() + + check_evidence._validate_complexity_profile(report, json_text, transcript) + + cases = cast(list[dict[str, object]], report["cases"]) + assert [case["case_id"] for case in cases] == list( + check_evidence.COMPLEXITY_CASE_IDS + ) + assert len(cases) == 6 + assert sum(case["outcome"] == "accepted" for case in cases) == 5 + assert cases[-1]["outcome"] == "rejected-before-enumeration" + + +def test_complexity_envelope_is_exact_and_candidate_free() -> None: + envelope: dict[str, object] = { + "accepted_scenarios": 5, + "contains_candidate": False, + "counter_contract": "logical-dp-operations-v1", + "json_source_command": ( + "PYTHONPATH=src python scripts/profile_complexity.py --format json" + ), + "rejected_before_enumeration": 1, + "report_schema_version": 1, + "scenario_ids": list(check_evidence.COMPLEXITY_CASE_IDS), + "text_source_command": ( + "PYTHONPATH=src python scripts/profile_complexity.py --format text" + ), + } + + check_evidence._validate_complexity_envelope(envelope) + + stale = copy.deepcopy(envelope) + cast(list[str], stale["scenario_ids"]).reverse() + with pytest.raises( + check_evidence.EvidenceValidationError, + match="fixed scenario order", + ): + check_evidence._validate_complexity_envelope(stale) + + +def test_complexity_profile_rejects_observed_oracle_drift() -> None: + expected, _, _ = check_evidence._expected_complexity_evidence() + report = copy.deepcopy(expected) + first = cast(list[dict[str, object]], report["cases"])[0] + observed = cast(dict[str, object], first["observed"]) + observed["occupied_cells"] = cast(int, observed["occupied_cells"]) + 1 + + with pytest.raises( + check_evidence.EvidenceValidationError, + match="inconsistent occupied cell", + ): + check_evidence._validate_complexity_profile( + report, + _canonical_json(report), + check_evidence._complexity_transcript(report), + ) + + +def test_complexity_profile_rejects_work_after_budget_failure() -> None: + expected, _, _ = check_evidence._expected_complexity_evidence() + report = copy.deepcopy(expected) + rejected = cast(list[dict[str, object]], report["cases"])[-1] + work = cast(dict[str, object], rejected["work_counters"]) + work["product_vectors"] = 1 + + with pytest.raises( + check_evidence.EvidenceValidationError, + match="forbidden enumeration", + ): + check_evidence._validate_complexity_profile( + report, + _canonical_json(report), + check_evidence._complexity_transcript(report), + ) + + +def test_complexity_profile_rejects_performance_overclaim_or_extra_metric() -> None: + expected, _, _ = check_evidence._expected_complexity_evidence() + overclaim = copy.deepcopy(expected) + boundaries = cast(dict[str, object], overclaim["claim_boundaries"]) + boundaries["hardware_performance_claimed"] = True + with pytest.raises( + check_evidence.EvidenceValidationError, + match="claim boundaries", + ): + check_evidence._validate_complexity_profile( + overclaim, + _canonical_json(overclaim), + check_evidence._complexity_transcript(overclaim), + ) + + extra_metric = copy.deepcopy(expected) + extra_metric["elapsed_seconds"] = 0 + with pytest.raises( + check_evidence.EvidenceValidationError, + match="unexpected schema", + ): + check_evidence._validate_complexity_profile( + extra_metric, + _canonical_json(extra_metric), + check_evidence._complexity_transcript(extra_metric), + ) + + +def test_complexity_artifacts_are_part_of_the_exact_readme_inventory() -> None: + assert { + "docs/assets/dp-complexity-cli.png", + "docs/assets/dp-layer-occupancy.svg", + "docs/assets/dp-work-counts.svg", + check_evidence.COMPLEXITY_JSON_PATH, + check_evidence.COMPLEXITY_TEXT_PATH, + }.issubset(check_evidence.EXPECTED_ARTIFACTS) + + +def test_complexity_renderings_reject_a_mutated_png(tmp_path: Path) -> None: + root = Path(__file__).resolve().parents[1] + report, _, transcript = check_evidence._expected_complexity_evidence() + relatives = ( + "docs/assets/dp-complexity-cli.png", + "docs/assets/dp-layer-occupancy.svg", + "docs/assets/dp-work-counts.svg", + ) + for relative in relatives: + destination = tmp_path / relative + destination.parent.mkdir(parents=True, exist_ok=True) + destination.write_bytes((root / relative).read_bytes()) + + check_evidence._validate_complexity_renderings(tmp_path, report, transcript) + png = tmp_path / "docs/assets/dp-complexity-cli.png" + png.write_bytes(png.read_bytes() + b"mutated") + + with pytest.raises( + check_evidence.EvidenceValidationError, + match="stale against its pure renderer", + ): + check_evidence._validate_complexity_renderings(tmp_path, report, transcript) + + def test_distribution_attestation_is_source_bound_and_rejects_overclaim() -> None: root = Path(__file__).resolve().parents[1] path = root / "docs/evidence/distribution-attestation.json" @@ -382,11 +556,8 @@ def test_readme_validation_is_robust_when_readme_is_absent(tmp_path: Path) -> No check_evidence._validate_readme(tmp_path) -def test_checked_in_evidence_bundle_is_valid_when_generated() -> None: +def test_checked_in_evidence_bundle_is_valid() -> None: root = Path(__file__).resolve().parents[1] - if not (root / check_evidence.MANIFEST_PATH).exists(): - pytest.skip("evidence generator has not populated the bundle yet") - check_evidence.validate_evidence(root) diff --git a/tests/test_evidence_generation.py b/tests/test_evidence_generation.py new file mode 100644 index 0000000..02c42af --- /dev/null +++ b/tests/test_evidence_generation.py @@ -0,0 +1,50 @@ +from __future__ import annotations + +import importlib.util +import sys +from pathlib import Path +from typing import Protocol, cast + +import pytest + + +class _Generator(Protocol): + def _normalize_quality_output(self, output: str) -> str: ... + + +def _load_generator() -> _Generator: + scripts = Path(__file__).resolve().parents[1] / "scripts" + path = scripts / "generate_evidence.py" + spec = importlib.util.spec_from_file_location( + "password_policy_evidence_generator", + path, + ) + if spec is None or spec.loader is None: + raise RuntimeError("could not load the evidence generator") + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + sys.path.insert(0, str(scripts)) + try: + spec.loader.exec_module(module) + finally: + sys.path.pop(0) + return cast(_Generator, module) + + +generator = _load_generator() + + +@pytest.mark.parametrize( + ("raw", "expected"), + [ + ("294 passed in 130.25s\n", "294 passed\n"), + ("293 passed, 1 skipped in 131.04s\n", "293 passed, 1 skipped\n"), + ("294 passed (0:02:10)\n", "294 passed\n"), + ("297 passed in 129.08s (0:02:09)\n", "297 passed\n"), + ], +) +def test_quality_normalization_removes_both_pytest_duration_formats( + raw: str, + expected: str, +) -> None: + assert generator._normalize_quality_output(raw) == expected

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 YUEJ*LWs>J>#+?D91Lg*|^<2*W0}z2N$^ZZW literal 0 HcmV?d00001 diff --git a/docs/assets/dp-layer-occupancy.svg b/docs/assets/dp-layer-occupancy.svg new file mode 100644 index 0000000..aaae9ca --- /dev/null +++ b/docs/assets/dp-layer-occupancy.svg @@ -0,0 +1,108 @@ + + Exact dynamic-programming layer occupancy + Five panels plot exact retained deficit-vector counts by remaining position. A sixth panel records a complexity-budget rejection and deliberately contains no curve. + + + + + + + + + + + + + + + Sparse DP occupancy, layer by exact layer + Every accepted curve is drawn directly from the profiled layer_occupancy array; the rejected policy has no invented series. + + Logical state counts only · no elapsed time · no RSS · no hardware performance claim + + + Default visible ASCII + L=20 · minima 1 / 1 / 1 / 1 · peak 16 states + states 16 + + + + + + remaining 0 · states 1 + remaining 20 · states 16 + occupied 304 · product 20 calls / 320 vectors · consume 1,212 + + + Balanced strict minima + L=24 · minima 6 / 6 / 6 / 6 · peak 2,401 states + states 2,401 + + + + + + remaining 0 · states 1 + remaining 24 · states 2,401 + occupied 31,213 · product 24 calls / 57,624 vectors · consume 124,848 + + + Skewed strict minima + L=24 · minima 21 / 1 / 1 / 1 · peak 176 states + states 176 + + + + + + remaining 0 · states 1 + remaining 24 · states 176 + occupied 2,288 · product 24 calls / 4,224 vectors · consume 9,148 + + + Eight-class budget edge + L=32 · minima 2 / 2 / 2 / 2 / 2 / 2 / 2 / 2 · peak 6,561 states + states 6,561 + + + + + + remaining 0 · states 1 + remaining 32 · states 6,561 + occupied 164,025 · product 32 calls / 209,952 vectors · consume 1,312,192 + + + Arbitrary-precision depth + L=256 · minima 256 · peak 257 states + states 257 + + + + + + remaining 0 · states 1 + remaining 256 · states 257 + occupied 33,153 · product 256 calls / 65,792 vectors · consume 33,152 + + + Fail-fast budget guard + L=32 · minima 3 / 3 / 3 / 3 / 3 / 3 / 3 / 3 + + NO CURVE · PRECHECK REJECTED + cell bound 2,162,688 / 250,000 · transition bound 17,301,504 / 2,000,000 + product 0 calls · 0 vectors · consume 0 + No layer table exists, so no occupancy series is drawn. + + Horizontal axis: remaining positions. Vertical axis: retained bounded-deficit vectors on an exact linear scale within each panel. + 5 observed curves · 1 fail-fast boundary + diff --git a/docs/assets/dp-work-counts.svg b/docs/assets/dp-work-counts.svg new file mode 100644 index 0000000..64ebd8d --- /dev/null +++ b/docs/assets/dp-work-counts.svg @@ -0,0 +1,91 @@ + + Deterministic dynamic-programming work counts + Six fixed password-policy cases compare exact logical occupied cells and transition calls with preflight bounds. The rejected case records no dynamic-programming enumeration. + + + + + + + + + + + + + + + Logical DP work, measured without a stopwatch + Five accepted policies expose actual table work; the sixth proves the preflight budget stops before enumeration. + + DETERMINISTIC COUNTER CONTRACT · cProfile CALL COUNTS + ITERATOR COUNTERS + Logical operations only · no elapsed time · no RSS · no hardware performance claim + OCCUPIED DP CELLS / RECTANGULAR BOUND + _CONSUME CALLS / TRANSITION BOUND + + + Default visible ASCII + L=20 · minima 1 / 1 / 1 / 1 + product 20 calls · 320 vectors · consume 1,212 + + 304 occupied / 336 bound + + 1,212 calls / 1,344 bound + + + Balanced strict minima + L=24 · minima 6 / 6 / 6 / 6 + product 24 calls · 57,624 vectors · consume 124,848 + + 31,213 occupied / 60,025 bound + + 124,848 calls / 240,100 bound + + + Skewed strict minima + L=24 · minima 21 / 1 / 1 / 1 + product 24 calls · 4,224 vectors · consume 9,148 + + 2,288 occupied / 4,400 bound + + 9,148 calls / 17,600 bound + + + Eight-class budget edge + L=32 · minima 2 / 2 / 2 / 2 / 2 / 2 / 2 / 2 + product 32 calls · 209,952 vectors · consume 1,312,192 + + 164,025 occupied / 216,513 bound + + 1,312,192 calls / 1,732,104 bound + + + Arbitrary-precision depth + L=256 · minima 256 + product 256 calls · 65,792 vectors · consume 33,152 + + 33,153 occupied / 66,049 bound + + 33,152 calls / 66,049 bound + + + Fail-fast budget guard + L=32 · minima 3 / 3 / 3 / 3 / 3 / 3 / 3 / 3 + product 0 calls · 0 vectors · consume 0 + + preflight stop · bound 2,162,688 / budget 250,000 + + preflight stop · bound 17,301,504 / budget 2,000,000 + + Bars encode exact observed-to-bound ratios; every raw integer remains printed beside its bar. + rejected case: product 0 · consume 0 + diff --git a/docs/assets/quality-gate.png b/docs/assets/quality-gate.png index 405a8e9788d616b1a4c7ea9bc779ca3cc9473b57..f1e51d2cf80af2b5ee7c51c800e88123c1a2e15c 100644 GIT binary patch literal 146498 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 literal 146227 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 X8PUhBfGx5IzHy_Xqz=uyYv%JGJ@cD% diff --git a/docs/evidence/dp-complexity-profile.json b/docs/evidence/dp-complexity-profile.json new file mode 100644 index 0000000..6865190 --- /dev/null +++ b/docs/evidence/dp-complexity-profile.json @@ -0,0 +1,715 @@ +{ + "cases": [ + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 336, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 1344, + "state_vectors_upper_bound_per_layer": 16 + }, + "case_id": "default-visible-ascii-20", + "independent_oracles": { + "occupied_cells": 304, + "transitions": 1212, + "valid_state_space": "2585908648140078948280078326668093030400" + }, + "observed": { + "layer_occupancy": [ + 1, + 5, + 11, + 15, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16 + ], + "occupied_cells": 304, + "peak_count_bits": 132, + "transitions": 1212, + "valid_state_space": "2585908648140078948280078326668093030400" + }, + "outcome": "accepted", + "policy": { + "class_count": 4, + "class_minima": [ + 1, + 1, + 1, + 1 + ], + "class_widths": [ + 26, + 26, + 10, + 32 + ], + "length": 20 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 1, + "total_calls": 1 + }, + "consume": { + "primitive_calls": 1212, + "total_calls": 1212 + } + }, + "work_counters": { + "consume_calls": 1212, + "product_calls": 20, + "product_vectors": 320 + } + }, + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 60025, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 240100, + "state_vectors_upper_bound_per_layer": 2401 + }, + "case_id": "balanced-visible-ascii-24", + "independent_oracles": { + "occupied_cells": 31213, + "transitions": 124848, + "valid_state_space": "236567853874633254943290775707366457344000000" + }, + "observed": { + "layer_occupancy": [ + 1, + 5, + 15, + 35, + 70, + 126, + 210, + 326, + 475, + 655, + 861, + 1085, + 1316, + 1540, + 1746, + 1926, + 2075, + 2191, + 2275, + 2331, + 2366, + 2386, + 2396, + 2400, + 2401 + ], + "occupied_cells": 31213, + "peak_count_bits": 158, + "transitions": 124848, + "valid_state_space": "236567853874633254943290775707366457344000000" + }, + "outcome": "accepted", + "policy": { + "class_count": 4, + "class_minima": [ + 6, + 6, + 6, + 6 + ], + "class_widths": [ + 26, + 26, + 10, + 32 + ], + "length": 24 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 1, + "total_calls": 1 + }, + "consume": { + "primitive_calls": 124848, + "total_calls": 124848 + } + }, + "work_counters": { + "consume_calls": 124848, + "product_calls": 24, + "product_vectors": 57624 + } + }, + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 4400, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 17600, + "state_vectors_upper_bound_per_layer": 176 + }, + "case_id": "skewed-visible-ascii-24", + "independent_oracles": { + "occupied_cells": 2288, + "transitions": 9148, + "valid_state_space": "52351049460478077365858907291994030080" + }, + "observed": { + "layer_occupancy": [ + 1, + 5, + 12, + 20, + 28, + 36, + 44, + 52, + 60, + 68, + 76, + 84, + 92, + 100, + 108, + 116, + 124, + 132, + 140, + 148, + 156, + 164, + 171, + 175, + 176 + ], + "occupied_cells": 2288, + "peak_count_bits": 158, + "transitions": 9148, + "valid_state_space": "52351049460478077365858907291994030080" + }, + "outcome": "accepted", + "policy": { + "class_count": 4, + "class_minima": [ + 21, + 1, + 1, + 1 + ], + "class_widths": [ + 26, + 26, + 10, + 32 + ], + "length": 24 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 1, + "total_calls": 1 + }, + "consume": { + "primitive_calls": 9148, + "total_calls": 9148 + } + }, + "work_counters": { + "consume_calls": 9148, + "product_calls": 24, + "product_vectors": 4224 + } + }, + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 216513, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 1732104, + "state_vectors_upper_bound_per_layer": 6561 + }, + "case_id": "near-budget-eight-class-32", + "independent_oracles": { + "occupied_cells": 164025, + "transitions": 1312192, + "valid_state_space": "38257913344943146219110345600" + }, + "observed": { + "layer_occupancy": [ + 1, + 9, + 45, + 157, + 423, + 927, + 1711, + 2727, + 3834, + 4850, + 5634, + 6138, + 6404, + 6516, + 6552, + 6560, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561, + 6561 + ], + "occupied_cells": 164025, + "peak_count_bits": 97, + "transitions": 1312192, + "valid_state_space": "38257913344943146219110345600" + }, + "outcome": "accepted", + "policy": { + "class_count": 8, + "class_minima": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ], + "class_widths": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "length": 32 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 1, + "total_calls": 1 + }, + "consume": { + "primitive_calls": 1312192, + "total_calls": 1312192 + } + }, + "work_counters": { + "consume_calls": 1312192, + "product_calls": 32, + "product_vectors": 209952 + } + }, + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 66049, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 66049, + "state_vectors_upper_bound_per_layer": 257 + }, + "case_id": "arbitrary-precision-one-class-256", + "independent_oracles": { + "occupied_cells": 33153, + "transitions": 33152, + "valid_state_space": "13204760283529711086017975496827969102122578748228854932215768953608425957914283378793017392640590182002206404278763711059841035864423601625110254131892757565869495470338450089708080064566367418705500800588966751865304590703827220828902312168631896511588754032589566627857130891842176335593555479284390295575803372353530458476431465822620855640835321633973740736105593048630603713155210875181236521246988904838997921007024818852561511543790205251774474107664518880852848565042488233058496752224510521901056" + }, + "observed": { + "layer_occupancy": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257 + ], + "occupied_cells": 33153, + "peak_count_bits": 1678, + "transitions": 33152, + "valid_state_space": "13204760283529711086017975496827969102122578748228854932215768953608425957914283378793017392640590182002206404278763711059841035864423601625110254131892757565869495470338450089708080064566367418705500800588966751865304590703827220828902312168631896511588754032589566627857130891842176335593555479284390295575803372353530458476431465822620855640835321633973740736105593048630603713155210875181236521246988904838997921007024818852561511543790205251774474107664518880852848565042488233058496752224510521901056" + }, + "outcome": "accepted", + "policy": { + "class_count": 1, + "class_minima": [ + 256 + ], + "class_widths": [ + 94 + ], + "length": 256 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 1, + "total_calls": 1 + }, + "consume": { + "primitive_calls": 33152, + "total_calls": 33152 + } + }, + "work_counters": { + "consume_calls": 33152, + "product_calls": 256, + "product_vectors": 65792 + } + }, + { + "bounds": { + "dp_cells_budget": 250000, + "dp_cells_upper_bound": 2162688, + "dp_transitions_budget": 2000000, + "dp_transitions_upper_bound": 17301504, + "state_vectors_upper_bound_per_layer": 65536 + }, + "case_id": "rejected-eight-class-32", + "outcome": "rejected-before-enumeration", + "policy": { + "class_count": 8, + "class_minima": [ + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3 + ], + "class_widths": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + "length": 32 + }, + "profiled_calls": { + "build_layers": { + "primitive_calls": 0, + "total_calls": 0 + }, + "consume": { + "primitive_calls": 0, + "total_calls": 0 + } + }, + "rejection": "dynamic-programming-complexity-budget", + "work_counters": { + "consume_calls": 0, + "product_calls": 0, + "product_vectors": 0 + } + } + ], + "claim_boundaries": { + "candidate_output_included": false, + "entropy_consumed": false, + "hardware_performance_claimed": false, + "memory_usage_claimed": false, + "wall_clock_timing_included": false + }, + "counter_contract": "logical-dp-operations-v1", + "profiler": { + "engine": "cProfile", + "retained_fields": [ + "primitive_calls", + "total_calls" + ], + "selected_project_functions": [ + "PasswordSpace._build_layers", + "_consume" + ], + "timing_fields_retained": false + }, + "scenario_set": "deterministic-dp-work-v1", + "schema_version": 1 +} diff --git a/docs/evidence/dp-complexity-profile.txt b/docs/evidence/dp-complexity-profile.txt new file mode 100644 index 0000000..6108e09 --- /dev/null +++ b/docs/evidence/dp-complexity-profile.txt @@ -0,0 +1,15 @@ +$ PYTHONPATH=src python scripts/profile_complexity.py --format text +Password Policy State-Space Lab - deterministic DP work profile +schema_version: 1 +scenario_set: deterministic-dp-work-v1 +profiler: cProfile selected project call counts; timing discarded + +default-visible-ascii-20: accepted · cells 304/336 · transitions 1212/1344 · peak integer 132 bits +balanced-visible-ascii-24: accepted · cells 31213/60025 · transitions 124848/240100 · peak integer 158 bits +skewed-visible-ascii-24: accepted · cells 2288/4400 · transitions 9148/17600 · peak integer 158 bits +near-budget-eight-class-32: accepted · cells 164025/216513 · transitions 1312192/1732104 · peak integer 97 bits +arbitrary-precision-one-class-256: accepted · cells 33153/66049 · transitions 33152/66049 · peak integer 1678 bits +rejected-eight-class-32: rejected before enumeration · cells bound 2162688 · transitions bound 17301504 · build calls 0 · consume calls 0 + +Scope: deterministic work counts only; no elapsed-time, RSS, hardware, or speed claim. +Safety: no entropy consumed and no password candidate constructed or emitted. diff --git a/docs/evidence/manifest.json b/docs/evidence/manifest.json index 1b3c291..474c71a 100644 --- a/docs/evidence/manifest.json +++ b/docs/evidence/manifest.json @@ -48,16 +48,52 @@ "sha256": "37eeac7f88fd0d3dd844c1984a8d69cdaf707f7ae5f3229889cb6dafe0d6656d", "width": 1960 }, + { + "assertions": [ + "deterministic profiler output with selected cProfile call counts", + "timing, hardware, memory, entropy, and candidate output absent" + ], + "bytes": 104431, + "height": 706, + "media_type": "image/png", + "path": "docs/assets/dp-complexity-cli.png", + "sha256": "ed94a3aca71400fec0088c4bbab1f6b3afb1f76d3504d51fcde0c7d8e0c47776", + "width": 1600 + }, + { + "assertions": [ + "rendered from every observed accepted DP layer", + "rejected policy has no invented occupancy curve" + ], + "bytes": 13138, + "height": 1320, + "media_type": "image/svg+xml", + "path": "docs/assets/dp-layer-occupancy.svg", + "sha256": "2c4155a32eddc3a48fe6d2f3fe7a93c6f1a8910e45e2e93ad6cffc15dd4f168d", + "width": 1800 + }, + { + "assertions": [ + "exact product-vector, materialized-cell, and transition counts", + "balanced and skewed policies are directly comparable" + ], + "bytes": 9045, + "height": 1120, + "media_type": "image/svg+xml", + "path": "docs/assets/dp-work-counts.svg", + "sha256": "9acdd587d0a8464bc8952902fc3f92f00cc428527c185fc4d60cc03aaaff7d2e", + "width": 1800 + }, { "assertions": [ "rendered from normalized real gate transcript", "all commands exited zero" ], - "bytes": 146227, + "bytes": 146498, "height": 1276, "media_type": "image/png", "path": "docs/assets/quality-gate.png", - "sha256": "0b96bcbaca72adc18d1809d260d5fdd5b2d6c83dc58d34935dd2f489fe2e873d", + "sha256": "48fa53a3b0fc7736433e304898164aa6ee2c9afdd38e81d0c7b392590a96d9db", "width": 1600 }, { @@ -177,6 +213,26 @@ "path": "docs/evidence/distribution-check.txt", "sha256": "94b61d45db43b334efe8f574c94d69931bdb35aa709bec1205e112913285a92e" }, + { + "assertions": [ + "canonical report from six real instrumented constructions", + "independent occupancy and exact-count oracles agree" + ], + "bytes": 14697, + "media_type": "application/json", + "path": "docs/evidence/dp-complexity-profile.json", + "sha256": "86d9c8fe43f8af462dc300f9174149db6ae89700e0895f814597e7e3e0102265" + }, + { + "assertions": [ + "real concise profiler command output", + "no timing, hardware, memory, entropy, or candidate claim" + ], + "bytes": 1114, + "media_type": "text/plain", + "path": "docs/evidence/dp-complexity-profile.txt", + "sha256": "abafbf17802b02deb570c5a43cf4dbb94148f748bf398b079f3d5f3e071f98b7" + }, { "assertions": [ "real normalized command output", @@ -185,7 +241,7 @@ "bytes": 1874, "media_type": "text/plain", "path": "docs/evidence/quality-gate.txt", - "sha256": "b5b4d6c218c2130c499f6a4f1311952a208569741eb67a61337f3131698fe967" + "sha256": "e5e71ef16b8c36026ae9af49698b7e2c67d0619592e9975efac26f3870653f53" }, { "assertions": [ @@ -305,6 +361,23 @@ "architecture_ast_verified": true, "sampling_ast_verified": true }, + "dp_complexity_profile": { + "accepted_scenarios": 5, + "contains_candidate": false, + "counter_contract": "logical-dp-operations-v1", + "json_source_command": "PYTHONPATH=src python scripts/profile_complexity.py --format json", + "rejected_before_enumeration": 1, + "report_schema_version": 1, + "scenario_ids": [ + "default-visible-ascii-20", + "balanced-visible-ascii-24", + "skewed-visible-ascii-24", + "near-budget-eight-class-32", + "arbitrary-precision-one-class-256", + "rejected-eight-class-32" + ], + "text_source_command": "PYTHONPATH=src python scripts/profile_complexity.py --format text" + }, "quality_gate": { "all_passed": true, "commands": [ @@ -344,7 +417,7 @@ "python": "3.12.3", "waitress": "3.0.2" }, - "schema_version": 1, + "schema_version": 2, "source_files": [ { "path": "MANIFEST.in", @@ -360,7 +433,7 @@ }, { "path": "README.md", - "sha256": "405ede3a7f253df40b64180f804e4a228872132aaaf6ad5c282fcb65f4a2c42b" + "sha256": "2524d9e69d196ed23bb76be3659ebd690d17a3b4a7c974b02f1c7bab3bcde2e4" }, { "path": "app.py", @@ -376,7 +449,7 @@ }, { "path": "scripts/check_evidence.py", - "sha256": "eb72f02fd3fc50536aee670f0b83badffd1d9b13df5fa16d87c38a78be8cf881" + "sha256": "47b8739b7fde11642d88963d74b53aecfed96fc3e6ddc0cbb3dbf4770c7e7f4a" }, { "path": "scripts/distribution_contract.py", @@ -384,15 +457,15 @@ }, { "path": "scripts/evidence_rendering.py", - "sha256": "b313270e49c26a9eb8b966805df21b5c46ed30823794cb5272014efb9f100a92" + "sha256": "bc55294f4ad8e0c22e4059b302a6681d572cba066c79c979406f833f176eb380" }, { "path": "scripts/generate_evidence.py", - "sha256": "96e00dd2f4e48c6ffb20d7543ef02b687d3f94df2d259bc064d2b6f48ef3c534" + "sha256": "d4bedb3609f542683b2d2b28dc8194204537ea21708507f201257301db9fa033" }, { "path": "scripts/profile_complexity.py", - "sha256": "fcc4c3d050d2cf8f9ef11acf87f0853e80aede3bce9cb0d405596d0a65e70f3e" + "sha256": "aa77bdcadfb1f2d621eb88be986dda9d75872518d592e00d5c88f792cb78c214" }, { "path": "src/password_policy_lab/__init__.py", @@ -452,7 +525,11 @@ }, { "path": "tests/test_complexity_profile.py", - "sha256": "e6b127df936de0c47b6cf697e44d18d6618fb331201b2c02697fc69cacd8f167" + "sha256": "7cb577e444eac0549398a79512d84dcea68528400cf0ef0b52285d60397b3245" + }, + { + "path": "tests/test_complexity_rendering.py", + "sha256": "6fe89cdf5bfeb61fba87662ce70dec7a7f41d24ed8d6d3295321dec651a62ca7" }, { "path": "tests/test_counting.py", @@ -468,7 +545,11 @@ }, { "path": "tests/test_evidence.py", - "sha256": "8bc201dce3424e6456090e803fa0da4e83f625cb0ce2fc186f33ed255f12121c" + "sha256": "0f28070b81ff1e084d0eaa130b12f3cf61a949ca8d1c0372a8d5581aaa0c059c" + }, + { + "path": "tests/test_evidence_generation.py", + "sha256": "1f4e6869e12494e13f8f792d27be2ed6a0e6883250537fa4cc650bc77e4c80f9" }, { "path": "tests/test_inspection.py", diff --git a/docs/evidence/quality-gate.txt b/docs/evidence/quality-gate.txt index ba8952a..270649a 100644 --- a/docs/evidence/quality-gate.txt +++ b/docs/evidence/quality-gate.txt @@ -2,15 +2,15 @@ $ python -m ruff check app.py scripts src tests All checks passed! $ python -m ruff format --check app.py scripts src tests -28 files already formatted +30 files already formatted $ MYPYPATH=src python -m mypy --strict app.py scripts src tests -Success: no issues found in 28 source files +Success: no issues found in 30 source files $ PYTHONPATH=src python -m pytest --cov=password_policy_lab --cov-branch --cov-report=term-missing -q -................................................................................................................ [ 41%] -................................................................................................................ [ 82%] -................................................ [100%] +................................................................................................................ [ 37%] +................................................................................................................ [ 74%] +............................................................................ [100%] ==================================================== tests coverage ==================================================== ___________________________________ coverage: platform linux, python 3.12.3-final-0 ____________________________________ @@ -20,7 +20,7 @@ TOTAL 526 0 130 0 100% 9 files skipped due to complete coverage. Required test coverage of 100.0% reached. Total coverage: 100.00% -272 passed +300 passed $ python scripts/attest_distribution.py distribution attestation: PASS (unofficial) diff --git a/scripts/check_evidence.py b/scripts/check_evidence.py index a91d4c0..dd18f1c 100644 --- a/scripts/check_evidence.py +++ b/scripts/check_evidence.py @@ -8,6 +8,7 @@ import csv import hashlib import html +import importlib.util import io import json import re @@ -15,8 +16,11 @@ import sys import zlib from collections.abc import Sequence +from functools import lru_cache +from math import prod from pathlib import Path, PurePosixPath -from typing import NoReturn, cast +from types import ModuleType +from typing import Any, NoReturn, cast from xml.etree import ElementTree from PIL import Image @@ -31,9 +35,38 @@ VISIBLE_ASCII_PROFILE, visible_ascii_policy, ) +from password_policy_lab.space import MAX_DP_CELLS, MAX_DP_TRANSITIONS MANIFEST_PATH = "docs/evidence/manifest.json" GENERATOR_PATH = "scripts/generate_evidence.py" +COMPLEXITY_JSON_PATH = "docs/evidence/dp-complexity-profile.json" +COMPLEXITY_TEXT_PATH = "docs/evidence/dp-complexity-profile.txt" +COMPLEXITY_JSON_COMMAND = ( + "PYTHONPATH=src python scripts/profile_complexity.py --format json" +) +COMPLEXITY_TEXT_COMMAND = ( + "PYTHONPATH=src python scripts/profile_complexity.py --format text" +) +COMPLEXITY_PNG_TITLE = "Deterministic DP work profile · six fixed policies" + + +def _load_local_module(name: str) -> ModuleType: + """Load one sibling evidence module without relying on caller sys.path.""" + + path = Path(__file__).with_name(f"{name}.py") + spec = importlib.util.spec_from_file_location( + f"password_policy_evidence_{name}", + path, + ) + if spec is None or spec.loader is None: + raise RuntimeError(f"could not load local evidence module: {name}") + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + spec.loader.exec_module(module) + return module + + +complexity_profiler = cast(Any, _load_local_module("profile_complexity")) EXPECTED_ASSETS = frozenset( { @@ -41,6 +74,9 @@ "docs/assets/cli-inspect.png", "docs/assets/distribution-check.png", "docs/assets/distribution-contract.svg", + "docs/assets/dp-complexity-cli.png", + "docs/assets/dp-layer-occupancy.svg", + "docs/assets/dp-work-counts.svg", "docs/assets/quality-gate.png", "docs/assets/setup-workflow.svg", "docs/assets/state-space-sweep.png", @@ -56,6 +92,8 @@ "docs/evidence/cli-inspect.txt", "docs/evidence/distribution-attestation.json", "docs/evidence/distribution-check.txt", + COMPLEXITY_JSON_PATH, + COMPLEXITY_TEXT_PATH, "docs/evidence/quality-gate.txt", "docs/evidence/state-space-sweep.csv", } @@ -175,6 +213,36 @@ "dp_transitions_upper_bound", ) +COMPLEXITY_CASE_IDS = ( + "default-visible-ascii-20", + "balanced-visible-ascii-24", + "skewed-visible-ascii-24", + "near-budget-eight-class-32", + "arbitrary-precision-one-class-256", + "rejected-eight-class-32", +) +_COMPLEXITY_POLICIES: dict[str, tuple[int, tuple[int, ...], tuple[int, ...]]] = { + "default-visible-ascii-20": (20, (26, 26, 10, 32), (1, 1, 1, 1)), + "balanced-visible-ascii-24": (24, (26, 26, 10, 32), (6, 6, 6, 6)), + "skewed-visible-ascii-24": (24, (26, 26, 10, 32), (21, 1, 1, 1)), + "near-budget-eight-class-32": (32, (1,) * 8, (2,) * 8), + "arbitrary-precision-one-class-256": (256, (94,), (256,)), + "rejected-eight-class-32": (32, (1,) * 8, (3,) * 8), +} +_COMPLEXITY_ACCEPTED_WORK: dict[str, tuple[int, int, int, int, int]] = { + "default-visible-ascii-20": (304, 1_212, 20, 320, 1_212), + "balanced-visible-ascii-24": (31_213, 124_848, 24, 57_624, 124_848), + "skewed-visible-ascii-24": (2_288, 9_148, 24, 4_224, 9_148), + "near-budget-eight-class-32": ( + 164_025, + 1_312_192, + 32, + 209_952, + 1_312_192, + ), + "arbitrary-precision-one-class-256": (33_153, 33_152, 256, 65_792, 33_152), +} + _SHA256 = re.compile(r"[0-9a-f]{64}\Z") _EMAIL = re.compile( r"(?i)(? dict[str, tuple[int, int]]: return viewports +def _validate_complexity_envelope(value: object) -> None: + envelope = _mapping(value, "evidence.dp_complexity_profile") + _exact_keys( + envelope, + { + "accepted_scenarios", + "contains_candidate", + "counter_contract", + "json_source_command", + "rejected_before_enumeration", + "report_schema_version", + "scenario_ids", + "text_source_command", + }, + "evidence.dp_complexity_profile", + ) + scenario_ids = _validate_string_list( + envelope["scenario_ids"], + "evidence.dp_complexity_profile.scenario_ids", + ) + if scenario_ids != list(COMPLEXITY_CASE_IDS): + _fail("complexity envelope has the wrong fixed scenario order") + if ( + _integer( + envelope["accepted_scenarios"], + "evidence.dp_complexity_profile.accepted_scenarios", + ) + != 5 + or _integer( + envelope["rejected_before_enumeration"], + "evidence.dp_complexity_profile.rejected_before_enumeration", + ) + != 1 + or _integer( + envelope["report_schema_version"], + "evidence.dp_complexity_profile.report_schema_version", + ) + != 1 + ): + _fail("complexity envelope has the wrong scenario cardinality or schema") + if _boolean( + envelope["contains_candidate"], + "evidence.dp_complexity_profile.contains_candidate", + ): + _fail("complexity envelope must not claim candidate output") + if envelope["counter_contract"] != "logical-dp-operations-v1": + _fail("complexity envelope has the wrong counter contract") + if envelope["json_source_command"] != COMPLEXITY_JSON_COMMAND: + _fail("complexity envelope has the wrong JSON source command") + if envelope["text_source_command"] != COMPLEXITY_TEXT_COMMAND: + _fail("complexity envelope has the wrong text source command") + + def _validate_evidence_claims(value: object) -> None: evidence = _mapping(value, "evidence") _exact_keys( evidence, - {"cli_inspect", "diagrams", "quality_gate", "sweep"}, + { + "cli_inspect", + "diagrams", + "dp_complexity_profile", + "quality_gate", + "sweep", + }, "evidence", ) + _validate_complexity_envelope(evidence["dp_complexity_profile"]) + sweep = _mapping(evidence["sweep"], "evidence.sweep") _exact_keys( sweep, @@ -1178,6 +1307,470 @@ def _validate_raw_evidence(textual: dict[str, str]) -> None: _fail("quality-gate transcript omits ordered command headers") +def _integer_list(value: object, label: str, *, minimum: int = 0) -> list[int]: + return [ + _integer(item, f"{label}[{index}]", minimum=minimum) + for index, item in enumerate(_sequence(value, label)) + ] + + +def _validate_profiled_call_map(value: object, label: str) -> dict[str, int]: + calls = _mapping(value, label) + _exact_keys(calls, {"primitive_calls", "total_calls"}, label) + primitive = _integer(calls["primitive_calls"], f"{label}.primitive_calls") + total = _integer(calls["total_calls"], f"{label}.total_calls") + if primitive > total: + _fail(f"{label} has more primitive calls than total calls") + return {"primitive_calls": primitive, "total_calls": total} + + +@lru_cache(maxsize=1) +def _expected_complexity_evidence() -> tuple[dict[str, object], str, str]: + try: + report = cast(dict[str, object], complexity_profiler.build_profile()) + json_text = cast(str, complexity_profiler.profile_json(report)) + text = cast(str, complexity_profiler.profile_text(report)) + except Exception as error: + raise EvidenceValidationError( + "the deterministic complexity profiler could not rebuild its report" + ) from error + transcript = f"$ {COMPLEXITY_TEXT_COMMAND}\n{text}" + return report, json_text, transcript + + +def _complexity_transcript(report: dict[str, object]) -> str: + try: + text = cast(str, complexity_profiler.profile_text(report)) + except Exception as error: + raise EvidenceValidationError( + "the deterministic complexity text renderer rejected its report" + ) from error + return f"$ {COMPLEXITY_TEXT_COMMAND}\n{text}" + + +def _validate_complexity_profile( + document: dict[str, object], + json_text: str, + transcript: str, +) -> None: + """Validate exact logical DP work without accepting performance claims.""" + + _exact_keys( + document, + { + "cases", + "claim_boundaries", + "counter_contract", + "profiler", + "scenario_set", + "schema_version", + }, + "complexity profile", + ) + if _integer(document["schema_version"], "complexity profile.schema_version") != 1: + _fail("complexity profile schema version is not supported") + if document["scenario_set"] != "deterministic-dp-work-v1": + _fail("complexity profile has the wrong fixed scenario set") + if document["counter_contract"] != "logical-dp-operations-v1": + _fail("complexity profile has the wrong counter contract") + + profiler = _mapping(document["profiler"], "complexity profile.profiler") + _exact_keys( + profiler, + { + "engine", + "retained_fields", + "selected_project_functions", + "timing_fields_retained", + }, + "complexity profile.profiler", + ) + if profiler["engine"] != "cProfile": + _fail("complexity profile uses an unexpected call-count engine") + if _validate_string_list( + profiler["selected_project_functions"], + "complexity profile.profiler.selected_project_functions", + ) != ["PasswordSpace._build_layers", "_consume"]: + _fail("complexity profile selects the wrong project functions") + if _validate_string_list( + profiler["retained_fields"], + "complexity profile.profiler.retained_fields", + ) != ["primitive_calls", "total_calls"]: + _fail("complexity profile retained fields are not call-count only") + if _boolean( + profiler["timing_fields_retained"], + "complexity profile.profiler.timing_fields_retained", + ): + _fail("complexity profile must discard profiler timing fields") + + boundaries = _mapping( + document["claim_boundaries"], + "complexity profile.claim_boundaries", + ) + boundary_keys = { + "candidate_output_included", + "entropy_consumed", + "hardware_performance_claimed", + "memory_usage_claimed", + "wall_clock_timing_included", + } + _exact_keys(boundaries, boundary_keys, "complexity profile.claim_boundaries") + if any( + _boolean(boundaries[key], f"complexity profile.claim_boundaries.{key}") + for key in boundary_keys + ): + _fail("complexity profile claim boundaries must all remain false") + + cases = _sequence(document["cases"], "complexity profile.cases") + if len(cases) != len(COMPLEXITY_CASE_IDS): + _fail("complexity profile must contain exactly six fixed cases") + observed_ids: list[str] = [] + cases_by_id: dict[str, dict[str, object]] = {} + for index, raw_case in enumerate(cases): + label = f"complexity profile.cases[{index}]" + case = _mapping(raw_case, label) + case_id = _string(case.get("case_id"), f"{label}.case_id") + observed_ids.append(case_id) + cases_by_id[case_id] = case + if case_id not in _COMPLEXITY_POLICIES: + _fail(f"{label} is not in the fixed scenario set") + + accepted = case_id in _COMPLEXITY_ACCEPTED_WORK + expected_keys = { + "bounds", + "case_id", + "outcome", + "policy", + "profiled_calls", + "work_counters", + } + expected_keys |= ( + {"independent_oracles", "observed"} if accepted else {"rejection"} + ) + _exact_keys(case, expected_keys, label) + + policy = _mapping(case["policy"], f"{label}.policy") + _exact_keys( + policy, + {"class_count", "class_minima", "class_widths", "length"}, + f"{label}.policy", + ) + length = _integer(policy["length"], f"{label}.policy.length", minimum=1) + class_count = _integer( + policy["class_count"], + f"{label}.policy.class_count", + minimum=1, + ) + widths = _integer_list( + policy["class_widths"], + f"{label}.policy.class_widths", + minimum=1, + ) + minima = _integer_list( + policy["class_minima"], + f"{label}.policy.class_minima", + ) + expected_length, expected_widths, expected_minima = _COMPLEXITY_POLICIES[ + case_id + ] + if ( + length != expected_length + or class_count != len(widths) + or len(minima) != class_count + or tuple(widths) != expected_widths + or tuple(minima) != expected_minima + or sum(minima) > length + ): + _fail(f"{label} does not match its fixed public policy") + + bounds = _mapping(case["bounds"], f"{label}.bounds") + bound_keys = { + "dp_cells_budget", + "dp_cells_upper_bound", + "dp_transitions_budget", + "dp_transitions_upper_bound", + "state_vectors_upper_bound_per_layer", + } + _exact_keys(bounds, bound_keys, f"{label}.bounds") + vectors = prod(minimum + 1 for minimum in minima) + cells_upper = (length + 1) * vectors + transitions_upper = class_count * cells_upper + if ( + _integer( + bounds["state_vectors_upper_bound_per_layer"], + f"{label}.bounds.state_vectors_upper_bound_per_layer", + minimum=1, + ) + != vectors + or _integer( + bounds["dp_cells_upper_bound"], + f"{label}.bounds.dp_cells_upper_bound", + minimum=1, + ) + != cells_upper + or _integer( + bounds["dp_transitions_upper_bound"], + f"{label}.bounds.dp_transitions_upper_bound", + minimum=1, + ) + != transitions_upper + or bounds["dp_cells_budget"] != MAX_DP_CELLS + or bounds["dp_transitions_budget"] != MAX_DP_TRANSITIONS + ): + _fail(f"{label} bounds do not match the production admission contract") + + profiled = _mapping(case["profiled_calls"], f"{label}.profiled_calls") + _exact_keys( + profiled, + {"build_layers", "consume"}, + f"{label}.profiled_calls", + ) + build_calls = _validate_profiled_call_map( + profiled["build_layers"], + f"{label}.profiled_calls.build_layers", + ) + consume_calls = _validate_profiled_call_map( + profiled["consume"], + f"{label}.profiled_calls.consume", + ) + work = _mapping(case["work_counters"], f"{label}.work_counters") + _exact_keys( + work, + {"consume_calls", "product_calls", "product_vectors"}, + f"{label}.work_counters", + ) + product_calls = _integer( + work["product_calls"], + f"{label}.work_counters.product_calls", + ) + product_vectors = _integer( + work["product_vectors"], + f"{label}.work_counters.product_vectors", + ) + observed_consume_calls = _integer( + work["consume_calls"], + f"{label}.work_counters.consume_calls", + ) + + if not accepted: + if ( + case["outcome"] != "rejected-before-enumeration" + or case["rejection"] != "dynamic-programming-complexity-budget" + ): + _fail("rejected complexity case has the wrong failure contract") + if cells_upper <= MAX_DP_CELLS and transitions_upper <= MAX_DP_TRANSITIONS: + _fail("rejected complexity case is below both production budgets") + zero_calls = {"primitive_calls": 0, "total_calls": 0} + if ( + build_calls != zero_calls + or consume_calls != zero_calls + or product_calls != 0 + or product_vectors != 0 + or observed_consume_calls != 0 + ): + _fail("rejected complexity case performed forbidden enumeration") + continue + + if case["outcome"] != "accepted": + _fail(f"{label} unexpectedly records a rejected outcome") + if cells_upper > MAX_DP_CELLS or transitions_upper > MAX_DP_TRANSITIONS: + _fail(f"{label} was accepted above a production complexity budget") + observed = _mapping(case["observed"], f"{label}.observed") + _exact_keys( + observed, + { + "layer_occupancy", + "occupied_cells", + "peak_count_bits", + "transitions", + "valid_state_space", + }, + f"{label}.observed", + ) + occupancy = _integer_list( + observed["layer_occupancy"], + f"{label}.observed.layer_occupancy", + minimum=1, + ) + occupied = _integer( + observed["occupied_cells"], + f"{label}.observed.occupied_cells", + minimum=1, + ) + transitions = _integer( + observed["transitions"], + f"{label}.observed.transitions", + ) + peak_bits = _integer( + observed["peak_count_bits"], + f"{label}.observed.peak_count_bits", + minimum=1, + ) + valid = _string( + observed["valid_state_space"], + f"{label}.observed.valid_state_space", + ) + if re.fullmatch(r"[1-9][0-9]*", valid) is None: + _fail(f"{label}.observed.valid_state_space is not canonical decimal") + if ( + len(occupancy) != length + 1 + or occupancy[0] != 1 + or occupied != sum(occupancy) + or occupied > cells_upper + or transitions != class_count * (occupied - 1) + ): + _fail(f"{label} has inconsistent occupied cell or transition counts") + ( + expected_occupied, + expected_transitions, + expected_product_calls, + expected_vectors, + expected_consume, + ) = _COMPLEXITY_ACCEPTED_WORK[case_id] + if ( + occupied != expected_occupied + or transitions != expected_transitions + or product_calls != expected_product_calls + or product_vectors != expected_vectors + or observed_consume_calls != expected_consume + ): + _fail(f"{label} logical work counters changed from the fixed study") + if ( + build_calls != {"primitive_calls": 1, "total_calls": 1} + or consume_calls + != {"primitive_calls": transitions, "total_calls": transitions} + or product_calls != length + or product_vectors != length * vectors + or observed_consume_calls != transitions + ): + _fail(f"{label} profiler counters do not match the loop or call contract") + oracles = _mapping( + case["independent_oracles"], + f"{label}.independent_oracles", + ) + _exact_keys( + oracles, + {"occupied_cells", "transitions", "valid_state_space"}, + f"{label}.independent_oracles", + ) + oracle_occupied = _integer( + oracles["occupied_cells"], + f"{label}.independent_oracles.occupied_cells", + minimum=1, + ) + oracle_transitions = _integer( + oracles["transitions"], + f"{label}.independent_oracles.transitions", + ) + oracle_valid = _string( + oracles["valid_state_space"], + f"{label}.independent_oracles.valid_state_space", + ) + if ( + oracle_occupied != occupied + or oracle_transitions != transitions + or oracle_valid != valid + ): + _fail(f"{label} observed work disagrees with an independent oracle") + del peak_bits + + if observed_ids != list(COMPLEXITY_CASE_IDS) or len(cases_by_id) != len(cases): + _fail("complexity profile cases are duplicated or out of fixed order") + + balanced = cases_by_id["balanced-visible-ascii-24"] + skewed = cases_by_id["skewed-visible-ascii-24"] + balanced_policy = _mapping(balanced["policy"], "balanced policy") + skewed_policy = _mapping(skewed["policy"], "skewed policy") + balanced_observed = _mapping(balanced["observed"], "balanced observation") + skewed_observed = _mapping(skewed["observed"], "skewed observation") + if ( + balanced_policy["length"] != skewed_policy["length"] + or balanced_policy["class_widths"] != skewed_policy["class_widths"] + or sum(cast(list[int], balanced_policy["class_minima"])) + != sum(cast(list[int], skewed_policy["class_minima"])) + or _integer(balanced_observed["occupied_cells"], "balanced cells") + <= _integer(skewed_observed["occupied_cells"], "skewed cells") + or _integer(balanced_observed["transitions"], "balanced transitions") + <= _integer(skewed_observed["transitions"], "skewed transitions") + ): + _fail("complexity profile lost its balanced-versus-skewed differential") + + _validate_safe_text(json_text, "complexity profile JSON") + _validate_safe_text(transcript, "complexity profile transcript") + if ( + not transcript.endswith( + "Safety: no entropy consumed and no password candidate " + "constructed or emitted.\n" + ) + or "no elapsed-time, RSS, hardware, or speed claim" not in transcript + ): + _fail("complexity transcript omits its privacy or claim boundaries") + + expected_report, expected_json, expected_transcript = ( + _expected_complexity_evidence() + ) + if document != expected_report or json_text != expected_json: + _fail("complexity profile is stale against a fresh deterministic rebuild") + if transcript != expected_transcript: + _fail("complexity transcript is not the exact real text representation") + + +def _validate_complexity_renderings( + root: Path, + report: dict[str, object], + transcript: str, +) -> None: + """Require and byte-compare every pure complexity renderer.""" + + try: + rendering = _load_local_module("evidence_rendering") + except (ImportError, OSError, RuntimeError) as error: + raise EvidenceValidationError( + "complexity renderers could not be loaded" + ) from error + for renderer_name, relative in ( + ("render_dp_layer_occupancy_svg", "docs/assets/dp-layer-occupancy.svg"), + ("render_dp_work_counts_svg", "docs/assets/dp-work-counts.svg"), + ): + renderer = getattr(rendering, renderer_name, None) + if not callable(renderer): + _fail(f"required pure complexity renderer is missing: {renderer_name}") + try: + rendered = renderer(report) + except Exception as error: + raise EvidenceValidationError( + f"pure complexity renderer failed: {renderer_name}" + ) from error + if type(rendered) is str: + expected = rendered.encode("utf-8") + elif type(rendered) is bytes: + expected = rendered + else: + _fail( + f"pure complexity renderer returned an invalid value: {renderer_name}" + ) + actual = _read_bounded(root / relative, relative) + if actual != expected: + _fail(f"complexity visual is stale against its pure renderer: {relative}") + + png_renderer = getattr(rendering, "render_terminal_png_bytes", None) + if not callable(png_renderer): + _fail("required pure complexity PNG renderer is missing") + try: + rendered_png = png_renderer( + transcript=transcript, + title=COMPLEXITY_PNG_TITLE, + ) + except Exception as error: + raise EvidenceValidationError("pure complexity PNG renderer failed") from error + if type(rendered_png) is not bytes: + _fail("pure complexity PNG renderer returned an invalid value") + png_relative = "docs/assets/dp-complexity-cli.png" + actual_png = _read_bounded(root / png_relative, png_relative) + if actual_png != rendered_png: + _fail(f"complexity visual is stale against its pure renderer: {png_relative}") + + def _distribution_input_digest(root: Path) -> str: digest = hashlib.sha256() for relative in DISTRIBUTION_INPUTS: @@ -1834,8 +2427,8 @@ def validate_evidence(root: Path) -> None: }, "manifest", ) - if document["schema_version"] != 1: - _fail("manifest.schema_version must be 1") + if document["schema_version"] != 2: + _fail("manifest.schema_version must be 2") if document["generator"] != GENERATOR_PATH: _fail("manifest.generator is incorrect") _validate_safe_text(manifest_text, "manifest") @@ -1846,6 +2439,22 @@ def validate_evidence(root: Path) -> None: textual = _validate_artifacts(repository, document["artifacts"], viewports) for artifact, text in textual.items(): _validate_safe_text(text, artifact) + complexity_document, complexity_text = _load_json( + repository / COMPLEXITY_JSON_PATH, + label="complexity profile", + ) + if textual[COMPLEXITY_JSON_PATH] != complexity_text: + _fail("complexity profile changed between bounded reads") + _validate_complexity_profile( + complexity_document, + complexity_text, + textual[COMPLEXITY_TEXT_PATH], + ) + _validate_complexity_renderings( + repository, + complexity_document, + textual[COMPLEXITY_TEXT_PATH], + ) distribution_document, distribution_text = _load_json( repository / "docs/evidence/distribution-attestation.json", label="distribution attestation", diff --git a/scripts/evidence_rendering.py b/scripts/evidence_rendering.py index 567148d..8c0f3c4 100644 --- a/scripts/evidence_rendering.py +++ b/scripts/evidence_rendering.py @@ -11,8 +11,10 @@ from collections.abc import Sequence from dataclasses import dataclass from io import BytesIO +from itertools import pairwise +from math import prod from pathlib import Path -from typing import Any +from typing import Any, Literal, cast Image: Any = importlib.import_module("PIL.Image") ImageDraw: Any = importlib.import_module("PIL.ImageDraw") @@ -51,6 +53,443 @@ def frame_count(self) -> int: return len(self.frames) +@dataclass(frozen=True, slots=True) +class _DpCaseSpec: + identifier: str + title: str + length: int + class_widths: tuple[int, ...] + class_minima: tuple[int, ...] + outcome: Literal["accepted", "rejected-before-enumeration"] + + +@dataclass(frozen=True, slots=True) +class _DpProfileCase: + spec: _DpCaseSpec + cells_upper_bound: int + transitions_upper_bound: int + product_calls: int + product_vectors: int + consume_calls: int + layer_occupancy: tuple[int, ...] | None + occupied_cells: int + transitions: int + peak_count_bits: int | None + + +_DP_CASE_SPECS = ( + _DpCaseSpec( + "default-visible-ascii-20", + "Default visible ASCII", + 20, + (26, 26, 10, 32), + (1, 1, 1, 1), + "accepted", + ), + _DpCaseSpec( + "balanced-visible-ascii-24", + "Balanced strict minima", + 24, + (26, 26, 10, 32), + (6, 6, 6, 6), + "accepted", + ), + _DpCaseSpec( + "skewed-visible-ascii-24", + "Skewed strict minima", + 24, + (26, 26, 10, 32), + (21, 1, 1, 1), + "accepted", + ), + _DpCaseSpec( + "near-budget-eight-class-32", + "Eight-class budget edge", + 32, + (1, 1, 1, 1, 1, 1, 1, 1), + (2, 2, 2, 2, 2, 2, 2, 2), + "accepted", + ), + _DpCaseSpec( + "arbitrary-precision-one-class-256", + "Arbitrary-precision depth", + 256, + (94,), + (256,), + "accepted", + ), + _DpCaseSpec( + "rejected-eight-class-32", + "Fail-fast budget guard", + 32, + (1, 1, 1, 1, 1, 1, 1, 1), + (3, 3, 3, 3, 3, 3, 3, 3), + "rejected-before-enumeration", + ), +) + + +def _profile_mapping( + value: object, + *, + keys: set[str], + label: str, +) -> dict[str, object]: + if type(value) is not dict: + raise ValueError(f"invalid complexity profile {label}") + mapping = cast(dict[str, object], value) + if set(mapping) != keys: + raise ValueError(f"invalid complexity profile {label}") + return mapping + + +def _profile_list(value: object, *, label: str) -> list[object]: + if type(value) is not list: + raise ValueError(f"invalid complexity profile {label}") + return cast(list[object], value) + + +def _profile_integer( + value: object, + *, + label: str, + minimum: int = 0, +) -> int: + if type(value) is not int or value < minimum: + raise ValueError(f"invalid complexity profile {label}") + return value + + +def _profile_integer_tuple( + value: object, + *, + label: str, + minimum: int, +) -> tuple[int, ...]: + values = _profile_list(value, label=label) + return tuple( + _profile_integer(item, label=label, minimum=minimum) for item in values + ) + + +def _profile_calls(value: object, *, label: str) -> tuple[int, int]: + calls = _profile_mapping( + value, + keys={"primitive_calls", "total_calls"}, + label=label, + ) + primitive = _profile_integer( + calls["primitive_calls"], + label=f"{label}.primitive_calls", + ) + total = _profile_integer(calls["total_calls"], label=f"{label}.total_calls") + if primitive > total: + raise ValueError(f"invalid complexity profile {label}") + return primitive, total + + +def _profile_decimal(value: object, *, label: str) -> str: + if ( + type(value) is not str + or not value + or len(value) > 4096 + or not value.isascii() + or not value.isdecimal() + or (len(value) > 1 and value.startswith("0")) + or value == "0" + ): + raise ValueError(f"invalid complexity profile {label}") + return value + + +def _validated_dp_profile(report: object) -> tuple[_DpProfileCase, ...]: + document = _profile_mapping( + report, + keys={ + "cases", + "claim_boundaries", + "counter_contract", + "profiler", + "scenario_set", + "schema_version", + }, + label="document", + ) + if ( + type(document["schema_version"]) is not int + or document["schema_version"] != 1 + or document["scenario_set"] != "deterministic-dp-work-v1" + or document["counter_contract"] != "logical-dp-operations-v1" + ): + raise ValueError("invalid complexity profile identity") + + profiler = _profile_mapping( + document["profiler"], + keys={ + "engine", + "retained_fields", + "selected_project_functions", + "timing_fields_retained", + }, + label="profiler", + ) + if ( + profiler["engine"] != "cProfile" + or profiler["selected_project_functions"] + != ["PasswordSpace._build_layers", "_consume"] + or profiler["retained_fields"] != ["primitive_calls", "total_calls"] + or profiler["timing_fields_retained"] is not False + ): + raise ValueError("invalid complexity profile profiler contract") + + boundaries = _profile_mapping( + document["claim_boundaries"], + keys={ + "candidate_output_included", + "entropy_consumed", + "hardware_performance_claimed", + "memory_usage_claimed", + "wall_clock_timing_included", + }, + label="claim_boundaries", + ) + if any(value is not False for value in boundaries.values()): + raise ValueError("invalid complexity profile claim boundaries") + + raw_cases = _profile_list(document["cases"], label="cases") + if len(raw_cases) != len(_DP_CASE_SPECS): + raise ValueError("invalid complexity profile cases") + + validated: list[_DpProfileCase] = [] + for index, (raw_case, spec) in enumerate( + zip(raw_cases, _DP_CASE_SPECS, strict=True) + ): + common_keys = { + "bounds", + "case_id", + "outcome", + "policy", + "profiled_calls", + "work_counters", + } + case_keys = ( + common_keys | {"independent_oracles", "observed"} + if spec.outcome == "accepted" + else common_keys | {"rejection"} + ) + case = _profile_mapping( + raw_case, + keys=case_keys, + label=f"cases[{index}]", + ) + if case["case_id"] != spec.identifier or case["outcome"] != spec.outcome: + raise ValueError("invalid complexity profile case identity") + + policy = _profile_mapping( + case["policy"], + keys={"class_count", "class_minima", "class_widths", "length"}, + label=f"cases[{index}].policy", + ) + length = _profile_integer( + policy["length"], + label=f"cases[{index}].policy.length", + minimum=1, + ) + class_count = _profile_integer( + policy["class_count"], + label=f"cases[{index}].policy.class_count", + minimum=1, + ) + class_widths = _profile_integer_tuple( + policy["class_widths"], + label=f"cases[{index}].policy.class_widths", + minimum=1, + ) + class_minima = _profile_integer_tuple( + policy["class_minima"], + label=f"cases[{index}].policy.class_minima", + minimum=0, + ) + if ( + length != spec.length + or class_count != len(spec.class_widths) + or class_widths != spec.class_widths + or class_minima != spec.class_minima + or len(class_minima) != class_count + ): + raise ValueError("invalid complexity profile policy") + + vectors_upper_bound = prod(minimum + 1 for minimum in class_minima) + cells_upper_bound = (length + 1) * vectors_upper_bound + transitions_upper_bound = class_count * cells_upper_bound + bounds = _profile_mapping( + case["bounds"], + keys={ + "dp_cells_budget", + "dp_cells_upper_bound", + "dp_transitions_budget", + "dp_transitions_upper_bound", + "state_vectors_upper_bound_per_layer", + }, + label=f"cases[{index}].bounds", + ) + expected_bounds = { + "dp_cells_budget": 250_000, + "dp_cells_upper_bound": cells_upper_bound, + "dp_transitions_budget": 2_000_000, + "dp_transitions_upper_bound": transitions_upper_bound, + "state_vectors_upper_bound_per_layer": vectors_upper_bound, + } + if any(bounds[key] != value for key, value in expected_bounds.items()): + raise ValueError("invalid complexity profile bounds") + + profiled_calls = _profile_mapping( + case["profiled_calls"], + keys={"build_layers", "consume"}, + label=f"cases[{index}].profiled_calls", + ) + build_primitive, build_total = _profile_calls( + profiled_calls["build_layers"], + label=f"cases[{index}].profiled_calls.build_layers", + ) + consume_primitive, consume_total = _profile_calls( + profiled_calls["consume"], + label=f"cases[{index}].profiled_calls.consume", + ) + work = _profile_mapping( + case["work_counters"], + keys={"consume_calls", "product_calls", "product_vectors"}, + label=f"cases[{index}].work_counters", + ) + product_calls = _profile_integer( + work["product_calls"], + label=f"cases[{index}].work_counters.product_calls", + ) + product_vectors = _profile_integer( + work["product_vectors"], + label=f"cases[{index}].work_counters.product_vectors", + ) + work_consume_calls = _profile_integer( + work["consume_calls"], + label=f"cases[{index}].work_counters.consume_calls", + ) + + if spec.outcome == "rejected-before-enumeration": + if ( + case["rejection"] != "dynamic-programming-complexity-budget" + or cells_upper_bound <= 250_000 + or transitions_upper_bound <= 2_000_000 + or any( + value != 0 + for value in ( + build_primitive, + build_total, + consume_primitive, + consume_total, + product_calls, + product_vectors, + work_consume_calls, + ) + ) + ): + raise ValueError("invalid complexity profile rejection") + validated.append( + _DpProfileCase( + spec=spec, + cells_upper_bound=cells_upper_bound, + transitions_upper_bound=transitions_upper_bound, + product_calls=0, + product_vectors=0, + consume_calls=0, + layer_occupancy=None, + occupied_cells=0, + transitions=0, + peak_count_bits=None, + ) + ) + continue + + observed = _profile_mapping( + case["observed"], + keys={ + "layer_occupancy", + "occupied_cells", + "peak_count_bits", + "transitions", + "valid_state_space", + }, + label=f"cases[{index}].observed", + ) + layer_occupancy = _profile_integer_tuple( + observed["layer_occupancy"], + label=f"cases[{index}].observed.layer_occupancy", + minimum=1, + ) + occupied_cells = _profile_integer( + observed["occupied_cells"], + label=f"cases[{index}].observed.occupied_cells", + minimum=1, + ) + transitions = _profile_integer( + observed["transitions"], + label=f"cases[{index}].observed.transitions", + minimum=1, + ) + peak_count_bits = _profile_integer( + observed["peak_count_bits"], + label=f"cases[{index}].observed.peak_count_bits", + minimum=1, + ) + valid_state_space = _profile_decimal( + observed["valid_state_space"], + label=f"cases[{index}].observed.valid_state_space", + ) + independent = _profile_mapping( + case["independent_oracles"], + keys={"occupied_cells", "transitions", "valid_state_space"}, + label=f"cases[{index}].independent_oracles", + ) + if ( + len(layer_occupancy) != length + 1 + or layer_occupancy[0] != 1 + or layer_occupancy[-1] != vectors_upper_bound + or any( + current < previous for previous, current in pairwise(layer_occupancy) + ) + or any(value > vectors_upper_bound for value in layer_occupancy) + or sum(layer_occupancy) != occupied_cells + or transitions != class_count * (occupied_cells - 1) + or peak_count_bits != (sum(class_widths) ** length).bit_length() + or build_primitive != 1 + or build_total != 1 + or consume_primitive != transitions + or consume_total != transitions + or product_calls != length + or product_vectors != length * vectors_upper_bound + or work_consume_calls != transitions + or independent["occupied_cells"] != occupied_cells + or independent["transitions"] != transitions + or independent["valid_state_space"] != valid_state_space + ): + raise ValueError("invalid complexity profile accepted case") + validated.append( + _DpProfileCase( + spec=spec, + cells_upper_bound=cells_upper_bound, + transitions_upper_bound=transitions_upper_bound, + product_calls=product_calls, + product_vectors=product_vectors, + consume_calls=work_consume_calls, + layer_occupancy=layer_occupancy, + occupied_cells=occupied_cells, + transitions=transitions, + peak_count_bits=peak_count_bits, + ) + ) + + return tuple(validated) + + def _svg_document( *, title: str, @@ -557,6 +996,210 @@ def write_distribution_svg( ) +def _counter_bar(*, x: int, y: int, width: int, observed: int, bound: int) -> str: + if observed == 0: + return ( + f'' + ) + filled = max(2, (width * observed + bound // 2) // bound) + return ( + f'' + f'' + ) + + +def render_dp_work_counts_svg(report: object) -> str: + """Return exact logical DP work against the preflight upper bounds.""" + + cases = _validated_dp_profile(report) + rows: list[str] = [] + for index, case in enumerate(cases): + y = 300 + index * 120 + minima = " / ".join(str(value) for value in case.spec.class_minima) + aria = ( + f"{case.spec.title}; length {case.spec.length}; " + f"occupied cells {case.occupied_cells}; cell bound " + f"{case.cells_upper_bound}; transition calls {case.transitions}; " + f"transition bound {case.transitions_upper_bound}" + ) + if case.layer_occupancy is None: + cell_label = ( + f"preflight stop · bound {case.cells_upper_bound:,} / budget 250,000" + ) + transition_label = ( + f"preflight stop · bound {case.transitions_upper_bound:,} / " + "budget 2,000,000" + ) + work_label = "product 0 calls · 0 vectors · consume 0" + else: + cell_label = ( + f"{case.occupied_cells:,} occupied / {case.cells_upper_bound:,} bound" + ) + transition_label = ( + f"{case.transitions:,} calls / {case.transitions_upper_bound:,} bound" + ) + work_label = ( + f"product {case.product_calls:,} calls · " + f"{case.product_vectors:,} vectors · " + f"consume {case.consume_calls:,}" + ) + rows.append( + f''' + + {case.spec.title} + L={case.spec.length} · minima {minima} + {work_label} + {_counter_bar(x=470, y=y + 3, width=500, observed=case.occupied_cells, bound=case.cells_upper_bound)} + {cell_label} + {_counter_bar(x=1125, y=y + 3, width=500, observed=case.transitions, bound=case.transitions_upper_bound)} + {transition_label} + ''' + ) + + body = f''' Logical DP work, measured without a stopwatch + Five accepted policies expose actual table work; the sixth proves the preflight budget stops before enumeration. + + DETERMINISTIC COUNTER CONTRACT · cProfile CALL COUNTS + ITERATOR COUNTERS + Logical operations only · no elapsed time · no RSS · no hardware performance claim + OCCUPIED DP CELLS / RECTANGULAR BOUND + _CONSUME CALLS / TRANSITION BOUND +{"".join(rows)} + Bars encode exact observed-to-bound ratios; every raw integer remains printed beside its bar. + rejected case: product 0 · consume 0''' + return _svg_document( + title="Deterministic dynamic-programming work counts", + description=( + "Six fixed password-policy cases compare exact logical occupied " + "cells and transition calls with preflight bounds. The rejected " + "case records no dynamic-programming enumeration." + ), + width=1800, + height=1120, + body=body, + ) + + +def write_dp_work_counts_svg(report: object, path: Path) -> None: + """Write the deterministic logical-work SVG.""" + + path.write_text(render_dp_work_counts_svg(report), encoding="utf-8") + + +def _occupancy_points( + values: tuple[int, ...], + *, + x: int, + y: int, + width: int, + height: int, +) -> str: + last_index = len(values) - 1 + peak = max(values) + denominator = max(1, peak - 1) + return " ".join( + f"{x + index * width // last_index}," + f"{y + height - (value - 1) * height // denominator}" + for index, value in enumerate(values) + ) + + +def render_dp_layer_occupancy_svg(report: object) -> str: + """Return exact per-layer sparse-table occupancy for accepted cases.""" + + cases = _validated_dp_profile(report) + panels: list[str] = [] + for index, case in enumerate(cases): + column = index % 2 + row = index // 2 + x = 55 + column * 870 + y = 230 + row * 340 + minima = " / ".join(str(value) for value in case.spec.class_minima) + if case.layer_occupancy is None: + aria = ( + f"{case.spec.title}; rejected before enumeration; no layer " + "occupancy curve; product calls zero; consume calls zero" + ) + panels.append( + f''' + + {case.spec.title} + L={case.spec.length} · minima {minima} + + NO CURVE · PRECHECK REJECTED + cell bound {case.cells_upper_bound:,} / 250,000 · transition bound {case.transitions_upper_bound:,} / 2,000,000 + product 0 calls · 0 vectors · consume 0 + No layer table exists, so no occupancy series is drawn. + ''' + ) + continue + + values = case.layer_occupancy + peak = max(values) + plot_x = x + 48 + plot_y = y + 120 + plot_width = 724 + plot_height = 100 + points = _occupancy_points( + values, + x=plot_x, + y=plot_y, + width=plot_width, + height=plot_height, + ) + start_y = plot_y + plot_height + end_y = plot_y + aria = ( + f"{case.spec.title}; exact occupancy for layers zero through " + f"{case.spec.length}; total occupied cells {case.occupied_cells}; " + f"peak layer occupancy {peak}; transition calls {case.transitions}" + ) + panels.append( + f''' + + {case.spec.title} + L={case.spec.length} · minima {minima} · peak {peak:,} states + states {peak:,} + + + + + + remaining 0 · states 1 + remaining {case.spec.length} · states {peak:,} + occupied {case.occupied_cells:,} · product {case.product_calls:,} calls / {case.product_vectors:,} vectors · consume {case.consume_calls:,} + ''' + ) + + body = f''' Sparse DP occupancy, layer by exact layer + Every accepted curve is drawn directly from the profiled layer_occupancy array; the rejected policy has no invented series. + + Logical state counts only · no elapsed time · no RSS · no hardware performance claim +{"".join(panels)} + Horizontal axis: remaining positions. Vertical axis: retained bounded-deficit vectors on an exact linear scale within each panel. + 5 observed curves · 1 fail-fast boundary''' + return _svg_document( + title="Exact dynamic-programming layer occupancy", + description=( + "Five panels plot exact retained deficit-vector counts by " + "remaining position. A sixth panel records a complexity-budget " + "rejection and deliberately contains no curve." + ), + width=1800, + height=1320, + body=body, + ) + + +def write_dp_layer_occupancy_svg(report: object, path: Path) -> None: + """Write the deterministic layer-occupancy SVG.""" + + path.write_text(render_dp_layer_occupancy_svg(report), encoding="utf-8") + + def _wrapped_lines(transcript: str, width: int) -> list[str]: lines: list[str] = [] for line in transcript.rstrip("\n").splitlines(): @@ -577,8 +1220,8 @@ def _wrapped_lines(transcript: str, width: int) -> list[str]: return lines -def render_terminal_png(*, transcript: str, title: str, path: Path) -> None: - """Render a real, already-recorded transcript without terminal metadata.""" +def render_terminal_png_bytes(*, transcript: str, title: str) -> bytes: + """Return a deterministic PNG for a real, already-recorded transcript.""" width = 1600 padding = 54 @@ -618,7 +1261,15 @@ def render_terminal_png(*, transcript: str, title: str, path: Path) -> None: draw.text((padding, y), line, fill=color, font=body_font) y += line_height - image.save(path, format="PNG", optimize=True, compress_level=9) + buffer = BytesIO() + image.save(buffer, format="PNG", optimize=True, compress_level=9) + return buffer.getvalue() + + +def render_terminal_png(*, transcript: str, title: str, path: Path) -> None: + """Write a deterministic transcript PNG without terminal metadata.""" + + path.write_bytes(render_terminal_png_bytes(transcript=transcript, title=title)) def recompress_png(path: Path) -> None: diff --git a/scripts/generate_evidence.py b/scripts/generate_evidence.py index 46d377a..4bc678f 100644 --- a/scripts/generate_evidence.py +++ b/scripts/generate_evidence.py @@ -26,6 +26,7 @@ from urllib.parse import urlsplit import attest_distribution as distribution_attester +import profile_complexity as complexity_profiler from evidence_rendering import ( GOLD, LINE, @@ -37,6 +38,8 @@ render_terminal_png, write_architecture_svg, write_distribution_svg, + write_dp_layer_occupancy_svg, + write_dp_work_counts_svg, write_gif, write_sampling_svg, write_setup_svg, @@ -64,6 +67,12 @@ "password-policy-lab sweep --start-length 8 --end-length 32 --format csv" ) INSPECT_COMMAND = "password-policy-lab inspect --length 20 --format text" +PROFILE_JSON_COMMAND = ( + "PYTHONPATH=src python scripts/profile_complexity.py --format json" +) +PROFILE_TEXT_COMMAND = ( + "PYTHONPATH=src python scripts/profile_complexity.py --format text" +) QUALITY_COMMANDS = ( "python -m ruff check app.py scripts src tests", "python -m ruff format --check app.py scripts src tests", @@ -82,6 +91,9 @@ "docs/assets/cli-inspect.png", "docs/assets/distribution-check.png", "docs/assets/distribution-contract.svg", + "docs/assets/dp-complexity-cli.png", + "docs/assets/dp-layer-occupancy.svg", + "docs/assets/dp-work-counts.svg", "docs/assets/quality-gate.png", "docs/assets/setup-workflow.svg", "docs/assets/state-space-sweep.png", @@ -93,6 +105,8 @@ "docs/evidence/cli-inspect.txt", "docs/evidence/distribution-attestation.json", "docs/evidence/distribution-check.txt", + "docs/evidence/dp-complexity-profile.json", + "docs/evidence/dp-complexity-profile.txt", "docs/evidence/quality-gate.txt", "docs/evidence/state-space-sweep.csv", "docs/evidence/web-validation-reference.png", @@ -101,7 +115,12 @@ _ABSOLUTE_PATH = re.compile( r"(?\d+ passed" + r"(?:, \d+ (?:skipped|deselected|xfailed|xpassed|warnings?))*)" + r"(?: in \d+(?:\.\d+)?s(?: \(\d+:\d{2}:\d{2}\))?" + r"| \(\d+:\d{2}:\d{2}\))$" +) class _WaitressServer(Protocol): @@ -267,6 +286,50 @@ def _write_cli_evidence() -> list[_SweepRow]: return rows +def _write_complexity_evidence() -> dict[str, object]: + report = complexity_profiler.build_profile() + expected_json = complexity_profiler.profile_json(report) + expected_text = complexity_profiler.profile_text(report) + json_output = _run( + ( + str(PYTHON), + "scripts/profile_complexity.py", + "--format", + "json", + ) + ) + text_output = _run( + ( + str(PYTHON), + "scripts/profile_complexity.py", + "--format", + "text", + ) + ) + if json_output != expected_json or text_output != expected_text: + raise RuntimeError( + "complexity CLI output disagrees with the in-process profile" + ) + + (EVIDENCE_DIR / "dp-complexity-profile.json").write_text( + json_output, + encoding="utf-8", + ) + transcript = f"$ {PROFILE_TEXT_COMMAND}\n{text_output}" + (EVIDENCE_DIR / "dp-complexity-profile.txt").write_text( + transcript, + encoding="utf-8", + ) + render_terminal_png( + transcript=transcript, + title="Deterministic DP work profile · six fixed policies", + path=ASSET_DIR / "dp-complexity-cli.png", + ) + write_dp_work_counts_svg(report, ASSET_DIR / "dp-work-counts.svg") + write_dp_layer_occupancy_svg(report, ASSET_DIR / "dp-layer-occupancy.svg") + return report + + def _render_sweep_chart(rows: Sequence[_SweepRow]) -> None: matplotlib: Any = importlib.import_module("matplotlib") matplotlib.use("Agg") @@ -981,7 +1044,7 @@ def _write_distribution_evidence() -> None: def _normalize_quality_output(output: str) -> str: normalized = output.replace("\r\n", "\n").replace(str(ROOT), ".") - normalized = _PYTEST_DURATION.sub(r"\1", normalized) + normalized = _PYTEST_DURATION.sub(r"\g