$ od -c -N 50000 [Ivy]<Fiala>BitBlt>MOTT>GYPSYSOURCES.DM!1 0000000 377 \0 \0 G B R A V O . S R \0 376 001 \0 0000020 F 240 / / B R A V O / 0000040 / G B R A V O . S R a d d e 0000060 d c p c t o m a k e - 1 0000100 < 0 < 1 < . . . < 6 5 5 3 4 \r \r 0000120 g e t " B R A V O . D F " / 0000140 / * * \r \r / / I n c o m i n 0000160 g P r o c e d u r e s \r \r e x 0000200 t e r n a l [ \r \t i n i t ; \r 0000220 \t e r r h l t ; \r \t I N I T A L 0000240 T O I O \r \t S e t E n d C o d e 0000260 \r \t ] ; \r \r / / I n c o m i n 0000300 g S t a t i c s \r \r \r / / O 0000320 u t g o i n g P r o c e d u r 0000340 e s \r \r e x t e r n a l [ \r \t 0000360 a r r a y ; \r \t a b s ; \r \t ] ; 0000400 \r \r / / O u t g o i n g S t 0000420 a t 376 001 \0 r J i c s \r \r e x t e 0000440 r n a l [ \r \t m u l t \r \t u m 0000460 a x \r \t u m i n \r \t u l t ; \r \t 0000500 u g t ; \r \t m o v e ; \r \t m o v 0000520 e c ; \r \t r a t i o ; \r \t s w a 0000540 t ; \r \t d i v m o d ; \r \t f r e 0000560 e t ; \r \t f r e e e ; \r \t v y o 0000600 r i g ; \r \t o z o n e \r \t o z o 0000620 n e l \r \t s c a n c o n v e r t 0000640 \r \t s t a c k r o o t \r \t S a v 0000660 e d 3 3 5 \r \t c p c / / * * 0000700 \r \t c p m i n \r \t c p m a x \r \t 0000720 ] ; \r \r / / L o c a l S t 0000740 a t i c s \r \n \r s t a t i c [ 0000760 \r \t m u l t \r \t u m a x \r \t u m 0001000 i n \r \t u l t ; \r \t u g t ; \r \t 0001020 m o v e ; \r \t 376 001 \0 S N m o v e 0001040 c ; \r \t r a t i o ; \r \t s w a t 0001060 ; \r \t d i v m o d ; \r \t f r e e 0001100 t ; \r \t f r e e e ; \r \t v y o r 0001120 i g ; \r \t s c a n c o n v e r t 0001140 \r \t s t a c k r o o t \r \t S a v 0001160 e d 3 3 5 \r \t c p c / / * * 0001200 \r \t c p m i n \r \t c p m a x \r \t 0001220 ] ; \r \r / / M A I N \r \r 0001240 l e t m a i n ( v ) b e \r [ 0001260 \r / / U L T \r / / u n 0001300 s i g n e d l e s s t h a n 0001320 \r u l t = t a b l e [ \r 0001340 \t # 1 2 2 4 3 2 ; \t / / s u 0001360 b z # 1 , 0 , s z c \r \t # 0 0 0001400 0 4 0 3 ; \t / / j m p 3 0001420 , 1 \r \t # 1 0 2 0 0 0 ; 376 001 \0 t 0001440 X \t / / a d c 0 , 0 \r \t 0001460 # 0 0 1 4 0 1 ; \t / / j m p 0001500 1 , 3 \r \t # 1 0 2 4 0 0 ; \t 0001520 / / s u b 0 , 0 \r \t # 0 0001540 0 1 4 0 1 ; \t / / j m p 0001560 1 , 3 \r \t ] ; \r \r \r / / U 0001600 G T \r / / u n s i g n e d 0001620 g r e a t e r t h a n \r u g t 0001640 = t a b l e [ \r \t # 1 0 6 0001660 4 3 2 ; \t / / s u b z # 0 , 0001700 1 , s z c \r \n \t # 0 0 0 4 0 3 ; 0001720 \t / / j m p 3 , 1 \r \t # 0001740 1 0 2 0 0 0 ; \t / / a d c 0001760 0 , 0 \r \t # 0 0 1 4 0 1 ; \t / 0002000 / j m p 1 , 3 \r \t # 1 0 0002020 2 4 0 0 ; \t / / s u b 0 0002040 , 376 001 \0 m 203 0 \r \t # 0 0 1 4 0 1 0002060 ; \t / / j m p 1 , 3 \r 0002100 \t ] ; \r \r / / * * G Y P S 0002120 Y A D D E D : \r / / c p c 0002140 o m p a r e , u n s i g n e d 0002160 , w i t h - 1 < 0 < 1 < . . 0002200 . < - 3 < - 2 \r c p c = t a 0002220 b l e [ \r \t # 1 0 1 4 0 0 ; \t 0002240 / / i n c 0 , 0 * * s o 0002260 - 1 < 0 < 1 . . . * * \r \t # 0002300 1 2 5 4 0 0 ; \t / / i n c 1 0002320 , 1 * * s a m e 0002340 * * \r \t # 1 0 6 0 3 2 ; \t 0002360 / / a d c z # 0 1 s z c 0002400 / / r e s t i s U s c \r 0002420 \t # 0 0 0 4 0 4 ; \t / / j m p 0002440 . + 4 \r \t 376 001 \0 273 ) # 1 2 2 4 0002460 2 4 ; \t / / s u b z 1 0 0002500 s z r / / * * w a s b u 0002520 g i n U s c \r \t # 1 0 2 5 2 0002540 0 ; \t / / m k o n e 0 0 0002560 ( s u b z l 0 , 0 ) \r \t # 0 0 0002600 1 4 0 1 ; \t / / j m p 1 , 3 0002620 \r \t # 1 0 2 0 0 0 ; \t / / m k 0002640 n i l 0 0 ( a d c 0 , 0 0002660 ) \r \t # 0 0 1 4 0 1 ; \t / / j 0002700 m p 1 , 3 \r \t ] ; \r / / * 0002720 * E N D G Y P S Y A D D I 0002740 T I O N \r \r / / M O V E 0002760 \r / / m o v e ( f r o m , t o 0003000 , w o r d s ) \r m o v e = t 0003020 a b l e [ \r \t # 1 7 5 4 0 0 0003040 ; \t / / i n c 376 001 \0 223 214 0003060 3 , 3 \r \t # 0 5 4 4 1 2 ; \t / / 0003100 s t a 3 , 1 2 , 1 \r \t # 0003120 0 3 4 4 1 2 ; \t / / l d a 0003140 3 , 1 2 , 1 \r \t # 1 6 2 4 0 0 0003160 ; \t / / s u b 3 , 0 \r \t 0003200 # 0 3 5 0 0 3 ; \t / / l d a 0003220 3 , 3 , 2 \r \t # 1 6 7 0 0 0 0003240 ; \t / / a d d 3 , 1 \r \t 0003260 # 1 2 4 4 0 0 ; \t / / n e g 0003300 1 , 1 \r \t # 1 2 4 0 0 0 ; \t 0003320 / / c o m 1 , 1 \r \t # 1 0003340 7 4 4 0 0 ; \t / / n e g 0003360 3 , 3 \r \t # 0 6 1 0 0 5 ; \t / / 0003400 b l t \r \t # 0 0 2 4 0 1 ; \t / 0003420 / j m p @ 1 , 1 \r \t # 0 0003440 ; \t / / r e t u r n 0003460 376 001 \0 S 023 a d d r e s s \r \t # 0003500 1 ; \t / / 1 \r \t ] ; 0003520 \r / / M O V E C \r / / 0003540 m o v e c ( f r o m , t o , c 0003560 o n s t ) \r m o v e c = t a 0003600 b l e [ \r \t # 1 7 5 4 0 0 ; 0003620 \t / / i n c 3 , 3 \r \t # 0003640 0 5 4 4 1 0 ; \t / / s t a 0003660 3 , 1 0 , 1 \r \t # 1 3 5 0 0 0 0003700 ; \t / / m o v 1 , 3 \r \t 0003720 # 1 1 6 4 0 0 ; \t / / s u b 0003740 0 , 3 \r \t # 1 7 5 4 0 0 ; \t 0003760 / / i n c 3 , 3 \r \t # 1 0004000 7 4 4 0 0 ; \t / / n e g 0004020 3 , 3 \r \t # 0 2 1 0 0 3 ; \t / / 0004040 l d a 0 , 3 , 2 \r \t # 0 0004060 6 1 0 0 6 376 001 \0 \b 202 ; \t / / b 0004100 l k s \r \t # 0 0 2 4 0 1 ; \t / / 0004120 j m p @ 1 , 1 \r \t # 0 0004140 ; \t / / r e t u r n 0004160 a d d r e s s \r \t ] ; \r / / 0004200 R A T I O \r / / r a t 0004220 i o ( a , b , c ) \r r a t i o 0004240 = t a b l e [ \r \t # 1 7 5 4 0 0004260 0 ; \t / / i n c \t 3 , 3 \r \t # 0004300 0 5 4 4 1 3 ; \t / / s t a \t 3 0004320 , 1 3 , 1 \r \t # 1 5 5 0 0 0 ; \t 0004340 / / m o v \t 2 , 3 \r \t # 1 1 1 0004360 0 0 0 ; \t / / m o v \t 0 , 2 \r 0004400 \t # 1 0 2 4 0 0 ; \t / / s u b 0004420 \t 0 , 0 \r \t # 0 6 1 0 2 0 ; \t / 0004440 / m u l \r \t # 0 3 1 4 0 3 ; \t 0004460 / / l d a \t 2 , 3 376 001 \0 d 273 , 0004500 3 \r \t # 0 6 1 0 2 1 ; \t / / d 0004520 i v \r \t # 0 0 0 4 0 1 ; \t / / 0004540 j m p \t 1 , 1 \r \t # 1 2 1 0 0 0 0004560 ; \t / / m o v \t 1 , 0 \r \t # 1 0004600 7 1 0 0 0 ; \t / / m o v \t 3 , 0004620 2 \r \t # 0 0 2 4 0 1 ; \t / / j 0004640 m p \t @ 1 033 , 1 \r \t # 0 ; \t \t / 0004660 / 0 \r \t ] ; \r / / D I V 0004700 M O D \r / / d i v m o d 0004720 ( a , b , m o d a d r ) \r d i v 0004740 m o d = t a b l e [ \r \t # 1 0004760 7 5 4 0 0 ; \t / / i n c \t 3 , 0005000 3 \r \t # 0 5 4 4 1 3 ; \t / / s 0005020 t a \t 3 , 1 3 , 1 \r \t # 0 5 0 4 0005040 1 3 ; \t / / s t a 2 , 1 3 0005060 , 1 \r \t # 1 3 1 0 0 0 ; \t / / 376 0005100 001 \0 244 m m o v 1 , 2 \r \t # 0005120 1 0 5 0 0 0 ; \t / / m o v 0005140 0 , 1 \r \t # 1 0 2 4 0 0 ; \t / / 0005160 s u b \t 0 , 0 \r \t # 0 6 1 0 2 0005200 1 ; \t / / d i v \r \t # 0 0 0 4 0005220 0 1 ; \t / / j m p \t 1 , 1 \r \t 0005240 # 0 3 0 4 0 5 ; \t / / l d a 0005260 2 , 5 , 1 \r \t # 0 4 3 0 0 3 ; 0005300 \t / / s t a 0 , @ 3 , 2 \r 0005320 \t # 1 2 1 0 0 0 ; \t / / m o v 0005340 \t 1 , 0 \r \t # 0 0 2 4 0 1 ; \t / 0005360 / j m p \t @ 1 033 , 1 \r \t # 0 ; 0005400 \t \t / / 0 \r \t # 0 ; \t \t / / 0005420 s a v e f o r a c 2 \r \t ] ; 0005440 \r / / S C A N C O N 0005460 V E R T \r / / s c a n 0005500 c o n v 376 001 \0 8 016 e r t ( c h a 0005520 r , p c o n v e r t ) \r s c a n 0005540 c o n v e r t = t a b l e 0005560 [ \r \t # 1 7 5 4 0 0 ; \t / / i 0005600 n c 3 , 3 \r \t # 0 5 4 4 2 3 ; 0005620 \t / / s t a 3 , 2 3 , 1 \r \t 0005640 # 0 5 0 4 2 3 ; \t / / s t a 0005660 2 , 2 3 , 1 \r \t # 1 3 1 0 0 0 ; 0005700 \t / / m o v e 1 , 2 \r \t # 0 0005720 3 5 0 0 0 ; \t / / l d a 3 , 0005740 0 , 2 \r \t # 1 1 7 0 0 0 ; \t / / 0005760 a d d 0 , 3 \r \t # 0 2 1 0 0 0006000 3 ; \t / / l d a 0 , 3 , 2 \r 0006020 \t # 0 6 7 0 0 1 ; \t / / c o n 0006040 v e r t + 1 \r \t # 0 0 0 4 1 1 ; 0006060 \t / / j m p 1 1 , 1 \r \t # 1 0006100 6 6 4 2 2 ; \t / / 376 001 \0 ( C s 0006120 u b z 3 , 1 , s z c \r \t # 0 0 0006140 0 4 0 4 ; \t / / j m p 4 , 1 0006160 \r \t # 0 1 1 0 0 3 ; \t / / i s 0006200 z 3 , 2 \r \t # 0 3 4 4 1 2 ; \t 0006220 / / l d a 3 , 1 2 , 1 \r \t # 0006240 1 6 7 0 0 0 ; \t / / a d d 3 0006260 , 1 \r \t # 0 4 5 0 0 2 ; \t / / 0006300 s t a 1 , 2 , 2 \r \t # 0 3 0 4 0006320 0 6 ; \t / / l d a 2 , 6 , 1 0006340 \r \t # 0 0 2 4 0 4 ; \t / / j m 0006360 p 4 , 1 \r \t # 0 1 1 0 0 3 ; \t 0006400 / / i s z 3 , 2 \r \t # 1 6 1 0006420 0 0 0 ; \t / / m o v 3 , 0 \r 0006440 \t # 0 0 0 7 6 1 ; \t / / j m p 0006460 - 1 7 , 1 \r \t # 0 ; \t \t / / 0006500 r e t u r n a d r \r \t # 0 376 001 0006520 \0 372 005 ; \t \t / / s a v e f o 0006540 r a c 2 \r \t # 2 0 ; \t \t / / 0006560 2 0 ? ! ? \r \t ] ; \r / / U M 0006600 I N \r / / u m i n ( a , b 0006620 ) = a < b ? a , b \r u m 0006640 i n = t a b l e [ \r \t # 0006660 1 0 6 4 3 2 ; \t / / s u b z # 0006700 0 , 1 , s n c \r \t # 0 0 0 4 0 0006720 2 ; \t / / j m p 2 , 1 \r 0006740 \t # 1 2 1 0 0 0 ; \t / / m o v 0006760 \t 1 , 0 \r \t # 0 0 1 4 0 1 ; \t 0007000 / / j m p 1 , 3 \r \t ] ; 0007020 \r / / U M A X \r / / 0007040 u m a x ( a , b ) = a > 0007060 b ? a , b \r u m a x = t 0007100 a b l e [ \r \t # 1 2 2 4 3 0007120 2 ; \t 376 001 \0 m 342 / / s u b z # 0007140 1 , 0 , s z c \r \t # 0 0 0 4 0 0007160 2 ; \t / / j m p 2 , 1 \r 0007200 \t # 1 2 1 0 0 0 ; \t / / m o v 0007220 \t 1 , 0 \r \t # 0 0 1 4 0 1 ; \t 0007240 / / j m p 1 , 3 \r \t ] ; 0007260 \r / / * * C P M I 0007300 N \r / / c p m i n ( a , b ) 0007320 = a < b ? a , b b u t 0007340 - 1 < . . . < - 2 \r c p 0007360 m i n = t a b l e [ \r \t 0007400 # 1 0 1 4 0 0 ; \t / / i n c 0007420 0 , 0 * * s o - 1 < 0 < 1 0007440 . . . * * \r \t # 1 2 5 4 0 0 ; 0007460 \t / / i n c 1 , 1 * * s 0007500 a m e * * \r \t 0007520 # 1 0 6 4 3 2 ; 376 001 \0 $ m \t / / 0007540 s u b z # 0 , 1 , s n c \r \t 0007560 # 0 0 0 4 0 2 ; \t / / j m p 0007600 2 , 1 \r \t # 1 2 1 0 0 0 ; \t 0007620 / / m o v \t 1 , 0 \r \t # 1 0 0007640 0 4 0 0 ; \t / / n e g 0 0007660 , 0 / / * * d e c r e m e 0007700 n t \r \t # 1 0 0 0 0 0 ; \t / / 0007720 c o m 0 , 0 / / * * 0007740 s a m e \r \t # 0 0 1 4 0 1 ; \t / 0007760 / j m p 1 , 3 \r \t ] ; 0010000 \r / / * * C P M A X 0010020 \r / / c p m a x ( a , b ) = 0010040 a > b ? a , b b u t 0010060 - 1 < . . . < - 2 \r c 0010100 p m a x = t a b l e [ \r 0010120 \t # 1 0 1 4 0 0 ; \t / / 376 001 \0 0010140 272 261 i n c 0 , 0 * * s o 0010160 - 1 < 0 < 1 . . . * * \r \t # 1 0010200 2 5 4 0 0 ; \t / / i n c 1 , 0010220 1 * * s a m e 0010240 * * \r \t # 1 2 2 4 3 2 ; \t 0010260 / / s u b z # 1 , 0 , s z c 0010300 \r \t # 0 0 0 4 0 2 ; \t / / j m 0010320 p 2 , 1 \r \t # 1 2 1 0 0 0 0010340 ; \t / / m o v \t 1 , 0 \r \t # 0010360 1 0 0 4 0 0 ; \t / / n e g 0010400 0 , 0 / / * * d e c r e 0010420 m e n t \r \t # 1 0 0 0 0 0 ; \t / 0010440 / c o m 0 , 0 / / * 0010460 * s a m e \r \t # 0 0 1 4 0 1 ; 0010500 \t / / j m p 1 , 3 \r \t ] 0010520 ; \r / / M U L T \r / 0010540 / 376 001 \0 % 246 m u l t ( a , b ) 0010560 \r m u l t = t a b l e [ 0010600 \r \t # 1 7 5 4 0 0 ; \t / / i n 0010620 c \t 3 , 3 \r \t # 0 5 4 4 1 0 ; \t 0010640 / / s t a \t 3 , 1 0 , 1 \r \t # 0010660 1 5 5 0 0 0 \t \t / / m o v \t 2 0010700 , 3 \r \t # 1 1 1 0 0 0 \t \t / / 0010720 m o v \t 0 , 2 \r \t # 1 0 2 4 0 0 0010740 ; \t / / s u b \t 0 , 0 \r \t # 0 0010760 6 1 0 2 0 ; \t / / m u l \r \t # 0011000 1 2 1 0 0 0 \t \t / / m o v \t 1 0011020 , 0 \r \t # 1 7 1 0 0 0 \t \t / / 0011040 m o v 3 , 2 \r \t # 0 0 2 4 0 1 0011060 ; \t / / j m p @ 1 , 1 \r 0011100 \t # 0 \t \t / / r e t u r n a 0011120 d d r e s s \r \t ] \r / / S 0011140 W A T ! 376 001 \0 242 L ! ! 0011160 \r s w a t = t a b l e [ \r 0011200 \t # 7 7 4 0 0 ; \r \t # 1 4 0 1 ; 0011220 \r \t ] ; \r \r S a v e d 3 3 5 = @ 0011240 # 3 3 5 / / S a v e s t a c 0011260 k m i n i m u m \r I N I T A L 0011300 T O I O ( m a x s t r e a m - 3 0011320 ) ; \r S e t E n d C o d e ( I N 0011340 I T A L T O I O ) ; \r s t a c k 0011360 r o o t = ( l v v ) - 4 ; 0011400 \r r v # 1 1 0 2 = # 1 7 6 0011420 7 7 7 ; \r i n i t ( ) ; \r ] / 0011440 / e n d m a i n \r \r / / A 0011460 R R A Y \r / / a r r a 0011500 y a l l o c a t e s n u m b 0011520 e r w o r d s f r o m t h 0011540 e a l l o c a t i o n 376 001 \0 2 0011560 J s t a c k \r \r a n d a r r 0011600 a y ( s i z ) = v a l o f \r 0011620 [ \r l e t t f r e e t = f 0011640 r e e t ; \r t e s t s i z e 0011660 q - 1 i f s o \r \t [ \r \t i 0011700 f u l t ( f r e e e , f r e e 0011720 t ) t h e n e r r h l t ( " 0011740 A R E " ) ; / / B o u n d s 0011760 e x c e e d e d \r \t r v f r 0012000 e e t = f r e e e - f r e e 0012020 t ; \r \t f r e e t = f r e e 0012040 e ; \r \t r e s u l t i s t f r 0012060 e e t ; \r \t ] \r i f n o t \t [ \r 0012100 \t i f u l t ( f r e e e , f r 0012120 e e t + s i z ) t h e n e r 0012140 r h l t ( " A R E " ) ; \r \t f r 0012160 e 376 \0 252 ~ 354 e e = f r e e e 0012200 - s i z ; \r \t r e s u l t i s 0012220 f r e e e + 1 ; \r \t ] ; \r ] 0012240 / / e n d a r r a y \r \r / 0012260 / A B S \r / / S P E c 0012300 a t a l o g u e n o . \r \r a n 0012320 d a b s ( v a l ) = v a l 0012340 o f \r [ \r i f v a l l s 0 0012360 t h e n r e s u l t i s - 0012400 v a l ; \r r e s u l t i s v a 0012420 l ; \r ] / / e n d a b s \r 0012440 377 \0 \0 G I N I T . S R \0 376 001 \0 247 0012460 ~ / / G I N I T \r / / 0012500 G Y P S Y C H A N G E S ! 0012520 ! \r \r g e t " B R A V O . D F 0012540 " ; \r g e t " H E A P . D F " 0012560 ; \r g e t " D I S P L A Y . D 0012600 F " ; \r g e t " C H A R . D F 0012620 " ; \r g e t " G I N N . D F " 0012640 ; / / * * \r \r / / I n c o 0012660 m i n g P r o c e d u r e s \r 0012700 \r e x t e r n a l [ \r \t C R E 0012720 A T E S ; \r \t O P E N S ; \r \t u 0012740 l t ; \r \t e r r h l t ; \r \t b r 0012760 a v o c o m ; \r \t q i n i t ; \r 0013000 \t O P E N A F I L E ; \r \t R E A 0013020 D V E C ; \r \t C L O S E A F I L 0013040 E ; \r \t u p d a t e d i s p l a 0013060 y 376 001 \0 215 035 ; \r \t m o v e ; \r \t 0013100 A c t O n P a g e s ; \r \t W r i 0013120 t e P a g e s ; \r \t t r i m s ; 0013140 \r \t i n i t o v e r l a y ; \r \t 0013160 j u n t a \r \t a r r a y \r \t m o 0013200 v e s t a c k \r \t s w a t ; \r \t 0013220 i n i t k b d ; \r \t a d d b p \r 0013240 \t h p i n i t \r \t o p e n s \r \t 0013260 c r e a t e s \r \t h p l a y ; \r 0013300 \t u g t \r \t s e t m a c f p ; \r 0013320 \t D i s a b l e I n t e r r u p 0013340 t s ; \r \t E n a b l e I n t e r 0013360 r u p t s ; \r / / * * \r \t i n 0013400 v a l i d a t e d i s p l a y \r 0013420 \t r e a d f i l e 1 \r \t s e t s 0013440 e l \r \t m a r k s \r \t d e a l l 0013460 o c f n \r \t 376 001 \0 + E ] ; \r \r / 0013500 / I n c o m i n g S t a t i 0013520 c s \r \r e x t e r n a l [ \r \t 0013540 f r e e t ; \r \t K E Y S ; \r \t f 0013560 r e e e ; \r \t r g s b c o m ; \r 0013600 \t r g s b o p a n d ; \r \t r g d 0013620 l l a s t ; \r \t r g m a x d l ; 0013640 \r \t r g c d l b l a n k ; \r \t r 0013660 g m a c c p ; \r \t r g u p d a t 0013700 e ; \r \t m a c w w ; \r \t v p z o 0013720 n e ; \r \t r g c p l a s t ; \r \t 0013740 r g d o c ; \r \t B I T T A B L E 0013760 ; \r \t m p f n o f ; \r \t f i l l 0014000 I n D A ; \r \t e o f D A ; \r \t D 0014020 C r e a d ; \r \t d n b p ; \r \t c 0014040 o m i n s t r e a m \r \t m a c b 0014060 p \r \t o z o n e \r \t p 376 001 \0 ( 225 0014100 z o n e \r \t v u p \r \t L A S T S 0014120 N 1 \r \t L A S T S N 2 \r \t l a s 0014140 t S N \r \t d i s k B i t T a b l 0014160 e \r \t d i s k B T s i z e \r \t v 0014200 d c b s y s ; \r \t v d c b o r i 0014220 g ; \r \t v y o r i g \r \t S a v e 0014240 d F i n i s h \r \t S a v e d K e 0014260 y P r o c e s s ; \r \t s t a c k 0014300 r o o t ; \r \t S a v e d 3 3 5 \r 0014320 / / * * \r \t d d o c \r \t s e l 0014340 e c t i o n \r \t f d e b u g \r \t 0014360 h d e b u g \r \t o z o n e l \r \t 0014400 ] ; \r \r / / O u t g o i n g 0014420 P r o c e d u r e s \r \r e x t e 0014440 r n a l [ \r \t i n i t ; \r \t i 0014460 n i t s b ; \r \t s t p e r m ; \r 0014500 376 001 \0 v : \t m a r k c c ; \r \t l 0014520 o a d c o r e ; \r \t d u m p c o 0014540 r e ; \r / / * * \r \t s w a t o 0014560 n \r \t s w a t o f f \r \t ] ; \r \r 0014600 / / O u t g o i n g S t a t 0014620 i c s \r \r e x t e r n a l [ 0014640 \r \t b e g o f o p s y s ; \r \t t 0014660 o p o f h e a p ; \r \t t s m a c 0014700 r o \r \t r g d i r t y \r \t v w h 0014720 e e l \r \t s b s t a t e \r \t s b 0014740 t e r m e s c \r \t v m e s s a g 0014760 e \r \t b b b b b / / * * S 0015000 P Y \r \t ] \r \r / / L o c 0015020 a l S t a t i c s \r \r s t a t 0015040 i c [ \r \t b e g o f o p s y 0015060 s ; \r \t t o p o f h e a p ; \r \t 0015100 t s m a c 376 001 \0 331 264 r o \r \t r g 0015120 d i r t y \r \t v w h e e l \r \t s 0015140 b s t a t e \r \t s b t e r m e s 0015160 c \r \t v m e s s a g e \r \t b b b 0015200 b b / / * * S P Y \r \t 0015220 ] \r \r m a n i f e s t [ \r 0015240 \t D I S K R O = 0 ; \r \t m a 0015260 x c p a g e = 1 2 8 ; \r \t A 0015300 d r A d r F i n i s h = # 3 5 3 0015320 / / H o l d s a d d r e s s 0015340 o f f i n i s h c o d e \r 0015360 \t K e y P r o c e s s = 1 2 \r \t 0015400 i n t e r r u p t V e c t o r 0015420 = # 5 0 0 \r \t ] \r \r / / I 0015440 N I T \r / / \r l e t i n 0015460 i t ( ) b e \r [ \r v y o r i g 0015500 = 0 ; \r v d c b 376 001 \0 ! 6 o 0015520 r i g = # 4 2 0 ; \r v d c b 0015540 s y s = r v v d c b o r i 0015560 g ; \r r v v d c b o r i g = 0015600 0 ; \r \r i n i t k b d ( ) ; \r 0015620 b e g o f o p s y s = s t a 0015640 c k r o o t - o s m a c h i n e 0015660 c o d e l + 1 ; \r m o v e s t a 0015700 c k ( i n i t , b e g o f o p s 0015720 y s - 1 ) ; \r j u n t a ( ) ; \r 0015740 \r i n i t o v e r l a y ( ) ; \r 0015760 r v # 3 3 5 = b e g o f o 0016000 p s y s - s t a c k l ; \r h p i 0016020 n i t ( j u n t a , ( r v # 3 0016040 3 5 ) - 1 - h p b u f , 4 , p z 0016060 o n e ) ; \r v u p = t r u e 0016100 ; \r t s m a c r o = f a l 376 0016120 001 \0 201 016 s e ; \r u n l e s s o 0016140 p e n s ( f n d i r , 1 , # 1 0 0016160 0 0 0 0 , # 1 4 4 , # 1 0 0 0 0 0016200 , f a l s e , t r u e ) d o \r 0016220 \t e r r h l t ( " s d r " ) ; \r 0016240 \r ( m p f n o f ! f n d i r 0016260 ) > > O F . w f = t r u 0016300 e ; \r c r e a t e s ( f n o p s 0016320 y s , " $ O P S Y S " , t r u e 0016340 , f a l s e ) ; \r d u m p c o r 0016360 e ( f n o p s y s , b e g o f 0016400 o p s y s , ( # 1 7 6 7 7 7 - 0016420 b e g o f o p s y s + 1 ) l s 0016440 h i f t 1 ) ; \r s e t m a c f 0016460 p ( f n o p s y s , ( ( m p f n 0016500 o f ! f n o p s y s ) > > 0016520 O F . 376 001 \0 d w m a c p o s ) 0016540 < < P C D . p + 2 ) ; \r \r f 0016560 r e e e = # 1 7 6 7 7 7 ; \r 0016600 f r e e t = r v # 3 3 5 ; 0016620 \r i f f r e e t < < o d d 0016640 t h e n f r e e t = f r 0016660 e e t + 1 / / * * \r l e 0016700 t s t a c k l o c = a r r 0016720 a y ( s t a c k l ) ; \r m o v e 0016740 s t a c k ( i n i t , s t a c k 0016760 l o c + s t a c k l - 1 ) ; / 0017000 / , l v p s t a c k , . . . 0017020 i f a n y \r r v # 3 3 5 0017040 = s t a c k l o c ; \r \r w h i 0017060 l e m a c b p l s 8 d o 0017100 a d d b p ( a r r a y ) \r \r / 0017120 / * * b b b b 376 001 \0 # q b 0017140 = a r r a y ( # 2 5 0 0 ) ; 0017160 / / * * S P Y \r \r q i 0017200 n i t ( ) ; \r \r / / * * G Y 0017220 P S Y m o v e d t o p o f 0017240 h e a p e x p a n s i o n 0017260 f r o m h e r e t o Q I N 0017300 I T . S R \r \r / / * * i n i 0017320 t s b ( ) ; \r \r / / * * \r i n 0017340 v a l i d a t e d i s p l a y ( 0017360 d d o c , r g m a c c p ! 0017400 d d o c - 1 , - 1 ) \r r e a d 0017420 f i l e 1 ( " G Y P S Y . D I R 0017440 E C T O R Y " , d d o c , 0 0017460 ) / / o v e r l a y s \r r g 0017500 d i r t y ! d d o c = f 0017520 a l s e \r u p d a t e d i s 376 001 0017540 \0 237 D p l a y ( ) \r s e t s e l 0017560 ( s e l e c t i o n , 0 , - 1 ) 0017600 \r m a r k s ( t r u e ) ; / 0017620 / f i r s t c a l l o n 0017640 m a r k s \r / / * * \r \r b r a 0017660 v o c o m ( ) ; \r c o u n t e r 0017700 j u n t a ( ) ; \r ] \r \r / / 0017720 * * G Y P S Y d e l e t e d 0017740 i n i t s b \r \r / / S T 0017760 P E R M \r / / \r a n d s 0020000 t p e r m ( s t , a l l o c ) 0020020 = v a l o f \r \t [ \r \t l e t 0020040 n = ( s t > > l h + 0020060 2 ) r s h i f t 1 ; \r \t 0020100 l e t p = a l l o c ( n ) 0020120 ; \r \t m o v e ( s t , p , 0020140 n ) 376 001 \0 340 203 ; \r \t r e s u l 0020160 t i s p ; \r \t ] \r / / M 0020200 A R K C C \r / / c a t 0020220 a l o g u e n o . \r a n d m 0020240 a r k c c ( r g c c , c h f i r 0020260 s t , c h l a s t , m a r k ) 0020300 b e \r f o r c c = c h f i 0020320 r s t t o c h l a s t d o 0020340 \r \t r g c c ! c c = ( r 0020360 g c c ! c c ) % ( # 1 0 0020400 0 0 0 0 r s h i f t m a r k 0020420 ) ; \r / / D U M P C 0020440 O R E \r / / \r a n d d u 0020460 m p c o r e ( f n , c a , b y t 0020500 e c ) b e \r [ l e t o f 0020520 = m p f n o f ! f n ; \r u 0020540 n l e s s o f 376 001 \0 322 004 > > 0020560 O F . w f d o e r r h l t 0020600 ( " w f d " ) ; \r l e t c p a 0020620 g e = b y t e c < < P C 0020640 D . p + 1 ; \r l e t n u m c h 0020660 a r s l a s t = b y t e c 0020700 < < P C D . r c ; \r l e t 0020720 r g d a = l v ( o f > > 0020740 O F . r g d a ) ; \r l e t f 0020760 i l e i d = l v ( o f > 0021000 > O F . f i l e i d ) ; \r i f 0021020 ( r g d a ! 1 e q f i 0021040 l l I n D A ) % ( r g d a 0021060 ! 1 e q e o f D A ) t h 0021100 e n \r \t i f A c t O n P a g e 0021120 s ( 0 , r g d a , f i l e i d , 0021140 0 , 0 , D C r e a d , 0 , 376 001 \0 0021160 214 001 0 , d n b p ! b p b u f 0021200 f , 0 ) t h e n e r r h l t 0021220 ( " a o p " ) ; \r ; \r l e t r 0021240 g c a = v e c m a x c p a 0021260 g e + 1 ; \r f o r i = 0 0021300 t o c p a g e - 2 d o \r \t [ 0021320 r g c a ! i = c a ; \r 0021340 \t c a = c a + # 4 0 0 ; \r \t 0021360 ] \r r g c a ! ( c p a g e 0021400 - 1 ) = d n b p ! b p b 0021420 u f f ; \r m o v e ( c a , d n b 0021440 p ! b p b u f f , ( n u m c 0021460 h a r s l a s t + 1 ) r s h i 0021500 f t 1 ) ; \r i f n u m c h a 0021520 r s l a s t e q # 1 0 0 0 0021540 t h e n \r \t [ n u m c h a r s 0021560 l a 376 001 \0 313 u s t = 0 ; \r \t 0021600 r g c a ! c p a g e = d 0021620 n b p ! b p b u f f ; \r \t c 0021640 p a g e = c p a g e + 1 ; \r 0021660 \t ] \r W r i t e P a g e s ( r 0021700 g c a - 1 , r g d a , f i l e i 0021720 d , 1 , c p a g e , 0 , 0 , n u 0021740 m c h a r s l a s t , 0 ) ; \r o 0021760 f > > O F . m a c p o s = 0022000 b y t e c ; \r t r i m s ( f n 0022020 ) ; \r ] \r \r / / L O A 0022040 D C O R E \r / / \r a n d 0022060 l o a d c o r e ( f n , c a ) 0022100 b e \r [ l e t r g c a = 0022120 v e c m a x c p a g e ; \r l 0022140 e t m a c p o s = ( m p f 0022160 n o f ! f 376 001 \0 210 $ n ) > 0022200 > O F . m a c p o s ; \r l e t 0022220 c p a g e = m a c p o s 0022240 < < P C D . p + 1 \r l e t n 0022260 u m c h a r s l a s t = m a 0022300 c p o s < < P C D . r c \r f 0022320 o r i = 0 t o c p a g 0022340 e - 2 d o \r \t [ r g c a ! 0022360 i = c a ; \r \t c a = c 0022400 a + # 4 0 0 ; \r \t ] \r r g c a 0022420 ! ( c p a g e - 1 ) = d 0022440 n b p ! b p b u f f ; \r l e 0022460 t o f = m p f n o f ! 0022500 f n ; \r l e t r g d a = l 0022520 v ( o f > > O F . r g d a 0022540 ) ; \r l e t f i l e i d = 0022560 l v ( o f > > O F 376 001 \0 377 0022600 / . f i l e i d ) ; \r u n l e s 0022620 s A c t O n P a g e s ( r g c 0022640 a - 1 , r g d a , f i l e i d , 0022660 1 , c p a g e , D C r e a d , 0 0022700 , 0 , 0 , 0 ) e q c p a g e 0022720 d o \r \t e r r h l t ( " n c p 0022740 " ) ; \r m o v e ( d n b p ! 0022760 b p b u f f , c a , ( n u m c h 0023000 a r s l a s t + 1 ) r s h i f 0023020 t 1 ) ; \r ] \r \r a n d c o 0023040 u n t e r j u n t a ( ) b e \r 0023060 \t [ \r \t r v v d c b o r i g 0023100 = 0 ; \r \t f o r f n = m 0023120 i n u s e r f n t o m a x f 0023140 n - 1 d o / / * * \r \t \t i 0023160 f m p f n o f ! f n n e 0023200 376 001 \0 366 * - 1 t h e n d e 0023220 a l l o c f n ( f n ) \r \t h p l 0023240 a y ( - o z o n e l , t r u e 0023260 ) / / * * \r \t i f u g t ( 0023300 t o p o f h e a p , b e g o f 0023320 o p s y s - s t a c k l - 1 ) 0023340 t h e n \r \t \t [ / / * * \r \t 0023360 \t l e t s m a l l e r = t 0023400 o p o f h e a p - ( b e g o f o 0023420 p s y s - s t a c k l - 1 ) \r \t 0023440 \t i f s m a l l e r < < o 0023460 d d t h e n s m a l l e r 0023500 = s m a l l e r + 1 \r \t \t h p 0023520 l a y ( s m a l l e r , f a l 0023540 s e ) \r \t \t ] \r \t @ # 3 3 5 = o 0023560 z o n e ; \r \t m o v e s t a c k 0023600 ( c o u n t 376 001 \0 267 210 e r j u n 0023620 t a , b e g o f o p s y s - 1 0023640 ) \r \t l o a d c o r e ( f n o p 0023660 s y s , b e g o f o p s y s ) 0023700 ; \r \t r v L A S T S N 1 = 0023720 l a s t S N ! 0 ; \r \t r v 0023740 L A S T S N 2 = l a s t S N 0023760 ! 1 ; \r \t m o v e ( d i s k 0024000 B i t T a b l e , B I T T A B 0024020 L E , d i s k B T s i z e ) ; 0024040 \r \t m o v e ( b e g o f o p s y 0024060 s , o s m a c h i n e c o d e 0024100 , o s m a c h i n e c o d e l 0024120 ) ; \r \t m o v e s t a c k ( c o 0024140 u n t e r j u n t a , s t a c k 0024160 r o o t ) \r \t @ # 3 3 5 = S a v 0024200 e d 3 3 5 \r \t r v v 376 001 \0 315 s 0024220 d c b o r i g = v d c b s y 0024240 s ; \r \t D i s a b l e I n t e r 0024260 r u p t s ( ) \r \t @ A d r A d r 0024300 F i n i s h = S a v e d F i n i 0024320 s h \r \t @ ( i n t e r r u p t V 0024340 e c t o r + K e y P r o c e s s 0024360 + 1 ) = S a v e d K e y P r 0024400 o c e s s \r \t E n a b l e I n t 0024420 e r r u p t s ( ) \r \t f i n i s 0024440 h \r \t ] \r \r a n d s w a t o n 0024460 ( o t h e r l o c , t h r e e 0024500 k e y s ; n u m a r g s N ) 0024520 b e \r \t [ \r \t r v # 4 5 3 0024540 = r v # 4 5 3 % # 4 0 0 0024560 \r \t i f N t h e n r v o 0024600 t h e r l o c = r v o t h 0024620 376 \0 o 246 S e r l o c % # 4 0 0024640 0 \r \t v w h e e l = t r u e 0024660 \r \t h d e b u g = t r u e \r 0024700 \t f d e b u g = t h r e e k 0024720 e y s \r \t ] \r \r a n d s w a t 0024740 o f f ( ) b e r v # 4 5 3 0024760 = r v # 4 5 3 & # 7 7 0025000 3 7 7 \r 377 \0 \0 G D O C . S R \0 376 0025020 001 \0 M > / / G D O C . S R c 0025040 l e a n d o c s \r \r g e t " 0025060 B R A V O . D F " ; \r g e t " 0025100 H E A P . D F " ; \r / / I n c 0025120 o m i n g P r o c e d u r e s 0025140 \r \r e x t e r n a l [ \r \t m o 0025160 v e c ; \r \t e r r c k ; \r \t u g 0025200 t ; \r \t u l t ; \r \t h p a l l o 0025220 c a ; \r \t i n s e r t l f ; \r \t 0025240 s e t l f ; \r \t e r r h l t ; \r 0025260 \t c o n f i r m ; \r \t s t c o p 0025300 y ; \r \t c p a d j u s t ; \r \t e 0025320 n w w ; \r \t i n v a l i d a t e 0025340 w i n d o w ; \r \t h p f r e e ; 0025360 \r \t e n p s p e c s / / * * 0025400 \r \t f r e e s p e c / / * * 0025420 \r \t c r 376 001 \0 t 037 e a t e d o c 0025440 p / / * * \r \t ] ; \r \r / / 0025460 I n c o m i n g S t a t i c s 0025500 \r \r e x t e r n a l [ \r \t c k 0025520 p r o c ; \r \t v p z o n e ; \r \t 0025540 c k p e r r ; \r \t m a c w w ; \r 0025560 \t r g d o c ; \r \t s b p a s t ; 0025600 \r \t d n l f ; \r \t r g c f n ; \r 0025620 \t r g d i r t y / / * * \r \t 0025640 r g s d o c \r \t r g p a r a \r \t 0025660 r g s f i l e \r \t ] ; \r \r / / 0025700 O u t g o i n g P r o c e d u 0025720 r e s \r \r e x t e r n a l [ \r 0025740 \t c k d o c ; \r \t c r e a t e d 0025760 o c e ; \r \t c r e a t e d o c m 0026000 ; \r \t d o c a l l o c ; \r / / 0026020 * * \t d o c u n u 376 001 \0 x 303 s e 0026040 d ; \r \t d e l e t e d ; \r \t i n 0026060 v a l i d a t e d o c ; \r \t ] ; 0026100 \r \r / / O u t g o i n g S t 0026120 a t i c s \r \r e x t e r n a l 0026140 [ \r \t r g p c t b ; \r \t r g m a 0026160 c c p ; \r \t v p c ; \r \t v c p ; 0026200 \r \t p p c d ; \r \t m a c d o c ; 0026220 \r \t ] ; \r \r / / L o c a l 0026240 S t a t i c s \r \r s t a t i c 0026260 [ \r \t r g p c t b ; \r \t r g m a 0026300 c c p ; \r \t v p c ; \r \t v c p ; 0026320 \r \t p p c d ; \r \t m a c d o c ; 0026340 \r \t ] ; \r \r / / C K D O 0026360 C \r / / c a t a l o g u e 0026400 n o . = 8 9 \r l e t c k d 0026420 o c ( ) b e \r [ c k p 376 001 0026440 \0 023 003 r o c = " c k d o c " 0026460 ; \r m o v e c ( r g c f n , r g 0026500 c f n + m a x f n - 1 , 0 ) ; \r 0026520 l e t h p m a x = v p z o 0026540 n e > > Z O N E . m a x ; \r 0026560 l e t h p m i n = v p z o 0026600 n e > > Z O N E . m i n ; \r 0026620 f o r d o c = 0 t o m 0026640 a x d o c - 1 d o \r \t [ l e 0026660 t t p c t b = r g p c t b 0026700 ! d o c ; \r \t i f t p c t 0026720 b e q - 1 t h e n l o o 0026740 p ; \r \t l e t m a c p c = 0026760 t p c t b > > P C T B . m a 0027000 c p c ; \r \t l e t r g c p 0027020 = l v ( t p c t b > > P 0027040 C T B 376 001 \0 s \0 . r g c p ) ; \r 0027060 \t f o r i = 1 t o ( m 0027100 a c p c ) d o \r \t \t [ i f 0027120 u l t ( r g c p ! i , r g 0027140 c p ! ( i - 1 ) ) d o \r 0027160 \t \t \t [ c k p e r r = r g 0027200 c p + i ; \r \t \t \t e r r c k ( " 0027220 p c " ) ; \r \t \t \t ] \r \t \t ] 0027240 \r \t i f r g c p ! m a c p 0027260 c n e r g m a c c p ! d 0027300 o c d o \r \t \t [ c k p e r 0027320 r = r g c p + m a c p c ; \r 0027340 \t \t e r r c k ( " d s " ) ; \r \t 0027360 \t ] \r / / c h e c k p i e 0027400 c e d e s c r i p t o r s \r \t 0027420 l e t r g p c d = r g c p 0027440 + ( t p c t b 376 001 \0 247 022 > > 0027460 P C T B . m a x p c ) + 1 ; \r \t 0027500 f o r i = 0 t o ( m a 0027520 c p c - 1 ) l s h i f t 1 0027540 b y 2 d o \r \t \t [ \r \t \t c 0027560 k p e r r = r g p c d + i ; 0027600 \r \t \t l e t a d d r = c k 0027620 p e r r > > P C D . v p a d 0027640 d r ; \r \t \t t e s t c k p e r 0027660 r > > P C D . l i v e i f 0027700 s o \r \t \t \t i f u g t ( a 0027720 d d r , h p m a x ) % u l t 0027740 ( a d d r , h p m i n ) d o \r 0027760 \t \t \t \t e r r c k ( " l p " ) ; 0030000 \r \t \t \t \r \t \t i f n o t \t [ 0030020 \r \t \t \t l e t f n = a d d 0030040 r < < V P A . f n ; \r 376 001 \0 0030060 j 226 \t \t \t i f f n g e m a 0030100 x f n d o \r \t \t \t \t e r r c k 0030120 ( " f n e " ) ; \r \t \t \t r g c f 0030140 n ! f n = r g c f n ! 0030160 f n + 1 ; \r \t \t \t ] \r \t \t ] 0030200 \r \t ] \r ] \r / / C R 0030220 E A T E D O C E 0030240 \r / / c a t a l o g u e n o 0030260 . = S P E - 9 9 \r a n d c 0030300 r e a t e d o c e ( d o c , m a 0030320 x p c ) b e \r [ \r r g p c t 0030340 b ! d o c = h p a l l o 0030360 c a ( m a x p c * 3 + 1 + p c t 0030400 b l ) ; \r r g m a c c p ! d 0030420 o c = 0 ; \r ( r g p c t b 0030440 ! d o c ) > > P C T B . m 0030460 a x 376 001 \0 352 246 p c = m a x p 0030500 c ; \r ( r g p c t b ! d o c 0030520 ) > > P C T B . m a c p c 0030540 = 0 ; \r ( r g p c t b ! d 0030560 o c ) > > P C T B . r g c p 0030600 = 0 ; \r c r e a t e d o c p 0030620 ( d o c ) / / * * \r ] \r \r 0030640 / / C R E A T E D 0030660 O C M \r / / \r a n d c r 0030700 e a t e d o c m ( d o c ) b e 0030720 \r [ \r c r e a t e d o c e ( d o 0030740 c , 1 ) ; \r / / * * i n s e 0030760 r t l f ( d o c , 0 , l f e d o 0031000 c , d o c , 4 ) ; \r / / * * s 0031020 e t l f ( l f e d o c , d o c , 0031040 " * 2 0 1 " ) ; / / * * \r 0031060 r g d i r t y 376 001 \0 x s ! d 0031100 o c = f a l s e \t / / * * 0031120 \r ] \r \r / / D O C A L 0031140 L O C \r / / c a t a l o 0031160 g u e n o . = 1 2 7 \r a n 0031200 d d o c a l l o c ( ) = 0031220 v a l o f \r [ f o r d o c 0031240 = 0 t o m a x d o c - 1 0031260 d o \r \t i f r g p c t b ! 0031300 d o c e q - 1 t h e n r 0031320 e s u l t i s d o c ; \r r e s 0031340 u l t i s - 1 ; \r ] \r \r / / 0031360 D O C U N S E D 0031400 \r / / \r / / * * G Y P S Y 0031420 U S E S w i p e d o c I N 0031440 G P A R A . S R I N S T E A 0031460 D \r \r / / D E L 376 001 \0 266 0031500 266 E T E D \r / / S P E 0031520 c a t a l o g u e n o . \r \r a 0031540 n d d e l e t e d ( d o c ) 0031560 b e \r [ \r c p a d j u s t ( d o 0031600 c , 0 , - ( r g m a c c p ! 0031620 d o c ) ) ; \r r g m a c c p ! 0031640 d o c = 0 ; \r l e t p c 0031660 t b = r g p c t b ! d o 0031700 c ; \r p c t b > > P C T B . 0031720 m a c p c = 0 ; \r p c t b 0031740 > > P C T B . r g c p = 0 0031760 ; \r ] \r / / I N V A L 0032000 I D A T E D O C 0032020 \r / / \r a n d i n v a l i d a 0032040 t e d o c ( d o c ) b e \r \t e 0032060 n w w ( i n v a l i d a t e w i 0032100 n 376 \0 \n 336 J d o w , d o c ) ; \r 0032120 377 \0 \0 G E D I T . S R \0 376 001 \0 327 0032140 L / / G E D I T . S R : m o 0032160 r e c p ' s t o a d j u s 0032200 t a n d d i r t y d o c ! 0032220 & g e t v c h b u m p s 0032240 v c p \r \r g e t " B R A V O . 0032260 D F " ; \r / / I n c o m i n g 0032300 P r o c e d u r e s \r \r e x t 0032320 e r n a l [ \r \t h p a l l o c 0032340 a ; \r \t m o v e ; \r \t h p f r e 0032360 e ; \r \t u l t ; \r \t b i n s e a 0032400 r c h a ; \r \t u g t ; \r \t i n v 0032420 a l i d a t e d i s p l a y ; \r 0032440 \t e n w w ; \r \t s t c o p y ; \r 0032460 \t g e t v c h ; \r \t m a p c p ; 0032500 \r / / * * G Y P S Y A D D 0032520 E D : \r \t c p a d j u s t l i s 0032540 t 376 001 \0 355 271 \r \t c p c \r \t ] ; \r 0032560 \r / / I n c o m i n g S t a 0032600 t i c s \r \r e x t e r n a l [ 0032620 \r \t r g p c t b ; \r \t v p c ; \r 0032640 \t r g m a c c p ; \r \t v c p ; \r 0032660 \t s e l m a i n ; \r \t s e l a r 0032700 g ; \r \t s e l a u x ; \r \t r g d 0032720 l l a s t ; \r \t r g d l f i r s 0032740 t ; \r \t r g c p f i r s t ; \r \t 0032760 r g x l a s t ; \r \t r g c p l a 0033000 s t ; \r \t r g c p f d i s p l ; 0033020 \r \t r g d o c ; \r \t r g u p d a 0033040 t e ; \r \t v d o c ; \r \t s b p a 0033060 s t ; \r \t v c h r e m a i n ; \r 0033100 \t v l b ; \r \t v p w ; \r \t v c p 0033120 f i r s t ; \r \t v c p l a s t ; 0033140 \r / / * * 376 001 \0 366 343 G Y P S 0033160 Y A D D E D : \r \t r g d i r t 0033200 y \r \t r g p a r a \r \t r g p a g 0033220 e \r \t r g r e a d o n l y \r \t v 0033240 t u r n i n g \r \t ] ; \r \r / / 0033260 O u t g o i n g P r o c e d u 0033300 r e s \r \r e x t e r n a l [ \r 0033320 \t l e n g t h e n p c t b ; \r \t 0033340 i n s e r t a ; \r \t p c s u b s 0033360 t r i n g ; \r \t m a k e r o o m 0033400 p c ; \r \t d e l e t e a ; \r \t i 0033420 n s e r t b ; \r \t s e t p c s i 0033440 z ; \r \t c p a d j u s t ; \r \t f 0033460 i n d ; \r / / * * G Y P S Y 0033500 A D D E D : \r \t c p a d j u s 0033520 t 2 \r \t ] ; \r \r / / O u t g o 0033540 i n g S t a t i c s 376 001 \0 233 030 0033560 \r \r e x t e r n a l [ \r \t v c 0033600 p a d j u s t e q ; \r \t p c t b 0033620 1 ; \r \t p c t b 2 ; \r \t r g c p 0033640 1 ; \r \t r g c p 2 ; \r \t v d o c 0033660 1 ; \r \t v d o c 2 ; \r \t d e l t 0033700 a c p 2 ; \r \t p c f i r s t 1 ; 0033720 \r \t p c f i r s t 2 ; \r \t p c l 0033740 a s t 2 ; \r \t c p c n e w ; \r \t 0033760 r g p c d 1 ; \r \t r g p c d 2 ; 0034000 \r \t p c t b ; \r \t r g c p ; \r \t 0034020 r g p c d ; \r \t p c f i r s t ; 0034040 \r \t p c f i r s t d e l ; \r \t p 0034060 c l a s t d e l ; \r \t v d e l t 0034100 a c p ; \r \t p c l a s t ; \r \t d 0034120 e l t a c p ; \r \t c p s c r t ; 0034140 \r \t ] ; \r \r / / L o c a l 0034160 376 001 \0 035 311 S t a t i c s \r \r s t 0034200 a t i c [ \r \t v c p a d j u s 0034220 t e q ; \r \t c p a d j u s t e q 0034240 ; / / * * \r \t p c t b 1 ; \r 0034260 \t p c t b 2 ; \r \t r g c p 1 ; \r 0034300 \t r g c p 2 ; \r \t v d o c 1 ; \r 0034320 \t v d o c 2 ; \r \t d e l t a c p 0034340 2 ; \r \t p c f i r s t 1 ; \r \t p 0034360 c f i r s t 2 ; \r \t p c l a s t 0034400 2 ; \r \t c p c n e w ; \r \t r g p 0034420 c d 1 ; \r \t r g p c d 2 ; \r \t p 0034440 c t b ; \r \t r g c p ; \r \t r g p 0034460 c d ; \r \t p c f i r s t ; \r \t p 0034500 c f i r s t d e l ; \r \t p c l a 0034520 s t d e l ; \r \t v d e l t a c p 0034540 ; \r \t p c l a s t ; \r \t d e l t 0034560 a c p ; \r 376 001 \0 301 376 \t c p s c r 0034600 t ; \r \t ] ; \r \r / / L E N 0034620 G T H E N \r / / c 0034640 a t a l o g u e n o . = S 0034660 P E - 8 7 \r l e t l e n g t h 0034700 e n p c t b ( d o c , m a x p c 0034720 n e w ) b e \r [ \r l e t p 0034740 c t b n = h p a l l o c a ( 0034760 m a x p c n e w * 3 + 1 + p c t 0035000 b l ) ; \r l e t p c t b o = 0035020 r g p c t b ! d o c ; \r p 0035040 c t b n > > P C T B . m a x 0035060 p c = m a x p c n e w ; \r m 0035100 o v e ( p c t b o + 1 , p c t b 0035120 n + 1 , 2 + ( p c t b o > > 0035140 P C T B . m a c p c ) ) ; \r m o 0035160 v e ( p c t b o + 3 376 001 \0 355 017 + 0035200 ( p c t b o > > P C T B . m 0035220 a x p c ) , p c t b n + 3 + ( p 0035240 c t b n > > P C T B . m a x 0035260 p c ) , ( p c t b o > > P C 0035300 T B . m a c p c ) l s h i f t 0035320 1 ) ; \r h p f r e e ( p c t b 0035340 o ) ; \r r g p c t b ! d o c 0035360 = p c t b n ; \r ] \r / / 0035400 I N S E R T A \r / 0035420 / c a t a l o g u e n o . 0035440 = S P E - 9 3 \r a n d i n s 0035460 e r t a ( d o c 1 , c p f i r s 0035500 t 1 , d o c 2 , c p f i r s t 2 0035520 , c p l a s t 2 ) b e \r [ i 0035540 f u l t ( c p l a s t 2 , c p 0035560 f i r s t 2 ) t h e n r e 376 0035600 001 \0 5 370 t u r n ; \r p c t b 1 0035620 = r g p c t b ! d o c 1 ; 0035640 \r p c t b 2 = r g p c t b 0035660 ! d o c 2 ; \r r g c p 1 0035700 = l v ( p c t b 1 > > P 0035720 C T B . r g c p ) ; \r r g c p 0035740 2 = l v ( p c t b 2 > > 0035760 P C T B . r g c p ) ; \r v d o 0036000 c 1 = d o c 1 ; \r v d o c 2 0036020 = d o c 2 ; \r d e l t a c p 0036040 2 = c p l a s t 2 - c p f i 0036060 r s t 2 + 1 ; \r p c f i r s t 1 0036100 = b i n s e a r c h a ( r g 0036120 c p 1 , ( p c t b 1 > > P C 0036140 T B . m a c p c ) , c p f i r s 0036160 t 1 ) ; \r p c f i r s t 2 = 0036200 b i n s 376 001 \0 245 201 e a r c h a ( 0036220 r g c p 2 , ( p c t b 2 > > 0036240 P C T B . m a c p c ) , c p f i 0036260 r s t 2 ) ; \r p c l a s t 2 = 0036300 b i n s e a r c h a ( r g c p 0036320 2 , ( p c t b 2 > > P C T B 0036340 . m a c p c ) , c p l a s t 2 ) 0036360 ; \r c p c n e w = p c l a s 0036400 t 2 - p c f i r s t 2 + 1 ; \r l 0036420 e t d e l t a p c = c p c 0036440 n e w ; \r r g p c d 1 = r 0036460 g c p 1 + ( p c t b 1 > > P 0036500 C T B . m a x p c ) + 1 ; \r r 0036520 g p c d 2 = r g c p 2 + ( p 0036540 c t b 2 > > P C T B . m a x 0036560 p c ) + 1 ; \r t e s t c p f i 0036600 r s t 1 e q ( 376 001 \0 024 h r g 0036620 c p 1 ! p c f i r s t 1 ) 0036640 i f n o t \r \t [ m a k e r o o 0036660 m p c ( d o c 1 , p c f i r s t 0036700 1 + 1 , c p c n e w + 1 , d e l 0036720 t a c p 2 ) ; \r \t r g c p 1 ! 0036740 ( p c f i r s t 1 + c p c n e 0036760 w + 1 ) = c p f i r s t 1 0037000 + d e l t a c p 2 ; \r \t p c s u 0037020 b s t r i n g ( r g p c d 1 + ( 0037040 ( p c f i r s t 1 + c p c n e w 0037060 + 1 ) l s h i f t 1 ) , \r 0037100 \t \t \t r g p c d 1 + ( p c f i r 0037120 s t 1 l s h i f t 1 ) , \r \t 0037140 \t \t c p f i r s t 1 - ( r g c p 0037160 1 ! p c f i r s t 1 ) \r \t \t 0037200 \t ) \r \t p c f i r s t 1 376 001 0037220 \0 245 227 = p c f i r s t 1 + 1 ; 0037240 d e l t a p c = d e l t a 0037260 p c + 1 ; \r \t ] \r i f s o \t [ 0037300 m a k e r o o m p c ( d o c 1 0037320 , p c f i r s t 1 , c p c n e w 0037340 , d e l t a c p 2 ) ; \r \t ] \r 0037360 i f d o c 1 e q d o c 2 0037400 & n o t u g t ( c p f i r s 0037420 t 1 , c p f i r s t 2 ) t h e 0037440 n \r \t [ \r \t c p f i r s t 2 = 0037460 c p f i r s t 2 + d e l t a c 0037500 p 2 ; \r \t p c f i r s t 2 = 0037520 p c f i r s t 2 + d e l t a p c 0037540 ; \r \t p c l a s t 2 = p c l 0037560 a s t 2 + d e l t a p c ; \r \t ] 0037600 ; \r r g c p 1 ! p c f i r s 0037620 t 1 376 001 \0 234 225 = c p f i r s 0037640 t 1 ; \r c p a d j u s t ( d o c 0037660 1 , c p f i r s t 1 , d e l t a 0037700 c p 2 ) ; \r p c s u b s t r i n 0037720 g ( r g p c d 1 + ( p c f i r s 0037740 t 1 l s h i f t 1 ) , r g 0037760 p c d 2 + ( p c f i r s t 2 l 0040000 s h i f t 1 ) , \r \t \t \t c p f 0040020 i r s t 2 - ( r g c p 2 ! p 0040040 c f i r s t 2 ) \r \t \t \t ) ; \r i 0040060 f p c f i r s t 2 e q p c 0040100 l a s t 2 t h e n r e t u r 0040120 n ; \r f o r i = 1 t o 0040140 c p c n e w - 2 d o \r \t [ r 0040160 g c p 1 ! ( p c f i r s t 1 0040200 + i ) = c p f i r s t 1 + ( 0040220 r g c p 2 ! 376 001 \0 224 325 ( p c 0040240 f i r s t 2 + i ) ) - c p f i r 0040260 s t 2 ; \r \t p c s u b s t r i n 0040300 g ( r g p c d 1 + ( ( p c f i r 0040320 s t 1 + i ) l s h i f t 1 ) 0040340 , \r \t \t \t r g p c d 2 + ( ( p c 0040360 f i r s t 2 + i ) l s h i f t 0040400 1 ) , \r \t \t \t 0 ) ; \r \t ] \r 0040420 r g c p 1 ! ( p c f i r s t 0040440 1 + c p c n e w - 1 ) = c p 0040460 f i r s t 1 + ( r g c p 2 ! 0040500 p c l a s t 2 ) - c p f i r s t 0040520 2 ; \r p c s u b s t r i n g ( r 0040540 g p c d 1 + ( ( p c f i r s t 1 0040560 + c p c n e w - 1 ) l s h i f 0040600 t 1 ) , \r \t \t \t r g p c d 2 + 0040620 ( p c l a s t 2 l s h i 376 001 \0 0040640 323 260 f t 1 ) , \r \t \t \t 0 \r \t \t 0040660 \t ) ; \r ] \r / / P C S 0040700 U B S T R I N G \r 0040720 / / c a t a l o g u e n o . 0040740 = S P E - 9 1 \r a n d p c 0040760 s u b s t r i n g ( p c d 1 , p 0041000 c d 2 , p o s ) b e \r [ l e 0041020 t t r c = ( p c d 2 > > 0041040 P C D . r c ) + p o s ; \r p c 0041060 d 1 > > P C D . r c = t 0041100 r c < < P C D . r c ; \r p c 0041120 d 1 > > P C D . l i v e = 0041140 0 ; \r p c d 1 > > P C D . 0041160 v p a d d r = ( p c d 2 > 0041200 > P C D . v p a d d r ) + ( t 0041220 r c < < P C D . p ) ; \r ] 0041240 \r \r 376 001 \0 004 202 / / M A K 0041260 E R O O M P C \r / 0041300 / c a t a l o g u e n o . 0041320 = S P E - 9 2 \r a n d m a k 0041340 e r o o m p c ( d o c , p c , d 0041360 e l t a p c , d e l t a c p ) 0041400 b e \r [ p c t b = r g p 0041420 c t b ! d o c ; \r i f ( ( 0041440 p c t b > > P C T B . m a c 0041460 p c ) + d e l t a p c - 1 ) g 0041500 e ( p c t b > > P C T B . 0041520 m a x p c ) t h e n \r \t [ l 0041540 e n g t h e n p c t b ( d o c , 0041560 ( p c t b > > P C T B . m a 0041600 x p c ) + d e l t a p c + d e l 0041620 t a m a x p c ) ; \r \t p c t b 0041640 = r g p c t 376 001 \0 Q 246 b ! 0041660 d o c ; \r \t p c t b 1 = r g 0041700 p c t b ! v d o c 1 ; \r \t p 0041720 c t b 2 = r g p c t b ! 0041740 v d o c 2 ; \r \t r g c p 1 = 0041760 l v ( p c t b 1 > > P C T B 0042000 . r g c p ) ; \r \t r g c p 2 = 0042020 l v ( p c t b 2 > > P C T 0042040 B . r g c p ) ; \r \t r g p c d 1 0042060 = r g c p 1 + ( p c t b 1 0042100 > > P C T B . m a x p c ) + 1 0042120 ; \r \t r g p c d 2 = r g c p 0042140 2 + ( p c t b 2 > > P C T B 0042160 . m a x p c ) + 1 ; \r \t ] \r 0042200 r g c p = l v ( p c t b 0042220 > > P C T B . r g c p ) ; \r 0042240 r g p c d = r g c p 376 001 \0 234 0042260 354 + ( p c t b > > P C T B . 0042300 m a x p c ) + 1 ; \r f o r i 0042320 = ( ( ( p c t b > > P C T 0042340 B . m a c p c ) - 1 ) l s h i 0042360 f t 1 ) b y - 2 t o ( 0042400 p c l s h i f t 1 ) d o 0042420 \r \t [ r g p c d ! ( i + 1 0042440 + ( d e l t a p c l s h i f t 0042460 1 ) ) = r g p c d ! ( 0042500 i + 1 ) ; \r \t r g p c d ! ( 0042520 i + ( d e l t a p c l s h i f 0042540 t 1 ) ) = r g p c d ! 0042560 i ; \r \t ] \r f o r i = ( 0042600 p c t b > > P C T B . m a c 0042620 p c ) b y - 1 t o p c 0042640 d o \r \t r g c p ! ( i + d e 0042660 l 376 001 \0 E 342 t a p c ) = ( r 0042700 g c p ! i ) + d e l t a c p 0042720 ; \r p c t b > > P C T B . m 0042740 a c p c = ( p c t b > > 0042760 P C T B . m a c p c ) + d e l t 0043000 a p c ; \r ] \r / / D E L 0043020 E T E A \r a n d d e 0043040 l e t e a ( d o c , c p f i r s 0043060 t , c p l a s t ) b e \r [ l 0043100 e t t p c d = v e c 2 ; 0043120 \r l e t d e l t a c p = n 0043140 i l ; \r i n v a l i d a t e d i 0043160 s p l a y ( d o c , c p f i r s 0043200 t , - 1 ) ; \r p c t b = r 0043220 g p c t b ! d o c ; \r r g 0043240 c p = l v ( p c t b > > 0043260 P C T B . 376 001 \0 350 356 r g c p ) 0043300 ; \r r g p c d = r g c p + 0043320 ( p c t b > > P C T B . m a 0043340 x p c ) + 1 ; \r p c f i r s t 0043360 = b i n s e a r c h a ( r g c 0043400 p , ( p c t b > > P C T B . 0043420 m a c p c ) , c p f i r s t ) ; 0043440 \r d e l t a c p = c p l a s 0043460 t - c p f i r s t + 1 ; \r p c l 0043500 a s t = b i n s e a r c h a 0043520 ( r g c p , ( p c t b > > P 0043540 C T B . m a c p c ) , c p l a s 0043560 t ) ; \r p c f i r s t d e l = 0043600 p c f i r s t + 1 ; \r p c l a 0043620 s t d e l = p c l a s t - 1 0043640 ; \r t e s t p c f i r s t e 0043660 q p c l a s t i f 376 001 \0 353 | 0043700 s o \r \t [ t e s t c p f i r 0043720 s t e q r g c p ! p c f 0043740 i r s t i f s o \r \t \t [ t e 0043760 s t ( c p l a s t + 1 ) e q 0044000 r g c p ! ( p c l a s t + 0044020 1 ) i f s o \r \t \t \t [ p c l 0044040 a s t d e l = p c f i r s t 0044060 ; \r \t \t \t p c f i r s t d e l 0044100 = p c f i r s t ; \r \t \t \t ] 0044120 \r \t \t i f n o t \t [ p c l a s 0044140 t d e l = p c f i r s t - 1 0044160 ; \r \t \t \t p c f i r s t d e l 0044200 = p c f i r s t ; \r \t \t \t p c 0044220 s u b s t r i n g ( r g p c d + 0044240 ( p c f i r s t l s h i f t 0044260 1 ) , \r \t r g p c d + ( p c f i 0044300 376 001 \0 S \0 r s t l s h i f t 0044320 1 ) , c p l a s t + 1 - ( r g c 0044340 p ! p c f i r s t ) ) ; \r \t 0044360 \t \t ] \r \t \t ] \r \t i f n o t 0044400 \t [ t e s t ( c p l a s t + 0044420 1 ) e q r g c p ! ( p c 0044440 l a s t + 1 ) i f s o \r \t \t \t 0044460 [ p c l a s t d e l = p c 0044500 f i r s t ; \r \t \t \t p c f i r s 0044520 t d e l = p c f i r s t + 1 0044540 ; \r \t \t \t ] \r \t \t i f n o t \t 0044560 [ m a k e r o o m p c ( d o c 0044600 , p c f i r s t + 1 , 1 , - d e 0044620 l t a c p ) ; \r \t \t \t r g c p 0044640 ! ( p c f i r s t + 1 ) = 0044660 c p f i r s t ; \r \t \t \t p c s u 0044700 b s t r i 376 001 \0 \r \t n g ( r g 0044720 p c d + ( ( p c f i r s t + 1 ) 0044740 l s h i f t 1 ) , \r \t r g p 0044760 c d + ( p c f i r s t l s h i 0045000 f t 1 ) , c p l a s t + 1 - ( 0045020 r g c p ! p c l a s t ) ) ; 0045040 \r \t \t \t c p a d j u s t ( d o c 0045060 , c p f i r s t , - d e l t a c 0045100 p ) ; \r \t \t \t r e t u r n ; \r \t 0045120 \t \t ] \r \t \t ] \r \t ] \r i f 0045140 n o t \t [ i f c p f i r s t 0045160 e q r g c p ! p c f i r 0045200 s t t h e n \r \t \t p c f i r s 0045220 t d e l = p c f i r s t ; \r 0045240 \t t e s t ( c p l a s t + 1 ) 0045260 e q r g c p ! ( p c l a 0045300 s t + 1 ) i f s o 376 001 \0 k ? \r 0045320 \t \t p c l a s t d e l = p c 0045340 l a s t \r \t i f n o t \t p c s u 0045360 b s t r i n g ( r g p c d + ( p 0045400 c l a s t l s h i f t 1 ) , 0045420 r g p c d + ( p c l a s t l s 0045440 h i f t 1 ) , c p l a s t + 1 0045460 - ( r g c p ! p c l a s t ) 0045500 ) ; \r \t ] \r l e t m a c p c 0045520 = p c t b > > P C T B . 0045540 m a c p c ; \r l e t c p c d e 0045560 l = p c l a s t d e l - p c 0045600 f i r s t d e l + 1 ; \r r g c p 0045620 ! p c f i r s t d e l = 0045640 c p f i r s t ; \r f o r i = 0045660 p c l a s t d e l + 2 t o 0045700 ( m a c p c ) d o \r \t r g c 376 0045720 001 \0 t 023 p ! ( i - c p c d e 0045740 l ) = ( r g c p ! i ) - 0045760 ( d e l t a c p ) ; \r i f ( c 0046000 p c d e l n e 0 ) & ( m 0046020 a c p c n e p c l a s t d e 0046040 l ) t h e n \r \t m o v e ( r g 0046060 p c d + ( ( p c l a s t d e l + 0046100 1 ) l s h i f t 1 ) , r g p 0046120 c d + ( p c f i r s t d e l l 0046140 s h i f t 1 ) , \r ( ( m a c p 0046160 c - p c l a s t d e l - 1 ) l 0046200 s h i f t 1 ) ) ; \r p c t b 0046220 > > P C T B . m a c p c = 0046240 m a c p c - c p c d e l ; \r c p 0046260 a d j u s t ( d o c , c p f i r 0046300 s t , - d e l t a c p ) ; \r ] 0046320 \r / / 376 001 \0 Y V I N S E 0046340 R T B \r / / c a t a l 0046360 o g u e n o . = S P E - 1 0046400 0 0 \r a n d i n s e r t b ( d 0046420 o c , c p , p p c d , s i z ) 0046440 b e \r [ p c t b = r g p 0046460 c t b ! d o c ; \r r g c p 0046500 = l v ( p c t b > > P 0046520 C T B . r g c p ) ; \r r g p c 0046540 d = r g c p + ( p c t b > 0046560 > P C T B . m a x p c ) + 1 ; 0046600 \r l e t m a c p c = p c t 0046620 b > > P C T B . m a c p c ; 0046640 \r t e s t m a c p c e q 0 0046660 i f s o \r \t v p c = 0 \r 0046700 i f n o t \t v p c = b i n s 0046720 e a r c h a ( r g 376 001 \0 242 D c p 0046740 , m a c p c , c p ) ; \r t e s t 0046760 c p e q r g c p ! v p 0047000 c i f s o \r \t m a k e r o o m 0047020 p c ( d o c , v p c , 1 , s i z 0047040 ) \r i f n o t \t [ m a k e r o 0047060 o m p c ( d o c , v p c + 1 , 2 0047100 , s i z ) ; \r \t r g c p ! ( 0047120 v p c + 2 ) = c p + s i z ; 0047140 \r \t p c s u b s t r i n g ( r g 0047160 p c d + ( ( v p c + 2 ) l s h 0047200 i f t 1 ) , r g p c d + ( v p 0047220 c l s h i f t 1 ) , c p - r 0047240 g c p ! v p c ) ; \r / / s 0047260 e t v p c t o n e w p c 0047300 \r \t v p c = v p c + 1 ; \r \t 0047320 ] \r r g c p ! v p c 376 001 0047340 \0 300 336 = c p \r m o v e ( p p c 0047360 d , r g p c d + ( v p c l s h 0047400 i f t 1 ) , 2 ) ; \r c p a d j 0047420 u s t ( d o c , c p , s i z ) ; 0047440 \r ] \r / / F I N D \r 0047460 / / \r a n d f i n d ( d o c 0047500 k , c p f i r s t k , c p l a s 0047520 t k , d o c , c p f i r s t , c 0047540 p l a s t ) = v a l o f \r [ 0047560 l e t k e y = v e c 3 0047600 0 ; \r l e t p = v e c 3 0047620 0 ; \r l e t r p = 0 ; \r l 0047640 e t c h a r = n i l ; \r i 0047660 f u g t ( c p f i r s t , c p 0047700 l a s t ) t h e n r e s u l 0047720 t i s f a l s e ; \r l e t k 0047740 e y l 376 001 \0 220 177 = c p l a s 0047760 t k - c p f i r s t k + 1 ; \r i 0050000 f k e y l g r 2 9 t h e 0050020 n \r \t [ s t c o p y ( s b p 0050040 a s t , " K e y t o o l o 0050060 n g - " ) \r \t r e s u l t i 0050100 s f a l s e ; \r \t ] \r v c p 0050120 = c p f i r s t k ; \r v d o 0050140 c = d o c k ; \r v c h r e m 0050160 a i n = 0 ; \r f o r i = 0050200 1 t o k e y l d o \r \t k 0050220 e y ! i = g e t v c h ( 0050240 ) / / * * \r p ! 1 = 0050260 0 ; \r f o r f p = 2 t 0050300 o k e y l d o \r \t [ r p 0050320 = r p + 1 ; \r \t p ! f p 0050340 = ( k e y ! 376 001 \0 353 _ f p 0050360 n e k e y ! r p ) ? r p 0050400 , p ! r p ; \r \t w h i l e 0050420 ( k e y ! f p n e k e y 0050440 ! r p ) & ( r p n e 0050460 0 ) d o \r \t \t r p = p 0050500 ! r p ; \r \t ] \r l e t i 0050520 = 0 ; \r v c p = c p f i 0050540 r s t ; \r v c h r e m a i n = 0050560 0 ; \r \t [ m a p c p ( d o c 0050600 , v c p ) ; \r \t w h i l e v c 0050620 h r e m a i n d o \r \t \t [ \r 0050640 \t \t t e s t v l b i f s o \r 0050660 \t \t \t [ c h a r = v p w 0050700 > > l h \r \t \t \t v l b = f 0050720 a l s e ; \r \t \t \t ] \r \t \t i f 0050740 n o t \t [ c h a r = 376 001 \0 0050760 0 251 v p w > > r h ; \r \t \t \t 0051000 v l b = t r u e ; \r \t \t \t v 0051020 p w = v p w + 1 ; \r \t \t \t ] 0051040 \r \t \t v c h r e m a i n = 0051060 v c h r e m a i n - 1 ; \r \t \t i 0051100 = i + 1 ; \r \t \t w h i l e 0051120 ( c h a r n e k e y ! i 0051140 ) & ( i n e 0 ) d o \r 0051160 \t \t \t i = p ! i ; \r \t \t 0051200 i f i e q k e y l t h e 0051220 n \r \t \t \t [ v c p f i r s t 0051240 = v c p - k e y l + 1 ; \r \t \t 0051260 \t v c p l a s t = v c p ; \r 0051300 \t \t \t r e s u l t i s t r u e 0051320 ; \r \t \t \t ] \r \t \t i f ( v c 0051340 p e q c p l a s t ) t h e 0051360 n \r 376 001 \0 224 < \t \t \t [ s t c o 0051400 p y ( s b p a s t , " N o t 0051420 f o u n d - " ) \r \t \t \t r e 0051440 s u l t i s f a l s e ; \r \t \t 0051460 \t ] \r \t \t v c p = v c p + 0051500 1 ; \r \t \t ] \r \t ] r e p e a 0051520 t \r ] \r / / S E T P 0051540 C S I Z \r / / c a t a l 0051560 o g u e n o . = S P E - 1 0051600 0 2 \r a n d s e t p c s i z ( 0051620 d o c , p c , s i z ) = v a 0051640 l o f / / * * v a l o f \r 0051660 [ p c t b = r g p c t b 0051700 ! d o c ; \r r g c p = 0051720 l v ( p c t b > > P C T B 0051740 . r g c p ) ; \r l e t t c p 0051760 = r g c p 376 001 \0 \0 344 ! ( p 0052000 c + 1 ) ; \r l e t d e l t a c 0052020 p = s i z - ( t c p - r g c 0052040 p ! p c ) ; \r f o r t p c 0052060 = p c + 1 t o ( p c t b 0052100 > > P C T B . m a c p c ) 0052120 d o \r \t r g c p ! t p c = 0052140 ( r g c p ! t p c ) + d e 0052160 l t a c p ; \r i f d e l t a c 0052200 p l s 0 t h e n \r \t t c p 0052220 = t c p + d e l t a c p ; \r 0052240 c p a d j u s t ( d o c , t c p 0052260 , d e l t a c p ) ; \r r e s u l 0052300 t i s d e l t a c p / / * 0052320 * \r ] \r / / C P A D 0052340 J U S T \r / / c a t a 0052360 l o g u e n o . \r a n 376 001 \0 350 0052400 375 d c p a d j u s t ( d o c , 0052420 c p , d e l t a c p ) b e \r [ 0052440 \r r g d i r t y ! d o c = 0052460 t r u e / / * * \r r g m 0052500 a c c p ! d o c = ( r g 0052520 m a c c p ! d o c ) + d e l 0052540 t a c p ; \r v c p = c p ; \r 0052560 v d e l t a c p = d e l t a 0052600 c p ; \r e n w w ( c p a d j u s 0052620 t 1 , d o c ) ; \r c p a d j u s 0052640 t e q = v c p a d j u s t e 0052660 q / / * * \r c p a d j u s t 0052700 3 ( s e l m a i n , d o c ) ; \r 0052720 c p a d j u s t 3 ( s e l a u x 0052740 , d o c ) ; \r c p a d j u s t e 0052760 q = 0 / / * * \r c p a d 0053000 j 376 001 \0 273 f u s t 3 ( s e l a r 0053020 g , d o c ) ; \r c p a d j u s t 0053040 l i s t ( r g p a r a ! d o 0053060 c , c p a d j u s t 2 , c p 0053100 a d j u s t 2 ) ; / / * * 0053120 \r c p a d j u s t l i s t ( r g 0053140 p a g e ! d o c , c p a d 0053160 j u s t 2 , c p a d j u s t 2 0053200 ) ; / / * * \r c p a d j u 0053220 s t l i s t ( r g r e a d o n l 0053240 y ! d o c , c p a d j u s 0053260 t 2 g , c p a d j u s t 2 ) 0053300 ; / / * * \r ] \r / / C 0053320 P A D J U S T 1 \r 0053340 / / c a t a l o g u e n o . 0053360 \r a n d c p a d j u s t 1 ( w 0053400 w ) b e \r 376 001 \0 X 333 [ \r / / 0053420 * * G Y P S Y P R O C E D U 0053440 R I Z E D C P A D J U S T D I 0053460 S P L S O T U R N T O C A 0053500 N H A V E I T R I G H T \r 0053520 i f v t u r n i n g t h e n 0053540 c p a d j u s t d i s p l ( w 0053560 w ) / / * * \r f o r d l 0053600 = r g d l l a s t ! w w 0053620 b y - 1 t o r g d l f i r 0053640 s t ! w w d o \r \t [ t e 0053660 s t u g t ( r g c p f i r s t 0053700 ! d l , v c p ) i f s o \r 0053720 \t \t [ r g c p f i r s t ! 0053740 d l = ( r g c p f i r s t 0053760 ! d l ) + v d e l t a c p ; \r 0054000 \t \t i f ( v d e l t 376 001 \0 j s 0054020 a c p l s 0 ) & u l t ( 0054040 r g c p f i r s t ! d l , v 0054060 c p ) t h e n \r \t \t \t r g x l 0054100 a s t ! d l = - 1 ; \r \t 0054120 \t r g c p l a s t ! d l = 0054140 ( r g c p l a s t ! d l ) 0054160 + v d e l t a c p ; \r \t \t ] \r 0054200 \t i f n o t \t [ i f n o t 0054220 u l t ( r g c p l a s t ! d 0054240 l , v c p ) t h e n \r \t \t \t r 0054260 g c p l a s t ! d l = ( 0054300 r g c p l a s t ! d l ) + v 0054320 d e l t a c p ; \r \t \t r e t u r 0054340 n ; \r \t \t ] \r \t ] \r u n l e 0054360 s s v t u r n i n g t h e n 0054400 c p a d j u s t d i s p l ( w 0054420 376 001 \0 : 6 w ) / / * * \r ] 0054440 \r \r a n d c p a d j u s t d i 0054460 s p l ( w w ) b e / / * * 0054500 \r i f u g t ( r g c p f d i s 0054520 p l ! w w , v c p ) t h e 0054540 n \r \t [ r g c p f d i s p l 0054560 ! w w = ( r g c p f d i s 0054600 p l ! w w ) + v d e l t a c 0054620 p ; \r \t i f u l t ( r g c p f 0054640 d i s p l ! w w , v c p ) 0054660 % n o t u l t ( r g c p f d 0054700 i s p l ! w w , r g m a c c 0054720 p ! ( r g d o c ! w w ) 0054740 ) t h e n \r \t \t [ \r \t \t r g c 0054760 p f d i s p l ! w w = v 0055000 c p ; \r \t \t r g u p d a t e ! 0055020 w w = 376 001 \0 231 362 t r u e ; 0055040 \r \t \t ] ; \r \t ] \r \r / / C 0055060 P A D J U S T 2 0055100 \r / / \r a n d c p a d j u s t 0055120 2 ( p c p ) b e \r [ i f u 0055140 g t ( r v p c p , v c p ) t 0055160 h e n / / * * : \r \t r v p 0055200 c p = v d e l t a c p g r 0055220 0 % u g t ( r v p c p , 0055240 v c p - v d e l t a c p ) ? \r 0055260 \t \t \t r v p c p + v d e l 0055300 t a c p , v c p \r ] \r a n d 0055320 c p a d j u s t 2 g ( p c p , 0055340 a d j ) b e / / * * n 0055360 e w \r [ i f c p c ( r v p 0055400 c p + a d j , v c p ) g r 0 0055420 t h e n / / * 376 001 \0 , 202 * 0055440 : \r \t r v p c p = v d e l 0055460 t a c p g r 0 % c p c ( 0055500 r v p c p , v c p - v d e l 0055520 t a c p ) g r 0 ? \r \t \t \t r 0055540 v p c p + v d e l t a c p 0055560 , v c p \r ] \r / / C P 0055600 A D J U S T 3 \r / / 0055620 \r a n d c p a d j u s t 3 ( s 0055640 e l , d o c ) b e \r [ \r i f 0055660 s e l > > S E L . d o c e q 0055700 d o c t h e n \r \t [ \r \t c p 0055720 a d j u s t g ( l v s e l > 0055740 > S E L . c p f i r s t , l 0055760 v s e l > > S E L . c p l 0056000 a s t ) \r \t s e l > > S E L 0056020 . x f i r s t = - 1 ; \r \t 376 0056040 001 \0 . 367 s e l > > S E L . x 0056060 l a s t = - 1 ; \r \t ] \r i 0056100 f s e l > > S E L . u l d o 0056120 c o f f e q d o c t h e n 0056140 / / * * \r \t c p a d j u s t 0056160 g ( l v s e l > > S E L . 0056200 u l c p f i r s t o f f , l v 0056220 s e l > > S E L . u l c p 0056240 l a s t o f f ) \r ] \r \r a n d 0056260 c p a d j u s t g ( p c p f i 0056300 r s t , p c p l a s t ) b e 0056320 / / * * \r [ \r l e t c a r 0056340 r o t = @ p c p l a s t e 0056360 q @ p c p f i r s t - 1 \r 0056400 c p a d j u s t 2 g ( p c p f i 0056420 r s t , c p a d j u s t e q ) 0056440 ; \r t e 376 \0 P 023 i s t c a r r 0056460 o t \r i f s o @ p c p l a s t 0056500 = @ p c p f i r s t - 1 0056520 \r i f n o t c p a d j u s t 2 0056540 g ( p c p l a s t , c p a d j 0056560 u s t e q ) ; \r ] 377 \0 \0 G H E A 0056600 P . S R \0 376 001 \0 034 S / / G H E 0056620 A P . S R M A L L O Y A T T 0056640 E M P T T O F I X B U G S 0056660 \r \r g e t " H E A P . D F " ; 0056700 \r \r / / I n c o m i n g P r 0056720 o c e d u r e s \r \r e x t e r n 0056740 a l [ \r \t e r r h l t ; \r \t e 0056760 r r c k ; \r \t u l t ; \r \t u g t 0057000 ; \r \t e n p h p ; \r \t e n p h p 0057020 d ; \r \t m o v e ; \r \t a d j u s 0057040 t p h p d ; \r \t c k s p e c s 0057060 / / * * \r \t ] ; \r \r / / I n 0057100 c o m i n g S t a t i c s \r \r 0057120 e x t e r n a l [ \r \t d c b ; 0057140 \r \t f d e b u g / / * * \r \t 0057160 ] ; \r \r / / O u t g o i n g 0057200 P r o c e d u r e s 376 001 \0 311 202 \r 0057220 \r e x t e r n a l [ \r \t h p t 0057240 o f f ; \r \t h p f r e e ; \r \t h 0057260 p a l l o c ; \r \t h p c o m p a 0057300 c t ; \r \t h p i n i t ; \r \t h p 0057320 a d j u s t p h p ; \r \t h p p r 0057340 e p a r e m o v e ; \r \t i n h e 0057360 a p ; \r \t c k h p ; / / * * 0057400 \r \t ] ; \r \r / / O u t g o i n 0057420 g S t a t i c s \r \r e x t e r 0057440 n a l [ \r \t v p z o n e ; \r \t 0057460 v s n c o m p a c t ; \r \t h d e 0057500 b u g / / * * \r \t ] ; \r \r 0057520 / / L o c a l S t a t i c s 0057540 \r \r s t a t i c [ \r \t v p z o 0057560 n e ; \r \t v s n c o m p a c t ; 0057600 \r \t h d e b u g / / * * \r 376 0057620 001 \0 356 \0 \t ] ; \r / / L o c a l 0057640 S t r u c t u r e s \r \r s t r 0057660 u c t u r e \r \t [ \r \t b l a n k 0057700 \t b i t 1 5 ; \r \t o d d \t b i 0057720 t 1 ; \r \t ] ; \r \r / / H P 0057740 T O F F \r l e t h p t 0057760 o f f ( p h p ) b e \r [ \r ( p 0060000 h p > > H P . f p ) > > 0060020 H P . b p = p h p > > H 0060040 P . b p ; \r ( p h p > > H P 0060060 . b p ) > > H P . f p = 0060100 p h p > > H P . f p ; \r v p 0060120 z o n e > > Z O N E . f r e 0060140 e = p h p > > H P . f p 0060160 ; \r v p z o n e > > Z O N E 0060200 . c f r e e = ( v p z o n e 0060220 > > 376 001 \0 360 270 Z O N E . c f 0060240 r e e ) - ( p h p > > H P . 0060260 s i z ) ; \r ] / / E n d h 0060300 p t o f f \r \r / / H P F 0060320 R E E \r \r a n d h p f r e 0060340 e ( p , n e w z o n e ; n u m 0060360 a r g s N ) b e \r [ \r l e t 0060400 t p h p = p - ( ( o f f s 0060420 e t H P . u s e ) / 1 6 ) ; \r 0060440 i f N g r 1 t h e n v 0060460 p z o n e = n e w z o n e ; 0060500 \r v p z o n e > > Z O N E . 0060520 c f r e e = ( v p z o n e 0060540 > > Z O N E . c f r e e ) + ( 0060560 t p h p > > H P . s i z ) ; 0060600 \r l e t h p f r l s t = v 0060620 p z o n e > > 376 001 \0 r 275 Z O 0060640 N E . f r e e ; \r t e s t t p 0060660 h p > > H P . f p e q p 0060700 r e v f r e e i f s o \r \t [ \r 0060720 \t l e t t p b k p r e v = 0060740 t p h p - r v ( t p h p - b s i 0060760 z ) ; \r \t t p b k p r e v > > 0061000 H P . s i z = t p b k p r 0061020 e v > > H P . s i z + ( t p 0061040 h p > > H P . s i z ) ; \r \t 0061060 t p h p = t p b k p r e v ; 0061100 \r \t ] \r i f n o t \t [ \r \t t p h 0061120 p > > H P . f p = h p f 0061140 r l s t > > H P . f p ; \r \t 0061160 t p h p > > H P . b p = 0061200 h p f r l s t ; \r \t ( h p f r l 0061220 s t > > H P . f p ) > 376 001 0061240 \0 207 301 > H P . b p = t p h 0061260 p ; \r \t h p f r l s t > > H 0061300 P . f p = t p h p ; \r \t ] ; 0061320 \r \r l e t n x p h p = t p 0061340 h p + ( t p h p > > H P . s 0061360 i z ) ; \r i f n x p h p n e 0061400 v p z o n e > > Z O N E . 0061420 m a x t h e n t e s t n o 0061440 t u l t ( n x p h p > > H 0061460 P . f p , m i n l i n k ) i f 0061500 s o \r \t [ \r \t v p z o n e > > 0061520 Z O N E . c f r e e = v p 0061540 z o n e > > Z O N E . c f r 0061560 e e + n x p h p > > H P . s 0061600 i z ; \r \t t p h p > > H P . 0061620 s i z = t p h p > > H P 0061640 . s i 376 001 \0 , A z + ( n x p h p 0061660 > > H P . s i z ) ; \r \t h p 0061700 t o f f ( n x p h p ) ; \r \t ] \r 0061720 i f n o t \t n x p h p > > H 0061740 P . f p = p r e v f r e e ; 0061760 / / U s e d b l o c k , 0062000 p r e v b l o c k f r e e \r 0062020 r v ( t p h p - b s i z + t p h 0062040 p > > H P . s i z ) = t 0062060 p h p > > H P . s i z ; \r ] 0062100 / / e n d h p f r e e \r \r 0062120 / / H P A L L O C 0062140 \r \r a n d h p a l l o c ( s i 0062160 z , n e w z o n e ; n u m a r 0062200 g s N ) = v a l o f \r [ \r 0062220 l e t h p o v d , h p f r l s 0062240 t = v p z o 376 001 \0 # 8 n e 0062260 > > Z O N E . o v h , v p z o 0062300 n e > > Z O N E . f r e e ; 0062320 \r l e t t p h p = v p z o 0062340 n e > > Z O N E . f r e e ; 0062360 \r s i z = s i z + h p o v d 0062400 ; \r i f s i z < < o d d 0062420 t h e n s i z = s i z + 1 0062440 ; \r \r w h i l e t p h p > > 0062460 H P . s i z l s s i z d 0062500 o \r \t [ \r \t t p h p = t p h 0062520 p > > H P . f p ; \r \t i f 0062540 ( t p h p e q 0 ) t h e n 0062560 e r r h l t ( " H W U " ) ; 0062600 / / U s e d b l k o n f 0062620 r e e l i s t \r \t i f ( t p 0062640 h p e q h p f r l s t 376 001 \0 0062660 217 276 ) t h e n r e s u l t i 0062700 s 0 ; \r \t ] ; \r \r h p t o f f 0062720 ( t p h p ) ; / / r e m o v 0062740 e f r o m t h e f r e e 0062760 l i s t \r \r t e s t t p h p 0063000 > > H P . s i z g e s i z 0063020 + h p o v h f i f s o \r \t [ \r 0063040 \t l e t t s i z = t p h p 0063060 > > H P . s i z ; \r \t t p h 0063100 p > > H P . s i z = s i 0063120 z ; \r \t l e t t p h p 2 n d 0063140 = t p h p + s i z ; \r \t t p h 0063160 p 2 n d > > H P . s i z = 0063200 t s i z - s i z ; \r \t r v ( t 0063220 p h p + t s i z - b s i z ) = 0063240 t s i z - s i z ; \r \t t p h p 0063260 2 n 376 001 \0 G 347 d > > H P . f 0063300 p = 0 ; \r \t h p f r e e ( l 0063320 v ( t p h p 2 n d > > H P . 0063340 u s e ) ) ; \r \t ] \r i f n o t \t 0063360 [ \r \t l e t n x p h p = t 0063400 p h p + ( t p h p > > H P . 0063420 s i z ) ; \r \t i f n x p h p 0063440 n e v p z o n e > > Z O N 0063460 E . m a x & n x p h p > > 0063500 H P . f p e q p r e v f r 0063520 e e \r \t \t t h e n n x p h p 0063540 > > H P . f p = 0 ; / / 0063560 T u r n o f f p r e v f r 0063600 e e \r \t ] ; \r r v ( t p h p - b 0063620 s i z + t p h p > > H P . s 0063640 i z ) = t p h p > > H P 0063660 . s i z ; \r t 376 001 \0 022 247 p h p 0063700 > > H P . f p = 0 ; / / 0063720 B l o c k n o w u s e d . 0063740 \r r e s u l t i s l v ( t p h 0063760 p > > H P . u s e ) ; \r ] 0064000 / / e n d h p a l l o c \r \r 0064020 \r / / C K H P \r \r a n d 0064040 c k h p ( n e w z o n e ; n 0064060 u m a r g s N ) b e \r [ \r l 0064100 e t u n u s e d , u s e d = 0064120 0 , 0 ; \r i f N g r 1 0064140 t h e n v p z o n e = n e 0064160 w z o n e ; \r l e t m i n p h 0064200 p , m a x p h p = v p z o n 0064220 e > > Z O N E . m i n , v p 0064240 z o n e > > Z O N E . m a x 0064260 ; \r l e t h p o v d , 376 001 \0 004 0064300 I d u m m y = v p z o n e 0064320 > > Z O N E . o v h , l v ( v 0064340 p z o n e > > Z O N E . d u 0064360 m m y ) ; \r l e t h p f r l s 0064400 t = v p z o n e > > Z O 0064420 N E . f r e e ; \r l e t t p h 0064440 p = m i n p h p ; \r l e t 0064460 l a s t f r e e = f a l s e 0064500 ; \r \t [ \r \t l e t t b l k s i 0064520 z = t p h p > > H P . s 0064540 i z ; \r \t i f t b l k s i z 0064560 e q 0 t h e n e r r c k ( 0064600 " H B Z " ) ; \r \t t e s t ( t 0064620 p h p > > H P . f p e q 0064640 0 ) % ( t p h p > > H P 0064660 . f p e q p r e v f r e e ) 0064700 376 001 \0 250 362 i f s o \r \t \t [ \r \t 0064720 \t u s e d = u s e d + t b l 0064740 k s i z ; \r \t \t l a s t f r e e 0064760 = f a l s e ; \r \t \t ] \r \t i 0065000 f n o t \t [ \r \t \t u n u s e d 0065020 = u n u s e d + t b l k s i z 0065040 ; \r \t \t i f l a s t f r e e 0065060 t h e n e r r c k ( " H L F " 0065100 ) ; \r \t \t l a s t f r e e = 0065120 t r u e ; \r \t \t ] ; \r \t t p h p 0065140 = t p h p + t b l k s i z ; 0065160 \r \t i f u g t ( t p h p , m a 0065200 x p h p ) t h e n e r r c k 0065220 ( " H S L " ) ; \r \t ] r e p e 0065240 a t u n t i l t p h p e q 0065260 m a x p h p ; \r i f m i n p h 0065300 p + u s e d 376 001 \0 350 336 + u n u s 0065320 e d n e m a x p h p t h e 0065340 n e r r c k ( " H S W " ) ; \r 0065360 \r l e t t p f r e e = d u 0065400 m m y > > H P . f p ; \r l e 0065420 t b h p f r l s t , f r e e 0065440 = f a l s e , 0 ; \r \r w h i l 0065460 e t p f r e e n e d u m m 0065500 y d o \r \t [ \r \t i f n o t 0065520 u l t ( t p f r e e , m a x p 0065540 h p ) t h e n e r r c k ( 0065560 " H A F " ) ; \r \t i f t p f r 0065600 e e e q h p f r l s t t h 0065620 e n \r \t \t t e s t b h p f r l 0065640 s t i f s o e r r c k ( " H 0065660 M F " ) ; \r \t \t i f n o t b h 0065700 p f r l s t = t r 376 001 \0 230 # 0065720 u e ; \r \t i f ( t p f r e e 0065740 > > H P . f p ) > > H P . 0065760 f p e q 0 t h e n e r r 0066000 c k ( " H N F " ) ; \r \t f r e e 0066020 = f r e e + ( t p f r e e 0066040 > > H P . s i z ) ; \r \t t p f 0066060 r e e = t p f r e e > > 0066100 H P . f p ; \r \t ] \r i f f r 0066120 e e n e u n u s e d t h e 0066140 n e r r c k ( " H S F " ) ; \r 0066160 \r i f h p o v d e q 4 t 0066200 h e n \r \t [ \r \t t p f r e e = 0066220 d u m m y > > H P . b p ; 0066240 \r \t b h p f r l s t = f a l 0066260 s e ; \r \t f r e e = 0 ; \r \t 0066300 w h i l e t p f r e e n e 0066320 376 001 \0 340 246 d u m m y d o \r \t \t 0066340 [ \r \t \t i f n o t u l t ( t 0066360 p f r e e , m a x p h p ) t h 0066400 e n e r r c k ( " H A B " ) ; 0066420 \r \t \t i f t p f r e e e q 0066440 h p f r l s t t h e n \r \t \t \t 0066460 t e s t b h p f r l s t i f 0066500 s o e r r c k ( " H M B " ) ; 0066520 \r \t \t \t i f n o t b h p f r l 0066540 s t = t r u e ; \r \t \t f r e 0066560 e = f r e e + ( t p f r e e 0066600 > > H P . s i z ) ; \r \t \t t 0066620 p f r e e = t p f r e e > 0066640 > H P . b p ; \r \t \t ] \r \t i 0066660 f f r e e n e u n u s e d 0066700 t h e n e r r c k ( " H S B 0066720 " ) ; \r \r 376 001 \0 276 260 \t i f u n 0066740 u s e d n e v p z o n e > 0066760 > Z O N E . c f r e e t h e 0067000 n e r r c k ( " H S C " ) ; \r 0067020 \t ] ; / / e n d 4 w o r 0067040 d o v e r h e a d c h e c k 0067060 s \r ] / / e n d c k h p \r 0067100 \r / / H P C O M P 0067120 A C T \r a n d h p c o m p 0067140 a c t ( u p , m i n p h p n e w 0067160 , m a x p h p n e w , n e w z o 0067200 n e ; n u m a r g s N ) b 0067220 e \r [ \r i f h d e b u g t h 0067240 e n c k h p ( ) ; / / * * 0067260 \r i f f d e b u g t h e n 0067300 c k s p e c s ( ) ; / / * * 0067320 \r l e t s u m , c 376 001 \0 1 274 u 0067340 r a d r , e n d a d r , t s i z 0067360 = 0 , n i l , n i l , 0 ; \r 0067400 l e t n e w a d r = n i l 0067420 ; \r i f N e q 0 t h e n 0067440 u p = f a l s e ; \r i f 0067460 N g r 3 t h e n v p z o 0067500 n e = n e w z o n e ; \r i f 0067520 N l s 2 t h e n m i n 0067540 p h p n e w = v p z o n e 0067560 > > Z O N E . m i n ; \r i f 0067600 N l s 3 t h e n m a x p 0067620 h p n e w = v p z o n e > 0067640 > Z O N E . m a x ; \r i f u 0067660 l t ( v p z o n e > > Z O N 0067700 E . c f r e e , 4 ) t h e n 0067720 r e t u r n ; \r v s n c o m p 376 0067740 001 \0 ! 032 a c t = v s n c o m 0067760 p a c t + 1 ; \r i f v p z o n 0070000 e > > Z O N E . o v h e q 0070020 2 & u p t h e n e r r 0070040 h l t ( " H C U " ) ; / / N 0070060 o t a l l o w e d \r t e s t 0070100 u p i f n o t \r \t [ \r \t c u r 0070120 a d r = v p z o n e > > 0070140 Z O N E . m i n ; \r \t w h i l e 0070160 u l t ( c u r a d r , v p z o 0070200 n e > > Z O N E . m a x ) 0070220 d o \r \t \t [ \r \t \t t e s t c u 0070240 r a d r > > H P . f p e q 0070260 0 % \r \t \t c u r a 0070300 d r > > H P . f p e q p 0070320 r e v f r e e i f s o \r \t \t \t 0070340 [ \r \t \t 376 001 \0 372 325 \t c u r a d r 0070360 > > H P . f p = m i n p 0070400 h p n e w + s u m ; \r \t \t \t s u 0070420 m = s u m + ( c u r a d r 0070440 > > H P . s i z ) ; \r \t \t \t ] 0070460 \r \t \t i f n o t c u r a d r 0070500 > > H P . f p = - 1 ; / 0070520 / M a r k a s F r e e \r \t 0070540 \t c u r a d r = c u r a d r 0070560 + ( c u r a d r > > H P . s 0070600 i z ) ; \r \t \t ] \r \t ] \r i f s o 0070620 \t [ \r \t c u r a d r = v p z 0070640 o n e > > Z O N E . m a x - 0070660 ( r v ( v p z o n e > > Z 0070700 O N E . m a x - b s i z ) ) ; \r 0070720 \t \t [ \r \t \t t e s t c u r a d 0070740 r > > H P . f 376 001 \0 024 330 p 0070760 e q 0 % \r \t \t c u 0071000 r a d r > > H P . f p e q 0071020 p r e v f r e e i f s o \r \t 0071040 \t \t [ \r \t \t \t s u m = s u m 0071060 + ( c u r a d r > > H P . s 0071100 i z ) ; \r \t \t \t c u r a d r > 0071120 > H P . f p = m a x p h p 0071140 n e w - s u m ; \r \t \t \t ] \r \t \t 0071160 i f n o t c u r a d r > > 0071200 H P . f p = - 1 ; / / M 0071220 a r k a s F r e e \r \t \t i f 0071240 n o t u g t ( c u r a d r , 0071260 v p z o n e > > Z O N E . m 0071300 i n ) t h e n b r e a k ; \r 0071320 \t \t c u r a d r = c u r a d 0071340 r - r v ( c u r a d r - b s 376 001 0071360 \0 B 250 i z ) ; \r \t \t ] r e p e 0071400 a t ; \r \t ] ; \r h p c o m p 1 : 0071420 \r \r e n p h p ( h p a d j u s t 0071440 p h p ) ; \r e n p h p d ( h p p 0071460 r e p a r e m o v e ) ; \r h p c 0071500 o m p 2 : \r \r s u m = 0 ; \r 0071520 \r t e s t u p i f n o t \r \t 0071540 [ \r \t c u r a d r = v p z o 0071560 n e > > Z O N E . m i n ; \r 0071600 \t w h i l e u l t ( c u r a d 0071620 r , v p z o n e > > Z O N E 0071640 . m a x ) d o \r \t \t [ \r \t \t t 0071660 s i z = c u r a d r > > 0071700 H P . s i z ; \r \t \t i f c u r 0071720 a d r > > H P . f p n e 0071740 - 1 t h e n \r \t \t \t [ \r \t \t \t 0071760 n e w 376 001 \0 201 257 a d r = m i 0072000 n p h p n e w + s u m ; \r \t \t \t 0072020 m o v e ( c u r a d r , n e w a 0072040 d r , t s i z ) ; \r \t \t \t i f 0072060 u l t ( n e w a d r > > H P 0072100 . f p , m i n l i n k ) t h e 0072120 n \r \t \t \t \t a d j u s t p h p d 0072140 ( n e w a d r > > H P . f p 0072160 , \r \t \t \t \t n e w a d r ) ; \r \t 0072200 \t \t n e w a d r > > H P . f 0072220 p = 0 ; / / M a r k a 0072240 s u s e d \r \t \t \t s u m = 0072260 s u m + t s i z ; \r \t \t \t ] \r \t 0072300 \t c u r a d r = c u r a d r 0072320 + t s i z ; \r \t \t ] ; \r \t ] \r i 0072340 f s o \t [ \r \t c u r a d r = 0072360 v p z o n e > 376 001 \0 026 030 > Z 0072400 O N E . m a x - ( r v ( v p z 0072420 o n e > > Z O N E . m a x - 0072440 b s i z ) ) ; \r \t \t [ \r \t \t t s 0072460 i z = c u r a d r > > H 0072500 P . s i z ; \r \t \t i f c u r a 0072520 d r > > H P . f p n e - 0072540 1 t h e n \r \t \t \t [ \r \t \t \t s 0072560 u m = s u m + t s i z ; \r \t 0072600 \t \t n e w a d r = m a x p h 0072620 p n e w - s u m ; \r \t \t \t t e s 0072640 t n o t u l t ( c u r a d r 0072660 + t s i z - 1 , n e w a d r ) 0072700 i f s o \r \t \t \t \t [ f o r i 0072720 = t s i z - 1 t o 0 b 0072740 y - 1 d o \r \t \t \t \t \t n e w 0072760 a d r ! i = c u r 376 001 \0 0073000 254 002 a d r ! i ; \r \t \t \t \t ] 0073020 \r \t \t \t i f n o t \t m o v e ( 0073040 c u r a d r , n e w a d r , t s 0073060 i z ) ; \r \t \t \t i f u l t ( n 0073100 e w a d r > > H P . f p , m 0073120 i n l i n k ) t h e n \r \t \t \t 0073140 \t a d j u s t p h p d ( n e w a 0073160 d r > > H P . f p , \r \t \t \t 0073200 \t n e w a d r ) ; \r \t \t \t n e w 0073220 a d r > > H P . f p = 0 0073240 ; \r \t \t \t ] \r \t \t i f n o t 0073260 u g t ( c u r a d r , v p z o n 0073300 e > > Z O N E . m i n ) t 0073320 h e n b r e a k ; \r \t \t c u r 0073340 a d r = c u r a d r - r v ( 0073360 c u r a d r - b s i z ) ; \r \t \t 0073400 ] 376 001 \0 c s r e p e a t ; \r \t 0073420 ] ; \r \r t s i z = m a x p h 0073440 p n e w - m i n p h p n e w - s 0073460 u m ; / / T o t a l o f 0073500 u n u s e d s t o r a g e \r i 0073520 f u p t h e n ( m i n p h 0073540 p n e w + t s i z ) > > H P 0073560 . f p = p r e v f r e e ; \r 0073600 \r t e s t u p i f n o t h 0073620 p i n i t ( m a x p h p n e w - 0073640 t s i z , m a x p h p n e w , v 0073660 p z o n e > > Z O N E . o v 0073700 h ) \r i f s o h p i n i t ( m 0073720 i n p h p n e w , m i n p h p n 0073740 e w + t s i z , v p z o n e > 0073760 > Z O N E . o v h ) ; \r \r v p 0074000 z o n e > > 376 001 \0 243 Y Z O N 0074020 E . m i n = m i n p h p n e 0074040 w ; \r v p z o n e > > Z O N 0074060 E . m a x = m a x p h p n e 0074100 w ; \r \r i f h d e b u g t h 0074120 e n c k h p ( ) ; / / * * 0074140 \r i f f d e b u g t h e n 0074160 c k s p e c s ( ) ; / / * * 0074200 \r ] / / e n d h p c o m p 0074220 a c t \r \r / / H P I N 0074240 I T \r / / H p i n i t s e 0074260 t s t h e s i z e s f o r 0074300 t h e b i g i n i t i a l 0074320 c o r e b l o c k \r \r a n d 0074340 h p i n i t ( m i n , m a x , 0074360 o v h , n e w z o n e ; n u m 0074400 a r g s N ) b e \r [ 376 001 \0 z 0074420 _ \r i f N g r 3 t h e n 0074440 v p z o n e = n e w z o n 0074460 e ; \r l e t d u m m y = l 0074500 v ( v p z o n e > > Z O N E 0074520 . d u m m y ) ; \r i f m i n 0074540 < < o d d t h e n m i n 0074560 = m i n + 1 ; \r i f m a x 0074600 < < o d d t h e n m a x 0074620 = m a x - 1 ; \r \r v p z o n e 0074640 > > Z O N E . f r e e = 0074660 d u m m y ; \r v p z o n e > > 0074700 Z O N E . m i n = m i n ; 0074720 \r v p z o n e > > Z O N E . 0074740 m a x = m a x ; \r v p z o n 0074760 e > > Z O N E . o v h = 0075000 o v h ; \r v p z o n e > > Z 0075020 O 376 001 \0 377 R N E . c f r e e = 0075040 m a x - m i n ; \r \r d u m m y 0075060 > > H P . f p = m i n ; 0075100 \r d u m m y > > H P . b p 0075120 = m i n ; \r d u m m y > > 0075140 H P . s i z = h p o v h f ; 0075160 \r r v ( d u m m y + h p o v h f 0075200 - b s i z ) = h p o v h f ; 0075220 \r \r m i n > > H P . s i z 0075240 = m a x - m i n ; \r m i n > 0075260 > H P . f p = d u m m y ; 0075300 \r m i n > > H P . b p = 0075320 d u m m y ; \r r v ( m a x - 1 ) 0075340 = m a x - m i n ; \r ] / / 0075360 e n d h p i n i t \r \r / / 0075400 H P A D J U S T 0075420 P H P \r 376 001 \0 T 7 / / S P 0075440 E c a t a l o g u e n o . \r 0075460 \r a n d h p a d j u s t p h p 0075500 ( p p h p ) b e \r r v p p h 0075520 p = ( ( ( r v p p h p ) - 0075540 ( o f f s e t H P . u s e ) / 0075560 1 6 ) > > H P . f p ) + ( ( 0075600 o f f s e t H P . u s e ) / 1 0075620 6 ) ; \r / / H P P R E 0075640 P A R E M O V E 0075660 \r / / c a t a l o g u e n o 0075700 . \r a n d h p p r e p a r e 0075720 m o v e ( i d , p h p ) b e \r 0075740 \t ( p h p - ( o f f s e t H P 0075760 . u s e ) / 1 6 ) > > H P . 0076000 f p = i d ; \r / / I N 0076020 H E A P \r / / \r 376 \0 221 207 001 0076040 a n d i n h e a p ( p h p ) 0076060 = v a l o f \r [ t e s t n 0076100 o t u l t ( p h p , v p z o n 0076120 e > > Z O N E . m i n ) & 0076140 n o t u g t ( p h p , v p z 0076160 o n e > > Z O N E . m a x ) 0076200 i f s o \r \t r e s u l t i s 0076220 t r u e \r i f n o t \t r e s u l 0076240 t i s f a l s e \r ] \r \r \r 0076260 377 \0 \0 G L F . S R \0 376 001 \0 Z 273 0076300 / / G L F . S R \t S A M E A 0076320 S X L F . S R \r \r g e t " B 0076340 R A V O . D F " ; \r g e t " C 0076360 H A R . D F " ; \r g e t " G I 0076400 N N . D F " / / $ $ \r \r / / 0076420 I n c o m i n g P r o c e d 0076440 u r e s \r \r e x t e r n a l [ 0076460 \r \t h p a l l o c a ; \r \t s t s 0076500 i z e ; \r \t e r r h l t ; \r \t m 0076520 o v e c ; \r \t s t c o p y ; \r \t 0076540 s e t p c s i z ; \r \t i n v a l 0076560 i d a t e d i s p l a y ; \r \t i 0076600 n s e r t b ; \r \t f i n s e r t 0076620 k / / * * \r / / $ $ [ \r \t c 0076640 p p a r a \r \t p a r a d e t a i 0076660 l s \r \t c o m p a c t s p e c \r 0076700 376 001 \0 2 f / / $ $ ] \r \t ] ; \r 0076720 \r / / I n c o m i n g S t a 0076740 t i c s \r \r e x t e r n a l [ 0076760 \r \t v p c ; \r \t p c t b ; \r \t r 0077000 g p c t b ; \r \t r g c p ; \r \t r 0077020 g p c d ; \r \t ] ; \r \r / / O u 0077040 t g o i n g P r o c e d u r e 0077060 s \r \r e x t e r n a l [ \r \t i 0077100 n s e r t l f ; \r \t s e t l f ; 0077120 \r \t f i n d l f p c ; \r \t ] ; \r 0077140 \r / / O u t g o i n g S t a 0077160 t i c s \r \r e x t e r n a l [ 0077200 \r \t v l f ; \r \t d n l f ; \r \t ] 0077220 ; \r \r / / L o c a l S t a 0077240 t i c s \r \r s t a t i c [ \r \t 0077260 v l f ; \r \t d n l f ; \r \t ] ; \r 0077300 \r / / I 376 001 \0 210 0 N S E 0077320 R T L F \r / / c a t a 0077340 l o g u e n o . = S P E - 0077360 1 0 1 \r l e t i n s e r t l f 0077400 ( d o c , c p , l f , i d , m a 0077420 x s i z e ) b e \r [ l e t 0077440 p p c d = v e c 2 ; \r c p 0077460 = f i n s e r t k ( d o c , 0077500 c p , 1 ) / / * * \r v l 0077520 f = h p a l l o c a ( l f l 0077540 ) ; \r v l f > > L F . s l 0077560 = h p a l l o c a ( ( m a x s 0077600 i z e r s h i f t 1 ) + 2 ) 0077620 ; \r ( v l f > > L F . s l ) 0077640 ! 0 = 1 ; \r ( ( v l f 0077660 > > L F . s l ) ! 1 ) = 0077700 c h s p l s h i 376 001 \0 , 375 f 0077720 t 8 ; \r v l f > > L F . l 0077740 i n k = d n l f ! l f ; 0077760 \r d n l f ! l f = v l f 0100000 ; \r v l f > > L F . d i r t 0100020 y = 0 ; \r v l f > > L F 0100040 . l f = l f ; \r v l f > > 0100060 L F . i d = i d ; \r v l f 0100100 > > L F . d o c = d o c 0100120 ; \r v l f > > L F . m a x s 0100140 i z = m a x s i z e ; \r p p 0100160 c d > > P C D . l i v e = 0100200 1 ; \r p p c d > > P C D . 0100220 e s c = v l f ; \r p p c d 0100240 > > P C D . l f = l f ; \r 0100260 p p c d > > P C D . i d = 0100300 i d ; \r i n s e r t b ( d o 376 0100320 001 \0 > 371 c , c p , p p c d , 1 ) 0100340 ; \r v l f > > L F . p c = 0100360 v p c ; \r ] \r \r / / S E 0100400 T L F \r / / c a t a l 0100420 o g u e n o . = S P E - 1 0100440 0 3 \r a n d s e t l f ( l f , 0100460 i d , s b ) = v a l o f \r [ 0100500 \r l e t p l f = d n l f 0100520 ! l f ; \r l e t t c p = 0100540 n i l ; \r w h i l e p l f n 0100560 e 0 d o \r \t [ i f p l f 0100600 > > L F . i d n e i d 0100620 t h e n \r \t \t [ p l f = 0100640 p l f > > L F . l i n k ; \r 0100660 \t \t l o o p ; \r \t \t ] \r \t l e 0100700 t t p c = p l f > > L 0100720 F . p c 376 001 \0 256 266 ; \r \t l e t 0100740 d o c = p l f > > L F . 0100760 d o c ; \r \t p c t b = r g 0101000 p c t b ! d o c ; \r \t r g 0101020 c p = l v ( p c t b > > 0101040 P C T B . r g c p ) ; \r \t l e 0101060 t p p c d = r g c p + ( p 0101100 c t b > > P C T B . m a x p 0101120 c ) + 1 + ( t p c l s h i f t 0101140 1 ) ; \r \t i f ( p l f > > 0101160 L F . p c g e p c t b > 0101200 > P C T B . m a c p c ) % \r 0101220 \t \t ( p l f > > L F . p c 0101240 l s 0 ) % \r \t \t ( n o t p 0101260 p c d > > P C D . l i v e ) 0101300 % \r \n \t \t ( p p c d > > P 0101320 C D . e s c n e 376 001 \0 254 265 p 0101340 l f ) t h e n \r \t \t t p c 0101360 = f i n d l f p c ( d o c , p 0101400 l f ) ; \r \t i f p l f > > 0101420 L F . m a x s i z l s s t s 0101440 i z e ( s b ) - 1 d o e r r 0101460 h l t ( " s o " ) ; \r \t m o v e 0101500 c ( p l f > > L F . s l , ( 0101520 p l f > > L F . s l ) + ( ( 0101540 p l f > > L F . m a x s i z 0101560 ) \r \t \t r s h i f t 1 ) + 1 0101600 , 0 ) ; \r \t s t c o p y ( p l f 0101620 > > L F . s l , s b ) ; \r \t 0101640 l e t s i z c h a n g e = 0101660 s e t p c s i z ( d o c , t p c 0101700 , s t s i z e ( s b ) - 1 ) ; 0101720 / / * * s i z c h a n g 376 001 0101740 \0 212 346 e \r / / $ $ [ \r \t t c p 0101760 = r g c p ! t p c \r \t i 0102000 n v a l i d a t e d i s p l a y 0102020 ( d o c , t c p , - 1 ) ; \r \t i 0102040 f s i z c h a n g e l s 0 0102060 t h e n \r \t \t [ \r \t \t l e t 0102100 p a r a = c p p a r a ( d o 0102120 c , t c p ) \r \t \t l e t s p 0102140 e c , s i z , l o o k s , c h a 0102160 n g e s , r c p , r = n i l , n 0102200 i l , n i l , n i l , n i l , n 0102220 i l \r \t \t p a r a d e t a i l s 0102240 ( d o c , p a r a , l v s 0102260 p e c , t c p - 1 ) \r \t \t c o 0102300 m p a c t s p e c ( s p e c ) \r 0102320 \t \t s p e c > > S P E C . d 0102340 i r t 376 001 \0 253 316 y = t r u e 0102360 \r \t \t ] \r / / $ $ ] \r \t p l f 0102400 = p l f > > L F . l i n 0102420 k ; \r \t t c p = f i n s e r 0102440 t k ( d o c , t c p , s i z 0102460 c h a n g e ) / / * * \r \t ] 0102500 \r r e s u l t i s t c p ; \r 0102520 ] \r / / F I N D L 0102540 F P C \r / / c a t a l o g 0102560 u e n o . = S P E - 1 0 8 0102600 \r a n d f i n d l f p c ( d o 0102620 c , p l f ) = v a l o f \r [ 0102640 p c t b = r g p c t b 0102660 ! d o c ; \r r g p c d = 0102700 ( l v ( p c t b > > P C T 0102720 B . r g c p ) ) + ( p c t b > 0102740 > P C T B . m 376 \0 340 343 B a x p 0102760 c ) + 1 ; \r f o r i = 0 0103000 b y 2 t o ( ( p c t b > 0103020 > P C T B . m a x p c ) l s 0103040 h i f t 1 ) d o \r \t [ i f 0103060 n o t ( ( r g p c d + i ) 0103100 > > P C D . l i v e ) t h e 0103120 n l o o p ; \r \t i f ( r g p 0103140 c d + i ) > > P C D . e s c 0103160 e q p l f t h e n \r \t \t [ 0103200 p l f > > L F . p c = 0103220 i r s h i f t 1 ; \r \t \t r e 0103240 s u l t i s i r s h i f t 0103260 1 ; \r \t \t ] \r \t ] \r e r r h 0103300 l t ( " l e " ) ; \r ] \r 377 \0 \0 0103320 G F I L E . S R \0 376 001 \0 024 232 / / 0103340 G F I L E . S R \t G Y P S Y 0103360 a d d e d r e a d f i l e e 0103400 t c t o i n v o k e o v e 0103420 r l a y \r \r g e t " B R A V O 0103440 . D F " ; \r g e t " C H A R . 0103460 D F " ; \r g e t " G I N N . D 0103500 F " ; / / * * f o r m i 0103520 n u s e r f n \r \r / / I n c o 0103540 m i n g P r o c e d u r e s \r 0103560 \r e x t e r n a l [ \r \t G E T 0103600 A F I L E ; \r \t O P E N A F I L 0103620 E ; \r \t s t s i z e ; \r \t h p a 0103640 l l o c a ; \r \t s t c o p y ; \r 0103660 \t s t a p p e n d ; \r \t u g t ; 0103700 \r \t s t g e t ; \r \t s t p u t ; 0103720 \r \t m o v e c ; \r \t m o v e 376 001 0103740 \0 365 333 ; \r \t A c t O n P a g e s 0103760 ; \r \t h p f r e e ; \r \t u l t ; 0104000 \r \t g e t s ; \r \t R e a l D A ; 0104020 \r \t G e t N e x t D A ; \r \t e r 0104040 r h l t ; \r \t C r e a t e F i l 0104060 e ; \r \t p u t s ; \r \t g e t v p 0104100 ; \r \t W r i t e P a g e s ; \r \t 0104120 t r i m s ; \r \t f l u s h f n ; 0104140 \r \t s b w s i z e ; \r \t u m i n 0104160 ; \r \t V i r t u a l D A ; \r \t d 0104200 i s k i o ; \r \t c k d o c ; \r \t 0104220 r e m a k e v m t b ; \r \t i n h 0104240 e a p ; \r / / * * \r \t q r e a 0104260 d f i l e ; \r \t q r e a d f i l 0104300 e 1 ; \r \t q w r i t e f i l e ; 0104320 \r \t q w r i t e f i l e 1 ; \r \t 0104340 o v e 376 001 \0 T 365 r l a y \r \t c k 0104360 d i r \r \t ] ; \r \r / / I n c o 0104400 m i n g S t a t i c s \r \r e x 0104420 t e r n a l [ \r \t s b p a s t 0104440 ; \r \t v c p ; \r \t v c h r e m a 0104460 i n ; \r \t v c p l a s t ; \r \t v 0104500 l b ; \r \t v p w ; \r \t v r g c c 0104520 ; \r \t S Y S T E M D I R ; \r \t m 0104540 a c b p ; \r \t r g v p a ; \r \t m 0104560 p f n o f ; \r \t d n b p ; \r \t v 0104600 w r e m a i n ; \r \t f i l l I n 0104620 D A ; \r \t D C r e a d ; \r \t v b 0104640 p ; \r \t ] ; \r \r / / O u t g o 0104660 i n g P r o c e d u r e s \r \r 0104700 e x t e r n a l [ \r \t o p e n 0104720 ; \r \t n o r m a l i z e f i l e 0104740 s b ; \r \t o p e 376 001 \0 343 @ n s ; 0104760 \r \t c r e a t e s ; \r \t d i r l 0105000 k u p ; \r \t f n a l l o c ; \r \t 0105020 c l o s e s ; \r \t s e t m a c f 0105040 p ; \r \t u p d a t e o f s ; \r \t 0105060 e n d o f s ; \r \t d e a l l o c 0105100 f n ; \r / / * * \r \t r e a d f 0105120 i l e ; \r \t r e a d f i l e 1 ; 0105140 \r \t w r i t e f i l e ; \r \t w r 0105160 i t e f i l e 1 ; \r \t ] ; \r \r / 0105200 / O u t g o i n g S t a t i 0105220 c s \r \r e x t e r n a l [ \r \t 0105240 m p f n s b ; \r \t c s t r e a m 0105260 ; \r \t d n f n ; \r \t r g c f n ; 0105300 \r \t m a c f n ; \r \t v s n 1 ; \r 0105320 \t v s n 2 ; \r \t v v e r s i o n 0105340 ; \r \t v d a ; \r \t v p o s 376 001 \0 0105360 _ 312 ; \r \t v p o s h o l e ; \r \t 0105400 c o f ; \r \t v d e l t a f p ; \r 0105420 \t ] ; \r \r / / L o c a l S 0105440 t a t i c s \r \r s t a t i c [ 0105460 \r \t m p f n s b ; \r \t c s t r e 0105500 a m ; \r \t d n f n ; \r \t r g c f 0105520 n ; \r \t m a c f n ; \r \t v s n 1 0105540 ; \r \t v s n 2 ; \r \t v v e r s i 0105560 o n ; \r \t v d a ; \r \t v p o s ; 0105600 \r \t v p o s h o l e ; \r \t c o f 0105620 ; \r \t v d e l t a f p ; \r \t ] ; 0105640 \r \r m a n i f e s t [ \r \t l 0105660 d i r s t r u c = 7 ; / / 0105700 p l u s t h e r e s t o 0105720 f t h e n a m e \r \t ] \r / 0105740 / O P E N \r / / c a t 0105760 a l 376 001 \0 345 216 o g u e n o . 0106000 = 1 2 4 \r l e t o p e n ( f 0106020 n , s b , w f ) = v a l o f 0106040 \r [ l e t t s t r e a m = 0106060 n i l ; \r l e t t c h a r 0106100 = n i l ; \r l e t t s b = 0106120 v e c ( s b f n a m l + 1 ) 0106140 ; \r n o r m a l i z e f i l e s 0106160 b ( s b , t s b ) ; \r u n l e s 0106200 s d i r l k u p ( t s b ) d 0106220 o r e s u l t i s f a l s e 0106240 ; \r u n l e s s o p e n s ( f 0106260 n , v v e r s i o n , v s n 1 , 0106300 v s n 2 , v d a , w f , f a l s 0106320 e ) d o \r \t [ s t c o p y ( 0106340 s b p a s t , " F i l e t o 0106360 o l a r g e 376 001 \0 234 ~ - " ) 0106400 ; \r \t r e s u l t i s f a l s 0106420 e ; \r \t ] \r l e t s i z = 0106440 ( s t s i z e ( t s b ) + 6 ) 0106460 r s h i f t 1 ; \r m p f n s 0106500 b ! f n = h p a l l o c 0106520 a ( s i z ) ; \r ( m p f n s b 0106540 ! f n ) ! 0 = 0 ; \r s 0106560 t c o p y ( m p f n s b ! f 0106600 n , t s b ) ; \r r e s u l t i s 0106620 t r u e ; \r ] \r \r a n d o p 0106640 e n s ( f n , v e r s i o n , s 0106660 n 1 , s n 2 , d a , w f , w m o 0106700 d e ) = v a l o f \r [ l e 0106720 t t o f = h p a l l o c a 0106740 ( o f s i z + 1 2 9 ) ; \r t o f 0106760 > > O F . v e r s i 376 001 \0 342 0107000 8 o n = v e r s i o n ; \r t 0107020 o f > > O F . s n 1 = s 0107040 n 1 ; \r t o f > > O F . s n 0107060 2 = s n 2 ; \r t o f > > 0107100 O F . w f = w f ; \r t o f 0107120 > > O F . w m o d e = w m 0107140 o d e ; \r t o f > > O F . r 0107160 g d a = d a ; \r t o f > > 0107200 O F . p o s = 0 ; \r t o f 0107220 > > O F . m a c f p = 1 0107240 2 9 ; \r l e t r g d a = l 0107260 v ( t o f > > O F . r g d 0107300 a ) ; \r l e t l a s t p a g e 0107320 = n i l ; \r l e t n u m c 0107340 h a r s l a s t = n i l ; \r 0107360 l e t n u m c h a r s f u l l 0107400 p 376 001 \0 \f 257 a g e s = n i l 0107420 ; \r m o v e c ( r g d a + 1 , r 0107440 g d a + 1 2 9 , f i l l I n D A 0107460 ) ; \r t e s t w f i f n o t 0107500 \r \t [ l a s t p a g e = A 0107520 c t O n P a g e s ( 0 , r g d a 0107540 , l v ( t o f > > O F . f i 0107560 l e i d ) , 0 , 1 2 9 , D C r e 0107600 a d , l v n u m c h a r s l a 0107620 s t , 0 , d n b p ! b p b u 0107640 f f , 0 ) ; \r \t i f l a s t p 0107660 a g e e q 1 3 0 t h e n \r 0107700 \t \t r e s u l t i s f a l s e 0107720 ; \r \t t e s t l a s t p a g e 0107740 i f s o \r \t \t n u m c h a r s 0107760 f u l l p a g e s = ( l a s 0110000 t p a g e - 376 001 \0 227 210 1 ) l s 0110020 h i f t 9 \r \t i f n o t \t n u 0110040 m c h a r s f u l l p a g e s 0110060 = 0 ; \r \t t o f > > O F . 0110100 m a c p o s = n u m c h a r 0110120 s f u l l p a g e s + n u m c h 0110140 a r s l a s t ; \r \t m p f n o f 0110160 ! f n = t o f ; \r \t s e 0110200 t m a c f p ( f n , l a s t p a 0110220 g e + 1 ) ; \r \t ] \r i f s o \t 0110240 [ m p f n o f ! f n = 0110260 t o f ; \r \t t o f > > O F . 0110300 m a c p o s = 0 ; \r \t ] \r 0110320 c o f = c o f + 1 ; \r r e s 0110340 u l t i s t r u e ; \r ] \r / 0110360 / C R E A T E S 0110400 \r / / \r a n d c r 376 001 \0 4 ? 0110420 e a t e s ( f n , s b , w f , w 0110440 m o d e ) = v a l o f \r [ 0110460 l e t t s b = v e c s b 0110500 f n a m l + 1 ; \r n o r m a l i 0110520 z e f i l e s b ( s b , t s b ) 0110540 ; \r u n l e s s d i r l k u p 0110560 ( t s b ) d o \r \t [ l e t 0110600 d i r = v e c ( o f f s e 0110620 t D I R . n a m e ) / 1 6 \r \t 0110640 d i r ! 4 = 0 ; \r \t C r 0110660 e a t e F i l e ( t s b , d i r 0110700 + 1 ) ; \r \t d i r > > D I R 0110720 . d a = V i r t u a l D A ( 0110740 d i r > > D I R . d a ) ; \r 0110760 \t l e t s i z d i r = ( o 0111000 f f s e t D I R . n a m e ) / 0111020 376 001 \0 244 l 1 6 + s b w s i z e ( 0111040 t s b ) ; \r \t ( m p f n o f ! 0111060 f n d i r ) > > O F . w f 0111100 = t r u e ; \r \t i f v p o 0111120 s h o l e n e ( m p f n o f 0111140 ! f n d i r ) > > O F . 0111160 m a c p o s t h e n \r \t \t [ 0111200 ( m p f n o f ! f n d i r ) 0111220 > > O F . p o s = v p o 0111240 s h o l e ; \r \t \t l e t s i z 0111260 h o l e = g e t s ( f n d i 0111300 r ) ; \r \t \t i f s i z h o l e 0111320 l s s i z d i r t h e n 0111340 e r r h l t ( " s i z " ) ; \r \t 0111360 \t i f s i z d i r l s s i 0111400 z h o l e t h e n \r \t \t \t [ 0111420 ( m p f n 376 001 \0 351 344 o f ! f 0111440 n d i r ) > > O F . p o s 0111460 = v p o s h o l e ; \r \t \t \t p 0111500 u t s ( f n d i r , s i z h o l 0111520 e - s i z d i r ) ; \r \t \t \t v p 0111540 o s h o l e = v p o s h o l 0111560 e + ( ( s i z h o l e - s i z d 0111600 i r ) l s h i f t 1 ) ; \r \t 0111620 \t \t ] \r \t \t ] \r \t ( m p f n 0111640 o f ! f n d i r ) > > O 0111660 F . p o s = v p o s h o l e 0111700 ; \r \t d i r > > D I R . t y 0111720 p e = 1 ; \r \t d i r > > 0111740 D I R . s i z = s i z d i r 0111760 ; \r \t f o r i = 0 t o 0112000 ( o f f s e t D I R . n a m e 0112020 ) / 1 6 - 1 d o \r 376 001 \0 027 . \t 0112040 \t p u t s ( f n d i r , d i r 0112060 ! i ) ; \r \t f o r i = 0 0112100 t o s b w s i z e ( t s b ) 0112120 - 1 d o \r \t \t p u t s ( f n d 0112140 i r , t s b ! i ) ; \r \t f l 0112160 u s h f n ( f n d i r ) ; \r \t ( 0112200 m p f n o f ! f n d i r ) 0112220 > > O F . w f = f a l s e 0112240 ; \r \t v s n 1 = d i r > > 0112260 D I R . s n 1 ; \r \t v s n 2 0112300 = d i r > > D I R . s n 2 0112320 ; \r \t v v e r s i o n = d i 0112340 r > > D I R . v e r s i o n 0112360 ; \r \t v d a = R e a l D A ( 0112400 d i r > > D I R . d a ) ; \r 0112420 \t v p o s = v p o s h o l 376 0112440 001 \0 312 n e ; \r \t ] \r u n l e s 0112460 s o p e n s ( f n , v v e r s 0112500 i o n , v s n 1 , v s n 2 , v d 0112520 a , w f , f a l s e ) d o \r \t 0112540 [ s t c o p y ( s b p a s t , 0112560 " F i l e t o o l a r g e 0112600 - " ) ; \r \t r e s u l t i s 0112620 f a l s e ; \r \t ] \r l e t s 0112640 i z = ( s t s i z e ( t s b 0112660 ) + 6 ) r s h i f t 1 ; \r m 0112700 p f n s b ! f n = h p a 0112720 l l o c a ( s i z ) ; \r ( m p f 0112740 n s b ! f n ) ! 0 = 0112760 0 ; \r s t c o p y ( m p f n s b 0113000 ! f n , t s b ) ; \r c k d i 0113020 r ( ) / / * * \r r e s u l t 0113040 i s t 376 001 \0 ? 215 r u e ; \r ] 0113060 \r / / N O R M A L 0113100 I Z E F I L E S 0113120 B \r / / \r a n d n o r m a l i 0113140 z e f i l e s b ( s b s o u r c 0113160 e , s b d e s t ) b e \r [ \r 0113200 l e t t c h a r = n i l ; 0113220 \r s b d e s t > > l h = 0113240 s t s i z e ( s b s o u r c e ) 0113260 ; \r f o r i = 0 t o s 0113300 b s o u r c e > > l h - 1 0113320 d o \r \t [ t c h a r = s t 0113340 g e t ( s b s o u r c e , i ) ; 0113360 \r \t s t p u t ( s b d e s t , i 0113400 , t c h a r % # 4 0 ) ; \r \t 0113420 ] \r i f t c h a r n e $ 0113440 . t h e n \r \t s 376 001 \0 P 301 t a 0113460 p p e n d ( s b d e s t , " . " 0113500 ) ; \r u n l e s s ( s b d e s 0113520 t > > l h ) < < o d d 0113540 t h e n \r \t s t p u t ( s b d e 0113560 s t , s b d e s t > > l h , 0113600 0 ) ; \r ] \r \r / / D I R 0113620 L K U P \r / / \r a n d 0113640 d i r l k u p ( s b ) = v a 0113660 l o f \r [ l e t l w i n s b 0113700 = s b w s i z e ( s b ) - 1 0113720 ; \r l e t l c m a s k = # 0113740 2 0 0 4 0 ; \r l e t f i r s t 0113760 l c m a s k = # 4 0 ; \r l e 0114000 t o f d i r = m p f n o f 0114020 ! f n d i r ; \r o f d i r 0114040 > > O F . p o s = 0 ; 376 001 0114060 \0 270 F \r l e t m a c p o s = 0114100 o f d i r > > O F . m a c 0114120 p o s ; \r l e t t y p e = 0114140 n i l ; \r l e t j = n i l 0114160 ; \r l e t s i z = n i l ; 0114200 \r l e t t w o r d = n i l 0114220 ; \r l e t p n a m e = n i 0114240 l ; \r l e t l d i r e n t r y 0114260 = ( o f f s e t D I R . n 0114300 a m e ) / 1 6 + l w i n s b + 1 0114320 ; \r l e t h o l e n e e d e d 0114340 = t r u e ; \r v w r e m a i 0114360 n = 0 ; \r v d e l t a f p 0114400 = m a c b p - 1 ; \r w h i l e 0114420 u l t ( o f d i r > > O F 0114440 . p o s , m a c p o s ) d o \r 0114460 \t [ 376 001 \0 0 332 v p o s = o 0114500 f d i r > > O F . p o s ; \r 0114520 \t i f v w r e m a i n l e 0114540 0 t h e n \r \t \t t w o r d = 0114560 g e t s ( f n d i r ) ; \r \t t 0114600 y p e = v p w > > D I R 0114620 . t y p e ; \r \t s i z = v p 0114640 w > > D I R . s i z ; \r \t t 0114660 e s t t y p e i f s o \r \t \t 0114700 t e s t v w r e m a i n g e 0114720 s i z i f s o \r \t \t \t [ p 0114740 n a m e = l v ( v p w > > 0114760 D I R . n a m e ) ; \r \t \t \t i 0115000 f r v s b n e ( ( r v 0115020 p n a m e ) % f i r s t l c 0115040 m a s k ) t h e n \r \t \t \t \t g 0115060 o t o f a i l 376 001 \0 256 252 i n c 0115100 ; \r \t \t \t f o r i = 1 t 0115120 o l w i n s b d o \r \t \t \t \t 0115140 i f ( s b ! i % l c m 0115160 a s k ) n e ( p n a m e ! 0115200 i % l c m a s k ) t h e 0115220 n \r \t \t \t \t \t g o t o f a i l 0115240 i n c ; \r \t \t \t v s n 1 = v 0115260 p w ! 1 ; \r \t \t \t v s n 2 0115300 = v p w ! 2 ; \r \t \t \t v v 0115320 e r s i o n = v p w ! 3 0115340 ; \r \t \t \t v d a = R e a l D 0115360 A ( v p w ! 5 ) ; \r \t \t \t v 0115400 d e l t a f p = 0 ; \r \t \t \t 0115420 r e s u l t i s t r u e ; \r \t 0115440 \t \t ] \r \t \t i f n o t \r \t \t \t 0115460 [ o f d i r > > O F 376 001 \0 0115500 253 177 . p o s = v p o s + 2 ; 0115520 \r \t \t \t v s n 1 = g e t s ( 0115540 f n d i r ) ; \r \t \t \t v s n 2 0115560 = g e t s ( f n d i r ) ; \r \t 0115600 \t \t v v e r s i o n = g e t 0115620 s ( f n d i r ) ; \r \t \t \t t w o 0115640 r d = g e t s ( f n d i r ) 0115660 ; \r \t \t \t v d a = R e a l D 0115700 A ( g e t s ( f n d i r ) ) ; \r 0115720 \t \t \t t w o r d = g e t s ( 0115740 f n d i r ) ; \r \t \t \t i f r v 0115760 s b n e ( t w o r d % 0116000 f i r s t l c m a s k ) t h e 0116020 n \r \t \t \t \t g o t o f a i l n 0116040 i n c ; \r \t \t \t f o r i = 0116060 1 t o l w i n s b d o \r \t 0116100 \t \t 376 001 \0 C 377 \t [ t w o r d 0116120 = g e t s ( f n d i r ) ; \r \t 0116140 \t \t \t i f ( s b ! i % 0116160 l c m a s k ) n e ( t w o r 0116200 d % l c m a s k ) t h e n 0116220 \r \t \t \t \t \t g o t o f a i l n 0116240 i n c ; \r \t \t \t \t ] \r \t \t \t v 0116260 d e l t a f p = 0 ; \r \t \t \t 0116300 r e s u l t i s t r u e ; \r \t 0116320 \t \t ] \r \t i f n o t \r \t \t [ 0116340 i f h o l e n e e d e d & 0116360 ( s i z g e l d i r e n t r 0116400 y ) t h e n \r \t \t \t [ \r \t \t 0116420 \t v p o s h o l e = v p o s 0116440 ; \r \t \t \t h o l e n e e d e d 0116460 = f a l s e ; \r \t \t \t ] \r \t 0116500 \t t e s t v 376 001 \0 277 f w r e m 0116520 a i n g e s i z i f s o \r 0116540 \t \t \t g o t o f a i l i n c \r 0116560 \t \t i f n o t \r \t \t \t g o t o 0116600 f a i l n i n c ; \r \t \t ] \r f 0116620 a i l n i n c : \r \t \t o f d i r 0116640 > > O F . p o s = v p o 0116660 s + ( s i z l s h i f t 1 ) 0116700 ; \r \t \t v w r e m a i n = 0 0116720 ; \r \t \t l o o p ; \r f a i l i n 0116740 c : \r \t \t o f d i r > > O F 0116760 . p o s = v p o s + ( s i z 0117000 l s h i f t 1 ) ; \r \t \t v w 0117020 r e m a i n = v w r e m a i 0117040 n - s i z ; \r \t \t v p w = v 0117060 p w + s i z ; \r \t ] \r i f h 0117100 o l e n e e d e d t h 376 001 \0 033 0117120 337 e n \r \t v p o s h o l e = 0117140 o f d i r > > O F . m a c p 0117160 o s ; \r v d e l t a f p = 0 0117200 ; \r r e s u l t i s f a l s e 0117220 ; \r ] \r / / F N A L 0117240 L O C \r / / c a t a l o g 0117260 u e n o . = 1 2 8 \r a n d 0117300 f n a l l o c ( ) = v a 0117320 l o f \r [ f o r f n = m 0117340 i n u s e r f n t o m a x f 0117360 n - 1 d o \r \t i f m p f n o 0117400 f ! f n e q - 1 t h e 0117420 n r e s u l t i s f n ; \r r 0117440 e s u l t i s - 1 ; \r ] \r \r 0117460 / / C L O S E S \r 0117500 / / \r a n d c l o s e s ( f n 0117520 ) 376 001 \0 - v b e \r [ e r r h 0117540 l t ( " c l s " ) ; \r i f ( m 0117560 p f n o f ! f n ) > > O 0117600 F . w f t h e n \r \t [ f l u 0117620 s h f n ( f n ) ; \r \t l e t m 0117640 a c p o s = ( m p f n o f 0117660 ! f n ) > > O F . m a c p 0117700 o s ; \r \t l e t l a s t n u m 0117720 c h a r s = m a c p o s < 0117740 < P C D . r c ; \r \t l e t r 0117760 g d a = l v ( ( m p f n o 0120000 f ! f n ) > > O F . r g 0120020 d a ) ; \r \t l e t f i l e i d 0120040 = l v ( ( m p f n o f ! 0120060 f n ) > > O F . f i l e i d 0120100 ) ; \r \t i f l a s t n u m c h 0120120 a r s t h 376 001 \0 L 376 e n \r \t \t 0120140 [ l e t f p = m a c p o 0120160 s < < P C D . p ; \r \t \t l e 0120200 t v p a = n i l ; \r \t \t v 0120220 p a < < V P A . f n = f n 0120240 ; \r \t \t v p a < < V P A . f 0120260 p = m a c p o s < < P C 0120300 D . p ; \r \t \t l e t c a = 0120320 g e t v p ( v p a ) ; \r \t \t W r 0120340 i t e P a g e s ( 0 , r g d a , 0120360 f i l e i d , f p + 1 , f p + 1 0120400 , 0 , 0 , l a s t n u m c h a r 0120420 s , c a ) ; \r \t \t ] \r \t t r i 0120440 m s ( f n ) ; \r \t ( m p f n o f 0120460 ! f n ) > > O F . w f 0120500 = f a l s e ; \r \t ] \r ] \r \r 0120520 / / S E T M 376 001 \0 262 347 0120540 A C F P \r / / \r a n d s 0120560 e t m a c f p ( f n , n e w m a 0120600 c ) b e \r [ l e t o f = 0120620 m p f n o f ! f n ; \r l e 0120640 t m a c f p = o f > > 0120660 O F . m a c f p ; \r u n l e s s 0120700 u l t ( o f > > O F . m a 0120720 c p o s , ( n e w m a c l s h 0120740 i f t 9 ) ) t h e n e r r 0120760 h l t ( " m f p " ) ; \r l e t 0121000 o f n e w = h p a l l o c a 0121020 ( o f s i z + n e w m a c ) ; \r 0121040 o f = m p f n o f ! f n 0121060 ; \r m o v e ( o f , o f n e w , 0121100 o f s i z + u m i n ( m a c f p 0121120 , n e w m a c ) ) ; \r l e t r 0121140 376 001 \0 z 366 g d a n e w = l v 0121160 ( o f n e w > > O F . r g d 0121200 a ) ; \r i f n e w m a c g r 0121220 m a c f p t h e n \r \t m o v 0121240 e c ( r g d a n e w + m a c f p 0121260 , r g d a n e w + n e w m a c , 0121300 f i l l I n D A ) ; \r o f n e w 0121320 > > O F . m a c f p = n 0121340 e w m a c ; \r m p f n o f ! 0121360 f n = o f n e w ; \r h p f r 0121400 e e ( o f ) ; \r ] \r \r / / U 0121420 P D A T E O F S 0121440 \r / / \r a n d u p d a t e o 0121460 f s ( ) b e \r [ c k d o c 0121500 ( ) ; \r f o r f n = m i 0121520 n u s e r f n t o m a x f n 0121540 - 1 d o 376 001 \0 R S \r \t [ i f 0121560 f n s c r e q f n t h e 0121600 n e r r h l t ( " s c r " ) ; 0121620 \r \t i f ( r g c f n ! f n 0121640 e q 0 ) & ( m p f n o f 0121660 ! f n n e - 1 ) & n 0121700 o t ( m p f n o f ! f n ) 0121720 > > O F . w f d o \r \t \t [ 0121740 h p f r e e ( m p f n s b ! 0121760 f n ) ; \r \t \t h p f r e e ( m 0122000 p f n o f ! f n ) ; \r \t \t m 0122020 p f n o f ! f n = - 1 ; 0122040 \r \t \t c o f = c o f - 1 ; \r 0122060 \t \t i f c o f l s 2 t h 0122100 e n e r r h l t ( " c s t " ) 0122120 ; \r \t \t m p f n s b ! f n 0122140 = 0 ; \r \t \t ] \r 376 001 \0 035 7 \t 0122160 ] \r f o r b p = 0 t o 0122200 m a c b p - 1 d o \r \t i f 0122220 m p f n o f ! ( ( r g v p a 0122240 + b p ) > > V P A . f n ) 0122260 e q - 1 t h e n \r \t \t r g v 0122300 p a ! b p = - 1 ; \r r e 0122320 m a k e v m t b ( ) ; \r ] \r 0122340 \r / / E N D O F S \r 0122360 / / \r a n d e n d o f s ( f n 0122400 ) = v a l o f \r [ l e t 0122420 o f = m p f n o f ! f n 0122440 ; \r t e s t u l t ( o f > > 0122460 O F . p o s , o f > > O F 0122500 . m a c p o s ) i f s o \r \t r 0122520 e s u l t i s f a l s e \r i f 0122540 n o t \t r e s u l t i s t r 376 0122560 001 \0 340 ^ u e ; \r ] \r \r / / D 0122600 E A L L O C F N 0122620 \r / / \r a n d d e a l l o c 0122640 f n ( f n ) b e \r [ t e s t 0122660 i n h e a p ( m p f n o f ! 0122700 f n ) i f n o t \r \t e r r h 0122720 l t ( " n i h " ) \r i f s o \t h 0122740 p f r e e ( m p f n o f ! f 0122760 n ) ; \r t e s t i n h e a p ( 0123000 m p f n s b ! f n ) i f n 0123020 o t \r \t e r r h l t ( " n i h " 0123040 ) \r i f s o \t h p f r e e ( m p 0123060 f n s b ! f n ) ; \r m p f n 0123100 s b ! f n = 0 ; \r m p f 0123120 n o f ! f n = - 1 ; \r ] 0123140 \r \r / / * * \r \r a n d r e 0123160 a d f i 376 001 \0 344 o l e ( s e l f 0123200 n a m , d o c , c p ) = v a 0123220 l o f \r [ \r o v e r l a y ( f n 0123240 f i l e b b ) ; \r l e t a n s 0123260 = q r e a d f i l e ( s e l 0123300 f n a m , d o c , c p ) \r r e s 0123320 u l t i s a n s \r ] \r \r a n d 0123340 r e a d f i l e 1 ( s b f n a 0123360 m , d o c , c p ) = v a l o 0123400 f \r [ \r o v e r l a y ( f n f i 0123420 l e b b ) ; \r l e t a n s = 0123440 q r e a d f i l e 1 ( s b f n 0123460 a m , d o c , c p ) \r r e s u l 0123500 t i s a n s \r ] \r \r a n d w 0123520 r i t e f i l e ( s e l f n a m 0123540 , d o c f n a m , c p f i r s t 0123560 , c p l a s t , t 376 001 \0 B 243 r a 0123600 n s l a t e ) = v a l o f \r 0123620 [ \r o v e r l a y ( f n f i l e 0123640 b b ) ; \r l e t a n s = q 0123660 w r i t e f i l e ( s e l f n a 0123700 m , d o c f n a m , c p f i r s 0123720 t , c p l a s t , t r a n s l a 0123740 t e ) \r r e s u l t i s a n s 0123760 \r ] \r \r a n d w r i t e f i l 0124000 e 1 ( s b f n a m , d o c f n a 0124020 m , c p f i r s t , c p l a s t 0124040 , t r a n s l a t e ) = v a 0124060 l o f \r [ \r o v e r l a y ( f n 0124100 f i l e b b ) ; \r l e t a n s 0124120 = q w r i t e f i l e 1 ( s 0124140 b f n a m , d o c f n a m , c p 0124160 f i r s t , c p l a s t , t 376 \0 0124200 031 B 262 r a n s l a t e ) \r r e s 0124220 u l t i s a n s \r ] \r 377 \0 \0 G 0124240 P C . S R \0 376 001 \0 177 y / / G P 0124260 C . S R \t \t g e t s c r w d a 0124300 n d p u t s c r w d \r \r g e t 0124320 " B R A V O . D F " ; \r g e t 0124340 " C H A R . D F " ; \r / / I 0124360 n c o m i n g P r o c e d u r 0124400 e s \r \r e x t e r n a l [ \r \t 0124420 e r r h l t ; \r \t u l t ; \r \t u 0124440 g t ; \r \t e r r c k ; \r \t g e t 0124460 v p ; \r \t h p a l l o c a ; \r \t 0124500 i n s e r t l f ; \r \t s e t l f 0124520 ; \r \t m u l t ; \r \t s t s i z e 0124540 ; \r \t s t n u m ; \r \t s t g e t 0124560 ; \r \t g e t s ; \r \t p u t s ; \r 0124600 \t u m i n ; \r \t ] ; \r \r / / I 0124620 n c o m i n g S t a t i c s \r 0124640 \r e x t e r n a l [ 376 001 \0 l 243 0124660 \r \t v b p ; \r \t c k p r o c ; \r 0124700 \t c k p e r r ; \r \t p c t b ; \r 0124720 \t r g p c t b ; \r \t r g c p ; \r 0124740 \t v p c ; \r \t r g p c d ; \r \t p 0124760 p c d ; \r \t r g m a c c p ; \r \t 0125000 r g b s ; \r \t v c p ; \r \t c b l 0125020 i n d ; \r \t d e l t a c p ; \r \t 0125040 v c p p u t ; \r \t v c h r e m a 0125060 i n p u t ; \r \t v l b p u t ; \r 0125100 \t v p w p u t ; \r \t m p f n o f 0125120 ; \r \t ] ; \r \r / / O u t g o i 0125140 n g P r o c e d u r e s \r \r e 0125160 x t e r n a l [ \r \t b i n s e 0125200 a r c h a ; \r \t c k b i n s e a 0125220 r c h a ; \r \t m a p c p ; \r \t m 0125240 a p c p b ; \r \t p r e v s c r v 0125260 376 001 \0 331 033 c h ; \r \t g e t v c h 0125300 \r \t p u t v c h \r \t g e t i n t 0125320 ; \r \t p u t i n t ; \r \t c p r e 0125340 a l c h ; \r \t g e t s c r w d 0125360 / / * * \r \t p u t s c r w d 0125400 / / * * \r \t ] ; \r \r / / O u 0125420 t g o i n g S t a t i c s \r \r 0125440 e x t e r n a l \r \t [ \r \t v p w 0125460 ; \r \t v l b ; \r \t v c h r e m a 0125500 i n ; \r \t v p a ; \r \t p f w p g 0125520 ; \r \t v d o c ; \r \t r c n e w ; 0125540 \r \t v c h r e m a i n b ; \r \t ] 0125560 \r \r / / L o c a l S t a t i 0125600 c s \r \r s t a t i c \r \t [ \r \t v 0125620 p w ; \r \t v l b ; \r \t v c h r e 0125640 m a i n ; \r \t v p a ; \r \t p f w 0125660 p g ; \r \t 376 001 \0 352 277 v d o c ; \r 0125700 \t r c n e w ; \r \t v c h r e m a 0125720 i n b ; \r \t ] \r \r \r / / P C 0125740 \r / / B I N S E A R 0125760 C H A \r / / t h r e s h o 0126000 l d s e a r c h f o r k 0126020 i n t b l \r / / c a t a l o 0126040 g u e n o . = S P E - 5 9 0126060 \r \r l e t b i n s e a r c h a 0126100 ( t b l , m a x i , k ) = v 0126120 a l o f \r [ l e t t t b l 0126140 = t b l - 1 ; \r l e t u = 0126160 m a x i ; \r l e t l = 1 0126200 ; \r l e t i = n i l ; \r i 0126220 f u l t ( k , t b l ! m a 0126240 x i ) d o \r \t [ i = ( u 0126260 + l ) r s h i f t 376 001 \0 F K 0126300 1 ; \r \t t e s t u g t ( ( t t 0126320 b l ! i ) , k ) i f s o 0126340 u = i - 1 \r \t i f n o t \r \t 0126360 \t [ t e s t ( n o t u g 0126400 t ( ( t t b l ! ( i + 1 ) 0126420 ) , k ) ) i f s o l = i 0126440 + 1 \r \t \t i f n o t r e s u l 0126460 t i s i - 1 \r \t \t ] \r \t ] r 0126500 e p e a t \r r e s u l t i s m 0126520 a x i ; \r ] \r / / C K B I 0126540 N S E A R C H A 0126560 \r / / c h e c k s t o s e 0126600 e i f t b l ! i < = k 0126620 < t b l ! ( i + 1 ) \r / / c 0126640 a t a l o g u e n o . = S 0126660 P E - 6 3 \r \r a n d c k b i 376 0126700 001 \0 215 [ n s e a r c h a ( t b l 0126720 , i , k ) b e \r [ c k p r o 0126740 c = " c k b i n s e a r c h 0126760 " ; \r c k p e r r = i ; \r i 0127000 f ( u g t ( k , ( t b l 0127020 ! i ) ) ) % ( n o t u g 0127040 t ( ( t b l ! ( i + 1 ) ) 0127060 , k ) ) d o \r \t e r r c k ( " 0127100 b s " ) ; \r ] \r / / M A P 0127120 C P \r / / r e t u r n s 0127140 t h e n u m b e r o f c h 0127160 a r a c t e r s w h i c h c 0127200 a n b e \r / / a c c e s s 0127220 e d w i t h o u t a n o t h 0127240 e r m a p c p c a l l , a 0127260 s w e l l a s t h e l o 0127300 c a t i 376 001 \0 220 310 o n \r / / o 0127320 f c p i n v p w a n d 0127340 v l b \r / / c a t a l o g u e 0127360 n o . = S P E - 7 6 \r a n 0127400 d m a p c p ( d o c , c p ) 0127420 b e \r [ p c t b = r g p c 0127440 t b ! d o c ; \r l e t p r 0127460 o c = n i l ; \r r g c p 0127500 = l v ( p c t b > > P C T 0127520 B . r g c p ) ; \r v p c = b 0127540 i n s e a r c h a ( r g c p , ( 0127560 p c t b > > P C T B . m a c 0127600 p c ) , c p ) ; \r i f v p c 0127620 e q p c t b > > P C T B . 0127640 m a c p c t h e n e r r h l 0127660 t ( " m p c " ) ; \r l e t c p 0127700 p c r e l = c 376 001 \0 & \f p - 0127720 r g c p ! v p c ; \r r g p c 0127740 d = ( r g c p + ( p c t b 0127760 > > P C T B . m a x p c ) + 1 0130000 ) ; \r p p c d = r g p c d + 0130020 ( v p c l s h i f t 1 ) ; \r 0130040 l i v e t e s t : \r t e s t p 0130060 p c d > > P C D . l i v e 0130100 i f n o t \r \t [ r c n e w = 0130120 c p p c r e l + ( p p c d > 0130140 > P C D . r c ) ; \r \t v p a 0130160 = ( p p c d > > P C D . v 0130200 p a d d r ) + r c n e w < < 0130220 P C D . p ; \r \t p f w p g = 0130240 g e t v p ( v p a ) ; \r \t v p w 0130260 = p f w p g + ( r c n e w 0130300 < < P C D . r c r s h 376 001 0130320 \0 200 345 i f t 1 ) ; \r \t t e s 0130340 t ( r c n e w < < o d d ) 0130360 i f s o \r \t \t v l b = f a 0130400 l s e ; \r \t i f n o t \t v l b 0130420 = t r u e ; \r \t l e t p g r 0130440 e m a i n = ( # 1 7 7 7 7 7 0130460 < < P C D . r c ) + 1 - ( r 0130500 c n e w < < P C D . r c ) ; 0130520 \r \t l e t p c r e m a i n = 0130540 ( r g c p ! ( v p c + 1 ) 0130560 ) - c p ; \r \t v c h r e m a i n 0130600 = u m i n ( p g r e m a i n 0130620 , p c r e m a i n ) ; \r \t ] \r 0130640 i f s o \t [ l e t p l f = 0130660 p p c d > > P C D . e s c 0130700 ; \r / / * * p r o c = l f y 0130720 i e l 376 001 \0 327 360 d ! ( p l f 0130740 > > L F . l f ) ; \r / / * * 0130760 p r o c ( p l f ) ; \r / / * * p 0131000 r o c = l f t o u c h ! 0131020 ( p l f > > L F . l f ) ; \r 0131040 / / * * p r o c ( p l f ) ; \r \t 0131060 r c n e w = c p - ( r g c p 0131100 ! v p c ) ; \r \t v p w = 0131120 ( p l f > > L F . s l ) + 1 0131140 + ( r c n e w r s h i f t 1 0131160 ) ; \r \t t e s t r c n e w < 0131200 < o d d i f s o \r \t \t v l b 0131220 = f a l s e \r \t i f n o t 0131240 v l b = t r u e ; \r \t v c h 0131260 r e m a i n = ( r g c p ! 0131300 ( v p c + 1 ) ) - ( c p ) ; \r 0131320 \t ] \r ] \r \r 376 001 \0 Z ' / / 0131340 M A P C P B \r / / r 0131360 e t u r n s t h e n u m b e 0131400 r o f c h a r a c t e r s 0131420 w h i c h c a n b e \r / / 0131440 r e v e r s e a c c e s s e 0131460 d w i t h o u t a n o t h e 0131500 r m a p c p b c a l l , a 0131520 s w e l l a s t h e l o 0131540 c a t i o n \r / / o f c p 0131560 i n v p w a n d v l b \r / 0131600 / c a t a l o g u e n o . 0131620 = S P E - 7 6 \r a n d m a p 0131640 c p b ( d o c , c p ) b e \r [ 0131660 m a p c p ( d o c , c p ) ; \r 0131700 t e s t p p c d > > P C D 0131720 . l i v e i f s o \r \t v 376 001 \0 0131740 253 6 c h r e m a i n b = r c 0131760 n e w + 1 \r i f n o t \t [ l e 0132000 t p g r e m a i n b = r c 0132020 n e w < < P C D . r c + 1 ; 0132040 \r \t l e t p c r e m a i n b 0132060 = c p - ( r g c p ! v p c 0132100 ) + 1 ; \r \t v c h r e m a i n b 0132120 = u m i n ( p c r e m a i n 0132140 b , p g r e m a i n b ) ; \r \t ] 0132160 \r ] \r \r \r / / C R E 0132200 A T E D O C E \r 0132220 / / c a t a l o g u e n o . 0132240 = S P E - 9 9 \r a n d c r 0132260 e a t e d o c e ( d o c , m a x 0132300 p c ) b e \r [ \r r g p c t b 0132320 ! d o c = h p a l l o c 0132340 a ( 376 001 \0 374 367 m a x p c * 3 + 1 0132360 + p c t b l ) ; \r r g m a c c p 0132400 ! d o c = 0 ; \r ( r g p 0132420 c t b ! d o c ) > > P C 0132440 T B . m a x p c = m a x p c 0132460 ; \r ( r g p c t b ! d o c ) 0132500 > > P C T B . m a c p c = 0132520 0 ; \r ( r g p c t b ! d o 0132540 c ) > > P C T B . r g c p 0132560 = 0 ; \r ] \r \r / / C R 0132600 E A T E D O C M \r 0132620 / / \r a n d c r e a t e d o c 0132640 m ( d o c ) b e \r [ \r c r e a 0132660 t e d o c e ( d o c , 1 ) ; \r i 0132700 n s e r t l f ( d o c , 0 , l f 0132720 e d o c , d o c , 4 ) ; \r s e t 0132740 l f ( l f e d 376 001 \0 263 273 o c , d 0132760 o c , " ~ " ) ; \r ] \r \r / / 0133000 P R E V S C R V 0133020 C H \r / / c a t a l o g u 0133040 e n o . = 1 3 8 \r a n d 0133060 p r e v s c r v c h ( ) = 0133100 v a l o f \r [ l e t c h a 0133120 r = n i l ; \r v c p p u t 0133140 = v c p p u t - 1 ; \r ( m p f 0133160 n o f ! f n s c r ) > > 0133200 O F . p o s = v c p p u t ; 0133220 \r g e t s ( f n s c r ) ; \r ( m 0133240 p f n o f ! f n s c r ) > 0133260 > O F . p o s = v c p p u 0133300 t ; \r p u t s ( f n s c r , c h 0133320 b l i n d ) ; \r ( m p f n o f 0133340 ! f n s c r ) > > 376 001 \0 207 0133360 332 O F . p o s = v c p p u t 0133400 ; \r c b l i n d = c b l i n 0133420 d + 1 ; \r d e l t a c p = d 0133440 e l t a c p - 1 ; \r r e s u l t 0133460 i s c h a r ; \r ] \r \r / / 0133500 G E T V C H \r / / c 0133520 a t a l o g u e n o . = 1 0133540 3 5 \r a n d g e t v c h ( ) 0133560 = v a l o f \r [ l e t c 0133600 h a r = n i l ; \r i f v c 0133620 h r e m a i n e q 0 t h e 0133640 n m a p c p ( v d o c , v c p 0133660 ) ; \r t e s t v l b i f s 0133700 o \r \t [ c h a r = v p w 0133720 > > l h ; \r \t v l b = f a 0133740 l s e ; \r \t ] \r i f n o t \t [ 0133760 376 001 \0 H E c h a r = v p w 0134000 > > r h ; \r \t v l b = t 0134020 r u e ; \r \t v p w = v p w + 0134040 1 ; \r \t ] \r v c h r e m a i n 0134060 = v c h r e m a i n - 1 ; \r 0134100 v c p = v c p + 1 ; \r r e s 0134120 u l t i s c h a r ; \r ] \r \r 0134140 / / * * G Y P S Y D E L E 0134160 T E D G E T I N T \r \r / / P 0134200 U T V C H \r / / c 0134220 a t a l o g u e n o . = S 0134240 P E - 1 0 7 \r a n d p u t v c 0134260 h ( c h a r ) b e \r [ ( m p 0134300 f n o f ! f n s c r ) > > 0134320 O F . p o s = v c p p u t 0134340 ; \r p u t s ( f n s c r , c h a 0134360 r ) ; \r v c 376 001 \0 205 331 p p u t 0134400 = v c p p u t + 1 ; \r ] \r \r 0134420 / / * * G Y P S Y D E L E 0134440 T E D P U T I N T A N D C 0134460 P R E A L C H \r \r / / * * G 0134500 Y P S Y A D D E D : \r \r / / 0134520 G E T S C R W D \r 0134540 a n d g e t s c r w d ( ) = 0134560 v a l o f \r [ \r ( m p f n o f 0134600 ! f n s c r ) > > O F . 0134620 p o s = v c p ; \r ( m p f n 0134640 o f ! f n s c r ) > > O 0134660 F . w m o d e = t r u e ; \r 0134700 l e t w d = g e t s ( f n 0134720 s c r ) ; \r v c p = v c p + 0134740 2 ; \r ( m p f n o f ! f n s 0134760 c r ) > > O F . w 376 \0 337 255 246 0135000 m o d e = f a l s e ; \r r e 0135020 s u l t i s w d ; \r ] \r \r / 0135040 / P U T S C R W 0135060 D \r a n d p u t s c r w d ( 0135100 w d ) b e \r [ \r ( m p f n o f 0135120 ! f n s c r ) > > O F . 0135140 p o s = v c p p u t ; \r ( m 0135160 p f n o f ! f n s c r ) > 0135200 > O F . w m o d e = t r u 0135220 e ; \r p u t s ( f n s c r , w d 0135240 ) ; \r v c p p u t = v c p p 0135260 u t + 2 ; \r ( m p f n o f ! 0135300 f n s c r ) > > O F . w m o 0135320 d e = f a l s e ; \r ] \r 377 0135340 \0 \0 G V M . S R \0 376 001 \0 272 235 / / 0135360 G V M . S R \t * * A l l o w 0135400 a n c e f o r e o f v e c 0135420 s \r \r g e t " B R A V O . D F 0135440 " ; \r / / I n c o m i n g P 0135460 r o c e d u r e s \r \r e x t e r 0135500 n a l [ \r \t e r r c k ; \r \t P 0135520 O S I T I O N P A G E ; \r \t e r 0135540 r h l t ; \r \t W R I T E V E C ; 0135560 \r \t R E A D V E C ; \r \t h p f r 0135600 e e ; \r \t u g t ; \r \t u l t ; \r 0135620 \t A c t O n P a g e s ; \r \t m o 0135640 v e c ; \r \t u m i n ; \r \t W r i 0135660 t e P a g e s ; \r \t o p e n n e 0135700 w ; \r \t d i r l k u p ; \r \t D e 0135720 l e t e P a g e s ; \r \t s e t m 0135740 a c f p ; \r \t ] ; \r \r / / 376 001 0135760 \0 271 K I n c o m i n g S t a t 0136000 i c s \r \r e x t e r n a l [ \r 0136020 \t c k p r o c ; \r \t c k p e r r 0136040 ; \r \t v p w ; \r \t v l b ; \r \t v 0136060 c h r e m a i n ; \r \t d n f n ; 0136100 \r \t f i l l I n D A ; \r \t e o f 0136120 D A ; \r \t D C w r i t e ; \r \t D 0136140 C r e a d ; \r \t v d e l t a f p 0136160 ; \r \t ] ; \r \r / / O u t g o i 0136200 n g P r o c e d u r e s \r \r e 0136220 x t e r n a l [ \r \t v m l k u 0136240 p ; \r \t v m l k u p i ; \r \t c k 0136260 v m ; \r \t g e t v p ; \r \t f i n 0136300 d l r u ; \r \t d i s k i o ; \r \t 0136320 c l e a r b p ; \r \t r e m a k e 0136340 v m t b ; \r \t a d d b p ; \r \t r 0136360 e m o 376 001 \0 202 y v e b p ; \r \t g 0136400 e t s ; \r \t p u t s ; \r \t f l u 0136420 s h f n ; \r \t d i s k w r i t e 0136440 g r o u p ; \r \t t r i m s ; \r \t 0136460 ] ; \r \r / / O u t g o i n g 0136500 S t a t i c s \r \r e x t e r n a 0136520 l [ \r \t v m t b ; \r \t c v m f 0136540 r e e ; \r \t v b p ; \r \t r g b p 0136560 ; \r \t r g v p a ; \r \t l r u t i 0136600 m e ; \r \t r g l a s t u s e d ; 0136620 \r \t d n b p ; \r \t m a c b p ; \r 0136640 \t r g b s ; \r \t v b p h i n t ; 0136660 \r \t v w r e m a i n ; \r \t m p f 0136700 n o f ; \r \t v p w p u t ; \r \t v 0136720 l b p u t ; \r \t v c h r e m a i 0136740 n p u t ; \r \t v w r e m a i n p 0136760 u t ; \r \t v e x 376 001 \0 025 F t e n 0137000 d o f ; \r \t r g n c h l a s t ; 0137020 \r \t v c p p u t ; \r \t ] ; \r \r 0137040 / / L o c a l S t a t i c s 0137060 \r \r s t a t i c [ \r \t v m t b 0137100 ; \r \t c v m f r e e ; \r \t v b p 0137120 ; \r \t r g b p ; \r \t r g v p a ; 0137140 \r \t l r u t i m e ; \r \t r g l a 0137160 s t u s e d ; \r \t d n b p ; \r \t 0137200 m a c b p ; \r \t r g b s ; \r \t v 0137220 b p h i n t ; \r \t v w r e m a i 0137240 n ; \r \t m p f n o f ; \r \t v p w 0137260 p u t ; \r \t v l b p u t ; \r \t v 0137300 c h r e m a i n p u t ; \r \t v w 0137320 r e m a i n p u t ; \r \t v e x t 0137340 e n d o f ; \r \t r g n c h l a s 0137360 t ; \r \t v c p p u t ; \r \t 376 001 \0 0137400 v g ] ; \r \r / / V M \r / / 0137420 V M L K U P \r / / c 0137440 a t a l o g u e n o . = 6 0137460 0 \r l e t v m l k u p ( v p a 0137500 d d r ) = v a l o f \r [ l 0137520 e t i = ( ( v p a d d r 0137540 r s h i f t 8 ) + v p a d d r 0137560 ) & v m t b m a s k ; \r l e 0137600 t f 2 = ( v p a d d r r 0137620 s h i f t 4 ) % 1 ; \r \t [ 0137640 \r l 1 0 1 0 : \t i f v m t b 0137660 ! i e q v p a d d r t 0137700 h e n r e s u l t i s i ; \r 0137720 \t i f v m t b ! i e q 0137740 0 t h e n r e s u l t i s 0137760 - 1 ; \r \t i = ( i + f 2 ) 0140000 & 376 001 \0 ' 234 v m t b m a s k ; 0140020 \r \t ] r e p e a t \r ] \r \r / / 0140040 V M L K U P I \r / / 0140060 c a t a l o g u e n o . = 0140100 6 1 \r a n d v m l k u p i ( 0140120 v p a d d r ) = v a l o f \r 0140140 [ l e t i = ( ( v p a d 0140160 d r r s h i f t 8 ) + v p a 0140200 d d r ) & v m t b m a s k ; 0140220 \r l e t f 2 = ( v p a d d 0140240 r r s h i f t 4 ) % 1 ; 0140260 \r \t [ \r l 1 0 2 0 : \t i f v 0140300 m t b ! i e q v p a d d 0140320 r t h e n r e s u l t i s 0140340 i ; \r \t i f v m t b ! i 0140360 e q 0 t h e n \r \t \t [ v m 0140400 t b ! i 376 001 \0 / 234 = v p 0140420 a d d r ; \r \t \t c v m f r e e 0140440 = c v m f r e e - 1 ; \r \t \t r 0140460 e s u l t i s i ; \r \t \t ] \r 0140500 \t i = ( i + f 2 ) & v m 0140520 t b m a s k ; \r \t ] r e p e a 0140540 t ; \r ] \r \r / / C K V M \r 0140560 / / c a t a l o g u e n o . 0140600 = 6 2 \r a n d c k v m ( 0140620 ) b e \r [ c k p r o c = 0140640 " c k v m " \r c k p e r r = 0140660 - 1 ; \r l e t t c 0 s = 0 0140700 ; \r \t [ c k p e r r = c k 0140720 p e r r + 1 ; \r \t t e s t v m 0140740 t b ! c k p e r r e q 0 0140760 i f s o t c 0 s = t c 0 0141000 s + 1 \r \t i f n o t \r \t 376 001 \0 352 0141020 . \t [ i f c k p e r r n e 0141040 v m l k u p ( v m t b ! c 0141060 k p e r r ) d o e r r c k ( 0141100 " P O " ) \r \t \t ] \r \t ] r e p 0141120 e a t u n t i l c k p e r r 0141140 e q v m t b m a s k ; \r i f 0141160 c v m f r e e n e t c 0 s 0141200 d o e r r c k ( " z c " ) ; \r 0141220 ] / / G E T V P \r / 0141240 / c a t a l o g u e n o . 0141260 = 7 7 \r a n d g e t v p ( v 0141300 p a ) = v a l o f \r [ l e 0141320 t i = v m l k u p ( v p a 0141340 ) ; \r l r u t i m e = l r u 0141360 t i m e + 1 ; \r i f u g t ( l 0141400 r u t i m e , - 4 ) t h e n \r 0141420 \t 376 001 \0 q 310 [ l r u t i m e 0141440 = 1 ; \r \t m o v e c ( r g l a 0141460 s t u s e d , r g l a s t u s e 0141500 d + m a x b p - 1 , 0 ) ; \r \t ] 0141520