$ od -c -N 50000 [Erinyes]<LispManual>PrettyPrint.im!5 0000000 \r \r { B e g i n S u b S e c 0000020 P r e t t y p r i n t } \r { T i 0000040 t l e P r e t t y p r i n t } 0000060 \r { T e x t \r \r { i n d e x * 0000100 P R I M A R Y * P r e t t y p 0000120 r i n t i n g f u n c t i o n 0000140 d e f i n i t i o n s } \r \r { 0000160 n o t e T h e P R E T T Y P 0000200 R I N T p a c k a g e w a s 0000220 w r i t t e n b y W . T 0000240 e i t e l m a n . } \r \r T h e 0000260 s t a n d a r d w a y o f 0000300 p r i n t i n g o u t f u n 0000320 c t i o n d e f i n i t i o n 0000340 s ( o n t h e t e r m i n 0000360 a l o r i n t o f i l e s 0000400 ) i s t o u s e { f n 0000420 P R E T T Y P R I N T } . \r \r { 0000440 F n D e f { F n N a m e P R 0000460 E T T Y P R I N T } { F n A r 0000500 g s F N S P R E T T Y D E F 0000520 L G { a n o n a r g } } \r { T 0000540 e x t \r { a r g F N S } i s 0000560 a l i s t o f f u n c t 0000600 i o n s . I f { a r g F 0000620 N S } i s a t o m i c , i 0000640 t s v a l u e i s u s e d 0000660 ) . T h e d e f i n i t i 0000700 o n s o f t h e f u n c t 0000720 i o n s a r e p r i n t e d 0000740 i n a p r e t t y f o r 0000760 m a t o n t h e p r i m a 0001000 r y o u t p u t f i l e u 0001020 s i n g t h e p r i m a r y 0001040 r e a d t a b l e . F o r 0001060 e x a m p l e , i f { l i 0001100 s p F A C T O R I A L } w e 0001120 r e d e f i n e d b y t y 0001140 p i n g \r \r { l i s p c o d e 0001160 ( D E F I N E Q ( F A C T O R 0001200 I A L [ L A M B D A ( N ) 0001220 ( C O N D ( ( Z E R O P N ) 0001240 1 ) \r ( T ( I T I M E S N 0001260 ( F A C T O R I A L ( S U B 0001300 1 N ] } \r \r { l i s p ( P R 0001320 E T T Y P R I N T ' ( F A C T 0001340 O R I A L ) ) } w o u l d p 0001360 r i n t o u t \r \r { l i s p c 0001400 o d e \r ( F A C T O R I A L \r 0001420 [ L A M B D A ( N ) \r 0001440 ( C O N D \r ( ( Z 0001460 E R O P N ) \r 0001500 1 ) \r ( T ( I T I 0001520 M E S N ( F A C T O R I A L 0001540 ( S U B 1 N ] ) } \r \r \r { a 0001560 r g P R E T T Y D E F L G } 0001600 i s { l i s p T } w h e n 0001620 c a l l e d f r o m { f n 0001640 P R E T T Y D E F } ( a n d 0001660 h e n c e { f n M A K E F 0001700 I L E } ) . A m o n g o t 0001720 h e r a c t i o n s t a k e 0001740 n w h e n t h i s a r g u 0001760 m e n t i s t r u e , { f 0002000 n P R E T T Y P R I N T } i 0002020 n d i c a t e s i t s p r o 0002040 g r e s s i n w r i t i n g 0002060 t h e c u r r e n t o u t 0002100 p u t f i l e : w h e n e v 0002120 e r i t s t a r t s a n 0002140 e w f u n c t i o n , i t 0002160 p r i n t s o n t h e t e 0002200 r m i n a l t h e n a m e 0002220 o f t h a t f u n c t i o n 0002240 i f m o r e t h a n 3 0 0002260 s e c o n d s ( r e a l t 0002300 i m e ) h a v e e l a p s e 0002320 d s i n c e t h e l a s t 0002340 t i m e i t p r i n t e d 0002360 t h e n a m e o f a f 0002400 u n c t i o n . \r \r { f n P R 0002420 E T T Y P R I N T } o p e r a 0002440 t e s c o r r e c t l y o n 0002460 f u n c t i o n s t h a t 0002500 a r e { p r o p B R O K E N 0002520 } , { p r o p B R O K E N - 0002540 I N } , { p r o p A D V I S 0002560 E D } , o r h a v e b e e 0002600 n c o m p i l e d w i t h 0002620 t h e i r d e f i n i t i o n 0002640 s s a v e d o n t h e i r 0002660 p r o p e r t y l i s t s : 0002700 i t p r i n t s t h e o 0002720 r i g i n a l , p r i s t i n 0002740 e d e f i n i t i o n , b u 0002760 t d o e s n o t c h a n g 0003000 e t h e c u r r e n t s t 0003020 a t e o f t h e f u n c t 0003040 i o n . I f a f u n c t 0003060 i o n i s n o t d e f i n 0003100 e d b u t i s k n o w n 0003120 t o b e o n o n e o f 0003140 t h e f i l e s n o t i c e 0003160 d b y t h e f i l e p a 0003200 c k a g e , { f n P R E T T 0003220 Y P R I N T } l o a d s i n 0003240 t h e d e f i n i t i o n 0003260 ( u s i n g { f n L O A D F 0003300 N S } ) a n d p r i n t s 0003320 i t ( e x c e p t w h e n 0003340 c a l l e d f r o m { f n 0003360 P R E T T Y D E F } ) . I f 0003400 { f n P R E T T Y P R I N T 0003420 } i s g i v e n a n a t 0003440 o m w h i c h i s n o t 0003460 t h e n a m e o f a f u 0003500 n c t i o n , b u t h a s 0003520 a v a l u e , i t p r e t 0003540 t y p r i n t s t h e v a l 0003560 u e . O t h e r w i s e , 0003600 { f n P R E T T Y P R I N T } 0003620 a t t e m p t s s p e l l i 0003640 n g c o r r e c t i o n . 0003660 I f a l l f a i l s , { f 0003700 n P R E T T Y P R I N T } r 0003720 e t u r n s { l i s p ( { a 0003740 r g F N } N O T P R I N T 0003760 A B L E ) } . N o t e t h 0004000 a t { f n P R E T T Y P R I 0004020 N T } w i l l r e t u r n 0004040 { l i s p ( { a r g F N } 0004060 N O T P R I N T A B L E ) } 0004100 i f { a r g F N } d o e s 0004120 n o t h a v e a n a c c 0004140 e s s a b l e e x p r d e f 0004160 i n i t i o n , o r i f i 0004200 t d o e s n ' t h a v e a 0004220 n y d e f i n i t i o n a t 0004240 a l l . \r \r { i n d e x X { 0004260 N a m e N O T P R I N T A B 0004300 L E } \r \t { T y p e r e t u r 0004320 n e d b y P R E T T Y P R I 0004340 N T } \r \t { T e x t { l i s p 0004360 ( { a r g F N } N O T P 0004400 R I N T A B L E ) } } \r } \r \r 0004420 } } \r \r \r { F n D e f { F n N 0004440 a m e P P } { F n A r g s 0004460 F N { s u b 1 } { e l l i p 0004500 s i s } F N { s u b N } } \r 0004520 { T y p e N O S P R E A D N 0004540 L A M B D A } \r { T e x t \r F o 0004560 r p r e t t y p r i n t i n g 0004600 f u n c t i o n s t o t h 0004620 e t e r m i n a l . { f n 0004640 P P } c a l l s { f n P 0004660 R E T T Y P R I N T } w i t h 0004700 t h e p r i m a r y o u t 0004720 p u t f i l e s e t t o 0004740 { l i s p T } a n d t h e 0004760 p r i m a r y r e a d t a 0005000 b l e s e t t o { l i s p 0005020 T } . T h e p r i m a r 0005040 y o u t p u t f i l e a n 0005060 d p r i m a r y r e a d t a 0005100 b l e a r e r e s t o r e d 0005120 a f t e r p r i n t i n g . 0005140 \r \r { l i s p ( P P F O O ) 0005160 } i s e q u i v a l e n t 0005200 t o { l i s p ( P R E T T Y 0005220 P R I N T ' ( F O O ) ) } ; 0005240 { l i s p ( P P F O O F 0005260 I E ) } i s e q u i v a l e 0005300 n t t o { l i s p ( P R E 0005320 T T Y P R I N T ' ( F O O F 0005340 I E ) ) } . \r } } \r \r \r A s d 0005360 e s c r i b e d a b o v e , 0005400 w h e n { f n P R E T T Y P 0005420 R I N T } , a n d h e n c e 0005440 { f n P P } , i s c a l 0005460 l e d w i t h t h e n a m 0005500 e o f a f u n c t i o n 0005520 t h a t i s n o t d e f i 0005540 n e d , b u t w h o s e d 0005560 e f i n i t i o n i s o n 0005600 a f i l e k n o w n t o 0005620 t h e f i l e p a c k a g e 0005640 , t h e d e f i n i t i o n 0005660 i s a u t o m a t i c a l l 0005700 y r e a d i n a n d t h 0005720 e n p r e t t y p r i n t e d 0005740 . H o w e v e r , i f t 0005760 h e u s e r d o e s n o t 0006000 i n t e n d o n e d i t i 0006020 n g o r r u n n i n g t h 0006040 e d e f i n i t i o n , b u 0006060 t s i m p l y w a n t s t 0006100 o { i t s e e } t h e d 0006120 e f i n i t i o n , t h e f 0006140 u n c t i o n { f n P F } 0006160 d e s c r i b e d b e l o w 0006200 c a n b e u s e d t o s 0006220 i m p l y c o p y t h e c 0006240 o r r e s p o n d i n g c h a 0006260 r a c t e r s f r o m t h e 0006300 f i l e t o t h e t e r 0006320 m i n a l . T h i s r e s 0006340 u l t s i n a s a v i n g 0006360 s i n b o t h s p a c e 0006400 a n d t i m e , s i n c e 0006420 i t i s n o t n e c e s s 0006440 a r y t o a l l o c a t e 0006460 s t o r a g e t o a c t u a 0006500 l l y r e a d i n t h e 0006520 d e f i n i t i o n , a n d 0006540 i t i s n o t n e c e s s 0006560 a r y t o r e - p r e t t y 0006600 p r i n t i t ( s i n c e 0006620 t h e f u n c t i o n i s 0006640 a l r e a d y i n p r e t t 0006660 y p r i n t f o r m a t o n 0006700 t h e f i l e ) . \r \r \r { F 0006720 n D e f { F n N a m e P F } 0006740 { F n A r g s F N F R O M 0006760 F I L E S T O F I L E } \r { T 0007000 y p e N O S P R E A D N L A 0007020 M B D A } \r { T e x t \r C o p i 0007040 e s t h e d e f i n i t i o 0007060 n o f { a r g F N } f o 0007100 u n d o n e a c h o f t 0007120 h e f i l e s i n { a r g 0007140 F R O M F I L E S } t o { 0007160 a r g T O F I L E } . I f 0007200 { a r g T O F I L E } = { l 0007220 i s p N I L } , d e f a u l 0007240 t s t o { l i s p T } . 0007260 I f { a r g F R O M F I L 0007300 E S } = { l i s p N I L } , 0007320 d e f a u l t s t o { l i s 0007340 p ( W H E R E I S { a r g 0007360 F N } N I L T ) } ( s e e 0007400 { P a g e R e f F n W H E 0007420 R E I S } ) . T h e t y p 0007440 i c a l u s a g e o f { f 0007460 n P F } i s s i m p l y 0007500 t o t y p e " { l i s p P 0007520 F { a r g F N } } " . \r \r { 0007540 f n P F } p r i n t s a 0007560 m e s s a g e i f i t c a 0007600 n ' t f i n d a f i l e 0007620 o n { a r g F R O M F I L E 0007640 S } , o r i t c a n ' t 0007660 f i n d t h e f u n c t i o 0007700 n { a r g F N } o n a 0007720 f i l e . \r } } \r \r W h e n p 0007740 r i n t i n g t o t h e t 0007760 e r m i n a l , { f n P F } 0010000 p e r f o r m s s e v e r a 0010020 l t r a n s f o r m a t i o n 0010040 s o n t h e c h a r a c t 0010060 e r s i n t h e f i l e 0010100 t h a t c o m p r i s e t h 0010120 e d e f i n i t i o n f o r 0010140 { a r g F N } : ( 1 ) f 0010160 o n t i n f o r m a t i o n 0010200 i s s t r i p p e d o u t 0010220 ( e x c e p t i n I n t e r 0010240 l i s p - D , w h o s e d i 0010260 s p l a y s u p p o r t s m 0010300 u l t i p l e f o n t s ) ; 0010320 ( 2 ) o c c u r r e n c e s 0010340 o f t h e { v a r C H A N 0010360 G E C H A R } ( { P a g e R e 0010400 f V a r C H A N G E C H A R 0010420 } ) a r e n o t p r i n t 0010440 e d ; ( 3 ) s i n c e f u 0010460 n c t i o n s t y p i c a l l 0010500 y t e n d t o b e p r i 0010520 n t e d t o a f i l e w 0010540 i t h a l a r g e r l i n 0010560 e l e n g t h t h a n w h e 0010600 n p r i n t i n g t o a 0010620 t e r m i n a l , t h e n u 0010640 m b e r o f l e a d i n g 0010660 s p a c e s o n e a c h l 0010700 i n e i s c u t i n h a 0010720 l f ( u n l e s s { v a r 0010740 P F D E F A U L T } { I n d e x 0010760 P F D E F A U L T V a r } 0011000 i s { l i s p T } ; i n i 0011020 t i a l l y { l i s p N I L 0011040 } ) ; a n d ( 4 ) c o m m 0011060 e n t s a r e e l i d e d , 0011100 i f { v a r * * C O M M E 0011120 N T * * F L G } i s n o n - 0011140 { l i s p N I L } ( s e e 0011160 { P a g e R e f V a r * * C 0011200 O M M E N T * * F L G } ) . \r 0011220 \r \r { F n D e f { F n N a m e 0011240 S E E } { F n A r g s F R 0011260 O M F I L E T O F I L E } \r { 0011300 T y p e N O S P R E A D N L 0011320 A M B D A } \r { T e x t \r C o p 0011340 i e s a l l o f t h e t 0011360 e x t f r o m { a r g F R 0011400 O M F I L E } t o { a r g 0011420 T O F I L E } ( d e f a u l t 0011440 s t o { l i s p T } ) , 0011460 p r o c e s s i n g a l l t 0011500 e x t a s { l i s p P F } 0011520 d o e s . U s e d t o 0011540 d i s p l a y t h e c o n t 0011560 e n t s o f f i l e s o n 0011600 t h e t e r m i n a l . \r } 0011620 } \r \r \r { F n D e f { F n N a 0011640 m e P P * } { F n A r g s 0011660 X } \r { T y p e N O S P R E A 0011700 D N L A M B D A } } \r { F n 0011720 D e f { F n N a m e P F * } 0011740 { F n A r g s F N F R O M 0011760 F I L E S T O F I L E } \r { T 0012000 y p e N O S P R E A D N L A 0012020 M B D A } } \r { F n D e f { 0012040 F n N a m e S E E * } { F n 0012060 A r g s F R O M F I L E T O 0012100 F I L E } \r { T y p e N O S P 0012120 R E A D N L A M B D A } \r { T 0012140 e x t \r T h e s e f u n c t i 0012160 o n s o p e r a t e e x a c 0012200 t l y l i k e { f n P P } 0012220 , { f n P F } , a n d { 0012240 l i s p S E E } , e x c e p 0012260 t t h a t t h e y b i n d 0012300 { v a r * * C O M M E N T * 0012320 * F L G } t o { l i s p N 0012340 I L } , s o c o m m e n t s 0012360 a r e p r i n t e d i n 0012400 f u l l ( s e e { P a g e R 0012420 e f V a r * * C O M M E N T 0012440 * * F L G } ) . \r } } \r \r W h i 0012460 l e t h e f u n c t i o n 0012500 { f n P R E T T Y P R I N T } 0012520 p r i n t s e n t i r e f 0012540 u n c t i o n d e f i n i t i 0012560 o n s , t h e f u n c t i o 0012600 n { f n P R I N T D E F } 0012620 c a n b e u s e d t o p 0012640 r i n t p a r t s o f f u 0012660 n c t i o n s , o r a r b i 0012700 t r a r y I n t e r l i s p 0012720 s t r u c t u r e s : \r \r { F n 0012740 D e f { F n N a m e P R I N 0012760 T D E F } { F n A r g s E X 0013000 P R L E F T D E F T A I L 0013020 F L G F N S L S T F I L E } 0013040 \r { T e x t \r P r i n t s t h 0013060 e e x p r e s s i o n { a r 0013100 g E X P R } i n a p r e 0013120 t t y f o r m a t o n { a 0013140 r g F I L E } u s i n g t 0013160 h e p r i m a r y r e a d t 0013200 a b l e . { a r g L E F T 0013220 } i s t h e l e f t h a 0013240 n d m a r g i n ( { f n L 0013260 I N E L E N G T H } d e t e r 0013300 m i n e s t h e r i g h t 0013320 h a n d m a r g i n ) . { 0013340 f n P R I N T D E F } i n i 0013360 t i a l l y p e r f o r m s 0013400 { l i s p ( T A B { a r g 0013420 L E F T } T ) } , w h i c h 0013440 m e a n s t o s p a c e 0013460 t o p o s i t i o n { a r g 0013500 L E F T } , u n l e s s a 0013520 l r e a d y b e y o n d t h 0013540 i s p o s i t i o n , i n 0013560 w h i c h c a s e i t d o 0013600 e s n o t h i n g . \r \r { a r 0013620 g D E F } = { l i s p T } 0013640 m e a n s { a r g E X P R } 0013660 i s a f u n c t i o n d 0013700 e f i n i t i o n , o r a 0013720 p i e c e o f o n e . I 0013740 f { a r g D E F } = { l i s 0013760 p N I L } , n o s p e c i 0014000 a l a c t i o n i s t a k 0014020 e n f o r { l i s p L A M 0014040 B D A } ' s , { f n P R O G 0014060 } ' s , { f n C O N D } ' s 0014100 , c o m m e n t s , C L I S 0014120 P , e t c . { a r g D E 0014140 F } i s { l i s p N I L } 0014160 w h e n { f n P R E T T Y 0014200 D E F } c a l l s { f n P 0014220 R E T T Y P R I N T } t o p 0014240 r i n t v a r i a b l e s a 0014260 n d p r o p e r t y l i s t 0014300 s , a n d w h e n { i n d 0014320 e x P R I N T D E F F N } { 0014340 f n P R I N T D E F } i s 0014360 c a l l e d f r o m t h e 0014400 e d i t o r v i a t h e c 0014420 o m m a n d { i n d e x P P 0014440 V E d i t C o m } { e d i t c 0014460 o m P P V } . \r \r { a r g T 0014500 A I L F L G } = { l i s p T } 0014520 m e a n s { a r g E X P R 0014540 } i s i n t e r p r e t e d 0014560 a s a t a i l o f a 0014600 l i s t , t o b e p r i n 0014620 t e d w i t h o u t p a r e 0014640 n t h e s e s . \r \r { a r g F 0014660 N S L S T } i s f o r u s 0014700 e f o r p r i n t i n g w 0014720 i t h m u l t i p l e f o n 0014740 t s ( { P a g e R e f T e r 0014760 m F o n t s } ) . { f n 0015000 P R I N T D E F } p r i n t s 0015020 o c c u r r e n c e s o f 0015040 a n y f u n c t i o n i n 0015060 t h e l i s t { a r g F N 0015100 S L S T } i n a d i f f e 0015120 r e n t f o n t , f o r e 0015140 m p h a s i s . { f n M A 0015160 K E F I L E } p a s s e s a 0015200 s { a r g F N S L S T } t 0015220 h e l i s t o f a l l f 0015240 u n c t i o n s o n t h e 0015260 f i l e b e i n g m a d e . 0015300 \r } } \r \r \r { B e g i n S u b 0015320 S e c C o m m e n t F e a t 0015340 u r e } \r { T i t l e C o m m 0015360 e n t F e a t u r e } \r { T e 0015400 x t \r \r \r { T a g C o m m e n 0015420 t F e a t u r e } \r \r { i n d e 0015440 x * P R I M A R Y * * ( u 0015460 s e i n c o m m e n t s ) } 0015500 \r { i n d e x * P R I M A R Y 0015520 * C o m m e n t s i n f u 0015540 n c t i o n s } \r \r A f a c i 0015560 l i t y f o r a n n o t a t 0015600 i n g I n t e r l i s p f u 0015620 n c t i o n s i s p r o v i 0015640 d e d i n { f n P R E T T 0015660 Y P R I N T } . A n y e x 0015700 p r e s s i o n b e g i n n i 0015720 n g w i t h t h e a t o m 0015740 { l i s p * } i s i n t 0015760 e r p r e t e d a s a c o 0016000 m m e n t a n d p r i n t e 0016020 d i n t h e r i g h t m 0016040 a r g i n . E x a m p l e : 0016060 \r \r \r { l i s p c o d e \r ( F A 0016100 C T O R I A L \r [ L A M B 0016120 D A ( N ) 0016140 0016160 ( * C O M P U 0016200 T E S N ! ) \r 0016220 ( C O N D \r 0016240 ( ( Z E R O P N ) 0016260 0016300 ( * 0 ! = 1 ) \r 0016320 1 ) \r 0016340 ( T 0016360 0016400 ( * 0016420 R E C U R S I V E D E F I N 0016440 I T I O N : \r 0016460 * 0016520 N ! = N * N 0016540 - 1 ! ) \r 0016560 ( I T I M E S N ( F A C T 0016600 O R I A L ( S U B 1 N ] ) } 0016620 \r \r \r { i n d e x * P R I M A 0016640 R Y * * F n } \r \r T h e s e 0016660 c o m m e n t s a c t u a l 0016700 l y f o r m a p a r t o 0016720 f t h e f u n c t i o n d 0016740 e f i n i t i o n . A c c o 0016760 r d i n g l y , { l i s p * 0017000 } i s d e f i n e d a s 0017020 a n n l a m b d a n o s p r 0017040 e a d f u n c t i o n t h a 0017060 t r e t u r n s i t s a r 0017100 g u m e n t , s i m i l a r 0017120 t o { f n Q U O T E } . 0017140 W h e n r u n n i n g a n 0017160 i n t e r p r e t e d f u n c 0017200 t i o n , { l i s p * } i 0017220 s e n t e r e d t h e s a 0017240 m e a s a n y o t h e r 0017260 I n t e r l i s p f u n c t i 0017300 o n . T h e r e f o r e , 0017320 c o m m e n t s s h o u l d 0017340 o n l y b e p l a c e d w 0017360 h e r e t h e y w i l l n 0017400 o t h a r m t h e c o m p 0017420 u t a t i o n , i . e . , w 0017440 h e r e a q u o t e d e x 0017460 p r e s s i o n c o u l d b 0017500 e p l a c e d . F o r e 0017520 x a m p l e , w r i t i n g \r 0017540 \r { l i s p c o d e ( I T I M 0017560 E S N ( F A C T O R I A L 0017600 ( S U B 1 N ) ) ( * R E C 0017620 U R S I V E D E F I N I T I O 0017640 N ) ) } \r \r i n t h e a b o 0017660 v e f u n c t i o n w o u l 0017700 d c a u s e a n e r r o r 0017720 w h e n { l i s p I T I M 0017740 E S } a t t e m p t e d t o 0017760 m u l t i p l y { l i s p 0020000 N } , { l i s p N - 1 ! } , 0020020 a n d { l i s p R E C U R 0020040 S I V E } . \r \r \r \r F o r c o 0020060 m p i l a t i o n p u r p o s 0020100 e s , { l i s p * } i s 0020120 d e f i n e d a s a m a c 0020140 r o w h i c h c o m p i l e 0020160 s i n t o n o i n s t r u 0020200 c t i o n s ( u n l e s s t 0020220 h e c o m m e n t h a s b 0020240 e e n p l a c e d w h e r e 0020260 i t h a s b e e n u s e 0020300 d f o r v a l u e , i n 0020320 w h i c h c a s e t h e c 0020340 o m p i l e r p r i n t s a 0020360 n a p p r o p r i a t e e r 0020400 r o r m e s s a g e a n d 0020420 c o m p i l e s { l i s p * 0020440 } a s { f n Q U O T E } ) 0020460 . T h u s , t h e c o m 0020500 p i l e d f o r m o f a 0020520 f u n c t i o n w i t h c o 0020540 m m e n t s d o e s n o t 0020560 u s e t h e e x t r a a t 0020600 o m a n d l i s t s t r u 0020620 c t u r e s t o r a g e r e 0020640 q u i r e d b y t h e c o 0020660 m m e n t s i n t h e s o 0020700 u r c e ( i n t e r p r e t e 0020720 d ) c o d e . T h i s i 0020740 s t h e w a y t h e c o 0020760 m m e n t f e a t u r e i s 0021000 i n t e n d e d t o b e 0021020 u s e d . \r \r \r A c o m m e n 0021040 t o f t h e f o r m { l 0021060 i s p ( * E { a r g X } 0021100 ) } c a u s e s { a r g X 0021120 } t o b e e v a l u a t e 0021140 d a t p r e t t y p r i n t 0021160 t i m e , a s w e l l a 0021200 s p r i n t e d a s a c 0021220 o m m e n t i n t h e u s 0021240 u a l w a y . F o r e x 0021260 a m p l e , { l i s p ( * 0021300 E ( R A D I X 8 ) ) } a s 0021320 a c o m m e n t i n a 0021340 f u n c t i o n c o n t a i n 0021360 i n g o c t a l n u m b e r 0021400 s c a n b e u s e d t o 0021420 c h a n g e t h e r a d i 0021440 x t o p r o d u c e m o r 0021460 e r e a d a b l e p r i n t 0021500 o u t . { i n d e x E ( u s 0021520 e i n c o m m e n t s ) } \r 0021540 \r \r \r T h e c o m m e n t c 0021560 h a r a c t e r { l i s p * 0021600 } i s s t o r e d i n t 0021620 h e v a r i a b l e { v a r 0021640 C O M M E N T F L G } . T 0021660 h e u s e r c a n s e t 0021700 i t t o s o m e o t h e r 0021720 v a l u e , e . g . " { l 0021740 i s p ; } " , a n d u s e 0021760 t h i s t o i n d i c a t 0022000 e c o m m e n t s . \r \r { V a 0022020 r D e f { N a m e C O M M E 0022040 N T F L G } \r { T e x t \r I f 0022060 { f n C A R } o f a n e 0022100 x p r e s s i o n i s { f n 0022120 E Q } t o { v a r C O M 0022140 M E N T F L G } , t h e e x 0022160 p r e s s i o n i s t r e a 0022200 t e d a s a c o m m e n t 0022220 b y { f n P R E T T Y P R 0022240 I N T } . { v a r C O M M 0022260 E N T F L G } i s i n i t i 0022300 a l i z e d t o { l i s p 0022320 * } . { i n d e x * ( u s e 0022340 i n c o m m e n t s ) } 0022360 N o t e t h a t w h a t e v 0022400 e r a t o m i s c h o s e 0022420 n f o r { v a r C O M M E 0022440 N T F L G } s h o u l d a l 0022460 s o h a v e a n a p p r o 0022500 p r i a t e f u n c t i o n 0022520 d e f i n i t i o n a n d c 0022540 o m p i l e r m a c r o , f 0022560 o r e x a m p l e , b y c 0022600 o p y i n g t h o s e o f 0022620 { l i s p * } . \r } } \r \r \r \r 0022640 { i n d e x * * C O M M E N T 0022660 * * ( p r i n t e d b y s 0022700 y s t e m ) } \r { i n d e x X 0022720 { N a m e C O M M E N T } { 0022740 T y p e p r i n t e d b y 0022760 s y s t e m } { T e x t { l 0023000 i s p * * C O M M E N T * * } 0023020 } } \r \r C o m m e n t s a r 0023040 e d e s i g n e d m a i n l 0023060 y f o r d o c u m e n t i n 0023100 g { i t l i s t i n g s } . 0023120 T h e r e f o r e , w h e 0023140 n p r e t t y p r i n t i n g 0023160 t o t h e t e r m i n a l 0023200 , c o m m e n t s a r e s 0023220 u p p r e s s e d a n d p r 0023240 i n t e d a s t h e s t r 0023260 i n g { l i s p * * C O M M 0023300 E N T * * } . T h e v a l 0023320 u e o f { v a r * * C O M 0023340 M E N T * * F L G } d e t e r 0023360 m i n e s t h e a c t i o n 0023400 . \r \r \r { i n d e x X { N a m 0023420 e C O M M E N T * * F L G } 0023440 { T y p e V a r i a b l e } 0023460 { T e x t { l i s p * * C O 0023500 M M E N T * * F L G } } } \r \r 0023520 { V a r D e f { N a m e * * 0023540 C O M M E N T * * F L G } \r { T 0023560 e x t \r I f { v a r * * C O 0023600 M M E N T * * F L G } i s { 0023620 l i s p N I L } , c o m m e 0023640 n t s a r e p r i n t e d . 0023660 O t h e r w i s e , t h e 0023700 v a l u e o f { v a r * 0023720 * C O M M E N T * * F L G } i 0023740 s p r i n t e d . I n i t 0023760 i a l l y { l i s p " * * 0024000 C O M M E N T * * " } . \r } } 0024020 \r \r \r { F n D e f { F n N a m 0024040 e C O M M E N T 1 } { F n A 0024060 r g s L { a n o n a r g } } 0024100 \r { T e x t \r P r i n t s t h 0024120 e c o m m e n t { a r g L 0024140 } . { f n C O M M E N T 1 0024160 } i s a s e p a r a t e 0024200 f u n c t i o n t o p e r m 0024220 i t t h e u s e r t o w 0024240 r i t e p r e t t y p r i n t 0024260 m a c r o s ( { P a g e R e 0024300 f V a r P R E T T Y P R I N 0024320 T M A C R O S } ) t h a t u 0024340 s e t h e r e g u l a r c 0024360 o m m e n t p r i n t e r . 0024400 F o r e x a m p l e , t o 0024420 c a u s e c o m m e n t s 0024440 t o b e p r i n t e d a t 0024460 a l a r g e r t h a n n 0024500 o r m a l l i n e l e n g t h 0024520 , o n e c o u l d p u t 0024540 a n e n t r y f o r { l i 0024560 s p * } o n { v a r P R 0024600 E T T Y P R I N T M A C R O S } 0024620 : \r \r { l i s p c o d e ( * 0024640 L A M B D A ( X ) ( R E S E 0024660 T F O R M ( L I N E L E N G T 0024700 H 1 0 0 ) ( C O M M E N T 1 0024720 X ) ) ) } \r \r T h i s m a c 0024740 r o r e s e t s t h e l i 0024760 n e l e n g t h , p r i n t 0025000 s t h e c o m m e n t , a 0025020 n d t h e n r e s t o r e s 0025040 t h e l i n e l e n g t h 0025060 . \r \r { f n C O M M E N T 1 } 0025100 e x p e c t s t o b e c 0025120 a l l e d f r o m w i t h i 0025140 n t h e e n v i r o n m e n 0025160 t e s t a b l i s h e d b y 0025200 { f n P R I N T D E F } , 0025220 s o o r d i n a r i l y t h 0025240 e u s e r s h o u l d c a 0025260 l l i t { i t o n l y } 0025300 f r o m w i t h i n p r e t 0025320 t y p r i n t m a c r o s . \r 0025340 } } \r \r \r } { E n d S u b S e 0025360 c C o m m e n t F e a t u r 0025400 e } \r \r \r { B e g i n S u b S 0025420 e c C o m m e n t P o i n t 0025440 e r s } \r { T i t l e C o m m 0025460 e n t P o i n t e r s } \r { T 0025500 e x t \r \r \r { T a g C o m m e 0025520 n t P o i n t e r } \r \r { i n d 0025540 e x * P R I M A R Y * C o m 0025560 m e n t p o i n t e r s } \r { 0025600 i n d e x * P R I M A R Y * 0025620 * ( a s a r e a d m a c 0025640 r o ) } \r { i n d e x * P R I 0025660 M A R Y * * ( a s a p r 0025700 e t t y p r i n t m a c r o ) 0025720 } \r \r F o r a w e l l - c o 0025740 m m e n t e d c o l l e c t i 0025760 o n o f p r o g r a m s , 0026000 t h e l i s t s t r u c t u 0026020 r e , a t o m , a n d p r 0026040 i n t n a m e s t o r a g e 0026060 r e q u i r e d t o r e p 0026100 r e s e n t t h e c o m m e 0026120 n t s i n c o r e c a n 0026140 b e s i g n i f i c a n t . 0026160 I f t h e c o m m e n t s 0026200 a l r e a d y a p p e a r 0026220 o n a f i l e a n d a r 0026240 e n o t n e e d e d f o r 0026260 e d i t i n g , a s i g n 0026300 i f i c a n t s a v i n g s 0026320 i n s t o r a g e c a n b 0026340 e a c h i e v e d b y s i 0026360 m p l y l e a v i n g t h e 0026400 t e x t o f t h e c o m 0026420 m e n t o n t h e f i l e 0026440 w h e n t h e f i l e i 0026460 s l o a d e d , a n d i n 0026500 s t e a d r e t a i n i n g 0026520 i n c o r e o n l y a { 0026540 i t p o i n t e r } t o t 0026560 h e c o m m e n t . W h e 0026600 n t h i s f e a t u r e i 0026620 s e n a b l e d , { l i s p 0026640 * } i s d e f i n e d a 0026660 s a r e a d m a c r o ( 0026700 { P a g e R e f T a g R e a 0026720 d M a c r o s } ) i n { v a 0026740 r F I L E R D T B L } { i n d 0026760 e x F I L E R D T B L V a r 0027000 } w h i c h , i n s t e a d 0027020 o f r e a d i n g i n t 0027040 h e e n t i r e t e x t o 0027060 f t h e c o m m e n t , c 0027100 o n s t r u c t s a n e x p 0027120 r e s s i o n c o n t a i n i 0027140 n g ( 1 ) t h e n a m e 0027160 o f t h e f i l e i n w 0027200 h i c h t h e t e x t o f 0027220 t h e c o m m e n t i s 0027240 c o n t a i n e d , ( 2 ) t 0027260 h e a d d r e s s o f t h 0027300 e f i r s t c h a r a c t e 0027320 r o f t h e c o m m e n t 0027340 , ( 3 ) t h e n u m b e r 0027360 o f c h a r a c t e r s i 0027400 n t h e c o m m e n t , 0027420 a n d ( 4 ) a f l a g i 0027440 n d i c a t i n g w h e t h e 0027460 r t h e c o m m e n t a p 0027500 p e a r e d a t t h e r i 0027520 g h t h a n d m a r g i n 0027540 o r c e n t e r e d o n t 0027560 h e p a g e . F o r o u 0027600 t p u t p u r p o s e s , { 0027620 l i s p * } i s d e f i n 0027640 e d o n { v a r P R E T T 0027660 Y P R I N T M A C R O S } ( { 0027700 P a g e R e f V a r P R E T 0027720 T Y P R I N T M A C R O S } ) 0027740 s o t h a t i t p r i n t 0027760 s t h e c o m m e n t s r 0030000 e p r e s e n t e d b y s u 0030020 c h p o i n t e r s b y s 0030040 i m p l y c o p y i n g t h 0030060 e c o r r e s p o n d i n g 0030100 c h a r a c t e r s f r o m 0030120 o n e f i l e t o a n o t 0030140 h e r , o r t o t h e t 0030160 e r m i n a l . N o r m a l 0030200 c o m m e n t s a r e p r 0030220 o c e s s e d t h e s a m e 0030240 a s b e f o r e , a n d 0030260 c a n b e i n t e r m i x e 0030300 d f r e e l y w i t h c o 0030320 m m e n t p o i n t e r s . \r 0030340 \r \r T h e c o m m e n t p o 0030360 i n t e r f e a t u r e i s 0030400 c o n t r o l l e d b y t 0030420 h e f u n c t i o n { f n 0030440 N O R M A L C O M M E N T S } . 0030460 \r \r { F n D e f { N a m e N 0030500 O R M A L C O M M E N T S } { 0030520 A r g s F L G } \r { T e x t \r 0030540 I f { a r g F L G } i s 0030560 { l i s p N I L } , t h e 0030600 c o m m e n t p o i n t e r 0030620 f e a t u r e i s e n a b l 0030640 e d . I f { a r g F L G 0030660 } i s { l i s p T } , t 0030700 h e c o m m e n t p o i n t 0030720 e r f e a t u r e i s d i 0030740 s a b l e d ( t h e d e f a 0030760 u l t ) . \r \r { f n N O R M A 0031000 L C O M M E N T S } c a n b 0031020 e c h a n g e d a s o f t 0031040 e n a s d e s i r e d . 0031060 T h u s , s o m e f i l e s 0031100 c a n b e l o a d e d n 0031120 o r m a l l y , a n d o t h 0031140 e r s w i t h t h e i r c 0031160 o m m e n t s c o n v e r t e 0031200 d t o c o m m e n t p o i 0031220 n t e r s . \r } } \r \r \r F o r 0031240 c o n v e n i e n c e o f e 0031260 d i t i n g s e l e c t e d 0031300 c o m m e n t s , a n e d i 0031320 t m a c r o , { e d i t c o 0031340 m G E T * } { i n d e x G E 0031360 T * E d i t C o m } , i s 0031400 i n c l u d e d , w h i c h 0031420 l o a d s i n t h e t e x 0031440 t o f t h e c o r r e s p 0031460 o n d i n g c o m m e n t . 0031500 T h e e d i t o r ' s { f 0031520 n P P * } c o m m a n d , 0031540 i n c o n t r a s t , p r i 0031560 n t s t h e c o m m e n t 0031600 { i t w i t h o u t } r e a 0031620 d i n g i t b y s i m p l 0031640 y c o p y i n g t h e c o 0031660 r r e s p o n d i n g c h a r 0031700 a c t e r s t o t h e t e 0031720 r m i n a l . { e d i t c o 0031740 m G E T * } i s d e f i n 0031760 e d i n t e r m s o f { 0032000 f n G E T C O M M E N T } : \r 0032020 \r \r { F n D e f { F n N a m e 0032040 G E T C O M M E N T } { F n 0032060 A r g s X D E S T F L { a 0032100 n o n a r g } } \r { T e x t \r I 0032120 f { a r g X } i s a c 0032140 o m m e n t p o i n t e r , 0032160 r e p l a c e s { a r g X } 0032200 w i t h t h e a c t u a l 0032220 t e x t o f t h e c o m 0032240 m e n t , w h i c h i t r 0032260 e a d s f r o m i t s f i 0032300 l e . R e t u r n s { a r 0032320 g X } i n a l l c a s e 0032340 s . I f { a r g D E S T 0032360 F L } i s n o n - { l i s p 0032400 N I L } , i t i s t h e 0032420 n a m e o f a n o p e n 0032440 f i l e , t o w h i c h 0032460 { f n G E T C O M M E N T } 0032500 c o p i e s t h e c o m m e 0032520 n t ; i n t h i s c a s e 0032540 , { a r g X } r e m a i n 0032560 s a c o m m e n t p o i n 0032600 t e r , b u t i t h a s 0032620 b e e n c h a n g e d t o 0032640 p o i n t t o t h e n e w 0032660 f i l e ( u n l e s s { f 0032700 n N O R M A L C O M M E N T S 0032720 } { i n d e x N O R M A L C O 0032740 M M E N T S F n } h a s b 0032760 e e n s e t t o { l i s p 0033000 D O N T U P D A T E } ) . \r } 0033020 } \r \r { F n D e f { F n N a m 0033040 e P R I N T C O M M E N T } 0033060 { F n A r g s X } \r { T e x t 0033100 \r D e f i n e d a s t h e 0033120 p r e t t y p r i n t m a c r 0033140 o f o r { l i s p * } : 0033160 c o p i e s t h e c o m m e 0033200 n t t o t h e p r i m a r 0033220 y o u t p u t f i l e b y 0033240 u s i n g { f n G E T C O 0033260 M M E N T } . \r } } \r \r { F n D 0033300 e f { F n N a m e R E A D C 0033320 O M M E N T } { F n A r g s 0033340 F L R D T B L L S T } \r { T 0033360 e x t \r D e f i n e d a s t 0033400 h e r e a d m a c r o f o 0033420 r { l i s p * } i n { l 0033440 i s p F I L E R D T B L } : 0033460 i f { v a r N O R M A L C O 0033500 M M E N T S F L G } i s { l 0033520 i s p N I L } , i t c o n 0033540 s t r u c t s a c o m m e n 0033560 t p o i n t e r , u n l e s 0033600 s i t b e l i e v e s t h 0033620 e e x p r e s s i o n b e g 0033640 i n n i n g w i t h { l i s 0033660 p * } i s n o t a c t u 0033700 a l l y a c o m m e n t , 0033720 e . g . , i f t h e n e x 0033740 t a t o m i s " { l i s p 0033760 . } " o r { l i s p E } 0034000 . \r } } \r \r \r N o t e t h a t 0034020 a c e r t a i n a m o u n 0034040 t o f c a r e i s r e q 0034060 u i r e d i n u s i n g t 0034100 h e c o m m e n t p o i n t 0034120 e r f e a t u r e . S i n 0034140 c e t h e t e x t o f t 0034160 h e c o m m e n t r e s i d 0034200 e s o n t h e f i l e p 0034220 o i n t e d t o b y t h e 0034240 c o m m e n t p o i n t e r 0034260 , t h a t f i l e m u s t 0034300 r e m a i n i n e x i s t 0034320 e n c e a s l o n g a s 0034340 t h e c o m m e n t i s n 0034360 e e d e d . { f n G E T C 0034400 O M M E N T } h e l p s o u 0034420 t b y c h a n g i n g t h 0034440 e c o m m e n t p o i n t e 0034460 r t o a l w a y s p o i n 0034500 t a t t h e m o s t r e 0034520 c e n t f i l e t h a t t 0034540 h e c o m m e n t l i v e s 0034560 o n . H o w e v e r , i 0034600 f t h e u s e r h a s b 0034620 e e n p e r f o r m i n g r 0034640 e p e a t e d { f n M A K E 0034660 F I L E } ' s ( { P a g e R e 0034700 f F n M A K E F I L E } ) 0034720 i n w h i c h d i f f e r i 0034740 n g f u n c t i o n s h a v 0034760 e c h a n g e d a t e a c 0035000 h i n v o c a t i o n o f 0035020 { f n M A K E F I L E } , i 0035040 t i s p o s s i b l e f o 0035060 r t h e c o m m e n t p o 0035100 i n t e r s i n m e m o r y 0035120 t o b e p o i n t i n g 0035140 a t s e v e r a l v e r s i 0035160 o n s o f t h e s a m e 0035200 f i l e , s i n c e a c o 0035220 m m e n t p o i n t e r i s 0035240 o n l y u p d a t e d w h 0035260 e n t h e f u n c t i o n 0035300 i t l i v e s i n i s p 0035320 r e t t y p r i n t e d , n o 0035340 t w h e n t h e f u n c t 0035360 i o n h a s b e e n c o p 0035400 i e d v e r b a t i m t o 0035420 t h e n e w f i l e . T 0035440 h i s c a n b e a p r o 0035460 b l e m f o r f i l e s y 0035500 s t e m s t h a t h a v e 0035520 a b u i l t - i n l i m i t 0035540 o n t h e n u m b e r o 0035560 f v e r s i o n s o f a 0035600 g i v e n f i l e t h a t 0035620 w i l l b e m a d e b e f 0035640 o r e o l d v e r s i o n s 0035660 a r e e x p u n g e d . 0035700 I n s u c h a c a s e , 0035720 t h e u s e r s h o u l d 0035740 s e t t h e v e r s i o n 0035760 r e t e n t i o n c o u n t 0036000 o f a n y d i r e c t o r i 0036020 e s i n v o l v e d t o b 0036040 e i n f i n i t e . { f n 0036060 G E T C O M M E N T } p r i 0036100 n t s a n e r r o r m e s 0036120 s a g e i f t h e f i l e 0036140 t h a t t h e c o m m e n 0036160 t p o i n t e r p o i n t s 0036200 a t h a s d i s a p p e a 0036220 r e d . \r \r S i m i l a r l y , 0036240 o n e s h o u l d b e c 0036260 o g n i z a n t o f c o m m 0036300 e n t p o i n t e r s i n 0036320 s y s o u t s , a n d b e 0036340 s u r e t o r e t a i n a 0036360 n y f i l e s t h u s p o 0036400 i n t e d t o . \r \r W h e n 0036420 u s i n g c o m m e n t p o 0036440 i n t e r s , t h e u s e r 0036460 s h o u l d a l s o n o t 0036500 s e t { v a r P R E T T Y 0036520 F L G } ( { P a g e R e f V 0036540 a r P R E T T Y F L G } ) t 0036560 o { l i s p N I L } o r 0036600 c a l l { f n M A K E F I L 0036620 E } w i t h o p t i o n { 0036640 l i s p F A S T } , s i n c 0036660 e t h i s w i l l p r e v 0036700 e n t f u n c t i o n s f r 0036720 o m b e i n g p r e t t y p 0036740 r i n t e d , a n d h e n c 0036760 e n o t g e t t h e t e 0037000 x t o f t h e c o m m e n 0037020 t c o p i e d i n t o t h 0037040 e n e w f i l e . \r \r \r I f 0037060 t h e u s e r c h a n g e 0037100 s t h e v a l u e o f { 0037120 v a r C O M M E N T F L G } { 0037140 i n d e x C O M M E N T F L G 0037160 V a r } b u t s t i l l 0037200 w i s h e s t o u s e t h 0037220 e c o m m e n t p o i n t e 0037240 r f e a t u r e , t h e n 0037260 e w { v a r C O M M E N T F 0037300 L G } s h o u l d b e g i 0037320 v e n t h e s a m e r e a 0037340 d - m a c r o d e f i n i t i 0037360 o n i n { v a r F I L E R 0037400 D T B L } a s { l i s p * 0037420 } h a s , a n d t h e s 0037440 a m e e n t r y b e p u t 0037460 o n { v a r P R E T T Y P 0037500 R I N T M A C R O S } . F o 0037520 r e x a m p l e , i f { v 0037540 a r C O M M E N T F L G } i 0037560 s r e s e t t o b e " { 0037600 l i s p ; } " , t h e n { 0037620 l i s p ( S E T S Y N T A X 0037640 ' ; ' * F I L E R D T B L ) 0037660 } s h o u l d b e p e r f 0037700 o r m e d , a n d { l i s p 0037720 ( ; . P R I N T C O M M E 0037740 N T ) } a d d e d t o { v 0037760 a r P R E T T Y P R I N T M A 0040000 C R O S } . \r \r } { E n d S u 0040020 b S e c C o m m e n t P o i 0040040 n t e r s } \r \r \r \r { B e g i n 0040060 S u b S e c C o n v e r t i 0040100 n g C o m m e n t s t o L 0040120 o w e r C a s e } \r { T i t l 0040140 e C o n v e r t i n g C o m 0040160 m e n t s t o L o w e r C 0040200 a s e } \r { T e x t \r \r { i n d 0040220 e x * P R I M A R Y * L o w 0040240 e r c a s e c o m m e n t s 0040260 } \r \r { T a g L o w e r C a s 0040300 e C o m m e n t s } \r \r \r T h i 0040320 s s e c t i o n i s f o r 0040340 u s e r s u s i n g t e r 0040360 m i n a l s w i t h o u t l 0040400 o w e r c a s e , w h o n 0040420 e v e r t h e l e s s w o u l 0040440 d l i k e t h e i r c o m 0040460 m e n t s t o b e c o n v 0040500 e r t e d t o l o w e r c 0040520 a s e f o r m o r e r e a 0040540 d a b l e l i s t i n g s . 0040560 I f t h e s e c o n d a 0040600 t o m i n a c o m m e n t 0040620 i s { l i s p % % } , t 0040640 h e t e x t o f t h e c 0040660 o m m e n t i s c o n v e r 0040700 t e d t o l o w e r c a s 0040720 e s o t h a t i t l o o 0040740 k s l i k e E n g l i s h 0040760 i n s t e a d o f L i s p . 0041000 N o t e t h a t c o m m 0041020 e n t s a r e c o n v e r t 0041040 e d { i t o n l y } w h e 0041060 n t h e y a r e a c t u a 0041100 l l y w r i t t e n t o a 0041120 f i l e b y { f n P R E 0041140 T T Y P R I N T } . \r \r \r T h e 0041160 a l g o r i t h m f o r c 0041200 o n v e r s i o n t o l o w 0041220 e r c a s e i s t h e f 0041240 o l l o w i n g : I f t h 0041260 e f i r s t c h a r a c t e 0041300 r i n a n a t o m i s 0041320 { l i s p ^ } , { i n d e x 0041340 ^ ( u s e i n c o m m e n 0041360 t s ) } d o n o t c h a n 0041400 g e t h e a t o m ( b u t 0041420 r e m o v e t h e { l i s 0041440 p ^ } ) . I f t h e f 0041460 i r s t c h a r a c t e r i 0041500 s { l i s p % } , { i n d e 0041520 x % ( u s e i n c o m m 0041540 e n t s ) } c o n v e r t t 0041560 h e a t o m t o l o w e r 0041600 c a s e . N o t e t h a 0041620 t t h e u s e r m u s t 0041640 t y p e { l i s p % % } a 0041660 s { l i s p % } i s t h 0041700 e e s c a p e c h a r a c t 0041720 e r . I f t h e a t o m 0041740 ( m i n u s a n y t r a i 0041760 l i n g p u n c t u a t i o n 0042000 m a r k s ) i s a n I n 0042020 t e r l i s p w o r d ( i . 0042040 e . , i s a b o u n d o 0042060 r f r e e v a r i a b l e 0042100 f o r t h e f u n c t i o n 0042120 c o n t a i n i n g t h e 0042140 c o m m e n t , o r h a s 0042160 a t o p l e v e l v a l u 0042200 e , o r i s a d e f i n 0042220 e d f u n c t i o n , o r 0042240 h a s a n o n - { l i s p 0042260 N I L } p r o p e r t y l i 0042300 s t ) , d o n o t c h a n 0042320 g e i t . O t h e r w i s 0042340 e , c o n v e r t t h e a 0042360 t o m t o l o w e r c a s 0042400 e . C o n v e r s i o n o 0042420 n l y a f f e c t s t h e 0042440 u p p e r c a s e a l p h a 0042460 b e t , i . e . , a t o m s 0042500 a l r e a d y c o n v e r t 0042520 e d t o l o w e r c a s e 0042540 a r e n o t c h a n g e d 0042560 i f t h e c o m m e n t 0042600 i s c o n v e r t e d a g a 0042620 i n . W h e n c o n v e r t 0042640 i n g , t h e f i r s t c 0042660 h a r a c t e r i n t h e 0042700 c o m m e n t a n d t h e 0042720 f i r s t c h a r a c t e r 0042740 f o l l o w i n g e a c h p 0042760 e r i o d a r e l e f t c 0043000 a p i t a l i z e d . A f t 0043020 e r c o n v e r s i o n , t 0043040 h e c o m m e n t i s p h 0043060 y s i c a l l y m o d i f i e 0043100 d t o b e t h e l o w e 0043120 r c a s e t e x t m i n u 0043140 s t h e { l i s p % % } { 0043160 i n d e x % % ( u s e i n 0043200 c o m m e n t s ) } f l a g 0043220 , s o t h a t c o n v e r 0043240 s i o n i s t h u s o n l 0043260 y p e r f o r m e d o n c e 0043300 ( u n l e s s t h e u s e 0043320 r e d i t s t h e c o m m 0043340 e n t i n s e r t i n g a d 0043360 d i t i o n a l u p p e r c 0043400 a s e t e x t a n d a n o 0043420 t h e r { l i s p % % } f 0043440 l a g ) . \r \r { V a r D e f { 0043460 N a m e L C A S E L S T } \r { 0043500 T e x t \r W o r d s o n { v 0043520 a r L C A S E L S T } w i l 0043540 l a l w a y s b e c o n v 0043560 e r t e d t o l o w e r c 0043600 a s e . { v a r L C A S E 0043620 L S T } i s i n i t i a l i 0043640 z e d t o c o n t a i n w 0043660 o r d s w h i c h a r e I 0043700 n t e r l i s p f u n c t i o 0043720 n s b u t a l s o a p p e 0043740 a r f r e q u e n t l y i n 0043760 c o m m e n t s a s E n g 0044000 l i s h w o r d s ( { l i s 0044020 p A N D } , { l i s p E V 0044040 E R Y } , { l i s p G E T } 0044060 , { l i s p G O } , { l i 0044100 s p L A S T } , { l i s p 0044120 L E N G T H } , { l i s p 0044140 L I S T } , e t c . ) . T 0044160 h e r e f o r e , i f o n e 0044200 w i s h e d t o t y p e 0044220 a c o m m e n t i n c l u d 0044240 i n g t h e l i s p f u c 0044260 t i o n { f n G O } , i t 0044300 w o u l d b e n e c e s s 0044320 a r y t o t y p e { l i s 0044340 p ^ G O } i n o r d e r 0044360 t h a t i t m i g h t b e 0044400 l e f t i n u p p e r c 0044420 a s e . \r } } \r \r { V a r D e f 0044440 { N a m e U C A S E L S T } 0044460 \r { T e x t \r W o r d s o n 0044500 { v a r U C A S E L S T } ( 0044520 t h a t d o n o t a p p e 0044540 a r o n { v a r L C A S E 0044560 L S T } ) w i l l b e l e 0044600 f t i n u p p e r c a s e 0044620 . { v a r U C A S E L S T 0044640 } i s i n i t i a l i z e d 0044660 t o { l i s p N I L } . \r 0044700 } } \r \r { V a r D e f { N a m 0044720 e A B B R E V L S T } \r { T e 0044740 x t \r { v a r A B B R E V L S 0044760 T } i s u s e d t o d i 0045000 s t i n g u i s h b e t w e e 0045020 n a b b r e v i a t i o n s 0045040 a n d w o r d s t h a t e 0045060 n d i n p e r i o d s . 0045100 N o r m a l l y , w o r d s 0045120 t h a t e n d i n p e r i 0045140 o d s a n d o c c u r m o 0045160 r e t h a n h a l f w a y 0045200 t o t h e r i g h t m a r 0045220 g i n c a u s e c a r r i a 0045240 g e - r e t u r n s . F u r 0045260 t h e r m o r e , d u r i n g 0045300 c o n v e r s i o n t o l 0045320 o w e r c a s e , w o r d s 0045340 e n d i n g i n p e r i o d 0045360 s , e x c e p t f o r t h 0045400 o s e o n { v a r A B B R 0045420 E V L S T } , c a u s e t h 0045440 e f i r s t c h a r a c t e 0045460 r i n t h e { i t n e x 0045500 t } w o r d t o b e c a 0045520 p i t a l i z e d . { v a r 0045540 A B B R E V L S T } i s i 0045560 n i t i a l i z e d t o t h 0045600 e u p p e r a n d l o w e 0045620 r c a s e f o r m s o f 0045640 { l i s p E T C . } , { l i 0045660 s p I . E . } , a n d { l 0045700 i s p E . G . } . \r } } \r \r \r 0045720 \r } { E n d S u b S e c C o 0045740 n v e r t i n g C o m m e n t 0045760 s t o L o w e r C a s e } 0046000 \r \r \r { B e g i n S u b S e c 0046020 S p e c i a l P r e t t y p 0046040 r i n t C o n t r o l s } \r { 0046060 T i t l e S p e c i a l P r 0046100 e t t y p r i n t C o n t r o 0046120 l s } \r { T e x t \r \r \r { V a r 0046140 D e f { N a m e P R E T T Y 0046160 T A B F L G } \r { T e x t \r I n 0046200 o r d e r t o s a v e s 0046220 p a c e o n f i l e s , t 0046240 a b s a r e u s e d i n s 0046260 t e a d o f s p a c e s f 0046300 o r t h e i n i t a l s p 0046320 a c e s o n e a c h l i n 0046340 e , a s s u m i n g t h a t 0046360 e a c h t a b c o r r e s 0046400 p o n d s t o 8 s p a c e 0046420 s . T h i s r e s u l t s 0046440 i n a r e d u c t i o n 0046460 o f f i l e s i z e b y 0046500 a b o u t 3 0 % . T a b s 0046520 a r e n o t u s e d i f 0046540 { v a r P R E T T Y T A B F 0046560 L G } i s s e t t o { l 0046600 i s p N I L } ( i n i t i a 0046620 l l y { l i s p T } ) . \r } 0046640 } \r \r \r { i n d e x X { N a m 0046660 e R P A R S } { T y p e V 0046700 a r i a b l e } \r { T e x t { 0046720 l i s p # R P A R S } } } \r 0046740 \r { V a r D e f { N a m e # 0046760 R P A R S } \r { T e x t \r C o n 0047000 t r o l s t h e n u m b e r 0047020 o f r i g h t p a r e n t 0047040 h e s e s n e c e s s a r y 0047060 f o r s q u a r e b r a c k 0047100 e t i n g t o o c c u r . { 0047120 i n d e x S q u a r e b r a 0047140 c k e t s i n s e r t e d b 0047160 y P R E T T Y P R I N T } { i 0047200 n d e x [ , ] i n s e r t e 0047220 d b y P R E T T Y P R I N T 0047240 } I f { v a r # R P A R 0047260 S } = { l i s p N I L } , n 0047300 o b r a c k e t s a r e u 0047320 s e d . { v a r # R P A R 0047340 S } i s i n i t i a l i z e 0047360 d t o 4 . \r } } \r \r \r \r { V 0047400 a r D e f { N a m e F I R S 0047420 T C O L } \r { T e x t \r T h e 0047440 s t a r t i n g c o l u m n 0047460 f o r c o m m e n t s . C 0047500 o m m e n t s r u n b e t w 0047520 e e n { v a r F I R S T C O 0047540 L } a n d t h e l i n e 0047560 l e n g t h s e t b y { f 0047600 n L I N E L E N G T H } ( { 0047620 P a g e R e f F n L I N E L 0047640 E N G T H } ) . I f a w 0047660 o r d i n a c o m m e n t 0047700 e n d s w i t h a " { l 0047720 i s p . } " a n d i s n 0047740 o t o n t h e l i s t { 0047760 i n d e x A B B R E V L S T 0050000 V a r } { v a r A B B R E V L 0050020 S T } , a n d t h e p o s 0050040 i t i o n i s g r e a t e r 0050060 t h a n h a l f w a y b e 0050100 t w e e n { v a r F I R S T 0050120 C O L } a n d { f n L I N 0050140 E L E N G T H } , t h e n e 0050160 x t w o r d i n t h e c 0050200 o m m e n t b e g i n s o n 0050220 a n e w l i n e . A l 0050240 s o , i f a l i s t i s 0050260 e n c o u n t e r e d i n 0050300 a c o m m e n t , a n d t 0050320 h e p o s i t i o n i s g 0050340 r e a t e r t h a n h a l f 0050360 w a y , t h e l i s t b e 0050400 g i n s o n a n e w l i 0050420 n e . \r } } \r \r \r { V a r D e f 0050440 { N a m e P R E T T Y L C O 0050460 M } \r { T e x t \r I f a c o 0050500 m m e n t h a s m o r e t 0050520 h a n { v a r P R E T T Y L 0050540 C O M } e l e m e n t s ( u 0050560 s i n g { f n C O U N T } ) 0050600 , i t i s p r i n t e d 0050620 s t a r t i n g a t c o l u 0050640 m n 1 0 , i n s t e a d o 0050660 f { v a r F I R S T C O L } 0050700 . C o m m e n t s a r e 0050720 a l s o p r i n t e d s t a 0050740 r t i n g a t c o l u m n 0050760 1 0 i f t h e i r s e c o 0051000 n d e l e m e n t i s a l 0051020 s o a { l i s p * } , i 0051040 . e . , c o m m e n t s o f 0051060 t h e f o r m { l i s p 0051100 ( * * - - ) } . \r } } \r \r \r 0051120 { i n d e x X { N a m e C A 0051140 R E F U L C O L U M N S } { T 0051160 y p e V a r i a b l e } \r { T 0051200 e x t { l i s p # C A R E F 0051220 U L C O L U M N S } } } \r \r { 0051240 V a r D e f { N a m e # C A 0051260 R E F U L C O L U M N S } \r { T 0051300 e x t \r I n t h e i n t e r 0051320 e s t s o f e f f i c i e n 0051340 c y , { f n P R E T T Y P R 0051360 I N T } a p p r o x i m a t e 0051400 s t h e n u m b e r o f 0051420 c h a r a c t e r s i n e a 0051440 c h a t o m , r a t h e r 0051460 t h a n c a l l i n g { f n 0051500 N C H A R S } , w h e n c 0051520 o m p u t i n g h o w m u c 0051540 h w i l l f i t o n a 0051560 l i n e . T h i s p r o c 0051600 e d u r e w o r k s s a t i 0051620 s f a c t o r i l y i n m o 0051640 s t c a s e s . H o w e v 0051660 e r , u s e r s w i t h u 0051700 n u s u a l l y l o n g a t 0051720 o m s i n t h e i r p r o 0051740 g r a m s , e . g . , s u c 0051760 h a s p r o d u c e d b y 0052000 { f n C L I S P I F Y } , 0052020 m a y o c c a s i o n l l y 0052040 e n c o u n t e r s o m e g 0052060 l i t c h e s i n t h e o 0052100 u t p u t p r o d u c e d b 0052120 y { f n P R E T T Y P R I N 0052140 T } . T h e v a l u e o 0052160 f { v a r # C A R E F U L C 0052200 O L U M N S } t e l l s { f 0052220 n P R E T T Y P R I N T } h 0052240 o w m a n y c o l u m n s 0052260 ( c o u n t i n g f r o m t 0052300 h e r i g h t h a n d m a 0052320 r g i n ) i n w h i c h t 0052340 o a c t u a l l y c o m p u 0052360 t e { f n N C H A R S } i 0052400 n s t e a d o f a p p r o x 0052420 i m a t i n g . S e t t i n 0052440 g { v a r # C A R E F U L C 0052460 O L U M N S } t o 2 0 o r 0052500 3 0 w i l l e l i m i n a 0052520 t e t h e g l i t c h e s , 0052540 a l t h o u g h i t w i l 0052560 l s l o w d o w n { f n 0052600 P R E T T Y P R I N T } s l i 0052620 g h t l y . { v a r # C A 0052640 R E F U L C O L U M N S } i s 0052660 i n i t i a l l y 0 . \r } } 0052700 \r \r \r { F n D e f { F n N a m 0052720 e W I D E P A P E R } { F n 0052740 A r g s F L G } \r { T e x t \r 0052760 { l i s p ( W I D E P A P E R 0053000 T ) } s e t s { v a r F 0053020 I L E L I N E L E N G T H } { i 0053040 n d e x F I L E L I N E L E N 0053060 G T H V a r } ( { P a g e R 0053100 e f V a r F I L E L I N E L 0053120 E N G T H } ) , { i n d e x 0053140 F I R S T C O L V a r } { v a 0053160 r F I R S T C O L } , a n d 0053200 { i n d e x P R E T T Y L C 0053220 O M V a r } { v a r P R E T 0053240 T Y L C O M } t o l a r g e 0053260 v a l u e s a p p r o p r i 0053300 a t e f o r p r e t t y p 0053320 r i n t i n g f i l e s t o 0053340 b e l i s t e d o n w i 0053360 d e p a p e r . { l i s p 0053400 ( W I D E P A P E R ) } r e 0053420 s t o r e s t h e s e p a r 0053440 a m e t e r s t o t h e i r 0053460 i n i t i a l v a l u e s . 0053500 { f n W I D E P A P E R } 0053520 r e t u r n s t h e p r e 0053540 v i o u s s e t t i n g o f 0053560 { a r g F L G } . \r } } \r \r 0053600 \r \r { n o t e s h o u l d P 0053620 R E T T Y F L G b e m o v e 0053640 d n e a r P R I N T D E F 0053660 ( i n P R E T T Y D E F s e 0053700 c t i o n ) ? ? } \r \r { V a r 0053720 D e f { N a m e P R E T T Y 0053740 F L G } \r { T e x t \r I f { v 0053760 a r P R E T T Y F L G } i s 0054000 { l i s p N I L } , { i n 0054020 d e x P R I N T D E F F N } 0054040 { f n P R I N T D E F } u s 0054060 e s { f n P R I N 2 } i n 0054100 s t e a d o f p r e t t y p 0054120 r i n t i n g . T h i s i 0054140 s u s e f u l f o r p r o 0054160 d u c i n g a f a s t s y 0054200 m b o l i c d u m p ( s e e 0054220 t h e { l i s p F A S T } 0054240 o p t i o n o f { f n M 0054260 A K E F I L E } , { P a g e R 0054300 e f F n M A K E F I L E } ) 0054320 . N o t e t h a t t h e 0054340 f i l e l o a d s t h e 0054360 s a m e a s i f i t w e 0054400 r e p r e t t y p r i n t e d 0054420 . { v a r P R E T T Y F L 0054440 G } i s i n i t i a l l y 0054460 s e t t o { l i s p T } . 0054500 { v a r P R E T T Y F L G 0054520 } s h o u l d n o t b e 0054540 s e t t o { l i s p N I L 0054560 } i f c o m m e n t p o i 0054600 n t e r s ( { P a g e R e f 0054620 t a g C o m m e n t P o i n t 0054640 e r } ) a r e b e i n g u 0054660 s e d . \r } } \r \r \r { V a r D e 0054700 f { N a m e C L I S P I F Y 0054720 P R E T T Y F L G } \r { T e x t 0054740 \r U s e d t o i n f o r m 0054760 { f n P R E T T Y P R I N T } 0055000 t o c a l l { f n C L I 0055020 S P I F Y } o n s e l e c t 0055040 e d f u n c t i o n d e f i 0055060 n i t i o n s b e f o r e p 0055100 r i n t i n g t h e m ( s e 0055120 e { P a g e R e f V a r C 0055140 L I S P I F Y P R E T T Y F L G 0055160 } ) . \r } } \r \r \r { V a r D e f 0055200 { N a m e P R E T T Y P R I 0055220 N T M A C R O S } \r { T e x t \r 0055240 A n a s s o c i a t i o n - l 0055260 i s t t h a t e n a b l e s 0055300 t h e u s e r t o c o n 0055320 t r o l t h e f o r m a t t 0055340 i n g o f s e l e c t e d 0055360 e x p r e s s i o n s . { f 0055400 n C A R } o f e a c h e 0055420 x p r e s s i o n b e i n g 0055440 { f n P R E T T Y P R I N T } 0055460 e d i s l o o k e d u p 0055500 o n { v a r P R E T T Y P R 0055520 I N T M A C R O S } , a n d 0055540 i f f o u n d , { f n C D 0055560 R } o f t h e c o r r e s 0055600 p o n d i n g e n t r y i s 0055620 a p p l i e d t o t h e 0055640 e x p r e s s i o n . I f 0055660 t h e r e s u l t o f t h 0055700 i s a p p l i c a t i o n i 0055720 s { l i s p N I L } , { f 0055740 n P R E T T Y P R I N T } i 0055760 g n o r e s t h e e x p r e 0056000 s s i o n ; i . e . , i t 0056020 p r i n t s n o t h i n g , 0056040 a s s u m i n g t h a t t h 0056060 e p r e t t y p r i n t m a c 0056100 r o h a s d o n e a n y 0056120 d e s i r e d p r i n t i n g 0056140 . I f t h e r e s u l t 0056160 o f a p p l y i n g t h e 0056200 p r e t t y p r i n t m a c 0056220 r o i s n o n - { l i s p 0056240 N I L } , t h e r e s u l t 0056260 i s p r e t t y p r i n t e 0056300 d i n t h e n o r m a l 0056320 f a s h i o n . T h i s g 0056340 i v e s t h e u s e r t h 0056360 e o p t i o n o f c o m p 0056400 u t i n g s o m e o t h e r 0056420 e x p r e s s i o n t o b 0056440 e p r e t t y p r i n t e d 0056460 i n i t s p l a c e . \r \r N 0056500 o t e : " p r e t t y p r i 0056520 n t e d i n t h e n o r m 0056540 a l f a s h i o n " i n c l 0056560 u d e s p r o c e s s i n g 0056600 p r e t t y p r i n t m a c r 0056620 o s , u n l e s s t h e p 0056640 r e t t y p r i n t m a c r o 0056660 r e t u r n s a s t r u c 0056700 t u r e { l i s p E Q } t 0056720 o t h e o n e i t w a s 0056740 h a n d e d , i n w h i c 0056760 h c a s e t h e p o t e n 0057000 t i a l r e c u r s i o n i 0057020 s b r o k e n . \r } } \r \r \r { 0057040 V a r D e f { N a m e P R E 0057060 T T Y P R I N T Y P E M A C R O 0057100 S } \r { T e x t \r A l i s t 0057120 o f e l e m e n t s o f t 0057140 h e f o r m { l i s p ( { 0057160 a r g T Y P E N A M E } . 0057200 { a r g F N } ) } . F o r 0057220 t y p e s o t h e r t h a 0057240 n l i s t s a n d a t o m 0057260 s , t h e t y p e n a m e 0057300 o f e a c h d a t u m t 0057320 o b e p r e t t y p r i n t 0057340 e d i s l o o k e d u p 0057360 o n { v a r P R E T T Y P R 0057400 I N T Y P E M A C R O S } , a 0057420 n d i f f o u n d , t h e 0057440 c o r r e s p o n d i n g f 0057460 u n c t i o n i s a p p l i 0057500 e d t o t h e d a t u m 0057520 a b o u t t o b e p r i n 0057540 t e d , i n s t e a d o f 0057560 s i m p l y p r i n t i n g 0057600 i t w i t h { f n P R I N 0057620 2 } . \r } } \r \r \r { V a r D e f 0057640 { N a m e P R E T T Y E Q U 0057660 I V L S T } \r { T e x t \r A n 0057700 a s s o c i a t i o n - l i s t 0057720 t h a t t e l l s { f n 0057740 P R E T T Y P R I N T } t o 0057760 t r e a t a { f n C A R } 0060000 - o f - f o r m t h e s a m 0060020 e a s s o m e o t h e r 0060040 { f n C A R } - o f - f o r m 0060060 . F o r e x a m p l e , 0060100 i f { l i s p ( Q L A M B D 0060120 A . L A M B D A ) } a p p 0060140 e a r s o n { v a r P R E 0060160 T T Y E Q U I V L S T } , t h 0060200 e n e x p r e s s i o n s b 0060220 e g i n n i n g w i t h { l 0060240 i s p Q L A M B D A } a r e 0060260 p r e t t y p r i n t e d t 0060300 h e s a m e a s { l i s p 0060320 L A M B D A } s . C u r r 0060340 e n t l y , { v a r P R E T 0060360 T Y E Q U I V L S T } o n l y 0060400 a l l o w s ( i . e . , s 0060420 u p p o r t s i n a n i n 0060440 t e r e s t i n g w a y ) e 0060460 q u i v a l e n c e s t o f 0060500 o r m s t h a t { f n P R 0060520 E T T Y P R I N T } i n t e r 0060540 n a l l y h a n d l e s . 0060560 E q u i v a l e n c e t o f 0060600 o r m s f o r w h i c h t 0060620 h e u s e r h a s s p e c 0060640 i f i e d a p r e t t y p r 0060660 i n t m a c r o s h o u l d 0060700 b e m a d e b y a d d i 0060720 n g f u r t h e r e n t r i 0060740 e s t o { v a r P R E T T 0060760 Y P R I N T M A C R O S } \r } } 0061000 \r \r \r { V a r D e f { N a m e 0061020 C H A N G E C H A R } \r { T e 0061040 x t \r I f n o n - { l i s p 0061060 N I L } , a n d { f n P R 0061100 E T T Y P R I N T } i s p r 0061120 i n t i n g t o a f i l e 0061140 o r d i s p l a y t e r m 0061160 i n a l , { f n P R E T T Y 0061200 P R I N T } p r i n t s { v 0061220 a r C H A N G E C H A R } i 0061240 n t h e r i g h t h a n d 0061260 m a r g i n w h i l e p r 0061300 i n t i n g t h o s e e x p 0061320 r e s s i o n s m a r k e d 0061340 b y t h e e d i t o r a s 0061360 h a v i n g b e e n c h a 0061400 n g e d ( s e e { P a g e R 0061420 e f T a g E d i t o r C h a 0061440 n g e M a r k s } ) . { v a 0061460 r C H A N G E C H A R } i s 0061500 i n i t i a l l y { l i s p 0061520 | } . { i n d e x * P R I M 0061540 A R Y * | ( c h a n g e c 0061560 h a r a c t e r ) } \r } } \r \r \r 0061600 } { E n d S u b S e c S p e 0061620 c i a l P r e t t y p r i n t 0061640 C o n t r o l s } \r \r \r } { E 0061660 n d S u b S e c P r e t t y 0061700 p r i n t } \r \r \r \0 \0 \0 \0 \0 004 \0 0061720 002 \0 ? \0 1 ( D E F A U L T F O N 0061740 T 1 ( G A C H A 1 0 ) ( 0061760 G A C H A 8 ) ( T E R M I N 0062000 A L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0062020 \0 ? \0 1 ( D E F A U L T F O N T 0062040 1 ( G A C H A 1 0 ) ( G 0062060 A C H A 8 ) ( T E R M I N A 0062100 L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0062120 \0 % 326 \0 \0 \0 \0 002 \0 \0 \0 \a \0 \0 \0 \0 0062140 001 \0 \0 \0 \b \0 \0 \0 \0 002 \0 \0 \0 \v \0 \0 0062160 \0 \0 001 \0 \0 \0 024 \0 \0 \0 \0 002 \0 \0 \0 \v 0062200 \0 \0 \0 \0 001 \0 \0 001 003 \0 \0 \0 \0 002 \0 \0 0062220 \0 \t \0 \0 \0 \0 001 \0 \0 \0 \v \0 \0 \0 \0 002 0062240 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 016 \0 \0 \0 0062260 \0 002 \0 \0 \0 \v \0 \0 \0 \0 001 \0 \0 < 202 \0 0062300 \0 \0 \0 002 \0 \0 c 311 \0 \r z 272 0062314