$ od -c -N 50000 [qv]<notecards>1.3K>LIBRARY>ncpath>NCPATHPARSE.TEDIT!1 0000000 X E R O X \t N C P a t h P a r s 0000020 e \r 2 \r \r 4 \r \r 1 \r \r N C P a t 0000040 h P a r s e \r 1 \r \r 4 \r \r B y : 0000060 D a v i d N e w m a n ( 0000100 N e w m a n . p a s a @ X e r o 0000120 x . C O M ) \r N C P a t h , N 0000140 C P a t h U s e \r I N T R O D U 0000160 C T I O N \r T h i s p a c k a 0000200 g e p a r s e s e x p r e s 0000220 s i o n s o f a s i m p l 0000240 e p a t h d e s c r i p t i 0000260 o n l a n g u a g e i n t o 0000300 N C P a t h F S M d a t a 0000320 s t r u c t u r e s f o r u 0000340 s e b y N C P a t h . F S M 0000360 . P a t h C o l l e c t . T h 0000400 e l a n g u a g e i s d e 0000420 s c r i b e d b y a B N F 0000440 g r a m m a r i n t h e 0000460 f i l e N C P a t h L a n g u 0000500 a g e . T E d i t . A s i m 0000520 p l e r d e s c r i p t i o n 0000540 o f t h e l a n g u a g e 0000560 f o l l o w s . \r P A T H 0000600 D E S C R I P T I O N L A N G 0000620 U A G E \r T h e b a s i c u 0000640 n i t s o f t h e l a n g 0000660 u a g e a r e p a t h s t 0000700 e p d e s c r i p t o r s . 0000720 E a c h d e s c r i p t o r 0000740 i s e i t h e r a l i t e 0000760 r a l d e s c r i p t o r o 0001000 r a f u n c t i o n a l d 0001020 e s c r i p t o r . T h e l 0001040 i t e r a l d e s c r i p t o 0001060 r s c o n s i s t o f l i 0001100 n k t y p e s a n d c a r 0001120 d t y p e s c u r r e n t l 0001140 y e x i s t i n g i n t h 0001160 e a c t i v e n o t e f i l 0001200 e . F u n c t i o n a l d e 0001220 s c r i p t o r s a r e t h 0001240 e n a m e s o f l i s p 0001260 p r e d i c a t e s t h a t 0001300 c a n b e a p p l i e d t 0001320 o a l i n k o r c a r d 0001340 , a n d w h i c h r e t u 0001360 r n T o r N I L . A p 0001400 r o p o s e d n e w s t e p 0001420 i n a p a t h t h r o u 0001440 g h a n o t e f i l e i s 0001460 a c c e p t e d w h e n i 0001500 t i s o f t h e t y p e 0001520 s p e c i f i e d b y a 0001540 l i t e r a l d e s c r i p t 0001560 o r o r w h e n a p p l i 0001600 c a t i o n o f t h e f u 0001620 n c t i o n s p e c i f i e d 0001640 b y a f u n c t i o n a l 0001660 d e s c r i p t o r r e t u 0001700 r n s T . E a c h p a t h 0001720 s t e p d e s c r i p t o r 0001740 h a s a n o p t i o n a l 0001760 p r e f i x o f s e v e r 0002000 a l c h a r a c t e r s . T 0002020 h e c h a r a c t e r @ i 0002040 n d i c a t e s t h a t t h 0002060 e d e s c r i p t o r s p e 0002100 c i f i e s t h e c a r d 0002120 a t t h e e n d o f t h 0002140 e p a t h s t e p . T h e 0002160 c h a r a c t e r # p r e 0002200 f a c e s a l l f u n c t i 0002220 o n a l d e s c r i p t o r s 0002240 . T h e c h a r a c t e r 0002260 _ i n d i c a t e s t h a t 0002300 l i n k s f o l l o w e d 0002320 i n o b t a i n i n g t h i 0002340 s s t e p s h o u l d b e 0002360 f o l l o w e d b a c k w a 0002400 r d s . P a t h d e s c r i 0002420 p t o r s c a n b e c o m 0002440 b i n e d i n t o o t h e r 0002460 d e s c r i p t o r s b y 0002500 t h e u s e o f A N D , 0002520 O R , a n d N O T s u b j 0002540 e c t t o t h e r e s t r 0002560 i c t i o n t h a t a l l 0002600 d e s c r i p t o r s i n a 0002620 c o m b i n a t i o n m u s 0002640 t e i t h e r a p p l y t 0002660 o c a r d s o r l i n k s 0002700 . L a s t l y , r e p e t i 0002720 t i v e p a t h s t r u c t 0002740 u r e s m a y b e s p e c 0002760 i f i e d u s i n g a n u 0003000 m b e r o r K l e e n e s 0003020 t a r n o t a t i o n . S e 0003040 e t h e e x a m p l e s b 0003060 e l o w . \r E X A M P L E S \r F 0003100 O O i s a f u n c t i o n 0003120 n a m e , G O O D P i s 0003140 a f u n c t i o n n a m e , 0003160 a n d B A R i s a v a 0003200 r i a b l e w i t h v a l u 0003220 e @ # G O O D P . \r ( N C P a 0003240 t h P a r s e ( Q U O T E # 0003260 F O O ) ) \t ( N C P a t h P a r 0003300 s e ( Q U O T E @ # F O O ) 0003320 ) \r ( N C P a t h P a r s e ( 0003340 Q U O T E _ @ # F O O ) ) \t ( 0003360 N C P a t h P a r s e ( Q U O 0003400 T E B A R ) ) \r ( N C P a t h 0003420 P a r s e ( Q U O T E @ T e 0003440 x t ) ) \t ( N C P a t h P a r s 0003460 e ( Q U O T E S u b B o x ) 0003500 ) \r ( N C P a t h P a r s e ( 0003520 Q U O T E ( S u b B o x ) ) ) 0003540 \t ( N C P a t h P a r s e ( Q 0003560 U O T E ( @ # F O O ) ) ) \r ( 0003600 N C P a t h P a r s e ( Q U O 0003620 T E ( S u b B o x F i l e d 0003640 C a r d ) ) ) \r ( N C P a t h P 0003660 a r s e ( Q U O T E ( @ # F 0003700 O O @ # F O O ) ) ) \t ( N C P 0003720 a t h P a r s e ( Q U O T E 0003740 ( A N D @ # F O O B A R ) ) 0003760 ) \t ( N C P a t h P a r s e ( 0004000 Q U O T E ( O R @ # F O O 0004020 ( A N D @ T e x t B A R ) ) 0004040 ) ) \r ( N C P a t h P a r s e 0004060 ( Q U O T E ( # F O O * 3 ) 0004100 ) ) \t ( N C P a t h P a r s e 0004120 ( Q U O T E ( ( # F O O # F 0004140 O O ) * 3 ) ) ) \r F U N C T I 0004160 O N S \r N C P a t h P a r s e 0004200 E x p r e s s i o n ) \t [ F u n 0004220 c t i o n ] \r T h i s f u n c 0004240 t i o n i s i n t e n d e d 0004260 t o b e t h e t o p - l 0004300 e v e l f u n c t i o n t h 0004320 a t p a r s e s a n e x p 0004340 r e s s i o n i n t o a n 0004360 F S M t h a t N C P a t h . 0004400 F S M . P a t h C o l l e c t 0004420 c a n d e a l w i t h . \r ( 0004440 N C P a t h P a r s e . F S M F 0004460 r o m P a t h S p e c E x p r 0004500 e s s i o n ) \t [ F u n c t i o 0004520 n ] \r T h i s f u n c t i o n 0004540 i s i n t e n d e d t o 0004560 b e t h e t o p - l e v e l 0004600 f u n c t i o n t h a t p 0004620 a r s e s a n e x p r e s s 0004640 i o n i n t o a n F S M 0004660 t h a t N C P a t h . F S M . 0004700 P a t h C o l l e c t c a n 0004720 d e a l w i t h . \r ( N C P a 0004740 t h P a r s e . P a t h E x p 0004760 r e s s i o n ) \t [ F u n c t i 0005000 o n ] \r T h i s f u n c t i o 0005020 n p a r s e s a n i n d i 0005040 v i d u a l p a t h a s a 0005060 l i s t o f s t e p s o 0005100 r r e p e a t e r e x p r e 0005120 s s i o n s . \r ( N C P a t h P 0005140 a r s e . P a t h S t e p E x 0005160 p r e s s i o n ) \t [ F u n c t 0005200 i o n ] \r T h i s f u n c t i 0005220 o n p a r s e s a n i n d 0005240 i v i d u a l s t e p o f 0005260 a p a t h . A s t e p i 0005300 s e i t h e r a p a t h 0005320 s t e p d e s c r i p t o r 0005340 o r s o m e c o m b i n a t 0005360 i o n o f d e s c r i p t o 0005400 r s . \r ( N C P a t h P a r s e 0005420 . P a t h S t e p D e s c r i p 0005440 t o r E x p r e s s i o n ) \t 0005460 [ F u n c t i o n ] \r P a r s e 0005500 s a p a t h s t e p d e 0005520 s c r i p t o r . A d e s c 0005540 r i p t o r i s a l i t e 0005560 r a l d e s c r i p t o r , 0005600 a f u n c t i o n a l d e s 0005620 c r i p t o r , a " d o n 0005640 ' t c a r e " e x p r e s s 0005660 i o n , o r a v a r i a b 0005700 l e p o i n t i n g t o a 0005720 d e s c r i p t o r o f o 0005740 n e o f t h e o t h e r 0005760 t y p e s . T h e v a r i a 0006000 b l e i s c h e c k e d 0006020 f o r i m m e d i a t e c i 0006040 r c u l a r i t y , b u t n 0006060 o t f o r i n d i r e c t 0006100 c i r c u l a r i t y ; e i t 0006120 h e r o f t h e s e c o 0006140 n d i t i o n s c o u l d c 0006160 a u s e a n i n f i n i t e 0006200 l o o p . \r ( N C P a t h P 0006220 a r s e . L i t e r a l P a t h 0006240 D e s c r i p t i o n E x p r 0006260 e s s i o n ) \t [ F u n c t i o 0006300 n ] \r T h i s f u n c t i o n 0006320 p a r s e s p a t h d e s 0006340 c r i p t o r s t h a t l i 0006360 t e r a l l y d e s c r i b e 0006400 w h a t k i n d o f o b 0006420 j e c t q u a l i f i e s a 0006440 s a s t e p i n t h e 0006460 p a t h s o u g h t t h r o 0006500 u g h t h e n o t e c a r d 0006520 s n e t w o r k . \r ( N C P a 0006540 t h P a r s e . F u n c t i o n 0006560 a l P a t h D e s c r i p t i o 0006600 n E x p r e s s i o n ) \t [ F 0006620 u n c t i o n ] \r T h i s f u 0006640 n c t i o n p a r s e s p a 0006660 t h d e s c r i p t o r s t 0006700 h a t g i v e f u n c t i o 0006720 n n a m e s w h i c h a c 0006740 t a s p r e d i c a t e s 0006760 t o d e t e r m i n e w h e 0007000 t h e r a l i n k o r c 0007020 a r d m a t c h e s t h i s 0007040 s t e p i n t h e p a t 0007060 h d e s c r i p t o r . \r ( N 0007100 C P a t h P a r s e . C r e a t 0007120 e F S M N o d e I t e m L i 0007140 n k / C a r d F l a g D i r e 0007160 c t i o n F l a g F u n c t i 0007200 o n F l a g ) \t [ F u n c t i o 0007220 n ] \r T h i s f u n c t i o n 0007240 c r e a t e s t h e N C P 0007260 a t h F S M N o d e s t h a t 0007300 w i l l b e c o m e p a r 0007320 t o f t h e N C P a t h F 0007340 S M b e i n g c r e a t e d 0007360 b y N C P a t h P a r s e . 0007400 I t c o n t a i n s a c 0007420 a l l t o t h e c o d e 0007440 w h i c h c r e a t e s t h 0007460 e L A M B D A e x p r e s s 0007500 i o n s t o b e u s e d 0007520 a s p r e d i c a t e s i f 0007540 n e c e s s a r y . \r ( N C P 0007560 a t h P a r s e . C r e a t e P 0007600 r e d i c a t e F o r m T y p 0007620 e L i n k / C a r d F L A G ) 0007640 \t [ F u n c t i o n ] \r T h i s 0007660 f u n c t i o n c r e a t e 0007700 s a L A M B D A e x p r e 0007720 s s i o n t h a t w i l l 0007740 s e r v e a s a p r e d i 0007760 c a t e . S e e N C P a t h 0010000 P a r s e . C o m b i n e P r e 0010020 d i c a t e s . \r ( N C P a t 0010040 h P a r s e . R e p e a t e r E 0010060 x p r e s s i o n R e p e a t 0010100 e r E x p r e s s i o n L o o 0010120 p S t e p s ) \t [ F u n c t i o 0010140 n ] \r T h i s f u n c t i o n 0010160 p a r s e s r e p e a t e r 0010200 e x p r e s s i o n s . \r ( 0010220 N C P a t h P a r s e . R e p e 0010240 a t e r T o k e n R e p e a t 0010260 e r E x p r e s s i o n L o o 0010300 p S t e p s ) \t [ F u n c t i o 0010320 n ] \r C r e a t e s a r e p 0010340 e a t e r l o o p w i t h 0010360 n o l i m i t , o r w i t 0010400 h i n f i n i t e l i m i t 0010420 \r ( N C P a t h P a r s e . L i 0010440 m i t e d R e p e a t e r T o k 0010460 e n R e p e a t e r E x p r e 0010500 s s i o n L o o p S t e p s ) 0010520 \t [ F u n c t i o n ] \r T h i s 0010540 f u n c t i o n p a r s e s 0010560 r e p e a t e r t o k e n s 0010600 t h a t h a v e a n i n 0010620 t e g r a l l i m i t . \r ( N 0010640 C P a t h P a r s e . L o o p D 0010660 e c i s i o n E x p r e s s i 0010700 o n L o o p S t e p s M i n 0010720 i m u m R e p e a t S y m b o 0010740 l ) \t [ F u n c t i o n ] \r T h 0010760 i s f u n c t i o n d e c i 0011000 d e s w h a t k i n d o f 0011020 l o o p i s t o b e c 0011040 r e a t e d ( r e q u i r i n 0011060 g o n e o r z e r o p a 0011100 s e s t h r o u g h t h e 0011120 l o o p ) a n d t h e n c 0011140 r e a t e s a d e s c r i p 0011160 t i o n o f t h a t l o o 0011200 p . \r ( N C P a t h P a r s e . 0011220 C r e a t e L o o p L o o p S 0011240 t e p s M i n T i m e s M a 0011260 x T i m e s ) \t [ F u n c t i o 0011300 n ] \r H e r e w e c r e a t 0011320 e a n e x p r e s s i o n 0011340 d e s c r i b i n g a l o o 0011360 p t h a t N C P a t h P a r 0011400 s e . C o a l e s c e S t a t e 0011420 s c a n t r a n s f o r m 0011440 i n t o a n a c t u a l l 0011460 o o p . \r ( N C P a t h P a r s 0011500 e . P a t h S t e p O p e r a t 0011520 i o n E x p r e s s i o n ) \t 0011540 [ F u n c t i o n ] \r H e r e 0011560 w e p a r s e c o m b i n a 0011600 t i o n s o f p a t h s t e 0011620 p s . C o m b i n a t i o n s 0011640 a r e c r e a t e d u s i 0011660 n g A N D , O R , a n d 0011700 N O T , t o c o m b i n e 0011720 o t h e r p a t h s t e p s . 0011740 \r ( N C P a t h P a r s e . F u 0011760 n c t i o n P F u n c t i o n 0012000 ) \t [ F u n c t i o n ] \r T h i 0012020 s f u n c t i o n r e t u r 0012040 n s T i f i t s a r g u 0012060 m e n t n a m e s a n a p 0012100 p r o p r i a t e f u n c t i 0012120 o n f o r u s e a s a 0012140 p r e d i c a t e i n a n 0012160 N C P a t h F S M N o d e . \r ( 0012200 N C P a t h P a r s e . C h e c 0012220 k A n d C o m p u t e F l a g 0012240 S t e p L i s t F l a g N a m 0012260 e ) \t [ F u n c t i o n ] \r T h 0012300 i s f u n c t i o n c o m p 0012320 u t e s t h e D i r e c t i 0012340 o n a n d C a r d / L i n k 0012360 f l a g s w h e n p a r s 0012400 i n g a c o m b i n a t i o 0012420 n F S M N o d e . I t a l 0012440 s o d e t e r m i n e s i f 0012460 t h e f l a g s i n v o l 0012500 v e d m a t c h , a n d n 0012520 o t i f i e s t h e u s e r 0012540 i f t h e y d o n o t . 0012560 I t r e t u r n s N I L 0012600 i f t h e f l a g s d o 0012620 n o t m a t c h . \r ( N C P a 0012640 t h P a r s e . C o m b i n e P 0012660 r e d i c a t e s S t e p L i 0012700 s t O p e r a t i o n ) \t [ F 0012720 u n c t i o n ] \r T h i s f u 0012740 n c t i o n b u i l d s t h 0012760 e L A M B D A e x p r e s s 0013000 i o n t h a t w i l l b e 0013020 t h e p r e d i c a t e i 0013040 n a c o m b i n a t i o n 0013060 F S M N o d e . \r ( N C P a t 0013100 h P a r s e . C o m b i n a t i 0013120 o n E x p r e s s i o n s S t 0013140 e p L i s t O p e r a t i o n 0013160 ) \t [ F u n c t i o n ] \r T h i 0013200 s f u n c t i o n c o m b i 0013220 n e s p a t h s t e p s p e 0013240 c i f i c a t i o n s u s i n 0013260 g A N D , O R , o r N O 0013300 T i n t o a s i n g l e 0013320 N C P a t h F S M N o d e . \r ( 0013340 N C P a t h P a r s e . C o a l 0013360 e s c e S t a t e s N o d e L 0013400 i s t ) \t [ F u n c t i o n ] \r 0013420 T h i s f u n c t i o n t a 0013440 k e s a l i s p - s t y l e 0013460 l i s t o f N C P a t h F 0013500 S M N o d e s a n d t u r n 0013520 s t h e m i n t o a l i 0013540 n k e d l i s t . T h e l 0013560 i n k e d l i s t w i l l 0013600 i n c l u d e c i r c u l a r 0013620 i t i e s w h e r e r e p e 0013640 a t e r e x p r e s s i o n s 0013660 e x i s t . \r ( N C P a t h P 0013700 a r s e . C o a l e s c e R e p 0013720 e a t e r S t a t e s L o o p 0013740 L i s t N e x t L i m i t ) 0013760 \t [ F u n c t i o n ] \r T h i s 0014000 f u n c t i o n c r e a t e 0014020 s t h e c i r c u l a r l 0014040 i n k e d l i s t s t r u c 0014060 t u r e t h a t r e p e a t 0014100 e r e x p r e s s i o n s n 0014120 e e d . \r ( L O G E Q U A L . 0014140 U ) \t [ F u n c t i o n ] \r T 0014160 h i s f u n c t i o n i s 0014200 a l o g i c a l o p e r a t 0014220 o r . I t d e t e r m i n e 0014240 s i f t h e a r b i t r a 0014260 r y n u m b e r o f a r g 0014300 u m e n t s a r e l o g i c 0014320 a l l y e q u a l o r n o 0014340 t . \r ( N A N D . A r g s 0014360 ) \t [ F u n c t i o n ] \r T h i 0014400 s f u n c t i o n i s a 0014420 l o g i c a l o p e r a t o r 0014440 s i m i l a r t o A N D 0014460 o r O R , e x c e p t t h 0014500 a t i t p e r f o r m s t 0014520 h e l o g i c a l o p e r a 0014540 t i o n o f ( N O T ( A N 0014560 D A r g s ) ) . \0 \0 \0 \0 \0 003 ( 0014600 L I S T ( ( P A G E N I L 0014620 ( F O L I O I N F O ( A R A B 0014640 I C ) S T A R T I N G P A G E 0014660 # 1 ) ( 0 0 6 1 2 7 9 0014700 2 ) ( ( F O L I O N I L ( 0014720 P A R A L O O K S ( Q U A D 0014740 C E N T E R E D ) C H A R L O 0014760 O K S ( S U P E R S C R I P T 0015000 0 S I Z E 1 0 F A M I L 0015020 Y M O D E R N O V E R L I N 0015040 E O F F S T R I K E O U T 0015060 O F F U N D E R L I N E O F 0015100 F S L O P E R E G U L A R 0015120 W E I G H T M E D I U M ) F 0015140 O R M A T I N F O ( A R A B I 0015160 C ) ) ( 1 7 4 3 6 2 8 8 0015200 3 6 ) N I L ) ( H E A D I N 0015220 G N I L ( H E A D I N G T Y 0015240 P E R U N N I N G H E A D ) 0015260 ( 8 4 7 4 4 4 4 4 3 6 ) 0015300 N I L ) ( T E X T N I L N 0015320 I L ( 8 4 9 6 4 5 6 6 0 0015340 0 ) N I L ) ) ) ( P A G E 0015360 N I L N I L ( 0 0 6 1 2 0015400 7 9 2 ) ( ( F O L I O N I 0015420 L ( P A R A L O O K S ( Q U 0015440 A D C E N T E R E D ) C H A 0015460 R L O O K S ( S U P E R S C R 0015500 I P T 0 S I Z E 1 0 F A 0015520 M I L Y M O D E R N O V E R 0015540 L I N E O F F S T R I K E O 0015560 U T O F F U N D E R L I N E 0015600 O F F S L O P E R E G U L 0015620 A R W E I G H T M E D I U M 0015640 ) ) ( 2 8 2 4 2 7 2 3 6 0015660 ) N I L ) ( H E A D I N G 0015700 N I L ( H E A D I N G T Y P E 0015720 R U N N I N G H E A D ) ( 8 0015740 4 7 4 4 4 4 4 3 6 ) N I 0015760 L ) ( T E X T N I L N I L 0016000 ( 8 4 9 6 4 5 6 6 0 0 ) 0016020 N I L ) ) ) ( P A G E N I 0016040 L N I L ( 0 0 6 1 2 7 0016060 9 2 ) ( ( F O L I O N I L 0016100 ( P A R A L O O K S ( Q U A D 0016120 C E N T E R E D ) C H A R L 0016140 O O K S ( S U P E R S C R I P 0016160 T 0 S I Z E 1 0 F A M I 0016200 L Y M O D E R N O V E R L I 0016220 N E O F F S T R I K E O U T 0016240 O F F U N D E R L I N E O 0016260 F F S L O P E R E G U L A R 0016300 W E I G H T M E D I U M ) ) 0016320 ( 2 8 2 4 2 7 2 3 6 ) 0016340 N I L ) ( H E A D I N G N I 0016360 L ( H E A D I N G T Y P E R 0016400 U N N I N G H E A D ) ( 8 4 0016420 7 4 4 4 4 4 3 6 ) N I L ) 0016440 ( T E X T N I L N I L ( 0016460 8 4 9 6 4 5 6 6 0 0 ) N 0016500 I L ) ) ) ) ) \0 \0 \0 \0 \0 005 \0 \a \0 0016520 . \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 003 001 \0 0016540 \0 001 \0 330 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 . \0 0016600 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 003 004 \0 \0 001 0016620 001 310 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 0016660 \0 001 310 \0 021 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 0016700 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016720 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 006 \0 \0 \0 0016740 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 0017000 \0 001 310 \0 \v \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 0017020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0017040 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 \0 \0 \0 \0 0017060 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0017100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 D \0 \0 \0 0017120 \0 001 310 \0 \0 \0 \0 \0 \0 003 004 \0 \0 001 001 310 0017140 001 \0 \0 \0 \0 \0 \0 \0 \v P A G E H E A 0017160 D I N G \0 \v R U N N I N G H E A 0017200 D \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0017220 \0 \0 \0 \0 004 \0 \t \0 026 \0 \b T E R M I 0017240 N A L \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 0017260 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 001 0017300 \0 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0017320 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E R N \0 0017340 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D 0017360 E R N \0 \n \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 0017400 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 \0 0017420 \0 \0 024 \0 006 M O D E R N \0 \f \0 \0 \0 0017440 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R N \0 0017460 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 022 \0 004 L O G 0017500 O \0 030 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0017520 002 \0 \a \0 \0 \0 005 \0 \0 \0 \0 \t \0 \0 \0 001 0017540 \0 \0 \0 \0 \b \0 \0 \0 \v \0 \0 \0 \0 \a \0 \0 0017560 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 \a \0 0017600 \0 \0 002 \0 001 \0 \v H R U L E . G E T 0017620 F N 001 \0 024 \0 006 M O D E R N \0 \f \0 0017640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 006 0017660 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 002 \0 001 \0 \v 0017700 H R U L E . G E T F N 001 \0 024 \0 006 0017720 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 \0 \0 0017740 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 0017760 006 \0 \0 \0 002 \0 001 \0 \v H R U L E . G 0020000 E T F N 001 \0 024 \0 006 M O D E R N \0 0020020 \f \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 0020040 \0 006 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 \f \0 \0 0020060 \0 \0 \a \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 0020100 001 \0 \v H R U L E . G E T F N 001 \0 0020120 024 \0 006 M O D E R N \0 \f \0 \0 \0 \0 \0 0020140 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 \a \0 \0 \0 \0 0020160 \0 002 \0 006 \0 \0 \0 002 \0 001 \0 \v H R U L 0020200 E . G E T F N 001 \0 024 \0 006 M O D E 0020220 R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 0020240 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 0020260 * \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 003 \0 \0 0020300 \0 022 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 005 \0 0020320 \0 \0 \f \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0 \0 0020340 006 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 p \0 \0 \0 0020360 \0 006 \0 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 177 \0 0020400 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 032 0020420 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 005 \0 \0 003 0020440 033 \0 \0 \0 \0 006 \0 \0 \0 001 \0 \0 \0 \0 003 \0 0020460 \0 001 205 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 005 0020500 \0 \0 \0 \b \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0 0020520 \0 006 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 \ \0 \0 0020540 \0 \0 001 \0 \0 \0 \0 \0 002 \0 001 \0 \0 001 317 \0 0020560 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 \n 0020600 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 0020620 \f \0 \0 \0 \0 004 \0 \0 \0 \n \0 \0 \0 \0 002 \0 0020640 \0 \0 225 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 0020660 \0 \0 \0 035 \0 \0 \0 \0 004 \0 \0 \0 \n \0 \0 \0 0020700 \0 002 \0 \0 \0 225 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0020720 002 \0 002 \0 \0 \0 022 \0 \0 \0 \0 004 \0 \0 \0 \n 0020740 \0 \0 \0 \0 002 \0 \0 \0 a \0 \0 \0 \0 004 \0 \0 0020760 \0 \0 \0 002 \0 002 \0 \0 \0 026 \0 \0 \0 \0 004 \0 0021000 \0 \0 \n \0 \0 \0 \0 002 \0 \0 \0 214 \0 \0 \0 \0 0021020 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 \0 \0 \0 0021040 \0 004 \0 \0 \0 \n \0 \0 \0 \0 002 \0 \0 001 Z \0 0021060 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 $ 0021100 \0 \0 \0 \0 004 \0 \0 \0 \n \0 \0 \0 \0 002 \0 \0 0021120 \0 245 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 0021140 \0 \0 ' \0 \0 \0 \0 004 \0 \0 \0 \n \0 \0 \0 \0 0021160 002 \0 \0 \0 262 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0021200 \0 002 \0 \0 \0 033 \0 \0 \0 \0 004 \0 \0 \0 - \0 0021220 \0 \0 \0 002 \0 \0 \0 346 \0 \0 \0 \0 004 \0 \0 \0 0021240 \0 \0 002 \0 002 \0 \0 \0 ! \0 \0 \0 \0 004 \0 \0 0021260 \0 022 \0 \0 \0 \0 002 \0 \0 \0 { \0 \0 \0 \0 004 0021300 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 \0 \0 \0 \0 0021320 004 \0 \0 \0 034 \0 \0 \0 \0 002 \0 \0 \0 9 \0 \0 0021340 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 033 \0 0021360 \0 \0 \0 004 \0 \0 \0 034 \0 \0 \0 \0 002 \0 \0 \0 0021400 K \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0021420 \0 " \0 \0 \0 \0 004 \0 \0 \0 034 \0 \0 \0 \0 002 0021440 \0 \0 \0 O \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 0021460 002 \0 \0 \0 032 \0 \0 \0 \0 004 \0 \0 \0 ) \0 \0 0021500 \0 \0 002 \0 \0 \0 242 \0 \0 \0 \0 004 \0 \0 \0 \0 0021520 \0 002 \0 002 \0 \0 \0 030 \0 \0 \0 \0 004 \0 \0 \0 0021540 033 \0 \0 \0 \0 002 \0 \0 \0 177 \0 \0 \0 \0 004 \0 0021560 \0 \0 \0 \0 002 \0 002 \0 \0 \0 037 \0 \0 \0 \0 004 0021600 \0 \0 \0 \n \0 \0 \0 \0 002 \0 \0 \0 203 \0 \0 \0 0021620 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 027 \0 \0 0021640 \0 \0 004 \0 \0 \0 \b \0 \0 \0 \0 002 \0 \0 \0 177 0021660 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 0021700 ! \0 \0 \0 \0 004 \0 \0 \0 021 \0 \0 \0 \0 002 \0 0021720 \0 \0 352 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 0021740 \0 \0 \0 037 \0 \0 \0 \0 004 \0 \0 \0 022 \0 \0 \0 0021760 \0 002 \0 \0 \0 n \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0022000 002 \0 002 \0 \0 \0 $ \0 \0 \0 \0 004 \0 \0 \0 \b 0022020 \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 0022040 \0 \t \0 \0 \0 \0 002 \0 \0 \0 o \0 \0 \0 \0 004 0022060 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 034 \0 \0 \0 \0 0022100 004 \0 \0 \0 \b \0 \0 \0 \0 002 \0 \0 \0 265 \0 \0 0022120 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 $ \0 0022140 \0 \0 \0 004 \0 \0 \0 \b \0 \0 \0 \0 002 \0 \0 \0 0022160 001 \0 \0 \0 \0 004 \0 \0 \0 004 \0 \0 \0 \0 002 \0 0022200 \0 \0 l \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 0022220 \0 \0 \0 \f \0 \0 \0 \0 004 \0 \0 \0 001 \0 \0 \0 0022240 \0 002 \0 \0 \0 202 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0022260 002 \0 002 \0 \0 \0 \b \0 \0 \0 \0 004 \0 \0 \0 004 0022300 \0 \0 \0 \0 002 \0 \0 \0 x \0 \0 \0 \0 004 \0 \0 0022320 \0 020 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 004 0022340 \0 \0 031 y \0 223 z 272 0022350