$ od -c -N 50000 [qv]<notecards>1.3K>LIBRARY>ncpath>NCPATH.TEDIT!1 0000000 X E R O X \t N C P a t h \r 2 \r \r 0000020 4 \r \r 1 \r \r N C P a t h \r 1 \r \r 0000040 4 \r \r B y : D a v i d N e 0000060 w m a n ( N e w m a n . p a s 0000100 a @ X e r o x . C O M ) \r N C P 0000120 a t h P a r s e , N C P a t h 0000140 U s e \r I N T R O D U C T I O N 0000160 \r T h i s f i l e i s a 0000200 m o d u l e d e s i g n e d 0000220 t o a l l o w a p r o g r 0000240 a m m e r t o s p e c i f y 0000260 a p a t h t h r o u g h 0000300 a n o t e c a r d s n e t w 0000320 o r k a n d a r o o t c 0000340 a r d , a n d o b t a i n 0000360 f r o m t h e s e a d a t 0000400 a s t r u c t u r e d e s c 0000420 r i b i n g a l l t h e p 0000440 a t h s t h r o u g h t h e 0000460 n e t w o r k f r o m t h 0000500 e r o o t c a r d t h a t 0000520 m a t c h t h e p a t h 0000540 s p e c i f i c a t i o n . T 0000560 h e f u n c t i o n N C P a 0000600 t h . F S M . P a t h C o l l e 0000620 c t i s t h e t o p l e 0000640 v e l f u n c t i o n . I n 0000660 c o n j u n c t i o n w i t 0000700 h N C P a t h P a r s e ( w 0000720 h i c h t r a n s l a t e s 0000740 a s i m p l e p a t h l a 0000760 n g u a g e i n t o t h e 0001000 p a t h d e s c r i p t o r 0001020 t h a t N C P a t h . F S M . 0001040 P a t h C o l l e c t r e q u 0001060 i r e s ) , i t r e t u r n 0001100 s a c o l l e c t i o n o 0001120 f p a t h s f o r t h e 0001140 p r o g r a m m e r t o m a 0001160 n i p u l a t e . A t y p i 0001200 c a l c a l l t o t h e 0001220 N C P a t h f u n c t i o n s 0001240 s h o u l d l o o k l i k 0001260 e t h e f o l l o w i n g . 0001300 \r ( N C P a t h . F S M . P a t 0001320 h C o l l e c t ( N C P a t h 0001340 P a r s e < P a t h - d e s c 0001360 r i p t i o n > ) < R o o t 0001400 C a r d > ) \r T h i s p a c k 0001420 a g e a n d i t s f u n c 0001440 t i o n s a r e i m p l e m 0001460 e n t e d o n a b a s t a 0001500 r d i z e d f i n i t e s t 0001520 a t e m a c h i n e m o d e 0001540 l . T h e k e y d i f f e 0001560 r e n c e i s t h a t i n 0001600 o r d e r t o a l l o w 0001620 t h e i m p o s i t i o n o 0001640 f l i m i t s o n l o o p 0001660 s i n t h e f i n i t e 0001700 s t a t e n e t w o r k ( l 0001720 i m i t s o n t h e n u m 0001740 b e r o f t i m e s a l 0001760 o o p c a n b e t r a v e 0002000 r s e d ) , t h e n u m b e 0002020 r o f t i m e s e a c h 0002040 l o o p i s t r a v e r s e 0002060 d m u s t b e r e c o r d 0002100 e d i n t h e f i n i t e 0002120 s t a t e m a c h i n e . 0002140 I n a d d i t i o n , t h i 0002160 s s y s t e m w i l l n o 0002200 t c o l l e c t a n y p a 0002220 t h s w h i c h a t t e m p 0002240 t t o t r a v e r s e t h 0002260 e s a m e l i n k o f a 0002300 n o t e f i l e i n t h e 0002320 s a m e d i r e c t i o n 0002340 a s e c o n d t i m e . \r T 0002360 h e d a t a s t r u c t u r 0002400 e s o f t h i s s y s t e 0002420 m i n c l u d e t h e I n 0002440 t e r L i s p d a t a t y p e 0002460 s N C P a t h F S M , N C P 0002500 a t h F S M N o d e , a n d 0002520 N C P a t h P a t h S t e p , 0002540 a n d t w o l i s t s t r 0002560 u c t u r e s . A c o l l e 0002600 c t i o n i s a l i s t 0002620 o f p a t h s . A p a t h 0002640 i s a l i s t o f p a 0002660 t h s t e p s w i t h t h e 0002700 r o o t c a r d a t t h 0002720 e e n d . P a t h s c o n 0002740 t a i n t h e s t e p s t 0002760 a k e n i n r e v e r s e 0003000 o r d e r , a n d t h e v 0003020 a r i o u s p a t h s i n 0003040 a c o l l e c t i o n s h a 0003060 r e c o n s c e l l s i n 0003100 o r d e r t o c o n s e r 0003120 v e m e m o r y . P l e a s 0003140 e n o t e a l s o t h e 0003160 d e s c r i p t i o n s o f 0003200 t h e t h r e e r e c o r d 0003220 s l i s t e d b e l o w . \r 0003240 R E C O R D S \r N C P a t h F S 0003260 M \t [ D a t a t y p e ] \r T h 0003300 e f i e l d s o f a n N 0003320 C P a t h F S M a r e I n i 0003340 t i a l S t a t e , C u r r e 0003360 n t S t a t e , P a t h , a 0003400 n d L o o p L i m i t A L i s 0003420 t . E a c h i s a L i s 0003440 p P O I N T E R . I n i t i 0003460 a l S t a t e a n d C u r r 0003500 e n t S t a t e c o n t a i n 0003520 o b j e c t s o f t y p e 0003540 N C P a t h F S M N o d e , 0003560 a n d a r e t h e c u r r 0003600 e n t a n d i n i t i a l 0003620 s t a t e s o f t h e f i 0003640 n i t e s t a t e m a c h i 0003660 n e r e s p e c t i v e l y . 0003700 T h e P a t h f i e l d 0003720 c o n t a i n s t h e i n t 0003740 e r m e d i a t e r e s u l t 0003760 s o f a t r a v e r s a l 0004000 t h r o u g h t h e N o t 0004020 e C a r d s n e t w o r k . 0004040 F i n a l l y , L o o p L i m 0004060 i t A L i s t i s a n a - 0004100 l i s t t h a t k e e p s 0004120 t r a c k o f t h e n u m 0004140 b e r o f t i m e s a n y 0004160 l o o p i n t h e f i n 0004200 i t e s t a t e t r a n s i 0004220 t i o n n e t w o r k h a s 0004240 b e e n t r a v e r s e d . 0004260 \r N C P a t h F S M N o d e \t 0004300 [ D a t a t y p e ] \r T h e f 0004320 i e l d s o f a n N C P a 0004340 t h F S M N o d e a r e P r 0004360 e d i c a t e , C a r d / L i 0004400 n k , D i r e c t i o n , N 0004420 e x t N o d e s , a n d L o 0004440 o p L i m i t . T h e f i r 0004460 s t a n d f o u r t h a r 0004500 e P O I N T E R s , t h e 0004520 s e c o n d a n d t h i r d 0004540 a r e F L A G s , a n d 0004560 t h e l a s t i s a n I 0004600 N T E G E R . T h e P r e d 0004620 i c a t e f i e l d p o i n 0004640 t s t o a f u n c t i o n 0004660 o r L A M B D A e x p r e 0004700 s s i o n , w h i c h w h e 0004720 n a p p l i e d t o a n 0004740 o t e c a r d o r l i n k 0004760 r e t u r n s T o r N I L 0005000 ; t h i s i n d i c a t e s 0005020 w h e t h e r t h e i t e 0005040 m i n q u e s t i o n w i 0005060 l l s a t i s f y t h e n 0005100 e x t s t e p i n t h e 0005120 p a t h d e s c r i p t i o n 0005140 . T h e C a r d / L i n k 0005160 f l a g i n d i c a t e s w 0005200 h e t h e r t h e P r e d i 0005220 c a t e i s t o b e a p 0005240 p l i e d t o l i n k s o 0005260 r c a r d s , ( T i n d i 0005300 c a t e s l i n k s a n d 0005320 i s t h e d e f a u l t , 0005340 w h i l e N I L i n d i c a 0005360 t e s c a r d s ) , a n d 0005400 t h e D i r e c t i o n f l 0005420 a g i n d i c a t e s w h e 0005440 t h e r a l i n k i s t 0005460 o b e f o l l o w e d i n 0005500 a f o r w a r d d i r e c 0005520 t i o n o r a b a c k w a 0005540 r d d i r e c t i o n ( T 0005560 i n d i c a t e s f o r w a r 0005600 d , a n d i s t h e d e 0005620 f a u l t s e t t i n g ) . 0005640 N e x t N o d e s i s a l 0005660 i s t o f t h e n e x t 0005700 n o d e s i n t h e f i n 0005720 i t e s t a t e t r a n s i 0005740 t i o n n e t w o r k , a n 0005760 d h e n c e i s e s s e n 0006000 t i a l l y a l i s t o f 0006020 a r c s a w a y f r o m 0006040 t h e c u r r e n t n o d e 0006060 . L a s t l y , L o o p L i 0006100 m i t i n d i c a t e s t h 0006120 e n u m b e r o f t i m e 0006140 s t h a t a l o o p b e 0006160 g i n n i n g w i t h t h e 0006200 c u r r e n t n o d e m a 0006220 y b e t r a v e r s e d ; 0006240 i t s d e f a u l t v a l u 0006260 e i s o n e . \r N C P a t h 0006300 P a t h S t e p \t [ D a t a t 0006320 y p e ] \r A n N C P a t h P a 0006340 t h S t e p h a s o n l y 0006360 t w o f i e l d s , b o t h 0006400 o f w h i c h a r e P O 0006420 I N T E R S . t h e L i n k 0006440 f i e l d c o n t a i n s 0006460 a l i n k i n t h e n o 0006500 t e c a r d s n e t w o r k , 0006520 a n d t h e D i r e c t i 0006540 o n f i e l d i n d i c a t 0006560 e s t h e d i r e c t i o n 0006600 t h a t t h i s l i n k 0006620 w a s f o l l o w e d . \r F U 0006640 N C T I O N S \r N C P a t h . F 0006660 S M . P a t h C o l l e c t P 0006700 a t h S p e c R o o t C a r d 0006720 ) \t [ F u n c t i o n ] \r T h i 0006740 s f u n c t i o n c o l l e 0006760 c t s a l i s t o f c o 0007000 m p l e t e p a t h s s t a 0007020 r t i n g a t R o o t C a r 0007040 d a s s p e c i f i e d b 0007060 y P a t h S p e c T h e p 0007100 a t h s a r e r e a l l y 0007120 a n e t w o r k a s t h e 0007140 y s h a r e C O N S c e l 0007160 l s , a n d a r e a c t u 0007200 a l l y r e v e r s e d . T 0007220 h e e n d o f e a c h i 0007240 s a p o i n t e r t o t 0007260 h e I D f o r R o o t C a 0007300 r d T h e f i r s t i t e 0007320 m i n e a c h p a t h i 0007340 s a c t u a l l y t h e N 0007360 C P a t h F S M r e p r e s e 0007400 n t i n g t h e r e m a i n 0007420 i n g p a r t s o f t h e 0007440 p a t h t o b e c o l l 0007460 e c t e d . W h e n t h e 0007500 p a t h s a r e c o m p l e 0007520 t e , t h i s i s a N I 0007540 L . \r ( N C P a t h . F S M . R 0007560 e a l P a t h C o l l e c t F 0007600 S M I n s t a n c e R o o t C 0007620 a r d ) \t [ F u n c t i o n ] \r 0007640 T h i s f u n c t i o n d o 0007660 e s t h e r e a l w o r k 0007700 o f N C P a t h . F S M . P 0007720 a t h C o l l e c t a f t e r 0007740 t h a t f u n c t i o n h 0007760 a s d o n e t h e e r r o 0010000 r c h e c k i n g . ( F i n 0010020 i s h e d P a t h s h a s a 0010040 n e x t r a N I L a t t 0010060 h e f r o n t , s o t h e 0010100 C D R a t t h e e n d 0010120 r e m o v e s i t ) \r ( N C P 0010140 a t h . F S M . F i r s t S t e 0010160 p R o o t C a r d F S M I n 0010200 s t a n c e ) \t [ F u n c t i o 0010220 n ] \r T h i s f u n c t i o n 0010240 t a k e s c a r e o f t 0010260 h e c a s e w h e r e t h 0010300 e f i r s t N C P a t h F S 0010320 M N o d e h a s a l i s t 0010340 a s i t s N e x t S t a t 0010360 e . \r ( N C P a t h . F S M . R 0010400 e a l F i r s t S t e p R o o 0010420 t C a r d F S M I n s t a n c 0010440 e ) \t [ F u n c t i o n ] \r T h 0010460 i s f u n c t i o n i s s 0010500 p e c i a l l y i n t e n d e 0010520 d t o g e t t h e f i r 0010540 s t s e t o f l i n k s 0010560 f r o m a p a t h s p e c 0010600 i f i c a t i o n ( t h e N 0010620 C P a t h F S M ) a n d i t 0010640 s r o o t c a r d . I t 0010660 c o n s t r u c t s t h e f 0010700 i r s t l e v e l o r t w 0010720 o o f t h e t r e e o f 0010740 w o r k i n g p a t h s . 0010760 T h e f u n c t i o n h a n 0011000 d l e s t h e s p e c i a l 0011020 c a s e w h e r e t h e 0011040 f i r s t t w o F S M N o d 0011060 e s i n N C P a t h F S M 0011100 i n c l u d e c a r d p r e 0011120 d i c a t e s . \r ( N C P a t h 0011140 . F S M . L i s t F i r s t S t 0011160 e p s R o o t C a r d F S M 0011200 I n s t a n c e ) \t [ F u n c t 0011220 i o n ] \r T h i s f u n c t i 0011240 o n g e t s t h e f i r s 0011260 t s e t o f l i n k s f 0011300 r o m a p a t h s p e c i 0011320 f i c a t i o n a n d a r 0011340 o o t c a r d . E n d i s 0011360 b o u n d s p e c i a l l y 0011400 s o t h a t a l l t h e 0011420 p a t h s c r e a t e d w 0011440 i l l s h a r e t h e i r 0011460 l a s t c o n s c e l l s . 0011500 \r ( N C P a t h . F S M . A d d 0011520 P o t e n t i a l S t e p s F 0011540 S M I n s t a n c e ) \t [ F u n 0011560 c t i o n ] \r A d d a l l p 0011600 o t e n t i a l s t e p s t 0011620 o t h e P a t h i n F S 0011640 M I n s t a n c e w i t h o u 0011660 t c h e c k i n g t h e m 0011700 a g a i n s t a n y s p e c 0011720 i f i c a t i o n . R e t u r 0011740 n s a l i s t o f N C P 0011760 a t h F S M s \r ( N C P a t h 0012000 . F S M . L i s t M u l t i p l 0012020 e P a t h s F S M I n s t a n 0012040 c e ) \t [ F u n c t i o n ] \r T 0012060 h i s f u n c t i o n i s 0012100 i n t e n d e d t o h e l p 0012120 o u t w i t h t h e p r 0012140 o b l e m o f t r u e F S 0012160 M s . I t t a k e s a N 0012200 C P a t h F S M t h a t h a 0012220 s a l i s t o f F S M N 0012240 o d e s a s i t s C u r r 0012260 e n t S t a t e , a n d r e 0012300 t u r n s a l i s t o f 0012320 N C P a t h F S M s e a c h 0012340 o f w h i c h h a s o n e 0012360 o f t h e F S M N o d e s 0012400 a s i t s C u r r e n t S 0012420 t a t e . \r ( N C P a t h . F 0012440 S M . C o m p u t e M u l t i l 0012460 p e C o l l e c t i o n s F S 0012500 M I n s t a n c e ) \t [ F u n c 0012520 t i o n ] \r T h i s f u n c t 0012540 i o n h a n d l e s t h e 0012560 c a s e w h e r e t h e N 0012600 e x t N o d e s f i e l d o 0012620 f t h e N C P a t h F S M N 0012640 o d e i n t h e C u r r e 0012660 n t S t a t e f i e l d o f 0012700 F S M I n s t a n c e i s 0012720 a l i s t r a t h e r t h 0012740 a n a n i n d i v i d u a l 0012760 F S M N o d e . \r ( N C P a t 0013000 h . F S M . A d d N e x t S t e 0013020 p s F S M I n s t a n c e ) \t 0013040 [ F u n c t i o n ] \r T h i s 0013060 f u n c t i o n a d d s t h 0013100 e n e x t s e t o f s t 0013120 e p s t o a p a r t i c u 0013140 l a r p a t h . T h a t i 0013160 s , i t t a k e s a p a 0013200 t h , g e t s t h e N C P 0013220 a t h F S M r e p r e s e n t 0013240 i n g t h e P a t h S p e c 0013260 a n d t h e l a s t l i 0013300 n k o f t h e p a t h , 0013320 a n d a d d s e a c h o f 0013340 t h e a p p r o p r i a t e 0013360 n e x t s t e p s t o t 0013400 h a t p a t h - r e t u r 0013420 n i n g a l i s t o f s 0013440 e v e r a l p a t h s w i t 0013460 h c o m m o n C O N S c e 0013500 l l s . I t a l s o p u t 0013520 s t h e n e x t s t a t e 0013540 o f t h e N C P a t h F S 0013560 M o n t h e f r o n t o 0013600 f t h e P a t h f o r t 0013620 h e n e x t t i m e a r o 0013640 u n d . \r ( N C P a t h . F S M 0013660 . I n c r e m e n t U s e C o u 0013700 n t F S M I n s t a n c e ) \t 0013720 [ F u n c t i o n ] \r I n c r e 0013740 m e n t t h e c o u n t k 0013760 e p t i n t h e A L i s t 0014000 o n t h e F S M i n d i 0014020 c a t i n g h o w m a n y 0014040 t i m e s t h e C u r r e n 0014060 t S t a t e h a s b e e n 0014100 u s e d i n t h i s p a t 0014120 h . \r ( N C P a t h . F S M . A 0014140 d d S t e p S t e p F S M I 0014160 n s t a n c e ) \t [ F u n c t i 0014200 o n ] \r G i v e n a n o l d 0014220 F S M I n s t a n c e a n d 0014240 a n e w s t e p , t h i 0014260 s f u n c t i o n a d d s 0014300 t h e s t e p t o t h e 0014320 p a t h i n t h e F S M I 0014340 n s t a n c e . T h i s f u 0014360 n c t i o n a l s o i n c r 0014400 e m e n t s t h e C u r r e 0014420 n t S t a t e t o t h e N 0014440 e x t S t a t e \r ( N C P a t h 0014460 . F S M . N e x t S t a t e F 0014500 S M I n s t a n c e ) \t [ F u n 0014520 c t i o n ] \r T h i s f u n c 0014540 t i o n i s r e t u r n s 0014560 t h e n e x t s t a t e i 0014600 n F S M I n s t a n c e w h 0014620 i c h d e f i n e s a p a 0014640 t h s p e c i f i c a t i o n 0014660 . I f t h e C u r r e n t 0014700 S t a t e o f F S M I n s t 0014720 a n c e i s N I L , w e 0014740 r e p o r t t h e e r r o r 0014760 a n d r e t u r n N I L . 0015000 \r ( N C P a t h . F S M . L o o 0015020 p L i m i t E x c e e d e d P 0015040 F S M I n s t a n c e ) \t [ F u 0015060 n c t i o n ] \r T h i s p r e 0015100 d i c a t e d e t e r m i n e 0015120 s w h e t h e r o r n o t 0015140 t h e F S M N o d e I n s t 0015160 a n c e s t o r e d i n t 0015200 h e C u r r e n t S t a t e 0015220 o f F S M I n s t a n c e h 0015240 a s b e e n u s e d t o o 0015260 m a n y t i m e t o g e 0015300 t t o t h e c u r r e n t 0015320 p l a c e i n t h e p a 0015340 t h . T h i s f u n c t i o 0015360 n d e t e r m i n e s i f 0015400 a l i m i t e d l o o p h 0015420 a s b e e n f o l l o w e d 0015440 t o o m a n y t i m e s . 0015460 \r ( N C P a t h . F S M S t a t 0015500 e . C o m p u t e C o l l e c t 0015520 i o n F S M I n s t a n c e ) 0015540 \t [ F u n c t i o n ] \r T h i s 0015560 f u n c t i o n t a k e s 0015600 a n N C P a t h F S M a s 0015620 i t s s i n g l e a r g u m 0015640 e n t . T h e C u r r e n t 0015660 S t a t e o f t h e N C P 0015700 a t h F S M s p e c i f i e s 0015720 a c a r d r a t h e r t 0015740 h a n a l i n k . I f t 0015760 h e l a s t s t e p o f 0016000 t h e p a t h m e e t s s 0016020 p e c i f i c a t i o n , a n 0016040 d t h e n e x t n o d e 0016060 i n t h e N C P a t h F S M 0016100 s p e c i f i e s a l i n 0016120 k , t h e p a t h i s r 0016140 e t u r n e d , I f t h e 0016160 l a s t s t e p o f t h e 0016200 p a t h m e e t s t h e 0016220 s p e c i f i c a t i o n , a 0016240 n d t h e n e x t n o d e 0016260 i n t h e N C P a t h F S 0016300 M s p e c i f i e s a c a 0016320 r d , t h e i n t e r v e n 0016340 i n g l i n k s a r e a d 0016360 d e d , a n d t h e l i s 0016400 t o f n e w p a t h s i 0016420 s r e t u r n e d . \r ( N C 0016440 P a t h . F S M S t a t e . L i 0016460 s t N e x t S t e p s P a t h 0016500 S t e p O R C a r d F S M N o 0016520 d e I n s t a n c e ) \t [ F u n 0016540 c t i o n ] \r T h i s f u n c 0016560 t i o n f i n d s t h e n 0016600 e x t s t e p s t h a t c 0016620 a n b e t a k e n f r o m 0016640 a p a r t i c u l a r p o 0016660 i n t i n a p a t h . I 0016700 t a c c e p t s e i t h e r 0016720 a c a r d o r a l i n 0016740 k a s t h e i n d i c a t 0016760 o r o f t h e c u r r e n 0017000 t p a t h p o s i t i o n 0017020 a n d i t r e t u r n s a 0017040 l i s t o f l i n k s . \r 0017060 ( N C P a t h . F S M S t a t e 0017100 . S p e c i f i e s C a r d P 0017120 F S M S t a t e ) \t [ F u n c t 0017140 i o n ] \r T h i s f u n c t i 0017160 o n r e t u r n s T i f f 0017200 t h e F S M - S t a t e i 0017220 s n o t N I L a n d i t 0017240 ' s C A R D / L I N K f l a 0017260 g i n d i c a t e s t h a t 0017300 t h e \t \t \t \t \t \t \t p r e 0017320 d i c a t e i s t o b e 0017340 a p p l i e d t o a C A R 0017360 D . \r ( N C P a t h . F S M S t 0017400 a t e . S p e c i f i e s L i n 0017420 k P F S M N o d e I n s t a n 0017440 c e ) \t [ F u n c t i o n ] \r T 0017460 h i s f u n c t i o n r e t 0017500 u r n s T i f f t h e F 0017520 S M - S t a t e i s n o t 0017540 N I L a n d t h e L I N K 0017560 / C A R D f l a g i n d i c 0017600 a t e s t h a t t h e p r 0017620 e d i c a t e i s t o b e 0017640 a p p l i e d t o a L I 0017660 N K . \r ( N C P a t h . F S M S 0017700 t a t e . T e r m i n a l P F 0017720 S M N o d e ) \t [ F u n c t i o 0017740 n ] \r T h i s f u n c t i o n 0017760 d e t e r m i n e s w h e t 0020000 h e r o r n o t a N C P 0020020 a t h F S M n o d e i s a 0020040 t e r m i n a l n o d e . 0020060 T h a t i s , w h e t h e r 0020100 o r n o t t h e r e i s 0020120 a t r a n s i t i o n t o 0020140 a n o t h e r n o d e f r 0020160 o m t h i s o n e . \r ( N C 0020200 P a t h . C o l l e c t i o n . 0020220 C o m p u t e N e x t C o l l e 0020240 c t i o n P a t h C o l l e c 0020260 t i o n ) \t [ F u n c t i o n ] 0020300 \r T h i s f u n c t i o n c 0020320 o m p u t e s a n e w l i 0020340 s t o f F S M s f r o m 0020360 a n o l d o n e . T h e 0020400 n e w F S M s a r e c r e 0020420 a t e d b y t a k i n g a 0020440 n o l d F S M a n d a d 0020460 d i n g o n e s t e p t o 0020500 i t s p a t h . T h i s 0020520 f u n c t i o n a l s o d i 0020540 s t i n g u i s h e s t h e 0020560 c a s e w h e r e t h e n 0020600 e x t s t e p i s s p e c 0020620 i f i e d a s a c a r d 0020640 p r e d i c a t e r a t h e r 0020660 t h a n a l i n k p r e 0020700 d i c a t e . \r ( N C P a t h 0020720 . C o l l e c t i o n . C o l l 0020740 e c t M u l t i p l e P a t h s 0020760 C o l l e c t i o n ) \t [ F u 0021000 n c t i o n ] \r T h i s f u n 0021020 c t i o n t a k e s a c o 0021040 l l e c t i o n o f N C P a 0021060 t h F S M s a n d e x p a n 0021100 d s t h o s e t h a t h a 0021120 v e m u l t i p l e F S M N 0021140 o d e s a s t h e i r C u 0021160 r r e n t S t a t e i n t o 0021200 a l i s t o f N C P a t h 0021220 F S M s e a c h h a v i n g 0021240 o n e F S M N o d e a s 0021260 i t s c u r r e n t s t a t 0021300 e . \r ( N C P a t h . C o l l e 0021320 c t i o n . L i s t R e m o v a 0021340 b l e P a t h s C o l l e c t 0021360 i o n ) \t [ F u n c t i o n ] \r 0021400 L i s t t h o s e p a t h s 0021420 o f C o l l e c t i o n w 0021440 h i c h a r e c o m p l e t 0021460 e , o r l o o p y , o r 0021500 w h i c h h a v e t r a v 0021520 e r s e d t h e s a m e l 0021540 o o p o f t h e F S M t 0021560 o o m a n y t i m e s . \r ( 0021600 N C P a t h . C o l l e c t i o 0021620 n . L i s t F i n i s h e d P a 0021640 t h s C o l l e c t i o n ) \t 0021660 [ F u n c t i o n ] \r L i s t 0021700 t h o s e p a t h s i n C 0021720 o l l e c t i o n t h a t a 0021740 r e c o m p l e t e a s s 0021760 p e c i f i e d . T h e s e 0022000 a r e t h e p a t h s t h 0022020 a t t h e u s e r w a n t 0022040 s t o s e e . \r ( N C P a t 0022060 h . P a t h . C r e a t e R o 0022100 o t F i r s t S t e p L i n k 0022120 F S M I n s t a n c e ) \t [ F 0022140 u n c t i o n ] \r T h i s f u 0022160 n c t i o n c r e a t e s a 0022200 n e w p a t h . S i n c e 0022220 a p a t h i s a l i s 0022240 t o f N C P a t h P a t h S 0022260 t e p i n r e v e r s e o 0022300 r d e r w i t h a r o o t 0022320 c a r d I D a t t h e 0022340 e n d , w e c r e a t e t 0022360 h e f i r s t s t e p a n 0022400 d t h e r o o t a n d c 0022420 o n s t h e m t o g e t h e 0022440 r . \r ( N C P a t h . P a t h . 0022460 E n d P a t h ) \t [ F u n c t 0022500 i o n ] \r T h i s f u n c t i 0022520 o n r e t u r n s t h e e 0022540 n d c a r d i n a p a t 0022560 h b y t a k i n g t h e 0022600 l a s t s t e p o f t h e 0022620 p a t h a n d u s i n g 0022640 t h e D i r e c t i o n f i 0022660 e l d t o d e t e r m i n e 0022700 w h e t h e r t o r e t u 0022720 r n t h e s o u r c e o r 0022740 d e s t i n a t i o n o f 0022760 t h e l i n k i n t h e 0023000 L i n k f i e l d . \r ( N C P 0023020 a t h . P a t h . A d d S t e p 0023040 S t e p P a t h ) \t [ F u n 0023060 c t i o n ] \r G i v e n P a t 0023100 h a n d a n e w s t e p 0023120 , t h i s f u n c t i o n 0023140 a d d s t h e s t e p t o 0023160 t h e P a t h \r ( N C P a t 0023200 h . P a t h . L a s t S t e p 0023220 P a t h ) \t [ F u n c t i o n ] 0023240 \r S i n c e a P a t h i s 0023260 a r e v e r s e d l i s t 0023300 , w e j u s t t a k e t 0023320 h e C A R t o g e t t h 0023340 e l a s t s t e p . \r ( N C 0023360 P a t h . P a t h . S t e p I n 0023400 P a t h P T e s t S t e p P 0023420 a t h ) \t [ F u n c t i o n ] \r 0023440 T h i s p r e d i c a t e d 0023460 e t e r m i n e s i f T e s 0023500 t S t e p i s i n P a t h 0023520 o r n o t . \r ( N C P a t h 0023540 . P a t h . E Q U A L P a t h 0023560 1 P a t h 2 ) \t [ F u n c t i 0023600 o n ] \r T h i s f u n c t i o 0023620 n c h e c k s f o r e q u 0023640 a l i t y o f t w o p a t 0023660 h s t h a t a r e s t i l 0023700 l r e v e r s e d , a n d 0023720 h a v e t h e r o o t c a 0023740 r d a t t h e e n d . I 0023760 t i s s i g n i f i c a n t 0024000 l y f a s t e r t h a n E 0024020 Q U A L A L L , b u t u s e 0024040 s a n u m b e r o f C O 0024060 N S c e l l s . \r ( N C P a t 0024100 h . P a t h . L o o p s P P a 0024120 t h ) \t [ F u n c t i o n ] \r T 0024140 h i s p r e d i c a t e r e 0024160 t u r n s T i f f t h e 0024200 l a s t s t e p i n P a t 0024220 h m a k e s P a t h c i r 0024240 c u l a r . \r ( N C P a t h . P 0024260 a t h S t e p . E n d P a t h 0024300 S t e p ) \t [ F u n c t i o n ] 0024320 \r T h i s f u n c t i o n r 0024340 e t u r n s t h e c a r d 0024360 a t t h e a p p r o p r i a 0024400 t e e n d o f P a t h S t 0024420 e p , a s i n d i c a t e d 0024440 b y t h e D i r e c t i o 0024460 n f i e l d o f t h e P 0024500 a t h S t e p . \r ( N C P a t h 0024520 . P a t h S t e p . P o t e n t 0024540 i a l S t e p s P a t h S t e 0024560 p D i r e c t i o n ) \t [ F u 0024600 n c t i o n ] \r T h i s f u n 0024620 c t i o n c o m p u t e s t 0024640 h e p o s s i b l e n e x t 0024660 l i n k s f r o m t h e 0024700 l i n k i n P a t h S t e p 0024720 . \r ( N C P a t h . P a t h S t 0024740 e p . M e e t s F S M C a r d S 0024760 p e c i f i c a t i o n P P a 0025000 t h S t e p F S M N o d e ) \t 0025020 [ F u n c t i o n ] \r T h i s 0025040 f u n c t i o n d e t e r m i 0025060 n e s w h e t h e r o r n 0025100 o t t h e c a r d s p e c 0025120 i f i e d b y P a t h S t e 0025140 p m e e t s t h e s p e c 0025160 i f i c a t i o n o f F S M 0025200 N o d e . \r ( N C P a t h . A 0025220 p p l y F S M N o d e I n s t 0025240 a n c e I t e m ) \t [ F u n c 0025260 t i o n ] \r T h i s f u n c t 0025300 i o n i s a n t i c i p a t 0025320 e d t o m a k e t h e g 0025340 e n e r a l p a t h l a n g 0025360 u a g e e a s i e r t o i 0025400 m p l e m e n t . I t w i l 0025420 l l o o k a t t h e N C 0025440 P a t h F S M N o d e a n d 0025460 i t w i l l u s e A P P L 0025500 Y a p p r o p r i a t e l y , 0025520 e l s e i t w i l l p e 0025540 r f o r m t h e r i g h t 0025560 p a r s i n g a n d w h a t 0025600 n o t a n d t h e n u s e 0025620 a p p l y . \r ( C o p y . N 0025640 C P a t h F S M F S M I n s t 0025660 a n c e ) \t [ F u n c t i o n ] 0025700 \r T h i s f u n c t i o n c 0025720 o p i e s a n N C P a t h F 0025740 S M m u c h f a s t e r t 0025760 h a n C O P Y A L L d o e s 0026000 . I t s h o u l d s a v e 0026020 t i m e i n N C P a t h . 0026040 F S M . I n c r e m e n t C u r 0026060 r e n t S t a t e . \r ( C o p y 0026100 . N C P a t h F S M N o d e F 0026120 S M N o d e I n s t a n c e ) \t 0026140 [ F u n c t i o n ] \r T h i s 0026160 f u n c t i o n d u p l i c a 0026200 t e s a n N C P a t h F S M 0026220 N o d e . \r ( N C P a t h . L i 0026240 n k . L i s t P o t e n t i a l 0026260 S t e p s P r e v i o u s L i 0026300 n k P r e v i o u s D i r e c 0026320 t i o n D i r e c t i o n ) \t 0026340 [ F u n c t i o n ] \r T h i s 0026360 f u n c t i o n t a k e s a 0026400 l i n k , t h e d i r e c 0026420 t i o n i t w a s f o l l 0026440 o w e d , a n d a n o t h e 0026460 r d i r e c t i o n f l a g 0026500 , a n d r e t u r n s a 0026520 l i s t o f a l l p o t e 0026540 n t i a l l i n k s t h a t 0026560 m a y b e t h e n e x t 0026600 s t e p i n t h e p a t 0026620 h f r o m t h e a p p r o 0026640 p r i a t e e n d o f t h 0026660 e L i n k i n t h e . T 0026700 h e s e c o n d D i r e c t 0026720 i o n f l a g d e t e r m i 0026740 n e s w h i c h w a y t h 0026760 e f o u n d l i n k s a r 0027000 e f o l l o w e d . \r ( N C P 0027020 a t h . N o t e C a r d . L i s 0027040 t P o t e n t i a l S t e p s 0027060 C a r d D i r e c t i o n ) \t 0027100 [ F u n c t i o n ] \r T h i s 0027120 f u n c t i o n r e t u r n s 0027140 t h e p o t e n t i a l l 0027160 i n k s t h a t m i g h t 0027200 b e o f u s e f r o m C 0027220 a r d . \r ( N C P a t h . L i n 0027240 k . G e t C a r d P r e v i o 0027260 u s L i n k D i r e c t i o n 0027300 ) \t [ F u n c t i o n ] \r G i v 0027320 e n a l i n k a n d a 0027340 f l a g , t h i s f u n c t 0027360 i o n d e c i d e s w h i c 0027400 h e n d o f t h e l i n 0027420 k ( s o u r c e c a r d o 0027440 r d e s t i n a t i o n c a 0027460 r d ) t o r e t u r n . \0 \0 0027500 \0 \0 \0 003 ( L I S T ( ( P A G E 0027520 N I L ( F O L I O I N F O 0027540 ( A R A B I C ) S T A R T I N 0027560 G P A G E # 1 ) ( 0 0 6 0027600 1 2 7 9 2 ) ( ( F O L I O 0027620 N I L ( P A R A L O O K S ( 0027640 Q U A D C E N T E R E D ) C 0027660 H A R L O O K S ( S U P E R S 0027700 C R I P T 0 S I Z E 1 0 0027720 F A M I L Y M O D E R N O V 0027740 E R L I N E O F F S T R I K 0027760 E O U T O F F U N D E R L I 0030000 N E O F F S L O P E R E G 0030020 U L A R W E I G H T M E D I 0030040 U M ) F O R M A T I N F O ( 0030060 A R A B I C ) ) ( 1 7 4 3 6 0030100 2 8 8 3 6 ) N I L ) ( H 0030120 E A D I N G N I L ( H E A D 0030140 I N G T Y P E R U N N I N G H 0030160 E A D ) ( 8 4 7 4 4 4 4 4 0030200 3 6 ) N I L ) ( T E X T 0030220 N I L N I L ( 8 4 9 6 4 0030240 5 6 6 0 0 ) N I L ) ) ) ( 0030260 P A G E N I L N I L ( 0 0030300 0 6 1 2 7 9 2 ) ( ( F O L 0030320 I O N I L ( P A R A L O O K 0030340 S ( Q U A D C E N T E R E D 0030360 ) C H A R L O O K S ( S U P 0030400 E R S C R I P T 0 S I Z E 0030420 1 0 F A M I L Y M O D E R N 0030440 O V E R L I N E O F F S T 0030460 R I K E O U T O F F U N D E 0030500 R L I N E O F F S L O P E 0030520 R E G U L A R W E I G H T M 0030540 E D I U M ) ) ( 2 8 2 4 2 0030560 7 2 3 6 ) N I L ) ( H E A 0030600 D I N G N I L ( H E A D I N 0030620 G T Y P E R U N N I N G H E A 0030640 D ) ( 8 4 7 4 4 4 4 4 3 0030660 6 ) N I L ) ( T E X T N I 0030700 L N I L ( 8 4 9 6 4 5 6 0030720 6 0 0 ) N I L ) ) ) ( P A 0030740 G E N I L N I L ( 0 0 0030760 6 1 2 7 9 2 ) ( ( F O L I O 0031000 N I L ( P A R A L O O K S 0031020 ( Q U A D C E N T E R E D ) 0031040 C H A R L O O K S ( S U P E R 0031060 S C R I P T 0 S I Z E 1 0 0031100 F A M I L Y M O D E R N O 0031120 V E R L I N E O F F S T R I 0031140 K E O U T O F F U N D E R L 0031160 I N E O F F S L O P E R E 0031200 G U L A R W E I G H T M E D 0031220 I U M ) ) ( 2 8 2 4 2 7 2 0031240 3 6 ) N I L ) ( H E A D I 0031260 N G N I L ( H E A D I N G T 0031300 Y P E R U N N I N G H E A D ) 0031320 ( 8 4 7 4 4 4 4 4 3 6 ) 0031340 N I L ) ( T E X T N I L 0031360 N I L ( 8 4 9 6 4 5 6 6 0031400 0 0 ) N I L ) ) ) ) ) \0 \0 \0 \0 0031420 \0 005 \0 \a \0 . \0 \0 \0 \0 001 310 \0 \v \0 \0 0031440 \0 004 003 003 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 0031460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0031500 \0 \0 \0 . \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 0031520 003 004 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 \0 0031540 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0031560 \0 ( \0 \0 \0 \0 001 310 \0 021 \0 \0 \0 004 002 003 0031600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0031620 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 8 0031640 \0 006 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 0031660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0031700 \0 ( \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 002 004 0031720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0031740 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 8 0031760 \0 \0 \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 0032000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0032020 \0 D \0 \0 \0 \0 001 310 \0 \0 \0 \0 \0 \0 003 004 0032040 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 \v P A 0032060 G E H E A D I N G \0 \v R U N N I 0032100 N G H E A D \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0032120 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 \f \0 024 \0 006 0032140 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0032160 \0 ? \0 1 ( D E F A U L T F O N T 0032200 1 ( G A C H A 1 0 ) ( G 0032220 A C H A 8 ) ( T E R M I N A 0032240 L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0032260 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 0032300 \0 \0 \0 \0 024 \0 006 M O D E R N \0 \f \0 0032320 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E R 0032340 N \0 \n \0 \0 \0 \0 \0 \0 001 \0 \0 024 \0 006 M 0032360 O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0032400 026 \0 \b T E R M I N A L \0 \n \0 \0 \0 0032420 \0 \0 \0 \0 \0 \0 024 \0 006 M O D E R N \0 0032440 \n \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D 0032460 E R N \0 \f \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 0032500 006 M O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 0032520 \0 \0 024 \0 006 M O D E R N \0 006 \0 \0 \0 0032540 \0 \0 \0 \0 \0 \0 022 \0 004 L O G O \0 030 \0 0032560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \a \0 0032600 \0 \0 005 \0 \0 \0 \0 \f \0 \0 \0 001 \0 \0 \0 \0 0032620 \v \0 \0 \0 006 \0 \0 \0 \0 \n \0 \0 \0 001 \0 \0 0032640 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 002 \0 0032660 001 \0 \v H R U L E . G E T F N 001 \0 0032700 024 \0 006 M O D E R N \0 \f \0 \0 \0 \0 \0 0032720 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 0032740 \0 002 \0 006 \0 \0 \0 002 \0 001 \0 \v H R U L 0032760 E . G E T F N 001 \0 024 \0 006 M O D E 0033000 R N \0 \f \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0033020 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 0033040 002 \0 001 \0 \v H R U L E . G E T F N 0033060 001 \0 024 \0 006 M O D E R N \0 \f \0 \0 \0 0033100 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 0033120 \0 \0 \0 002 \0 004 \0 \0 \0 \a \0 \0 \0 \0 \n \0 0033140 \0 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 \v H 0033160 R U L E . G E T F N 001 \0 024 \0 006 M 0033200 O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 0033220 \0 \0 001 \0 \0 \0 \0 \n \0 \0 \0 \0 \0 002 \0 006 0033240 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0033260 T F N 001 \0 024 \0 006 M O D E R N \0 \f 0033300 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 0033320 \n \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 * \0 \0 \0 0033340 \0 \t \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 027 \0 \0 0033360 \0 \0 \t \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 \f \0 0033400 \0 \0 \0 \b \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 0033420 \0 \0 002 \0 005 \0 \0 001 \v \0 \0 \0 \0 \t \0 \0 0033440 \0 026 \0 \0 \0 \0 003 \0 \0 \0 0 \0 \0 \0 \0 \t 0033460 \0 \0 \0 \v \0 \0 \0 \0 003 \0 \0 \0 H \0 \0 \0 0033500 \0 \t \0 \0 \0 026 \0 \0 \0 \0 003 \0 \0 \0 226 \0 0033520 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 F 0033540 \0 \0 \0 \0 \a \0 \0 \0 \0 \0 002 \0 005 \0 \0 001 0033560 350 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 005 \0 \0 0033600 001 261 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 005 \0 0033620 \0 \0 \b \0 \0 \0 \0 \b \0 \0 \0 \0 \0 002 \0 002 0033640 \0 \0 002 \t \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0033660 002 \0 \0 004 \t \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0033700 \0 002 \0 \0 \0 344 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0033720 002 \0 005 \0 \0 \0 \n \0 \0 \0 \0 \b \0 \0 \0 \0 0033740 \0 002 \0 002 \0 \0 \0 027 \0 \0 \0 \0 006 \0 \0 \0 0033760 021 \0 \0 \0 \0 005 \0 \0 001 223 \0 \0 \0 \0 006 \0 0034000 \0 \0 \0 \0 002 \0 002 \0 \0 \0 034 \0 \0 \0 \0 006 0034020 \0 \0 \0 024 \0 \0 \0 \0 005 \0 \0 \0 311 \0 \0 \0 0034040 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 026 \0 \0 0034060 \0 \0 006 \0 \0 \0 \b \0 \0 \0 \0 005 \0 \0 \0 001 0034100 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 0034120 \0 m \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 0034140 \0 \0 032 \0 \0 \0 \0 006 \0 \0 \0 \b \0 \0 \0 \0 0034160 005 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 0034200 \0 \0 005 \0 \0 001 8 \0 \0 \0 \0 006 \0 \0 \0 \0 0034220 \0 002 \0 002 \0 \0 \0 033 \0 \0 \0 \0 006 \0 \0 \0 0034240 \b \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0 \0 006 \0 0034260 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 271 \0 \0 \0 \0 0034300 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 036 \0 \0 \0 0034320 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 4 \0 0034340 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 0034360 O \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0034400 \0 037 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 0034420 \0 \0 \0 267 \0 \0 \0 \0 006 \0 \0 \0 001 \0 \0 \0 0034440 \0 002 \0 \0 \0 = \0 \0 \0 \0 006 \0 \0 \0 \0 \0 0034460 002 \0 002 \0 \0 \0 ' \0 \0 \0 \0 006 \0 \0 \0 \v 0034500 \0 \0 \0 \0 005 \0 \0 \0 x \0 \0 \0 \0 006 \0 \0 0034520 \0 \v \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0 \0 002 0034540 \0 \0 \0 - \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 0034560 002 \0 \0 \0 031 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 0034600 \0 \0 005 \0 \0 001 207 \0 \0 \0 \0 006 \0 \0 \0 \0 0034620 \0 002 \0 002 \0 \0 \0 036 \0 \0 \0 \0 006 \0 \0 \0 0034640 \v \0 \0 \0 \0 005 \0 \0 \0 205 \0 \0 \0 \0 006 \0 0034660 \0 \0 \0 \0 002 \0 002 \0 \0 \0 031 \0 \0 \0 \0 006 0034700 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 262 \0 \0 \0 0034720 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 026 \0 \0 0034740 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 8 0034760 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 0035000 \0 < \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 0035020 \0 \0 \0 - \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 0035040 002 \0 \0 \0 037 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 0035060 \0 \0 005 \0 \0 \0 h \0 \0 \0 \0 006 \0 \0 \0 \v 0035100 \0 \0 \0 \0 005 \0 \0 \0 223 \0 \0 \0 \0 006 \0 \0 0035120 \0 \0 \0 002 \0 002 \0 \0 \0 # \0 \0 \0 \0 003 \0 0035140 \0 \0 \v \0 \0 \0 \0 005 \0 \0 001 276 \0 \0 \0 \0 0035160 003 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 037 \0 \0 \0 0035200 \0 006 \0 \0 \0 036 \0 \0 \0 \0 005 \0 \0 \0 326 \0 0035220 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 0035240 \0 \0 \0 \0 006 \0 \0 \0 \b \0 \0 \0 \0 005 \0 \0 0035260 \0 233 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 0035300 \0 \0 \0 \0 \0 \0 006 \0 \0 \0 017 \0 \0 \0 \0 0035320 005 \0 \0 \0 222 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 0035340 \0 002 \0 \0 \0 033 \0 \0 \0 \0 006 \0 \0 \0 \a \0 0035360 \0 \0 \0 005 \0 \0 \0 247 \0 \0 \0 \0 006 \0 \0 \0 0035400 \0 \0 002 \0 002 \0 \0 \0 ) \0 \0 \0 \0 006 \0 \0 0035420 \0 016 \0 \0 \0 \0 005 \0 \0 001 025 \0 \0 \0 \0 006 0035440 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 ( \0 \0 \0 \0 0035460 006 \0 \0 \0 \n \0 \0 \0 \0 005 \0 \0 \0 310 \0 \0 0035500 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 & \0 0035520 \0 \0 \0 006 \0 \0 \0 \n \0 \0 \0 \0 005 \0 \0 \0 0035540 214 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0035560 \0 % \0 \0 \0 \0 006 \0 \0 \0 \n \0 \0 \0 \0 005 0035600 \0 \0 \0 | \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 0035620 002 \0 \0 \0 024 \0 \0 \0 \0 006 \0 \0 \0 022 \0 \0 0035640 \0 \0 005 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \v 0035660 \0 \0 \0 \0 005 \0 \0 \0 307 \0 \0 \0 \0 006 \0 \0 0035700 \0 \0 \0 002 \0 002 \0 \0 \0 021 \0 \0 \0 \0 006 \0 0035720 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 324 \0 \0 \0 \0 0035740 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 025 \0 \0 \0 0035760 \0 006 \0 \0 \0 \t \0 \0 \0 \0 005 \0 \0 \0 P \0 0036000 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 026 0036020 \0 \0 \0 \0 006 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 0036040 \0 Y \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 0036060 \0 \0 031 \0 \0 \0 \0 006 \0 \0 \0 \r \0 \0 \0 \0 0036100 005 \0 \0 \0 * \0 \0 \0 \0 006 \0 \0 \0 \b \0 \0 0036120 \0 \0 005 \0 \0 \0 \a \0 \0 \0 \0 006 \0 \0 \0 004 0036140 \0 \0 \0 \0 005 \0 \0 \0 \t \0 \0 \0 \0 006 \0 \0 0036160 \0 \0 \0 002 \0 002 \0 \0 \0 023 \0 \0 \0 \0 006 \0 0036200 \0 \0 \v \0 \0 \0 \0 005 \0 \0 \0 303 \0 \0 \0 \0 0036220 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 024 \0 \0 \0 0036240 \0 006 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 U \0 0036260 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 025 0036300 \0 \0 \0 \0 006 \0 \0 \0 \b \0 \0 \0 \0 005 \0 \0 0036320 \0 205 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 0036340 \0 \0 \0 \0 \0 \0 006 \0 \0 \0 022 \0 \0 \0 \0 0036360 005 \0 \0 \0 W \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 0036400 \0 002 \0 \0 \0 , \0 \0 \0 \0 006 \0 \0 \0 020 \0 0036420 \0 \0 \0 005 \0 \0 \0 K \0 \0 \0 \0 006 \0 \0 \0 0036440 \b \0 \0 \0 \0 005 \0 \0 \0 034 \0 \0 \0 \0 006 \0 0036460 \0 \0 \a \0 \0 \0 \0 005 \0 \0 \0 003 \0 \0 \0 \0 0036500 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 016 \0 \0 \0 0036520 \0 006 \0 \0 \0 024 \0 \0 \0 \0 005 \0 \0 \0 360 \0 0036540 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 020 0036560 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 005 \0 \0 0036600 \0 207 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 002 \0 0036620 \0 \0 024 \0 \0 \0 \0 006 \0 \0 \0 017 \0 \0 \0 \0 0036640 005 \0 \0 \0 8 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 0036660 \0 002 \0 \0 \0 \0 \0 \0 \0 006 \0 \0 \0 ( \0 0036700 \0 \0 \0 005 \0 \0 001 . \0 \0 \0 \0 006 \0 \0 \0 0036720 \0 \0 002 \0 002 \0 \0 \0 $ \0 \0 \0 \0 006 \0 \0 0036740 \0 016 \0 \0 \0 \0 005 \0 \0 \0 W \0 \0 \0 \0 006 0036760 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 025 \0 \0 \0 \0 0037000 006 \0 \0 \0 026 \0 \0 \0 \0 005 \0 \0 \0 ~ \0 \0 0037020 \0 \0 006 \0 \0 / > \0 353 z 272 0037033