$ od -c -N 50000 [phylum]<LISP>Lyric>LIBRARY>WHEREIS!1 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " X C 0000040 L " 247 P A C K A G E " I N T 0000060 E R L I S P " ) \r 006 001 ( f i l e 0000100 c r e a t e d " 2 9 - O c t - 0000120 8 6 1 3 : 1 7 : 3 3 " 006 004 { 0000140 e r i s } < l i s p c o r e > l 0000160 i b r a r y > w h e r e i s . \ 0000200 ; 6 006 001 2 1 8 2 9 \r \r 0000220 | p r e v i o u s | | 0000240 d a t e : | " 5 - O c t - 8 0000260 6 1 6 : 3 6 : 3 0 " { e r i 0000300 s } < l i s p c o r e > l i b r 0000320 a r y > w h e r e i s . \ ; 5 ) 0000340 \r \r \r ; C o p y r i g h t ( 0000360 c ) 1 9 8 3 , 1 9 8 4 , 1 0000400 9 8 6 b y X e r o x C o r 0000420 p o r a t i o n . A l l r 0000440 i g h t s r e s e r v e d . \r 0000460 \r ( p r e t t y c o m p r i n t 0000500 w h e r e i s c o m s ) \r \r ( 0000520 r p a q q 006 002 w h e r e i s c 0000540 o m s 006 001 ( ( * \ ; " W H 0000560 E R E I S f r o m a h a s 0000600 h f i l e " ) \r 0000620 ( f i l 0000640 e s h a s h ) \r 0000660 ( f n 0000700 s h a s h f i l e - w h e r e 0000720 i s c l o s e w h e r e i s 0000740 w h e r e i s n o t i c e w h 0000760 e r e i s n o t i c e 1 ) \r 0001000 0001020 ( a d d v a r s ( w h e r 0001040 e i s . h a s h ) ) \r 0001060 ( 0001100 g l o b a l v a r s w h e r e 0001120 i s . h a s h ) \r 0001140 ( d e 0001160 c l a r e \ : d o n t e v a l 0001200 @ l o a d d o c o p y ( p 0001220 ( m o v d ' h a s h f i l e - 0001240 w h e r e i s ' w h e r e i s 0001260 ) ) \r 0001300 ( a 0001320 d d v a r s ( a r o u n d e x 0001340 i t f n s c l o s e w h e r e 0001360 i s ) ) ) \r 0001400 ( c o m s 0001420 ( * \ ; " P o s s i b l y 0001440 o b s o l e t e n o w t h a 0001460 t d i r e c t o r y e n u m 0001500 e r a t e s h i g h e s t v 0001520 e r s i o n o k " ) \r 0001540 0001560 ( f n s \ \ r e m 0001600 o v e o l d v e r s i o n s ) ) 0001620 \r 0001640 ( l o c a l v a r s 0001660 . t ) ) ) \r \r \r \r 006 004 ( * \ 0001700 ; " W H E R E I S f r o m 0001720 a h a s h f i l e " ) 006 001 \r \r 0001740 ( f i l e s l o a d h a s h ) 0001760 \r ( d e f i n e q \r \r ( 006 004 h a 0002000 s h f i l e - w h e r e i s 006 001 0002020 \r ( l a m b d a ( n a m e 0002040 t y p e f i l e s f n ) 006 0002060 006 006 001 0002100 0002120 006 006 ( * | b v m : | " 2 0002140 8 - A p r - 8 6 1 2 : 2 4 " ) 0002160 006 001 \r ( p r o g ( v a 0002200 l ) \r \r 0002220 006 006 ( * | i f 0002240 | f n | g i v e n , | a p 0002260 p l y * | t o | | e a c h | 0002300 | e l e m e n t | | a n d | 0002320 | r e t u r n | n i l ) 006 001 0002340 \r \r ( c o n 0002360 d \r ( 0002400 ( e q n a m e t ) \r 0002420 \r 0002440 006 006 ( * t | a s | \ a 0002460 n a m e | h a s | \ a | s 0002500 p e c i a l | | m e a n i n g 0002520 | | t o | i n f i l e c o m 0002540 s ? | s o | | d o n ' t | 0002560 \r 006 001 006 006 | 0002600 p a s s | | t h r o u g h . | 0002620 ) 006 001 \r \r 0002640 ( r e t u r n n i l ) ) 0002660 ) \r ( s e t 0002700 q t y p e ( g e t f i l e p 0002720 k g t y p e t y p e ) ) \r 0002740 ( | f o r | f 0002760 i l e | i n | ( o r ( l i 0003000 s t p f i l e s ) \r 0003020 0003040 f i l e l s 0003060 t ) \r 0003100 | d o | \r 0003120 ( c o n d \r 0003140 0003160 ( ( i n f i l e c o m s 0003200 ? n a m e t y p e ( f i l 0003220 e c o m s f i l e ) ) \r 0003240 0003260 ( c o n d \r 0003300 0003320 ( f n ( a p p l y * f n n 0003340 a m e f i l e ) ) ) \r 0003360 0003400 ( s e t q v a l ( c o n s 0003420 f i l e v a l ) ) ) ) ) \r 0003440 ( a n d \r 0003460 ( e q f i l 0003500 e s t ) \r 0003520 ( e q t y p e ' f n s ) \r 0003540 ( l i t a 0003560 t o m n a m e ) \r 0003600 ( p r o g n ( c o n 0003620 d \r 0003640 ( ( a n d w h e 0003660 r e i s . h a s h ( n l i s t 0003700 p w h e r e i s . h a s h ) ) 0003720 \r 0003740 * 0004000 006 006 0004020 ( * | m a k e | | s u r e | 0004040 w h e r e i s . h a s h | i 0004060 s | \ a \r 006 001 0004100 * 0004160 006 006 | l i s t . | ) 0004200 006 001 \r 0004220 ( s e t q w 0004240 h e r e i s . h a s h ( l i s 0004260 t w h e r e i s . h a s h ) ) 0004300 ) ) \r 0004320 ( | f o r | w h i s 0004340 h s f i l e h n a m e h s f 0004360 i l e d e l p | o n | w h 0004400 e r e i s . h a s h | d o | 0004420 \r \r 0004440 006 006 ( * w h e r e 0004460 i s . h a s h | i s | \ a 0004500 | l i s t | | o f | | h a s 0004520 h | | f i l e | | n a m e s 0004540 | | o f f | | o f | | w h 0004560 i c h | \r 006 001 0004600 006 006 | t h e | | h a s h | 0004620 | f i l e | | s t r u c t u 0004640 r e | | i s | | l i n k e d 0004660 | | i n t o | | t h e | | 0004700 s y s t e m | | h a s h | \r 0004720 006 001 006 006 | a 0004740 r r a y . | | T h e | | f u 0004760 l l | | f i l e | | n a m e 0005000 | | i s | | h a s h e d . | 0005020 ) 006 001 \r \r 0005040 ( c 0005060 o n d \r 0005100 0005120 ( ( l i s t p ( s e t q h n 0005140 a m e ( c a r w h i s h s f 0005160 i l e ) ) ) \r 0005200 * 0005260 006 006 ( * | f i l e | 0005300 | a l r e a d y | | h a s | 0005320 | a n | \r 006 001 0005340 * 0005420 006 006 | a s s o c i a t 0005440 e d | | h a s h f i l e | | 0005460 d a t a t y p e | ) 006 001 \r 0005500 0005520 ( s e t q 0005540 h s f i l e ( c d r h n a m 0005560 e ) ) ) \r 0005600 0005620 ( ( s e t q h s f i l e ( 0005640 f i n d f i l e h n a m e t 0005660 ) ) \r 0005700 0005720 ( c o n d \r 0005740 0005760 ( ( | f i n d | x 0006000 | i n | w h e r e i s . h a 0006020 s h | s u c h t h a t | \r 0006040 * 0006100 ( a n d ( l i s t 0006120 p x ) \r 0006140 * 0006200 ( e q h s f i l e ( h a 0006220 s h f i l e p r o p ( c d r 0006240 x ) \r 0006260 * 0006340 ' n a m e ) ) ) ) \r 0006360 * 0006440 006 006 ( * | L 0006460 o o k s | | l i k e | \ a 0006500 | d u p l i c a t e | \r 006 001 0006520 * 0006600 006 006 | e 0006620 n t r y | ) 006 001 \r 0006640 0006660 ( r p l a c 0006700 a w h i s h s f i l e ( s e 0006720 t q h s f i l e n i l ) ) \r 0006740 * 0007000 ( s e t q d e l p t ) ) \r 0007020 * 0007060 ( t ( s e t q h s f i l e 0007100 ( o p e n h a s h f i l e h s 0007120 f i l e ) ) \r 0007140 \r 006 006 ( * 0007160 | i f | | t h e | | d a t 0007200 a | | f i l e | | i s | | 0007220 e v e r | | c l o s e d , | 0007240 | b r e a k | | t h e | | l 0007260 i n k | | t o | \r 006 001 0007300 006 006 | t h e | | 0007320 h a s h | | f i l e | | s t 0007340 r u c t u r e . | ) 006 001 \r \r 0007360 * 0007420 ( w h e n c l o s e ( h a s 0007440 h f i l e p r o p h s f i l e 0007460 ' s t r e a m ) \r 0007500 * 0007540 ' b e f o r e \r 0007560 * 0007620 ( f u n c t i o n 0007640 ( l a m b d a ( s t r m ) \r 0007660 * 0007740 ( | f o r | t a i l 0007760 | o n | w h e r e i s . h a 0010000 s h | w h e n | \r 0010020 * 0010100 ( a n d ( l i s 0010120 t p ( c a r t a i l ) ) \r 0010140 * 0010240 ( e q s t r m ( h a s h f 0010260 i l e p r o p ( c d a r t a 0010300 i l ) \r 0010320 * 0010420 ' s t r e a m ) ) ) 0010440 \r 0010460 * 0010520 | d 0010540 o | \r \r 0010560 006 006 ( * | r e 0010600 m o v e | | t h e | | h a s 0010620 h f i l e | | s t r u c t u r 0010640 e | | f o r | | t h i s | 0010660 | f i l e ' s | | e n t r y | 0010700 | o n | \r 006 001 0010720 006 006 w h e r e i s . h a s 0010740 h . ) 006 001 \r \r 0010760 * 0011040 ( r p l a c a t a i l 0011060 ( c a a r t a i l ) ) ) ) ) 0011100 \r 0011120 0011140 ' c l o s 0011160 e a l l \r 0011200 0011220 ' 0011240 n o ) \r 0011260 0011300 ( r p l a c a w 0011320 h i s h s f i l e ( c o n s 0011340 h n a m e h s f i l e ) ) ) ) 0011360 ) \r 0011400 ( t 0011420 ( o r ( e q ' y ( a s k 0011440 u s e r 1 2 0 ' y ( c o n 0011460 c a t h n a m e \r 0011500 0011520 " , a f i l e o n 0011540 W H E R E I S . H A S H , n 0011560 o t f o u n d - - d o y 0011600 o u w a n t t o d e l e t 0011620 e a n d c o n t i n u e ? " 0011640 \r 0011660 * 0011740 ) \r 0011760 * 0012020 ' ( ( y " e s " ) \r 0012040 * 0012120 ( n " o " ) ) ) ) \r 0012140 * 0012200 ( e r r o r x ( l i s t 2 0012220 3 h n a m e ) ) ) \r 0012240 0012260 ( r p l a c 0012300 a w h i s h s f i l e ( s e 0012320 t q h s f i l e n i l ) ) \r 0012340 0012360 ( 0012400 s e t q d e l p t ) ) ) \r 0012420 0012440 ( c o n d \r 0012460 0012500 ( h s f i l 0012520 e ( | f o r | f i l e | i 0012540 n s i d e | ( g e t h a s h f 0012560 i l e n a m e h s f i l e ) 0012600 \r 0012620 0012640 | w h e 0012660 n | \r 0012700 0012720 ( n 0012740 o t ( f m e m b f i l e v 0012760 a l ) ) \r 0013000 * 0013040 | d o | \r 0013060 * 0013120 ( a n d f n ( a p p l y * 0013140 f n n a m e f i l e ) ) \r 0013160 * 0013220 ( | p u s h 0013240 | v a l f i l e ) ) ) ) \r 0013260 0013300 | f i n a l l y 0013320 | \r 0013340 ( c o n d 0013360 \r 0013400 ( d e 0013420 l p ( s e t q w h e r e i s 0013440 . h a s h ( d r e m o v e n 0013460 i l w h e r e i s . h a s h ) 0013500 ) ) ) ) ) ) \r 0013520 ( r e t u r n ( a n d ( n 0013540 u l l f n ) \r 0013560 ( 0013600 d r e v e r s e v a l ) ) ) ) 0013620 ) ) \r \r ( 006 004 c l o s e w h e r 0013640 e i s 006 001 \r ( l a m b d a 0013660 ( f l g ) 006 006 006 001 0013700 * 0013740 006 006 ( * | b v m 0013760 : | " 2 8 - A p r - 8 6 1 2 0014000 : 3 3 " ) 006 001 \r 0014020 \r 006 006 ( 0014040 * * | C l o s e | | t h e 0014060 | | w h e r e i s | | f i l 0014100 e | | o v e r | | l o g o u 0014120 t , | | s i n c e | | t h e 0014140 r e ' s | | n o | \r 006 001 0014160 006 006 | p o i n t 0014200 | | i n | | p a y i n g | 0014220 | t o | | k e e p | | i t | 0014240 | o p e n | ) 006 001 \r \r 0014260 ( a n d w h e r e i s . h a s 0014300 h ( s e l e c t q f l g \r 0014320 0014340 ( ( n i l b 0014360 e f o r e l o g o u t b e f o 0014400 r e s y s o u t b e f o r e m 0014420 a k e s y s ) \r 0014440 0014460 ( | f o r | h 0014500 f | i n | ( | f o r | w h 0014520 | i n | w h e r e i s . h a 0014540 s h | w h e n | ( l i s t p 0014560 w h ) \r 0014600 * 0014640 | c o l l e 0014660 c t | \r 0014700 * 0014760 006 006 ( * | G a t h e r | | 0015000 t h e | | h a s h f i l e | 0015020 | h a n d l e s | ) 006 001 \r 0015040 * 0015120 ( c d r w h ) ) \r 0015140 * 0015200 | d o | \r 0015220 0015240 ( n l 0015260 s e t q ( c l o s e h a s h f 0015300 i l e h f ) ) ) ) \r 0015320 0015340 n i l ) ) ) ) \r \r ( 006 0015360 004 w h e r e i s n o t i c e 006 001 0015400 \r ( l a m b d a ( f i l e 0015420 g r o u p s n e w f l g d a 0015440 t a b a s e f i l e s c r a t 0015460 c h d i r c o m p u t e . h i 0015500 g h e s t . v e r s i o n s . m 0015520 a n u a l l y ) 006 006 006 001 \r 0015540 * 0015620 006 006 ( * | 0015640 b v m : | " 5 - O c t - 8 6 0015660 1 6 : 3 6 " ) 006 001 006 006 006 001 \r 0015700 * 0015760 006 006 ( * | ; ; | " C o p i 0016000 e s t h e c u r r e n t w 0016020 h e r e i s h a s h - f i l e 0016040 i n t o a s c r a t c h 0016060 f i l e , t h e n n o t i c 0016100 e s t h e f i l e s i n 0016120 F I L E G R O U P T h e c o 0016140 p y i s s o t h a t t h 0016160 i s f u n c t i o n w i l l 0016200 e x e c u t e e v e n t h 0016220 o u g h s o m e o n e e l s 0016240 e i s r e a d i n g t h e 0016260 c u r r e n t d a t a b a s 0016300 e . T h e d a t a b a s e 0016320 i s c o p i e d t o a 0016340 s c r a t c h f i l e , t h 0016360 e n r e n a m e d t o b e 0016400 a n e w e r v e r s i o n 0016420 o f t h e p r e v i o u s 0016440 d a t a b a s e , w h i c h 0016460 i s d e l e t e d . T h 0016500 i s a l l o w s o t h e r s 0016520 t o u s e t h e o l d 0016540 d a t a b a s e w h i l e t 0016560 h e c o p y i n g i s g o 0016600 i n g o n . I f a n e 0016620 a r l i e r v e r s i o n o 0016640 f t h e s c r a t c h f i 0016660 l e e x i s t s , i t m e 0016700 a n s t h a t s o m e o n e 0016720 e l s e i s c u r r e n t 0016740 l y u p d a t i n g ( t h e 0016760 i r v e r s i o n d i s a p 0017000 p e a r s w h e n t h e y 0017020 c o m p l e t e s u c c e s s 0017040 f u l l y o r l o g o u t ) 0017060 , s o w e w a i t f o r 0017100 t h e m t o f i n i s h . 0017120 " ) 006 001 006 006 006 001 \r 0017140 * 0017200 006 006 ( * 0017220 | ; ; | " C O M P U T E . H I 0017240 G H E S T . V E R S I O N S . M 0017260 A N U A L L Y m e a n s d o 0017300 n ' t t r u s t D I R E C T 0017320 O R Y t o g e t t h e h 0017340 i g h e s t v e r s i o n o 0017360 f a f i l e o n l y w h 0017400 e n e n u m e r a t i n g . " 0017420 ) 006 001 \r ( r e s e t l s 0017440 t ( p r o g ( ( d a t a b a 0017460 s e f i l e n a m e ( o r d 0017500 a t a b a s e f i l e ( | i f 0017520 | w h e r e i s . h a s h | 0017540 t h e n | 006 006 006 001 \r 0017560 * 0017620 006 006 ( 0017640 * \ ; \r 006 001 0017660 * 0017720 006 006 " i f 0017740 t h e r e i s a l i s t 0017760 o f f i l e s , u s e t h 0020000 e t o p o n e . " ) 006 001 \r 0020020 * 0020100 ( | i 0020120 f | ( n l i s t p w h e r e 0020140 i s . h a s h ) \r 0020160 * 0020240 | t h 0020260 e n | w h e r e i s . h a s h 0020300 | e l s e i f | \r 0020320 * 0020400 ( n 0020420 l i s t p ( c a r w h e r e 0020440 i s . h a s h ) ) \r 0020460 * 0020540 | t 0020560 h e n | \r 0020600 * 0020660 ( c a r w h 0020700 e r e i s . h a s h ) \r 0020720 * 0021020 | e l s e | \r 0021040 * 0021120 ( c a a r 0021140 w h e r e i s . h a s h ) ) \r 0021160 * 0021240 | e 0021260 l s e | \r 0021300 * 0021360 ' w h e r e i s . h a s h 0021400 ) ) ) \r 0021420 ( s c r a t c 0021440 h v a l ( l i s t n i l ) ) 0021460 \r 0021500 h f s c r a t c h 0021520 o l d w h ) \r 0021540 ( s e t 0021560 q o l d w h ( i n f i l e p 0021600 d a t a b a s e f i l e n a m 0021620 e ) ) 006 006 006 001 006 006 ( * \ ; 0021640 " c r e a t e s a s c r a 0021660 t c h f i l e " ) 006 001 \r 0021700 0021720 ( | i f | ( a n d o l d w 0021740 h ( n o t n e w f l g ) ) \r 0021760 0022000 | t h e n | 0022020 006 006 006 001 0022040 0022060 006 006 ( * \ ; " c o p y o 0022100 l d o n e " ) 006 001 \r 0022120 0022140 ( r e s e t s a v e 0022160 n i l ( l i s t ( f u n c t 0022200 i o n ( l a m b d a ( x ) \r 0022220 * 0022300 ( | i f | 0022320 ( c a r x ) \r 0022340 * 0022420 | t h e n | 0022440 \r 0022460 * 0022540 ( c l o s e f ? ( c a r 0022560 x ) ) \r 0022600 * 0022660 ( a n d r e s e t s 0022700 t a t e ( d e l f i l e \r 0022720 * 0023040 ( c a r x ) ) ) ) ) ) \r 0023060 * 0023120 s c r a 0023140 t c h v a l ) ) \r 0023160 0023200 ( r p l a c a s c r a t 0023220 c h v a l ( s e t q h f ( 0023240 c l o s e f ( o p e n f i l e 0023260 ( s e t q s c r a t c h \r 0023300 * 0023400 ( p a c k f i l 0023420 e n a m e \r 0023440 * 0023540 ' d i r e c t o r y \r 0023560 * 0023660 ( f i l e n a m e f i 0023700 e l d \r 0023720 * 0024020 d a t a b a s e f i 0024040 l e n a m e \r 0024060 * 0024160 ' d i r e c t o 0024200 r y ) \r 0024220 * 0024300 ' n 0024320 a m e \r 0024340 * 0024420 ' n 0024440 e w w h e r e i s d a t a b a s 0024460 e \r 0024500 * 0024560 ' e x t 0024600 e n s i o n \r 0024620 * 0024720 ' s c r a t c h \r 0024740 * 0025040 ' t e m p o r a r y \r 0025060 * 0025160 ' s ) ) \r 0025200 * 0025300 ' o u t p u t \r 0025320 * 0025420 ' n e w ) ) ) ) 006 006 006 001 \r 0025440 * 0025500 006 0025520 006 ( * \ ; \r 006 001 0025540 006 0025560 006 " C o m p e n s a t e f o r 0025600 t h e f a c t t h a t P 0025620 A C K F I L E N A M E p r o d 0025640 u c e s v e r s i o n - 1 0025660 f o r t e m p o r a r y ; S 0025700 " ) 006 001 \r 0025720 ( 0025740 a n d ( e q ( s y s t e m t 0025760 y p e ) \r 0026000 0026020 ' t o p s 2 0 ) 0026040 \r 0026060 0026100 ( s e t q s c r a t c h ( p 0026120 a c k f i l e n a m e ' v e r 0026140 s i o n n i l ' b o d y s 0026160 c r a t c h ) ) ) 006 006 006 001 \r 0026200 * 0026260 006 006 ( * | ; ; | " I f t h 0026300 e r e i s a v e r s i o n 0026320 e a r l i e r t h a n t h 0026340 e o n e w e g o t , s o 0026360 m e o n e e l s e m u s t 0026400 h a v e i t , a n d w e 0026420 m u s t w a i t u n t i l 0026440 h e g e t s r i d o f i 0026460 t ( b y d e l e t i n g i 0026500 t ) " ) 006 001 \r 0026520 0026540 ( | b i n d | o l d v ( r 0026560 p t _ 1 ) \r 0026600 0026620 | u n t i l | 0026640 \r 0026660 0026700 ( e q h f ( s e t q o 0026720 l d v ( f u l l n a m e s c 0026740 r a t c h ' o l d e s t ) ) ) 0026760 \r 0027000 0027020 | d o | \r 0027040 0027060 ( d i s m i s s 0027100 2 0 0 0 ) \r 0027120 0027140 ( o r ( n u l 0027160 l r p t ) \r 0027200 0027220 ( | i f 0027240 | ( e q r p t 5 ) \r 0027260 * 0027320 | t h e n | \r 0027340 * 0027400 ( | p r i n 0027420 t o u t | t t ( g e t f i 0027440 l e i n f o o l d v ' a u t 0027460 h o r ) \r 0027500 * 0027540 " s e e m s t 0027560 o b e u p d a t i n g t h 0027600 e d a t a b a s e r i g h t 0027620 n o w . " t \r 0027640 * 0027700 " I ' m 0027720 w a i t i n g f o r h i m 0027740 t o f i n i s h . " t t 0027760 ) \r 0030000 0030020 ( s e 0030040 t q r p t n i l ) \r 0030060 * 0030120 | e l s e | \r 0030140 * 0030200 ( | a d d | 0030220 r p t 1 ) ) ) ) \r 0030240 0030260 ( s e t q h f ( c o 0030300 p y h a s h f i l e o l d w h 0030320 h f n i l n i l t ) ) \r 0030340 0030360 ( c l o s e 0030400 f ? o l d w h ) \r 0030420 0030440 | e l s e i f | \r 0030460 0030500 ( a n d o l d w 0030520 h ( e q n e w f l g ' n o 0030540 c o p y ) ) \r 0030560 0030600 | t h e n | \r 0030620 0030640 ( s e t q h f ( o p e n 0030660 h a s h f i l e o l d w h ' 0030700 b o t h n i l ) ) \r 0030720 0030740 ( s e t q s c r a t 0030760 c h d i r n i l ) \r 0031000 0031020 | e l s e | \r 0031040 0031060 ( r e s e t s a v e 0031100 n i l ( l i s t ( f u n c 0031120 t i o n ( l a m b d a ( x ) 0031140 \r 0031160 * 0031220 ( | i f 0031240 | ( c a r x ) \r 0031260 * 0031340 | t h e n 0031360 | \r 0031400 * 0031460 ( s e t q x ( c l o s 0031500 e h a s h f i l e ( c a r x 0031520 ) ) ) \r 0031540 * 0031620 ( a n d r e s e t s 0031640 t a t e ( d e l f i l e x ) 0031660 ) ) ) ) \r 0031700 * 0031740 s c r a t c h v a l ) ) 0031760 \r 0032000 ( r p l a 0032020 c a s c r a t c h v a l ( s 0032040 e t q h f ( c r e a t e h a 0032060 s h f i l e \r 0032100 * 0032140 ( | 0032160 i f | s c r a t c h d i r | 0032200 t h e n | ( p a c k f i l e n 0032220 a m e . s t r i n g \r 0032240 * 0032340 ' d i r e 0032360 c t o r y s c r a t c h d i r 0032400 \r 0032420 * 0032520 ' b o d y \r 0032540 * 0032640 d a t a b a s e 0032660 f i l e n a m e ) \r 0032700 * 0032760 | e l s e | d a 0033000 t a b a s e f i l e n a m e ) \r 0033020 * 0033100 ' s m a l l e x p 0033120 r n i l ( o r ( n u m b e 0033140 r p n e w f l g ) \r 0033160 * 0033260 2 0 0 0 0 ) ) ) ) \r 0033300 0033320 ( s e t q n 0033340 e w f l g t ) ) 006 006 006 001 0033360 006 006 ( * | ; ; | " 0033400 M u s t l e a v e t h e n 0033420 e w f i l e o p e n - - o t 0033440 h e r w i s e , t h e u s e 0033460 r m i g h t l o s e a c c 0033500 e s s t o i t b e f o r e 0033520 h e s t a r t s t o d o 0033540 t h e n o t i c i n g . " ) 0033560 006 001 \r 0033600 ( | f o r | x 0033620 | i n | ( | f o r | f i l e 0033640 s p e c | i n s i d e | f i 0033660 l e g r o u p s | b i n d | 0033700 t e m | j o i n | \r 0033720 * 0033760 ( | i f | ( s e t q 0034000 t e m ( i n f i l e p f i l 0034020 e s p e c ) ) \r 0034040 * 0034100 | t h e n | 006 006 006 0034120 001 006 006 ( * \ ; 0034140 " a n i n d i v i d u a l 0034160 f i l e " ) 006 001 \r 0034200 * 0034240 ( l i s t t e 0034260 m ) \r 0034300 * 0034340 | e l s e | 006 006 006 001 \r 0034360 * 0034420 006 0034440 006 ( * | ; ; | " a s p e c 0034460 i f i c a t i o n f o r a 0034500 g r o u p o f f i l e s , 0034520 e x p a n d i t . D e f a 0034540 u l t t o * . ; - - i . 0034560 e . , h i g h e s t v e r s 0034600 i o n o n l y o f t h e 0034620 e x t e n s i o n l e s s f i 0034640 l e s o n t h i s d i r . 0034660 " ) 006 001 \r 0034700 * 0034740 ( s e t q t e m ( d 0034760 i r e c t o r y ( p a c k f i 0035000 l e n a m e . s t r i n g ' b 0035020 o d y \r 0035040 * 0035140 f i l e s p e c ' n a m e " 0035160 * " \r 0035200 * 0035260 ' e 0035300 x t e n s i o n " " ' v e r 0035320 s i o n " " ) \r 0035340 * 0035420 ) ) \r 0035440 * 0035500 ( | i f | 0035520 c o m p u t e . h i g h e s t 0035540 . v e r s i o n s . m a n u a l 0035560 l y | t h e n | \r 0035600 * 0035640 ( 0035660 006 002 \ \ r e m o v e o l d v e r 0035700 s i o n s 006 001 t e m ) \r 0035720 * 0036000 | e l s e | t e m ) ) ) \r 0036020 0036040 | d o | \r 0036060 0036100 ( e r s e 0036120 t q ( | p r i n t o u t | t 0036140 ( 006 002 w h e r e i s n o t i c 0036160 e 1 006 001 x h f ) \r 0036200 * 0036240 - 2 ) ) ) \r 0036260 ( 0036300 s e t q h f ( c l o s e h a 0036320 s h f i l e h f ) ) \r 0036340 0036360 ( r p l a c a s c r a t c h v 0036400 a l n i l ) 006 006 006 001 0036420 006 006 ( * | ; ; | " T h i 0036440 s c l o s e s t h e f i l 0036460 e , b u t o t h e r u p d 0036500 a t e r s a r e s t i l l 0036520 l o c k e d o u t c a u s e 0036540 t h e y g o f o r a n 0036560 e w v e r s i o n a n d t 0036600 h e n t r i p o v e r o u 0036620 r o l d o n e . " ) 006 001 \r 0036640 0036660 ( c o n d \r 0036700 0036720 ( ( n o t n e w f l g ) \r 0036740 0036760 ( | i f | ( s e t 0037000 q h f ( r e n a m e f i l e 0037020 h f ( p a c k f i l e n a m 0037040 e ' v e r s i o n n i l ' 0037060 b o d y \r 0037100 * 0037160 d a t a b a s e f i l e n 0037200 a m e ) ) ) \r 0037220 0037240 | t h e n | \r 0037260 0037300 ( d e l f i 0037320 l e o l d w h ) ) ) \r 0037340 0037360 ( s c r a t c h d i r ( 0037400 s e t q h f ( r e n a m e f 0037420 i l e h f d a t a b a s e f 0037440 i l e n a m e ) ) ) ) 006 006 006 001 \r 0037460 * 0037540 006 006 ( * \ ; " N o w 0037560 o t h e r s c a n g e t i 0037600 n t o r e a d o r u p d 0037620 a t e . " ) 006 001 \r 0037640 ( r e 0037660 t u r n h f ) ) ) ) ) \r \r ( 006 0037700 004 w h e r e i s n o t i c e 1 006 0037720 001 \r ( l a m b d a ( f i l 0037740 e h f t r y h a r d ) 006 006 006 0037760 001 0040000 0040020 006 006 ( * | b v m : | " 0040040 5 - O c t - 8 6 1 6 : 0 8 " 0040060 ) 006 001 \r ( r e s e t l s 0040100 t ( p r o g ( n a m e m a 0040120 p d a t e v a l e n v s 0040140 t r e a m ) \r 0040160 ( r e s e 0040200 t s a v e n i l ( l i s t 0040220 ' c l o s e f ( s e t q s t 0040240 r e a m ( o p e n s t r e a m 0040260 f i l e ' i n p u t ' o l 0040300 d n i l \r 0040320 * 0040400 ' ( d o n 0040420 \ ' t . c h a n g e . r e a d . 0040440 d a t e \r 0040460 * 0040560 d o n \ ' t . c h a n g e 0040600 . d a t e ) ) ) ) ) \r 0040620 ( 0040640 s e t q f i l e ( f u l l n 0040660 a m e s t r e a m ) ) \r 0040700 0040720 ( s e t f i l e p t r s t r 0040740 e a m 0 ) \r 0040760 ( c l : m 0041000 u l t i p l e - v a l u e - s e 0041020 t q ( e n v m a p ) \r 0041040 0041060 ( g e t - e n v 0041100 i r o n m e n t - a n d - f i l 0041120 e m a p s t r e a m t ) ) \r 0041140 0041160 ( o r m a p ( r e t 0041200 u r n ( l i s t f i l e " 0041220 - - c a n ' t f i n d f i l 0041240 e m a p " ) ) ) \r 0041260 ( | i 0041300 f | ( a n d ( n o t t r y 0041320 h a r d ) \r 0041340 0041360 ( e q u a l ( s e t 0041400 q d a t e ( f i l e d a t e 0041420 s t r e a m ) ) \r 0041440 * 0041500 ( g e t h a s h f i l e f i l 0041520 e h f ) ) \r 0041540 0041560 d a t e ) \r 0041600 0041620 | t h e n | 006 006 006 001 0041640 0041660 006 006 ( 0041700 * \ ; " a l r e a d y a 0041720 n a l y z e d " ) 006 001 \r 0041740 0041760 ( r e t u r n ( l 0042000 i s t f i l e d a t e ) ) ) 0042020 \r 0042040 ( s e t q n a m e 0042060 ( n a m e f i e l d f i l e 0042100 t ) ) \r 0042120 ( | f o r | x 0042140 | i n | ( c d r m a p ) \r 0042160 0042200 | d o | \r 0042220 0042240 ( | f o r 0042260 | y | i n | ( c d d r x 0042300 ) \r 0042320 0042340 | u n l e s s | \r 0042360 0042400 ( 0042420 o r ( n u l l ( s e t q v 0042440 a l ( l o o k u p h a s h f i 0042460 l e ( c a r y ) \r 0042500 * 0042560 n a m e h f 0042600 ' ( i n s e r t r e t r i e v 0042620 e ) ) ) ) \r 0042640 0042660 ( e q 0042700 n a m e v a l ) \r 0042720 * 0042760 ( a n d ( l i s t p v a l ) 0043000 \r 0043020 0043040 ( f m e 0043060 m b n a m e v a l ) ) ) \r 0043100 * 0043140 | d o | 006 006 006 001 0043160 006 006 ( * | ; ; | " 0043200 t h e f i r s t L O O K U P 0043220 H A S H F I L E s t o r e s 0043240 N A M E a s v a l u e i f 0043260 t h e r e w a s n o p r 0043300 e v i o u s v a l u e , e l 0043320 s e r e t u r n s p r e v i 0043340 o u s v a l u e . I f t 0043360 h a t v a l u e w a s n o 0043400 n - n u l l a n d d i d n 0043420 o t c o n t a i n N A M E , 0043440 n o w h a v e t o s t o 0043460 r e u n i o n o f N A M E 0043500 a n d w h a t w a s t h 0043520 e r e . " ) 006 001 \r 0043540 0043560 ( p u t h 0043600 a s h f i l e ( c a r y ) \r 0043620 * 0043660 ( n c o n c 1 0043700 ( o r ( l i s t p v a l ) 0043720 \r 0043740 * 0044000 ( l i s t v a l ) 0044020 ) \r 0044040 * 0044100 n a m e ) \r 0044120 * 0044160 h f ) ) ) \r 0044200 ( p u t h 0044220 a s h f i l e f i l e d a t 0044240 e h f ) \r 0044260 ( r e t u r 0044300 n f i l e ) ) ) ) ) \r ) \r \r ( 0044320 a d d t o v a r 006 002 w h e r e 0044340 i s . h a s h 006 001 ) \r ( d e c 0044360 l a r e \ : d o e v a l @ c o 0044400 m p i l e d o n t c o p y \r \r 0044420 ( g l o b a l v a r s w h e r 0044440 e i s . h a s h ) \r ) \r ( d e c 0044460 l a r e \ : d o n t e v a l @ 0044500 l o a d d o c o p y \r ( m o 0044520 v d ' h a s h f i l e - w h e 0044540 r e i s ' w h e r e i s ) \r \r 0044560 \r ( a d d t o v a r 006 002 a r o 0044600 u n d e x i t f n s 006 001 c l o 0044620 s e w h e r e i s ) \r ) \r \r \r \r 0044640 006 004 ( * \ ; " P o s s i b l 0044660 y o b s o l e t e n o w t 0044700 h a t d i r e c t o r y e n 0044720 u m e r a t e s h i g h e s t 0044740 v e r s i o n o k " ) 006 001 \r 0044760 \r ( d e f i n e q \r \r ( 006 004 \ \ 0045000 r e m o v e o l d v e r s i o n 0045020 s 006 001 \r ( l a m b d a ( f 0045040 u l l f i l e l s t ) 006 006 006 001 0045060 * 0045120 006 006 ( * | r r b | 0045140 " 2 2 - F e b - 8 4 1 8 : 1 2 0045160 " ) 006 001 \r \r 0045200 006 006 ( * | 0045220 r e m o v e s | | a l l | | 0045240 b u t | | t h e | | n e w e 0045260 s t | | v e r s i o n | | o 0045300 f | | a n y | | f i l e | 0045320 | o n | \r 006 001 0045340 006 006 f u l l f i l e l s t . 0045360 | S l o w | | v e r s i o n 0045400 | | a s | | t e m p o r a r 0045420 y | | u n t i l | d i r e c 0045440 t o r y | h a s | \ a | w 0045460 a y | \r 006 001 0045500 006 006 | o f | | a s k i n g | 0045520 | f o r | | o n l y | | t 0045540 h e | | m o s t | | r e c e 0045560 n t | | v e r s i o n . | ) 006 0045600 001 \r \r ( p r o g ( ( e 0045620 x p a n d e d f i l e l s t ( 0045640 | f o r | f i l e | i n | 0045660 f u l l f i l e l s t | c o l 0045700 l e c t | ( u n p a c k f i l 0045720 e n a m e f i l e ) ) ) \r 0045740 u n i q u e l 0045760 s t f i l e ) \r 0046000 ( | f o r | e x p t a i 0046020 l | o n | e x p a n d e d f 0046040 i l e l s t | d o | 0046060 006 006 ( * | s k i p 0046100 | | d e l e t e d | | f i l 0046120 e s . | ) 006 001 \r 0046140 ( a n d ( s 0046160 e t q f i l e ( c a r e x 0046200 p t a i l ) ) \r 0046220 ( p 0046240 r o g ( ( x d i r e c t o r y 0046260 ( l i s t g e t f i l e ' 0046300 d i r e c t o r y ) ) \r 0046320 0046340 ( x n a m e 0046360 ( l i s t g e t f i l e ' n 0046400 a m e ) ) \r 0046420 0046440 ( x e x t e n s i o n ( 0046460 l i s t g e t f i l e ' e x 0046500 t e n s i o n ) ) \r 0046520 0046540 ( x v e r s i o n 0046560 ( l i s t g e t f i l e ' 0046600 v e r s i o n ) ) ) \r 0046620 \r 0046640 006 006 ( * | g o | | t h r u | 0046660 | t h e | | l i s t | | o 0046700 f | | e x p a n d e d | | f 0046720 i l e s | | a n d | | s e e 0046740 | | i f | | t h e r e | \r 0046760 006 001 006 006 | a 0047000 r e | | a n y | | o t h e r 0047020 | | f i l e s | | o n | | 0047040 t h e | | l i s t | | w i t 0047060 h | | t h e | | s a m e | 0047100 | n a m e . | \r 006 001 0047120 006 006 i \ f | s o | | 0047140 a n d | | i t | | i s | | 0047160 o l d e r , | | d e l e t e | 0047200 | i t . | \r 006 001 0047220 006 006 i \ f | s o | | a 0047240 n d | | i t | | i s | | n 0047260 e w e r , | | d o n ' t | | 0047300 c o p y | | t h i s | | g u 0047320 y | | o n t o | | t h e | 0047340 \r 006 001 006 006 | 0047360 r e s u l t | | l i s t . | ) 0047400 006 001 \r \r 0047420 0047440 ( | f o r | e f l t a i l | 0047460 o n | ( c d r e x p t a i l 0047500 ) \r 0047520 0047540 | d o | \r 0047560 0047600 ( s e 0047620 t q f i l e ( c a r e f l 0047640 t a i l ) ) \r 0047660 0047700 ( c o n d \r 0047720 * 0047760 ( ( a n d ( e q 0050000 ( l i s t g e t f i l e ' n 0050020 a m e ) \r 0050040 * 0050100 x n a m e ) \r 0050120 * 0050160 ( e q ( l i s 0050200 t g e t f i l e ' e x t e n 0050220 s i o n ) \r 0050240 * 0050300 x e x t e n s i o n 0050320 ) \r 0050340 0050360 ( e 0050400 q ( l i s t g e t f i l e 0050420 ' d i r e c t o r y ) \r 0050440 * 0050500 x d i r 0050520 e c t o r y ) ) \r 0050540 * 0050600 ( c o n d \r 0050620 * 0050660 ( ( i g r e a t e r p ( l i s 0050700 t g e t f i l e ' v e r s i 0050720 o n ) \r 0050740 * 0051000 x v e r s i o n ) 0051020 006 006 ( * x f i l e | s h o 0051040 u l d | | b e | | d e l e t 0051060 e d | ) 006 001 \r 0051100 * 0051140 ( r e t u r n n i l ) ) \r 0051160 * 0051220 ( t \r 0051240 \r 0051260 006 006 ( * | m a r k | | 0051300 i t | | d e l e t e d . | | 0051320 D o n ' t | | w a n t | | t 0051340 o | | p l a y | | a r o u n 0051360 d | | w i t h | | t h e | 0051400 \r 006 001 006 006 | 0051420 p o i n t e r s | | b e c a u 0051440 s e | | t h e | | e n c l o 0051460 s i n g | f o r | i s | | 0051500 u s i n g | | t h e | | s a 0051520 m e | | l i s t . | ) 006 001 \r \r 0051540 * 0051600 ( r p 0051620 l a c a e f l t a i l n i l 0051640 ) ) ) ) ) \r 0051660 0051700 | f i n a l l 0051720 y | \r 0051740 0051760 ( s e t q u n i q 0052000 u e l s t ( c o n s ( c a r 0052020 e x p t a i l ) \r 0052040 * 0052120 u n i q u e l s t ) ) ) ) 0052140 ) ) \r ( r e 0052160 t u r n ( | f o r | u f i l 0052200 e | i n | u n i q u e l s t 0052220 | c o l l e c t | ( p a c k 0052240 f i l e n a m e u f i l e ) ) 0052260 ) ) ) ) \r ) \r ( d e c l a r e \ 0052300 : d o e v a l @ c o m p i l e 0052320 d o n t c o p y \r \r ( l o c a 0052340 l v a r s . t ) \r ) \r ( p u 0052360 t p r o p s w h e r e i s c 0052400 o p y r i g h t ( " X e r o x 0052420 C o r p o r a t i o n " 1 9 0052440 8 3 1 9 8 4 1 9 8 6 ) ) \r ( 0052460 d e c l a r e \ : d o n t c o 0052500 p y \r ( f i l e m a p ( n 0052520 i l ( 1 0 0 9 1 8 6 3 7 ( 0052540 h a s h f i l e - w h e r e i s 0052560 1 0 1 9 . 6 0 3 4 ) ( c 0052600 l o s e w h e r e i s 6 0 3 6 0052620 . 6 8 9 2 ) ( w h e r e i 0052640 s n o t i c e \r 6 8 9 4 . 0052660 1 6 3 1 6 ) ( w h e r e i s n 0052700 o t i c e 1 1 6 3 1 8 . 1 0052720 8 6 3 5 ) ) ( 1 8 9 2 9 2 1 0052740 6 8 6 ( \ \ r e m o v e o l d 0052760 v e r s i o n s 1 8 9 3 9 . 0053000 2 1 6 8 4 ) ) ) ) ) \r s t o p 0053020 \r 0053021