$ od -c -N 50000 [phylum]<LISP>Lyric>LIBRARY>HASH!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 " I N 0000040 T E R L I S P " 247 P A C K A G 0000060 E " I N T E R L I S P " ) \r 006 0000100 001 ( F I L E C R E A T E D " 0000120 1 - N o v - 8 6 2 3 : 0 3 : 0 0000140 1 " 006 004 { E R I S } < L I S P 0000160 C O R E > L I B R A R Y > H A S 0000200 H . ; 2 8 006 001 3 2 2 5 3 \r 0000220 \r c h a n g e s t 0000240 o % : ( F N S R E P L A C 0000260 E H A S H K E Y C L E A R H A 0000300 S H F I L E S C L O S E H A S 0000320 H F I L E C O P Y H A S H F I 0000340 L E C O P Y H A S H I T E M 0000360 \r 0000400 G T H A S H 0000420 F I L E ) \r 0000440 ( V A R S 0000460 H A S H C O M S ) \r \r 0000500 p r e v i o u s d a t e % : 0000520 " 2 0 - O c t - 8 6 1 3 : 0 0000540 5 : 1 9 " { E R I S } < L I S 0000560 P C O R E > L I B R A R Y > H A 0000600 S H . ; 2 5 ) \r \r \r ( * " \r C 0000620 o p y r i g h t ( c ) 1 9 8 0000640 4 , 1 9 8 5 , 1 9 8 6 b y 0000660 C h r i s t o p h e r L a n 0000700 e a n d X e r o x C o r p 0000720 o r a t i o n . A l l r i 0000740 g h t s r e s e r v e d . \r " 0000760 ) \r \r ( P R E T T Y C O M P R I 0001000 N T H A S H C O M S ) \r \r ( R 0001020 P A Q Q 006 002 H A S H C O M S 006 0001040 001 \r ( ( C O M S 0001060 ( * ; " U s e r F u n c 0001100 t i o n s " ) \r 0001120 ( F N S C L E A R 0001140 H A S H F I L E S C L O S E H 0001160 A S H F I L E C O L L E C T K 0001200 E Y S C O P Y H A S H F I L E 0001220 C O P Y H A S H I T E M C R 0001240 E A T E H A S H F I L E \r 0001260 0001300 G E T H A S H F I L E G E T 0001320 H A S H T E X T H A S H B E F 0001340 O R E C L O S E H A S H F I L 0001360 E D A T A H A S H F I L E N A 0001400 M E H A S H F I L E P \r 0001420 0001440 H A S H F I L E P R O P H A 0001460 S H F I L E S P L S T L O O K 0001500 U P H A S H F I L E M A P H A 0001520 S H F I L E O P E N H A S H F 0001540 I L E P U T H A S H F I L E 0001560 \r 0001600 P U T H A S H T E X T 0001620 R E H A S H F I L E ) ) \r 0001640 ( C O M S ( * ; 0001660 " I n t e r n a l F u n c t i 0001700 o n s " ) \r 0001720 ( F N S D E L E T E H 0001740 A S H K E Y F I N D 1 S T P R 0001760 I M E G E T H A S H K E Y G 0002000 E T P R O B E G T H A S H F I 0002020 L E H A S H F I L E S P L S T 0002040 1 \r 0002060 I N S E R T H A S H 0002100 K E Y M A K E H A S H K E Y 0002120 R E P L A C E H A S H K E Y S 0002140 E T H A S H S T A T U S S P L 0002160 I T K E Y ) ) \r 0002200 ( C O M S ( * ; " S y s t 0002220 e m V a r i a b l e s " ) \r 0002240 ( I N 0002260 I T V A R S ( H F G R O W T H 0002300 F A C T O R 3 ) \r 0002320 ( 0002340 H A S H L O A D F A C T O R . 0002360 8 7 5 ) \r 0002400 ( H A S H F 0002420 I L E D E F A U L T S I Z E 5 0002440 1 2 ) \r 0002460 ( H A S H S C 0002500 R A T C H C O N S C E L L ( C 0002520 O N S ) ) \r 0002540 ( H A S H 0002560 T E X T C H A R ( C H A R A C 0002600 T E R ( C H A R C O D E ^ A 0002620 ) ) ) \r 0002640 ( H A S H F I 0002660 L E R D T B L ( C O P Y R E A 0002700 D T A B L E ' O R I G ) ) \r 0002720 0002740 ( H A S H S C R A T C H 0002760 L S T ( C O N S T A N T ( t 0003000 o 4 0 c o l l e c t N I L 0003020 ) ) ) \r 0003040 ( H A S H B I 0003060 T T A B L E ( M A K E B I T T 0003100 A B L E ( L I S T H A S H T 0003120 E X T C H A R ) ) ) \r 0003140 0003160 ( R E H A S H G A G T ) \r 0003200 0003220 S Y S H A S H F I L E S 0003240 Y S H A S H F I L E L S T ) \r 0003260 ( V A 0003300 R S P R O B E L S T H A S H 0003320 A C C E S S T Y P E S ) \r 0003340 ( A D D V 0003360 A R S ( A F T E R S Y S O U T 0003400 F O R M S ( C L E A R H A S H 0003420 F I L E S ) ) ) \r 0003440 ( O P T I M I Z E 0003460 R S G E T H A S H F I L E H 0003500 A S H F I L E N A M E ) ) \r 0003520 [ C O M S ( * ; 0003540 " S y s t e m M a c r o s " 0003560 ) \r 0003600 ( D E C L A R E % : E V A L @ 0003620 C O M P I L E D O N T C O P Y 0003640 ( M A C R O S A N Y E Q C 0003660 R E A T E K E Y P R I N T P T 0003700 R P R I N T S T B Y T E R E 0003720 A D P T R \r 0003740 * 0004000 R E A 0004020 D S T B Y T E R E H A S H K E 0004040 Y ) \r 0004060 ( * ; ; " e 0004100 t c . " ) \r 0004120 ( R E C O 0004140 R D S H a s h F i l e H a s 0004160 h T e x t P t r H a s h F i l 0004200 e E n t r y D o u b l e K e y 0004220 ) \r 0004240 ( C O N S T A N T 0004260 S ( H A S H . H E A D E R . S 0004300 I Z E 8 ) \r 0004320 0004340 ( H A S H . K E Y . S I Z 0004360 E 4 ) ) \r 0004400 ( G L O B 0004420 A L V A R S H F G R O W T H F 0004440 A C T O R H A S H L O A D F A 0004460 C T O R H A S H F I L E D E F 0004500 A U L T S I Z E \r 0004520 0004540 H A S H S C R A T C 0004560 H C O N S C E L L H A S H T E 0004600 X T C H A R H A S H S C R A T 0004620 C H L S T H A S H B I T T A B 0004640 L E S Y S H A S H F I L E \r 0004660 0004700 S Y S H 0004720 A S H F I L E L S T P R O B E 0004740 L S T H A S H A C C E S S T Y 0004760 P E S H A S H F I L E R D T B 0005000 L M A X . I N T E G E R ) \r 0005020 0005040 ( * ; " F o r M A 0005060 S T E R S C O P E " ) \r 0005100 0005120 ( G L O B A L V A R S H A S 0005140 H . H E A D E R . S I Z E H A 0005160 S H . K E Y . S I Z E ) \r 0005200 0005220 ( S P E C V A R S R E H A 0005240 S H G A G ) \r 0005260 ( B L O 0005300 C K S ( L O O K U P H A S H F 0005320 I L E B L O C K ( E N T R I E 0005340 S L O O K U P H A S H F I L E 0005360 G E T H A S H F I L E P U T 0005400 H A S H F I L E ) \r 0005420 0005440 L O 0005460 O K U P H A S H F I L E G E T 0005500 H A S H F I L E P U T H A S H 0005520 F I L E D E L E T E H A S H K 0005540 E Y G E T H A S H K E Y \r 0005560 * 0005620 G E T P R O B E I N S E 0005640 R T H A S H K E Y M A K E H A 0005660 S H K E Y R E P L A C E H A S 0005700 H K E Y ) \r 0005720 0005740 ( O P E N H A S H F I L E B 0005760 L O C K ( E N T R I E S C R 0006000 E A T E H A S H F I L E O P E 0006020 N H A S H F I L E ) \r 0006040 0006060 C R 0006100 E A T E H A S H F I L E O P E 0006120 N H A S H F I L E F I N D 1 S 0006140 T P R I M E S E T H A S H S T 0006160 A T U S ) \r 0006200 0006220 ( M A P H A S H F I L E B L 0006240 O C K ( E N T R I E S C O L 0006260 L E C T K E Y S C O P Y H A S 0006300 H F I L E C O P Y H A S H I T 0006320 E M \r 0006340 * 0006400 H A S H F I L 0006420 E S P L S T M A P H A S H F I 0006440 L E R E H A S H F I L E ) \r 0006460 * 0006520 ( S P E C V A R S R E H A 0006540 S H G A G ) \r 0006560 0006600 C O L L E C 0006620 T K E Y S C O P Y H A S H F I 0006640 L E C O P Y H A S H I T E M 0006660 H A S H F I L E S P L S T H A 0006700 S H F I L E S P L S T 1 \r 0006720 * 0006760 M A P H A S H F I L E R E H 0007000 A S H F I L E S P L I T K E Y 0007020 ] \r ( P R O P 0007040 F I L E T Y P E H A S H ) ) ) 0007060 \r \r \r \r 006 004 ( * ; " U s e r 0007100 F u n c t i o n s " ) 006 001 \r \r 0007120 ( D E F I N E Q \r \r ( 006 004 C L E 0007140 A R H A S H F I L E S 006 001 \r 0007160 [ L A M B D A ( C L O S E R 0007200 E L E A S E ) 0007220 0007240 ( * c d 0007260 l " 2 1 - M a y - 8 6 1 9 : 0007300 5 5 " ) \r 0007320 * 0007360 ( * ; ; " C a 0007400 l l e d a f t e r S Y S O U 0007420 T r e t u r n s , t o c l 0007440 e a n u p a n y s p u r i 0007460 o u s i t e m s . C a n 0007500 a l s o b e c a l l e d t 0007520 o c l o s e a l l h a s h 0007540 f i l e s . " ) \r ( 006 002 0007560 i f 006 001 C L O S E \r 0007600 006 002 t h e n 006 001 [ 006 002 w 0007620 h i l e 006 001 S Y S H A S H F I 0007640 L E L S T 006 002 d o 006 001 0007660 ( * ; \r 0007700 0007720 " D o i t t h i s w a y 0007740 , s o t h e D R E M O V E 0007760 i n H A S H B E F O R E C L 0010000 O S E d o e s n ' t s c r e 0010020 w u p t h i s i t e r a t 0010040 i o n " ) \r 0010060 0010100 ( 006 002 w 0010120 i t h 006 001 H a s h F i l e E n 0010140 t r y ( 006 002 p o p 006 001 S Y S 0010160 H A S H F I L E L S T ) \r 0010200 * 0010240 ( 006 002 w i t h 0010260 006 001 H a s h F i l e H A S H 0010300 F I L E ( C L O S E F ? S t 0010320 r e a m ) \r 0010340 * 0010400 ( S E T Q V a 0010420 l i d ? N I L ] \r 0010440 * 0010500 ( * 0010520 ; \r 0010540 * 0010600 " I n v a l i d a t e a 0010620 n y t h i n g t h a t w a s 0010640 o p e n b e f o r e t h e 0010660 s y s o u t " ) \r 0010700 ( S E T Q S Y S 0010720 H A S H F I L E N I L ] ) \r \r 0010740 ( 006 004 C L O S E H A S H F I L E 0010760 006 001 \r [ L A M B D A ( H A 0011000 S H F I L E R E O P E N ) 0011020 * 0011060 ( * c d l " 2 1 - M a y - 8 0011100 6 0 8 : 1 8 " ) \r ( 006 0011120 002 i f 006 001 ( S E T Q H A S H 0011140 F I L E ( 006 002 H A S H F I L E 0011160 P 006 001 ( O R H A S H F I L E 0011200 S Y S H A S H F I L E ) ) ) \r 0011220 006 002 t h e n 006 001 0011240 ( 006 002 w i t h 006 001 H a s h F 0011260 i l e H A S H F I L E ( S E 0011300 T Q F i l e ( C L O S E F ? 0011320 S t r e a m ) ) \r 0011340 ( 006 002 0011360 i f 006 001 R E O P E N \r 0011400 0011420 006 002 t h e n 006 001 0011440 0011460 ( * ; \r 0011500 " T h i s f l a 0011520 g f o r c e s c o n t e n t 0011540 s o f f i l e t o e x i 0011560 s t o n d i s k i f w e 0011600 c r a s h , r e u s e h a 0011620 s h f i l e d a t u m " ) \r 0011640 0011660 ( 006 002 O P 0011700 E N H A S H F I L E 006 001 F i l 0011720 e R E O P E N N I L N I L 0011740 H A S H F I L E ) \r 0011760 0012000 006 002 e l s e 006 001 F i l e ] ) \r 0012020 \r ( 006 004 C O L L E C T K E Y S 006 0012040 001 \r [ L A M B D A ( H A S 0012060 H F I L E D O U B L E M K S 0012100 T R I N G ? ) 0012120 ( 0012140 * c d l " 1 4 - M a r - 8 5 0012160 1 7 : 0 1 " ) \r ( 006 002 0012200 D E C L A R E 006 001 ( S P E C V 0012220 A R S M K S T R I N G ? ) ) \r 0012240 ( P R O G ( K E Y L S 0012260 T ) \r ( 006 002 0012300 D E C L A R E 006 001 ( S P E C V 0012320 A R S K E Y L S T ) ) \r 0012340 [ 006 002 i f 006 001 D 0012360 O U B L E \r 0012400 006 002 t h e n 006 001 ( 006 002 0012420 M A P H A S H F I L E 006 001 H A 0012440 S H F I L E [ F U N C T I O N 0012460 ( L A M B D A ( K E Y 1 K 0012500 E Y 2 ) \r 0012520 * 0012560 ( 006 002 p u s 0012600 h 006 001 K E Y L S T ( C O N S 0012620 ( 006 002 i f 006 001 M K S T R I N 0012640 G ? \r 0012660 * 0012740 006 0012760 002 t h e n 006 001 ( M K S T R I N 0013000 G K E Y 1 ) \r 0013020 * 0013120 006 002 e l s e 006 001 K E Y 1 ) 0013140 \r 0013160 * 0013240 ( 006 002 i f 006 001 0013260 M K S T R I N G ? \r 0013300 * 0013400 006 002 t h e n 006 001 0013420 ( M K S T R I N G K E Y 2 ) \r 0013440 * 0013540 006 002 e l s e 0013560 006 001 K E Y 2 ] \r 0013600 0013620 T ) \r 0013640 006 002 e l s e 006 001 ( 006 002 M A 0013660 P H A S H F I L E 006 001 H A S H 0013700 F I L E ( F U N C T I O N ( 0013720 L A M B D A ( K E Y ) \r 0013740 * 0014020 ( 006 002 p u s h 006 001 K E Y L S T 0014040 ( 006 002 i f 006 001 M K S T R I N 0014060 G ? \r 0014100 * 0014160 006 002 t h e n 006 001 0014200 ( M K S T R I N G K E Y ) \r 0014220 * 0014320 006 002 e l s e 006 001 K E Y ] \r 0014340 ( R E T U R N 0014360 K E Y L S T ] ) \r \r ( 006 004 C O 0014400 P Y H A S H F I L E 006 001 \r [ 0014420 L A M B D A ( H A S H F I L E 0014440 N E W N A M E F N V A L U 0014460 E T Y P E L E A V E O P E N ) 0014500 ( * c d l 0014520 " 1 8 - M a r - 8 5 0 9 : 0 0014540 1 " ) \r ( 006 002 D E C L A 0014560 R E 006 001 ( S P E C V A R S H 0014600 A S H F I L E F N ) ) 0014620 ( * ; \r 0014640 " C o p y 0014660 H a s h F i l e b y m a p p 0014700 i n g o v e r f i l e h a 0014720 s h i n g i t e m s i n t o 0014740 n e w f i l e , s l o w 0014760 b u t l i s p i n d e p e n 0015000 d e n t " ) \r ( 006 002 w i 0015020 t h 006 001 H a s h F i l e ( S 0015040 E T Q H A S H F I L E ( 006 002 0015060 G T H A S H F I L E 006 001 H A S 0015100 H F I L E ) ) \r 0015120 ( P R O G ( ( A C C E S S 0015140 ( 006 002 H A S H F I L E P R O P 0015160 006 001 H A S H F I L E ' A C C 0015200 E S S ) ) \r 0015220 ( N E W H A S H F 0015240 I L E ( 006 002 C R E A T E H A S 0015260 H F I L E 006 001 N E W N A M E 0015300 ( O R V A L U E T Y P E V a 0015320 l u e T y p e ) \r 0015340 0015360 I t 0015400 e m L e n g t h % # E n t r i 0015420 e s N I L I t e m C o p y F 0015440 n ) ) ) \r 0015460 ( 006 002 D E C L A R E 006 0015500 001 ( S P E C V A R S N E W H 0015520 A S H F I L E ) ) \r 0015540 ( 006 002 i f 006 0015560 001 ( N E Q A C C E S S ' I 0015600 N P U T ) \r 0015620 006 002 t h e n 0015640 006 001 0015660 ( * ; 0015700 \r 0015720 " C 0015740 l o s e a n d r e o p e n 0015760 t h e h a s h f i l e t o 0016000 m a k e s u r e i t i s 0016020 u p t o d a t e o n t h 0016040 e d i s k " ) \r 0016060 0016100 ( S E T Q H A S H F I L E 0016120 ( 006 002 C L O S E H A S H F I L 0016140 E 006 001 H A S H F I L E A C C 0016160 E S S ) ) ) \r 0016200 [ 006 002 M A P H A S 0016220 H F I L E 006 001 H A S H F I L E 0016240 ( F U N C T I O N ( L A M B 0016260 D A ( K E Y ) \r 0016300 * 0016340 ( 006 002 C O 0016360 P Y H A S H I T E M 006 001 K E Y 0016400 H A S H F I L E N E W H A S 0016420 H F I L E F N ] \r 0016440 ( R E T U R 0016460 N ( 006 002 i f 006 001 ( N O T L 0016500 E A V E O P E N ) \r 0016520 0016540 006 002 t h e n 006 001 ( 0016560 006 002 C L O S E H A S H F I L E 006 0016600 001 N E W H A S H F I L E ) \r 0016620 0016640 006 002 e l s e 006 0016660 001 N E W H A S H F I L E ] ) \r 0016700 \r ( 006 004 C O P Y H A S H I T E M 0016720 006 001 \r [ L A M B D A ( K E 0016740 Y H A S H F I L E N E W H A 0016760 S H F I L E U S E R F N ) 0017000 0017020 ( * c d l " 2 1 - M a y - 8 0017040 6 0 8 : 1 8 " ) \r 0017060 * 0017120 ( * ; 0017140 ; \r 0017160 " C o p y 0017200 s i n g l e h a s h i t e 0017220 m f r o m o l d t o n e 0017240 w h a s h f i l e , a p p l 0017260 y i n g u s e r f n i f s 0017300 u p p l i e d " ) \r ( P 0017320 R O G ( ( V A L U E ( 006 002 G 0017340 E T H A S H F I L E 006 001 K E Y 0017360 H A S H F I L E ) ) ) \r 0017400 ( 006 002 i f 006 001 U 0017420 S E R F N \r 0017440 006 002 t h e n 006 001 ( S E 0017460 T Q V A L U E ( A P P L Y * 0017500 U S E R F N K E Y V A L U 0017520 E H A S H F I L E N E W H A 0017540 S H F I L E ) ) ) \r 0017560 ( 006 002 i f 006 001 ( 006 002 t 0017600 y p e ? 006 001 H a s h T e x t P 0017620 t r V A L U E ) \r 0017640 006 002 t h e n 006 001 0017660 ( 006 002 w i t h 006 001 H a s h T 0017700 e x t P t r V A L U E ( 006 002 0017720 w i t h 006 001 H a s h F i l e 0017740 H A S H F I L E ( 006 002 P U T H 0017760 A S H T E X T 006 001 K E Y S t 0020000 r e a m \r 0020020 * 0020120 N E W H A S H F I L E S t a r 0020140 t E n d ) ) ) \r 0020160 006 002 e l s e 006 001 ( 006 0020200 002 L O O K U P H A S H F I L E 006 0020220 001 K E Y V A L U E N E W H 0020240 A S H F I L E ' I N S E R T ] 0020260 ) \r \r ( 006 004 C R E A T E H A S H 0020300 F I L E 006 001 \r [ L A M B D A 0020320 ( F I L E V A L U E T Y P E 0020340 I T E M L E N G T H % # E N 0020360 T R I E S S M A S H C O P Y 0020400 F N ) ( * c d l " 2 1 - M 0020420 a y - 8 6 0 9 : 3 2 " ) \r 0020440 ( P R O G ( S T R E A M 0020460 S I Z E H A S H F I L E ) \r 0020500 [ S E T Q S 0020520 I Z E ( 006 002 F I N D 1 S T P R 0020540 I M E 006 001 ( F I X ( F T I M 0020560 E S ( 006 002 i f 006 001 % # E N T 0020600 R I E S \r 0020620 * 0020660 006 002 t h e n 006 0020700 001 ( M A X % # E N T R I E S 0020720 H A S H F I L E D E F A U L T 0020740 S I Z E ) \r 0020760 * 0021020 006 002 e l s e 006 001 0021040 H A S H F I L E D E F A U L T 0021060 S I Z E ) \r 0021100 * 0021140 H F G R O W T H F A C 0021160 T O R ] \r [ 0021200 S E T Q S T R E A M ( O P E 0021220 N S T R E A M F I L E ' O U 0021240 T P U T ' N E W 8 ' ( ( T 0021260 Y P E B I N A R Y ] \r 0021300 ( P R I N T P T R 0021320 S T R E A M 0 ) \r 0021340 ( P R I N T P T R S T 0021360 R E A M S I Z E ) 0021400 0021420 ( * P u t o t 0021440 h e r a r g u m e n t s o n 0021460 f i l e f o r \r 0021500 * 0021560 f u t u r e e 0021600 x p a n s i o n ) \r 0021620 [ B O U T S T R E A M 0021640 ( S E L E C T Q V A L U E T 0021660 Y P E \r 0021700 ( 0021720 T E X T ( C H A R C O D E T 0021740 ) ) \r 0021760 ( E 0022000 X P R ( C H A R C O D E E ) 0022020 ) \r 0022040 ( P R 0022060 O G N ( S E T Q V A L U E T 0022100 Y P E ' E X P R ) \r 0022120 0022140 ( C H 0022160 A R C O D E E ] \r 0022200 ( B O U T S T R E A M 0022220 ( S E T Q I T E M L E N G T 0022240 H ( 006 002 i f 006 001 ( N U M B E 0022260 R P I T E M L E N G T H ) \r 0022300 * 0022340 006 002 t h e 0022360 n 006 001 ( L O G A N D I T E M 0022400 L E N G T H 2 5 5 ) \r 0022420 * 0022460 006 002 e l s e 006 001 0 0022500 ) ) ) \r \r 0022520 ( * F i l l 0022540 t h e K E Y s e c t i o n 0022560 w i t h z e r o s a n d 0022600 m a r k e n d o f K E Y S 0022620 , s t a r t o f D A T A ) 0022640 \r \r ( 006 002 t 0022660 o 006 001 ( A D D 1 ( I T I M E 0022700 S S I Z E H A S H . K E Y . 0022720 S I Z E ) ) 006 002 d o 006 001 ( B 0022740 O U T S T R E A M 0 ) ) \r 0022760 * 0023040 ( * C 0023060 l o s e f i l e a n d r e 0023100 o p e n t o e n s u r e \r 0023120 * 0023200 e x i 0023220 s t a n c e ) \r 0023240 [ S E L E C T Q ( S Y S T 0023260 E M T Y P E ) \r 0023300 ( ( T E N E X T O 0023320 P S 2 0 ) \r 0023340 ( S E T Q 0023360 F I L E ( C L O S E F ( 006 002 0023400 w i t h 006 001 S T R E A M S T 0023420 R E A M F U L L N A M E ) ) ) 0023440 ) \r 0023460 ( P R O G N ( S E T Q F I L 0023500 E ( C L O S E F S T R E A M 0023520 ] \r ( 006 002 w 0023540 i t h 006 001 H a s h F i l e ( 0023560 S E T Q H A S H F I L E ( 006 0023600 002 i f 006 001 ( 006 002 t y p e ? 006 001 0023620 H a s h F i l e S M A S H ) 0023640 \r 0023660 0023700 006 002 t 0023720 h e n 006 001 S M A S H \r 0023740 * 0024000 006 002 e l s e 006 001 ( 0024020 006 002 c r e a t e 006 001 H a s h F 0024040 i l e ) ) ) \r 0024060 [ S E T Q B y t 0024100 e S t r e a m ( O P E N S T R 0024120 E A M F I L E ' B O T H ' 0024140 O L D 8 ' ( ( T Y P E B I 0024160 N A R Y ] \r 0024200 [ S E L E C T Q ( 0024220 S Y S T E M T Y P E ) \r 0024240 0024260 ( ( T E N E X T O P S 2 0 ) 0024300 \r 0024320 ( S E T Q 0024340 F i l e ( S E T Q S t r e a 0024360 m ( 006 002 w i t h 006 001 S T R E 0024400 A M B y t e S t r e a m F U 0024420 L L N A M E ) ) ) ) \r 0024440 ( 0024460 S E T Q F i l e ( F U L L N 0024500 A M E ( S E T Q S t r e a m 0024520 B y t e S t r e a m ] \r 0024540 ( S E 0024560 T Q S i z e S I Z E ) \r 0024600 ( S 0024620 E T Q % # E n t r i e s 0 ) 0024640 \r 0024660 ( S E T Q W r i t e ? T ) 0024700 \r 0024720 ( S E T Q V a l u e T y p e 0024740 V A L U E T Y P E ) \r 0024760 ( S E T 0025000 Q I t e m C o p y F n C O P 0025020 Y F N ) \r 0025040 ( S E T Q I t e m L 0025060 e n g t h I T E M L E N G T H 0025100 ) ) \r ( R E 0025120 T U R N ( 006 002 S E T H A S H S 0025140 T A T U S 006 001 H A S H F I L E 0025160 ] ) \r \r ( 006 004 G E T H A S H F I 0025200 L E 006 001 \r [ L A M B D A ( 0025220 K E Y H A S H F I L E K E Y 0025240 2 ) 0025260 0025300 ( * c d l " 3 - A u g 0025320 - 8 3 1 5 : 0 4 " ) \r 0025340 ( 006 002 L O O K U P H A S H F I L 0025360 E 006 001 ( C R E A T E K E Y K 0025400 E Y K E Y 2 ) \r 0025420 N I L H A S H F I L E 0025440 ' R E T R I E V E ] ) \r \r ( 006 0025460 004 G E T H A S H T E X T 006 001 \r 0025500 [ L A M B D A ( K E Y H A 0025520 S H F I L E D S T F I L ) 0025540 0025560 ( * c 0025600 d l " 2 1 - M a y - 8 6 0 8 0025620 : 1 9 " ) \r ( P R O G 0025640 ( ( H A S H T E X T P T R ( 006 0025660 002 G E T H A S H F I L E 006 001 K 0025700 E Y H A S H F I L E ) ) ) \r 0025720 ( 006 002 i f 006 001 0025740 ( 006 002 t y p e ? 006 001 H a s h 0025760 T e x t P t r H A S H T E X T 0026000 P T R ) \r 0026020 006 002 t h e n 006 001 ( 006 002 w 0026040 i t h 006 001 H a s h T e x t P t 0026060 r H A S H T E X T P T R ( 006 0026100 002 w i t h 006 001 H a s h F i l e 0026120 H A S H F I L E \r 0026140 * 0026220 ( R E T U R N ( C O P Y B Y 0026240 T E S S t r e a m D S T F I 0026260 L S t a r t E n d ] ) \r \r ( 0026300 006 004 H A S H B E F O R E C L O S 0026320 E 006 001 \r [ L A M B D A ( F 0026340 I L E ) 0026360 * 0026420 ( * c d l " 1 8 - M a r - 0026440 8 5 1 0 : 2 7 " ) \r 0026460 * 0026540 ( * C a l l e 0026560 d b e f o r e a h a s h f 0026600 i l e i s \r 0026620 * 0026700 a c t u a l l y c l 0026720 o s e d ) \r ( P R O G 0026740 ( ( E N T R Y ( A S S O C ( 0026760 F U L L N A M E F I L E ) \r 0027000 0027020 S Y S H A S H F 0027040 I L E L S T ) ) ) \r 0027060 ( 006 002 i f 006 001 E N T R 0027100 Y \r 0027120 006 002 t h e n 006 001 ( 006 002 w i t h 0027140 006 001 H a s h F i l e E n t r y 0027160 E N T R Y ( 006 002 i f 006 001 ( 0027200 E Q H A S H F I L E S Y S H 0027220 A S H F I L E ) \r 0027240 * 0027300 006 002 t h e n 0027320 006 001 ( S E T Q S Y S H A S H 0027340 F I L E N I L ) ) \r 0027360 * 0027440 ( * M a r k 0027460 t h i s d a t u m d e f u n 0027500 c t ) \r 0027520 ( 006 002 0027540 w i t h 006 001 H a s h F i l e 0027560 H A S H F I L E ( S E T Q V 0027600 a l i d ? N I L ) ) ) \r 0027620 * 0027700 ( * R e 0027720 m o v e f r o m t a b l e 0027740 o f o p e n h a s h \r 0027760 * 0030040 f i l e s 0030060 ) \r 0030100 ( S E T Q S Y S H A 0030120 S H F I L E L S T ( D R E M O 0030140 V E E N T R Y S Y S H A S H 0030160 F I L E L S T ] ) \r \r ( 006 004 H A 0030200 S H F I L E D A T A 006 001 \r [ 0030220 L A M B D A ( H A S H F I L E 0030240 ) 0030260 0030300 ( * c d l 0030320 " 2 2 - A u g - 8 3 1 2 : 1 0030340 2 " ) \r ( 006 002 w i t h 006 0030360 001 H a s h F i l e ( 006 002 G T 0030400 H A S H F I L E 006 001 H A S H F 0030420 I L E ) \r ( 0030440 L I S T F i l e V a l u e T 0030460 y p e I t e m L e n g t h % 0030500 # E n t r i e s ] ) \r \r ( 006 004 H 0030520 A S H F I L E N A M E 006 001 \r 0030540 [ L A M B D A ( H A S H F I L 0030560 E ) 0030600 0030620 ( * g b 0030640 n " 7 - N o v - 8 4 1 6 : 0030660 3 4 " ) \r ( 006 002 H A S H 0030700 F I L E P R O P 006 001 H A S H F 0030720 I L E ' N A M E ] ) \r \r ( 006 004 0030740 H A S H F I L E P 006 001 \r [ L 0030760 A M B D A ( H A S H F I L E 0031000 W R I T E ) 0031020 0031040 ( * c d l 0031060 " 1 8 - M a r - 8 5 1 0 : 5 2 0031100 " ) \r ( 006 002 i f 006 001 [ 0031120 A N D [ O R ( 006 002 t y p e ? 0031140 006 001 H a s h F i l e H A S H 0031160 F I L E ) \r 0031200 ( A N D H A S H 0031220 F I L E ( L I T A T O M H A 0031240 S H F I L E ) \r 0031260 ( S 0031300 E T Q H A S H F I L E ( F U 0031320 L L N A M E H A S H F I L E ) 0031340 ) \r 0031360 ( S E T Q H A 0031400 S H F I L E ( C D R ( A S S 0031420 O C H A S H F I L E S Y S H 0031440 A S H F I L E L S T ] \r 0031460 ( 006 002 w i t h 0031500 006 001 H a s h F i l e H A S H 0031520 F I L E ( A N D V a l i d ? 0031540 ( O R ( N O T W R I T E ) 0031560 \r 0031600 * 0031640 W r i t e ? ] \r 0031660 006 002 t h e n 006 001 H 0031700 A S H F I L E ] ) \r \r ( 006 004 H A 0031720 S H F I L E P R O P 006 001 \r [ 0031740 L A M B D A ( H A S H F I L E 0031760 P R O P V A L U E ) 0032000 0032020 ( * c d l 0032040 " 2 1 - M a y - 8 6 0 9 : 4 0032060 3 " ) \r ( 006 002 w i t h 006 0032100 001 H a s h F i l e ( 006 002 G T 0032120 H A S H F I L E 006 001 H A S H F 0032140 I L E ) \r ( 0032160 S E L E C T Q P R O P \r 0032200 ( V A L U 0032220 E T Y P E V a l u e T y p e ) 0032240 \r ( 0032260 A C C E S S ( G E T F I L E I 0032300 N F O S t r e a m ' A C C E 0032320 S S ) ) \r 0032340 ( N A M E F i l e ) \r 0032360 ( C O 0032400 P Y F N ( P R O G 1 I t e m 0032420 C o p y F n ( 006 002 i f 006 001 V 0032440 A L U E \r 0032460 * 0032520 006 002 t h e n 006 001 ( S E T Q 0032540 I t e m C o p y F n V A L U E 0032560 ) ) ) ) \r 0032600 ( S T R E A M S t r e a 0032620 m ) \r 0032640 ( S I Z E S i z e ) \r 0032660 ( % # E N 0032700 T R I E S % # E n t r i e s ) 0032720 \r ( 0032740 I T E M L E N G T H I t e m L 0032760 e n g t h ) \r 0033000 N I L ] ) \r \r ( 006 004 H 0033020 A S H F I L E S P L S T 006 001 \r 0033040 [ L A M B D A ( H A S H F I 0033060 L E X W O R D ) 0033100 0033120 ( * c 0033140 d l " 1 5 - M a r - 8 5 0 8 0033160 : 5 1 " ) \r ( 006 002 D E C 0033200 L A R E 006 001 ( S P E C V A R S 0033220 . T ) ) \r 0033240 \r ( * J 0033260 u s t c r e a t e a n I n 0033300 t e r l i s p g e n e r a t o 0033320 r t h a t r e t u r n s e 0033340 a c h h a s h k e y ) \r \r 0033360 ( 006 002 i f 006 001 ( S E T Q 0033400 H A S H F I L E ( 006 002 G T H 0033420 A S H F I L E 006 001 H A S H F I 0033440 L E ) ) \r 006 002 t 0033460 h e n 006 001 ( G E N E R A T O R 0033500 ( 006 002 H A S H F I L E S P L S 0033520 T 1 006 001 H A S H F I L E X W 0033540 O R D ] ) \r \r ( 006 004 L O O K U P 0033560 H A S H F I L E 006 001 \r [ L A 0033600 M B D A ( K E Y V A L U E 0033620 H A S H F I L E C A L L T Y P 0033640 E K E Y 2 ) 0033660 ( * P a v e l 0033700 " 2 4 - S e p - 8 6 1 2 : 3 0033720 1 " ) \r ( P R O G ( R 0033740 E T V A L R E T F L G ( K E 0033760 Y V A L M A X . I N T E G E R 0034000 ) \r 0034020 ( I N D E X ( C R E A T 0034040 E K E Y K E Y K E Y 2 ) ) ) 0034060 \r ( S E T Q 0034100 H A S H F I L E ( 006 002 G T H 0034120 A S H F I L E 006 001 H A S H F I 0034140 L E ( A N Y E Q ' ( 006 002 R E 0034160 P L A C E 006 001 D E L E T E I 0034200 N S E R T ) C A L L T Y P E ) 0034220 ) ) \r ( S E 0034240 T Q K E Y V A L ( 006 002 G E T 0034260 H A S H K E Y 006 001 I N D E X 0034300 H A S H F I L E ( E Q M E M B 0034320 ' I N S E R T C A L L T Y P 0034340 E ) \r 0034360 0034400 K E Y V A L ) ) \r 0034420 ( C O N D \r 0034440 ( ( M I N U S P 0034460 K E Y V A L ) \r 0034500 ( 006 002 i f 006 001 ( E 0034520 Q M E M B ' I N S E R T C A 0034540 L L T Y P E ) \r 0034560 006 002 t h e n 0034600 006 001 ( 006 002 I N S E R T H A S H 0034620 K E Y 006 001 ( S E T Q K E Y V 0034640 A L ( I M I N U S K E Y V A 0034660 L ) ) \r 0034700 0034720 I N D E X V A L U E H A 0034740 S H F I L E ) ) ) \r 0034760 ( T ( 006 002 i f 006 0035000 001 ( E Q M E M B ' R E T R I 0035020 E V E C A L L T Y P E ) \r 0035040 0035060 006 002 t h e n 006 001 ( S E T Q 0035100 R E T F L G T ) \r 0035120 0035140 ( S E T Q R E T V A L 0035160 ( R E A D ( 006 002 f e t c h 006 0035200 001 S t r e a m 006 002 o f 006 001 0035220 H A S H F I L E ) \r 0035240 * 0035300 H A S H F I L E R D 0035320 T B L ) ) ) \r 0035340 ( 006 002 i f 006 001 ( 0035360 E Q M E M B ' R E P L A C E 0035400 C A L L T Y P E ) \r 0035420 006 002 0035440 t h e n 006 001 ( 006 002 R E P L A C 0035460 E H A S H K E Y 006 001 K E Y V A 0035500 L I N D E X V A L U E H A 0035520 S H F I L E ) \r 0035540 006 002 e l s e 0035560 i f 006 001 ( E Q M E M B ' D E 0035600 L E T E C A L L T Y P E ) \r 0035620 0035640 006 002 t h e n 006 001 ( 006 002 D 0035660 E L E T E H A S H K E Y 006 001 K 0035700 E Y V A L H A S H F I L E ) ) 0035720 \r 0035740 ( R E T U R N ( 006 002 i f 006 001 0035760 R E T F L G \r 0036000 0036020 006 002 t h e n 006 001 R E T 0036040 V A L \r 0036060 006 002 0036100 e l s e i f 006 001 K E Y V A L \r 0036120 0036140 006 002 t h 0036160 e n 006 001 T ] ) \r \r ( 006 004 M A P 0036200 H A S H F I L E 006 001 \r [ L A 0036220 M B D A ( H A S H F I L E M 0036240 A P F N D O U B L E ) 0036260 0036300 ( * P a v e l 0036320 " 2 4 - S e p - 8 6 1 2 : 3 0036340 0 " ) \r ( 006 002 w i t h 006 0036360 001 H a s h F i l e ( S E T Q 0036400 H A S H F I L E ( 006 002 G T H 0036420 A S H F I L E 006 001 H A S H F I 0036440 L E ) ) \r ( 0036460 006 002 b i n d 006 001 K E Y V A L 0036500 U E H A S H K E Y ( B O T H 0036520 _ ( I G R E A T E R P ( O 0036540 R ( N A R G S M A P F N ) \r 0036560 * 0036640 0 ) \r 0036660 * 0036720 ( 006 002 0036740 i f 006 001 D O U B L E \r 0036760 * 0037040 006 002 t h e n 006 001 2 \r 0037060 * 0037120 006 0037140 002 e l s e 006 001 1 ) ) ) 006 002 t 0037160 o 006 001 S i z e 006 002 a s 006 001 0037200 A D R 006 002 f r o m 006 001 H A S 0037220 H . H E A D E R . S I Z E \r 0037240 006 002 b y 006 0037260 001 H A S H . K E Y . S I Z E 0037300 006 002 w h e n 006 001 ( P R O G N 0037320 ( S E T F I L E P T R S t r e 0037340 a m A D R ) \r 0037360 * 0037420 ( R E A D S T B Y T E B y 0037440 t e S t r e a m ' U S E D ) ) 0037460 \r 006 002 0037500 d o 006 001 ( S E T Q H A S H K 0037520 E Y ( R E A D P T R B y t e 0037540 S t r e a m ) ) \r 0037560 ( S E T F I L 0037600 E P T R S t r e a m H A S H 0037620 K E Y ) \r 0037640 ( S E T Q K E Y ( 0037660 R E A D S t r e a m H A S H 0037700 F I L E R D T B L ) ) \r 0037720 ( 006 002 i 0037740 f 006 001 B O T H \r 0037760 006 002 t 0040000 h e n 006 001 ( S E T Q V A L U 0040020 E ( R E A D S t r e a m H 0040040 A S H F I L E R D T B L ) ) ) \r 0040060 0040100 ( 006 002 i f 006 001 D O U B L E \r 0040120 0040140 006 002 t h e n 006 001 0040160 0040200 ( * ; \r 0040220 0040240 " 0040260 T w o k e y h a s h i n g 0040300 s o s p l i t u p k e y , 0040320 u s e r f n t a k e s t w 0040340 o k e y a r g u m e n t s " 0040360 ) \r 0040400 ( 006 002 w i 0040420 t h 006 001 D o u b l e K e y ( 0040440 006 002 S P L I T K E Y 006 001 K E Y 0040460 ) \r 0040500 0040520 ( A P P L Y * M A P F N K 0040540 e y 1 K e y 2 V A L U E ) ) 0040560 \r 0040600 006 002 e l s e 006 001 ( A P P 0040620 L Y * M A P F N K E Y V A 0040640 L U E ] ) \r \r ( 006 004 O P E N H A 0040660 S H F I L E 006 001 \r [ L A M B 0040700 D A ( F I L E A C C E S S 0040720 I T E M L E N G T H % # E N T 0040740 R I E S S M A S H ) 0040760 ( * c d l " 2 1 0041000 - M a y - 8 6 1 1 : 3 0 " ) \r 0041020 [ S E T Q A C C E S S 0041040 ( 006 002 f o r 006 001 E N T R Y 0041060 006 002 i n 006 001 H A S H A C C E S 0041100 S T Y P E S 006 002 t h e r e i s 0041120 006 001 ( M E M B A C C E S S 0041140 E N T R Y ) \r 0041160 006 002 f i n 0041200 a l l y 006 001 ( R E T U R N ( 0041220 C A R E N T R Y ] \r ( 0041240 006 002 i f 006 001 ( O R I T E M L 0041260 E N G T H % # E N T R I E S 0041300 ( E Q A C C E S S ' C R E A 0041320 T E ) ) \r 006 002 t 0041340 h e n 006 001 \r 0041360 \r ( * T 0041400 h i s i s r e a l l y a 0041420 c r e a t e h a s h f i l e c 0041440 a l l , t h e o r i g i n a 0041460 l h a s h p a c k a g e u 0041500 s e d \r o 0041520 p e n h a s h f i l e f o r 0041540 b o t h ) \r \r 0041560 ( 006 002 C R E A T E H A S 0041600 H F I L E 006 001 F I L E N I L 0041620 I T E M L E N G T H % # E N 0041640 T R I E S S M A S H ) \r 0041660 006 002 e l s e 006 001 ( P R O 0041700 G [ ( H A S H F I L E ( C D 0041720 R ( A S S O C ( F U L L N A 0041740 M E F I L E ) \r 0041760 * 0042020 S Y S H A S H F I L E L S T ] 0042040 \r 0042060 [ 006 002 i f 006 001 H A S H F I 0042100 L E \r 0042120 006 002 t h e n 006 001 0042140 ( 006 002 w i t h 006 001 H a s h F 0042160 i l e H A S H F I L E ( 006 002 0042200 i f 006 001 ( E Q A C C E S S 0042220 ( G E T F I L E I N F O S t r 0042240 e a m ' A C C E S S ) ) \r 0042260 * 0042340 006 002 t h e n 006 001 ( 0042360 * T h i s i s t h e N O 0042400 - O P c a s e ) \r 0042420 * 0042500 ( R E T U R N H A S 0042520 H F I L E ] \r 0042540 [ 006 002 w i t h 006 0042560 001 H a s h F i l e ( S E T Q 0042600 H A S H F I L E ( 006 002 i f 006 0042620 001 ( 006 002 t y p e ? 006 001 H a s 0042640 h F i l e S M A S H ) \r 0042660 * 0042740 006 002 t h e n 006 001 S M A S H \r 0042760 * 0043040 006 002 e l s e 006 001 ( 006 002 c r e a 0043060 t e 006 001 H a s h F i l e ) ) ) 0043100 \r 0043120 [ S E T Q B y 0043140 t e S t r e a m ( O P E N S T 0043160 R E A M F I L E A C C E S S 0043200 ' O L D 8 ' ( ( T Y P E 0043220 B I N A R Y ] \r 0043240 ( 0043260 S E T Q % # E n t r i e s ( 0043300 R E A D P T R B y t e S t r e 0043320 a m ) ) \r 0043340 ( S E T 0043360 Q S i z e ( R E A D P T R 0043400 B y t e S t r e a m ) ) \r 0043420 0043440 ( S E T Q V a l u e T 0043460 y p e ( S E L C H A R Q ( B 0043500 I N B y t e S t r e a m ) \r 0043520 * 0043560 ( T ' T 0043600 E X T ) \r 0043620 * 0043660 ( E ' E X P R ) \r 0043700 * 0043740 ' E X P R ) ) \r 0043760 0044000 ( S E T Q I t e m 0044020 L e n g t h ( B I N B y t e 0044040 S t r e a m ) ) \r 0044060 0044100 ( S E T Q W r i t e ? ( E Q 0044120 A C C E S S ' B O T H ) ) \r 0044140 0044160 ( S E L E C T Q 0044200 ( S Y S T E M T Y P E ) \r 0044220 0044240 ( ( T E N E X 0044260 T O P S 2 0 ) \r 0044300 0044320 ( S E T Q F 0044340 i l e ( S E T Q S t r e a m 0044360 ( 006 002 w i t h 006 001 S T R E A 0044400 M B y t e S t r e a m F U L 0044420 L N A M E ) ) ) ) \r 0044440 0044460 ( S E T Q F i l e 0044500 ( F U L L N A M E ( S E T Q 0044520 S t r e a m B y t e S t r e a 0044540 m ] \r 0044560 ( R E T U R N ( 006 002 S 0044600 E T H A S H S T A T U S 006 001 H 0044620 A S H F I L E ] ) \r \r ( 006 004 P U 0044640 T H A S H F I L E 006 001 \r [ L 0044660 A M B D A ( K E Y V A L U E 0044700 H A S H F I L E K E Y 2 ) 0044720 0044740 ( * c d l 0044760 " 1 5 - M a r - 8 5 0 8 : 5 5 0045000 " ) \r ( 006 002 L O O K U P 0045020 H A S H F I L E 006 001 ( C R E A 0045040 T E K E Y K E Y K E Y 2 ) \r 0045060 V A L U E 0045100 H A S H F I L E ( 006 002 i f 006 0045120 001 V A L U E \r 0045140 0045160 006 002 t h e n 006 001 ' 0045200 ( 006 002 R E P L A C E 006 001 I N S 0045220 E R T ) \r 0045240 0045260 006 002 e l s e 006 001 ' D E L E T 0045300 E ) ) \r V A L U E ] ) \r 0045320 \r ( 006 004 P U T H A S H T E X T 006 0045340 001 \r [ L A M B D A ( K E Y 0045360 S R C F I L H A S H F I L E 0045400 S T A R T E N D ) 0045420 ( 0045440 * c d l " 2 1 - M a y - 8 6 0045460 0 8 : 5 4 " ) \r ( S E 0045500 T Q H A S H F I L E ( 006 002 G 0045520 T H A S H F I L E 006 001 H A S H 0045540 F I L E T ) ) \r ( P R 0045560 O G ( H A S H T E X T P T R ) 0045600 \r [ 006 002 w i 0045620 t h 006 001 H a s h F i l e H A 0045640 S H F I L E ( S E T F I L E P 0045660 T R S t r e a m - 1 ) \r 0045700 ( 006 0045720 002 w i t h 006 001 H a s h T e x t 0045740 P t r ( S E T Q H A S H T E 0045760 X T P T R ( 006 002 c r e a t e 006 0046000 001 H a s h T e x t P t r \r 0046020 * 0046100 S t a r t _ 0046120 ( G E T E O F P T R S t r e 0046140 a m ) ) ) \r 0046160 ( C O P 0046200 Y B Y T E S S R C F I L S t 0046220 r e a m S T A R T E N D ) \r 0046240 0046260 ( S E T Q E n d 0046300 ( G E T E O F P T R S t r e a 0046320 m ] \r ( R E 0046340 T U R N ( 006 002 P U T H A S H F 0046360 I L E 006 001 K E Y H A S H T E 0046400 X T P T R H A S H F I L E ] ) 0046420 \r \r ( 006 004 R E H A S H F I L E 006 0046440 001 \r [ L A M B D A ( H A S 0046460 H F I L E N E W N A M E V A 0046500 L U E T Y P E ) 0046520 ( 0046540 * c d l " 2 1 - M a y - 8 6 0046560 0 8 : 2 3 " ) \r ( S E 0046600 T Q H A S H F I L E ( 006 002 G 0046620 T H A S H F I L E 006 001 H A S H 0046640 F I L E ) ) \r ( P R O G 0046660 [ [ N A M E ( O R N E W N 0046700 A M E ( P A C K F I L E N A M 0046720 E ' V E R S I O N N I L ' 0046740 B O D Y ( 006 002 H A S H F I L E 0046760 N A M E 006 001 H A S H F I L E ] 0047000 \r ( A C C 0047020 E S S ( 006 002 H A S H F I L E P 0047040 R O P 006 001 H A S H F I L E ' 0047060 A C C E S S ] \r 0047100 \r ( * 0047120 I f r e h a s h g a g = T 0047140 t h e n p r i n t o u t 0047160 o l d a n d n e w f i l e 0047200 ) \r \r [ 006 002 0047220 w i t h 006 001 H a s h F i l e 0047240 H A S H F I L E ( 006 002 i f 006 001 0047260 ( N O T R E H A S H G A G ) 0047300 \r 0047320 0047340 006 002 t h e n 006 001 0047360 ( p r i n t o u t N I L " R 0047400 e h a s h i n g " % , F i l 0047420 e " . . . " ) ) \r 0047440 ( S E T 0047460 Q N A M E ( 006 002 C O P Y H A 0047500 S H F I L E 006 001 H A S H F I L 0047520 E N A M E I t e m C o p y F 0047540 n ( O R V A L U E T Y P E 0047560 V a l u e T y p e ] \r 0047600 ( 006 002 C L O S E H A S 0047620 H F I L E 006 001 H A S H F I L E 0047640 ) \r ( 006 002 w 0047660 i t h 006 001 H a s h F i l e ( 0047700 006 002 O P E N H A S H F I L E 006 001 0047720 N A M E A C C E S S N I L 0047740 N I L H A S H F I L E ) \r 0047760 ( 0050000 006 002 i f 006 001 ( N O T R E H A 0050020 S H G A G ) \r 0050040 006 002 t h e 0050060 n 006 001 ( p r i n t o u t N I 0050100 L F i l e T ) ) ) \r 0050120 ( R E T U R N H A 0050140 S H F I L E ] ) \r ) \r \r \r \r 006 004 0050160 ( * ; " I n t e r n a l F 0050200 u n c t i o n s " ) 006 001 \r \r ( D 0050220 E F I N E Q \r \r ( 006 004 D E L E T 0050240 E H A S H K E Y 006 001 \r [ L A 0050260 M B D A ( H A S H K E Y H A 0050300 S H F I L E ) 0050320 0050340 ( * c d l " 0050360 2 1 - M a y - 8 6 1 9 : 5 7 " 0050400 ) \r ( 006 002 w i t h 006 001 0050420 H a s h F i l e H A S H F I L 0050440 E ( S E T F I L E P T R S t 0050460 r e a m 0 ) \r 0050500 ( P R I N T P T R B y t e 0050520 S t r e a m ( S E T Q % # E 0050540 n t r i e s ( S U B 1 % # E 0050560 n t r i e s ) ) ) \r 0050600 ( S E T F I L E P T R 0050620 S t r e a m H A S H K E Y ) \r 0050640 ( P R I N T 0050660 S T B Y T E B y t e S t r e a 0050700 m ' D E L E T E D ) \r 0050720 ( F O R C E O U T P 0050740 U T S t r e a m ] ) \r \r ( 006 004 0050760 F I N D 1 S T P R I M E 006 001 \r 0051000 [ L A M B D A ( N ) 0051020 * 0051060 ( * c 0051100 d l " 1 1 - A u g - 8 3 0 8 0051120 : 1 2 " ) \r ( 006 002 f i n 0051140 d 006 001 P 006 002 f r o m 006 001 ( 0051160 L O G O R N 1 ) 006 002 b y 006 0051200 001 2 006 002 s u c h t h a t 006 001 0051220 ( 006 002 f o r 006 001 I 006 002 f r 0051240 o m 006 001 3 006 002 b y 006 001 2 \r 0051260 * 0051320 006 002 0051340 n e v e r 006 001 ( A N D ( I L 0051360 E S S P I P ) \r 0051400 * 0051460 ( Z E R O P ( I R E M A 0051500 I N D E R P I ) ) ) \r 0051520 * 0051560 006 002 r e p 0051600 e a t u n t i l 006 001 ( I L E S 0051620 S P P ( I T I M E S I I 0051640 ] ) \r \r ( 006 004 G E T H A S H K E 0051660 Y 006 001 \r [ L A M B D A ( I 0051700 N D E X H A S H F I L E D E 0051720 L O K ? H A S H K E Y ) 0051740 0051760 ( * P a v e l " 2 4 - S e 0052000 p - 8 6 1 2 : 3 0 " ) \r 0052020 ( 006 002 w i t h 006 001 H a s h F 0052040 i l e H A S H F I L E ( 006 002 0052060 b i n d 006 001 P R O B E D E L 0052100 E T E D ? 006 002 f i r s t 006 001 0052120 ( S E T Q H A S H K E Y ( 006 0052140 002 M A K E H A S H K E Y 006 001 I 0052160 N D E X S i z e ) ) \r 0052200 * 0052260 ( S E T F I L E P T R S 0052300 t r e a m H A S H K E Y ) \r 0052320 0052340 006 002 0052360 u n t i l 006 001 ( S E L C H A R 0052400 Q ( B I N B y t e S t r e a 0052420 m ) \r 0052440 0052460 ( D 0052500 ( S E T Q D E L E T E D ? T 0052520 ) \r 0052540 0052560 D 0052600 E L O K ? ) \r 0052620 * 0052660 ( N U L L ' F R E E ) \r 0052700 * 0052740 N I L ) \r 0052760 0053000 006 002 d o 0053020 006 001 ( 006 002 i f 006 001 D E L E T 0053040 E D ? \r 0053060 0053100 006 002 t h e n 0053120 006 001 ( S E T Q D E L E T E D 0053140 ? N I L ) \r 0053160 0053200 006 002 e l s 0053220 e 006 001 ( S E T F I L E P T R 0053240 S t r e a m ( R E A D P T R 0053260 B y t e S t r e a m ) ) \r 0053300 * 0053340 ( 006 002 i f 006 001 ( E 0053360 Q U A L I N D E X ( R E A D 0053400 S t r e a m H A S H F I L E 0053420 R D T B L ) ) \r 0053440 * 0053500 006 002 t h e n 006 001 ( R 0053520 E T U R N H A S H K E Y ) ) ) 0053540 \r 0053560 0053600 ( 006 002 i f 006 001 ( N U L L 0053620 P R O B E ) \r 0053640 0053660 006 002 0053700 t h e n 006 001 ( S E T Q P R O 0053720 B E ( 006 002 G E T P R O B E 006 001 0053740 I N D E X ) ) ) \r 0053760 0054000 ( S E T 0054020 Q H A S H K E Y ( R E H A S 0054040 H K E Y H A S H K E Y P R O 0054060 B E S i z e ) ) \r 0054100 0054120 ( S E T 0054140 F I L E P T R S t r e a m H 0054160 A S H K E Y ) 006 002 f i n a l l 0054200 y 006 001 ( R E T U R N ( S E T 0054220 Q H A S H K E Y \r 0054240 * 0054340 ( I M I N U S 0054360 H A S H K E Y ] ) \r \r ( 006 004 G 0054400 E T P R O B E 006 001 \r [ L A M 0054420 B D A ( K E Y ) 0054440 * 0054500 ( * c d l " 1 0054520 5 - M a r - 8 5 0 9 : 0 6 " ) 0054540 \r \r 0054560 ( * G e t t h e 0054600 v a l u e t o p r o b e 0054620 b y . P r o b e l s t c o n 0054640 t a i n s a l l t h e p r 0054660 o b e p r i m e s . ) \r \r 0054700 ( C A R ( F N T H P R O 0054720 B E L S T ( A D D 1 ( L O G 0054740 A N D 3 1 ( N T H C H A R C 0054760 O D E K E Y ( A D D 1 ( L 0055000 R S H ( N C H A R S K E Y ) 0055020 \r 0055040 * 0055120 1 ] ) \r \r ( 006 004 G 0055140 T H A S H F I L E 006 001 \r [ L 0055160 A M B D A ( H A S H F I L E 0055200 W R I T E ) 0055220 0055240 ( * c d l 0055260 " 1 8 - M a r - 8 5 0 9 : 5 5 0055300 " ) \r ( 006 002 i f 006 001 ( 0055320 N U L L H A S H F I L E ) \r 0055340 006 002 t h e n 006 001 0055360 ( S E T Q H A S H F I L E S 0055400 Y S H A S H F I L E ) ) 0055420 ( * ; ; " R e t u 0055440 r n h a s h f i l e d a t u 0055460 m f o r H F , w h i c h 0055500 i s a f i l e n a m e o r 0055520 a h a s h f i l e d a t u 0055540 m . S p e c i a l c a s e 0055560 s : i f H A S H F I L E i 0055600 s a f i l e n a m e w h i 0055620 c h i s n o t o p e n , 0055640 i t i s o p e n e d ; i 0055660 f H A S H F I L E i s a n 0055700 i n v a l i d a t e d h a s 0055720 h f i l e d a t u m ( b e c 0055740 a u s e i t w a s c l o s 0055760 e d ) , i t i s r e o p e 0056000 n e d ; i f H A S H F I L 0056020 E i s a l r e a d y o p e 0056040 n f o r r e a d , b u t 0056060 W R I T E i s s e t , w i 0056100 l l a t t e m p t t o c l 0056120 o s e a n d t h e n o p e 0056140 n f o r w r i t e " ) \r 0056160 ( 006 002 i f 006 001 ( 006 002 H A S 0056200 H F I L E P 006 001 H A S H F I L 0056220 E W R I T E ) \r 0056240 006 002 t h e n 006 001 H A S H F I 0056260 L E \r 006 002 e l s e i 0056300 f 006 001 ( 006 002 t y p e ? 006 001 H 0056320 a s h F i l e H A S H F I L E 0056340 ) \r 006 002 t h e n 0056360 006 001 ( 006 002 O P E N H A S H F I 0056400 L E 006 001 ( 006 002 f e t c h 006 001 0056420 F i l e 006 002 o f 006 001 H A S H 0056440 F I L E ) \r 0056460 W R I T E 0056500 N I L N I L H A S H F I L E 0056520 ) \r 006 002 e l s e i f 0056540 006 001 ( L I T A T O M H A S H 0056560 F I L E ) \r 006 002 0056600 t h e n 006 001 ( 006 002 O P E N H A 0056620 S H F I L E 006 001 H A S H F I L 0056640 E W R I T E ) \r 006 0056660 002 e l s e 006 001 ( H E L P H A 0056700 S H F I L E " N O T A H A 0056720 S H F I L E " ] ) \r \r ( 006 004 H A 0056740 S H F I L E S P L S T 1 006 001 \r 0056760 [ L A M B D A ( H A S H F I 0057000 L E X W O R D ) 0057020 0057040 ( * c 0057060 d l " 1 5 - M a r - 8 5 0 9 0057100 : 1 0 " ) \r ( 006 002 D E C 0057120 L A R E 006 001 ( S P E C V A R S 0057140 X W O R D ) ) \r ( 006 002 0057160 M A P H A S H F I L E 006 001 H A 0057200 S H F I L E ( F U N C T I O N 0057220 ( L A M B D A ( K E Y ) \r 0057240 * 0057300 ( 006 002 i f 006 001 ( O R 0057320 ( N U L L X W O R D ) \r 0057340 * 0057400 ( S T R 0057420 P O S X W O R D K E Y 1 0057440 N I L T ) ) \r 0057460 * 0057520 006 002 t h e n 006 001 ( P R O D 0057540 U C E K E Y ] ) \r \r ( 006 004 I N 0057560 S E R T H A S H K E Y 006 001 \r 0057600 [ L A M B D A ( H A S H K E Y 0057620 I N D E X V A L U E H A S 0057640 H F I L E ) 0057660 ( * c d 0057700 l " 2 1 - M a y - 8 6 0 9 : 0057720 3 3 " ) \r ( 006 002 w i t h 0057740 006 001 H a s h F i l e H A S H 0057760 F I L E ( 006 002 i f 006 001 ( G R 0060000 E A T E R P % # E n t r i e s 0060020 ( T I M E S S i z e H A S 0060040 H L O A D F A C T O R ) ) \r 0060060 0060100 006 002 0060120 t h e n 006 001 ( 006 002 R E H A S H 0060140 F I L E 006 001 H A S H F I L E ) 0060160 ) \r ( S E T 0060200 F I L E P T R S t r e a m 0 0060220 ) \r ( S E T 0060240 Q % # E n t r i e s ( A D D 0060260 1 % # E n t r i e s ) ) \r 0060300 ( P R I N T P T 0060320 R B y t e S t r e a m % # E 0060340 n t r i e s ) \r 0060360 ( 006 002 R E P L A C E H A S H 0060400 K E Y 006 001 H A S H K E Y I N 0060420 D E X V A L U E H A S H F I 0060440 L E ] ) \r \r ( 006 004 M A K E H A S 0060460 H K E Y 006 001 \r [ L A M B D A 0060500 ( K E Y R A N G E ) 0060520 * 0060560 ( * c d l " 2 1 - M 0060600 a y - 8 6 1 1 : 2 8 " ) \r 0060620 ( I P L U S H A S H . H E 0060640 A D E R . S I Z E ( I T I M E 0060660 S ( 006 002 f o r 006 001 C H A R C 0060700 O D E 006 002 i n 006 001 ( D C H C 0060720 O N K E Y H A S H S C R A T 0060740 C H L S T ) \r 0060760 0061000 006 002 0061020 b i n d 006 001 ( I N D E X _ 0061040 1 ) 006 002 d o 006 001 ( S E T Q 0061060 I N D E X ( I M O D ( I T I 0061100 M E S I N D E X C H A R C O 0061120 D E ) \r 0061140 * 0061240 R A N G E ) ) \r 0061260 * 0061320 006 002 f i n a l l y 006 001 ( R E T 0061340 U R N I N D E X ) ) \r 0061360 0061400 H 0061420 A S H . K E Y . S I Z E ] ) \r \r 0061440 ( 006 004 R E P L A C E H A S H K E 0061460 Y 006 001 \r [ L A M B D A ( H 0061500 A S H K E Y I N D E X V A L 0061520 U E H A S H F I L E ) 0061540 0061560 ( * b v m % : " 1 - N o 0061600 v - 8 6 2 2 : 2 8 " ) \r 0061620 ( 006 002 w i t h 006 001 H a s h F 0061640 i l e H A S H F I L E ( S E 0061660 T F I L E P T R S t r e a m 0061700 H A S H K E Y ) \r 0061720 ( P R I N T S T B Y T E 0061740 B y t e S t r e a m ' U S E D 0061760 ) \r ( P R I 0062000 N T P T R B y t e S t r e a m 0062020 ( G E T E O F P T R S t r e 0062040 a m ) ) \r ( 0062060 S E T F I L E P T R S t r e a 0062100 m - 1 ) \r 0062120 ( P R I N 2 I N D E X S t r 0062140 e a m H A S H F I L E R D T B 0062160 L ) \r ( S P 0062200 A C E S 1 S t r e a m ) \r 0062220 ( P R I N T 0062240 V A L U E S t r e a m H A S 0062260 H F I L E R D T B L ) \r 0062300 ( F O R C E O U T P 0062320 U T S t r e a m ] ) \r \r ( 006 004 0062340 S E T H A S H S T A T U S 006 001 \r 0062360 [ L A M B D A ( H A S H F 0062400 I L E ) 0062420 0062440 ( * 0062460 c d l " 2 1 - M a y - 8 6 0 0062500 9 : 1 3 " ) \r ( 006 002 w i 0062520 t h 006 001 H a s h F i l e H A 0062540 S H F I L E \r 0062560 \r ( * 0062600 F i x d a t a s t r u c t u 0062620 r e s t o k n o w a b o u 0062640 t t h i s f i l e s o t 0062660 h e y g e t u p d a t e d 0062700 w h e n i t \r 0062720 c l o s e s ) \r \r 0062740 ( W H E N C L O S E 0062760 S t r e a m ' B E F O R E 0063000 ( F U N C T I O N H A S H B E 0063020 F O R E C L O S E ) ) \r 0063040 ( S E T Q V a l i 0063060 d ? T ) \r 0063100 ( 006 002 p u s h 006 001 S Y S H A S 0063120 H F I L E L S T ( C O N S F 0063140 i l e H A S H F I L E ) ) ) \r 0063160 ( S E T Q S Y S H A S 0063200 H F I L E H A S H F I L E ] ) 0063220 \r \r ( 006 004 S P L I T K E Y 006 001 \r 0063240 [ L A M B D A ( K E Y ) 0063260 * 0063320 ( * 0063340 c d l " 1 4 - M a r - 8 5 1 0063360 6 : 5 5 " ) \r ( P R O G 0063400 ( ( P T R ( S T R P O S L 0063420 H A S H B I T T A B L E K E Y 0063440 ) ) ) \r ( R 0063460 E T U R N ( 006 002 i f 006 001 P T 0063500 R \r 0063520 006 002 t h e n 006 001 0063540 ( F R P L N O D E H A S H S 0063560 C R A T C H C O N S C E L L ( 0063600 S U B A T O M K E Y 1 ( S 0063620 U B 1 P T R ) ) \r 0063640 0063660 ( S U B 0063700 A T O M K E Y ( A D D 1 P 0063720 T R ) ) ) \r 0063740 006 002 e l s e 0063760 006 001 ( F R P L N O D E H A S 0064000 H S C R A T C H C O N S C E L L 0064020 K E Y N I L ] ) \r ) \r \r \r \r 0064040 006 004 ( * ; " S y s t e m V 0064060 a r i a b l e s " ) 006 001 \r \r \r ( 0064100 R P A Q ? 006 002 H F G R O W T H 0064120 F A C T O R 006 001 3 ) \r \r ( R P 0064140 A Q ? 006 002 H A S H L O A D F A 0064160 C T O R 006 001 . 8 7 5 ) \r \r ( R 0064200 P A Q ? 006 002 H A S H F I L E D 0064220 E F A U L T S I Z E 006 001 5 1 2 0064240 ) \r \r ( R P A Q ? 006 002 H A S H 0064260 S C R A T C H C O N S C E L L 006 0064300 001 ( C O N S ) ) \r \r ( R P A Q 0064320 ? 006 002 H A S H T E X T C H A R 0064340 006 001 ( C H A R A C T E R ( C 0064360 H A R C O D E ^ A ) ) ) \r \r ( 0064400 R P A Q ? 006 002 H A S H F I L E 0064420 R D T B L 006 001 ( C O P Y R E A 0064440 D T A B L E ' O R I G ) ) \r \r 0064460 ( R P A Q ? 006 002 H A S H S C R 0064500 A T C H L S T 006 001 ( C O N S T 0064520 A N T ( t o 4 0 c o l l e 0064540 c t N I L ) ) ) \r \r ( R P A Q 0064560 ? 006 002 H A S H B I T T A B L E 0064600 006 001 ( M A K E B I T T A B L E 0064620 ( L I S T H A S H T E X T C 0064640 H A R ) ) ) \r \r ( R P A Q ? 006 0064660 002 R E H A S H G A G 006 001 T ) \r 0064700 \r ( R P A Q ? 006 002 S Y S H A S 0064720 H F I L E 006 001 N I L ) \r \r ( R 0064740 P A Q ? 006 002 S Y S H A S H F I 0064760 L E L S T 006 001 N I L ) \r \r ( R 0065000 P A Q Q 006 002 P R O B E L S T 006 0065020 001 \r ( 1 3 5 0065040 7 1 1 1 1 1 3 1 7 1 0065060 7 1 9 2 3 2 3 2 9 2 9 0065100 2 9 3 1 3 7 3 7 3 7 0065120 4 1 4 1 4 3 4 7 4 7 5 0065140 3 5 3 5 3 5 9 5 9 5 9 0065160 6 1 6 7 ) ) \r \r ( R P A Q Q 0065200 006 002 H A S H A C C E S S T Y P 0065220 E S 006 001 ( ( I N P U T R E A 0065240 D O L D N I L R E T R I E 0065260 V E ) \r 0065300 ( B O T 0065320 H W R I T E O U T P U T T 0065340 I N S E R T D E L E T E R 0065360 E P L A C E ) \r 0065400 0065420 ( C R E A T E D O U B L E N 0065440 U M B E R S T R I N G P R I 0065460 N T F U L L P R I N T ) ) ) \r 0065500 \r ( A D D T O V A R 006 002 A F T 0065520 E R S Y S O U T F O R M S 006 001 0065540 ( C L E A R H A S H F I L E S ) 0065560 ) \r ( D E F O P T I M I Z E R 0065600 006 002 G E T H A S H F I L E 006 001 0065620 ( & R E S T X ) ( 006 002 i f 006 0065640 001 ( C A D D R X ) \r 0065660 * 0065720 006 002 t h e n 006 001 ' I G 0065740 N O R E M A C R O \r 0065760 * 0066020 006 002 e l s e 006 001 ` ( L O O K U 0066040 P H A S H F I L E , ( C A R 0066060 X ) N I L , ( C A D R X ) 0066100 ' R E T R I E V E ) ) ) \r \r ( 0066120 D E F O P T I M I Z E R 006 002 H 0066140 A S H F I L E N A M E 006 001 ( H 0066160 A S H F I L E ) ` ( H A S H F 0066200 I L E P R O P , H A S H F I L 0066220 E ' N A M E ) ) \r \r \r \r \r 006 004 0066240 ( * ; " S y s t e m M a c 0066260 r o s " ) 006 001 \r \r ( D E C L A R 0066300 E % : E V A L @ C O M P I L E 0066320 D O N T C O P Y \r ( D E C L 0066340 A R E % : E V A L @ C O M P I 0066360 L E \r \r [ P U T P R O P S A 0066400 N Y E Q M A C R O ( L A M B 0066420 D A ( X Y ) \r 0066440 0066460 ( f o r Z i n 0066500 X t h e r e i s ( E Q M E M 0066520 B Z Y ] \r [ P U T P R O P S 0066540 C R E A T E K E Y M A C R O 0066560 ( L A M B D A ( K E Y 1 K 0066600 E Y 2 ) \r 0066620 0066640 ( i f ( N U L L 0066660 K E Y 2 ) \r 0066700 0066720 t h e n 0066740 K E Y 1 e l s e ( P A C K * 0066760 K E Y 1 H A S H T E X T C H 0067000 A R K E Y 2 ] \r [ P U T P R O 0067020 P S \r P R I N T P T R M A C 0067040 R O \r ( X \r ` ( P R O G N 0067060 \r , @ ( f o r I f r 0067100 o m 2 t o 0 b y - 1 0067120 c o l l e c t \r 0067140 ` ( B O U T , ( C A R 0067160 X ) ( L O G A N D 2 5 5 , 0067200 ( i f ( Z E R O P I ) \r 0067220 * 0067260 t h e n \r 0067300 * 0067340 ( C A D R 0067360 X ) \r 0067400 * 0067440 e l s e \r 0067460 * 0067520 ` ( R S H , ( C A D R X ) 0067540 , ( I T I M E S 8 I ] \r [ 0067560 P U T P R O P S P R I N T S T 0067600 B Y T E M A C R O ( X ` ( 0067620 B O U T , ( C A R X ) , ( 0067640 S E L E C T Q ( C A D R ( C 0067660 A D R X ) ) \r 0067700 * 0067740 ( 0067760 ( U U S E D ) \r 0070000 * 0070060 ( C H A R C O D E U ) ) \r 0070100 * 0070160 ( ( D D E L E T E 0070200 D ) \r 0070220 * 0070260 ( C H A R 0070300 C O D E D ) ) \r 0070320 * 0070400 ( ( F F R E E ) \r 0070420 * 0070500 ( C H A R C O D E F ) ) \r 0070520 * 0070600 N I L ] \r [ P U T 0070620 P R O P S \r R E A D P T R M 0070640 A C R O \r ( X ` ( I P L U S 0070660 , @ ( f o r I f r o m 2 0070700 t o 0 b y - 1 c o l l 0070720 e c t ( i f ( Z E R O P I 0070740 ) \r 0070760 * 0071020 t h e n \r 0071040 * 0071100 ` ( B 0071120 I N , ( C A R X ) ) e l s 0071140 e \r 0071160 * 0071220 ` ( L L S H ( B I N 0071240 , ( C A R X ) ) \r 0071260 * 0071340 , ( I T I M E S 8 0071360 I ] \r [ P U T P R O P S R E A 0071400 D S T B Y T E M A C R O ( X 0071420 ` ( E Q ( B I N , ( C A R 0071440 X ) ) \r 0071460 0071500 ( C H A R C O D 0071520 E , ( S E L E C T Q ( C A D 0071540 R ( C A D R X ) ) \r 0071560 * 0071640 ( F R E E ' N U L L ) \r 0071660 * 0071740 ( U S E D ' U ) \r 0071760 * 0072040 ( D E L E T E D ' D ) \r 0072060 * 0072140 N I L ] \r [ P U T P R O 0072160 P S R E H A S H K E Y M A C 0072200 R O ( L A M B D A ( H K E Y 0072220 P R O B E R A N G E ) \r 0072240 0072260 ( 0072300 * ; ; " T h e r e i s a 0072320 s l i g h t c o n c e p t u 0072340 a l g l i t c h h e r e i 0072360 n t h a t w e s h o u l d 0072400 s u b t r a c t o f f H A 0072420 S H . H E A D E R . S I Z E f 0072440 r o m H K E Y b u t i t 0072460 w o u l d a f f e c t e x i 0072500 s t i n g h a s h f i l e s 0072520 a n d d o e s n o t c a u 0072540 s e a n y r e a l e r r o 0072560 r d u e t o t h e I M O 0072600 D " \r 0072620 0072640 ) \r 0072660 0072700 ( I P L U S 0072720 H A S H . H E A D E R . S I Z 0072740 E ( I T I M E S ( I M O D 0072760 ( I P L U S P R O B E ( I Q 0073000 U O T I E N T H K E Y \r 0073020 * 0073140 H A S H . K E Y . S 0073160 I Z E \r 0073200 * 0073300 ) 0073320 ) \r 0073340 * 0073420 R A N G E ) \r 0073440 * 0073540 H A S H . K E Y . S I Z E ] \r ) 0073560 \r \r ( D E C L A R E % : E V A 0073600 L @ C O M P I L E \r \r ( A R R A 0073620 Y R E C O R D 006 002 H a s h F i 0073640 l e 006 001 ( F i l e S t r e a 0073660 m S i z e % # E n t r i e s 0073700 V a l u e T y p e I t e m L 0073720 e n g t h V a l i d ? W r i 0073740 t e ? I t e m C o p y F n \r 0073760 0074000 B y t e 0074020 S t r e a m ) ) \r \r ( T Y P E R 0074040 E C O R D 006 002 H a s h T e x t 0074060 P t r 006 001 ( S t a r t . E 0074100 n d ) ) \r \r ( R E C O R D 006 002 0074120 H a s h F i l e E n t r y 006 001 0074140 ( F I L E . H A S H F I L E 0074160 ) ) \r \r ( R E C O R D 006 002 D o 0074200 u b l e K e y 006 001 ( K e y 1 0074220 . K e y 2 ) ) \r ) \r \r ( D E C 0074240 L A R E % : E V A L @ C O M P 0074260 I L E \r \r ( R P A Q Q 006 002 H 0074300 A S H . H E A D E R . S I Z E 006 0074320 001 8 ) \r \r ( R P A Q Q 006 002 H 0074340 A S H . K E Y . S I Z E 006 001 4 0074360 ) \r \r ( C O N S T A N T S ( H 0074400 A S H . H E A D E R . S I Z E 0074420 8 ) \r ( H A S H . 0074440 K E Y . S I Z E 4 ) ) \r ) \r \r 0074460 ( D E C L A R E % : D O E V A 0074500 L @ C O M P I L E D O N T C O 0074520 P Y \r \r ( G L O B A L V A R S 0074540 H F G R O W T H F A C T O R H 0074560 A S H L O A D F A C T O R H A 0074600 S H F I L E D E F A U L T S I Z 0074620 E H A S H S C R A T C H C O N 0074640 S C E L L H A S H T E X T C H 0074660 A R \r H A S H S 0074700 C R A T C H L S T H A S H B I 0074720 T T A B L E S Y S H A S H F I 0074740 L E S Y S H A S H F I L E L S 0074760 T P R O B E L S T H A S H A 0075000 C C E S S T Y P E S H A S H F 0075020 I L E R D T B L \r 0075040 M A X . I N T E G E R ) \r ) \r 0075060 \r ( D E C L A R E % : D O E V 0075100 A L @ C O M P I L E D O N T C 0075120 O P Y \r \r ( G L O B A L V A R S 0075140 H A S H . H E A D E R . S I Z 0075160 E H A S H . K E Y . S I Z E ) 0075200 \r ) \r \r ( D E C L A R E % : D 0075220 O E V A L @ C O M P I L E D O 0075240 N T C O P Y \r \r ( S P E C V A R 0075260 S R E H A S H G A G ) \r ) \r \r 0075300 ( D E C L A R E % : D O N T E 0075320 V A L @ L O A D D O E V A L @ 0075340 C O M P I L E D O N T C O P Y 0075360 \r ( B L O C K % : L O O K U P 0075400 H A S H F I L E B L O C K ( E 0075420 N T R I E S L O O K U P H A S 0075440 H F I L E G E T H A S H F I L 0075460 E P U T H A S H F I L E ) \r 0075500 L O O K U P H A S H 0075520 F I L E G E T H A S H F I L E 0075540 P U T H A S H F I L E D E L 0075560 E T E H A S H K E Y G E T H A 0075600 S H K E Y G E T P R O B E I 0075620 N S E R T H A S H K E Y \r 0075640 M A K E H A S H K E Y 0075660 R E P L A C E H A S H K E Y ) 0075700 \r ( B L O C K % : O P E N H A 0075720 S H F I L E B L O C K ( E N T 0075740 R I E S C R E A T E H A S H F 0075760 I L E O P E N H A S H F I L E 0076000 ) \r C R E A T E H 0076020 A S H F I L E O P E N H A S H 0076040 F I L E F I N D 1 S T P R I M 0076060 E S E T H A S H S T A T U S ) 0076100 \r ( B L O C K % : M A P H A S 0076120 H F I L E B L O C K ( E N T R 0076140 I E S C O L L E C T K E Y S 0076160 C O P Y H A S H F I L E C O P 0076200 Y H A S H I T E M H A S H F I 0076220 L E S P L S T M A P H A S H F 0076240 I L E \r 0076260 0076300 R E H A S H F I L E 0076320 ) \r ( S P E C V A 0076340 R S R E H A S H G A G ) \r 0076360 C O L L E C T K E Y S 0076400 C O P Y H A S H F I L E C O 0076420 P Y H A S H I T E M H A S H F 0076440 I L E S P L S T H A S H F I L 0076460 E S P L S T 1 M A P H A S H F 0076500 I L E R E H A S H F I L E \r 0076520 S P L I T K E Y ) 0076540 \r ) \r ) \r \r ( P U T P R O P S 0076560 006 002 H A S H F I L E T Y P E 006 0076600 001 C L : C O M P I L E - F I L 0076620 E ) \r ( P U T P R O P S H A S 0076640 H C O P Y R I G H T ( " C h 0076660 r i s t o p h e r L a n e a 0076700 n d X e r o x C o r p o r a 0076720 t i o n " 1 9 8 4 1 9 8 5 0076740 1 9 8 6 ) ) \r ( D E C L A R E % 0076760 : D O N T C O P Y \r ( F I 0077000 L E M A P ( N I L ( 3 6 6 4 0077020 2 0 5 8 6 ( C L E A R H A S 0077040 H F I L E S 3 6 7 4 . 4 5 0077060 7 4 ) ( C L O S E H A S H F I 0077100 L E 4 5 7 6 . 5 1 3 5 ) 0077120 ( C O L L E C T K E Y S 5 1 3 0077140 7 \r . 6 3 9 3 ) ( C O P Y 0077160 H A S H F I L E 6 3 9 5 . 0077200 7 6 1 5 ) ( C O P Y H A S H I 0077220 T E M 7 6 1 7 . 8 3 6 9 ) 0077240 ( C R E A T E H A S H F I L E 0077260 8 3 7 1 . 1 0 8 6 6 ) ( 0077300 \r G E T H A S H F I L E 1 0 8 0077320 6 8 . 1 1 0 5 2 ) ( G E T 0077340 H A S H T E X T 1 1 0 5 4 . 0077360 1 1 4 5 3 ) ( H A S H B E F 0077400 O R E C L O S E 1 1 4 5 5 . 0077420 1 2 4 0 9 ) ( H A S H F I L 0077440 E D A T A \r 1 2 4 1 1 . 1 0077460 2 6 1 8 ) ( H A S H F I L E N 0077500 A M E 1 2 6 2 0 . 1 2 7 6 0077520 3 ) ( H A S H F I L E P 1 2 0077540 7 6 5 . 1 3 2 5 7 ) ( H A 0077560 S H F I L E P R O P 1 3 2 5 9 0077600 . 1 3 8 3 4 ) ( \r H A S H 0077620 F I L E S P L S T 1 3 8 3 6 0077640 . 1 4 1 8 1 ) ( L O O K U P 0077660 H A S H F I L E 1 4 1 8 3 . 0077700 1 5 4 8 0 ) ( M A P H A S H 0077720 F I L E 1 5 4 8 2 . 1 6 8 0077740 0 5 ) ( O P E N H A S H F I L 0077760 E \r 1 6 8 0 7 . 1 8 8 4 1 0100000 ) ( P U T H A S H F I L E 1 0100020 8 8 4 3 . 1 9 1 5 1 ) ( P 0100040 U T H A S H T E X T 1 9 1 5 3 0100060 . 1 9 7 2 8 ) ( R E H A S 0100100 H F I L E 1 9 7 3 0 . 2 0 0100120 5 8 4 ) ) ( \r 2 0 6 2 2 2 6 0100140 6 5 2 ( D E L E T E H A S H K 0100160 E Y 2 0 6 3 2 . 2 0 9 7 1 0100200 ) ( F I N D 1 S T P R I M E 0100220 2 0 9 7 3 . 2 1 4 1 0 ) ( 0100240 G E T H A S H K E Y 2 1 4 1 2 0100260 . 2 2 7 7 8 ) ( \r G E T P 0100300 R O B E 2 2 7 8 0 . 2 3 1 0100320 3 0 ) ( G T H A S H F I L E 0100340 2 3 1 3 2 . 2 4 0 2 5 ) ( 0100360 H A S H F I L E S P L S T 1 2 0100400 4 0 2 7 . 2 4 4 2 5 ) ( I 0100420 N S E R T H A S H K E Y 2 4 4 0100440 2 7 \r . 2 4 8 6 8 ) ( M A 0100460 K E H A S H K E Y 2 4 8 7 0 0100500 . 2 5 3 7 4 ) ( R E P L A C 0100520 E H A S H K E Y 2 5 3 7 6 . 0100540 2 5 8 1 9 ) ( S E T H A S H 0100560 S T A T U S 2 5 8 2 1 . 2 0100600 6 2 5 6 ) ( \r S P L I T K E Y 0100620 2 6 2 5 8 . 2 6 6 5 0 ) ) 0100640 ) ) ) \r S T O P \r 0100651