SHOWUAF010.A SHOWUAF010.ABACKUP/INTERCHANGE/BLOCK=8192/VERIFY/COMMENT=Release Kit for ShowUAF V1.0, Courtesy of OneDataPlace, Inc. KITINSTAL.COM,SHOWUAF.EXE,SHOWUAF.DOC,SHOWUAFIVP.COM SHOWUAF010.A/SAVE/OWNER=[200,200]<Release Kit for ShowUAF V1.0, Courtesy of OneDataPlace, Inc. SYSTEM ɜƗV5.0 _DALLAS::  _DUA0: V5.0  '*[SYSMGR.UTILITY.SHOWUAF]KITINSTAL.COM;1+,+ &./ 4D>-+ 0123KPWO56S+7 jƗ89GHJ'$ on control_y then goto CONTROL_Y_EXIT$ on error then exit $status.$ if p1 .eqs. "VMI$_INSTALL" then goto INSTALL&$ if p1 .eqs. "VMI$_IVP" then goto IVP$ exit $vmi$_unsupported$CONTROL_Y_EXIT:$ vmi$callback CONTROL_Y$ exit vmi$_failure $INSTALL:$ type sys$input ShowUAF, Version 1.0; Provided courtesy of OneDataPlace, Inc., Plano, TX. 75075)$ vmi$callback CHECK_VMS_VERSION kit$ 0444$ if .not. kit$ then vmi$callback message E BADVMS -2 "This kit requires VMS Version V4.4 or greater."&$ if .not. kit$ then exit vmi$_failure-$ vmi$callback CHECK_NET_UTILIZATION kit$ 1504$ if .not. kit$ then vmi$callback message E NOROOM -4 "This kit requires at least 150 free disk blocks."&$ if .not. kit$ then exit vmi$_failure)$ vmi$callback SET SAFETY CONDITIONAL 300$ vmi$callback SET PURGE ask$ type sys$inputD This kit contains an Installation Verification Procedure to verifyC the correct installation of ShowUAF. This procedure also builds aD SHOWUAF_NODES file for your local node. It is recommended that you execute this procedure.$ vmi$callback SET IVP ask?$ vmi$callback PROVIDE_IMAGE kit$ showuaf.exe vmi$root:[sysexe]?$ vmi$callback PROVIDE_FILE kit$ showuaf.doc vmi$root:[sysmgr]$ type sys$inputC This procedure has created or updated the following files on your$ VMS Version 4.4 or greater system:; SYS$SYSTEM:SHOWUAF.EXE (new) SYS$MANAGER:SHOWUAF.DOC (new)0 SYS$MANAGER:SHOWUAF_NODES.DAT (created via IVP)$ exit vmi$_success$IVP:$ @vmi$kwd:showuafivp.com$ exit $status%*[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.EXE;1+,m.T/ 4TS-+ 0123 KPWOU56Yŗ7#kƗ89GHJ0DX0205(W\SHOWUAF Version 1.0@Wŗ04-00 " ".*PLQMV R ?@!d FORRTL_001!  LIBRTL_001SHOWUAF_NODES::)Searching node )8 %SHOWUAF-W-NOACCESS, specified parameter not accessible2 %SHOWUAF-W-INVALID, file may contain invalid data Username: ) E76 %SHOWUAF-F-ABORTED, operation aborted at user request No matches found out of ) records on node ) Found ) match out of ) records on node ) Found ) matches out of ) records on node ) Total of  nodes searchedDECNETALLCLUSTERFULL ShowUAF> General commands are parameter-value pairs of the form: ShowUAF> where is a UAF parameter (see list below) is one of =, \, <, or > is a value to be compared with the UAF values.Up to five parameter-value pairs can be entered, eachseparated by the operators AND or OR.The parameters for the parameter-value pairs are: *Special input commands include the following: SET N*ODE restrict the search to specified can also be ALL, CLUSTER or DECnet (A blank results in ALL) SET R*EPORT set the data display type. can be BRIEF or FULL (or blank, resulting in FULL) SET O*UTPUT send output to the specified A blank results in SYS$OUTPUT SHO*W print the current special input command parameters and a list of the available nodes AUTH*ORIZE run the AUTHORIZE utility H*ELP print this message EXI*T terminate the programA search may be interrupted by entering CTRL/CForward suggested enhancements and bug reports to:Stuart Renes, OneDataPlace, Inc., 2813 ParkhavenPlano, TX. 75075 (214) 867-0057Current command settings: = = = Nodes known to ShowUAF: Node Access ------- -------:: CLUSTER DECnet,)SHOSETAUTHEXIORAND)DECNETCLUSTERALLBRIEFFULLSYS$OUTPUT(Report generated by ShowUAF SYSUAFRUN SYS$SYSTEM:AUTHORIZEALLCLUSTERDECNET]: Target Node [ FULLFULL (none) ???FULL (none) ???FULLNOBRIEF (none)NOBRIEF (none)-()BRIEF (Full Access) (No Access)NOBRIEF (none)SYS$INPUTEnter 1 to abort current node or 2 to abort all remaining nodes [2]: ALLCLUSTERDECNET Z % 00    48< ,08< "D"XII HII,4L8L`h  0 I  "D+ SHOWUAF010.Am+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.EXE;1T I   T8<IIdlL8< "D"d $d($dD$@`hp$d$d$$@$ @(08$@T\d$@$@$@$@ $d0$dL$dh$d$d$@$@$@ $@( 0 $@L T $@p x $@ $@ $@ $@!!!$@4!=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\ =\ =\<>=\<>=\ =\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\ =\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>=\<>UAF record type UAF format version Offset of counted string of user data Username of account UIC member subfield UIC group subfield User sub-identifier Identifier of account owner (NO ACCESS) Account name Owner name Default device Default directory Login command file Default command language interpreter User CLI tables Primary password (NO ACCESS) Secondary password (NO ACCESS) Login failures Random password salt Encryption algorithm for primary pwd Encryption algorithm for secondary pwd Minimum password length Expiration date for account Password lifetime Date of primary password change Date of secondary password change Date of last interactive login Date of last non-interactive login Authorized privileges Default privileges Minimum security class Maximum security class Login flags Hourly network access, primary Hourly network access, secondary Hourly batch access, primary Hourly batch access, secondary Hourly local access, primary Hourly local access, secondary Hourly dialup access, primary Hourly dialup access, secondary Hourly remote access, primary Hourly remote access, secondary Primary days Base process priority Maximum job queuing priority Maximum jobs allowed for UIC Maximum jobs for account allowed Maximum detached processes for UIC Subprocess creation limit Buffered I/O limit Direct I/O limit Timer queue entry limit AST queue limit Enqueue limit Open file limit Shared file limit Working set quota Default working set size Working set extent Page file quota CPU time quota Buffered I/O byte count limit Paged buffer I/O byte count limit Job-wide log name table creation quota Number of proxies user can grant Number of proxies granted Number of sub-accounts allowed Number of sub-accounts in use IIICIIICCCCCCCCCCIIIIICCCCCCCCCCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIIIII ALL FULL  SHOWUAF010.Am+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.EXE;1TT(SYS$OUTPUT 1.0 [^rBޫˌPP˘˔BP ˜ZPߟ^˨ˤdP^PP˰ˬUBP ˴#Pu@OիOOBP իիЫ Ы$AЫ0(A4OFV\UR lOVP<@@<AOŏIVPID@̪HD OOPR1gL.O\Nl@O |ˀ˄;AիիЫ˔Ы˘ːARˤ˜ A1V!˨@1VWG˴G˼NŏIVRB̪B̪NGGNB̪ B̪tN-G w-G o )Gfg$(G,0G@X$<G@«$^($GnЫ$Y#~YYDYX^HL@X^^(Gn#~(nG^\ !V\jMHd?P lMt?ˀ7M`*1ԫ1-" )ZЭV)FGŏIP@ˌ˘LPT)T- ͣ1wˤGLp <ˬ7L˼L$ЭVF n>š%LЭVFZKKŏITDKի0{0KDDDLPKի((`Ddh=իիЫxЫ|t=Ы0ˈˀ=1Pԫ4ԫ8 5KLK KPT1xfˌ1K˜JˬCK ˼>=իիЫЫ=T=1֫4( ZkY\1 eXhWЇV,n V/V)P`PP@ާLg"1 V'P`PP@ާLg !1s V'P`P2P@ާ0Lg$(!1G V+ <@x\P@HLgPT%1 VcolIP?`}IIMlI߫@dIiIާxLglp"!1 VclKIP?`I"IlI߫@HIާ˔Lgˈˌ 1I V'P`ˬާ˰Lgˤ˨ 1 Vqk1 V + ˼ x\P@Lg$1 V O @ @H @x\P@LgR$1 V + 0`4x\P@<LgDH$1R V /@\ˀ`x\P@hLgpt#1! V /@ˈˌx\P@˔Lg˜ˠ#1 V+ ˴˸x\P@Lg#1 V+  x\P@LgW#1 Vk1v Vk1b V'PP`P2P@ާLg17 V'RP`P2P@ާ8Lg,0|1 V'TP`PP@ާTLgHLP1V'UP`PP@ާpLgdh$1V'VP`PP@ާˌLgˀ˄1V+XP`ˬx\P@˜Lgˤ˨1XV+`P`x\P@Lg1 1(V+hP`x\P@Lg=1V+pP`x\P@Lg 1V+xP`<x\P@,Lg481V+ˀP``x\P@PLgX\1hV+ˈP`˄x\P@tLg|ˀ="18V+ːP`˨x\P@˘Lgˠˤ "1V+˸˘˼x\P@Lg 1V +ˬx\P@Lgs 1V!+P`$x\P@Lg &1xV"+P`Hx\P@8Lg@DI+1HV#+P`lx\P@\Lgdh+1V$+P`ːx\P@ˀLgˈˌ*1V%+P`˴x\P@ˤLgˬ˰*1V&+P`x\P@Lg*1V'+P`x\P@LgY*1XV(+P` x\P@ Lg  )*1(V)+P`D x\P@4 Lg< @ )1V*+P`h x\P@X Lg` d )1V++P`ˌ x\P@| Lg˄ ˈ )1V,+P`˰ x\P@ˠ Lg˨ ˬ .1hV-'P`PP@ާ Lg 1;V.'P`PP@ާ Lg 1V/'P`P2P@ާ Lg T1V0'P`P2P@ާ$ Lg  (1V1'P`P2P@ާ@ Lg4 8 1V2'P`P2P@ާ\ LgP T 1_V3'P`P2P@ާx Lgl p 13V4'P`P2P@ާ˔ Lgˈ ˌ x1V5'P`P2P@ާ˰ Lgˤ ˨ L1V6'P`P2P@ާ Lg 1V7'P`P2P@ާ Lg 1V8'P`P2P@ާ Lg 1WV9'P`P2P@ާ Lg  1+V:'P`8 ާ< Lg0 4 r1V;' P`T ާX LgL P F1V<'P`p ާt Lgh l 1V='P`ˌ ާː Lg˄ ˈ 1}V>'P`˨ ާˬ Lgˠ ˤ 1QV?'P` ާ Lg˼ 1%V@' P` ާ Lg f1VA'$P` ާ Lg 61VB'(P`P2P@ާ Lg  1VC'*P`P2P@ާ8 Lg, 0 dVD',P`P2P@ާT LgH L 4VE'.VfV2V@ާp Lgd h tk | /SV˄ / A:}q=Z=\cW=@=ˌ /1ŏ\P(X@i kPPZkZY\Z1: <d<<-, 61%Z\1ŏ\W-G nl)G@_ڒ<Gˠ ˤ J.PYVYVPPWXH˘ ˔ E<YV><(G@Z\y6*<<,~ @֫8P`ԠԠԠ ԠԠԠԠԠ Ԡ$s5 ,;;H11*1a3;ݫ4s;|;;ݫ8O;X;ˬ P\˴ PZWЭP@ @ f;ի8Qﳑǭ ;\ :$ ЭP@ ::1ѫ8fǭ :Z :\ :$ ЭP@ c:`:dYǭ [:Z   0:\  :$ ЭP@  99l-1 2-! ()> # 9a99M$  +1( O90 F98 +9L[}PQPԫV z9Wk6VWP@ !WP@ V֫WPR@BkWЫP[^,n 1ˠ3101G~B1˨1VP˰@h˴˰0˸00WVM~0001^ZP-PJ< rT"jT'PPVV@<>PPVV@<PP VV@<1ZP-PJ< )z~(0//1-UJ< ﯌1~9VTT1ЫYIWIVVVV1zZʁʁ!1ʁPF@@xʁT,n @DʁP=@gWTTU-UD< ʁP@i-UD<  ʁP@i1XʁP@i1WV1@ЫTWUUT-U(U\L<<L<>L<= L<\TUѫ(Wѫ("WUUTTE<  10(Э,W,PP0 Ы Yѫ0Ig1~ѫ0 1uWZZ,P U-PJ< 0E1SPЫ @@P@+DЭP@PѼPP(<PѼPPPѼPPa- Q: ~ jP ^( @Qn,n Q^߄ 'ݼW'`' [Ь}PQ} PQ$ܶR,RP@Ы0(XPP84\1aTU>S޻V SPPWzSP{ PXXGf@Xk<&P#RPWP@̫LXkH&PT:RPWP@̫dXk`&PGfXXkT&PUS$\PTUPP@$>PTUPP($<PTUPPPTUPPz-b ij: ~ P ^( @n,n Q^զզ,2 (p޼ˀtHP,  [Ь}PQ} PQ$R,RP@Ы0(XPP841aTU>S޻V SPPWzSP{ PXXGf@Xk<.%P#RPWP@̫LXkH%PU:RPWP@̫dXk`$PGfXXkT$PTS$\PTUPP@$>PTUPP($<PTUPPPTUPPz- ﵁j: ~ P ^( @߳n,n OQ^զզ,~ B(9p޼ˀtHP,[ Ȧ[}PQP}PQ} PQ<VE- n;VWXW1 * ~VPQV- @VV8<V- @VVV- @VVK-: a;<VV^(Vn: ~V P ^( @ln V,Vn PQ^l[Ь }PQ } PQ(& PPT1UD8DDHhWd[PX޼tWpGYXPYY1g<DHˀW|PY޼ˌWˈWYPWW U_1)Nx1 ,X +VFˠP޼˘P˔P1xˠT PYY$VP^(@n ~,n +Q^1DY9OYPP9FY9XVP^(@nX^(XnXWWZY^(Y+nYWWZ,Zn +PQ^1YpWYPPpJYpZVP^(@nZ^(ZnZXXWY^(Y+nYXXW,Wn +PQ^1YWYPPJYWVP^(@nW^(W+nWZZXY^(Y+nYZZX,Xn +PQ^2VP^(@n ~Y^(Y+nYZZX,Xn +PQ^Vc-+ X,v +˨ PP^(P,n^SV:~V P ^( @pn V,Vn ݸPQ^[Ь(}PQ0} PQ8ЫV.(T w9w SHOWUAF010.Am+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.EXE;1Tm`F1UDD-@0 u8=8\ ЏD1PUWU@1?WXH0)1&H0(1H0 1H0,1WXW@+WYYVI0)I0(I0 I0, @WVXVPPY1Y1YaAuHDYoxϜXPPVQQL@0PLq߫?DЫ 1XRRVPPTB0XdfPSS1?SY17SZttp Z XZZRZZxB0|x߫SYSt˄ˀYϬSXXXVSSˈH0ˌˈ}߫ KPիsѫ mѫ fЫWѫ 8D˔WkːIPDDˠWk˜1PD WVUU@1@WD0˨PPP˰0˴˸ v1rԼ(PUʏUWʏWWXXSPʏPVSUDUPUSUUUXPUS11U1yUDUP18=@DUPSUX WSPWW1;DU`PWUX$LSWPSS Ua1)Uq1X,q HqX, q HW,n HTTX0P3<{FqP@HDTluTH^(Hn: ~ P ^( @n,Vn qQ^V[}PQ} PQբϢTﴢ1UDDUWU@1KWXH)12H(1(H 1H,1WXW@+WYYkI)I(I I, @WkXkPPYZYXP)@5pZXYY1Y 1VY4XPPkQ-Q@ YtVWV!YG0ZXPPkQ WS-Q@ YCkAGPRD,R(PDZD8R4PDVWV"kUU@1@WD+@gPPPHLP51ԼUXWЇXD`X \jPu=9DlX hNPYX t?ZYPZZ17D˄X ˀPZX ˌXZPXX Ul1L) n1;,X AWGPPP ˘P1ˤVPZZ" WP ^( @kn ~, n AQ^~Z9K ZPP9BZ9Y WP ^( @knY^(YnYV VXZ^(ZnZVVX,Xn APQ^. WP ^( @kn ~Z^(ZnZV VX,Xn APQ^W1-A X ,m AˬPP^(Pn^SW:~W VP ^( @=n W,Wn 絛PQ^[k&PPP($P,uk2<<#@D4PPlhpPp?P`PPP2`|xGPˀ [P1$- l0)l"- l,H@PL+1 2 Tɝ1m[}PQPkinvalid SET REPORT parameter '!AS'!/Enter HELP for assistance.ZILLSETHinvalid or ambiguous SET specification '!AS'!/Enter HELP for assistance.DINCLIN3incomplete command line!/Enter HELP for assistance.<INVALID)invalid or incomplete data in output file>INVDAY,invalid or ambiguous day specification '!AS'>INVFLG-invalid or ambiguous flag specification '!AS'>INVHOU-invalid or ambiguous hour specification '!AS'DINVPRV2invalid or ambiguous privilege specification '!AS'HLOGICAL5error processing logical name for SYSUAF - status !UL6NOACCESS"specified parameter not accessible"NONODEno such node !AS8NOQUO'invalid specification - unclosed quotes8UNQSET'invalid specification - unqualified SETABORTsearch aborted. ABORTNODEsearch aborted on node !AS4AUTH%!/Invoking AUTHORIZE on node !AS...!/"CANCELaction cancelled4 INTERRUPToperation interrupted by CTRL/C&LOGOshowUAF Version !AS!/.OUTPUToutput will be written to !AS*RENAMErenaming node !AS to !AS.SCANsearching node !AS to file !AS"SETNODEsetting node !AS*DONEtotal of !UL nodes searchedEXITexiting SHOWUAF@@(@@08p x(h  px80 Hx @FORRTLLIBRTL%*[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.DOC;1+, i.9/ 4J99-+ 0123KPWO:56Ÿ7 vkƗ89GHJ* - ShowUAF -% A( VAX/VMS+ AUTHORIZATION( UTILITY1.0 INTRODUCTIONGSHOWUAF is a program designed to allow a VAX system manager to examine Dthe system User Authorization File(s) SYSUAF.DAT on one or more VAX Fsystems. The files can be accessed directly or via DECnet. There are Hseveral Digital utilities (such i SHOWUAF010.A i+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.DOC;1J90as AUTHORIZE) and third-party utilities Hthat allow the examining of various UAF parameters for a specified user J(that is, for a specified record of the UAF file). SHOWUAF, on the other Ghand, is designed to display all users that satisfy a specified set of Dparameters. For example, to display all users that have the SYSPRV 1authorized privilege, the input command would be: SHOWUAF> PRIV=SYSPRVHInput commands to SHOWUAF consist of sets of parameter-value pairs. (In Bthe above example, PRIV is the parameter, SYSPRV is the value). A Iparameter-value pair is connected by a comparison character of "=", "\", J"<", or ">", which signifies that the check should be for users whose UAF Gvalue is equal to, not equal to, less than, or greater than, the value Jspecified. When a parameter-value pair is processed, the result is either BTRUE or FALSE. The sets of parameter-value pairs are separated by Joperators AND or OR, depending on whether the result of the processing of Dthe parameter-value pair should be logically ANDed or ORed with the J(composite) logical result of the previous pair(s). For example, to show Hall users not in UIC group 20 that have SYSPRV authorized privilege and Hhave not logged in interactively since the beginning of 1987, the input command would be as follows:? SHOWUAF> GROUP\20 AND PRIV=SYSPRV AND LOGINT<01-JAN-19872.0 PROGRAM OVERVIEW2.1 ACTIVATIONBThe image SHOWUAF.EXE resides in SYS$SYSTEM. The program uses an Hassociated file whose logical name is SHOWUAF_NODES. (see section 2.8). /The image may be invoked in either of two ways:* a) By issuing the DCL RUN command: # $ RUN SYS$SYSTEM:SHOWUAF ; The program will respond with a SHOWUAF> prompt. ? b) By defining a foreign command (which can be done in : LOGIN.COM, for example) to execute the program: ! $ SHOWUAF :== $SHOWUAF $ SHOWUAF F By using a foreign command, the first line of input to the D program can be included on the foreign command line; for  example: $ SHOWUAF PRIV=SYSPRV F In this case, the program will process the foreign command E line input, and then prompt the user for subsequent input. 2.2 INPUTFInput commands to SHOWUAF consist of sets of parameter-value pairs. A Iparameter-value pair is connected by a comparison character of "=", "\", F"<", or ">". When a parameter-value pair is processed, the result is Ieither TRUE or FALSE. The sets of parameter-value pairs are separated by Goperators AND or OR, depending on whether the result of the processing Gof the parameter-value pair should be logically ANDed or ORed with the I(composite) logical result of the previous pair(s). A given parameter or Fvalue can be abbreviated to a sufficient number of characters to make Ithe entry unique. The number of characters required for each particular Gentry is noted in the lists in sections 4.0 through 4.9 (in the lists, Ithe "*" denotes the uniqueness point). More information on program input Gis provided in section 3.0. There are also some special input commands 8to SHOWUAF. These commands are outlined in section 2.5.2.3 PROCESSINGGProgram processing involves sequentially searching each record of each GSYSUAF.DAT file for the system node(s). The data from each UAF record His compared with the input specification line, and the result is either DTRUE or FALSE. If the result is TRUE, then the appropriate data is %output to the user (see section 2.4). 2.4 OUTPUTHProgram output consists of a list of all users in the UAF file(s) whose HUAF record contained data that resulted in the input specification line Dhaving a (composite) logical value of TRUE. For each such user, the Dprogram provides the UAF record username and (optionally) the input Gparameter(s) and value(s) that caused the (composite) logical value to Hbe TRUE. For each node of the system, the node name is displayed at the Ibeginning of the list of username-parameter-value sets. After all nodes Bhave been processed for the current input line, a summary line is displayed.2.5 SPECIAL INPUT COMMANDSGSpecial input commands are commands that the program checks for before Hit validates parameter-value pair(s) on the input line. In order to use Ha special input command, it must be the first command on the line; data Gon the input line after a special input input command is ignored. The Ccommands may be entered in upper or lower case. The special input Ccommands (which can be abbreviated as illustrated), are as follows: a) SET N*ODE EThis command will restrict subsequent file searches to the specified Gnode. In addition, can be any of ALL, CLUSTER, or DECNET. IALL, which is the program default, results in all nodes that the program Fis aware of, as specified in the file SHOWUAF_NODES (see section 2.8) Hbeing searched. CLUSTER results in the UAF files in SHOWUAF_NODES that Gare not accessed via DECnet being searched. DECNET results in the UAF Hfiles in SHOWUAF_NODES that are accessed via DECnet being searched. If & is omitted, ALL is assumed." b) SET R*EPORT FThis command is used to specify how much output is generated for each Dusername that is printed. can be FULL or BRIEF. FULL Iresults in the username, plus the UAF data that caused the input line to Ievaluate to TRUE being printed; BRIEF results in only the username being Hprinted. If is omitted, FULL is assumed. FULL is also the program default.# c) SET O*UTPUT GThis command will cause subsequent program output to be printed to the Cfile specified by . If is specified as JSYS$OUTPUT, or omitted, then subsequent output is printed to SYS$OUTPUT. IIf the file specified by cannot be opened, then subsequent Foutput is printed to SYS$OUTPUT. The program default is SYS$OUTPUT.  d) SHO*WEThis command displays a list of the current settings for , G, and from (a)-(c) above, plus a list of the Gavailable nodes and the type of access (CLUSTER or DECNET) the program sees for the nodes. e) AUTH*ORIZEAThis command will spawn a subprocess to run the AUTHORIZE system Hutility. If the current node (as specified by the SET NODE command) is Fa particular system node, then that node is the one whose UAF file is Hprocessed by AUTHORIZE. If the current node is ALL, CLUSTER, or DECNET, Gthen the user is prompted for a particular system node to be processed Hby AUTHORIZE (note that this DOES NOT change the current node from ALL, FCLUSTER, or DECNET to the entered node; the entered node is used only for the AUTHORIZE subprocess). f) H*ELPCThis command is used to obtain on-line help. When this command is Hentered, the program displays a list of all special input commands, and =a list of all recognized parameters, with their abbreviation Hrequirements, together with a list of the UAF field that each parameter reference. g) EXI*TDThis command can be used to terminate the program (see section 2.6).2.6 TERMINATION4The program may be terminated in either of two ways: 5 a) By entering the EXIT command at the prompt; or * b) By entering a CTRL/Z at the prompt.2.7 INTERRUPT PROCESSINGHIf a CTRL/C is entered during a K SHOWUAF010.A i+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.DOC;1J9search, the user will be given a choice of: 6 a) Continuing as if the CTRL/C was not entered; or 9 b) Aborting the search for the node that the program 4 processing, and skipping to the next node; or $ c) Aborting the search entirely.2.8 ASSOCIATED FILEGSHOWUAF employs a text file whose logical name is SHOWUAF_NODES (which Idefaults to SHOWUAF_NODES.DAT) that contains a list of nodenames and the Ilocations of the corresponding authorization files for those nodes. The Hprogram looks in the current default directory for this file unless you Idefine SHOWUAF_NODES to point elsewhere. SHOWUAF_NODES can be maintained Awith a regular VAX editor (such as EDT). The file format, while straightforward, is rigid:; Each line contains the specification for one node. The B nodename for a node is specified in the first 6 characters of A a line. If the nodename is less than 6 characters long, the : specification MUST be blank-filled to 6 characters. A A nodename string CANNOT be listed as ALL, CLUSTER, or DECNET. A One (and only one) character follows the 6-character @ nodename. The UAF location for a node is specified starting > in column 8 of a line. The specification can be up to 73 @ characters long, but does not have to be blank-filled if it > is less than 73 characters. The specification can be any 9 legal VAX/VMS file specification (including a DECnet B specification). Characters can be in upper or lower case; the @ program converts everything to upper case. A maximum of 32 A nodes/UAF specifications may be entered in the SHOWUAF_NODES file.3.0 COMMAND SYNTAXIRegular (that is, non-special) input commands to SHOWUAF consist of sets Cof parameter-value pairs, connected by a comparison character, and Hseparated by operators AND or OR. Pairs and operators are delimited by Eone or more blank spaces. Parameters include those listed in section B4.0. Each parameter can be abbreviated to a sufficient number of Hcharacters to make the entry unique. The number of characters required Hfor each parameter is noted in the list in section 4.0. Entries for the Dvalue field of the parameter-value pair depend on the category into Fwhich the parameter falls (see section 4.0). Where applicable, value Centries can be abbreviated. See sections 4.1 through 4.9 for more Binformation on value abbreviations for each parameter category. A Gparameter-value pair must be connected by a character of "=", "\","<", Ior ">", depending on if the check should be for users whose UAF value is Jequal to, not equal to, less than, or greater than, the value specified. HFor example, to show all users who have more than 3 login failures, the input command would be: SHOWUAF> LOGFAILS>3HSince blank space(s) are used for field delimiters, values that contain Eblank spaces must be enclosed in double quotes ("). For example, to Dshow all users whose login command file UAF entry is not blank, the input command would be: SHOWUAF> LGICMD\" "HThe sets of parameter-value pairs are separated by operators AND or OR, Idepending on whether the result of the processing of the parameter-value Dpair should be logically ANDed or ORed with the (composite) logical Hresult of the previous pair(s). For example, to show all users outside Fof UIC group 20 that have SYSPRV or ALTPRI authorized privileges, the "input command would be as follows:1 SHOWUAF> PRIV=SYSPRV OR PRIV=ALTPRI AND GROUP\20IOperators AND and OR cannot be abbreviated. The user may omit operators Abetween parameter-value pairs, if so desired. If an operator is Iomitted, AND is assumed. For example, to show all users in UIC group 20 Iwho have either the SETPRV authorized privilege, or else both SYSPRV and IALTPRI authorized privileges, either of the following equivalent command lines would do:A SHOWUAF> PRIV=SYSPRV AND PRIV=ALTPRI OR PRIV=SETPRV AND GROUP=209 SHOWUAF> PRIV=SYSPRV PRIV=ALTPRI OR PRIV=SETPRV GROUP=20FThe user may enter up to five (5) parameter-value pairs, taking up to 5132 columns. Entries may be in upper or lower case. 4.0 PARAMETER CATEGORIES7Each UAF parameter falls in one of nine (9) categories: 1) INTEGER 2) STRING 3) ABSOLUTE TIME 4) DELTA TIME 5) PRIVILEGE 6) HOUR OF DAY 7) DAY OF WEEK 8) LOGIN FLAG 9) INACCESSIBLEHThe categories are described in detail in sections 4.1 through 4.9. The Blist of parameters, along with the abbreviation requirements (the Ccharacters before the "*") for each, a description of each and the 2category into which each one falls, is as follows:APARAMETER DESCRIPTION CATEGORYG------------- -------------------------------------- --------------@RT*YPE UAF record type INTEGER@V*ERSION UAF format version INTEGER@USR*DATOFF Offset of counted string of user data INTEGER?USE*RNAME Username of account STRING@ME*MBER UIC member subfield INTEGER@G*ROUP UIC group subfield INTEGER@SUBI*D User sub-identifier INTEGEREPAR*ENTID Identifier of account owner INACCESSIBLE?AC*COUNT Account name STRING?O*WNER Owners name STRING?DEV*ICE Default device STRING?DIR*ECTORY Default directory STRING?LG*ICMD Login command file STRING?CLI* Default command interpreter STRING?CLIT*ABLE User CLI tables STRINGEPASSWORD* Primary password INACCESSIBLEEPASSWORD2* Secondary password INACCESSIBLE@LOGF*AILS Login failures INTEGER@SA*LT Random password salt INTEGER@ENCRYPT* Encryption algorithm for prim pwd INTEGER@ENCRYPT2* Encryption algorithm for sec pwd INTEGER@PWDM*INIMUM Minimum password length INTEGERFEX*PIRATION Expiration date for account ABSOLUTE TIMECPWDL*IFETIME Password lifetime DELTA TIMEFPWDDATE* Date of primary password change ABSOLUTE TIMEFPWDDATE2* Date of secondary password change ABSOLUTE TIMEFLOGI*NT Date of last interactive login ABSOULTE TIMEFLOGN*ONINT Date of last non-interactive login ABSOLUTE TIMEBPRIV*ILEGE Authorized privileges PRIVILEGEBDEF*PRIVILEGE Default privileges PRIVILEGE?MI*CLASS Minimum security class STRING?MAXC*LASS Maximum security class STRINGCFL*AGS Login flags LOGIN FLAGDNETWORKP*RIME Hourly network access, primary HOUR OF DAYDNETWORKS*EC Hourly network access, secondary HOUR OF DAYDBATCHP*RIME Hourly batch access, primary HOUR OF DAYDBATCHS*EC Hourly batch access, secondary HOUR OF DAYDLOCALP*RIME Hourly local access, primary HOUR OF DAYDLOCALS*EC Hourly local access, secondary HOUR OF DAYDDIALUPP*RIME Hourly dialup access, primary HOUR OF DAYDDIALUPS*EC Hourly dialup access, secondary H ? SHOWUAF010.A i+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.DOC;1J9) OUR OF DAYDREMOTEP*RIME Hourly remote access, primary HOUR OF DAYDREMOTES*EC Hourly remote access, secondary HOUR OF DAYDPRIM*EDAYS Primary days DAY OF WEEK@PRIO*RITY Base process priority INTEGER@Q*UEPRI Maximum job queuing priority INTEGER@MAXJ*OBS Maximum jobs for UIC allowed INTEGER@MAXA*CCTJOBS Maximum jobs for account allowed INTEGER@MAXD*ETACH Maximum detached processes for UIC INTEGER@PRC*LM Subprocess creation limit INTEGER@BI*OLM Buffered I/O limit INTEGER@DIO*LM Direct I/O limit INTEGER@T*QELM Timer queue entry limit INTEGER@AS*TLM AST queue limit INTEGER@ENQ*LM Enqueue limit INTEGER@FI*LLM Open file limit INTEGER@SH*RFILLM Shared file limit INTEGER@WSQ*UOTA Working set size quota INTEGER@WSD*EFAULT Default working set size INTEGER@WSE*XTENT Working set size limit INTEGER@PG*FLQUOTA Page file quota INTEGER@CP*UTIME CPU time quota INTEGER@BY*TLM Buffered I/O byte count limit INTEGER@PB*YTLM Paged buffer I/O byte count limit INTEGER@J*TQUOTA Job-wide log name table creation quota INTEGER@PROXYL*IM Number of proxies user can grant INTEGER@PROXYU*SE Number of proxies granted INTEGER@SUBACCL*IM Number of sub-accounts allowed INTEGER@SUBACCU*SE Number of sub-accounts in use INTEGER 4.1 INTEGER@Parameters in this catagory have integer values. All comparison Echaracters ("=", "\", "<", ">") are valid for these parameters. The i1usage of each comparison character is as follows:y< "=" will display all users who have a UAF value for the = specified parameter that is equal to the specified value.p < "\" will display all users who have a UAF value for the B specified parameter that is not equal to the specified value.  < "<" will display all users who have a UAF value for the ? specified parameter that is less than the specified value.  < ">" will display all users who have a UAF value for the B specified parameter that is greater than the specified value.  7 Values for INTEGER parameters have no abbreviation ) requirements. 4.2 STRING:IParameters in this catagory have character string values. All comparison lEcharacters ("=", "\", "<", ">") are valid for these parameters. The i1usage of each comparison character is as follows:N< "=" will display all users who have a UAF value for the = specified parameter that is equal to the specified value.  < "\" will display all users who have a UAF value for the B specified parameter that is not equal to the specified value.  < "<" will display all users who have a UAF value for the ? specified parameter that is less than the specified value.  < ">" will display all users who have a UAF value for the B specified parameter that is greater than the specified value.  6 Values for STRING parameters have no abbreviation  requirements.c4.3 ABSOLUTE TIMEFParameters in this catagory have VAX standard absolute time formatted ,values. Absolute time format is as follows: dd-mmm-yyyy hh:mm:ss.cct A All comparison characters ("=", "\", "<", ">") are valid for eA these parameters. The usage of each comparison character is  as follows:a < "=" will display all users who have a UAF value for the < specified parameter that is equal to the specified time. < "\" will display all users who have a UAF value for the A specified parameter that is not equal to the specified time.  < "<" will display all users who have a UAF value for the A specified parameter that is earlier than the specified time. m < ">" will display all users who have a UAF value for the ? specified parameter that is later than the specified time. e ? Values for ABSOLUTE TIME parameters may be abbreviated any > way that is allowed for VAX standard absolute time format.4.4 DELTA TIMEiCParameters in this catagory have VAX standard delta time formatted s)values. Delta time format is as follows:t  dddd hh:mm:ss.cc A All comparison characters ("=", "\", "<", ">") are valid for A these parameters. The usage of each comparison character is t as follows:a < "=" will display all users who have a UAF value for the < specified parameter that is equal to the specified time. < "\" will display all users who have a UAF value for the A specified parameter that is not equal to the specified time. h < "<" will display all users who have a UAF value for the = specified parameter that is less than the specified time.o < ">" will display all users who have a UAF value for the A specified parameter that is greater than the specified time. e @ Values for DELTA TIME parameters may be abbreviated any way 7 that is allowed for VAX standard delta time format.i4.5 PRIVILEGEFParameters in this catagory have character string values. A character Bstring must be a standard VAX process privilege specification, as follows:  (privilege[,...])s ? If only one privilege is specified, the parentheses can be aA omitted. Any specified privilege can be preceded by "NO". A e: value of ALL may be specified, which is shorthand for B (ACNT,ALLSPOOL,...,WORLD). A value of NOALL is shorthand for 9 (NOACNT,NOALLSPOOL,...,NOWORLD). The only comparison eA characters allowed for these parameters are "=" and "\". If n8 the "=" comparison character is used with a list of ; privileges, then the privileges are ANDed. If the "\" EB comparison character is used, then the privileges are negated  and ORed. For example, ! SHOWUAF> PRIV=(ALTPRI,SYSPRV) A will display all users who have ALTPRI and SYSPRV authorized  privileges, whereasf ! SHOWUAF> PRIV\(ALTPRI,SYSPRV)o 9 will display all users who have NOALTPRI or NOSYSPRV uA authorized privilege. You should take note of the subtleties iB involved with the comparison characters and the use of NO and  ALL. For example,  SHOWUAF> PRIV=ALLs / will display users who have all privileges;i  SHOWUAF> PRIV=NOALLa . will display users who have no privileges;  SHOWUAF> PRIV\ALLn 9 will display users who have no or some, but not all, h privileges;p  SHOWUAF> PRIV\NOALL A will display users who some or all privileges. Using the "*" ; to show the minimum required number of characters, the S> following list provides the abbreviation requirements for $ values for PRIVILEGE parameters: 5 ALL* DI*AGNOSE PF*NMAP SHA*REa5 AC*NT E*XQUOTA PH*Y_IO SHM*EM(6 ALLS*POOL GRO*UP PRMC*EB SYSG*BL8 ALT*PRI GRPN*AM PRMG*BL SYSL*CM8 BU*GCHK GRPP*RV PRMM*BX SYSN*AM8 BY*PASS L*OG_IO PS*WAPM SYSP*RV9 CME*XEC M*OU KW SHOWUAF010.A i+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.DOC;1J9/NT R*EADALL T*MPMBXe9 CMK*RNL N*ETMBX SEC*URITY V*OLPROL7 DE*TACH O*PER SET*PRV W*ORLDc4.6 HOUR OF DAYFParameters in this catagory have character string values. A character Bstring must be a standard VAX hour mask specification, as follows:  ([n],[n-m],[,...]) @ If only one hour range is specified, the parentheses can be < omitted. Hours specified must be integers from 0 to 23, B inclusive. All comparison characters ("=", "\", "<", ">") are > valid for these parameters. The usage of each comparison  character is as follows: A "=" will display all users who have an hour of day mask that a! includes the hours specified.g A "\" will display all users who have an hour of day mask that e9 does not include at least one of the hours specified.  A "<" will display all users who have an hour of day mask that p> includes an hour earlier than the earliest hour specified. A ">" will display all users who have an hour of day mask that n< includes an hour later than the earliest hour specified. < When using the "=" or "\" comparison character, a value @ string of "()" may be specified. This string is equivalent  to "no hours".4.7 DAY OF WEEKFParameters in this catagory have character string values. A character Hstring must be a standard VAX day of the week specification, as follows:  (day[,...])i B If only one day is specified, the parentheses can be omitted. B Any specified day can be preceded by "NO". A value of ALL may ) be specified, which is shorthand for a@ (MONDAY,TUESDAY,...,SUNDAY). A value of NOALL is shorthand ? for (NOMONDAY,NOTUESDAY,...,NOSUNDAY). The only comparison sA characters allowed for these parameters are "=" and "\". If s> the "=" comparison character is used with a list of days, A then the days are ANDed. If the "\" comparison character is b< used, then the days are negated and ORed. For example,  # SHOWUAF> PRIME=(MONDAY,TUESDAY)  @ will display all users who have MONDAY and TUESDAY as prime  days, whereasa # SHOWUAF> PRIME\(MONDAY,TUESDAY)  9 will display all users who have MONDAY or TUESDAY as h; secondary days. You should take note of the subtleties B involved with the comparison characters and the use of NO and  ALL. For example,  SHOWUAF> PRIME=ALL 9 will display users who have all days as primary days;   SHOWUAF> PRIME=NOALL 9 will display users who have no days as primary days; m  SHOWUAF> PRIME\ALL A will display users who have no or some, but not all, days as a primary days;o  SHOWUAF> PRIME\NOALL B will display users who have some or all days as primary days.  9 Using the "*" to show the minimum required number of = characters, the following list provides the abbreviation c7 requirements for values for DAY OF WEEK parameters:i  A*LL M*ONDAYt TU*ESDAY W*EDNESDAY TH*URSDAYc F*RIDAY SA*TURDAYm SU*NDAY 4.8 LOGIN FLAGiFParameters in this catagory have character string values. A character Estring must be a standard VAX login flag specification, as follows: r  (flag[,...]) : If only one flag is specified, the parentheses can be A omitted. Any specified flag can be preceded by "NO". A value 4 of ALL may be specified, which is shorthand for < (DISCTLY,DEFCLI,...,DISRECONNECT). A value of NOALL is > shorthand for (NODISCTLY,NODEFCLI,...,NODISRECONNECT).The @ only comparison characters allowed for these parameters are A "=" and "\". If the "=" comparison character is used with a n9 list of flags, then the flags are ANDed. If the "\" )A comparison character is used, then the flags are negated and m ORed. For example,  # SHOWUAF> FLAG=(DISUSER,LOCKPWD)e > will display all users who have DISUSER and LOCKPWD login  flags, whereas # SHOWUAF> FLAG\(DISUSER,LOCKPWD)a A will display all users who have NODISUSER or NOLOCKPWD login e@ flags. You should take note of the subtleties involved with > the comparison characters and the use of NO and ALL. For example,  SHOWUAF> FLAG=ALLo 1 will display users who have all login flags;   SHOWUAF> FLAG=NOALLh / will display users who have no login flags;V  SHOWUAF> FLAG\ALLO > will display users who have no or some,but not all, login flags;  SHOWUAF> FLAG\NOALLr 8 will display users who have some or all login flags. 9 Using the "*" to show the minimum required number of e= characters, the following list provides the abbreviation L: requirements for values for the LOGIN FLAG parameters: 7 AL*L DISF*ORCE_PWD_CHANGE(*) DISW*ELCOMEV/ AUD*IT DISM*AIL G*ENPWDR0 AUT*OLOGIN DISN*EWMAIL L*OCKPWD6 C*APTIVE DISREC*ONNECT PWDE*XPIRED6 DE*FCLI DISREP*ORT PWD2*_EXPIRED DISC*TLY DISU*SER ) * (this flag available only in VMS 5)s4.9 INACCESSIBLE2EParameters in this catagory are inaccessible to the user. No matter Gwhat value is supplied for a parameter in this catagory, the result of s-the parameter-value evaluation will be FALSE.h.9. The Blist of parameters, along with the abbreviation (*[SYSMGR.UTILITY.SHOWUAF]SHOWUAFIVP.COM;1+, U./ 4NV-+ 0123KPWO56`.7nkƗ89GHJ$ On ERROR then goto FAILED_IVP$ Set NOVerify$ Type/NOPAGE sys$input> Starting Installation Verification Procedure for ShowUAF 1.0; This procedure will build the required SHOWUAF_NODES file: that contains the DECnet nodename and access path to the$ SYSUAF.DAT file on the local node.< This file will be initially located in SYS$MANAGER and can< be moved by defining a logical name SHOWUAF_NODES to point+ to the new location of SHOWUAF_NODES.DAT.C$ local_node = f$trnlnm("SYS$NODE","LNM$SYSTEM_TABLE") - "_" - "::".$ uaf_path = f$search("SYS$SYSTEM:SYSUAF.DAT")$1$:G$ Inquire/NoPunct node "Enter local DECnet node name [''local_node']: "+$ If node .eqs. "" then node := 'local_node'$ If f$length(node) .le. 6 then goto 2$H$ Write sys$output "DECnet nodename cannot be greater than 6 characters" $ GOTO 1$$2$:K$ Inquire/NoPunct file_spec "Enter path to SYSUAF.DAT file [''uaf_path']: "3$ If file_spec .eqs. "" then file_spec := 'uaf_path3$ If f$search("''file_spec'") .nes. "" then goto 3$B$ Write sys$output "Error accessing SYSUAF.DAT via specified path" $ GOTO 2$$3$:/$ Open/Write file SYS$MANAGER:SHOWUAF_NODES.DAT6$ If f$length(node) .eq. 1 then node := "''node' "5$ If f$length(node) .eq. 2 then node := "''node' "4$ If f$length(node) .eq. 3 then node := "''node' "3$ If f$length(node) .eq. 4 then node := "''node' "2$ If f$length(node) .eq. 5 then node := "''node' "#$ Write file "''node' ''file_spec'" $ Close fileN$ Write sys$output "Created file cm+ %[SYSMGR.UTILITY.SHOWUAF]SHOWUAF.EXE;1TV;0=>ys C2D98p!̈́OH)Y5ϵPHf c-.<ŷܳҴ^=o dl i:4V{V;m8K߫;)6Efo4 @T/"P'L_(B}Jj!qP'Z}O11_]*[ů@GǏս>l o:Q%VqWJ;<= $W9i,Y>S vt@N( `Tqlӎ\¿PޜrAM917R#f"af<|4͔N+Ӡڙ]ւo-*Mw4뾯0ɣ iЋM+Խ}F/qdZ 'z+x?:ݎm]cD ?.^`AJ(ׇ]SQRL5T(&{LDQ`S%PEiqQ Z~ bGF uzJttkMLչo,/M_P׉S#uavjЇ% :#Cꢥkzo+M0޻=}puq6GFT֮QJC5ʒsƩDCVS|}( V{sb0O\k|3S" AmY7 ͼ.G F _l?TCL4,@'˼lJ ?tĖF0bn ąnDdRB&"HR8I^Yx49\ZpH " m 02ڶE]9Ġɸ 1QtP}Lj\/,xD|/a+| 9#&ݙY>Ҁ7P})BM3{F{Ԧ.<4:+ L_NeQlQx02F-o!Gx*d9 j@XGb`?ULr5ݎ^$FTߡɗ: 8{|k;BsQV&TװxPE9xB^4x2Afܰ)y%BY+k%QX:.%ֈINt=[e6&'q"{2=I؀Qѝ? \qBħd.o.R][~cS@7z%'#"3l~x|U@@ջ jl/Z&1 *`l^S<@3,3{G~B$fkZ .(߅F8㨫S)F 74 V j͡ @!/PQKUW3 Xc,uIo+^4iJXr0=L_#:{ Jݓ!+'|w$=f:qG?dN4kzW3Nx{K$ tj#L;6O2 k#ʖy#^1{ӭڞXi1Afc[< [*m&ߛ}JЗ-b6xv0v b,G|F긡써\,3_/צtK[*ޯ$hoĽ͑K kⳣ9j̆٘u! \}2n<VG9B+YU(-L!7G˂%/Y>p[ߜPa3}tz:_Ӫ7"._*c4f7Thh< e ՞7?APK"|Rv*5fэ6S#QًnP_G`hXh QeTnMVfsA TQ鸩v-2H|5( n`"|G*_0?LdhxDҺö;`ԤӠQn=JnIuv NtZOޝ6I^BSfLK3^Ihz`%}:ٲ B #&s =nhJMKA1w2?jӍ}hG'x,rț=++"Z6Ȁš-0,BɥTBؿ`zU "8 ;( *g3hr-`#}ve%mφd$BJM͛9R'^J(5SV^ebARrل D7Yrkt=&M>Sz^Ql|gi@GW4r˟ KVߧq):MaE!6JuSD܈zX}*C-CΈK>PaD*h~*;E:%NVq ~MdHXM?)`+ _Ͽ5[&Vn ~OgWج\ T,|pR .TqE;k$UGuB^Q,^$+GnxM%aӇ\a YWa@tQiLhsůC.vv@3' Fx_!:@;kx hrdI=V!ONGTg ۖaXMdS -aXDEh\ %!ך)BM1XZZ^VzBn̳-|O`|ÅwzϮl.3`JyL@lb#1]iQ<2t )HD#艪;=8QrZ ~2r~xVDZCBsJ y$ j͵MyJb rE=>2SlG~BZKmaxjPc!wU pp{ o{DVO/68dx;u\M!h+-{pb<` rӬq~AЁ'9>'vhaE+\oZH)u<+Y&H]#Ը b` tiV`b.[,"aqc .$/rLڶ%af䍻G 3XH Үu}#69^* 䳴=4T6--TdPN CՕ?D9 Z,s ~ήO;{=Q7l$;(R%Ζ*Rpܬ.n)0D@ 0:q~"Pn뛈2Vnk(Uv} *p+ɀ&0fη\u}AKO3W- R}KT&NXwȏ.Yzz+3(x\L|ۂod() ofX U]Y`uy r,FMc*.JI& %s. 5Ei75Fϐ[:q.x͔K~/5e'BP-ɵ9#"bG"=Xk7fvqBR]Kh:6yc/zd88¾KƽMҋn;OYBmƘP.uDmLX1{C3m2Ai> jRؖlՒ}b@w΃ۆfn1VME1d,ObӜ|8Ͼ`nYe1{dFJ+<(mjO<7Yp4+2)@n?`ukӯ[m}FF\FyZ'j;SR1_N&5pq#d\n$,BhdlݿSd+-8!DPGV\ĵB`:fufI*ix+I-6yl#̰5.2*&`_Nfv<ċhx-.^:Cd:}7e9VPZP\\%|k%[sH[zd:9_Ġxc%4SAVT)Ѯ ڠ["Lۨ+ب(4HzH| GϥA@&iÑϡυ_(u+11Iہ l2)^ٸ*A((e6]$yj5c'pMlӍw]F*V<pvЙpm\U|XAK4FF_!Ӽ73'Ws\ H_2oK#Ȼ"aF"8A?*OI`_%dIOPǼN [wP IÝ<5oP820@E1Uމ־@+s̀Qf0(T؉_z;xN1B-0`YC)]>Y0_HX'"rM9X=ЪϴGZIa{Ŷ eψMJˎ+:A@b"53G;Ƹ (CTə)$r2^MΊ`26[a[|s5Y` 0C< 8b2D&V#;=9>VH ИC<`qe:v'9谪a+ED»Q?,_ӬF,X{