From 50ce484c1bc1965ad1dc13d55ec644a0da951e43 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Wed, 1 Dec 2021 17:41:33 -0800 Subject: [PATCH] SEDIT-TOPLEVEL: added GET-WINDOW function So window is available without declarations. Also, there was an extra-argument error in SEDIT:SEDIT, in the calls to START-PROCESS. Now fixed --- sources/SEDIT-EXPORTS | 20 ++++--- sources/SEDIT-EXPORTS.DFASL | Bin 2240 -> 2278 bytes sources/SEDIT-TOPLEVEL | 109 ++++++++++++++++++----------------- sources/SEDIT-TOPLEVEL.DFASL | Bin 13668 -> 13660 bytes 4 files changed, 67 insertions(+), 62 deletions(-) diff --git a/sources/SEDIT-EXPORTS b/sources/SEDIT-EXPORTS index f1e5c4f3..72521baa 100644 --- a/sources/SEDIT-EXPORTS +++ b/sources/SEDIT-EXPORTS @@ -1,13 +1,15 @@ -(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL))) -(IL:FILECREATED "17-May-90 11:01:36" IL:|{DSK}local>lde>lispcore>sources>SEDIT-EXPORTS.;2| 2834 +(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL)) READTABLE "XCL" BASE 10) + +(IL:FILECREATED " 1-Dec-2021 17:38:50"  +IL:|{DSK}kaplan>Local>medley3.5>my-medley>sources>SEDIT-EXPORTS.;2| 2883 IL:|changes| IL:|to:| (IL:VARS IL:SEDIT-EXPORTSCOMS) - IL:|previous| IL:|date:| " 5-Feb-88 11:38:07" -IL:|{DSK}local>lde>lispcore>sources>SEDIT-EXPORTS.;1|) + IL:|previous| IL:|date:| "17-May-90 11:01:36" +IL:|{DSK}kaplan>Local>medley3.5>my-medley>sources>SEDIT-EXPORTS.;1|) -; Copyright (c) 1987, 1988, 1990 by Venue & Xerox Corporation. All rights reserved. +; Copyright (c) 1987-1988, 1990 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:SEDIT-EXPORTSCOMS) @@ -18,7 +20,7 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-EXPORTS.;1|) (IL:* IL:|;;| "REGION MANAGER") - (IL:P (EXPORT '(GET-WINDOW-REGION SAVE-WINDOW-REGION)) + (IL:P (EXPORT '(GET-WINDOW-REGION SAVE-WINDOW-REGION GET-WINDOW)) (EXPORT '(KEEP-WINDOW-REGION))) (IL:* IL:|;;| "PROGRAMMERS INTERFACE") @@ -41,8 +43,8 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-EXPORTS.;1|) (IL:PUTPROPS IL:SEDIT-EXPORTS IL:FILETYPE :COMPILE-FILE) (IL:PUTPROPS IL:SEDIT-EXPORTS IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE - (DEFPACKAGE IL:SEDIT - (:USE IL:LISP IL:XCL)))) + (DEFPACKAGE IL:SEDIT (:USE IL:LISP + IL:XCL)))) (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:FILESLOAD IL:SEDIT-DECLS) @@ -53,7 +55,7 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-EXPORTS.;1|) (IL:* IL:|;;| "REGION MANAGER") -(EXPORT '(GET-WINDOW-REGION SAVE-WINDOW-REGION)) +(EXPORT '(GET-WINDOW-REGION SAVE-WINDOW-REGION GET-WINDOW)) (EXPORT '(KEEP-WINDOW-REGION)) diff --git a/sources/SEDIT-EXPORTS.DFASL b/sources/SEDIT-EXPORTS.DFASL index ea3637facb234dd5f16b610da036d7966df250db..06b67e49f60d205d827a3a017b234a3cd5bf4abe 100644 GIT binary patch delta 980 zcma)5O>fgc5XG@w^3k*e3aZpdm{2GRHEL27s(@0t@urwKwreL%dm~MZ1WiAbfKUaf zCr(&u%Tmd6;%9I}+&IF4-@u6*KcLLoO`G00dH2nGGjC?c-%`I*2lDND&+Yb#8_k_g zbE~Ltx0;>errYkgyR-M^ikrJ~csaDj*Yj~_`&GB)O3$8mT&dM{n=jqAB;{n)ZOQqW zd``+eD9p|m=4Rq$#nI2x8g6^b?X{b`(^5`CfxEfxb|t1lpf5Z8^@SUvpSfDvKk#BU zQPi5Us1x7gS4%oV!lL4kIQ`3g;L>z2vc&Q9d*r^I@jrU;B~p_cnxUEv$V~f`2gyJ3 z#;Qt%lr^2m#8}a6)2I@o=2HQ#ggGI`n8T1{pAi^^OE&^3UErsOWlVwa3`~JUU-P}i z37E5hH(?TPAqXr23qIx0$>j&s^T2%}+h>ZlXKIA}#?h9A%GF6H-Z`o$mI-3E)Nd`MaC#70o zg8mS$T}LZtenn&@vPe@&SuPt{%qfU>)`FaUnAo;yhe2e=vdru0bvTO-EjHjlebT1y zT{JCL(_zI1`lav1$tjjSnQhpLh2|8y^cc&YL6%|@!(mQ-ieu5!!Tk}(_XZMSA(RA< zUN-Hj5{@hxPAEihKu8&7o#~o`mixSc{@HttWN~Y7Eo6n!uyBIC}0 j6q>LOExZ-P7q9^xhVvZk;5Q#j2RU)o>D#En!}0My4GBag delta 994 zcmY+DOHUI~6o8pNq!mgjAxe^UZ#{vEOd-*3Pg$Xf+O&cyWbS z8V9_X%cbchoxhvQXT(&bgiQIOiPGD14KmC8R%372=(|R%)F_+JvOg6${o;J`C3<7@ zd-iYn@ax-bz&WzR21b&F)@AJ2{)a`Gyx}bJhkM6eBd>iMoR9qQEw9Iy9O8#X=fs{> zPz9IDG8V8}D;t`sVAXO+0K%R*OfbzUh_Y=OVlWeTP06-@Y4Q$rL2(Lh!6JF$WO?6q! zz`BfzSTINMS@I4E(xfJm)Q|=eN@^0~WG;A{ixU*Qvd%INCt32Ih+Zd?G-aK&)>USm zqIEm=xTdq1CaZm<0R)0Ki_A?VSvQbQvp`01lSVm5Ix?_odMH}d)EYJ{p{j2fNWxUl z3vf(lal|d9)WKy|Z%H#0jt!4?EC-T}IBL T?9tn*pUyq`8bbchr>B1b)E+_s diff --git a/sources/SEDIT-TOPLEVEL b/sources/SEDIT-TOPLEVEL index 04fd688e..d197e8c9 100644 --- a/sources/SEDIT-TOPLEVEL +++ b/sources/SEDIT-TOPLEVEL @@ -1,14 +1,13 @@ -(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE (DEFPACKAGE "SEDIT" (USE "LISP" "XCL"))) -(IL:FILECREATED "10-Jul-91 19:11:12" IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;5| 36139 +(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE "SEDIT" (USE "LISP" "XCL")) READTABLE "XCL" BASE 10) - IL:|changes| IL:|to:| (IL:VARS IL:SEDIT-TOPLEVELCOMS) - (IL:FNS SEDITE) +(IL:FILECREATED " 1-Dec-2021 17:36:47"  +IL:|{DSK}kaplan>Local>medley3.5>my-medley>sources>SEDIT-TOPLEVEL.;6| 35734 - IL:|previous| IL:|date:| " 3-Apr-91 15:43:40" -IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) + IL:|previous| IL:|date:| " 1-Dec-2021 17:36:14" +IL:|{DSK}kaplan>Local>medley3.5>my-medley>sources>SEDIT-TOPLEVEL.;5|) -; Copyright (c) 1986, 1987, 1988, 1990, 1991 by Venue & Xerox Corporation. All rights reserved. +; Copyright (c) 1986-1988, 1990-1991 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:SEDIT-TOPLEVELCOMS) @@ -19,14 +18,14 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (IL:DECLARE\: IL:DONTCOPY IL:DOEVAL@COMPILE (IL:FILES IL:SEDIT-DECLS)) (IL:INITVARS CONTEXTS REGIONS) (IL:VARS (IL:*DISPLAY-EDITOR* 'SEDIT)) - (IL:FNS SEDIT RESET GET-WINDOW-REGION SAVE-WINDOW-REGION) + (IL:FNS SEDIT RESET GET-WINDOW-REGION SAVE-WINDOW-REGION GET-WINDOW) (IL:FNS GET-CONTEXT DISINTEGRATE-CONTEXT AWAKE-COMMAND-PROCESS AWAKE-ME MARKASCHANGEDFN NEW-FUNCTION-BODY) (IL:FUNCTIONS QUERY-THROW-AWAY-CHANGES SET-OPTIONS SET-PROPS START-PROCESS) (IL:COMS (IL:* IL:|;;| - "THESE CAN ALL BE NUKED WITH THE NEW EDIT INTERFACE AND A DETACHED TTY/EDITOR (WOZ 1/25/91)") + "THESE CAN ALL BE NUKED WITH THE NEW EDIT INTERFACE AND A DETACHED TTY/EDITOR (WOZ 1/25/91)") (IL:PROP (IL:|Definition-for-EDITL| IL:|Definition-for-EDITE| IL:|Definition-for-EDITDATE|) @@ -52,8 +51,8 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (IL:PUTPROPS IL:SEDIT-TOPLEVEL IL:FILETYPE :COMPILE-FILE) (IL:PUTPROPS IL:SEDIT-TOPLEVEL IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE - (DEFPACKAGE "SEDIT" - (:USE "LISP" "XCL")))) + (DEFPACKAGE "SEDIT" (:USE "LISP" "XCL") + ))) (IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY (IL:LOCALVARS . T) @@ -85,7 +84,7 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (IL:* IL:|;;| "this is a new context, needs to be setup from scratch") - (START-PROCESS CONTEXT NAME) + (START-PROCESS CONTEXT ) CONTEXT) ((AND (IL:OPENWP WINDOW) (IL:PROCESSP (IL:WINDOWPROP WINDOW 'IL:PROCESS))) @@ -134,6 +133,14 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (NOT KEEP-WINDOW-REGION))) (IL:|push| REGIONS (OR REGION (IL:WINDOWREGION (IL:|fetch| DISPLAY-WINDOW IL:|of| CONTEXT))))))) + +(GET-WINDOW + (IL:LAMBDA (CONTEXT) (IL:* IL:\; "Edited 25-Nov-2021 23:13 by rmk:") + + (IL:* IL:|;;| + "Returns the current window of CONTEXT, for clients that don't have SEDIT declarations") + + (IL:|fetch| DISPLAY-WINDOW IL:|of| CONTEXT))) ) (IL:DEFINEQ @@ -247,46 +254,38 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (IL:* IL:|;;;| "set up the OPTIONS provided in the call to SEDIT for this context. Most of these options do not require immediate action. Rather, they control how some command or interaction will work later, so we just store the option list in the context. Most of these options are really edit-interface options, not sedit options. We stash them so that when the *edit-fn* is called under M-O, it will be handed the same options that this edit was started with") (IL:REPLACE (EDIT-CONTEXT EDIT-OPTIONS) IL:OF CONTEXT IL:WITH (IF (LISTP OPTIONS) - OPTIONS - (LIST OPTIONS)))) + OPTIONS + (LIST OPTIONS)))) (DEFUN SET-PROPS (CONTEXT PROPS) (IL:* IL:|;;;| "go through the PROPS list supplied in the call to SEDIT and store the info in the context. The :NAME and :TYPE props are already handled, because get-context uses this information to find an appropriate context. Grab the current values of the variables that determine reading and printing, and save them in a profile in the context, so that later changes to the globals don't affect existing contexts. ") (IL:REPLACE (EDIT-CONTEXT COMPLETION-FN) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS - :COMPLETION-FN - ) - #'NULL)) - (IL:REPLACE (EDIT-CONTEXT ROOT-CHANGED-FN) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET - PROPS - :ROOT-CHANGED-FN - ) - #'NULL)) - (IL:REPLACE (EDIT-CONTEXT ENVIRONMENT) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS - :ENVIRONMENT) - LISP-EDIT-ENVIRONMENT - )) - (IL:REPLACE (EDIT-CONTEXT PROFILE) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS - :PROFILE) - (SAVE-PROFILE - (COPY-PROFILE - "READ-PRINT")))) - (IL:REPLACE (EDIT-CONTEXT EVAL-IN-PROCESS) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET - PROPS - :EVAL-IN-PROCESS - ) - (EVAL-IN-PROCESS) - )) - (IL:REPLACE (EDIT-CONTEXT EVAL-FN) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS - :EVAL-FN) - (XCL::PROFILE-ENTRY-VALUE - '*EVAL-FUNCTION*))) + :COMPLETION-FN) + #'NULL)) + (IL:REPLACE (EDIT-CONTEXT ROOT-CHANGED-FN) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS + :ROOT-CHANGED-FN) + #'NULL)) + (IL:REPLACE (EDIT-CONTEXT ENVIRONMENT) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS :ENVIRONMENT) + LISP-EDIT-ENVIRONMENT)) + (IL:REPLACE (EDIT-CONTEXT PROFILE) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS :PROFILE) + (SAVE-PROFILE (COPY-PROFILE + "READ-PRINT")))) + (IL:REPLACE (EDIT-CONTEXT EVAL-IN-PROCESS) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS + :EVAL-IN-PROCESS) + (EVAL-IN-PROCESS))) + (IL:REPLACE (EDIT-CONTEXT EVAL-FN) IL:OF CONTEXT IL:WITH (OR (IL:LISTGET PROPS :EVAL-FN) + (XCL::PROFILE-ENTRY-VALUE + '*EVAL-FUNCTION*))) (WHEN (IL:LISTGET PROPS :SELECT-STRUCTURE) - (IL:REPLACE (EDIT-CONTEXT FIND-CANDIDATE) IL:OF CONTEXT - IL:WITH (CONS (IL:LISTGET PROPS :SELECT-STRUCTURE) - (OR (IL:LISTGET PROPS :SELECT-INSTANCE) - 1))))) + (IL:REPLACE (EDIT-CONTEXT FIND-CANDIDATE) IL:OF CONTEXT IL:WITH (CONS (IL:LISTGET PROPS + :SELECT-STRUCTURE + ) + (OR (IL:LISTGET PROPS + :SELECT-INSTANCE + ) + 1))))) (DEFUN START-PROCESS (CONTEXT) @@ -535,12 +534,16 @@ IL:|{PELE:MV:ENVOS}SOURCES>SEDIT-TOPLEVEL.;4|) (IL:DEFPRINT 'GAP 'PRINT-GAP) (IL:PUTPROPS IL:SEDIT-TOPLEVEL IL:COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1988 1990 1991)) (IL:DECLARE\: IL:DONTCOPY - (IL:FILEMAP (NIL (3202 7114 (SEDIT 3215 . 5201) (RESET 5203 . 5404) (GET-WINDOW-REGION 5406 . 6283) ( -SAVE-WINDOW-REGION 6285 . 7112)) (7115 13776 (GET-CONTEXT 7128 . 9148) (DISINTEGRATE-CONTEXT 9150 . -9876) (AWAKE-COMMAND-PROCESS 9878 . 11471) (AWAKE-ME 11473 . 11856) (MARKASCHANGEDFN 11858 . 13572) ( -NEW-FUNCTION-BODY 13574 . 13774)) (19971 32948 (SEDITE 19984 . 25751) (SEDITL 25753 . 26898) ( -FN-CHANGED 26900 . 27195) (PROP-CHANGED 27197 . 27334) (PROPLST-CHANGED 27336 . 27464) (VAR-CHANGED -27466 . 27578) (ALIST-COMPLETION 27580 . 28391) (COMPLETION 28393 . 29773) (PROPS-COMPLETION 29775 . -30600) (TTYFN 30602 . 32440) (LOCATE-NODE-FROM-EDITCHAIN 32442 . 32946)) (33586 35271 (PRETTY-PRINT -33599 . 34642) (MAP-FONT 34644 . 35269))))) + (IL:FILEMAP (NIL (3118 7336 (SEDIT 3131 . 5117) (RESET 5119 . 5320) (GET-WINDOW-REGION 5322 . 6199) ( +SAVE-WINDOW-REGION 6201 . 7028) (GET-WINDOW 7030 . 7334)) (7337 13998 (GET-CONTEXT 7350 . 9370) ( +DISINTEGRATE-CONTEXT 9372 . 10098) (AWAKE-COMMAND-PROCESS 10100 . 11693) (AWAKE-ME 11695 . 12078) ( +MARKASCHANGEDFN 12080 . 13794) (NEW-FUNCTION-BODY 13796 . 13996)) (14000 14983 ( +QUERY-THROW-AWAY-CHANGES 14000 . 14983)) (14985 15760 (SET-OPTIONS 14985 . 15760)) (15762 18577 ( +SET-PROPS 15762 . 18577)) (18579 19250 (START-PROCESS 18579 . 19250)) (19566 32543 (SEDITE 19579 . +25346) (SEDITL 25348 . 26493) (FN-CHANGED 26495 . 26790) (PROP-CHANGED 26792 . 26929) (PROPLST-CHANGED + 26931 . 27059) (VAR-CHANGED 27061 . 27173) (ALIST-COMPLETION 27175 . 27986) (COMPLETION 27988 . 29368 +) (PROPS-COMPLETION 29370 . 30195) (TTYFN 30197 . 32035) (LOCATE-NODE-FROM-EDITCHAIN 32037 . 32541)) ( +32689 33058 (SMART-TTYFN 32689 . 33058)) (33181 34866 (PRETTY-PRINT 33194 . 34237) (MAP-FONT 34239 . +34864)) (35048 35151 (MAKE-BROKEN-ATOM 35048 . 35151)) (35153 35311 (PRINT-BROKEN-ATOM 35153 . 35311)) + (35313 35397 (MAKE-GAP 35313 . 35397)) (35399 35527 (PRINT-GAP 35399 . 35527))))) IL:STOP diff --git a/sources/SEDIT-TOPLEVEL.DFASL b/sources/SEDIT-TOPLEVEL.DFASL index 5e29545f9151900f2d83aef264b3fc99c02d6c4c..9283196284beca28421156f10dd683595d66c4ff 100644 GIT binary patch delta 5737 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 P72jFwHVkXAk3RYjsh6kq delta 5718 zcmZt~TX0)PRjapc*_IoV7fj($pV5TrI{oqxG;R9$UoO4#jiPITd zd-m+v^WL*(?{5$P@$e}nJ~Ov)q#u8}`VY@69G{;*y3l`gy1W1A+`|3S^T%epBOUz< z^A8@Io?YlSwRqA}EF+WBMzvJr6P@KIt(<-?nCb`*KX~*+xU;vna|itPb#(W2^+w7E zRWlX7ckbwHc>37v)bZJwaC-i}nW+;y!d<(k)mtK&&C2__C@RZF{ZDPNe*OQ`yg79RvPxZky&h4^Nd(u3q>pt53Q zEKpJIFF^z_%*biEX{lL4ND2HY*F(-Oa1;-@Yxzd^&P8y8j|^~=kEL7*r$~p=L0u^- zKyx2*zX?-`n3M_TOFfCK47`35!mmQy&_!v;NmQ7~BBg5(eo}rdnai>!$o%W>MsElM zJuW8rCeOplUh)F?39?<%$f&an#`l@LCzCT1x;BOhpz=38b!?u0;OX9iF#}UH*aZH9 zIFUNuw3<-{Au(ZA6f)rb`XUPPr!i&&Sz|=g71c7*w4sXj-hu``Ks=;oh^Ryo$tkdX z0C+>{dE?q3t&nbL$IaYPWAUiXW?Os`l|ks~6;el$*$T;L;Ha>|7wm=ny3P&-&bQLr ziD$dBv#+!3Oup;kjF!^+(xZKvK5Cesz8%j{%*bl}rjg4+ZroBZcG}LtvG}45rF#Dq zy*LS@jbAHy%fEFvQHqn7hy6Cu=(6#@mnIUw6FH=OO^o315?JTa#xs!JV>o{v=58aS z>0=q3eiNp6#^e#pnOYWujw@f}i)FQo&%k>5T}j={Wi?6jX_1{q9+m+mZEONSFKoe_ z&Sc3k7e;9K+8$xvCale3xCGg~h(V@G`2UlM=&!>5(j=fHb3{E(+n0~vkgzQ)avFll zRtk1NX)qyUt6}Q2CNi220bNaN4iHc>pqj~;47LrtHV9q|PXbRHPx|V&ia`X0144L` zxSn5f)WNoLsyC2q*|ds9a2-GGtE&q6KsT3`%^F$8L^Jd7E51Hu2w0A)2a(Z-($nq9P zp_q!DJpj2a3`o+m2Vgwy=}a+F?ZoGYts)!};aU;)ff?&YG%d5XDB8h4?igGNmd5({ z@5|fvCBOo8#e!!OFVqxaL5iO~^yu8lLzf%lr{npk8;$sBump!m{0Wj-{zH&%39!ml zw95T|tJ=4nUt$r|Rt8iWXZV}#0WXm-)yj;OARWy`h#Q#XVd1d7xPQHR-rKu6PYIO^d&!HEABBokpIRC9^#^G0T_&m5R z;B?%WmzY#7BD8?%M0nkZLn%H?N?)CpChRulG$p6qa%hqRCJV|qL$~G3+;Pan5peq6 z=;btj+y9BaNm#Ve!CiId2%uQeop$1LwvhL%oE2mTCdau}73uRPMe`ofyi-csa+7RK zXJ;H501*nv1(|WncpOsvVwIw#AaM4gBw5OCkVG=+E~MS(Ia?PTyI4Y#3-&sZmbwwU zG}u%}CxH@VypV{_m7!^rA88PCi$QKUX}OeD-|9t8Z&_Vlv|FW*`U^!;fWzzcJ2wo)cKL}zuE`xhGQY`6+JF`mpw4{6hEb>tY z24sWDlqSlLA_{HCjz^++W<$`UYycKeIv?1uev#Rr7WqxM{bJT?&``v`iSIIkA0o)w z5&Q%2tlXxJswrhKr^m2S*(ON&tH8)37j&e2YjyvttKjzt{4WxG3&6cL+eZkW1sh#y z1MWJUoq`$NA2>M)d@G4>QeWu>ACe63Mv+C^#w1GTr|N=rp*XCR!Cjur8hRS4PQP5` zbHSFL<#jk=yS+eDzS>?XgL?5Cv4e$tDK_k~^MUB+_>Y43vmEcNzhmdGT)Sz1_co!* z z27^t3q>>mmHC9%|=&-wp!8=4DL0%Ew?j5I+$|krP4#eLL!LogUmaic=y9yczvR=d{ z3G72q_G8Z@*h{pRcplQQ*+&R<&;4>Bi`e8o5v7)f zO}UWveK^8?HF2%l%g;33$=>JxXc}QN{Ep^`^Zg2Oh|f3QFg?is+B~$nI>!&T+}^r` zY`#GbmyE)?54B*n>bYKi?Xze0&!&ust84 z;SztTwQk_?Lf(IL>XQd%rowagh3RRMVo=;k)C}~xC&3ekVVAx9W2AST6Vtr5EgG0c zikq(;KDnu`1#0_FP}iBsS#bpbubD7%skm-6i~4F}IKeNpwX$>kXKhWJXTV(*vSEqJ zyT&GFKA!U~=tR7tp3zZZ=diNQ!tOHl$M*4Pwe967l=j(M??O}xni${-8}5Y-C2ExJ zY9PP&<0VyrBnQSEUVOCeAb(@iOM!zf+bxIa$IVUr2b7iQRf6C+twci=HS}=c*gYx zR7ZI0O3u`s$)vpUAn_fg*8v-IBEgqIuDqAz;n<%hn*A|3puEHU)orh_w|Rd1hVjEL z``X-ruMVn}hEEXKuN8$lAExcm5z)8<8^e@pT2z2-?>eX|vp%Y)w&%NO$0dGk`@@O% z;F|Go%h3x2i@pWdlZ?aLa9|j*#5BjhynCppV`oo~XOgZ!y2{{MQgZORcc1JipH-@zp=NP}*C`?Iay@CZ%=?vEw#-MBEpW^i zm5tzlFDbj}$ZzJ?6b}>#SEO~r5=D?L-E`1<&H=N5NK8HAyyd7tD+-?kk~%mnYZ%1_ zY>9cq5xZ=YuKGxUtLXZ9{#vAS*JBQ8`+H*EW|z+VIUMXh${V|nPjqe^2^B5&;+CHg*;NEz zAduRZ3&6;)8juv4Qf2W4r0M=(I<{X;V=Z9!Ky#bANbd5&{1TqI507yB6U?#Nv&6DppA5k=07; zi`L=)n!*iPgkNUh45GeB02S~~1ehqzU`-h?QgI|10t=}XmX_f=whW?xebS%~>vZ4P zgZN@BO%!x0{ld$d*UU z@FV6{e!Z)Mf7D$I-}?4;-@*6x)cIF7oRS-!;wO3zbO+@Tep+^DPdnF>*w0kaa7sRr VpQM=D@~rr|v|{IoBYOS%{{RU(l*j-8