7=~CACHE_TEST.BCKCACHE_TEST.BCK*BACKUP/LOG/VER *.* CACHE_TEST.BCK/SAVE/LOG BERNARD  A5.5 _PRSSOS::  _$1$DUA26: V5.4 ~ 8)*[BERNARD.SYSTEM.CACHE_TEST]CACHE_DOC.PS;1+, ./ 4-T0123KPWO56,d789GHJ%!PS-Adobe-2.0 %%Title: LGCACHE.doc %%Creator: PrintMonitor %%CreationDate: Wednesday, October 30, 1991 %%Pages: (atend) %%BoundingBox: ? ? ? ? %%PageBoundingBox: 30 31 582 761 %%For: Ken Bates %%DocumentProcSets: "(AppleDict md)" 71 0 %% Copyright Apple Computer, Inc. 1989-91 All Rights Reserved. %%EndComments %%BeginProcSet: "(AppleDict md)" 71 0 userdict/LW{save statusdict/product get(LaserWriter)anchorsearch exch pop{dup length 0 eq{pop 1}{( Plus)eq{2}{3}ifelse}ifelse}{0}ifelse exch restore}bind put userdict/downloadOK known not{userdict/downloadOK{systemdict dup/eexec known exch/cexec known and LW dup 1 ne exch 2 ne and and vmstatus exch sub exch pop 120000 gt and}bind put}if userdict/type42known known not{userdict/type42known systemdict/resourcestatus known{42/FontType resourcestatus{pop pop true}{false}ifelse }{false}ifelse put}if type42known not downloadOK and {userdict begin /*charpath /charpath load def/charpathflag false def/charpath{userdict/charpathflag true put userdict/*charpath get exec userdict/charpathflag false put}bind def end}if userdict/checkload known not{userdict/checkload{{pop exec} {save 3 dict begin/mystring 6050 string def exch/endstring exch def{currentfile mystring readline not{stop}if endstring eq{exit}if}loop end restore pop}ifelse}bind put}if userdict/LW+{LW 2 eq}bind put userdict/ok known not{userdict/ok{systemdict/statusdict known dup{LW 0 gt and}if}bind put}if systemdict/currentpacking known{currentpacking true setpacking}if /md 270 dict def md begin /av 71 def /T true def/tF false def/mtx matrix def/s75 75 string def/sa8 8 string def/sb8 8 string def /sc8 8 string def/sd8 8 string def/s1 ( ) def/pxs 1 def/pys 1 def /ns false def 1 0 mtx defaultmatrix dtransform exch atan/pa exch def/nlw .24 def/ppr [-32 -29.52 762 582.48] def /pgr [0 0 0 0] def /pgs 1 def/por true def/xb 500 array def/so true def/tso true def/fillflag false def/pnm 1 def/fmv true def /sfl false def/ma 0 def/invertflag false def/dbinvertflag false def/xflip false def/yflip false def/noflips true def/scaleby96 false def/fNote true def/fBitStretch true def /4colors false def/fg (Rvd\001\001\000\000\177) def /bdf{bind def}bind def /xdf{exch def}bdf /xl{neg exch neg translate}bdf /fp{pnsh 0 ne pnsv 0 ne and}bdf /nop{}bdf/lnop[/nop load]cvx bdf /vrb[ {fp{fg 6 get 0 ne{gsave stroke grestore}{gsave 1 setlinewidth pnsh pnsv scale stroke grestore}ifelse}if newpath}bind /eofill load dup /newpath load 2 index dup {clip newpath}bind {}bind dup 2 copy ]def /sgd systemdict/setpagedevice known{{2 dict begin/PreRenderingEnhance exch def/Policies 1 dict dup/PreRenderingEnhance 1 put def currentdict end setpagedevice}}{{pop}}ifelse bdf /svsc systemdict/currentcolorscreen known{{currentcolorscreen/dkspf xdf/dkrot xdf/dkfreq xdf/dyspf xdf/dyrot xdf/dyfreq xdf/dmspf xdf/dmrot xdf/dmfreq xdf /dcspf xdf/dcrot xdf/dcfreq xdf}}{{currentscreen/spf xdf/rot xdf/freq xdf}}ifelse bdf /doop{vrb exch get exec}bdf /psu{/udf xdf/tso xdf /fNote xdf/fBitStretch xdf/scaleby96 xdf/yflip xdf/xflip xdf /invertflag xdf/dbinvertflag invertflag statusdict begin version cvr 47.0 ge product (LaserWriter) eq not and end invertflag and {not}if def xflip yflip or{/noflips false def}if /pgs xdf 2 index .72 mul exch div/pys xdf div .72 mul/pxs xdf ppr astore pop pgr astore pop/por xdf sn and/so xdf}bdf /tab{userdict /11x17 known{userdict begin /11x17 load exec end}{statusdict /setpage known{statusdict begin 792 1224 1 setpage end}{statusdict /setpageparams known{statusdict begin 792 1224 0 1 setpageparams end}if}ifelse}ifelse}bdf /a3Size{userdict /a3 known{userdict begin /a3 load exec end}{statusdict /setpageparams known{statusdict begin 842 1191 0 1 setpageparams end}if}ifelse}bdf /txpose{fNote{smalls}{bigs}ifelse pgs get exec pxs pys scale ppr aload pop por{noflips{pop exch neg exch translate pop 1 -1 scale}if xflip yflip and{pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and{pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{ppr 1 get neg ppr 0 get neg translate}if} {noflips{translate pop pop 270 rotate 1 -1 scale}if xflip yflip and{translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate}if xflip yflip not and{translate pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate}if yflip xflip not and{translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate}if}ifelse statusdict begin/waittimeout where{pop waittimeout 300 lt{statusdict/waittimeout 300 put}if}if end scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy translate .96 dup scale neg exch neg exch translate}if}bdf /fr{4 copy pgr aload pop 3 -1 roll add 3 1 roll exch add 6 2 roll 3 -1 roll sub 3 1 roll exch sub 3 -1 roll exch div 3 1 roll div exch scale pop pop xl}bdf /obl{{0.212557 mul}{pop 0}ifelse}bdf /sfd{ps fg 5 -1 roll get mul 100 div 0 ps 5 -1 roll obl ps neg 0 0 6a astore makefont setfont}bdf /fnt{findfont sfd}bdf /bt{sa 3 1 roll 3 index and put}bdf /sa(\000\000\000\000\000\000\000\000\000\000)def /fs{0 1 bt 1 2 bt 2 4 bt 3 8 bt 4 16 bt 5 32 bt 6 64 bt 7 128 bt sa exch 8 exch put}bdf /mx1 matrix def /mx2 matrix def /mx3 matrix def /bu{currentpoint 4colors{currentcmykcolor}{currentrgbcolor}ifelse currentlinewidth currentlinecap currentlinejoin currentdash exch aload length fg 5 sfl{1}{0}ifelse put pnsv pnsh 2t aload pop 3a aload pop mx2 aload pop mx1 aload pop mtx currentmatrix aload pop mx3 aload pop ps pm restore/ps xdf mx3 astore pop}bdf /bn{/pm save def mx3 setmatrix newpath 0 0 moveto ct dup 39 get 0 exch getinterval cvx exec mtx astore setmatrix mx1 astore pop mx2 astore pop 3a astore pop 2t astore pop/pnsh xdf/pnsv xdf gw /sfl fg 5 get 0 ne def array astore exch setdash setlinejoin setlinecap setlinewidth 4colors{mysetcmykcolor}{setrgbcolor}ifelse moveto}bdf /fc{save vmstatus exch sub 50000 lt {(%%[|0|]%%)=print flush}if pop restore}bdf /tc{32768 div add 3 1 roll 32768 div add 2t astore pop}bdf /3a [0 0 0] def /2t 2 array def /tp{3a astore pop}bdf /tt{mx2 currentmatrix pop currentpoint 2 copy 2t aload pop qa 2 copy translate 3a aload pop exch dup 0 eq {pop}{1 eq{-1 1}{1 -1}ifelse scale}ifelse rotate pop neg exch neg exch translate moveto}bdf /te{mx2 setmatrix}bdf /th{3 -1 roll div 3 1 roll exch div 2 copy mx1 scale pop scale/sfl true def}bdf /tu{1 1 mx1 itransform scale/sfl false def}bdf /ts{1 1 mx1 transform scale/sfl true def}bdf /fz{/ps xdf}bdf /dv{dup 0 ne{div}{pop}ifelse}bdf /pop4{pop pop pop pop}bdf /it{sfl{mx1 itransform}if}bdf /gm{exch it moveto}bdf/rm{it rmoveto}bdf /lm{currentpoint sfl{mx1 transform}if exch pop sub 0 exch it rmoveto}bdf /fm{statusdict/manualfeed known}bdf /se{statusdict exch/manualfeed exch put}bdf /mf{dup/ma exch def 0 gt{fm se/t1 5 st ok ma 1 gt and{/t2 0 st/t3 0 st statusdict/manualfeedtimeout 3600 put }if}if}bdf /jn{/statusdict where exch pop{statusdict exch /jobname exch put}if}bdf /pen{pnm mul/pnsh xdf pnm mul/pnsv xdf pnsh setlinewidth}bdf /min{2 copy gt{exch}if pop}bdf /max{2 copy lt{exch}if pop}bdf /dh{fg 6 1 put array astore dup {1 pxs div mul exch}forall astore exch pop exch pop exch setdash}bdf /ih[currentdash]def /rh{fg 6 0 put ih aload pop setdash}bdf /dl{gsave nlw pys div setlinewidth 0 setgray}bdf /dlin{exch currentpoint currentlinewidth 2 div dup translate newpath moveto lineto currentpoint stroke grestore moveto}bdf /lin{fg 6 get 0 ne{exch lineto currentpoint 0 doop moveto} {exch currentpoint/pnlv xdf/pnlh xdf gsave newpath/@1 xdf/@2 xdf fp{pnlh @2 lt{pnlv @1 ge {pnlh pnlv moveto @2 @1 lineto pnsh 0 rlineto 0 pnsv rlineto pnlh pnsh add pnlv pnsv add lineto pnsh neg 0 rlineto} {pnlh pnlv moveto pnsh 0 rlineto @2 pnsh add @1 lineto 0 pnsv rlineto pnsh neg 0 rlineto pnlh pnlv pnsv add lineto}ifelse}{pnlv @1 gt {@2 @1 moveto pnsh 0 rlineto pnlh pnsh add pnlv lineto 0 pnsv rlineto pnsh neg 0 rlineto @2 @1 pnsv add lineto}{pnlh pnlv moveto pnsh 0 rlineto 0 pnsv rlineto @2 pnsh add @1 pnsv add lineto pnsh neg 0 rlineto 0 pnsv neg rlineto}ifelse}ifelse closepath fill}if @2 @1 grestore moveto}ifelse}bdf /gw{/pnm fg 3 get fg 4 get div def}bdf /lw{fg exch 4 exch put fg exch 3 exch put gw pnsv pnsh pen}bdf /barc{/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf /@6 xdf/@7 xdf/@8 xdf gsave @5 @7 add 2 div @6 @8 add 2 div translate newpath 0 0 moveto @5 @7 sub @6 @8 sub mtx currentmatrix pop scale @1{newpath}if 0 0 0.5 @4 @3 arc @4 @3 sub abs 360 ge{closepath}if mtx setmatrix @2 doop grestore}bdf /ar{dup 0 eq barc}bdf /ov{0 exch 360 exch true barc}bdf /rc{dup/@t xdf 0 eq{4 copy 3 -1 roll eq 3 1 roll eq and{pnsv 2 div sub exch pnsh 2 div sub exch 4 2 roll pnsv 2 div add exch pnsh 2 div add exch /@t 1 def}if}if currentpoint 6 2 roll newpath 4 copy 4 2 roll exch moveto 6 -1 roll lineto lineto lineto closepath @t doop moveto}bdf /mup{dup pnsh 2 div le exch pnsv 2 div le or}bdf /rr{/@1 xdf 2. div/@2 xdf 2. div/@3 xdf /@4 xdf/@5 xdf/@6 xdf/@7 xdf @7 @5 eq @6 @4 eq @2 mup or or{@7 @6 @5 @4 @1 rc} {@4 @6 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse @5 @7 sub 2. div dup @2 lt{/@2 xdf}{pop}ifelse @1 0 eq{/@2 @2 pnsh 2 div 2 copy gt{sub def}{0 pop4}ifelse}if currentpoint newpath @4 @6 add 2. div @7 moveto @4 @7 @4 @5 @2 arcto pop4 @4 @5 @6 @5 @2 arcto pop4 @6 @5 @6 @7 @2 arcto pop4 @6 @7 @4 @7 @2 arcto pop4 closepath @1 doop moveto}ifelse}bdf /pr{gsave newpath/pl{exch moveto/pl{exch lineto}def}def}bdf /pl{exch lineto}bdf /ep{dup 0 eq{{moveto}{exch lin}{}{(%%[|1|]%%)= flush}pathforall pop grestore}{doop grestore}ifelse currentpoint newpath moveto}bdf /gr{64. div setgray}bdf /savescreen{ns not{/ns true def systemdict/currentcolorscreen known{currentcolorscreen/pkspf xdf/pkrot xdf/pkfreq xdf/pyspf xdf/pyrot xdf/pyfreq xdf/pmspf xdf/pmrot xdf/pmfreq xdf /pcspf xdf/pcrot xdf/pcfreq xdf}{currentscreen/sspf xdf/srot xdf/sfreq xdf}ifelse}if}bdf /restorescreen{/ns false def systemdict/setcolorscreen known{pcfreq pcrot/pcspf load pmfreq pmrot/pmspf load pyfreq pyrot/pyspf load pkfreq pkrot/pkspf load setcolorscreen}{sfreq srot/sspf load setscreen}ifelse}bdf /pat{savescreen sa8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}setscreen exch not{gr}{pop}ifelse}bdf /sg{restorescreen gr}bdf /cpat{savescreen 10 2 roll 7 -1 roll sa8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}8 -1 roll sb8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sb8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}9 -1 roll sc8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sc8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}10 -1 roll sd8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sd8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}psuedo1 dsc 4{4 -1 roll 1 exch 64 div sub}repeat mysetcmykcolor pop pop}bdf systemdict/setcolorscreen known{/psuedo1 lnop bdf/dsc/setcolorscreen load def}{/psuedo1{16{pop}repeat sa8 copy pop 9.375 pa por not{90 add}if{1 add 4 mul cvi sa8 exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}}bdf /bwsc{setscreen dup gr 0 exch 0 exch 64 exch 64 exch 64 exch}bdf/dsc/bwsc load def }ifelse systemdict/setcmykcolor known{/mysetcmykcolor /setcmykcolor load def}{/mysetcmykcolor{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll}repeat setrgbcolor pop}bdf}ifelse /dc{transform round .5 sub exch round .5 sub exch itransform}bdf /sn{userdict/smooth4 known}bdf /x8{3 bitshift}bdf /x4{2 bitshift}bdf /d4{-2 bitshift}bdf /d8{-3 bitshift}bdf /rb{15 add -4 bitshift 1 bitshift}bdf /db{/@7 save def/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf/@6 @5 @3 4 add mul def dc translate scale/xdbit 1 1 idtransform abs/ydbit exch def abs def{0 0 1 ydbit add 1 10 rc clip}if @1 0 eq @1 4 eq or{currentrgbcolor 1 setgray ydbit 0 1 ydbit add 1 2 rc setrgbcolor}if @1 3 eq @1 7 eq or{1 setgray}{currentrgbcolor 2 index eq exch 2 index eq and exch pop{0 setgray}if}ifelse/@9 @1 0 eq @1 1 eq @1 3 eq or or dbinvertflag xor def/@13 @6 def @2 fBitStretch or{/@10 @4 x4 def/@11 @3 x4 def/@12 @10 rb def/@13 @12 @11 mul def/@15 1 1 dtransform abs/calcY 1 index def round cvi/@14 exch def abs/calcX 1 index def round cvi scaleby96 not{1 add}if def/@16 @15 rb def/@17 @16 @14 mul def}if sn @13 60000 lt and @2 fBitStretch or and{mtx currentmatrix dup 1 get exch 2 get 0. eq exch 0. eq and @17 60000 lt and fBitStretch and{@16 3 bitshift @14 @9 [calcX 0 0 calcY 0 0]{@17 string @13 string currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4 @10 @11 @12 dup string 5 index @15 @14 @16 dup string stretch}imagemask}{@12 x8 @11 @9 [@10 0 0 @11 0 0]{@13 string currentfile @6 string readhexstring pop 1 index @4 @3 @5 @12 @2 smooth4}imagemask}ifelse}{@5 3 bitshift @3 4 add @9 [@4 0 0 @3 0 2]{currentfile @6 string readhexstring pop}imagemask}ifelse @7 restore}bdf systemdict/setcmykcolor known{/psuedo lnop bdf/di/colorimage load def}{/routines[{.3 mul add 1}bind{.59 mul add 2}bind{.11 mul add round cvi str exch i exch put/i i 1 add def 0 0}bind]def /psuedo{/i 0 def 0 exch 0 exch{exch routines exch get exec}forall pop pop str}bdf/bwi{pop pop image}bdf/di/bwi load def}ifelse /cdb{/@7 save def/@1 xdf/@2 xdf/@3 xdf/@4 xdf/@5 xdf systemdict/setcmykcolor known not{dc}if translate scale /@6 xdf /@18 @5 dup 60000 ge{pop 60000}if string def @6 not{/str @18 0 @18 length 3 idiv getinterval def}if @4 @3 8 [@4 0 0 @3 0 0]@6{{currentfile @18 readhexstring pop}image}{{currentfile @18 readhexstring pop psuedo}false 3 di}ifelse @7 restore}bdf /wd 16 dict def /mfont 14 dict def /mdf{mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end}bdf /cf{{1 index/FID ne{def}{pop pop}ifelse}forall}bdf/rf{/@1 exch def/@2 exch def FontDirectory @2 known{cleartomark pop}{findfont dup begin dup length @1 add dict begin cf{/Encoding macvec def}{Encoding dup length array copy/Encoding exch def counttomark 2 idiv{Encoding 3 1 roll put}repeat}ifelse pop exec currentdict end end @2 exch definefont pop}ifelse}bdf /bmbc{exch begin wd begin /cr xdf save CharTable cr 6 mul 6 getinterval{}forall /bitheight xdf/bitwidth xdf .96 div/width xdf Gkernmax add/XOffset xdf Gdescent add/YOffset xdf/rowbytes xdf rowbytes 255 eq{0 0 0 0 0 0 setcachedevice} {Gnormsize dup scale width 0 XOffset YOffset bitwidth XOffset add bitheight YOffset add setcachedevice rowbytes 0 ne{ XOffset YOffset translate newpath 0 0 moveto bitwidth bitheight scale sn{ /xSmt bitwidth x4 def /ySmt bitheight x4 def /rSmt xSmt rb def rSmt x8 ySmt true [xSmt 0 0 ySmt neg 0 ySmt] {rSmt ySmt mul string CharData cr get 1 index bitwidth bitheight rowbytes rSmt tso smooth4} }{rowbytes 3 bitshift bitheight 4 add true [bitwidth 0 0 bitheight neg 0 bitheight 2 add] {CharData cr get} }ifelse imagemask }if }ifelse restore end end }bdf /bb{.96 exch div/Gnormsize mdf 2 index /Gkernmax mdf 1 index/Gdescent mdf 3 index div 4 1 roll 2 index div 1. 5 2 roll exch div 4 1 roll 4 array astore/FontBBox mdf }bdf /cdf{mfont/CharData get 3 1 roll put}bdf /bf{ mfont begin /FontType 3 def /FontMatrix [1 0 0 1 0 0] def /Encoding macvec def /MFontType 0 def /BuildChar/bmbc load def end mfont definefont pop }bdf /wi LW 1 eq{{gsave 0 0 0 0 0 0 0 0 moveto lineto lineto lineto closepath clip stringwidth grestore}bind}{/stringwidth load}ifelse def /aps{0 get 124 eq}bdf /xc{s75 cvs dup}bdf /xp{put cvn}bdf /scs{xc 3 67 put dup 0 95 xp}bdf /sos{xc 3 79 xp}bdf /sbs{xc 1 66 xp}bdf /sis{xc 2 73 xp}bdf /sob{xc 2 79 xp}bdf /sss{xc 4 83 xp}bdf /dd{exch 1 index add 3 1 roll add exch}bdf /smc{moveto dup show}bdf /ndf2{udf{dup /FontType get 0 eq{/FDepVector get{dup /FontType get 0 eq{ndf2}{dup /df2 known{begin df2 0 null put end }{pop}ifelse}ifelse}forall}{/df2 known{dup begin df2 0 null put end}if}ifelse}{pop}ifelse}bdf /kwn{FontDirectory 1 index known{findfont dup ndf2 exch pop}}bdf /gl{1 currentgray sub setgray}bdf /newmm{dup /FontType get 0 eq{dup maxlength dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall currentdict end dup /FDepVector 2 copy get[exch 6 index exch 6 index exch{newmm 3 1 roll}forall pop pop] put dup }{/mfont 10 dict def mfont begin/FontMatrix [1 0 0 1 0 0] def /FontType 3 def/Encoding macvec def/df 1 index def/df2 1 array def/FontBBox [0 0 1 1] def/StyleCode 2 index def /mbc{bcarray StyleCode get}def/BuildChar{exch begin wd begin/cr exch def/cs s1 dup 0 cr put def df /MFontType known not{ df2 0 get null eq{df dup length 2 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall /StrokeWidth 1 0 FontMatrix idtransform pop dup nlw mul pys div ps div exch 0.012 mul 2 copy le{exch}if pop def/PaintType 2 def currentdict end /q exch definefont df2 exch 0 exch put}if}if mbc exec end end}def end mfont}ifelse 3 index exch definefont exch pop}bdf /mb{dup sbs kwn{0 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf /mo{dup sos kwn{2 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf /ms{dup sss kwn{4 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf /ou{dup sos kwn{mfont/df2 known{mfont begin df2 0 null put end}if 3 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf /su{dup sss kwn{mfont/df2 known{mfont begin df2 0 null put end}if 5 2 index findfont newmm exch pop exch pop exch pop}ifelse sfd}bdf /ao{/fmv true def ou}bdf/as{/fmv true def su}bdf /vo{/fmv false def ou}bdf/vs{/fmv false def su}bdf /c{currentrgbcolor dup 4 1 roll eq 3 1 roll eq and/gray xdf}bdf /bcarray[{/da .03 def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth cs 0 0 smc da 0 smc da da smc 0 da moveto show}bind dup{/da 1 ps div def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth cs 0 0 smc da 0 smc da da smc 0 da smc c gray{gl}{1 setgray}ifelse da 2. div dup moveto show}bind {df setfont gsave cs wi grestore setcharwidth c gray{gl}{currentrgbcolor 1 setgray}ifelse cs 0 0 smc df2 0 get setfont gray{gl}{4 1 roll setrgbcolor}ifelse 0 0 moveto show}bind {/da 1 ps div def/ds .05 def/da2 da 2. div def df setfont gsave cs wi 1 index 0 ne{exch ds add da2 add exch}if grestore setcharwidth cs ds da2 add .01 add 0 smc 0 ds da2 sub translate 0 0 smc da 0 smc da da smc 0 da smc c gray{gl}{1 setgray}ifelse da 2. div dup moveto show}bind {/da .05 def df setfont gsave cs wi 1 index 0 ne{exch da add exch}if grestore setcharwidth c cs da .01 add 0 smc 0 da translate gray{gl}{currentrgbcolor 1 setgray 4 -1 roll}ifelse 0 0 smc gray{gl}{4 1 roll setrgbcolor}ifelse df2 0 get setfont 0 0 moveto show}bind]def /st{1000 mul usertime add dup 2147483647 gt{2147483647 sub}if def}bdf /the{usertime sub dup 0 lt exch -2147483648 gt and}bdf /6a 6 array def /2a 2 array def /3q 3 array def /qs{3 -1 roll sub exch 3 -1 roll sub exch}bdf /qa{3 -1 roll add exch 3 -1 roll add exch}bdf /qm{3 -1 roll 1 index mul 3 1 roll mul}bdf /qn{6a exch get mul}bdf /qA .166667 def/qB .833333 def/qC .5 def /qx{6a astore pop qA 0 qn qB 2 qn add qA 1 qn qB 3 qn add qB 2 qn qA 4 qn add qB 3 qn qA 5 qn add qC 2 qn qC 4 qn add qC 3 qn qC 5 qn add}bdf /qp{6 copy 12 -2 roll pop pop}bdf /qc{exch qp qx curveto}bdf /qi{{exch 4 copy 2a astore aload pop qa .5 qm newpath moveto}{exch 2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}bdf /qq{{qc 2a aload pop qx curveto}{exch 4 copy qs qa qx curveto}ifelse}bdf /pt{currentpoint newpath moveto}bdf /qf{/fillflag true def}bdf /ec{dup 4 and 0 ne{closepath}if 1 and 0 ne{0 doop}if grestore currentpoint newpath moveto/fillflag false def}bdf /eu{currentpoint fp{0 ep}{grestore newpath}ifelse moveto/fillflag false def}bdf /bp{currentpoint newpath 2 copy moveto}bdf /ef{gsave fillflag{gsave eofill grestore}if}bdf /sm{0 exch{@1 eq{1 add}if}forall}bdf /lshow{4 1 roll exch/@1 exch def{1 index wi pop sub 1 index sm dv 0 @1 4 -1 roll widthshow}{1 index wi pop sub 1 index dup sm 10 mul exch length 1 sub add dv dup 10. mul 0 @1 4 -1 roll 0 6 -1 roll awidthshow}ifelse}bdf /setTxMode{sa 9 2 index put exch not{3 eq{1}{0}ifelse setgray}{pop}ifelse}bdf /SwToSym{{}mark false/Symbol/|______Symbol 0 rf 0 sa 6 get 0 ne{pop 1}{sa 7 get 0 eq{pop 2}if}ifelse sa 1 get 0 ne/|______Symbol sa 4 get 0 ne{vs}{sa 3 get 0 ne{vo}{fnt}ifelse}ifelse}bdf /mc{0 3 1 roll transform neg exch pop}bdf /ul{dup 0 ne sa 2 get 0 ne and{gsave 0 0 /UnderlinePosition kif{mc}{ps -10 div}ifelse/UnderlineThickness kif{mc}{ps 15 div}ifelse abs setlinewidth neg rmoveto sa 4 get 0 ne{gsave currentlinewidth 2. div dup rmoveto currentpoint newpath moveto 2 copy rlineto stroke grestore}if sa 3 get sa 4 get or 0 ne{gsave currentrgbcolor dup 4 1 roll eq 3 1 roll eq and{gl}{1 setgray}ifelse 2 copy rlineto stroke grestore rlineto strokepath nlw pys div setlinewidth}{rlineto}ifelse stroke grestore}{pop}ifelse}bdf /sgt{2 copy known{get true}{pop pop false}ifelse}bdf /kif{currentfont dup/FontMatrix get exch/FontInfo sgt{true}{currentfont/df sgt {dup/FontInfo sgt{3 1 roll/FontMatrix get mtx concatmatrix exch true}{pop pop pop false} ifelse}{pop pop false}ifelse}ifelse{3 -1 roll sgt{exch true}{pop false}ifelse}{false}ifelse}bdf /blank/Times-Roman findfont/CharStrings get/space get def /macvec 256 array def /NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI /DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US macvec 0 32 getinterval astore pop macvec 32/Times-Roman findfont/Encoding get 32 96 getinterval putinterval macvec dup 39/quotesingle put 96/grave put /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute /agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave /ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute /ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis /dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash /infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation /product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash /questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft /guillemotright/ellipsis/blank/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge /ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl /daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand/Acircumflex/Ecircumflex/Aacute /Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex /apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde /macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron macvec 128 128 getinterval astore pop {}mark true/Courier/|______Courier 0 rf {/Metrics 21 dict begin/zero 600 def/one 600 def/two 600 def/three 600 def/four 600 def/five 600 def/six 600 def/seven 600 def/eight 600 def /nine 600 def/comma 600 def/period 600 def/dollar 600 def/numbersign 600 def/percent 600 def/plus 600 def/hyphen 600 def/E 600 def/parenleft 600 def/parenright 600 def/space 600 def currentdict end def currentdict/UniqueID known{/UniqueID 16#800000 def}if/FontBBox FontBBox 4 array astore def}mark true/Helvetica/|______Seattle 1 rf /oldsettransfer/settransfer load def /concatprocs{/proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx}def /settransfer{currenttransfer concatprocs oldsettransfer}def /PaintBlack{{1 exch sub}settransfer gsave newpath clippath 1 setgray fill grestore}def /od{(Rvd\001\001\000\000\177) fg copy pop txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def newpath clippath mark {transform{itransform moveto}}{transform{itransform lineto}} {6 -2 roll transform 6 -2 roll transform 6 -2 roll transform {itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}} {{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if statusdict/processcolors known{statusdict begin processcolors end 4 eq{/4colors true def}if}if}bdf /cd{}bdf /op{/sfl false def systemdict/currentcolorscreen known{dcfreq dcrot/dcspf load dmfreq dmrot/dmspf load dyfreq dyrot/dyspf load dkfreq dkrot/dkspf load setcolorscreen}{freq rot/spf load setscreen}ifelse savescreen /ns false def/pm save def}bdf /cp{not{userdict/#copies 0 put}if ma 0 gt{{t1 the{exit}if}loop}if{/copypage load exec}{/showpage load exec}ifelse pm restore}bdf /px{0 3 1 roll tp tt}bdf /psb{/us save def}bdf /pse{us restore}bdf /ct 40 string def /nc{currentpoint initclip newpath gc{dup type dup/arraytype eq exch/packedarraytype eq or{exec}if} forall clip newpath moveto}def /kp{ct 0 2 index length 2 index 39 2 index put getinterval copy cvx exec mx3 currentmatrix pop}bdf end LW 1 eq userdict/a4small known not and{/a4small [[300 72 div 0 0 -300 72 div -120 3381] 280 3255 {statusdict/jobstate (printing) put 0 setblink margins exch 196 add exch 304 add 8 div round cvi frametoroket statusdict/jobstate (busy) put 1 setblink} /framedevice load 60 45{dup mul exch dup mul add 1.0 exch sub}/setscreen load {}/settransfer load/initgraphics load/erasepage load]cvx statusdict begin bind end readonly def}if md begin/bigs[lnop userdict/letter known{/letter load}{lnop}ifelse userdict/legal known{/legal load}{lnop}ifelse userdict/a4 known{/a4 load}{lnop}ifelse userdict/b5 known{/b5 load}{lnop}ifelse lnop lnop lnop /tab load/a3Size load]def /smalls[lnop userdict/lettersmall known{/lettersmall load}{userdict/note known{/note load}{lnop}ifelse}ifelse userdict/legal known{/legal load}{lnop}ifelse userdict/a4small known{/a4small load}{lnop}ifelse userdict/b5 known{/b5 load}{userdict/note known{/note load}{lnop}ifelse}ifelse lnop lnop lnop /tab load/a3Size load]def end systemdict/currentpacking known{setpacking}if {currentfile eexec} ( %endeexec) ok userdict/stretch known not and checkload 373A767D4B7FD94FE5903B7014B1B8D3BED02632C855D56F458B118ACF3AF73FC4EF5E81F5749042B5F9CF1016D093B75F250B7D8280B2EACE05A37037F7BDF6E12226D7D4E2DF2C52FAFD5FD40FE72A0D3AC4BD485D8369D4C87636E920D1DAF222D92155A9CB1667E715F0B82799B37CC8F5B32B74B39CF494536DC39C7EF04A7BCB29E2CEC79073CADCCFB23B4AA1363F876F5121B618071B7B4EB1E5DE75FAA2368A3E5DB2B198623AFE92AE9484270FE7F57A850E88C0D3EEA156611C91D8E480D4370B025CCA6929A2BF40AD3D01B2CB7EE6DFB46E12A830542337F7819B67F9765210F76DB06F34DA5B13A11759305C582E16D2B854939F6D9121F2A4F285282F5DCD3D15896D121E3D6F5BE79E087451BB0ED233CDBEF090D3B4AC2DC34B97E70C61D95FB072B8C12D2ABD843520949A39DCF99E2C1AA8FBCD025E47E0A82A8D96E75BAF40F52AD402495BBD4DE0F356C8B14E764874E639C9F045A0D1908EC6456EB6C5B8A6F826192F767EF2C55A21C58F5F9CC1F59247B55F2387828C7FE89D5E7D8484D1BC86CB6673BDBE4FE17DD9BDE95224FE645136F41330BF155A4DDE1B0A32233BF471CE58FBC660DC7E641B0A0D30018454E2191C414A3011FF3FED1C0D88FE1FF9F75DCC456D097947226FBEC92509146D3A4CFFC0471B31C53222ED9DD88566F60F6C0D705AD79DACF53B070026F083ED28B5CF757AAA0A169F6F320A75E9D2ED50ABD939AF85B6346C2ADB25D168F10508E1516D194C635E6B187FADEA0829DBF0390C0F003F0265E215BC96CA3CC13D4A8E01570BE193CA75A620728CD275ACF1986EFFB3A13419FE55EA7C4467B7E7EEDC1FC29C9F8C46A557D2CCDB914EF7B93E7530D555DFC2398AFC68CAD991F062EF85BAA1884EC166C7C5DF8543666D8C41BE267D706BD1588F1F662F705CAE4D29DC38EF66BFAA89470D8A099B6F1B4587F7B024412276106FCD3EB5AE17A5D1DF1781992DC40EA0A992F706F701304CEA9D9073E7A74F1E687D81C3E5841D31CF86855BAAAD9B5D30317C75150A857C6B114735315CDD1AEF36C26BBB0645499406DEE2F24B3B1C72FEC97C7BA31AA2CDAB25418BB1DC4C7E4757F1D625087B0FD0300C03A65F2A72CE734925735277E034CDCF599129679F70CC8B66E03878851DB75041F275E1E5761F3EC753BE1359CA364A22047AE4886217F9259FE19FF5B116E8019B98B143114B313E8BEF87EC949D85C82E0812E6F50525E73890AF362CC8EE8A85F4197E6AC18638EF12E56A808D439AF1BFD363F140314BF4E534485C42F1856688CC35288E8D770120A420FB9F1FCF8AE8BD6D6156CC23E6C51119FE4DE1B68C9DF3487E9974BF9ED31F8D3CE93FF101867319F2FF492D5D398B4F09A66F2F55BCAB34B99173B7EE89039D00DD21A7B3A52E9F028F8301B5FC12D409412E064513BC579AAC498F577EA8ECD1FE3E42DC3CC320786C7B00194FEDF344402C33FC492D4BA86992B01683F440220FFE756BC88A94223D316078D69D33560E8EAB76B24CB7AA4320CF435593D76F624324ABE00B5587A4F283C725EA24567133F25F472B5E2E4474DDB5A16AC5F2DF32350395D3E3892FE361F4D5C9A610C654C9227614FBBAFF3356A90A2266E00F66234061075491571A65616211257F160000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %endeexec {currentfile eexec} ( %endeexec) ok userdict/smooth4 known not and checkload F94E00EE41A71C59E5CAEED1EDBCF23D1DBA1EE99B9BB356492923BD8B1BA83A87CEB0E07377A31FD6241E814681118E17DC7CACE570399506E6E441B871B6043831BD03EFC11DBBD8001EE2FF8CFBD485065D455A2E15AC36F1A84AD8789FA6461199C7CD14CB9FD64D4B06452B7FC0A8FC263F70F1CCB893295D4DE70ADAB771C0F84396FA98C60B11DA02ABA157298DF0A23621853BEF167443A985ADC09BEFFD51CB4D29179E2B34609EF38A49DA61F4BFC256A3DE0732D7D29754A194857B9C9E9971227AA1DD0611FBB10E44E5FF66C062D9C24ED3290529330BC317825E876929582DB0E39B9FC5EFD20CC1D4F94920EB9C534D0DA90DE70D25BC7287319CF28602B3F46633C242CAFC8905E960317E3C2FA20AB8DB06ADBAF292FC7BA2CA14EE65DF28B99CC11666B70AD33E8E1D57D63D4B89ECC615AE5747C1CA752C833D8D6DE54CD4A0350B44310555CE3BD2C615ADD27B634CDB350AF3A432CE78AACD2909A5B586F666CD87919A36DB1CBE86B3CE281DFD01CD7E1B8A18A4B415CECBFF79A5C4390A15EA77D14D6BE12BAB5A8268C3F286D0590060647CABED674443CD258F11415E866AB330A251691B61F2422A61AFE59B6B4FBDCF85ED9BA0F8E483C034089E6877FF5923698D3A0DC0EED6B9CFD32DF0839BC4EA5F6D1FCB6DD0920391E57E84745131D02D100179F4E0A68EC0A5FF6680A6F463D038B04AF63FFA13D743B995A26A743C26D387209023C91DE43DF047A16F328AC9DDC08573B38BE9EA341EA16C78EC32F3A1B36B90D95A50610F4D050EC1C33497F3F3A81A1B4C8BEF0BA84EE2FAA32DC112DAC490AF53E1749C4A0D866CAF7B893E52383B0D38065C333FB122B700D7246F7EE87D942AE3DB5C1DD77E9E76C80CC5AD63D28DFED0E229CE604673F78CD47F258FDF5BF3A3EAEC5C9BC8E482D8DBA9D268A35DA8C095A690679ED2123E8B8F5E4826FA3B199EAA5D482D4B6AA86572E387CECEB7149C8947F41D6339328A748A17F8C4AD3B0555F1E409450BA0C564F1F488BB5096EB003568D4D5EF6489897E27409547D0EE4487D30184793B0F27BD265A64BDB3EA6761569DA955620C612E718677B77D6D81B999C6298877AFE0D1D6F6F358377A8BD2402F669C64B972B3A065EF7DD4BDEFFFE17E63DB8898FA6E69166B710AAD6BA2EA9AF61E4B8C8701638D4D6E4DFFFC192AEF6BC027095C4C72D748979675BA29FAF61E75343E14E61034602E5A79CD2519796ED6A9CC4EDEA46A9B59D4A807E786B5EE46F25B0360BC8E7C12D723122CDEEF247C9776F4C99C8EBED6828AA19744B5ADF0D07D95D98B3072372388D41B0FAB1CCE2775170679575ECDCA13B22A17FE9C6605C3445F58F1A829512DAB6C528F83580C8AA53C35D605F626F5AD0B7FC1EA87D69A835E3F53A1F450FB0AF42A5772F89D92A50D10F15BDBDA409F50C0B8AB93FE8A16D029DD8BB5C480D1466735ED4D9CAF637E5ECD6C2ECB6BF3B3EFBEE7AB936D2C568E3009D156B87CACB1FB3A48A70BC91B2EC35CC9147FFB1A524E2B2F2E4E2C1B12F1C1C63768BB95CD62FEC01CBA79B9FA282DD4DF49990F27FF8EE4E2DDE2F0ACD83BC9D4BE0090192C7A799967EC4DC2D63C0835E22D4C4B366D7FDCF3A05A4B53DF780F986EF25C79B665D5C00EFF7F17C0BB6D544F9D83A7FDAC47D9C5683A656011374253C918FF6EA64749DD971B2300DD53b ~CACHE_TEST.BCK T)[BERNARD.SYSTEM.CACHE_TEST]CACHE_DOC.PS;1|>20033E01EC591F6318CCE94CE2B81C04322EC52B624E50643B52391CCD2AB56396A2AD8E2D3CA61B80D9D4CC363B2DF7863526958CDF3497E36648406C317E58EC563E7C26149A2A3C643ADFB39A8DD92974C6D2A2A9D7B71CDF3FEBBF32BB02E7B45CF53AAEAD5E963A4AA4AF9A149A08A4EC303D5F2369977E93F54897EEAD31B06C5845D63F49D65F8E5573962241A57CCD717CE6CA8C784A11192943616EA059B51BC38429E18D0121FCBB6FBD5D909B0D89E616C66DEF6A0F165A7030BD911A1B120468329CBB006C8D37720E531CF31E878CB4AAAC137633675C3D546F5162487AB35F470C042BDEB945E0F2532BF92AA6FD53434440221ECD3533A7AA89900CB19EFE2CD872DF8B7969AF0D3B72BF31DC5DD69CA6460966F61AB17CB507964098DBA3AF122EEC3128A9BAFE1034493F372B36BD1351205E9043A67C544402D8BCE24358C8A5CE33867A00794CF7097D59C88279A11EE9C854E7E7AAE881F9828C569D208F5F33375F59E9A3818CFA38AAD0CBFBA32F9F44A8BB79DE4C40E3886457C16DA4A27953AA1E99472E35F2323F0BAA5E37DC28CBA46FEFB73B190016055ADD4D27615D748499A0E1C4B8C7EC339C1C4D95A813A85918A8D01EEB485DDCDCEA6EA3F2C2A9D85C139CD90CCB352634F9AFE836BCAC0C274E352BA2071B5269D5DE4CCDE3FF990CBA974980C7332AE1545A9C60D5D1459D3AE95C1AC065733AF14FADB440A110DD539563B8D850CD0704C52F3F7CCCB53630D776560CBD22D8FF08F5B354487A171AEC15F5F54DE9CAB668BCAC573E788D92762EF63E76087005F4AC2D02E0CAC173C11BE62ACE5DC4D3374F2F9746C9981E125FF9AB8CAE76D13039E2C54DFD708E028A619EA1ED78E6B46F06DF0D0B74BBEDD8C190C7C0CEBDE8F7A4888CC36575313478DD2CFE392E9BB7B2416955D44B7024A3BA43FBF37293B386D64746D7748895411D243FAEC50638F2AA33337D7FA018ADDAC5835A0DDFAE99AD6299DFB4CA6872C59853E3AC12FC9E3D26629C5B49CF844C87B3C4BFBE3074E3A1CE6984758C20C661084381CD6B4582D84F19C0000B5FC0DCB42B567E396031601C095D7016283EBE5F13CD8A3A374A74DDBBABD36081149F8BC242085F2F7297CC97FD3B8BAD206D8AC9707A39ECCC7963B522E08DA391A1EF12DD4D746DBDDDCC0834F88160CF189A9645567CEC2F023A571AF0DFD15DB85B744C28C000DF53B05F8F210841F6E87A04F20C777B7C0BE6182BE2E90226E5301A12532A745F2FAAA81637CF11B78CD2B99A4D18B862D6C5DBD31793FB16A2D9AAD376D4484D75AA833D0068B1D34DB74E3302480854E3B5484D8A47E39A89A2FA927BC3641EA7F8E004FDE4C2F08D40D99F1ACB47CAF6887629BF6DFE12968D297596D28CE0CF148B12E7DCB49FB94F5ADBD214C3A6CE1E249831BA9EB8A189F2CE1ABE39A7B537253E369A508A2AF2ADB9463F9B56BBBFF31D535FF997F537C6675C196E7ECBD493F652FA7CC6D9C1CA3379BFDB5AF7513C6E834054494296B91A6EE800114363D5D5D0759F41B4DECB653B9DE3E94583579EF549ED5F3FAFB12661ABC0C57A332406517ED3454EDED34B386C60F78DC976266E0EAF54FC245FB0E3EFC8016236436B599C1C97A8C5E0AC8F7836161873C71F01ED9CC25C236420F41FD8277993D3959205912FA0927B59E3DAE7377D82079447D6E41EE5AEC0DFFF79AF8F4ED47F17EE708FEA45877860D56F8CBCE65A061E8E1CA4A5FBAF0E13429A7F0ADB6F178FA449F46CC539BBC0107E3A53B1C362A04B20E6D721E7E6E1E4976A11DDC98C7614D22B53DFBB6DAE533AC9BE882021A735C30DAA4A44AED09F49A390E8CFF59BD9C30667AF21B03EC5CEBD5C2C3AA2769E8D714191A48E7DDF50B13D1560E82EFB65FCE601AE9E8C351FBA1DED80B7351314E7F9F9A784BFE3759B7E322A84E7B51F9DC5F5D9C8050CD79B27C0A4B0DD68A3C27A948AD6858E35B960D2DEA838C479CAEA83B1A912174ACB2100E55E7A14892D7A9B3711FF0B20065C1995B49E1F23464A92DD140642E3A7B1973849E64D1A3CF60000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %endeexec %%EndProcSet %%EndProlog %%BeginDocumentSetup md begin F sgd svsc T T 0 0 730 552 -31 -30 761 582 100 72 72 1 F F F F T T F F psu (Ken Bates; document: LGCACHE.doc)jn 0 mf od %%EndDocumentSetup %%Page: ? 1 op 0 0 730 552 fr 0 0 xl 1 1 pen 239 126 gm (nc 0 0 730 552 6 rc)kp F 1 setTxMode 1 fs bu fc {}mark T /Times-Bold /|______Times-Bold 0 rf bn 24 fz bu fc 2 F /|______Times-Bold fnt bn 7.11608 0. 32 0.71160 0.(HSC Cache Needs Analysis)awidthshow 403 197 gm 18 fz bu fc 2 F /|______Times-Bold fnt bn 3.98986 0. 32 0.39898 0.(Software Version 1.1)awidthshow 421 243 gm 0.88000 0.(29-Oct-91)ashow F T cp %%Page: ? 2 op 31 30 761 582 fr 0 0 xl 1 1 pen 138 264 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 5 fs 24 fz bu fc 2 F /|______Times-Bold fnt bn 101.99977 ul 1.43299 0.(Contents)ashow 165 90 gm 0 fs bu fc {}mark T /Times-Roman /|______Times-Roman 0 rf bn 12 fz bu fc 2 F /|______Times-Roman fnt bn 0.87683 0.(Introduction.........................................................................................)ashow 165 148 gm ( )show 165 504 gm (3)show 189 90 gm -0.14949 0.(Requirements)ashow 189 156 gm 1.01161 0.(.......................................................................................)ashow 189 155 gm ( )show 189 504 gm (3)show 213 90 gm 0.91609 0.(Overview............................................................................................)ashow 213 136 gm ( )show 213 504 gm (3)show 237 126 gm 6.33438 0. 32 0.63343 0.(Theory of operation.......................................................................)awidthshow 237 220 gm ( )show 237 504 gm (3)show 261 126 gm 0.95652 0.(Steps........................................................................................)ashow 261 152 gm ( )show 261 504 gm (4)show 285 126 gm 5.89050 0. 32 0.58905 0.(Interpreting the results....................................................................)awidthshow 285 232 gm ( )show 285 504 gm (5)show 309 90 gm -0.16458 0.(Detailed Instructions)ashow 309 188 gm 1.01280 0.(...............................................................................)ashow 309 187 gm ( )show 309 504 gm (5)show 333 126 gm 6.60736 0. 32 0.66073 0.(Preparing the HSC........................................................................)awidthshow 333 216 gm ( )show 333 504 gm (5)show 357 126 gm -0.15803 0.(Beginning the data capture)ashow 357 252 gm 1.01611 0.(...............................................................)ashow 357 251 gm ( )show 357 504 gm (6)show 381 126 gm 5.32638 0. 32 0.53263 0.(Ending the data capture...................................................................)awidthshow 381 236 gm ( )show 381 504 gm (8)show 405 126 gm -0.14657 0.(Converting the data)ashow 405 220 gm 1.01426 0.(.......................................................................)ashow 405 218 gm ( )show 405 504 gm (9)show 429 126 gm -0.21353 0.(Analyzing the data)ashow 429 216 gm 1.01406 0.(........................................................................)ashow 429 213 gm ( )show 429 504 gm (9)show 453 126 gm 5.89050 0. 32 0.58905 0.(Interpreting the results....................................................................)awidthshow 453 232 gm ( )show 453 504 gm (12)show 477 90 gm 5.19088 0. 32 0.51908 0.(Analyzing different applications..................................................................)awidthshow 477 240 gm ( )show 477 504 gm (13)show 501 90 gm -0.28012 0.(Accuracy)ashow 501 136 gm 1.01097 0.(............................................................................................)ashow 501 134 gm ( )show 501 504 gm (13)show 525 90 gm 8.14865 0. 32 0.81486 0.(Sample Run.........................................................................................)awidthshow 525 148 gm ( )show 525 504 gm (14)show 549 126 gm -0.05735 0.(Preparing the HSC:)ashow 549 220 gm 1.01426 0.(.......................................................................)ashow 549 219 gm ( )show 549 504 gm (14)show 573 126 gm -0.11477 0.(After Rebooting the HSC:)ashow 573 252 gm 1.01611 0.(...............................................................)ashow 573 249 gm ( )show 573 504 gm (14)show 597 126 gm -0.22441 0.(After the Data Capture:)ashow 597 236 gm 1.01513 0.(...................................................................)ashow 597 234 gm ( )show 597 504 gm (15)show 621 126 gm 3.42727 0. 32 0.34272 0.(Copying the Data to a VMS Disk:.......................................................)awidthshow 621 284 gm ( )show 621 504 gm (15)show 645 126 gm -0.25703 0.(Analyzing the Data:)ashow 645 220 gm 1.01426 0.(.......................................................................)ashow 645 218 gm ( )show 645 504 gm (15)show 669 126 gm -0.16017 0.(Disabling Data Capture On the HSC:)ashow 669 300 gm 1.01998 0.(...................................................)ashow 669 299 gm ( )show 669 504 gm (16)show F T cp %%Page: ? 3 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 3)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 153 90 gm F 1 setTxMode 5 fs 5.02711 ul 0.36012 0.(I)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 81.97331 ul 0.58721 0.(NTRODUCTION)ashow 177 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09785 0.(With the introduction of cache on the HSC controller, it is possible to have I/O response times)ashow 189 90 gm -0.07882 0.(that are significantly shorter than with previous HSC models. This reduced response time)ashow 201 90 gm -0.08633 0.(translates directly into increased performance, since, for a given response time, a much higher)ashow 213 90 gm -0.10772 0.(I/O rate may be sustained. Similarly, if the I/O rate was to remain the same, the reduced)ashow 225 90 gm -0.06332 0.(response time would mean a much shorter program run.)ashow 249 90 gm -0.08062 0.(Caching works by retaining frequently accessed data within the HSC memory, so that)ashow 261 90 gm -0.08439 0.(subsequent requests for this data will be satisfied directly from HSC memory without requiring)ashow 273 90 gm -0.04377 0.(a disk access. For this to work however, the same blocks of data on the disk must be read)ashow 285 90 gm -0.09008 0.(more than once. This type of operation might occur when accessing an index portion of an)ashow 297 90 gm -0.08357 0.(indexed file, multiple users requesting the same data, or even multiple host processors)ashow 309 90 gm -0.08114 0.(requesting the same range of data blocks.)ashow 333 90 gm -0.11285 0.(This document describes a series of programs designed to objectively determine the benefits)ashow 345 90 gm -0.04809 0.(that would result from HSC cache on your system. By following the steps in this document,)ashow 357 90 gm -0.07156 0.(any benefits of HSC cache can be seen when running your applications. With this information,)ashow 369 90 gm -0.11286 0.(the decision to purchase the cache option for the HSC can be objectively evaluated, and any)ashow 381 90 gm -0.12997 0.(increases in performance accurately predicted.)ashow 405 90 gm 5 fs bu fc 2 F /|______Times-Bold fnt bn 9.31900 ul 0.65591 0.(R)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 80.68118 ul 0.56787 0.(EQUIREMENTS)ashow 429 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.07023 0.(To follow this procedure, the following is required:)ashow 453 108 gm (\245)show 453 126 gm -0.04939 0.(HSC controller \(any model\).)ashow 477 108 gm (\245)show 477 126 gm 0.15594 0. 32 0.01559 0.(HSC40 or HSC70 software version 3.7 or greater, )awidthshow 1 fs bu fc 2 F /|______Times-Bold fnt bn 0.09315 0.(or)ashow 489 126 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02790 0.(HSC60 or HSC90 software version 6.0 or greater \(with or without cache enabled\).)ashow 513 108 gm (\245)show 513 126 gm -0.08180 0.(One spare RA disk drive \(any model\) which will be connected to the HSC. This disk)ashow 525 126 gm -0.12165 0.(will be completely overwritten with data from the test.)ashow 549 108 gm (\245)show 549 126 gm -0.05540 0.(VMS versions 5.0 and upward. The VMS programs supplied with this package were)ashow 561 126 gm -0.02090 0.(linked under VMS version 5.3-1.)ashow 585 90 gm 5 fs bu fc 2 F /|______Times-Bold fnt bn 9.77963 ul 0.44564 0.(O)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 51.22080 ul 0.38902 0.(VERVIEW)ashow 609 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.11871 0.(Since cache functions by retaining frequently accessed data in high speed memory, the actual)ashow 621 90 gm -0.10664 0.(I/O requests over a period of time must be known in order to determine how well cache will)ashow 633 90 gm -0.06295 0.(work. This is done by capturing all I/O requests issued by the host computers over a period of)ashow 645 90 gm -0.11970 0.(time, then analyzing these requests to see how effective cache would be in this particular I/O)ashow 657 90 gm -0.05888 0.(environment.)ashow 681 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.72598 0. 32 0.27259 0.(Theory of operation)awidthshow 705 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.09239 0.(To analyze the I/O stream, special monitoring software within the HSC is enabled. This)ashow 717 90 gm -0.11131 0.(software will write a condensed copy of each I/O command it receives from the host computers)ashow F T cp %%Page: ? 4 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 4)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.09315 0.(to a dedicated disk drive. This logging will proceed in parallel with normal operations, and has)ashow 129 90 gm -0.10934 0.(a negligible impact on performance. In essence, the HSC is journaling all I/O commands that it)ashow 141 90 gm -0.09162 0.(receives. The data that is stored on the disk drive includes the type of I/O \(read or write\), the)ashow 153 90 gm -0.08085 0.(disk drive to which the command was sent, the beginning logical block of the transfer, and the)ashow 165 90 gm -0.09750 0.(length of the transfer. The actual data that was transferred is not captured, just the information)ashow 177 90 gm -0.09802 0.(describing that data.)ashow 201 90 gm -0.11938 0.(Since the object of the test is to measure the effects of cache during normal operation, the data)ashow 213 90 gm -0.11634 0.(capture phase should be run for an amount of time sufficient to capture all normal activities.)ashow 225 90 gm -0.09988 0.(Although this will vary from one site to another, typical periods of time are from one to two)ashow 237 90 gm -0.07028 0.(days. If different jobs or processes run at different times during the month, then the test may be)ashow 249 90 gm -0.11917 0.(repeated for each time period of interest.)ashow 273 90 gm -0.12097 0.(Once the data has been captured, the next step is to run a program that analyzes the captured)ashow 285 90 gm -0.08898 0.(data. This program is a simulation of the HSC that duplicates the action of the HSC cache. It)ashow 297 90 gm -0.12017 0.(will scan the data file \(which contains the I/O activity\), and simulate the actions of the HSC)ashow 309 90 gm -0.07983 0.(cache. By doing this, a picture can be built of which commands would have been satisfied by)ashow 321 90 gm -0.04765 0.(the cache in the HSC, and which would have been directed to disk. From this, the response)ashow 333 90 gm -0.07458 0.(times for each disk can be generated, and the results of what would have happened if HSC)ashow 345 90 gm -0.11680 0.(cache had been present may be predicted.)ashow 369 90 gm -0.08055 0.(Although this procedure will only show what would have happened if cache had been present,)ashow 381 90 gm -0.10656 0.(if the time period during which the data was captured was very typical of normal system)ashow 393 90 gm -0.08578 0.(operation, these results can be used to predict future performance under similar conditions.)ashow 417 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 0.91801 0.(Steps)ashow 441 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.08006 0.(In slightly more detail, the steps are as follows:)ashow 465 108 gm 1.00003 0.(1.)ashow 465 135 gm -0.07937 0.(Prepare the HSC by enabling the special monitoring software. This requires a reboot)ashow 477 135 gm 0.33630 0. 32 0.03363 0.(of the HSC.)awidthshow 501 108 gm 1.00003 0.(2.)ashow 501 135 gm -0.01097 0.(Connect a dedicated disk to the HSC that will be used for data capture. )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.01354 0.(This disk)ashow 513 135 gm 2.61657 0. 32 0.26165 0.(will be completely overwritten by the logging software, and any VMS)awidthshow 525 135 gm 2.54806 0. 32 0.25480 0.(files on that disk will be erased.)awidthshow 549 108 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn 1.00003 0.(3.)ashow 549 135 gm -0.11369 0.(Activate the logging software within the HSC when normal activity is taking place.)ashow 573 108 gm 1.00003 0.(4.)ashow 573 135 gm -0.12980 0.(Wait for a period of time to make sure that all normal activity has been captured. This)ashow 585 135 gm -0.02041 0.(is usually from one to two days.)ashow 609 108 gm 1.00003 0.(5.)ashow 609 135 gm -0.14042 0.(Deactivate the logging software within the HSC to terminate data collection.)ashow 633 108 gm 1.00003 0.(6.)ashow 633 135 gm -0.13490 0.(Run a program that will convert the data on the dedicated disk drive to a normal VMS)ashow 645 135 gm -0.06559 0.(file on any mounted disk. This step is optional, and only needs to be done if the)ashow 657 135 gm -0.11032 0.(dedicated disk needs to be reused immediately, thereby erasing the captured data.)ashow 681 108 gm 1.00003 0.(7.)ashow 681 135 gm -0.11061 0.(Run the analysis program on the captured data \(which is on either the dedicated disk)ashow 693 135 gm -0.07406 0.(or was copied to a VMS file on another disk\).)ashow F T cp %%Page: ? 5 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 5)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 108 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn 1.00003 0.(8.)ashow 117 135 gm -0.12942 0.(Interpret the results of the analysis to determine the increase in performance obtained)ashow 129 135 gm (from HSC cache.)show 153 108 gm 1.00003 0.(9.)ashow 153 135 gm -0.09257 0.(If desired, repeat the test for other I/O applications beginning at step 3.)ashow 177 108 gm 0.5 0.(10.)ashow 177 135 gm -0.10635 0.(Disable the special monitoring software when complete. This requires a reboot of the)ashow 189 135 gm 0.55406 0.(HSC.)ashow 213 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.49298 0. 32 0.24929 0.(Interpreting the results)awidthshow 237 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.07749 0.(Cache improves performance by returning data directly from HSC memory, bypassing disk)ashow 249 90 gm -0.10517 0.(accesses. Any time a command is satisfied from cache, it is termed a \322hit,\323 while if the)ashow 261 90 gm -0.09400 0.(command must go to disk, it is termed a \322miss.\323 Since any data written to disk must actually)ashow 273 90 gm -0.08413 0.(access the disk, only read commands can generate a hit.)ashow 297 90 gm -0.13359 0.(One measure of cache performance is called \322hit rate.\323 This is the percentage of commands)ashow 309 90 gm -0.11631 0.(which result in a cache hit. As an example, a hit rate of 50% indicates that half the commands)ashow 321 90 gm -0.08514 0.(were satisfied from cache and did not have to access the disk.)ashow 345 90 gm -0.09069 0.(Another cache metric is response time. On average, a disk access requires from 20 to 50)ashow 357 90 gm -0.07298 0.(milliseconds \(ms\). If the access is satisfied from HSC cache however, the average time is from)ashow 369 90 gm -0.08445 0.(2 to 5 ms, or a small fraction of the time taken on a miss. As the hit rate increases, the)ashow 381 90 gm -0.07443 0.(percentage of requests having these short response times increases, and the average response)ashow 393 90 gm -0.08383 0.(time for the disk drive will also decrease. As an example, if half of the requests were hits \(with)ashow 405 90 gm -0.06898 0.(a response time of 4 ms\) and half were misses \(with a response time of 40 ms\), then the overall)ashow 417 90 gm -0.07588 0.(average response time would be 22 ms. With a smaller response time, I/O bound jobs will)ashow 429 90 gm -0.11401 0.(complete much faster.)ashow 453 90 gm -0.11335 0.(The last measure of cache effectiveness is the maximum request rate for a disk drive. In typical)ashow 465 90 gm -0.10687 0.(operations, the maximum request rate is determined by the longest tolerable response time. As)ashow 477 90 gm -0.06132 0.(an example, an RA92 can sustain about 35 requests per second with a response time of 50 ms.)ashow 489 90 gm -0.07046 0.(As we have seen with cache, the average response time is much shorter. As a result, more)ashow 501 90 gm -0.09188 0.(requests may be sent to this drive before the drive becomes so busy that the response time)ashow 513 90 gm -0.10798 0.(begins to exceed tolerable limits. With an RA92 and a cache hit rate of 50%, nearly 75 requests)ashow 525 90 gm -0.07116 0.(per second may be sent to the drive before the response time reaches 50 ms. Because of this,)ashow 537 90 gm -0.06430 0.(more work may be sent to the disks than would be possible without cache.)ashow 561 90 gm -0.08930 0.(The analysis program will show both the response times and maximum request rates with and)ashow 573 90 gm -0.09414 0.(without cache. By examining the cached and non-cached request rates and response times, the)ashow 585 90 gm -0.15301 0.(increase in performance attainable with cache may be evaluated.)ashow 609 90 gm 5 fs bu fc 2 F /|______Times-Bold fnt bn 9.50566 ul 0.84257 0.(D)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 52.12786 ul 2.56698 0. 32 0.25669 0.(ETAILED )awidthshow 12 fz bu fc 2 F /|______Times-Bold fnt bn 5.12089 ul 0.45390 0.(I)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 79.24592 ul 0.70242 0.(NSTRUCTIONS)ashow 633 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.13906 0.(The remainder of this document details the steps required to capture the data and analyze the)ashow 645 90 gm -0.03208 0.(possible effects of HSC cache.)ashow 669 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.32131 0. 32 0.23213 0.(Preparing the HSC)awidthshow 693 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.08578 0.(Prior to any data capture, special monitoring code within the HSC must be enabled. To)ashow 705 90 gm -0.09146 0.(accomplish this, the SETSHO utility must be run, and a command must be issued to enable the)ashow 717 90 gm -0.08004 0.(monitoring code. Since this command causes special code within the HSC to be invoked, a)ashow F T cp %%Page: ? 6 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 6)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.07322 0.(reboot is required. Because of this, this step should be taken when it is convenient to restart the)ashow 129 90 gm 0.55406 0.(HSC.)ashow 153 90 gm -0.07348 0.(To enable this code, enter the following on the HSC \(the HSC node in this example is EWOK,)ashow 165 90 gm 0.12557 0. 32 0.01255 0.(and user typing is shown in )awidthshow 1 fs bu fc 2 F /|______Times-Bold fnt bn 0.04653 0.(bold)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn 0.06015 0.(\):)ashow 189 126 gm 1 fs bu fc {}mark T /Courier-Bold /|______Courier-Bold 0 rf bn 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 200 126 gm 0 fs bu fc {}mark T /Courier /|______Courier 0 rf bn bu fc 2 F /|______Courier fnt bn 0.80912 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.39828 0. 32 0.33982 0.( SET SERVER DISK/MSCP)awidthshow 211 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00625 0. 32 0.00062 0.(SETSHO-I Your settings require an IMMEDIATE reboot on exit.)awidthshow 222 126 gm 0.00595 0. 32 0.00059 0.(SETSHO-Q Rebooting HSC. Press RETURN to continue, CTRL/Y to abort:)awidthshow 245 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.07865 0.(In order for this change to take effect, the HSC must be rebooted. Entering a return will reboot)ashow 257 90 gm -0.09428 0.(the HSC, while entering a CTRL/Y will abort the operation. When the boot has been)ashow 269 90 gm -0.10937 0.(completed, the monitoring code has been enabled. No logging of I/O commands will take place)ashow 281 90 gm -0.06916 0.(until another HSC utility has been run.)ashow 305 90 gm -0.08123 0.(The HSC will only log those I/O commands that are sent to disks connected to that HSC.)ashow 317 90 gm -0.07469 0.(Because of this, you should make sure that all disks you wish to monitor are connected to and)ashow 329 90 gm -0.07357 0.(mounted on the HSC under test. Since disks that were originally connected to the HSC under)ashow 341 90 gm -0.09161 0.(test will fail over to the alternate HSC when the original HSC is rebooted, make sure that you)ashow 353 90 gm -0.08291 0.(have all disks of interest connected back to the HSC under test.)ashow 377 90 gm -0.12330 0.(The SETSHO command will cause the logging code to remain enabled even if the HSC is later)ashow 389 90 gm -0.07586 0.(rebooted, so the command only needs to be issued once. When all data has been captured, the)ashow 401 90 gm -0.12782 0.(special logging code may be deactivated be entering the following commands to the HSC:)ashow 425 126 gm 1 fs 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 436 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.82286 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.63952 0. 32 0.36395 0.( SET SERVER DISK/NOMSCP)awidthshow 447 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00625 0. 32 0.00062 0.(SETSHO-I Your settings require an IMMEDIATE reboot on exit.)awidthshow 458 126 gm 0.00595 0. 32 0.00059 0.(SETSHO-Q Rebooting HSC. Press RETURN to continue, CTRL/Y to abort:)awidthshow 481 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.08508 0.(As before, a reboot of the HSC will be required before this command will take effect.)ashow 505 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.18582 0. 32 0.21858 0.(Beginning the data capture)awidthshow 529 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.09922 0.(To capture the I/O stream, a dedicated disk drive must be connected to the HSC under test.)ashow 541 90 gm -0.08303 0.(This disk will be completely overwritten with the data, and any files on this disk will be lost.)ashow 553 90 gm -0.12861 0.(After the data capture, the disk must be reinitialized before it may be used with VMS. Any RA)ashow 565 90 gm -0.08609 0.(disk may be used. The disk must not be mounted by VMS, but it must be available \(the port)ashow 577 90 gm -0.06045 0.(must be enabled\).)ashow 606 299 gm 5 fs 14 fz bu fc 2 F /|______Times-Bold fnt bn 31.00004 ul 1.00685 0.(Note)ashow 2 1 pen 592 158 gm 0 gr 592 159 lin 1 2 pen 592 158 gm 593 158 lin 2 1 pen 592 160 gm 592 469 lin 592 470 gm 592 471 lin 1 2 pen 592 470 gm 593 470 lin 594 158 gm 608 158 lin 594 470 gm 608 470 lin 609 158 gm 632 158 lin 609 470 gm 632 470 lin 642 162 gm F 1 setTxMode 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn 0.62225 0. 32 0.06222 0.(The name of the utility on versions of the HSC40 and HSC70)awidthshow 633 158 gm 0 gr 644 158 lin 633 470 gm 644 470 lin 654 162 gm F 1 setTxMode 1.04293 0. 32 0.10429 0.(prior to 6.00 is LGUTIL. As of version 6.00, this utility was)awidthshow 645 158 gm 0 gr 656 158 lin 645 470 gm 656 470 lin 666 162 gm F 1 setTxMode -0.03988 0.(renamed to DSKLOG. In the examples that follow, DSKLOG is)ashow 657 158 gm 0 gr 668 158 lin 657 470 gm 668 470 lin 678 162 gm F 1 setTxMode 2.20611 0. 32 0.22061 0.(used. If your HSC software version is less than 6.00, use)awidthshow 669 158 gm 0 gr 680 158 lin 669 470 gm 680 470 lin 690 162 gm F 1 setTxMode -0.03932 0.(LGUTIL instead of DSKLOG.)ashow 2 1 pen 693 158 gm 0 gr 693 159 lin 1 2 pen 693 158 gm 694 158 lin 2 1 pen 693 160 gm 693 469 lin 693 470 gm 693 471 lin 1 2 pen 693 470 gm 694 470 lin 681 158 gm 692 158 lin 681 470 gm 692 470 lin F T cp %%Page: ? 7 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 7)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.06823 0.(Once the data capture disk is connected, the logging utility on the HSC should be run. )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.14299 0.(The)ashow 129 90 gm 2.49679 0. 32 0.24967 0.(data capture disk will be completely overwritten by the logging software, and)awidthshow 141 90 gm 1.01181 0. 32 0.10118 0.(any VMS files on that disk will be erased. )awidthshow 0 fs bu fc 2 F /|______Times-Roman fnt bn 1.13693 0. 32 0.11369 0.(Assuming the data capture disk is unit 10,)awidthshow 153 90 gm -0.05880 0.(the steps for this are as follows:)ashow 177 126 gm 1 fs 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 188 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.64428 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.07092 0. 32 0.20709 0.( R DSKLOG)awidthshow 199 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 2.47573 0. 32 0.24757 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.93182 0. 32 0.29318 0.(ENABLE D10)awidthshow 210 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ( Log: ENABLED)show 221 126 gm ( Unit: 10)show 232 126 gm ( LBN: 0)show 243 126 gm ( Wrap Count: 0)show 254 126 gm ( MSCP Status: 000000)show 265 126 gm ( Wrap Point: 1216665)show 276 126 gm ( Missed I/O: 0)show 299 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10470 0.(At this point, the data capture code is active, and any I/O commands sent to any disk on the)ashow 311 90 gm -0.03251 0.(HSC will be logged to drive 10.)ashow 335 90 gm -0.09890 0.(The meanings of the individual lines on the status message are as follows:)ashow 359 108 gm (\245)show 359 126 gm -0.13322 0.(Log - Either \322ENABLED\323 or \322DISABLED,\323 indicating the status of the data logging.)ashow 371 126 gm -0.09812 0.(For data to be captured, the log must be \322ENABLED.\323)ashow 395 108 gm (\245)show 395 126 gm -0.09263 0.(Unit - The disk unit to which data is being logged. If \322Log\323 is \322DISABLED,\323 this field)ashow 407 126 gm -0.07582 0.(is the last unit on which data was captured.)ashow 431 108 gm (\245)show 431 126 gm -0.09634 0.(LBN - The last LBN on the data capture disk to which data was written. Each I/O)ashow 443 126 gm -0.08749 0.(packet occupies 24 bytes, so 3 logical blocks will contain 64 records. To determine the)ashow 455 126 gm -0.11994 0.(total number of I/O packets captured, divide the \322LBN\323 field by 3 and then multiply by)ashow 467 126 gm -0.07994 0.(64. This value is not exact, but will give a good approximation of how many I/O)ashow 479 126 gm -0.05889 0.(packets have been sent to the HSC.)ashow 503 108 gm (\245)show 503 126 gm -0.10421 0.(Wrap Count - DSKLOG continues writing I/O packets until the data capture disk is full.)ashow 515 126 gm -0.09248 0.(At that time, it \322wraps\323 back to the beginning of the disk and starts over. The number)ashow 527 126 gm -0.04656 0.(of times this has happened is shown in this field.)ashow 551 108 gm (\245)show 551 126 gm -0.06803 0.(MSCP Status - The MSCP status of the last I/O operation. This will usually be zero,)ashow 563 126 gm -0.05364 0.(and may be ignored.)ashow 587 108 gm (\245)show 587 126 gm -0.0985ԍe~CACHE_TEST.BCK T)[BERNARD.SYSTEM.CACHE_TEST]CACHE_DOC.PS;1{||5 0.(Wrap Point - The number of logical blocks on the data capture disk. To determine how)ashow 599 126 gm -0.08293 0.(many I/O packets the disk will hold before wrapping, divide this number by 3 and)ashow 611 126 gm -0.04785 0.(multiply by 64.)ashow 635 126 gm -0.10134 0.(The length of time before the data wraps depends on both the size of the disk and the)ashow 647 126 gm -0.12615 0.(I/O rate. In the above example, nearly 26 million I/O packets may be captured before)ashow 659 126 gm -0.06755 0.(data wraps to the beginning of the disk. If the I/O rate to the HSC \(shown with the)ashow 671 126 gm -0.05441 0.(VTDPY program\) was 200 requests per second, then approximately 129,000 seconds)ashow 683 126 gm -0.05416 0.(would be required before the data wrapped \(about 36 hours\).)ashow F T cp %%Page: ? 8 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 8)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 108 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn (\245)show 117 126 gm -0.10681 0.(Missed I/O - This is the number of I/O packets that DSKLOG did not capture. This may)ashow 129 126 gm -0.10096 0.(happen on an extremely busy system when DSKLOG determines that it does not have)ashow 141 126 gm -0.08325 0.(enough resources to capture the I/O.)ashow 165 90 gm -0.11941 0.(To exit DSKLOG, simply type a CTRL/Z:)ashow 189 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.89538 0. 32 0.08953 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.40292 0.(^Z)ashow 200 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (DSKLOG-I Exiting.)show 223 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.08497 0.(At this point, data is still being captured onto the logging disk, even though DSKLOG has been)ashow 235 90 gm -0.11437 0.(exited. At a later time, you may run DSKLOG again and check the status of the data logging)ashow 247 90 gm -0.18301 0.(operation:)ashow 271 126 gm 1 fs 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 282 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 2.14828 0. 32 0.21482 0.(EWOK> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.69592 0. 32 0.26959 0.(R DSKLOG)awidthshow 293 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 1.91116 0. 32 0.19111 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.51600 0.(STATUS)ashow 304 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ( Log: ENABLED)show 315 126 gm ( Unit: 10)show 326 126 gm ( LBN: 12)show 337 126 gm ( Wrap Count: 0)show 348 126 gm ( MSCP Status: 000000)show 359 126 gm ( Wrap Point: 1216665)show 370 126 gm ( Missed I/O: 0)show 393 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09066 0.(As may be seen, the value for \322LBN\323 has changed from 0 to 12, indicating that data has been)ashow 405 90 gm -0.03901 0.(captured \(the values shown will differ from what you see on your HSC\). In this example, 256)ashow 417 90 gm -0.09272 0.(I/O packets have been captured. This step may be repeated as often as desired.)ashow 441 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 1.66961 0. 32 0.16696 0.(Ending the data capture)awidthshow 465 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.11605 0.(Once the time period of interest has passed, DSKLOG must be instructed to terminate)ashow 477 90 gm -0.04977 0.(operations. This may be done as follows:)ashow 501 126 gm 1 fs 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 512 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.64428 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.07092 0. 32 0.20709 0.( R DSKLOG)awidthshow 523 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 2.57949 0. 32 0.25794 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.19213 0. 32 0.31921 0.(DISABLE D10)awidthshow 534 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ( Log: DISABLED)show 545 126 gm ( Unit: 10)show 556 126 gm ( LBN: 225)show 567 126 gm ( Wrap Count: 0)show 578 126 gm ( MSCP Status: 000000)show 589 126 gm ( Wrap Point: 1216665)show 600 126 gm ( Missed I/O: 0)show 623 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10102 0.(A final status message is printed \(in this example, the LBN indicates that 4,800 I/O packets)ashow 635 90 gm -0.09471 0.(have been captured\), and disk logging is then terminated. DSKLOG does not terminate logging)ashow 647 90 gm -0.10049 0.(until its internal buffer has been filled, so there may be some delay between issuing the)ashow 659 90 gm -0.12947 0.(DISABLE command and the actual disabling of data logging.)ashow 683 90 gm -0.10618 0.(If you plan on copying this data to a VMS file on another disk, the size of that file will be the)ashow 695 90 gm -0.04718 0.(number of blocks shown for the LBN field \(225 blocks, in the above example\).)ashow F T cp %%Page: ? 9 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 493 gm 2.89581 0. 32 0.28958 0.(Page 9)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 2.20046 0. 32 0.22004 0.(Converting the data)awidthshow 141 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.10198 0.(At this point, the captured data is on the dedicated disk \(Drive 10, in the above example\).)ashow 153 90 gm -0.12004 0.(Although the data can be analyzed directly from this disk, it may be desired to make a copy of)ashow 165 90 gm -0.10096 0.(the data for later analysis. Another reason might be that another data capture run is desired, and)ashow 177 90 gm -0.10795 0.(there is only one data collection disk. If it desired, the captured data may be converted to an)ashow 189 90 gm -0.08227 0.(RMS file, which will be placed on a mounted VMS disk.)ashow 213 90 gm -0.09407 0.(To convert the data, the data capture disk must be mounted foreign.)ashow 237 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 1.53579 0. 32 0.15357 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 6.62277 0. 32 0.66227 0.(MOUNT $3$DUA10:/FOREIGN)awidthshow 248 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00457 0. 32 0.00045 0.(%MOUNT-I-MOUNTED, TEST mounted on _$3$DUA10: \(EWOK\))awidthshow 271 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09672 0.(Once the disk has been mounted, the copy program may be run \(PHY_IO privileges are)ashow 283 90 gm -0.14442 0.(required\):)ashow 307 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 1.39129 0. 32 0.13912 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 4.39346 0. 32 0.43934 0.(RUN LGCOPY)awidthshow 318 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00518 0. 32 0.00051 0.(Convert Raw DSKLOG Data - Version 1.1 \(14 Jul 91\))awidthshow 341 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10040 0.(When asked for the DSKLOG input disk, enter the VMS designator for the data capture disk:)ashow 365 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.68710 0. 32 0.06871 0.(DSKLOG input disk \(CTRL/Z to exit\): )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.20942 0.($3$DUA10)ashow 388 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.12028 0.(The disk will then be examined by the program to ensure that it contains valid data. Once this)ashow 400 90 gm -0.09410 0.(has been verified, the program will ask for the output file:)ashow 424 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.95123 0. 32 0.09512 0.(RMS output file name: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.30639 0.(TEST.OUT)ashow 447 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.12307 0.(This file will contain the captured data from the data collection disk. It should be noted that this)ashow 459 90 gm -0.10058 0.(file may be quite large, depending on how many I/O packets were captured. Once this question)ashow 471 90 gm -0.10069 0.(has been answered, the program will begin converting the I/O packets and storing them in the)ashow 483 90 gm -0.18769 0.(specified file:)ashow 507 126 gm 10 fz bu fc 2 F /|______Courier fnt bn (Converting DSKLOG data...)show 530 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.11520 0.(Depending on the number of I/O packets captured, this step may take a considerable amount of)ashow 542 90 gm -0.07592 0.(time. Once this process has completed, the total number of records processed will be shown:)ashow 566 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.00747 0. 32 0.00074 0.(DSKLOG conversion complete, 4744 records processed.)awidthshow 577 126 gm 0.20278 0. 32 0.02027 0.(DSKLOG input disk \(CTRL/Z to exit\): )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.10818 0.(^Z)ashow 588 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ($)show 611 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.11523 0.(The number of records processed may not equal the number calculated from the LBN field in)ashow 623 90 gm -0.0625 0.(the DSKLOG status message. This is normal. To exit the program, enter a CTRL/Z.)ashow 647 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.25570 0. 32 0.22557 0.(Analyzing the data)awidthshow 671 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.11535 0.(The final step is to analyze the captured data. The analysis program will scan the DSKLOG)ashow 683 90 gm -0.10339 0.(data \(which may be in either an RMS file or on the original data capture disk\). During the scan,)ashow 695 90 gm -0.10423 0.(it will evaluate the effects of adding cache to the HSC for the workload that was captured. The)ashow 707 90 gm -0.11386 0.(result of this analysis will be a comparative picture of the performance of the I/O subsystem)ashow F T cp %%Page: ? 10 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 10)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.05628 0.(both with and without cache on a per-disk basis. From this, you can see the effects of adding)ashow 129 90 gm -0.12190 0.(cache to your particular system and determine the benefits of cache.)ashow 153 90 gm -0.08676 0.(The following is an example of the procedure to use for the analysis. In this example, the file)ashow 165 90 gm -0.07736 0.(that is to be analyzed has been converted with LGCOPY, and is named HSC3.DAT.)ashow 189 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 1.36611 0. 32 0.13661 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 4.09820 0. 32 0.40982 0.(R LGCACHE)awidthshow 200 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00564 0. 32 0.00056 0.(HSC Cache Suitability Analysis - Version 1.1 \(29 Oct 91\))awidthshow 223 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09724 0.(When asked for the DSKLOG data file or disk, enter the file \(or data capture disk\) which)ashow 235 90 gm -0.10302 0.(contains the DSKLOG data. If you are analyzing directly from the data capture disk, then this)ashow 247 90 gm -0.08609 0.(disk must have been mounted foreign \(PHY_IO privileges are required\).)ashow 271 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.80307 0. 32 0.08030 0.(DSKLOG data file or device: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.25566 0.(HSC3.DAT)ashow 294 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09873 0.(The program will then prompt for a listing file. Enter a file name for the report to be saved in.)ashow 306 90 gm -0.08958 0.(If you enter a CTRL/Z, the listing file will default to SYS$OUTPUT.)ashow 330 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 1.50344 0. 32 0.15034 0.(Listing file: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.41726 0.(HSC3.LIS)ashow 341 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (Analyzing DSKLOG data...)show 364 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09526 0.(The program will then begin the analysis. Since this procedure is quite complex, this may take)ashow 376 90 gm -0.09577 0.(a considerable amount of time. This time will vary, but depends primarily on the number of)ashow 388 90 gm -0.09251 0.(records captured by the DSKLOG program. Once the analysis has completed, a report will be)ashow 400 90 gm -0.06497 0.(printed describing the results.)ashow 424 90 gm -0.11557 0.(The first section of the report is a summary of the DSKLOG data file:)ashow 448 126 gm 10 fz bu fc 2 F /|______Courier fnt bn (DSKLOG Analysis:)show 459 126 gm ( DSKLOG file: HSC3.DAT)show 470 126 gm 0.00457 0. 32 0.00045 0.( Data collection start time: 27-APR-1988 07:49:05.21)awidthshow 481 126 gm 0.00457 0. 32 0.00045 0.( Data collection stop time: 27-APR-1988 08:22:00.81)awidthshow 492 126 gm 0.00366 0. 32 0.00036 0.( Scanned data covers 0 hours, 32 minutes)awidthshow 503 126 gm 0.00350 0. 32 0.00035 0.( Total DSKLOG packets: 96000)awidthshow 514 126 gm 0.00381 0. 32 0.00038 0.( Total transfer commands: 88880)awidthshow 537 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10435 0.(The first data line lists the file name \(or disk\) which contains the DSKLOG data. The second)ashow 549 90 gm -0.10723 0.(and third lines show the beginning and ending data collection times, while the fourth line)ashow 561 90 gm -0.11996 0.(shows the overall time of the data collection. These times can be used to ensure that the data)ashow 573 90 gm -0.11042 0.(capture covered the period of interest. In the above example, the total time of 32 minutes is)ashow 585 90 gm -0.07943 0.(rather short, and might be cause for concern about the validity of the measurements. Unless)ashow 597 90 gm -0.10107 0.(you are certain that your application has a very short run time, this period should be at least)ashow 609 90 gm -0.04174 0.(several hours in length.)ashow 633 90 gm -0.12594 0.(The next line reports the total number of DSKLOG packets analyzed, while the final line)ashow 645 90 gm -0.08283 0.(reports the number of transfer commands. The difference between these numbers is due to)ashow 657 90 gm -0.08354 0.(other packets that travel between the host computers and the HSC, such as commands to bring)ashow 669 90 gm -0.02142 0.(a disk online, status requests, and the like.)ashow 693 90 gm -0.07679 0.(Following this summary information, a report is printed showing the performance of the)ashow 705 90 gm -0.10559 0.(individual disk drives both with and without cache:)ashow F T cp %%Page: ? 11 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 11)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 126 gm F 1 setTxMode 0 fs 10 fz bu fc 2 F /|______Courier fnt bn 0.00274 0. 32 0.00027 0.( Disk Requests NC Resp Ca Resp NC Rate Ca Rate)awidthshow 140 126 gm 0.00289 0. 32 0.00028 0.( 56 21535 36.2 ms 12.1 ms \( 33.4%\) 18.5 73.6 \(3.97x\))awidthshow 151 126 gm 0.00274 0. 32 0.00027 0.( 55 8880 23.7 ms 22.4 ms \( 94.2%\) 26.6 29.2 \(1.10x\))awidthshow 162 126 gm 0.00274 0. 32 0.00027 0.( 84 6580 28.6 ms 8.8 ms \( 30.8%\) 18.3 96.9 \(5.30x\))awidthshow 173 126 gm 0.00274 0. 32 0.00027 0.( 64 3904 28.8 ms 18.6 ms \( 64.6%\) 16.7 35.7 \(2.14x\))awidthshow 184 126 gm 0.00305 0. 32 0.00030 0.(* 200 7161 35.2 ms 19.1 ms \( 54.2%\) 12.0 36.0 \(2.99x\))awidthshow 195 126 gm 0.00274 0. 32 0.00027 0.( 54 6560 23.9 ms 22.2 ms \( 92.7%\) 25.2 28.5 \(1.13x\))awidthshow 206 126 gm 0.00274 0. 32 0.00027 0.( 65 2845 26.6 ms 9.9 ms \( 37.1%\) 19.0 82.6 \(4.35x\))awidthshow 217 126 gm 0.00274 0. 32 0.00027 0.( 51 3929 28.2 ms 14.2 ms \( 50.3%\) 17.4 52.4 \(3.01x\))awidthshow 228 126 gm 0.00274 0. 32 0.00027 0.( 59 306 25.7 ms 16.7 ms \( 64.8%\) 19.0 40.2 \(2.11x\))awidthshow 239 126 gm 0.00152 0. 32 0.00015 0.( 50 7975 - - - -)awidthshow 250 126 gm 0.00289 0. 32 0.00028 0.( 53 87543 31.5 ms 24.8 ms \( 78.8%\) 15.1 23.6 \(1.57x\))awidthshow 261 126 gm 0.00289 0. 32 0.00028 0.( 63 11450 26.0 ms 10.5 ms \( 40.3%\) 24.2 81.3 \(3.35x\))awidthshow 272 126 gm 0.00274 0. 32 0.00027 0.( 62 911 27.3 ms 20.5 ms \( 75.1%\) 17.1 29.3 \(1.71x\))awidthshow 283 126 gm 0.00274 0. 32 0.00027 0.( 58 248 27.3 ms 17.7 ms \( 65.0%\) 16.8 36.5 \(2.18x\))awidthshow 294 126 gm 0.00274 0. 32 0.00027 0.( 60 66 27.6 ms 24.4 ms \( 88.2%\) 16.2 21.1 \(1.30x\))awidthshow 317 90 gm 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10333 0.(This report is divided into several columns, each of which contains specific information that)ashow 329 90 gm -0.10899 0.(must be evaluated. These columns are:)ashow 353 108 gm (\245)show 353 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.05874 0.(Disk)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.04908 0.(: This column contains the physical number of the disk. If this number is preceded)ashow 365 126 gm -0.08453 0.(by an asterisk \(*\), then that unit is the virtual unit number of a controller based shadow)ashow 377 126 gm -0.06477 0.(set. In the above example, drive 200 is a controller based shadow set, while all other)ashow 389 126 gm -0.05059 0.(disks are real units. Care must be taken when looking at a shadow set, since the HSC)ashow 401 126 gm -0.06048 0.(will not cache disks in a controller based shadow set \(disks in a host based shadow set)ashow 413 126 gm -0.09172 0.(may be cached\).)ashow 437 126 gm -0.05061 0.(Since HSC caching does not support controller based shadowed disks, any the data for)ashow 449 126 gm -0.05230 0.(any disk flagged with an asterisk is based on the disk )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.06204 0.(not)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.05639 0.( being cached. In the above)ashow 461 126 gm -0.05238 0.(example, the data shown for disk 200 is the performance shown if disk 200 were to)ashow 473 126 gm -0.02595 0.(exist as a single physical disk, not a shadow set.)ashow 497 108 gm (\245)show 497 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.03507 0.(Requests)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02883 0.(: This column tallies the number of I/O requests sent to each drive. This is of)ashow 509 126 gm -0.09088 0.(interest since drives with a low number of requests may not have exercised cache fully.)ashow 521 126 gm -0.03651 0.(As an example, disk 60 has had only 66 requests. Because of this low number, the)ashow 533 126 gm -0.08827 0.(performance information for this drive must be viewed with some skepticism.)ashow 557 108 gm (\245)show 557 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.04289 0.(NC Resp)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.03257 0.(: This column shows the calculated average response time of the drive)ashow 569 126 gm 0.02975 0. 32 0.00297 0.(without caching \()awidthshow 1 fs bu fc 2 F /|______Times-Bold fnt bn (N)show 0 fs bu fc 2 F /|______Times-Roman fnt bn (on-)show 1 fs bu fc 2 F /|______Times-Bold fnt bn (C)show 0 fs bu fc 2 F /|______Times-Roman fnt bn (ached )show 1 fs bu fc 2 F /|______Times-Bold fnt bn (Resp)show 0 fs bu fc 2 F /|______Times-Roman fnt bn 0.02471 0. 32 0.00247 0.(onse\). In essence, this is the average response)awidthshow 581 126 gm -0.09083 0.(time you can expect from the I/O subsystem with your workload for this drive without)ashow 593 126 gm -0.08499 0.(cache. If this field is a \324-\325, then the non-cached response time and all following fields)ashow 605 126 gm -0.07963 0.(for this disk could not be calculated and should be disregarded. In the above example,)ashow 617 126 gm -0.04922 0.(disk 50 show this condition. For a full explanation of the reasons behind this, see the)ashow 629 126 gm -0.16995 0.(section entitled \322Accuracy\323.)ashow 653 108 gm (\245)show 653 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.06166 0.(Ca Resp)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.04879 0.(: This column shows the anticipated average response time of the disk for that)ashow 665 126 gm -0.02619 0.(same workload when cache is present \()ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.03781 0.(Ca)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02645 0.(ched )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.03265 0.(Resp)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02450 0.(onse\). In addition, a percentage is)ashow 677 126 gm -0.09768 0.(shown which represents the percentage of cached response time in relation to non-)ashow 689 126 gm -0.08058 0.(cached response time.)ashow 713 126 gm -0.05830 0.(As an example, disk 56 has an average non-cached response time of 36.2 ms, while the)ashow F T cp %%Page: ? 12 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 12)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 126 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.00212 0.(cached response time is 12.1 ms, or 33.4% of the non-cached case. In other words,)ashow 129 126 gm -0.10617 0.(adding caching will result in this disk drive taking 33.4% of the time for I/O that it took)ashow 141 126 gm -0.09086 0.(before cache was added. From this, you can conclude that drive 56 is an ideal candidate)ashow 153 126 gm -0.02717 0.(for caching.)ashow 177 108 gm (\245)show 177 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.05998 0.(NC Rate)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.04704 0.(: This column shows the calculated requests per second before the average)ashow 189 126 gm -0.11740 0.(response time rises to 50 ms \(a typical value for maximum tolerable response time\))ashow 201 126 gm -0.02561 0.(when cache is not present \()ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn (N)show 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02830 0.(on-)ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn (C)show 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02755 0.(ached Request )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.03184 0.(Rate)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02548 0.(\). Since response time rises as)ashow 213 126 gm -0.06898 0.(the load on a disk increases, this figure is a good indication of how much work can be)ashow 225 126 gm -0.10867 0.(sent to a drive before the response time increases beyond acceptable levels.)ashow 249 108 gm (\245)show 249 126 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.07670 0.(Ca Rate)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.06402 0.(: This column shows the calculated requests per second before the average)ashow 261 126 gm -0.03205 0.(response time rises to 50 ms when cache is present \()ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.04878 0.(Ca)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.03443 0.(ched Request )ashow 1 fs bu fc 2 F /|______Times-Bold fnt bn -0.03988 0.(Rate)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.03324 0.(\). In)ashow 273 126 gm -0.08642 0.(addition, a multiplier figure is shown which represents the increase when caching is)ashow 285 126 gm 0.06954 0.(added.)ashow 309 126 gm -0.07534 0.(As an example, disk 56 has a maximum rate without cache of 18.5 requests per second)ashow 321 126 gm -0.07505 0.(before the response time exceeds 50 ms. With caching, the same disk can now perform)ashow 333 126 gm 0.03051 0. 32 0.00305 0.(73.6 requests per second, or an increase of 3.97 times.)awidthshow 357 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.49298 0. 32 0.24929 0.(Interpreting the results)awidthshow 381 90 gm 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.09690 0.(When looking at this report, both the decrease in response times and the increase in request)ashow 393 90 gm -0.09788 0.(rates are the key factors to evaluating the effects of cache. Each has its own merits, and the)ashow 405 90 gm -0.08537 0.(choice of which to use depends on your specific need. In general, the percentage decrease in)ashow 417 90 gm -0.15138 0.(response time can be translated directly into the decrease in the time taken by the entire)ashow 429 90 gm -0.10485 0.(application. The increase in I/O can be translated into an increased number of users.)ashow 453 90 gm -0.07713 0.(As an example, assume that an application ran on disk 56 and consisted of 50% disk and 50%)ashow 465 90 gm -0.05412 0.(CPU time. Furthermore, assume that this job took 10 minutes to run to completion. With this,)ashow 477 90 gm -0.08349 0.(we can see that 5 minutes are spent in CPU time, while 5 minutes are spent waiting for I/O.)ashow 489 90 gm -0.07298 0.(Since caching reduces the response time on this disk to 33.4% of its original value, this means)ashow 501 90 gm -0.07211 0.(that the 5 minutes worth of I/O is now down to about 1 minute and 40 seconds. The job itself)ashow 513 90 gm -0.08631 0.(will now complete in 6 minutes and 40 seconds instead of the original 10 minutes.)ashow 537 90 gm -0.05244 0.(Taking the same case, disk 56 can sustain 18.5 requests per second without cache, while)ashow 549 90 gm -0.04801 0.(adding cache will increase the request rate by a factor of 3.97. In other words, 3.97 times as)ashow 561 90 gm -0.09521 0.(much I/O can be sent to the disk when cache is present. This usually translates into an)ashow 573 90 gm -0.06092 0.(increased number of users accessing the disk, so in this case, you can nearly quadruple the)ashow 585 90 gm -0.06684 0.(number of users on a disk without any change in the performance.)ashow 609 90 gm -0.09466 0.(The decision of whether to concentrate on response time or request rate depends on your)ashow 621 90 gm -0.08721 0.(specific requirements. If your jobs take too long to complete \(and are I/O bound\), then)ashow 633 90 gm -0.08128 0.(response times are the metric of interest. If you want to add more users or I/O streams to a disk)ashow 645 90 gm -0.08206 0.(and are concerned about the response times degrading, then request rates should be examined.)ashow 669 90 gm -0.06434 0.(There are also some cases where cache might not be appropriate. Disk 54, for example, shows)ashow 681 90 gm -0.11570 0.(an increase in the response time and a decrease in the request rate if cache is added. This might)ashow 693 90 gm -0.09793 0.(be due to a large percentage of write operations, or merely that data is accessed randomly. In)ashow 705 90 gm -0.07380 0.(any case, cache should be disabled for this drive, since it will hinder, rather than help)ashow 717 90 gm -0.05621 0.(performance.)ashow F T cp %%Page: ? 13 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 13)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.08210 0.(There are also many borderline cases. While it is clear that disk 56, 84, and 50 would receive a)ashow 129 90 gm -0.08935 0.(tremendous performance boost from cache, disk 55 is not at all certain. Although a 6%)ashow 141 90 gm -0.08216 0.(reduction in response time \(and a corresponding 10% increase in request rate\) is quite good,)ashow 153 90 gm -0.10432 0.(this performance improvement might be considered marginal. The decision for this case should)ashow 165 90 gm -0.10249 0.(be based on the intended use of the disk in question. If it is a critical application, then cache)ashow 177 90 gm -0.09043 0.(would be a worthwhile addition. If it is not critical, then perhaps caching might not be)ashow 189 90 gm -0.09382 0.(necessary. In such cases, the report can only provide the anticipated performance impact of)ashow 201 90 gm -0.11216 0.(adding cache. The benefits of this performance increase must be evaluated on a case by case)ashow 213 90 gm 0.20117 0.(basis.)ashow 237 90 gm -0.11030 0.(Once the analysis report has completed, the program will prompt for another DSKLOG data)ashow 249 90 gm -0.11083 0.(file. At this point, you may either specify another file or exit the program by typing a CTRL/Z:)ashow 273 126 gm 10 fz bu fc 2 F /|______Courier fnt bn 0.21499 0. 32 0.02149 0.(DSKLOG data file or device: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.13198 0.(^Z)ashow 284 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ($)show 307 90 gm 5 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 9.53129 ul 0.86820 0.(A)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 211.46997 ul 3.85253 0. 32 0.38525 0.(NALYZING DIFFERENT APPLICATIONS)awidthshow 331 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.11738 0.(To gain a complete understanding of the effects of cache, it is worthwhile to repeat the data)ashow 343 90 gm -0.06700 0.(capture and analysis on different workloads. This requires running the DSKLOG program on)ashow 355 90 gm -0.10926 0.(the HSC for each time period of interest, \(optionally\) copying the data capture disk to a file)ashow 367 90 gm -0.07777 0.(with LGCOPY, and finally analyzing the results with LGCACHE.)ashow 391 90 gm -0.11134 0.(By proceeding in this manner, a complete picture of the benefits of cache can be built for your)ashow 403 90 gm -0.07249 0.(specific applications on your system.)ashow 427 90 gm 5 fs bu fc 2 F /|______Times-Bold fnt bn 9.51213 ul 0.84904 0.(A)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 55.48742 ul 0.82545 0.(CCURACY)ashow 451 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.10264 0.(As with all analysis and simulation programs, there may be some differences between the)ashow 463 90 gm -0.03691 0.(results shown by this program and what you see on your system. Specifically, the results)ashow 475 90 gm -0.05015 0.(shown by the LGCACHE program should be used to compare, not predict absolute results.)ashow 487 90 gm -0.08816 0.(The values for response times and request rates are reasonable for typical scenarios, but may)ashow 499 90 gm -0.06535 0.(vary depending on the specific hardware and software in use.)ashow 523 90 gm -0.12158 0.(These inaccuracies are as a result of the following:)ashow 547 108 gm (\245)show 547 126 gm -0.06098 0.(Since DSKLOG does not capture the disk type, an RA82 is assumed for the analysis.)ashow 559 126 gm -0.10758 0.(Disks with higher performance will generally perform better than shown in the)ashow 571 126 gm 0.04322 0.(analysis.)ashow 595 108 gm (\245)show 595 126 gm -0.09513 0.(Because DSKLOG does not recognize the disk type, an ESE20 will be analyzed as an)ashow 607 126 gm -0.03208 0.(RA82. The HSC will )ashow 2 fs bu fc {}mark T /Times-Italic /|______Times-Italic 0 rf bn bu fc 2 F /|______Times-Italic fnt bn -0.02987 0.(not)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn -0.02885 0.( cache an ESE20 disk, so the values shown for this disk)ashow 619 126 gm -0.07362 0.(should be disregarded. Both the cached and non-cached request rates and response)ashow 631 126 gm -0.09037 0.(times in these cases are meaningless.)ashow 655 108 gm (\245)show 655 126 gm -0.07365 0.(As mentioned previously, controller based shadow sets \(flagged with an asterisk\) will)ashow 667 126 gm -0.04109 0.(be treated as a single, non-shyF~CACHE_TEST.BCK T)[BERNARD.SYSTEM.CACHE_TEST]CACHE_DOC.PS;1Hw0adowed disk. Since the HSC cache does not support)ashow 679 126 gm -0.04985 0.(controller based shadowing, the results shown will not be accurate. The shadow set is)ashow 691 126 gm -0.08009 0.(included to see how the shadow set would behave )ashow 2 fs bu fc 2 F /|______Times-Italic fnt bn -0.07551 0.(if it were a single disk and were not)ashow 703 126 gm 0.11801 0.(shadowed)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn (.)show F T cp %%Page: ? 14 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 14)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 108 gm F 1 setTxMode 0 fs bu fc 2 F /|______Times-Roman fnt bn (\245)show 117 126 gm -0.12956 0.(The analysis calculates the average request rate per disk by taking the total number of)ashow 129 126 gm -0.10453 0.(requests per disk and dividing by the total data capture time. If the disk is only active)ashow 141 126 gm -0.11935 0.(for a small portion of the data collection time, the results will be inaccurate. To avoid)ashow 153 126 gm -0.07289 0.(this problem, you should have the data capture running only when the disks are active.)ashow 177 108 gm (\245)show 177 126 gm -0.04809 0.(The results assume that the HSC is not more than 80% busy. If the HSC is more than)ashow 189 126 gm -0.07106 0.(80% busy, then the response times may rise \(and the request rates may drop\) because)ashow 201 126 gm -0.08099 0.(the HSC is becoming a bottleneck. This is rarely a problem, and moving active disks to)ashow 213 126 gm -0.10202 0.(another HSC will easily remove the bottleneck.)ashow 237 108 gm (\245)show 237 126 gm -0.08329 0.(In some cases, the measured I/O rate will be higher than would be possible for a single)ashow 249 126 gm -0.06343 0.(RA82 disk drive. This may occur if the disk being measured is an ESE20, a fast)ashow 261 126 gm -0.05372 0.(magnetic disk \(such as an RA72\), or a shadow set, all of which have a very high)ashow 273 126 gm -0.08645 0.(request rate during the measurement interval. In this instance, it would not be possible)ashow 285 126 gm -0.09545 0.(to calculate an equivalent response time for an RA82 disk, so all fields showing)ashow 297 126 gm -0.08966 0.(response time and request rates will be flagged with a \322-\323.)ashow 321 90 gm 5 fs bu fc 2 F /|______Times-Bold fnt bn 7.41447 ul 0.74357 0.(S)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 42.90919 ul 2.68951 0. 32 0.26895 0.(AMPLE )awidthshow 12 fz bu fc 2 F /|______Times-Bold fnt bn 9.62872 ul 0.96563 0.(R)ashow 10 fz bu fc 2 F /|______Times-Bold fnt bn 16.04786 ul 1.60939 0.(UN)ashow 345 90 gm 0 fs 12 fz bu fc 2 F /|______Times-Roman fnt bn -0.09254 0.(The following is a copy of a complete cache analysis run. This run is identical to that shown)ashow 357 90 gm -0.09730 0.(earlier in this document, and is reproduced here to illustrate the complete series of steps. As)ashow 369 90 gm 0.18936 0. 32 0.01893 0.(before, user input is shown in )awidthshow 1 fs bu fc 2 F /|______Times-Bold fnt bn 0.06738 0.(bold)ashow 0 fs bu fc 2 F /|______Times-Roman fnt bn (:)show 393 90 gm 1 fs bu fc 2 F /|______Times-Bold fnt bn 2.26074 0. 32 0.22607 0.(Preparing the HSC:)awidthshow 417 126 gm 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 428 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.80912 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.39828 0. 32 0.33982 0.( SET SERVER DISK/MSCP)awidthshow 439 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00625 0. 32 0.00062 0.(SETSHO-I Your settings require an IMMEDIATE reboot on exit.)awidthshow 450 126 gm 0.00595 0. 32 0.00059 0.(SETSHO-Q Rebooting HSC. Press RETURN to continue, CTRL/Y to abort:)awidthshow 473 90 gm 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 2.52609 0. 32 0.25260 0.(After Rebooting the HSC:)awidthshow 497 126 gm 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 508 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.64428 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.07092 0. 32 0.20709 0.( R DSKLOG)awidthshow 519 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 2.47573 0. 32 0.24757 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.93182 0. 32 0.29318 0.(ENABLE D10)awidthshow 530 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ( Log: ENABLED)show 541 126 gm ( Unit: 10)show 552 126 gm ( LBN: 0)show 563 126 gm ( Wrap Count: 0)show 574 126 gm ( MSCP Status: 000000)show 585 126 gm ( Wrap Point: 1216665)show 596 126 gm ( Missed I/O: 0)show 607 126 gm 0.89538 0. 32 0.08953 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.40292 0.(^Z)ashow 618 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (DSKLOG-I Exiting.)show F T cp %%Page: ? 15 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 15)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 90 gm F 1 setTxMode 1.42456 0. 32 0.14245 0.(After the Data Capture:)awidthshow 141 126 gm 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 152 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.64428 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 2.07092 0. 32 0.20709 0.( R DSKLOG)awidthshow 163 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 2.57949 0. 32 0.25794 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.19213 0. 32 0.31921 0.(DISABLE D10)awidthshow 174 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ( Log: DISABLED)show 185 126 gm ( Unit: 10)show 196 126 gm ( LBN: 225)show 207 126 gm ( Wrap Count: 0)show 218 126 gm ( MSCP Status: 000000)show 229 126 gm ( Wrap Point: 1216665)show 240 126 gm ( Missed I/O: 0)show 251 126 gm 0.89538 0. 32 0.08953 0.(DSKLOG> )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.40292 0.(^Z)ashow 262 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (DSKLOG-I Exiting.)show 285 90 gm 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 1.89254 0. 32 0.18925 0.(Copying the Data to a VMS Disk:)awidthshow 309 126 gm 0 fs 10 fz bu fc 2 F /|______Courier fnt bn 1.53579 0. 32 0.15357 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 6.62277 0. 32 0.66227 0.(MOUNT $3$DUA10:/FOREIGN)awidthshow 320 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00457 0. 32 0.00045 0.(%MOUNT-I-MOUNTED, TEST mounted on _$3$DUA10: \(EWOK\))awidthshow 331 126 gm 1.39129 0. 32 0.13912 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 4.39346 0. 32 0.43934 0.(RUN LGCOPY)awidthshow 342 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00518 0. 32 0.00051 0.(Convert Raw DSKLOG Data - Version 1.1 \(14 Jul 91\))awidthshow 365 126 gm 0.68710 0. 32 0.06871 0.(DSKLOG input disk \(CTRL/Z to exit\): )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.20942 0.($3$DUA10)ashow 376 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.95123 0. 32 0.09512 0.(RMS output file name: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.30639 0.(TEST.OUT)ashow 387 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (Converting DSKLOG data...)show 410 126 gm 0.00747 0. 32 0.00074 0.(DSKLOG conversion complete, 4744 records processed.)awidthshow 421 126 gm 0.20278 0. 32 0.02027 0.(DSKLOG input disk \(CTRL/Z to exit\): )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.10818 0.(^Z)ashow 432 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ($)show 455 90 gm 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 2.20046 0. 32 0.22004 0.(Analyzing the Data:)awidthshow 479 126 gm 0 fs 10 fz bu fc 2 F /|______Courier fnt bn 1.36611 0. 32 0.13661 0.($ )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 4.09820 0. 32 0.40982 0.(R LGCACHE)awidthshow 490 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00564 0. 32 0.00056 0.(HSC Cache Suitability Analysis - Version 1.1 \(29 Oct 91\))awidthshow 513 126 gm 0.80307 0. 32 0.08030 0.(DSKLOG data file or device: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.25566 0.(HSC3.DAT)ashow 524 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 1.50344 0. 32 0.15034 0.(Listing file: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.41726 0.(HSC3.LIS)ashow 535 126 gm 0 fs bu fc 2 F /|______Courier fnt bn (Analyzing DSKLOG data...)show 558 126 gm (DSKLOG Analysis:)show 569 126 gm ( DSKLOG file: HSC3.DAT)show 580 126 gm 0.00457 0. 32 0.00045 0.( Data collection start time: 27-APR-1988 07:49:05.21)awidthshow 591 126 gm 0.00457 0. 32 0.00045 0.( Data collection stop time: 27-APR-1988 08:22:00.81)awidthshow 602 126 gm 0.00366 0. 32 0.00036 0.( Scanned data covers 0 hours, 32 minutes)awidthshow 613 126 gm 0.00350 0. 32 0.00035 0.( Total DSKLOG packets: 96000)awidthshow 624 126 gm 0.00381 0. 32 0.00038 0.( Total transfer commands: 88880)awidthshow F T cp %%Page: ? 16 op 31 30 761 582 fr 0 0 xl 1 1 pen 57 90 gm (nc 31 30 761 582 6 rc)kp F 1 setTxMode 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 3.16543 0. 32 0.31654 0.(HSC Cache Suitability Analysis)awidthshow 57 486 gm 3.33984 0. 32 0.33398 0.(Page 16)awidthshow 60 88 gm 0 gr 60 541 lin 62 88 gm 62 541 lin 117 126 gm F 1 setTxMode 0 fs 10 fz bu fc 2 F /|______Courier fnt bn 0.00274 0. 32 0.00027 0.( Disk Requests NC Resp Ca Resp NC Rate Ca Rate)awidthshow 140 126 gm 0.00289 0. 32 0.00028 0.( 56 21535 36.2 ms 12.1 ms \( 33.4%\) 18.5 73.6 \(3.97x\))awidthshow 151 126 gm 0.00274 0. 32 0.00027 0.( 55 8880 23.7 ms 22.4 ms \( 94.2%\) 26.6 29.2 \(1.10x\))awidthshow 162 126 gm 0.00274 0. 32 0.00027 0.( 84 6580 28.6 ms 8.8 ms \( 30.8%\) 18.3 96.9 \(5.30x\))awidthshow 173 126 gm 0.00274 0. 32 0.00027 0.( 64 3904 28.8 ms 18.6 ms \( 64.6%\) 16.7 35.7 \(2.14x\))awidthshow 184 126 gm 0.00305 0. 32 0.00030 0.(* 200 7161 35.2 ms 19.1 ms \( 54.2%\) 12.0 36.0 \(2.99x\))awidthshow 195 126 gm 0.00274 0. 32 0.00027 0.( 54 6560 23.9 ms 22.2 ms \( 92.7%\) 25.2 28.5 \(1.13x\))awidthshow 206 126 gm 0.00274 0. 32 0.00027 0.( 65 2845 26.6 ms 9.9 ms \( 37.1%\) 19.0 82.6 \(4.35x\))awidthshow 217 126 gm 0.00274 0. 32 0.00027 0.( 51 3929 28.2 ms 14.2 ms \( 50.3%\) 17.4 52.4 \(3.01x\))awidthshow 228 126 gm 0.00274 0. 32 0.00027 0.( 59 306 25.7 ms 16.7 ms \( 64.8%\) 19.0 40.2 \(2.11x\))awidthshow 239 126 gm 0.00152 0. 32 0.00015 0.( 50 7975 - - - -)awidthshow 250 126 gm 0.00289 0. 32 0.00028 0.( 53 87543 31.5 ms 24.8 ms \( 78.8%\) 15.1 23.6 \(1.57x\))awidthshow 261 126 gm 0.00289 0. 32 0.00028 0.( 63 11450 26.0 ms 10.5 ms \( 40.3%\) 24.2 81.3 \(3.35x\))awidthshow 272 126 gm 0.00274 0. 32 0.00027 0.( 62 911 27.3 ms 20.5 ms \( 75.1%\) 17.1 29.3 \(1.71x\))awidthshow 283 126 gm 0.00274 0. 32 0.00027 0.( 58 248 27.3 ms 17.7 ms \( 65.0%\) 16.8 36.5 \(2.18x\))awidthshow 294 126 gm 0.00274 0. 32 0.00027 0.( 60 66 27.6 ms 24.4 ms \( 88.2%\) 16.2 21.1 \(1.30x\))awidthshow 317 126 gm 0.21499 0. 32 0.02149 0.(DSKLOG data file or device: )awidthshow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 0.13198 0.(^Z)ashow 328 126 gm 0 fs bu fc 2 F /|______Courier fnt bn ($)show 351 90 gm 1 fs 12 fz bu fc 2 F /|______Times-Bold fnt bn 1.85104 0. 32 0.18510 0.(Disabling Data Capture On the HSC:)awidthshow 375 126 gm 10 fz bu fc 2 F /|______Courier-Bold fnt bn 2.00286 0.(^Y)ashow 386 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.82286 0.(EWOK>)ashow 1 fs bu fc 2 F /|______Courier-Bold fnt bn 3.63952 0. 32 0.36395 0.( SET SERVER DISK/NOMSCP)awidthshow 397 126 gm 0 fs bu fc 2 F /|______Courier fnt bn 0.00625 0. 32 0.00062 0.(SETSHO-I Your settings require an IMMEDIATE reboot on exit.)awidthshow 408 126 gm 0.00595 0. 32 0.00059 0.(SETSHO-Q Rebooting HSC. Press RETURN to continue, CTRL/Y to abort:)awidthshow F T cp %%Trailer cd end %%Pages: 16 0 %%EOF e(*[BERNARD.SYSTEM.CACHE_TEST]LGCACHE.EXE;1+,I./ 4-T0123 KPWO56_7`89GHJJ0DX0205(_$hhDLGCACHEV1.0__05-05  o  ?B!d FORRTL_001! LIBRTL_001! MTHRTL_001Y       N *.*;*.*;*.*;*/sys$disk...*;*.*;*.*;*DIR.DIR ((((( DDDDDDDDDDAAAAAABBBBBB 1.129 Oct 91 HSC Cache Suitability Analysis - Version %s (%s) Analyzing DSKLOG data... Unable to analyze DSKLOG data. DSKLOG data file or device: %s/EXIT? Program designed and written by Ken Bates If you like this program, send a postcard of your home town to: Ken Bates 2575 Evergreen Road Colorado Springs, CO 80921 Can't assign device %s. Error getting device information. Error accessing DSKLOG disk. This does not appear to be a DSKLOG disk. Continue? %srError opening file "%s" Listing file: %sSys$OutputwError opening %s %s Error reading DSKLOG input file - Copy terminated. DSKLOG Analysis: DSKLOG file: %s Data collection start time: %s Data collection stop time: %s Scanned data covers %ld hours, %ld minutes Total DSKLOG packets: %ld Total transfer commands: %ld Disk Requests NC Resp Ca Resp NC Rate Ca Rate %4ld *%4ld %7ld Seek table search exhausted with no match: cyl = %ld Fatal error - program aborting - %5.1f ms Seek table search exhausted with no match: cyl = %ld Fatal error - program aborting - %5.1f ms (%5.1f%%) - %5.1f - %5.1f (%4.2fx) Cache: unable to allocate iNode space Cache: Illegal purge policy '%c' Cache: No free iNodes Cache: Illegal condition detected in iNode scan: dataStart = %d, dataEnd = %d DCLMCRSHELLerror 0not ownerno such file or directoryno such processinterrupted system calli/o errorno such device or addressarg list too longexec format errorbad file numberno childrenno more processesnot enough corepermission deniedbad addressblock device requiredmount device busyfile existscross-device linkno such devicenot a directoryis a directoryinvalid argumentfile table overflowtoo many open filesnot a typewritertext file busyfile too largeno space left on deviceillegal seekread-only file systemtoo many linksbroken pipemath argumentresult too largeI/O stream emptySYS$LOGINSYS$COMMANDSYS$DISKLNM$FILE_DEVVAXC$PATHPATH=HOME=TERM=USER=PATHHOMETERMUSERPATHPATH=HOME=TERM=USER=PATHft1-132ft1-80ft1ft2-132ft2-80ft2ft3-132ft3-80ft3ft4-132ft4-80ft4ft5-132ft5-80ft5ft6-132ft6-80ft6ft7-132ft7-80ft7ft8-132ft8-80ft8la12-132la12-80la12la120-132la120-80la120la24-132la24-80la24la34-132la34-80la34la36-132la36-80la36la38-132la38-80la38unknown-132unknown-80unknownvk100-132vk100-80vk100vt05-132vt05-80vt05vt100-132vt100-80vt100vt101-132vt101-80vt101vt102-132vt102-80vt102vt105-132vt105-80vt105vt125-132vt125-80vt125vt131-132vt131-80vt131vt132-132vt132-80vt132vt173-132vt173-80vt173vt52-132vt52-80vt52vt55-132vt55-80vt55vt200-132vt200-80vt200vt300-132vt300-80vt300undefinedUCX$IPC_SHRUCX$INET_ADDRUCX$IPC_SHRUCX$INET_NETWORKUCX$IPC_SHRUCX$INET_NTOAUCX$IPC_SHRUCX$INET_MAKEADDRUCX$IPC_SHRUCX$INET_LNAOFUCX$IPC_SHRUCX$INET_NETOFUCX$IPC_SHRUCX$SOCKETUCX$IPC_SHRUCX$ACCEPTUCX$IPC_SHRUCX$BINDUCX$IPC_SHRUCX$LISTENUCX$IPC_SHRUCX$CONNECTUCX$IPC_SHRUCX$RECVMSGUCX$IPC_SHRUCX$SENDMSGUCX$IPC_SHRUCX$SENDTOUCX$IPC_SHRUCX$RECVUCX$IPC_SHRUCX$SENDUCX$IPC_SHRUCX$CLOSEUCX$IPC_SHRUCX$RECVFROMUCX$IPC_SHRUCX$SHUTDOWNUCX$IPC_SHRUCX$SELECTUCX$IPC_SHRUCX$GETHOSTNAMEUCX$IPC_SHRUCX$GETHOSTADDRUCX$IPC_SHRUCX$GETHOSTBYADDRUCX$IPC_SHRUCX$GETHOSTBYNAMEUCX$IPC_SHRUCX$GETNETBYADDRUCX$IPC_SHRUCX$GETNETBYNAMEUCX$IPC_SHRUCX$GETPEERNAMEUCX$IPC_SHRUCX$GETSERVBYNAMEUCX$IPC_SHRUCX$GETSOCKNAMEUCX$IPC_SHRUCX$GETSOCKOPTUCX$IPC_SHRUCX$SETSOCKOPTUCX$IPC_SHRUCX$GETNETENTUCX$IPC_SHRUCX$GETSERVBYPORTUCX$IPC_SHRUCX$GETPROTOBYNAMEUCX$IPC_SHRUCX$GETPROTOBYNUMBERUCX$IPC_SHRUCX$GETPROTOENTLNM$FILE_DEVf LNM$PROCESS LNM$PROCESSSHELL$FILE_ LLNM$PROCESSdtx |       $ 5 J̄*55Q$5d,5 |Ą45<5DD5L5 T5  \5 D  Ԅ  d5 $  l5 t5|5l@AHr555  5(5555Ā5̀5Ԁ5܀5PD55\555 !!!!!̂!! 5!""Ă"5"#5#,$'(t )-041 2 5|9 @ AP(l8 xD`8|T,pH  @AffffffAAt~j@AAAA333333AA鱗-AA$/BA BAffffffPBABAvX9BBB B;ZdCB C BHC+B333333|C6BffffffCCB333333CTBCfBffffffDvBrh!HDB333333{DB333333DBDB333333DBEBFEB7KzECffffffEC  $ 4 @ R b t   - > M \ t A:|x_鋪=7隹@7K=(:|x_鋪=zd?FVI>[y;P*L>L>L>L> ^!/WY[Z/Xf*]PP1C]p RYPV U{TSRީQ@h@j@k@ŏ`P\L \<;P@ 3nt P12P|^CWZYT+[,XソSߣ|h[dÙ[PPRd`RP"PBd~bPBdRd_RPÜd_PPdâ_P8äh[Rbhbhb"hb9hb1M:d=_PRde_RP1dN_Pd|~?iPPgPRRYdYkZgR͓?Ri c+cR ЮRB/ШXcSSЬЬn SXnZM¨ ׼ѼnRR$ﻼШRЏL-~CACHE_TEST.BCKIT([BERNARD.SYSTEM.CACHE_TEST]LGCACHE.EXE;1P|&ݮݮFRЬn nZ1 UUXRbS1ѣ1PѣU1 RRѣ R{RUvУTSQaaPС6a/Q&aPQ¡ ŏ`P@RbPPʏP@ TScS ѣ1gRBB^YWXUŏ`P@ RbTTʏTǏ Zz P{PQPPZDhSެVѣf1w RRRqЬPѣPRPZZPPRPPУTSQaaPСgagQgaPQ¡ hŏ`P@ RbPPʏP@iTScS1vЬPPPVAXC$EXECMBXԬaZm^^S|~S~~^S ~^TcdяPO|~dPP P@AP[~ZjP[j@ݬ ݬݬϵЏ5P1nѭ  ЏL5P1]~>nYЫXYP0C^^SYR0i Џ~|~S~~P~~߮~~^QQ ~^Tad~^ZЬTЭU~~&T)PT߫U<P TU^TUVV^(Ud(nnV~^T ~^R|~߮~~^V|~fb<~PяBnS1zbRS^Xϵ~~~~ZS~T ʺPU^G ~^TdUPPЫ PЏ\5P10^^U nR^S0P1Z[k[1WnSZGV5.4RԪUeUTVDRTU[TW R, 'ZZP(ƗPP(P8c^SR^S0kP1W1r1y[P76РР[nkZZR^S0#PCZn[kkךZЬ [0@PZЬ[03P nR^S0ﯩP囹P8ШPRR^nSЬT|~|~Rc|~<1~< ~ <ʏ< ~T |~ݏݏݏ`PPPը ]P[P0`PР P] ^]PϥP`ťݠݠP5ЎPРPlЏL5P1[k9kZ Z[l լЪݪjkZ4ЎPЏT5P1\Pk3PP|~߮S~ ~@~^T|~dR;S(Sbc)PPD)PPЬPЬWP0 P 0P1[ЬZ ЩS<TЧ$STSTSçUSjTUʏ0PЬ WP01| 0P1ЬZЬ[ZZ~7gV0F: VPPVVZ VnVZVZZn0nZɔkЬPʏ0ЏL5P0[ߔʏ0PЬWP04g0( Pg֧PЬWP00 PP֧g0P߬ l~n ߬l~nW001 ЬUЬRSVSrVSw Sa1b+VR~bb< nRVb+VP0HYSaȏ@0zЭZЭ\0P1HYSwhP#Sa<+PPPY0h040.Z ЎPP00~ZSP[PЏ5P0PuFWSЬWP0N 0P1ЎZ^^[ϹWݏ߬ ݬ[jPQZ0 ʏ0ЎPʏ0PЬWP0GW 0P1gV0:gV0֧g-  ӏ00Pʏ0ѧ@%Ч@çPxPQʏPP,Q$(Q<ЬPʏ0ЬWP0G 0P1Ь[ЏZ:Zk Џ5P0[QZ0P ЏL5P0ʏ0ЬWP0R> 0P1Ь[Ь ~լЬZ0fnÎ Pʏ0ʏ0PЬ WWP0 ~3PԼ lPЎWPW`g`WPPIVЬWP0P 0P1ЎZ߬ ݬݬjʏ0ЬWP0}~ ~PPЬWP0a1g0Z0Z0Z00-ЬZjS<TSTRS(T,Ч$Ч,i ipRP Pz; gԧ<,PPЧ@<QPQg00JiPP00# ЬUVP0 ՎYЬPPPﻍP0Ш,045ǔVЦ  h0PJPЏ5P1cӏ4 ӏ4 Џ5P1E:Tæ HUUTЦ U}T~^R~l>n~l>nYY~l> nRNP0ЎP0&P0E}UʏVP0 l=Ь P ܌PY0Yl @ÌlZZެ\0 P@hP>ˏQя Q Џ5P1ӏQhP)P0MЎP0{яPӏ Џ5P1N;h01-.Z ZaPZP0x0/<P0SPWWkȏ0PP8P.x PPP0,PPP@PZP?:!GWP0mO 0P1ЎZ^^[πWݏ߬ݬ[j}P~QZ0~ }Pʏ0ʏ0P0W1$WP0J 0P1<Ь[ЏZ:Zk Џ5P0[QZ0*[Z0 Pʏ0ZЬWP0# 0P1Ь~^[0ЬPʏ00  0P1ӏ0&0P0  0Z PPP0ʏ0ݬ ݬݬZTWЬR:b1RQS~RP3Ήi1T韛R降SR~~S~^SЬU:e1UQV~8U牢P3bQq1SW?U rZЬQ0PРP1 rZŬQ0P&РWРXԭ|~|~ݭPRR ݭx߭~RRP?ݬ[~^o\sݬݬAQPQQP}PRQRPRP }QP SSPbSSPЬQ:aìQP|}SV:dVTQR (RdcQTVcЬP}SVЬ WD:dVTQRRWWRVRW(RdcQTVЏVVWWV ,nVcVWЬP|}QV:aQS:bVRQP (PbcQRVcЬP}QЬ W5V:aQS:bVRQPPWWPPW(PbcQRVڔcЬP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ*QdnUìQP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ+QdnUìQP|^,nnUЬQ.P@nЬQQT:dUTQ*QdnUQPЬ S}QPTTP SPbTTPPPaP zP P(4mpP|4mpP|pP{ {^ZTPPRBdP֬PPP@dSRcQQ+1QPP+NNbbbbbbbbbb Pj?PPeGaR RdSRGPRdeR5R  R*PR#PR # RPRddR PS1CPìSЬ"|~`zPRPpPR4IrP ^qW^YTVЬRRUbPPRBdP֬PPP@dSRcQQ+1QPP+NNnnnnnnnnnn P2?PPeSmR Rd_Rc-VRGPRdeR5R  R*PR#PR # RPRddR PS17PìS!gЬRUb|PЬЬRSb"|~yPUP:s0&|~xPRPR,"g PRGpPU,"gV p.RPp,RpRPU~G|P<pPpPTqTP qT}TRʏSbRTjTRnRRqRTsP `P`TjTRnRRbRTbTPpPxx^Q(^ԡЬ iԡ~PwPPRbССԼZiݏݬ ߮w>iS; cԼ-aּPQ}PT;0Paa.PQ;0Pa T(TcԼ(}PV:.TePVּPT,VgTcPVQW(VgcchP|/mpPwpPP<pPpPTqTP qT}TRʏSbRTjTRnRRqRTsP bPbTjTRnRRbRTbTPp P-/m 7wpPP  P^Q(^Ь RRRRR R RRR^nԡԡ~PEvЬSСWXա-СV&VW!(Vhc.VW(Wacs0c.ScЬPWաV.(Whcs0Se^STVnndЬP<ePe R`RPYvpPPR RяRRP|P<}PP<"צּ-mpPu-mpPu pPqPP qP}PRʏSbRPjPRnRRbRPcP  p-ms8p PqPP qP}PRʏSbRPjPRnRRqRPlujR~p~upP(u u<,mpP u,mpPtt0^cpU]WgTާ6[ާ<ާBnާHͫͭͯ>ͳͷ͛͟͝>ͣͧsuޭw>{́ޭ̓>͇͍͋ޭ͏>͓͗NdhhsPe e|eͫ(ݳͯPФRb<RRR|~?1ePP+|~|~s2e~wBd 62~PRRԤRQRPa P֤Հ 1PUVfP )PwYP(дQa PaRRARZ RP PPaQaߧNQScP Ф RߧScPФ RߧXcPФ Rߧ]cP 1o<~fP>͜͞ޭ͠>ͤͨͪޭͬ>ͰʹͶޭ͸>ͼ^͘͘amPcﻺ <_(PТ\l<\\\|~?^PP+|~|~͜2^~ݠB^ޢH ޢ\UU YUTdPUUƁDKPXXUdX_PU1UX (PCݢ$Ud< \LeUP``\\A\Z \\ \\`P`< \\\U1P2\LeUP``\\A\Z \\ \\`P`2\\UUޢ\\\U\\!\\?PPU8<\LeUP``\\A\Z \\ \\`P`<\\\UXOPX0(PTТ \U[U.PUU(PTTHݢU<\LeUP` P`\\A\Z \\ \\`P`<\\\U;P2\LeUP``\\A\Z \\ \\`P`2\\\UТ \UZUuPUݠBݸݬU7ƆUGТ \U&PPUU nU&PUUHТ 9{Z?XPZTP<\Q\P\ \P Q{\PQPQѬ  S,PS"Ѭ  SP SSS^|~|~ݬ|~<#~ݬ ^V VЏVSc~[PcԣP֣ѣ<6P2PRУPЬbУ R ^u>SУPPPQPRPѢ RQТ RR Т PТ ףRP<,^!>SԭRЬЬЬ 쟭߭mAP`PRR RPP`P P-PP`P PPԭݬ PTPPL,2D$2Sc9PTݬcҤPcRRTQa=RTPPq=TRPScʰTЬ<~BPSSޟP2RBޑcSSPS꟭꟭P P U|~|~2;SSU ﮺TPTT|~<#~S U TP TRBScUЬcBScBScBRbT UPݏ5PP^ݬݬPPQQQPP|0^SRP RRVլѬV ݏ5P߭mѭ ЏUP߭6P`UT TP@cRb1 TP@Qan@QaU U[@cP`RV P@P`ЬPxRPPRѬ Ѭ UR PRPT TP@cP`1mV e ^߭YнSլѬݏ5PS.Ь R(P@Qab@Qa@P`S1ЬR1bSѬE=S$RBRb jS SQP QSC}PЬRb`CrPТ`CjSТcQ P^)R"P RPP^ XЬRRPP VR R TVaT\WVBgRP RTP@ QaS@ P`UaRgS USxVVTVTXPP^ݬIJ = ݏ$5P ^߭1нQQЬP ` Qм PЭ PР P︶`PЬQѡ\5< PЬP} pPP~ݏd5}P~ЬP}n p}nPѠ0] `~P~PQЁP}R}T}V}X}Z}\Ё^}P~}P}PѠ\5 Р RѢ0< PRRԱݠpP1Sս ɵ ЬPԀ}R}T}V}X}Z}\Э|P P xPPP ЬPЬ`)~P~հ0[0ݏ\5<l^T]P^Qe R0լ+S #ЬPՀ} p}pmpʏPQ2 }]3 }P]Ь STRcSݬݬPRc } ]RPPPPPPPl լP?X`^,n^P`RЭP`RPxR~nhPW>RWЭVf*:QfQRhPg(RWVPPYX$^,n$ ЬV:fQVQV,nnn(iPW1&HC>,nPPƐϞPVܞh:fQVQ<,nPPƐϞPVܞ/:fQVQ,n`P`PR,TZP\0PWhP hGRHP.SP@,S,iP RPPşhRPP|VP^,nPPƐϞPЬܞH:QQ,n`P`PZf\0PRR[P@fn\ RfPPЬQС(Pՠ04Q0W^,n$܈:QìQЬ,nnn;PV/V&g:fQVQQQ (QfgPVPP ЬPР RSbcՠbPZPJcPQcccbP. .b0bbQ.bbP/bQPP ^Ь R]> .b/brPbPPnnb~P/bSn:.nQQS/cSbPPnSbbS:]ncQQb :>ncQQbPЬXШ W[gVЬZZYZ/gY1ZZ Z.ШYZk( gkkkk/cZ ШYkk k/g.BZ@1ШYkkk k/g.g.gYk k0gPPgPYPPI(YYgZ!g*VQQgYY:%YfQQ?aQVPPYQVZkPPЬ P/`.`.`PЬ PQaa/`.`.`.`aP\_\S\G\ ;\@~-\<~\ P`P P`P< [^,n$0,n0lլ|YЬZPѬPPYЬVTWS|QP.PPPSR/P/PQQ1+RSЬVTW, |$$$(ЏЏЏ04Q8W<P 8hP1   1[,,$T$PTP-   .,,$T$PTPH,U- -e$-.e,VW.,,dT1    Z,PPX  ..`[`,  .,,( ,<PP,],,Y~,nPPƐϞP؞ܞPP,,n`P`PRPTZP\0PR R,$k1IX, 1,P.,],,  Z  $k1,,nPPƐϞP؞ܞPP,,n`P`PRPTZP\0PRRRR$kRPVW .,,VW ,P% .,, I ',Q.,,PQPa* *,,.,,VW$G   1,nPPƐϞP؞ܞPP,,n`P`PRPTZP\0P$kd1  #,$k6PWHP|SP(PTnSP@PYYY W~P*.RZWR PP P'WRPݬPSP(PnT1f$kWPP|XWά^,n0nT, |n$$$(ЏЏЏ,n$004:QìQ8ЬS8SSQ[5Q%ܑQ?׊QQSVVVTXRdPdTVRXQQWWQQ]ȑQ-#QӑQ]S-QSSW͑SQ QQSQQ]1WP^ ZP.;y.;o ::"":[<]>;.-*.]>$.$-o]&>"-_.]>.u]>[<]`>Xj.F-".]>D.--.]>*- -*\%bp/0/hC.n;"n.| ;t@! !"".( ./*- -*?[]-eVAXCMSG@@ ,8x@H`H@(  x0HPH`@0Hp" @FORRTLLIBRTLMTHRTLLGCACHE hDmain F GetInputFileJ PrintStatus\ JInitLScanData SReadRaw T AnalyzeData hD-& $'%+  #!Լ m CACHEY InitCache Z SearchCachetT\ PurgeCache8] PurgeiNode ^GetiNode;\^ ReturniNodeh^ UpdateCache4dInvalidateCache MY,0 & '*.Ғ})SHELL$FROM_VMSz SHELL$FROM_VMS z  XT8 SHELL$$RMS_PARSE   (TERMINATE_PARSE  @   SHELL$TRANSLATE_VMS  o -< TRANSLATE_VMS < 7&~ DEFAULT_DIR  <%Y COPY_TOKEN Y t@ : INSERT_MINUS  E* DOTDOTDOT  t2 NODE_ACTION      DEVICE_ACTION     FILE_ACTION     TYPE_ACTION    VERSION_ACTION  : -DIR_TOP_ACTION - _ < DIR_ACTION <   HSET_WILD H V SET_WILD_PCT V  CLI$DATAb _LIB$KEY0$b _LIB$STATE$tCLI$READ_ONLY_DATAz CLI$CODESHELL$CLI_NAMEshell$cli_namewshell$is_shell1 t+  SHELL$TO_VMSf SHELL$TO_VMS f H]  U X    ;    SHELL$$VMS_FILE   ѹA     SAVE_NODE  Z!,BSAVE_DEV B #eSAVE_DIRECTORY e ?7 SAVE_NAME  :* SAVE_TYPE * c&  _ SAVE_VERS   SET_FILETYPE  SET_REGULAR_EXP  SET_WILD  * SET_VERSION  PCOPY_STR  vK,!FREE_DIRECTORY_DESCRIPTORS   , MATCH_REGEX  / A' kMATCH_SUBSTRING k $'QPRUNE_FILESPEC  O%\ FIND_LAST_DOT \ v ".TERMINATE_PARSE     CLI$READ_ONLY_DATAb _LIB$KEY0$  _LIB$STATE$fCLI$CODED  . ABS .C$DATOF vaxc$datof(8 vaxc$dstrtod    C$DATAC$$MAIN(c$$main>hvaxc$crtl_init expand_buffer lowercase1 get_paramswhget_terminal_type c$$ctrlc_hands| c$$cond_handZ (0    "   '! "C$SOCKEThsock_translate0create_channelhdelete_channelTT vaxc$socket@ vaxc$acceptH vaxc$bind vaxc$listen vaxc$connect$ vaxc$send vaxc$recvmsgh vaxc$sendmsgvaxc$inet_addrvaxc$inet_network0vaxc$inet_ntoaHvaxc$inet_makeaddr hvaxc$inet_lnaofvaxc$inet_netof vaxc$sendtoH vaxc$recvc$$socket_readc$$socket_write<c$$socket_close, vaxc$recvfrom vaxc$shutdownx vaxc$select/vaxc$gethostname/vaxc$gethostaddr,vaxc$gethostbyaddrvaxc$gethostbynamexvaxc$getnetbyaddrvaxc$getnetbynamevaxc$getpeernamet@vaxc$getservbynameOvaxc$getsocknametvaxc$getsockopt~vaxc$setsockopt~ vaxc$get_sdc(,vaxc$getnetent9hvaxc$getservbyportCvaxc$getprotobyname>vaxc$getprotobynumber>,vaxc$getprotoent9 hZ Nn A_   H ^J     1  '<*U  O%G( D   C$$TRANSLATEh c$$translateh Lh C$SOCKHANDLESc$$init_ucx_inet_addrh8c$$init_ucx_inet_networklc$$init_ucx_inet_ntoah c$$init_ucx_inet_makeaddrlxc$$init_ucx_inet_lnaoflc$$init_ucx_inet_netoflPc$$init_ucx_socketlc$$init_ucx_acceptl(c$$init_ucx_bindlc$$init_ucx_listenlc$$init_ucx_connectllc$$init_ucx_recvmsglc$$init_ucx_sendmsglDc$$init_ucx_sendtolc$$init_ucx_recvlc$$init_ucx_sendlc$$init_ucx_closelc$$init_ucx_recvfroml`c$$init_ucx_shutdownlc$$init_ucx_selectl8c$$init_ucx_gethostnamelc$$init_ucx_gethostaddrl c$$init_ucx_gethostbyaddrl |c$$init_ucx_gethostbynamelc$$init_ucx_getnetbyaddrlTc$$init_ucx_getnetbynamelc$$init_ucx_getpeernamel ,c$$init_ucx_getservbynamelc$$init_ucx_getsocknamelc$$init_ucx_getsockoptlpc$$init_ucx_setsockoptlc$$init_ucx_getnetentl Hc$$init_ucx_getservbyportl!c$$init_ucx_getprotobynamel# c$$init_ucx_getprotobynumberlc$$init_ucx_getprotoentk lC$CTYPEC$GETENV Dgetenv DIC$SIGNAL ddeclare_control_c_handlerH signal9ssignal&gsignal: dn# ! $  SHELL$CLINT SHELL$GET_ARGV   55 $CODE$SHELL$MATCH_WILDSHELL$MATCH_WILDCLI$CODEC$SIGVEC Lsigvec`sigblock5 sigsetmask@ sigpause4t sigstack> L'*[BERNARD.SYSTEM.CACHE_TEST]LGCOPY.EXE;1+,I./ 4-T0123 KPWO563V7`89GHJ0DX0205(yV9hwLGCOPYV1.0`yV05-05  ~ct u ?B!d FORRTL_001! LIBRTL_001! MTHRTL_001Y       N *.*;*.*;*.*;*/sys$disk...*;*.*;*.*;*DIR.DIR ((((( DDDDDDDDDDAAAAAAXn~CACHE_TEST.BCKIT'[BERNARD.SYSTEM.CACHE_TEST]LGCOPY.EXE;1~|BBBBBB 1.114 Jul 91 Convert Raw DSKLOG Data - Version %s (%s) Converting DSKLOG data... Error reading DSKLOG input file - Copy terminated. Error writing DSKLOG output file - Copy terminated. DSKLOG conversion complete, %d records processed. DSKLOG input disk (CTRL/Z to exit): %s/EXITCan't assign device %s. Error getting device information. Error accessing DSKLOG disk. This does not appear to be an DSKLOG disk. Continue? %sRMS output file name: %smrs = 24rfm=fixmbc = 64Error creating %s.%s DCLMCRSHELLSYS$LOGINSYS$COMMANDSYS$DISKLNM$FILE_DEVVAXC$PATHPATH=HOME=TERM=USER=PATHHOMETERMUSERPATHPATH=HOME=TERM=USER=PATHft1-132ft1-80ft1ft2-132ft2-80ft2ft3-132ft3-80ft3ft4-132ft4-80ft4ft5-132ft5-80ft5ft6-132ft6-80ft6ft7-132ft7-80ft7ft8-132ft8-80ft8la12-132la12-80la12la120-132la120-80la120la24-132la24-80la24la34-132la34-80la34la36-132la36-80la36la38-132la38-80la38unknown-132unknown-80unknownvk100-132vk100-80vk100vt05-132vt05-80vt05vt100-132vt100-80vt100vt101-132vt101-80vt101vt102-132vt102-80vt102vt105-132vt105-80vt105vt125-132vt125-80vt125vt131-132vt131-80vt131vt132-132vt132-80vt132vt173-132vt173-80vt173vt52-132vt52-80vt52vt55-132vt55-80vt55vt200-132vt200-80vt200vt300-132vt300-80vt300undefinederror 0not ownerno such file or directoryno such processinterrupted system calli/o errorno such device or addressarg list too longexec format errorbad file numberno childrenno more processesnot enough corepermission deniedbad addressblock device requiredmount device busyfile existscross-device linkno such devicenot a directoryis a directoryinvalid argumentfile table overflowtoo many open filesnot a typewritertext file busyfile too largeno space left on deviceillegal seekread-only file systemtoo many linksbroken pipemath argumentresult too largeI/O stream emptyUCX$IPC_SHRUCX$INET_ADDRUCX$IPC_SHRUCX$INET_NETWORKUCX$IPC_SHRUCX$INET_NTOAUCX$IPC_SHRUCX$INET_MAKEADDRUCX$IPC_SHRUCX$INET_LNAOFUCX$IPC_SHRUCX$INET_NETOFUCX$IPC_SHRUCX$SOCKETUCX$IPC_SHRUCX$ACCEPTUCX$IPC_SHRUCX$BINDUCX$IPC_SHRUCX$LISTENUCX$IPC_SHRUCX$CONNECTUCX$IPC_SHRUCX$RECVMSGUCX$IPC_SHRUCX$SENDMSGUCX$IPC_SHRUCX$SENDTOUCX$IPC_SHRUCX$RECVUCX$IPC_SHRUCX$SENDUCX$IPC_SHRUCX$CLOSEUCX$IPC_SHRUCX$RECVFROMUCX$IPC_SHRUCX$SHUTDOWNUCX$IPC_SHRUCX$SELECTUCX$IPC_SHRUCX$GETHOSTNAMEUCX$IPC_SHRUCX$GETHOSTADDRUCX$IPC_SHRUCX$GETHOSTBYADDRUCX$IPC_SHRUCX$GETHOSTBYNAMEUCX$IPC_SHRUCX$GETNETBYADDRUCX$IPC_SHRUCX$GETNETBYNAMEUCX$IPC_SHRUCX$GETPEERNAMEUCX$IPC_SHRUCX$GETSERVBYNAMEUCX$IPC_SHRUCX$GETSOCKNAMEUCX$IPC_SHRUCX$GETSOCKOPTUCX$IPC_SHRUCX$SETSOCKOPTUCX$IPC_SHRUCX$GETNETENTUCX$IPC_SHRUCX$GETSERVBYPORTUCX$IPC_SHRUCX$GETPROTOBYNAMEUCX$IPC_SHRUCX$GETPROTOBYNUMBERUCX$IPC_SHRUCX$GETPROTOENTLNM$FILE_DEV<%l |LNM$PROCESSSHELL$FILE_ LNM$PROCESS  & / < LNM$PROCESS$ 5 J̄*55Q$5d,5 |Ą45<5DD5L5 T5  \5 D  Ԅ  d5 $  l5 t5|5l@AHr555  5(5555Ā5̀5Ԁ5܀5PD55\555 !!!!!̂!! 5!""Ă"5"#5#,$'(t )-041 2 5|9 @ A dж<4pܳHXĹ0tL$hԾ@ L8 @ J d t   $ 0 F X d v $ 1 G V b p A^yV~Z+XYS ߣc8yP1n8n&ߣ;+Ԯԭ[1[UUfT1QUPЏ@\ \P Q{\PQPQ  \Q\PЏ~\ \P QP{\PQPŏ~QWQUPЏ \\\P\QPQP{\PPQQWiT~W\\h<R WhRx RR|~WR|~!2~ 0Pff hiTPWi\\TTjXߣVf\?\<\L 1PjPR R\QQ\<\\4 \\+`\\?#\Q\RQ\R LPjP jPÊ-P[[1ծ[ÿ  2~$ P1P<^ZtUaVVTY[S86l16PPRl}:RP%Bl~<PBlRlX:RPl(:PPl2:Pl|~?fPPjPRR_l!iy5jRTVWSXT?RP\<^ n^S|~߮~~^T|~d ЎR|~^T|~|~Rc|~d 0P1Ь[Ь ~լЬZ0fnÎ Pʏ0ʏ0PЬ WWP0 ~3PԼ lPЎWPW`g`WPPIaЬWP0P 0P1ЎZ߬ ݬݬjʏ0ЬWP0}~ ~PPЬWP0a1g0Z0Z0Z00-ЬZjS<TSTRS(T,Ч$Ч,i ipRP Pz; gԧ<,PPЧ@<QPQg00JiPP00# ЬUVP0 ՎYЬPPPP0Ш,045ǔVЦ  h0PJPЏ5P1cӏ4 ӏ4 Џ5P1E:Tæ HUUTЦ U}T~^R~l>n~l>nYY~l> nRP0ЎP0&P0E}UʏVP0 l=Ь P PY0Yl @lZZެ\0 P@hP>ˏQя Q Џ5P1ӏQhP)P0MЎP0{яPӏ Џ5P1NGh01-.Z ZaPZP0x0/<P0SPWWkȏ0PP8P.x PPP0,PPP@PZP':-R{WP0mO 0P1ЎZ^^[πWݏ߬ݬ[j}P~QZ0~ }Pʏ0ʏ0PW1 WP0J 0P1<Ь[ЏZ:Zk Џ5P0[QZ0[Z0 Pʏ0ZЬWP0# 0P1Ь~^[0ЬPʏ00  0P1ӏ0&0P0  0Z PPP0ʏ0ݬ ݬݬeTWЬR:b1RQS~RP31TRSR~~S~^SЬU:e1UQV~8UﱑP3n]q1SWKUHV=U~~V~^SIPT S1W U$ЎPPPT SЏ5PP#rPЬWP00 |~ ~S<TWP0P 0P1ЎZ߬ݬjʏ0ЬWP0 0P1 լ \ЧЧլ' çPЬPl P  ЧЧ gЧl  լ  ʏ01[P}6Z NZ|~ݏ߬ ݬݬjЬQ@aP;Z SZ^^WgЬЬݬPgA ^~^W߬ ݬWj ȻZЬQ0PРP1 ﭻZŬQ0P&РWРXԭ|~|~ݭPRR ݭx߭TRRP?ݬ^۸\sݬݬ)QPQQP }QP SSPbSSPЬQ:aìQP|}SV:dVTQR (RdcQTVcЬP}SVЬ WD:dVTQRRWWRVRW(RdcQTVЏVVWWV ,nVcVWЬP|}QV:aQS:bVRQP (PbcQRVcЬP}QЬ W5V:aQS:bVRQPPWWPPW(PbcQRVڔcЬP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ*QdnUìQP<^,nnUЬQ6ЬR :a&P@nQT:dUTQ+QdnUìQP|^,nnUЬQ.P@nЬQQT:dUTQ*QdnUQPЬ S}QPTTP SPbTTPPPaP zP PL?mpPш8?mpPpP ^MTPPRBdP֬PPP@dSRcQQ+1QPP+NNbbbbbbbbbb Pj?PPeGaR RdSRGPRdeR5R  R*PR#PR # RPRddR PS1CPìSЬ"|~ PRPpPRXTrP ^シWTVЬRRUbPPRBdP֬PPP@dSRcQQ+1QPP+NNnnnnnnnnnn P2?PPeSmR Rd_Rc-VRGPRdeR5R  R*PR#PR # RPRddR PS17PìS!gЬRUb|PЬЬRSb"|~…PUP:s0&|~PRPR,"g PRRpPU,"gV p.RPp,RpRPUR|P<pPpPTqTP qT}TRʏSbRTjTRnRRqRTsP `P`TjTRnRRbRTbTPpPtL^Q(^ԡЬ ﲲԡ~PPPRbССԼ~ݏݬ ߮LbS; cԼ-aּPQ}PT;0Paa.PQ;0Pa T(TcԼ(}PV:.TePVּPT,VgTcPVQW(VgccP|:mpPepPP<pPpPTqTP qT}TRʏSbRTjTRnRRqRTsP bPbTjTRnRRbRTbTPp PQ:m pPP  P^Q(^Ь RRRRR R RRR^nԡԡ~PЬSСWXա-СV&VW!(Vhc.VW(Wacs0c.ScЬPWաV.(Whcs0Se^STVnndЬP<ePe R`RPpPPR RяRRP|P<}PP<"8mpP8mpP pPqPP qP}PRʏSbRPjPRnRRbRPcP  8ms8p PqPP qP}PRʏSbRPjPRnRRqRPlׁjR~p~́pP܁<8mpPɁ8mpP0^﫹UWiTާ6[ާ<ާBnާHͫͭͯ>ͳͷ͛͟͝>ͣͧsuޭw>{́ޭ̓>͇͍͋ޭ͏>͓͗rhh_Pe) e|ͫ(ݳͯPФRb<RRR|~?1PP+|~|~s2~wB 62~3'PRRԤRQRPa P֤Հ7 1PmVfP APweP(дQa PaRRARZ RP PPaQaߧN=\ScP Ф RߧScPФ RߧXcPФ Rߧ]cP 1o<~fP>͜͞ޭ͠>ͤͨͪޭͬ>ͰʹͶޭ͸>ͼ4͘͘!zPc_# <(PТ\l<\\\|~?PP+|~|~͜2Ҭ~ݠB﷬ޢH ޢ\UU YUTdPUUƁhVPXXUdX_PU1UX (PCݢ$Ud< \LeUP``\\A\Z \\ \\`P`< \\\U1P2\LeUP``\\A\Z \\ \\`P`2\\UUޢ\\\U\\!\\?PPU8<\LeUP``\\A\Z \\ \\`P`<\\\UXOPX0(PTТ \U[U.PUU(PTTHݢU<\LeUP` P`\\A\Z \\ \\`P`<\\\U;P2\LeUP``\\A\Z \\ \\`P`2\\\UТ \UZUuPUݠBݸݬU7ƆUGТ \U&PPUU nU&PUUSТ ?XPZTP<\Q\P\ \P Q{\PQPQѬ  S,PS"Ѭ  SP SSS^|~|~ݬ|~<#~ݬ ^ ЏAP[~ZjP[j@ݬ ݬݬϵЏ5P1nѭ  ЏL5P1]~>nYЫXYP0C^^SYR0i Џ~|~S~~P~~߮~~^QQ ~^Tad~^ZЬTЭU~~0TKPbT_U-P TU^TUVV^(Ud(nnV~^T ~^R|~߮~~^V|~fb<~PяBnS1zbRS^Xϵ~~~~ZS~T ^PU^G ~^TdUPPЫ PЏ\5P10^^U nR^S0P1Zy[k[1WnSZGV5.4RTUeUTVDRTU[TW R, 'ZZqP(ƗPP(P8c^SR^S0kP1W1r1y[P76РР[nkZZR^S0#PCZn[kkךZЬ [0@PZЬ[03P nR^S0/P&P8ШPRR^nSЬT|~|~Rc|~<1~< ~ ďʏ< ~T |~ݏݏݏ`PPPը ]P[P0|`PtР P] ^]PWP`MݠݠPyЎPРPlЏL5P1[k9kZ Z[l լЪݪjkZЎPЏT5P1\PPP|~߮S~ ~@~^T|~dPUbУ RPTTPP<,^ySԭЬQУPPѠQ`R Р PRRЬЬ 쟭߭~P`P PPԭݬPTPPLTXDLXSc9PTݬcﮙPcRRTQa=RTPPq=TRPScʰTЬ<~6PSSޟZP2RBޑcSSPS꟭꟭!P U|~|~2TSSU TPTT|~<#~S USTP TRBSScUЬcBSScBSScBSRbT UPݏ5PP^ݬݬPPQQQPP|0^=SRP RRVլѬV ݏ5P߭mѭ ЏUP߭6P`UT TP@cRb1 TP@Qan@QaU U[@cP`RV P@RP`ЬPxRPPRѬ Ѭ URH PR;PT TP@cP`1mV * ^߭YнSլѬݏ5PS.Ь R(P@QQab@QQa@QP`S1ЬR1bSѬEQ=S$RBQRbyQ jSbQ SQP QSCYQPЬRb`CNQPТ`CFQSТcQ P^QRPP,Q RPP^PXЬRRPPPVRPRP TVaT\WVBgRP RTP@PQaS@PP`UaRgS US+xVVTVTXPP^ݬI&PPݏ$5P ^߭1нQQЬPO`OQмOPЭ PР P`PЬQѡ\5< PЬP} pPP~ݏd5G}P~ЬP}n p}nPѠ0] `~P~PQЁP}R}T}V}X}Z}\Ё^}P~}P}PѠ\5 Р RѢ0< PRRԱݠpP1Sս 索 ЬPԀ}R}T}V}X}Z}\Э|PNP xPPPNЬPЬ`)~P~հ0[0ݏ\56<l^T]P^QANR0լ+/N#ЬPՀ} p}pmpʏPQN}]N}P]Ь STRcSݬݬPRcM}M]RPPPPPPPl լP3X`^,n^P`RЭP`RPxR~nhPW>RWЭVf*:QfQRhPg(RWVPPYX$^,n$ ЬV:fQVQV,nnn(iPW1&HC>,nPPƐϞPVܞ8:fQVQ<,nPPƐϞPVܞ7:fQVQ,n`P`PR,TZP\0PWhP hGRHP.SP@,S,iP RPPşhRPP|PVP^,nPPƐϞPЬܞ6:QQ,n`P`PZf\0PRR[P@fn\ RfPPЬQС(Pՠ04Q0QW^,n$܈:QìQЬ,nnn;PV/V&g:fQVQQQ (QfgPVPP ЬPР RSbcՠbPPJcPQcccbP. .b0bbQ.bbP/bQPP ^Ь R]> .b/brPbPPnnb~P/bSn:.nQQS/cSbPPnSbbS:]ncQQb :>ncQQbPЬXШ W[gVЬZZYZ/gY1ZZ Z.ШYZk( h4 gkkkk/cZ ШYkk k/g.BZ@1ШYkkk k/g.g.gYk k0gPPgPYPPI(YYgZ!g*VQQgYY:%YfQQ?aQVPPYQVZkPPЬ P/`.`.`PЬ PQaa/`.`.`.`aP\_\S\G\ ;\@~-\<~\ P`P P`P< [^,n$0,n0lլ|YЬZPѬPPYЬVTWS|QP.PPPSR/P/PQQ1+RSЬVTW, |$$$(ЏЏЏ04Q8W<P 8P1   1[,,$T$PTP- 1  .,,$T$PTPH,U- b1-e$-.e,VW.,,dT1    Z,PPX  ..`[`,  .,,( ,<PP,],,Y~,nPPƐϞP؞ܞ0PP,,n`P`PRPTZP\0PR R,$k1IX, 1,P.,],,  Z  $k1,,nPPƐϞP؞ܞ/PP,,n`P`PRPTZP\0PRRRR$kRPVW .,,VW ,P% .,, I ',Q.,,PQPa* *,,.,,VW$G   1,nPPƐϞP؞ܞk.PP,,n`P`PRPTZP\0P$kd1  #,$k6PWHP|SP(PTnSP@PYYY W~P*.RZWR PP P'WRPݬPSP(PnT1f$kWPP-XWά^,n0nT, |n$$$(ЏЏЏ,n$004:QìQ8ЬS8SSQ[5Q%ܑQ?׊QQSVVVTXRdPdTVRXQQWWQQ]ȑQ-#QӑQ]S-QSSW͑SQ QQSQQ]1WP^ ZP.;y.;o ::"":[<]>;.-*.]>$.$-o]&>"-_.]>.u]>[<]`>Xj.F-".]>D.--.]>*- -*\%bp/0/hC.n;"n.| ;t@! !"".( ./*- -*?[]-eVAXCMSG@@(8x@H`H@(  x0HPH`@0Hp @FORRTLLIBRTLMTHRTL LGCOPY main GetDeviceD#ReadRaw $ PrintStatusZ ҹ  2+  % SHELL$FROM_VMSSHELL$FROM_VMS  XT8cSHELL$$RMS_PARSE c (TERMINATE_PARSE  @   SHELL$TRANSLATE_VMS  o - TRANSLATE_VMS  7&~ DEFAULT_DIR  <% COPY_TOKEN  t@ : INSERT_MINUS  E*! DOTDOTDOT ! t2S NODE_ACTION S    _ DEVICE_ACTION _   k FILE_ACTION k   w TYPE_ACTION w   VERSION_ACTION  : DIR_TOP_ACTION  _  DIR_ACTION    SET_WILD   SET_WILD_PCT  4CLI$DATA _LIB$KEY0$ _LIB$STATE$tCLI$READ_ONLY_DATACLI$CODESHELL$CLI_NAMEXshell$cli_namewfYshell$is_shell1 tX+  SHELL$TO_VMS SHELL$TO_VMS  H]  U X    ;   pSHELL$$VMS_FILE p ѹA    z SAVE_NODE z Z!,SAVE_DEV  #SAVE_DIRECTORY  ?7w SAVE_NAME w : SAVE_TYPE  c&  _ SAVE_VERS   SET_FILETYPE  SET_REGULAR_EXP  $SET_WILD $ *2 SET_VERSION 2 P@COPY_STR @ vK,!FREE_DIRECTORY_DESCRIPTORS   ,: MATCH_REGEX : / A' MATCH_SUBSTRING  $'Q PRUNE_FILESPEC   O% FIND_LAST_DOT  v ".TERMINATE_PARSE     CLI$READ_ONLY_DATA _LIB$KEY0$^ _LIB$STATE$CLI$CODED  . ABS .C$DATOFP\ vaxc$datof(x] vaxc$dstrtod P\  C$$MA R~CACHE_TEST.BCKIT'[BERNARD.SYSTEM.CACHE_TEST]LGCOPY.EXE;1ҋINhcc$$main>ivaxc$crtl_initPvaxc$getprotobynumber>vaxc$getprotoent9 ̛Z Nn A_   H ^J     1  '<*U  O%G( D   C$DATA C$$TRANSLATE̱ c$$translateh Ḻ C$SOCKHANDLES4c$$init_ucx_inet_addrhc$$init_ucx_inet_networklc$$init_ucx_inet_ntoah pc$$init_ucx_inet_makeaddrlܳc$$init_ucx_inet_lnaoflHc$$init_ucx_inet_netoflc$$init_ucx_socketl c$$init_ucx_acceptlc$$init_ucx_bindlc$$init_ucx_listenldc$$init_ucx_connectlжc$$init_ucx_recvmsgl<c$$init_ucx_sendmsglc$$init_ucx_sendtolc$$init_ucx_recvlc$$init_ucx_sendlc$$init_ucx_closelXc$$init_ucx_recvfromlĹc$$init_ucx_shutdownl0c$$init_ucx_selectlc$$init_ucx_gethostnamelc$$init_ucx_gethostaddrl tc$$init_ucx_gethostbyaddrl c$$init_ucx_gethostbynamelLc$$init_ucx_getnetbyaddrlc$$init_ucx_getnetbynamel$c$$init_ucx_getpeernamel c$$init_ucx_getservbynamelc$$init_ucx_getsocknamelhc$$init_ucx_getsockoptlԾc$$init_ucx_setsockoptl@c$$init_ucx_getnetentl c$$init_ucx_getservbyportl!c$$init_ucx_getprotobynamel#c$$init_ucx_getprotobynumberlc$$init_ucx_getprotoentk l4C$CTYPEC$GETENV getenv IC$SIGNAL declare_control_c_handlerH signal9Lssignal&tgsignal: n# ! $  SHELL$CLINTHSHELL$GET_ARGV H 55H$CODE$SHELL$MATCH_WILDSHELL$MATCH_WILDCLI$CODEC$SIGVEC sigvecsigblock5 sigsetmasksigpause4sigstack> b }~CACHE_TEST.BCKR j kkb;1_4 DA1ͷ#]$YY݀d*֠>FؕY7 滽,!Ҡ A>ܟҽX);~~?@%e_~ + +?]}(}B W@\WȘ=S%^bdr+a:=ԑY B] *hrI']׈{" _WA*jts;{L0VOj8)X(zz u4١zͺj%"i:W<`|]G'`OWM&3'jhL~# j5Uv3y$FG^Q;sqzm,;bF;c O dGGlY|^ rAAԆo)P)lhylԕY}O/ҾU{{}GT<^4{48y@jc但w]r̥cYHB>_) ۛaZ>2~UuWX3Cp%hRpmLQ]zLU[ [6lL:*^{ |^O#+ 7b&rB9"<.蘾kq EC%t=b71}\s:r+2@h?dWX^{7&!g@js>d:ɖs[C7DTLcL# 38o zZNܻ=׳~I7sX5;N,ڳ$rHkLw6xp4)ֱ(f* Y?A_eWBM[y!4eדEVƔ|v{|vRj%{zVLEKDZ-MD$33ej_~&ě*ρ*dI$Z]ڲJFcb rRspf,)&)ƿg6OSp"ٿ:!d`, q枭FHP+BF+RA|..ͽxI+5:7]d>ҮWJqo EĻ ΑiQ:IcpfR\.nmd yY{K`ޭ4F%y!;j"m˩]q>g_'[ȩJخ2.\ Rj6 1P,َ|Y}`V_. þCb ȽSREuZr=RݴdW:ն;ņ:ГZ~\Mn}CFK:eRumZ*e+|8p 7u'Ug"?CFj8&2{ G< 5_%r1ҜSv+಻᫃҈=҂5Ae֘@7f$Z 44&`z7my&M #ǧ s*,@]& Ϙ}jD" -apu \oMϓgxZw^W҆bO1W pKa=Z$4ҁ᦭P*L#HH[Uh[N$'ɘ`I@ic4nes 8f8@%лIr'ϵ:E"dww #EbAUV!oAk5ݮvKDˣ#ds$n`\_Q/9WO@|p|ZͲ-*'zMbST\B){սWY.'ƓXI8mCCcp,ïT*S55'R xSJ1Ó{#2vul p=9-(T+U, r0rFCn *4L"!ٙqP\ soM\"'QtA*٫֡X=Glj)hK yϩ oX6,'t|Wl!6])1ro6Kypάc0z4]yUNk2:]ˠSrnuQA?y&jٿ}ܞl9 _p>nEsCQYRj~iFcd40krKK/FL7v]Nz//=Lhv Nct-oEN3No-_ X کcE0FH bULNE[s Zt+Օ]"2L0׳ڃfoB/I I4/[۳5׷v.V7xZmn{؎8<Ҧz )W^MB6B͢&hǛ>?Z4c;588ct=6=g.m"!0]]W/)ڽ3{G#ahF *%a})l޺wwccvb2>[&ޘVF[FkxM_*q )GҧigInĵbjtw(u3W.ti\BXYG۝\#!njqd ȸ4Y h.,^[0JrE00<`zV=p Z1; *n4z*X|r'c+gؙ_O ;5kxuՐÓxxlȶ  Ygk[;qAgrg.I`8X6& t:/ Úߺ鐪bPHe6< $ܽeA@@o|{t s fJeoa\Y=fyxVỆ+faTdi`^65IEqr=fH|X]F)t'ZV?pi’w-6FV~š|K}' 4uՋl!JIнePI %c 7 eQl>qǰLA8?jE#hUm*hl{ז&$9^; 1.~R޴ݲJpцKw"h:Za&ZخRH>H)z\F>hpۦUȷ0 b:f1JP֍.Ar,nc[4 (Uu⠕9;d$UayFWM@Gke; i~Xl.>oFŷaekn_$V`ӲŔgA"!0ޯJbIKdy|ظM?h&/L(U lcbx$:S'+&S!:5YϺGhֵUfltxW|6G92Oܬ}2I a5]k J5aTx*w TH; r;rͦ\3`vCϚ­ꃒcM`yXP DǚʵM Qozٱ z8j@Glpw#YHAYjk.wO :ۢ <*ZJH ̈;8+(TK knܑ>}Ӏ?<~Ok ]s.gf@Y~Ï lW@w?uc"M62g. `T-kgX4`S+7~QS-'#~&~ ԭ\: ?~oH$Yҹ嫻ymᔲ`he aסּg ޛ[6봁mjP'j\  2G]#{->Dݢv]_0{NO? 7߇Eg\dI0o^y\ч's"BDk‰wuf;Aƽƙ"h,| dLɥq7`.`jC@sM6kUsmI cv"149MN6rʞL|T;">`pT0HV^]lPUiH$PS_h9Yd7AF ۇ2Wo%>X}PPﻝX#!XW^5>VCpa^$vbh>IZʁM Ol3r0܎h6B_]ϖjPHn48"D)av› dl;rTˁ kVݣU7z2rH[LYLxrQ h͖gmV% \zy) .h+oI~f8Af1,eun TAse7wIW~r K 3S+8 }+D/ԤH=(ihJOl]z6g״PZjmW C>*PϏ>nehژ֩3r.3M݁qG"ߩUV|K1&Hn*BBN0 MS(Ur8y9.כ"4R/Gu-j]5&?vˎs,-s2b,^ϖW>`YbW?g9{p74juP!IO20|ZY}?]-[#/a:SRBF'š HxExkϗHz`Cl~WW y ӕs̢eOQN6[,Nb=5.dM|+4!=gKUa3f׹NpN˽_ڟlŒi.?R>H&P{ 90\sJl5 7~QI73*T;/XBsѿ7ܱKFՄ IC+S]/zEAK 7ȪQN,42t/)^,wY|))/&I*ɘylvx5`we~ e'>eq/ )'>ing3KFrAvVr+2"?$b{@Kc.W 8RikPe2Q.MYV+ɸ =K c쇻qlȣrfT?JT[Q1͆W ~$x+LŰģ@V!㖉_wd&cN 'J;.'yN)}fw [la ?;IvA̓hçZtKu'.&1q[Bh@N++DzXC 1]RB&O1l'ٙ2oyYI<νDf e;HcZa<"n HY"++Q_4&7 .$"s,(MdswoሂM%Pg\83 v>M[DΛLu"O6Q'W9\Љk2ZkЫb2a@nsgۯ̺^mGBnt*8519= K5†Л6>[Ax"ԉ^ܲHX{x7 |v!'K [>,r5Pؤ"rP3tZK|Y2eȷAȦ*Am@*sqh)1)0p1&:4(*}zeT_vDQ -(q'ZEr}~'vhKBV&WJ!+vI$2ɻ f⁌ 6&R(PQƂ5xQHdy&'\QF(jn )9Wp$ણ g}j7lsGΧXs)XeR͚+?[3rFE` ն2%âY_C`obm}ᰃ4{Ia}4|VHh''2jE=>{VFCA@ԗxّl)LkZ/Ė<[V#6utw)|15P8+rcYyۯHl\~kT ;/Z;a~DY>;..|r* Qt_7dh4J=2BUX+ ey6j@eAk^=u68"leSolE9J4›FY"։C/TSTŦ*>y}Wc1djZ( ~V_;wO"49/aݑ߶ sCJ7o5ED@S >4EkKPյ| $R.-b CRr?('n 1cUl!^*DB~H d!Q =6U8 ZO.+N(95[ J0 (\@:@A960py}V.34T|G.6nMw'])$bn;tn&ׁ-$ '.P#XD,LT]b))4@/lҼZը|nz\#[2[bmT_Z鼭!]px\ciݎH^4W$㾶 Wt靫 %*0o[ ^7+jhBBt! @]xM'8nrI1}[|-SˌR6dQ}μ}cRj{xS84_jW,r]|a@Nњ,J1&ÃVITN-̹)g$I{U$Yj8ć P(`k3{(kٝ> uxEWOTkxf]: [/ Skjӛ'FzfXGmՊle7pVSw280%#`zg0I@InYnf]H3ae #[Y=x nv\*.^#O\R*'"IBJBCm,6OyT3\V@k[͵;}5ASv.?ztL p[դ-G Js-1 bIВqGif1e W ~"_FϞBYl] V3UrC{H Fz6"|WxˌE;c!hj56n9iwU]Q!ГrRI]q\ž+C%[| ڣ*Z)DycdVM-  ]N#@@y& @ID ay~S8q@u@&)x@gD$7ob"t*1aecW1!Hr -BL.kA{]fuSaϋʖX@ul?#qw'l^?{hP%w[|b' Vj-`)^ 26'}Hӵ*Q<֖WXul:,io^Tޓ 6{^se컡{3N4f@dh%Xb>OS ncƶD$("<ÎI~ ~/ٷљ)ڰ:8m.ڢuMeNURI_Iӂd>ھ'C!?f_*@U0,O 4SqA2a6Ul*20V&{+4|]x\/ :Ʈ.ö@ #̪WI[  p`tRrƶG"'ZFFG<'V|b΁롄lJ=vjO?=C tt7;: /#4%_Q0A䓑m~&in,~*N,? ѮC8cn=9~ 2μNWc|I(ගj7j"Ց\_dd1w>"&>ê uix4NȺ[JVրX7lv 87m;/FN pf$5ƕ! :aq^ck!Mr&ʡ?纃,S3',o^ЄgmW,C紡(iX(3\xG͇gz3L ]h2?G + XP#0; #d&[Oo0ނ?/7m+wWF<ʑtN!tS =#4կ*"BLo)CX9)lGq~ѣYkp PAa <|&}Zꊒ2S_9y>j1ezʹ-tK&7dG`RwC +g`T> n43UR' 3xR1)TL_E<l wo|Whɉ8 &y4i wm!,`rzh!mm'Qy's9饣(M^]eX(Mgm VGvP[^0XzZcoϫ#;z!*=!Ɠ "{lFe ] K;sfy Ȳ+&S Dg%=51R;O4;F}|xD,̛Aי0,}AD=e6v 'F{QPKK֞y1ȒaH!jA %xomFӔT$x4cӤhCjiEHKX }>Ɩݫnp+tX˼ym'^-IW q{g*- ä|!^JsKB=nدBZ}fS9%Є-i r3zLfdF6j)*vU'bւݣgrtR\`P;%5:gFP,!Zfʧ'@nDAP1ej.v@7jz Y3u%ŤX&dVLڝ/DxlrISg@WB˫K=a ۀT!,Ru:Ћ6P6-b\}ԍLsJ&^gJJGxHTJgxVAzJ'}`1 ET$'z, $7|%.b 7S.Kl;Z sFyKŶ8f,p{ōk(eHz|/EUeS:1rn|׏!l ;i~y[z7?LU3P^BwśEvaoc,I/_B[=nEJl!>xGQ]R¶Q5Ôq"!(ճX;I,w?}W.и^wFеt!!`8q{%v H}FIhb')F4z5U />5j*$y 3⡂0)b+rVg$u dV\PӻÏ5΍JM1ߏkR>P?ڰ4@jt7;tj$w-SLiiY qp\tyZ @~[oTQu? 93+nY/?4xj[ _xT\-BUd>Ȟ񈗋HavJ'<Ŷn{R׊ķɍou)y\f;ݗ~j䬙SN~QbWmRGWhBe_{rLE%B_ G q(FɺaK◫/Jy S#RJMY>]HxpY\jA'q;ܱ-0Qq8m-O3lu9@T ߫HW&ZDlZǵ(u~t6;˂.xytS6 Qc성n{mn=q>HeF*qӛ)983ZiR٘\ ĶSsbO~Q['b|a躲:=,9O(GQ}0:" K IQH@ ۲6!="+~H~[-BA@Ri;\o$aMRL%C s%OI>#jvE⍿}ҧb2K" yiZH>,X߫N,&Z۱jK+*Ua]biTx5"ʳ2YR#-p@- I=4!InXfV :C(k5TvvU54#8,g$򼒧}kב3eK8B3ҢjFㄭleNpKAqNecܡ4=ĭdԔX*>(\!T/aguPgu 2+ܱ-+1`,R#N#C$u0$Eiz|xG^?*׾@=q88ʇh\PT+ ěIQȎRnzX&X1p匯_XJdמ?ga]; E(~GJ3igLγ{/>eR5I cm!j gmy7.Y6\KZ>ohb ڲ0"e/!S%-K7Mc׵ o6#Cىb9Dw\56~.wI}^R9!NQ^2#Mb3筊GƉQZXs›T=sއGzn uܿH'7~g1yq,`%bE~q<]-\#?c \1DLT`6! Z3("Za,Bi~MϫtE 0eȕ zF73A. 7$wp^ͼ:, SKvjhu!\}9!p6 DݸMrGP&[gSav+2M[dEfA ő6oa{`5>lVw[+@TBaEY쟅{Xt49E/1.)v_Yv1y2 NPO;6MQpY}׎U=a𶗲R|"PnB42V,3IC=p^c=aߗ%m~d x)vCuU䄦 UoC-p6FDo>R$HuK2 =Wx&.'ݦִ7"P:QA$c:x ީ|OgvWUW0l2RE9E,t- T.VWQ9)1 )Se|h HʿHi N%B:t˨XE&ࡺrم+ a&AmG<ߨX#"y&.&B Ă/[Jͦ]/P:U] ,ۂ~MKHQ :Ymab5`)uX-o!ArI$y; 3t_q iYː{A6#ޥ2)nQZYy'Ҵ7n~3Vt\\Pg,[lqj0 ~xS Sf%]ִTԬ qpɋ,@QuD|vHz'bhzE໹%R]Bz>)(lώ~ɖ*uZԷ&ӭZRXߧZ/%f3q>R~K3Q/[| gs8Ls~ Mo(PNyN8" R ]dZ_ eJNz;06nlc_anhߟt[.IEVx. <%ѺkKd<=>YERsm2fyDMJ ?9+'"ghɄx+^LGwEg1y_?mְ8򆩚P~R=1\]ǃԩ@z ބi揝6_g=\'?@,s_gnFR#Sʑʎ􏔹aVm@VGO:ݳkpv8^V~$[~ւw>1WMc3PDC2r\S닀^+ߖ-։Z1ie"Z_&9/M HZg,Rep>]0ń†no֋%uKB2d.o29v< f<)ِTW:t/ !ե5}UAW-fh9}p!{$ K7p(tq7CՅ+ioBFG C`4F`TE@96(oʡ)8$o9/B[ wA0B/Fq3<]ގq, [kk=habMV&Vmـ_VÏnZQeXf&V se~sS~#֬/^_׿`?˝XAt N_M!- -އLqdo3tGr~h5iY|èɶ8!PUԓڍdP3/9di{i7H970ߑλP!^⣭mʘ񓽄kyJf0]$ v&)ٌ\󀈦iT/4C$5GKjKS2d|S>ޗ HYqߔn*]1;Gpv*9a!*/gxCxsVe%zf(οJUy.,tWMӓS7/'lo`OIݞv{nTǀY-5!#c!w3 Hy@Ĵ++'±!'. &N'!V@ҤO" .:7h4;]}o *Ju5w94fs9}IknȎ˃哺ˡ@DZ=KC'1nQ"IXFK\y!0i>ϔJ7#Q~vc2in%yp. n#L߰V>}!re|:9p|May_/'dLdP.h.:889Z'y{7dڛؼJvCU6jұX V sɈ!!_ڷR%.+(Ўs3Dp52b̢s9pcf[>}}CEH "}t7[*nVD kEmYnlTZxKA``2hd ~TNJaYI]FDDƵZٰ%E4e0C( ".< >khǜHQq⹾?^M^ Cu݇C{d]_[Px k.O -oOy5{dgvu mjQ71z'W3|y>ʼnIN4>ӒBa2\ ,O|r{δtK T ֘T4wbO R".ϔDi58n9kX39ўY|DMh]7`=a+P; ߊ85D ٔ9ίo)_\(v65 h #"Ŷ$C} k~#=] T+I@G'vm;iGCu{47).9BfߣB2Y|.g x:Vp1~È/܌?[T2 eLdOF/,s_8qIh ƻ@6W͆)n'iPll=c7z~#8̷V,Ó=,;M7giv6}<<5QVqxY>:GLEJ^ihI.r N`{YVоfx3&-M Rܗ6dY{2(_# gu7p63BBh[Sx׫{n aP`PI+$sI8n.mrmհv꓊ЋrA!07(VO;uL2mP@݃O/(w׏>a]KS9mCCkb:ȴ#A-w瘏jGXHu;3ԖļWenDEӞ;#M`*vE'ɰd̞ E2 mM]bTf +T`"7fx~Ufk~@A{oM,>R$Yϊ*iD)}A(A̰Pҿf60Uږ|%c_]@BeVŘ:N@ jGrf{h'JHv0\ee. ~3{W2Z4o8 $7c(ƬF喝Nfl%7 uƛHe^R!"vlDQS#9q.8%iLɕC˧u1* d@WۈaQ !%uzwOkC͎J+K#Tזx,̱wKմCCPLs#6׉1F# 1xRW*] aC}M5{#ʨv_ֹ)]v~/crn TOp(z*Zfh{2a" ޷.6JϥŞ=Yy޶ϟeq(F3,SjFcǻᰐVdËf{ p# x2&auw2-ՙ+Jq>eNR`vt1le|T~?h[*#ej Bٝ&͎@tu{-D SYq L4$(1ߺo;%Vͨ$z4"w17^?^rr B0lL~^7> < ]sIu~,<FU-&WΡMQ5M Moc5Z=~UOGgb$z4-@6.]2$DҮȱB5虔[(akxI ρ7'#UeΐDa4ܷ-J! >-O1dTY*/aȨ]L+ŨsrXc^̘q6`h\I70̮~o ioBIcu)9DZpvnHwt$M 1?;pHw) +b@`c7*U22Bb5?í#K+^v}f_dg81SNhjp\F9YZ&mk6[wRKN3&S>/JEC/iٚcF7\U!j`4ĥLn βPٟS\9] DZ2a si[c"dM3Yc[ͪ 7xHQrA +&yMžX2O./w@IIS[3:d_aW)NalD̠uᕀ$1]Q]3W=_bE r 0_g`q;D"^  y5ŕuz!(:ϲ}|[FuXxh=Y=_y;fS(;Dz.Ri#]g#~x(OJӽV@M)k $~lN}nkۛ<ҪL9汩0鸩ml:50ko rNz8s1f.[eD,O'EGyuI}Ѝ_eYxZ|*D lTˀOUwk+KU*$X_ i|ޓXī!N)ܭ4c=Ge`E@Pݽ^nي:6tq'.0^Kuh=1#ka|z ZfRo:5^ev dY=YTL~Ho=l_g]&B̻^ǽ#hꮟ"hUԝÃɘ$dIIfqdf*p3% J fuU6ZESɾd^%r*O2Xoɺflö-I0Uݕ }](f%N'kP{\&A*Q~vҫ(IJ6vbMP*a,籫L(.(<.1#5XS>O<74!Ąv9 @ϲ-1qxg*CDТb.fwdq}#vp`BwbGv+E3{I[4Q|6 g%{g̳~lMJ6lbPmsf*g2J#۔))j<:KO~S^WkO8&_kfHFgI@qjA5-TƳ|r3,2'@%h<$XyV1)=ꖲQsX YnMRڂ 2&Uc[}w Dd}D-J|c^&|T'Bx=Mzf>]dQۻf A eaE`y+[%Е[]fL1<ͶO f]O+c|<+F;-:v(Kb,}* !j?k.#zbxzTgר}z>ךC_4M`Jz3Ėphβ1Y=6jwٿ~=(VVQA()$@VWoa}n ?8OMX\cIŻ^~ā"WN 3*g=`&_UNzT\_jNL'%cT_ LX_LՆ),Bjy1UY23TH Y}iTaĴ a9*~??u EuMʗ3-!TL.*d^~g?.抝x#|1h.D&Ӿ9E ?Wo4iE1j4w6u͘1"M1ثt1Q*Lwş0A4O=g[y)<[,õg"^ vƌcNoX`-̻ 7{\9Wyx'^9wXc]cigOD $w}PՅj$`NDFAHw}mxW[ ,!P2aPCThWhL#[0t:.|PFZIZޓ<#bVy SNhV43j;F0cZ7tС?o*k0$Di…Kh>n\9 .N/BY )_ "Pvm7D}Ylfelœ*`IoQ ǃQ?ˣӄ([=Q6,mG\4k衛~r>Dz {;/ &G {CTL_D' $s{[(jyPdߵ^D"wb)6[?^ߢ<jG 0Z&m9PamrnM ldӘ &'N; a¢"QF}I= y/f[u*9" yuV'QI$Y6w/u&ɴRDl!p[ I(H;͖24^w@3*bEpQI\m:/@Ț9]7hk-j?+k"Sw0ksNng 봉V`OD&ȄH(C'{L2m}$}{RzTs3`Jq%kW<{]!j4e P_WNăQe`ٱxsvWdD=GS8*mE Ϗ@fCdk뷆wz$'s]c\_ H7أc]%6#sAi kÙ&@r8yZFuTr#m%P':qՀ=OI*%ZjpXUb K7u~h -ރWx<* JbfT,zrV,))[Zn*/ 2&βI+_s/ŕ% Fc57btp{AߢMcRX vQu?eB %tS'Dk4n^6ɺ_)t rfIe'%f?woYj[6K[}JΕحg6#1aXP.E=S۞;8YG[Fj}$7Bd-,pr'Zs7ȩtuRB+?E&yꁾF-R HQD&4oA-G;Gθ6O_t~Cz6h=>Iw } TUHx5"EJ EoMf%4Tt!³eŶ 5hgP`2Oesjnf J5QC+P ׆)Ke KbiIx.ʽ㏃ʪ1hxnpE]y`gb" RtvN\㣯4e1y |Y &ͳǵ{)ͭ78I`IJxRKk#ȞX&6 a4.#%ܥfA,K-R>3}xOKɡ󻯑owyeA ^p_ԙ)^Y2E:(VEJ 6p[duRj|[v;.BlҚGnHv~tY#L{BD95Ǿ#b-VnGi[eg6$UoLH{2k.+`Y&\cE٤Pa,qxx 8oe-LOf;)S.&zY9 +6Ivg/Fbߟrr#穲\oW3FA/D( um#]:E(?,v~r1T/ Z=URd$*v9AHAC63\͇%a";TjJi-.^V2x e QF*\e@ޫi6 /*luE*hT`T 繕ʎ/ L=ch`49b[ox9\,lr,~Ad. U}2m{v9j5{//^bġ_` QHriLHTc]s1L:@^$mH9˨凾9*j/΃Bd~$4&;^ Z!>x8cB}7&vfge$isEJo!L,ɅY2Q wMg_j|REܑZ*9l\&𸭅Q/m\)10!&W;n'cgƢ8 k-𡫩>2Et㤾q"k4*ĠiTF:9 Ӣy8\N+GO+/d>=1'}Ņ"JKjݓuxǶc8ʜ OJ:/s~gx# dB ߎVB[1M%|)$mPuIgp11[UA#xZۙ/L6$U48|MJTVx2zm|Lӏ =߷,h=.|ID+! vB2nP/wƕCƓ &e$1;5f˃mhC hgW6+z#YT7=R Is9KNidZ. *^1OD»%".!'Ms ?),M0~.u U-( ̏l9T^m.(rT0`L3%m'ngC"xgd }߁o zx Nk27w*KO.ΪiҋȼKD-'1Nwa-,Z^#"1Z