$ 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