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