$ od -c -N 50000 [IO]<DoradoLogic>routemwlb.dm!2 0000000 377 \0 \0 r o u t e m w l b 1 . b c 0000020 p l \0 373 235 256 350 _ \0 \0 376 001 \0 337 262 / 0000040 / r o u t e m w l b 1 . b c p l 0000060 \r \r / / B o a r d - s p e c i 0000100 f i c R o u t e r o u t i n 0000120 e s f o r t h e M u l t i 0000140 - W i r e v e r s i o n o f 0000160 t h e \r / / D o r a d o M 0000200 a i n L o g i c B o a r d \r 0000220 \r / / p a r t 1 o f 2 \r 0000240 \r / / l a s t m o d i f i e 0000260 d b y D . R u m p h , O 0000300 c t o b e r 3 0 , 1 9 8 4 0000320 4 : 4 2 P M \r / / \t \t t o 0000340 m a k e I C C l a s s E 4 W 0000360 a D I P 4 5 a l o n g w 0000400 i t h F 1 0 0 K \r / / l a 0000420 s t m o d i f i e d b y 376 0000440 001 \0 = < E . M c C r e i g h t 0000460 , J u l y 7 , 1 9 8 1 0000500 2 : 4 6 P M \r / / \t \t t o c 0000520 o r r e c t p o s i t i o n 0000540 o f G N D p i n s a t c 0000560 o n n e c t o r s t o 5 0 - 0000600 m i l c t r s \r / / m o d i 0000620 f i e d b y E . M c C r e 0000640 i g h t , J u l y 2 4 , 1 0000660 9 8 0 5 : 4 2 P M \r / / \t 0000700 \t t o f i x m u l t i w i r 0000720 e - f o r m a t s t i t c h w 0000740 e l d b o a r d c o n n e c 0000760 t o r m i s a l i g n m e n t 0001000 \r \r / / S o m e g e n e r a 0001020 l c o m m e n t s : \r \r / / \t 0001040 A s o 376 001 \0 o 247 c k e t p o 0001060 s i t i o n i s m a d e u 0001100 p o f a l o w e r - c a s 0001120 e l e t t e r f o l l o w e 0001140 d b y a \r / / \t n u m b e r 0001160 , l i k e a 1 3 o r h 4 0001200 1 . T h e l e t t e r d e 0001220 s i g n a t e s t h e c o l 0001240 u m n , o r t h e \r / / \t x 0001260 o r f i r s t c o - o r d 0001300 i n a t e . I n c r e a s i n 0001320 g l e t t e r s c o r r e s 0001340 p o n d t o i n c r e a s i 0001360 n g x v a l u e s . \r / / \t 0001400 T h e n u m b e r i n a 0001420 s o c k e t p o s i t i o n 0001440 d e s i g n a t e 376 001 \0 305 + s 0001460 t h e r o w , o r y , o 0001500 r s e c o n d \r / / \t c o - o 0001520 r d i n a t e . I n c r e a s 0001540 i n g n u m b e r s c o r r 0001560 e s p o n d t o i n c r e a 0001600 s i n g y v a l u e s . \r \r 0001620 / / \t I n s t a n d a r d o 0001640 r i e n t a t i o n t h e b 0001660 o a r d h a s t h e c o m 0001700 p o n e n t ( n o n - w i r i 0001720 n g ) s i d e \r / / \t u p , 0001740 a n d t h e c o n n e c t o 0001760 r c u t o u t s t o t h e 0002000 l e f t . S o c k e t a 0 0002020 1 i s i n t h e t o p 0002040 l e f t , \r / / \t l 0 1 i 376 001 0002060 \0 333 % n t h e t o p r i g 0002100 h t , a 2 4 i n t h e b 0002120 o t t o m l e f t , a n d 0002140 l 2 4 i n t h e b o t t o 0002160 m r i g h t . \r / / \t T h e 0002200 x c o - o r d i n a t e i n 0002220 c r e a s e s t o t h e r 0002240 i g h t , a n d t h e y 0002260 c o - o r d i n a t e i n c r 0002300 e a s e s \r / / \t d o w n w a r 0002320 d . I n s t a n d a r d o 0002340 r i e n t a t i o n p i n 1 0002360 o f e a c h s o c k e t 0002400 i s t h e t o p r i g h t 0002420 \r / / \t p i n o f t h e s 0002440 o c k e t . T h e p i n n 0002460 u m b 376 001 \0 p 377 e r i n g g o 0002500 e s l e f t w a r d , t h e 0002520 n d o w n , t h e n \r / / \t 0002540 r i g h t w a r d . \r \r / / \t W 0002560 i t h c e r t a i n e x c e 0002600 p t i o n s , a g i v e n 0002620 f u n c t i o n a l l y e q u 0002640 i v a l e n t g r o u p o f 0002660 p i n s \r / / \t i s o r d e 0002700 r e d f i r s t d o w n w a 0002720 r d a n d t h e n r i g h 0002740 t w a r d . F o r e x a m p 0002760 l e , i f w e h a d \r / / 0003000 \t G N D p i n s o f a c 0003020 e r t a i n k i n d a t { 0003040 x 0 , y 0 } , { x 1 , y 1 } , 0003060 { x 1 , y 0 } 376 001 \0 w 256 , a 0003100 n d { x 0 , y 1 } , \r / / \t 0003120 w h e r e x 0 < x 1 a n d 0003140 y 0 < y 1 , t h e n t h e y 0003160 w o u l d a p p e a r i n 0003200 t h e G N D p s e u d o - 0003220 \r / / \t n e t i n t h e f 0003240 o l l o w i n g o r d e r : \r 0003260 / / \t \t . . . { x 0 , y 0 } . . 0003300 . { x 0 , y 1 } . . . { x 1 , y 0003320 0 } . . . { x 1 , y 1 } . . . \r 0003340 \r / / \t T h i s m e a n s t 0003360 h a t t h e p s e u d o - n 0003400 e t p i n n u m b e r i s 0003420 u s u a l l y c o m p u t e 0003440 d a s \r / / \t \t ( x ( h o r 0003460 i z o n t a l ) r e p e 376 001 \0 0003500 \t 374 a t ) * ( p i n s P e r C o 0003520 l u m n ) + ( y ( v e r t i c 0003540 a l ) r e p e a t ) + f i r s 0003560 t P i n N o \r \r / / \t S i m i l 0003600 a r l y t h e h o r i z o n 0003620 t a l a n d v e r t i c a l 0003640 r e p e a t s a r e u s u 0003660 a l l y c o m p u t e d a s 0003700 \r / / \t \t c o l u m n = x R 0003720 e p e a t = ( p s e u d o - 0003740 n e t p i n n u m b e r - 0003760 f i r s t P i n N o ) / p i n 0004000 s P e r C o l u m n \r / / \t \t r 0004020 o w = y R e p e a t = ( 0004040 p s e u d o - n e t p i n n 0004060 u m b e r - f i r s t P i n 0004100 N o 376 001 \0 236 0 ) r e m p i n 0004120 s P e r C o l u m n \r \r g e t 0004140 " r o u t e . d e f s " \r \r e x 0004160 t e r n a l [ P i n 1 o f 1 0004200 6 ] \r \r m a n i f e s t \r [ 032 0004220 ( 6 3 5 ) \ f 1 \r r e p e a t R 0004240 o w s = 1 2 \r r e p e a t C 0004260 o l s = 6 \r f u l l R e p e 0004300 a t C o l s = 4 \r r e p e a 0004320 t s = r e p e a t R o w s * 0004340 r e p e a t C o l s \r f u l l R 0004360 e p e a t s = r e p e a t R 0004400 o w s * f u l l R e p e a t C o 0004420 l s \r r o w O f f s e t = 1 0004440 6 \r l e f t C o l s O f f s e t 0004460 = 0 \r r i g h t C o l s O f 0004500 f s e t = 376 001 \0 025 227 2 4 6 \r 0004520 r o w H e i g h t = 4 2 \r f 0004540 u l l C o l W i d t h = 1 1 0004560 2 \r p a t t e r n G r o u n d s 0004600 = 3 * r e p e a t s + 6 * f 0004620 u l l R e p e a t s \r S o c k e 0004640 t s 1 6 p i n = 6 * f u l l 0004660 R e p e a t s \r S o c k e t s 2 0004700 4 p i n = 2 * f u l l R e p 0004720 e a t s \r S o c k e t s 5 0 p i 0004740 n = f u l l R e p e a t s \r 0004760 S o c k e t s S i p = 3 * f 0005000 u l l R e p e a t s 032 l 4 2 6 9 0005020 \ f 1 \r ] \r \r s t a t i c \r [ 032 0005040 \ f 1 \r m a x I C s = 6 0 0 0005060 \r b o a r d I n t e r f a c e V 0005100 e r s i o n = i n t 376 001 \0 006 0005120 016 e r f a c e V e r s i o n \r V 0005140 C C C a p \r V E E C a p 032 l 4 2 0005160 6 9 \ f 1 \r ] \r \r l e t D e c 0005200 l a r e I n i t i a l N e t s ( 0005220 B u i l d T W N e t , B u i l 0005240 d T e r m N e t , B u i l d C 0005260 o n n e c t o r ) b e \r [ 032 \ 0005300 f 1 \r B u i l d C o n n e c t o 0005320 r ( " E " , 1 8 9 , E P i n 0005340 P o s ) \r B u i l d C o n n e c 0005360 t o r ( " C " , 1 8 9 , C P 0005400 i n P o s ) \r B u i l d T W N e 0005420 t ( " G N D " , 6 * f u l l R 0005440 e p e a t s + 3 * r e p e a t s 0005460 + 2 * 9 2 , G N D P i n P o s 0005500 ) \r B u i l d T W N e t ( " V E 0005520 E 376 001 \0 * 340 " , 4 * f u l l R 0005540 e p e a t s + 2 * r e p e a t s 0005560 , V E E P i n P o s ) \r B u i 0005600 l d T W N e t ( " V T T " , 3 0005620 * f u l l R e p e a t s , V T 0005640 T P i n P o s ) \r B u i l d T W 0005660 N e t ( " V C C " , r e p e a 0005700 t s , V C C P i n P o s ) \r B 0005720 u i l d T W N e t ( " V D D " , 0005740 r e p e a t s , V D D P i n 0005760 P o s ) \r V C C C a p = D e 0006000 f i n e B y p a s s T y p e ( " 0006020 V C C B y p a s s C a p " , V 0006040 C C B y p a s s V o l t a g e s 0006060 ) \r V E E C a p = D e f i n 0006100 e B y p a s s T y p e ( " V E E 0006120 B y p a s s 376 001 \0 244 232 C a p " , 0006140 V E E B y p a s s V o l t a g 0006160 e s ) \r B u i l d T e r m N e t 0006200 ( " T e r m 1 0 0 / 8 / T e r m 0006220 1 0 0 " , 8 , " T e r m 1 0 0006240 0 " , 1 0 0 8 , A u t o T e 0006260 r m P i n P o s , " T " ) \r l e 0006300 t c = T r y F i n d i n g 0006320 N a m e e ( " F 1 0 0 K " , t 0006340 y p e I c c l a s s ) \r i f c 0006360 n e e m p t y t h e n c 0006400 > > i c c l a s s . P i n O f f 0006420 s e t = D I P 4 5 W i d e 032 0006440 l 4 2 6 9 \ f 1 \r c = T r y 0006460 F i n d i n g N a m e e ( " E 4 0006500 W " , t y p e I c c l a s s ) 0006520 \r i f c n e e m 376 001 \0 ^ ; 0006540 p t y t h e n c > > i c c l 0006560 a s s . P i n O f f s e t = 0006600 D I P 4 5 W i d e 032 l 4 2 6 9 \ 0006620 f 1 \r ] \r \r a n d D I P 4 5 W 0006640 i d e ( i c i n s t , p i n N 0006660 o , p v , p h ) = v a l 0006700 o f \r [ 032 \ f 1 \r l e t r e s 0006720 u l t = D I P 3 W i d e ( i 0006740 c i n s t , p i n N o , p v 0006760 , p h ) \r i f @ p h n e 0007000 0 t h e n @ p h = @ p h 0007020 + 6 \r r e s u l t i s r e s u 0007040 l t 032 l 4 2 6 9 \ f 1 \r ] \r \r a 0007060 n d Z e r o T a b l e P o i n 0007100 t ( p o i n t ) = s e l e c 0007120 t o n p o i n t i n t o \r [ 0007140 376 001 \0 T 336 032 \ f 1 \r c a s e 0 0007160 : " L " / / b o a r d t 0007200 y p e \r c a s e 1 : " C 1 8 0007220 8 " \r c a s e 2 : " E 6 " \r 0007240 c a s e 3 : " E 1 8 7 " \r c 0007260 a s e 4 : " C 5 " \r d e f a 0007300 u l t : e m p t y 032 l 4 2 6 9 0007320 \ f 1 \r ] \r \r a n d L e v e l 0007340 T r a n s f o r m ( l e v e l , 0007360 x , y , p x , p y , p 0007400 N a m e , p P u l l C o m p o 0007420 n e n t s , p W i r e ; n u 0007440 m a r g s n a ) = v a l o 0007460 f \r [ 032 \ f 1 \r D e f a u l t A 0007500 r g s ( l v n a , - 1 , 0 0007520 , 0 , l v n a , l v n 0007540 a , l v 376 001 \0 254 i n a , l 0007560 v n a , l v n a ) \r s w i 0007600 t c h o n l e v e l i n t o 0007620 \r [ 032 l 4 2 6 9 \ f 1 \r c a s e 0007640 T o p L e v e l : 032 l 5 5 3 9 0007660 \ f 1 \r @ p x = x \r @ p y 0007700 = 5 2 4 - y \r @ p N a m e = 0007720 " C o m p o n e n t s i d e 0007740 " \r @ p P u l l C o m p o n e n 0007760 t s = t r u e \r @ p W i r e 0010000 = f a l s e \r r e s u l t i 0010020 s t r u e 032 l 6 8 0 9 \ f 1 \r 0010040 \r c a s e B o t t o m L e v e 0010060 l : 032 l 5 5 3 9 \ f 1 \r @ p x 0010100 = x \r @ p y = y \r @ p N a 0010120 m e = " W i r i n g s i d 0010140 e " \r @ p P u l l C 376 001 \0 255 234 o 0010160 m p o n e n t s = f a l s e 0010200 \r @ p W i r e = t r u e \r r 0010220 e s u l t i s t r u e 032 l 6 8 0010240 0 9 \ f 1 \r \r d e f a u l t : 0010260 r e s u l t i s f a l s e 032 l 0010300 5 5 3 9 \ f 1 \r ] 032 l 4 2 6 9 \ 0010320 f 1 \r ] \r \r a n d D e f i n e 0010340 B y p a s s T y p e ( c l a s s 0010360 , I n i t i a l W i r i n g ) 0010400 = v a l o f \r [ 032 \ f 1 \r S 0010420 e t u p I C c l a s s ( c l a s 0010440 s , p r i n t U s e d L i s t 0010460 , D I P 3 W i d e , N u l l 0010500 A t t r i b u t e s , I n i t 0010520 i a l W i r i n g , 2 ) \r l e 0010540 t t y p e = v e c 5 0 376 0010560 001 \0 m 351 \r E x p a n d T e m p l 0010600 a t e ( t y p e , " $ S / 2 / 0010620 $ S " , c l a s s , c l a s 0010640 s ) \r l e t i c t y p e = 0010660 D e f i n e N a m e e ( t y p e 0010700 , t y p e I c t y p e ) \r i c 0010720 t y p e > > i c t y p e . i c c 0010740 l a s s = M u s t F i n d N 0010760 a m e e ( c l a s s , t y p e 0011000 I c c l a s s ) \r i c t y p e > 0011020 > i c t y p e . n p i n s = 0011040 2 \r r e s u l t i s i c t y p 0011060 e 032 l 4 2 6 9 \ f 1 \r ] \r \r a n 0011100 d V C C B y p a s s V o l t a 0011120 g e s ( i c i n s t ) b e \r [ 0011140 032 \ f 1 \r l e t s t r = F 0011160 i n d N 376 001 \0 221 265 a m e e s S t 0011200 r i n g ( i c i n s t ) \r P u t 0011220 T e m p l a t e ( I m p l i c i 0011240 t F i l e , " * n V C C : $ 0011260 S . 1 p * n G N D : $ S . 2 p 0011300 " , s t r , s t r ) 032 l 4 2 0011320 6 9 \ f 1 \r ] \r \r a n d V E E 0011340 B y p a s s V o l t a g e s ( i 0011360 c i n s t ) b e \r [ 032 \ f 1 \r 0011400 l e t s t r = F i n d N a 0011420 m e e s S t r i n g ( i c i n s 0011440 t ) \r P u t T e m p l a t e ( I 0011460 m p l i c i t F i l e , " * n 0011500 V E E : $ S . 1 p * n G N D : 0011520 $ S . 2 p " , s t r , s t 0011540 r ) 032 l 4 2 6 9 \ f 1 \r ] \r \r a 0011560 n d A d d D e c 376 001 \0 367 334 o u 0011600 p l i n g C a p s ( ) b e \r [ 0011620 032 \ f 1 \r f o r r o w = 1 0011640 t o 2 3 b y 2 d o \r [ 0011660 032 l 4 2 6 9 \ f 1 \r f o r c o 0011700 l = $ a t o $ g b y 0011720 ( $ g - $ a ) d o \r [ 032 l 5 5 0011740 3 9 \ f 1 \r A d d C a p ( V C C 0011760 C a p , 9 , c o l , r o w 0012000 ) \r A d d C a p ( V E E C a p , 0012020 8 , c o l , r o w ) 032 l 6 0012040 8 0 9 \ f 1 \r ] \r f o r c o l 0012060 = $ c t o $ l b y ( 0012100 $ f - $ c ) d o \r [ 032 l 5 5 3 0012120 9 \ f 1 \r A d d C a p ( V C C C 0012140 a p , - 1 , c o l , r o w 0012160 ) \r A d d C a p ( V E E C a 376 001 0012200 \0 \ 005 p , - 2 , c o l , r 0012220 o w ) 032 l 6 8 0 9 \ f 1 \r ] 032 l 0012240 5 5 3 9 \ f 1 \r ] 032 l 4 2 6 9 \ 0012260 f 1 \r ] \r \r a n d A d d C a p 0012300 ( c a p T y p e , v e r t O f 0012320 f s e t , c o l , r o w ) 0012340 b e \r [ 032 \ f 1 \r l e t s = 0012360 v e c 2 0 \r E x p a n d T e 0012400 m p l a t e ( s , " # $ D $ C 0012420 $ 2 F 0 D " , v e r t O f f s 0012440 e t , c o l , r o w ) \r I n 0012460 s e r t D e v i c e I f P o s s 0012500 i b l e ( s , c a p T y p e , 0012520 t r u e ) / / s u p p r e s 0012540 s w a r n i n g s 032 l 4 2 6 9 0012560 \ f 1 \r ] \r \r a n d E P i n P 0012600 o s ( 376 001 \0 311 337 i c i n s t , 0012620 p i n , p x , p y ) = v 0012640 a l o f \r [ 032 \ f 1 \r i f ( p 0012660 i n l s 5 ) % ( p i n 0012700 g r 1 8 8 ) t h e n r e s 0012720 u l t i s i l l e g a l \r @ p 0012740 y = 5 2 4 \r l e t p g = 0012760 ( p i n - 1 ) r e m 4 \r i 0013000 f ( p g e q 0 ) % ( p g 0013020 e q 3 ) t h e n r e s u l 0013040 t i s i l l e g a l \r l e t 0013060 x C o l = ( p i n - 5 ) / 2 0013100 \r @ p x = 2 2 + 4 * x C o l 0013120 + 2 * ( x C o l / 2 ) \r r e s u 0013140 l t i s a b s o l u t e 032 l 4 0013160 2 6 9 \ f 1 \r ] \r \r a n d C P 0013200 i n P o s ( i c 376 001 \0 243 320 i n s 0013220 t , p i n , p x , p y ) 0013240 = v a l o f \r [ 032 \ f 1 \r i f 0013260 ( p i n l s 5 ) % ( p 0013300 i n g r 1 8 8 ) t h e n 0013320 r e s u l t i s i l l e g a l 0013340 \r @ p y = 0 \r l e t p g 0013360 = ( p i n - 1 ) r e m 4 \r 0013400 i f ( p g e q 1 ) % ( p g 0013420 e q 2 ) t h e n r e s u 0013440 l t i s i l l e g a l \r l e t 0013460 x C o l = ( 1 8 8 - p i n 0013500 ) / 2 \r @ p x = 2 2 + 4 * x 0013520 C o l + 2 * ( x C o l / 2 ) \r r 0013540 e s u l t i s a b s o l u t e 0013560 032 l 4 2 6 9 \ f 1 \r ] \r \r a n d 0013600 G N D P i n P o s ( i c 376 001 \0 0013620 @ _ i n s t , p i n , p x , 0013640 p y , p I n f o ; n u m a 0013660 r g s n a ) = v a l o f \r 0013700 [ 032 \ f 1 \r D e f a u l t A r g 0013720 s ( l v n a , - 4 , l v 0013740 n a ) \r @ p I n f o = n o D 0013760 i s c o n n e c t + n o R e c o 0014000 n n e c t + B o t t o m L e v e 0014020 l \r i f p i n l e 0 t h 0014040 e n r e s u l t i s i l l e 0014060 g a l \r i f p i n l e p a 0014100 t t e r n G r o u n d s t h e 0014120 n \r [ 032 l 4 2 6 9 \ f 1 \r R e p 0014140 e a t ( l v p i n , 3 , 6 0014160 , p x , p y ) \r l e t x t 0014200 a b l e = t a b l e [ 0 0014220 ; 0 376 001 \0 002 031 ; 4 ; 4 0 ; 4 0 ; 0014240 7 2 ; 7 6 ; 7 6 ; 1 0 8 ] \r @ 0014260 p x = @ p x + x t a b l e ! 0014300 p i n \r l e t y t a b l e = 0014320 t a b l e [ 1 2 ; 2 4 ; 3 0014340 6 ; 0 ; 1 2 ; 1 2 ; 0 ; 1 2 ; 3 0014360 6 ] \r @ p y = @ p y + y t 0014400 a b l e ! p i n \r r e s u l t i 0014420 s a b s o l u t e 032 l 5 5 3 9 0014440 \ f 1 \r ] \r p i n = p i n - 0014460 p a t t e r n G r o u n d s \r i 0014500 f p i n l e 2 * 9 2 t h 0014520 e n \r [ 032 l 4 2 6 9 \ f 1 \r p i 0014540 n = p i n - 1 \r @ p y = 0014560 p i n l s 9 2 ? 0 + 4 , 0014600 5 2 4 - 4 \r l e t s e q = 0014620 p i n r e m 376 001 \0 322 205 9 2 \r 0014640 @ p x = 2 2 + 4 * s e q + 2 0014660 * ( s e q / 2 ) \r r e s u l t i 0014700 s a b s o l u t e 032 l 5 5 3 9 0014720 \ f 1 \r ] \r r e s u l t i s i 0014740 l l e g a l 032 l 4 2 6 9 \ f 1 \r 0014760 ] \r \r a n d V E E P i n P o s 0015000 ( i c i n s t , p i n , p x 0015020 , p y , p I n f o ; n u m 0015040 a r g s n a ) = v a l o f 0015060 \r [ 032 \ f 1 \r D e f a u l t A r 0015100 g s ( l v n a , - 4 , l v 0015120 n a ) \r @ p I n f o = n o 0015140 D i s c o n n e c t + n o R e c 0015160 o n n e c t + B o t t o m L e v 0015200 e l \r i f p i n l e 0 t 0015220 h e n r e s u l t i s 376 001 \0 246 0015240 351 i l l e g a l \r i f p i n 0015260 l e 4 * f u l l R e p e a t 0015300 s + 2 * r e p e a t s t h e n 0015320 \r [ 032 l 4 2 6 9 \ f 1 \r R e p e 0015340 a t ( l v p i n , 2 , 4 , 0015360 p x , p y ) \r l e t x t a 0015400 b l e = t a b l e [ 4 ; 0015420 4 4 ; 8 0 ] \r @ p x = @ p 0015440 x + x t a b l e ! ( p i n / 2 ) 0015460 \r @ p y = @ p y + 2 4 * ( p 0015500 i n r e m 2 ) \r r e s u l t 0015520 i s a b s o l u t e 032 l 5 5 3 0015540 9 \ f 1 \r ] \r r e s u l t i s 0015560 i l l e g a l 032 l 4 2 6 9 \ f 1 0015600 \r ] \r \r a n d V T T P i n P o 0015620 s ( i c i n s t , p i n , p 0015640 x 376 001 \0 Q 034 , p y , p I n f 0015660 o ; n u m a r g s n a ) = 0015700 v a l o f \r [ 032 \ f 1 \r D e f 0015720 a u l t A r g s ( l v n a , 0015740 - 4 , l v n a ) \r @ p I n f 0015760 o = n o D i s c o n n e c t 0016000 + n o R e c o n n e c t + B o t 0016020 t o m L e v e l \r i f p i n 0016040 l e 0 t h e n r e s u l t 0016060 i s i l l e g a l \r i f p i 0016100 n l e 3 * f u l l R e p e a 0016120 t s t h e n \r [ 032 l 4 2 6 9 \ 0016140 f 1 \r R e p e a t ( l v p i n 0016160 , 0 , 3 , p x , p y ) \r 0016200 l e t x t a b l e = t a b 0016220 l e [ 4 0 ; 7 6 ; 1 0 8 ] 0016240 \r @ p x = 376 001 \0 372 217 @ p x + 0016260 x t a b l e ! p i n \r l e t y 0016300 t a b l e = t a b l e [ 0016320 2 4 ; 2 4 ; 1 8 ] \r @ p y = 0016340 @ p y + y t a b l e ! p i n \r 0016360 r e s u l t i s a b s o l u t 0016400 e 032 l 5 5 3 9 \ f 1 \r ] \r r e s 0016420 u l t i s i l l e g a l 032 l 4 0016440 2 6 9 \ f 1 \r ] \r \r a n d V D 0016460 D P i n P o s ( i c i n s t , 0016500 p i n , p x , p y , p I n 0016520 f o ; n u m a r g s n a ) 0016540 = v a l o f \r [ 032 \ f 1 \r D e 0016560 f a u l t A r g s ( l v n a , 0016600 - 4 , l v n a ) \r @ p I n 0016620 f o = n o D i s c o n n e c 0016640 t + n o R e c o n n e 376 001 \0 A 267 0016660 c t + B o t t o m L e v e l \r i 0016700 f p i n l e 0 t h e n 0016720 r e s u l t i s i l l e g a l 0016740 \r i f p i n l e r e p e a 0016760 t s t h e n \r [ 032 l 4 2 6 9 \ 0017000 f 1 \r R e p e a t ( l v p i n 0017020 , 1 , 0 , p x , p y ) \r 0017040 @ p x = @ p x + 4 \r @ p y 0017060 = @ p y + 1 8 \r r e s u l t i 0017100 s a b s o l u t e 032 l 5 5 3 9 0017120 \ f 1 \r ] \r r e s u l t i s i 0017140 l l e g a l 032 l 4 2 6 9 \ f 1 \r 0017160 ] \r \r a n d V C C P i n P o s 0017200 ( i c i n s t , p i n , p x 0017220 , p y , p I n f o ; n u m 0017240 a r g s n a ) = v a l o f 0017260 376 001 \0 ' 350 \r [ 032 \ f 1 \r D e f a 0017300 u l t A r g s ( l v n a , - 0017320 4 , l v n a ) \r @ p I n f o 0017340 = n o D i s c o n n e c t + 0017360 n o R e c o n n e c t + B o t t 0017400 o m L e v e l \r i f p i n l 0017420 e 0 t h e n r e s u l t i 0017440 s i l l e g a l \r i f p i n 0017460 l e r e p e a t s t h e n 0017500 \r [ 032 l 4 2 6 9 \ f 1 \r R e p e 0017520 a t ( l v p i n , 1 , 0 , 0017540 p x , p y ) \r @ p y = @ 0017560 p y + 3 6 \r r e s u l t i s a 0017600 b s o l u t e 032 l 5 5 3 9 \ f 1 0017620 \r ] \r r e s u l t i s i l l e 0017640 g a l 032 l 4 2 6 9 \ f 1 \r ] \r \r 0017660 a n d A 376 001 \0 b | u t o T e r 0017700 m P i n P o s ( i c i n s t , 0017720 p i n , p x , p y , p I n 0017740 f o , p i n N a m e ; n u m 0017760 a r g s n a ) = v a l o f 0020000 \r [ 032 \ f 1 \r D e f a u l t A r 0020020 g s ( l v n a , - 4 , l v 0020040 n a , 0 ) \r i f p i n l 0020060 e 0 t h e n r e s u l t i 0020100 s i l l e g a l \r i f p i n 0020120 l e 1 0 0 8 t h e n \r [ 032 0020140 l 4 2 6 9 \ f 1 \r p i n = p i n 0020160 - 1 \r l e t p a c k a g e = 0020200 p i n / 7 \r p i n = p i n 0020220 r e m 7 \r P i n 1 o f 8 ( p 0020240 a c k a g e r e m 1 2 , p 0020260 a c k a g e / 1 2 , 376 001 \0 o ' 0020300 p x , p y ) \r @ p x = @ p 0020320 x - 4 - 4 * p i n \r i f p i n 0020340 N a m e n e 0 t h e n 032 l 0020360 5 5 3 9 \ f 1 \r E x p a n d T e 0020400 m p l a t e ( p i n N a m e , 0020420 " $ C $ D . $ D " , $ a + p a 0020440 c k a g e / 1 2 , \r 4 1 + ( p 0020460 a c k a g e r e m 1 2 ) , 0020500 p i n + 2 ) \r r e s u l t i s 0020520 a b s o l u t e 032 l 5 5 3 9 \ f 0020540 1 \r ] \r r e s u l t i s i l l 0020560 e g a l 032 l 4 2 6 9 \ f 1 \r ] \r 0020600 \r a n d F i n d C o o r d F r 0020620 o m S t r i n g ( s , p x , 0020640 p y , v o p 1 , h o p 1 ; 0020660 n u m a r g s n a ) = v 376 0020700 001 \0 F ' a l o f \r [ / / v o 0020720 p 1 i s t h e " v e r t i 0020740 c a l " f r o m p i n 1 , 0020760 t h a t i s , t h e o f 0021000 f s e t a l o n g t h e 0 0021020 . 1 " \r / / s p a c i n g ; 0021040 h o p 1 i s t h e " h o r 0021060 i z o n t a l o f f s e t " 0021100 f r o m p i n 1 . I n a 0021120 s t a n d a r d 1 6 - p i n 0021140 \r / / D I P , f o r p i n 0021160 2 v o p 1 = 4 a n d h o 0021200 p 1 = 0 , a n d f o r p i 0021220 n 1 6 , v o p 1 = 0 a n d 0021240 h o p 1 = 1 2 . F o r \r / / 0021260 t h i s b o a r d , v o p 0021300 1 g r 376 001 \0 364 V o w s i n 0021320 t h e - x d i r e c t i o n 0021340 , a n d h o p 1 g r o w s 0021360 i n t h e + y d i r e c 0021400 t i o n . \r \r / / s c a n 0021420 b e o f t h e f o r m < 0021440 l o w e r - c a s e l e t t e 0021460 r > < n u m b e r > o r \r / / 0021500 \t < n u m b e r > s ( m e a 0021520 n i n g v e r t i c a l l y 0021540 o f f s e t < n u m b e r > * 0021560 0 . 1 " ) o r \r / / \t ^ < n u 0021600 m b e r > s ( m e a n i n g 0021620 v e r t i c a l l y o f f s 0021640 e t < n u m b e r > * 0 . 1 " 0021660 ) o r \r / / _ < n u m b e r 0021700 > s ( m e a n 376 001 \0 P 030 i n 0021720 g h o r i z o n t a l l y o 0021740 f f s e t < n u m b e r > * 0 0021760 . 1 " ) o r \r / / # s \r 032 0022000 \ f 1 \r D e f a u l t A r g s ( 0022020 l v n a , - 3 , 0 , 0 ) 0022040 \r \r l e t b p V O f f s e t , 0022060 b p H O f f s e t = 0 , 0 0022100 \r l e t i = 0 \r l e t c = 0022120 $ # \r l e t o f f s e t I s 0022140 V e r t i c a l = t r u e \r 0022160 l e t s i g n = 1 \r \r w h 0022200 i l e i l e s > > s t r . 0022220 l e n g t h & ( c l s $ 0022240 a % c g r $ z ) d o \r 0022260 [ 032 l 4 2 6 9 \ f 1 \r i f c 0022300 e q $ ^ % c e q $ 376 001 0022320 \0 220 S _ % c e q $ # % 0022340 c e q $ - t h e n \r [ 032 0022360 l 5 5 3 9 \ f 1 \r t e s t c 0022400 e q $ - \r i f s o s i g n 0022420 = - s i g n \r i f n o t o f 0022440 f s e t I s V e r t i c a l = 0022460 n o t ( c e q $ _ ) \r \r 0022500 i = i + 1 \r c = s > > s t r 0022520 . c h a r ^ i \r l o o p 032 l 6 8 0022540 0 9 \ f 1 \r ] \r \r i f c g e 0022560 $ 0 & c l e $ 9 t h 0022600 e n \r [ 032 l 5 5 3 9 \ f 1 \r l e 0022620 t b p O f f s e t = 0 \r w 0022640 h i l e i l e s > > s t r 0022660 . l e n g t h & c g e $ 0022700 0 & c l e $ 9 d o \r [ 0022720 032 l 6 376 001 \0 7 [ 8 0 9 \ f 1 \r b 0022740 p O f f s e t = 1 0 * b p O 0022760 f f s e t + c - $ 0 \r i = i 0023000 + 1 \r c = s > > s t r . c h 0023020 a r ^ i 032 l 8 0 7 9 \ f 1 \r ] \r 0023040 @ ( o f f s e t I s V e r t i c 0023060 a l ? l v b p V O f f s e t 0023100 , l v b p H O f f s e t ) 0023120 = \r s i g n * b p O f f s e t 0023140 \r o f f s e t I s V e r t i c a 0023160 l = t r u e \r s i g n = 0023200 1 \r l o o p 032 l 6 8 0 9 \ f 1 \r 0023220 ] \r \r r e s u l t i s i l l e 0023240 g a l 032 l 5 5 3 9 \ f 1 \r ] \r \r 0023260 v o p 1 = v o p 1 + 4 * b p 0023300 V O f f s e t \r h o p 1 = h 0023320 o p 1 + 4 * b p 376 001 \0 225 L H O f 0023340 f s e t \r \r / / I C p o s i 0023360 t i o n o f t h e f o r m 0023400 < l e t t e r > < n u m b e r 0023420 > \r \r i f i g r s > > s t 0023440 r . l e n g t h % c l s 0023460 $ a % c g r $ z t h e 0023500 n r e s u l t i s i l l e g 0023520 a l \r l e t a l p h = c \r 0023540 \r l e t n u m = 0 \r w h i 0023560 l e i l s s > > s t r . l 0023600 e n g t h d o \r [ 032 l 4 2 6 9 0023620 \ f 1 \r i = i + 1 \r c = s > 0023640 > s t r . c h a r ^ i \r i f ( 0023660 c l s $ 0 ) % ( c g r 0023700 $ 9 ) t h e n r e s u l t 0023720 i s i l l e g a l \r n u 376 001 \0 0023740 360 215 m = 1 0 * n u m + ( c - 0023760 $ 0 ) 032 l 5 5 3 9 \ f 1 \r ] \r \r 0024000 i f ( n u m g e 1 ) & ( n 0024020 u m l e 2 4 ) t h e n \r [ 0024040 032 l 4 2 6 9 \ f 1 \r u n l e s s 0024060 P i n 1 o f 1 6 ( n u m - 1 , 0024100 a l p h - $ a , p x , p y 0024120 ) d o r e s u l t i s i l 0024140 l e g a l \r @ p x = @ p x - v o 0024160 p 1 \r @ p y = @ p y + h o p 0024200 1 \r r e s u l t i s a b s o l 0024220 u t e 032 l 5 5 3 9 \ f 1 \r ] \r \r 0024240 i f ( n u m g e 4 1 ) & 0024260 ( n u m l e 5 2 ) t h e 0024300 n \r [ 032 l 4 2 6 9 \ f 1 \r u n l 0024320 e s s P i n 1 o f 8 ( n u m - 0024340 4 1 376 001 \0 236 4 , a l p h - $ a 0024360 , p x , p y ) d o r e s 0024400 u l t i s i l l e g a l \r @ p 0024420 x = @ p x - v o p 1 \r @ p y = @ 0024440 p y + h o p 1 \r r e s u l t i s 0024460 a b s o l u t e 032 l 5 5 3 9 \ 0024500 f 1 \r ] \r \r l e t c o l = 0024520 s e l e c t o n a l p h i n 0024540 t o \r [ 032 l 4 2 6 9 \ f 1 \r c a 0024560 s e $ b : 0 \r c a s e $ c 0024600 : 1 \r c a s e $ e : 2 \r c 0024620 a s e $ f : 3 \r c a s e $ 0024640 h : 4 \r c a s e $ i : 5 \r 0024660 c a s e $ k : 6 \r c a s e 0024700 $ l : 7 \r d e f a u l t : - 0024720 1 032 l 5 5 3 9 \ f 1 \r ] \r l e t 0024740 r o w = 376 001 \0 h 017 s e l e 0024760 c t o n n u m i n t o \r [ 032 0025000 l 4 2 6 9 \ f 1 \r c a s e 6 0 0025020 : 1 \r c a s e 6 1 : 4 \r c 0025040 a s e 6 2 : 7 \r c a s e 6 0025060 3 : 1 0 \r \r c a s e 6 4 : 0025100 0 \t / / n e w n u m b e r s 0025120 \r c a s e 6 5 : 2 \r c a s e 0025140 6 6 : 3 \r c a s e 6 7 : 0025160 5 \r c a s e 6 8 : 6 \r c a s 0025200 e 6 9 : 8 \r c a s e 7 0 : 0025220 9 \r c a s e 7 1 : 1 1 \r \r 0025240 d e f a u l t : - 1 032 l 5 5 3 0025260 9 \ f 1 \r ] \r \r u n l e s s P 0025300 i n 1 o f 2 4 ( r o w , c o l 0025320 , p x , p y ) d o r e s 0025340 u l t i s i l l e g a 376 001 \0 241 0025360 313 l \r @ p x = @ p x - v o p 0025400 1 \r @ p y = @ p y + h o p 1 0025420 032 l 4 2 6 9 \ f 1 \r r e s u l t 0025440 i s a b s o l u t e 032 l 4 2 6 0025460 9 \ f 1 \r ] \r \r a n d P i n 1 0025500 o f 1 6 ( r o w , c o l , p 0025520 x , p y ) = v a l o f \r [ 0025540 032 \ f 1 \r u n l e s s O f f s 0025560 e t L e g a l ( r o w , 1 , 0025600 0 , 2 3 ) & O f f s e t L e g 0025620 a l ( c o l , 1 , $ a - $ a 0025640 , $ l - $ a ) d o \r r e s 0025660 u l t i s f a l s e \r \r B a s 0025700 i c P a t t e r n ( r o w / 2 , 0025720 c o l / 3 + c o l / 6 , p x 0025740 , p y ) \r @ p y = @ p y + 2 4 0025760 * 376 001 \0 # 351 ( r o w r e m 2 0026000 ) \r @ p x = @ p x + 3 6 + 3 6 * 0026020 ( c o l r e m 3 ) \r r e s u 0026040 l t i s t r u e 032 l 4 2 6 9 \ 0026060 f 1 \r ] \r \r a n d P i n 1 o f 0026100 8 ( r o w , c o l , p x , 0026120 p y ) = v a l o f \r [ 032 \ f 0026140 1 \r u n l e s s O f f s e t L 0026160 e g a l ( r o w , 1 , 0 , 0026200 1 1 ) & O f f s e t L e g a l ( 0026220 c o l , 1 , $ a - $ a , $ 0026240 l - $ a ) d o \r r e s u l t 0026260 i s f a l s e \r \r B a s i c P 0026300 a t t e r n ( r o w , c o l / 0026320 3 + c o l / 6 , p x , p y ) 0026340 \r @ p y = @ p y + 1 8 \r @ p x = 0026360 @ p x + 3 6 376 001 \0 372 Q + 3 6 * ( 0026400 c o l r e m 3 ) \r r e s u l 0026420 t i s t r u e 032 l 4 2 6 9 \ f 0026440 1 \r ] \r \r a n d P i n 1 o f 2 0026460 4 ( r o w , c o l , p x , 0026500 p y ) = v a l o f \r [ 032 \ f 0026520 1 \r u n l e s s O f f s e t L 0026540 e g a l ( r o w , 1 , 0 , 0026560 1 1 ) & O f f s e t L e g a l ( 0026600 c o l , 1 , 0 , 7 ) d o 0026620 r e s u l t i s f a l s e \r 0026640 \r B a s i c P a t t e r n ( r o 0026660 w , c o l / 2 + c o l / 4 , 0026700 p x , p y ) \r @ p y = @ p y + 0026720 6 \r @ p x = @ p x + 5 2 + 5 6 * 0026740 ( c o l r e m 2 ) \r r e s u 0026760 l t i s t r u e 032 l 376 001 \0 366 H 0027000 4 2 6 9 \ f 1 \r ] \r 032 \ f 1 \r a 0027020 n d P i n 1 o f 5 0 ( r o w , 0027040 c o l , p x , p y ) = 0027060 P i n 1 o f 2 4 ( r o w , 2 * 0027100 c o l , p x , p y ) \r \r a n 0027120 d R e p e a t ( p p i n , p 0027140 i n s P e r B a s i c R e p e a 0027160 t , e x t r a P i n s P e r F 0027200 u l l R e p e a t , p x , p 0027220 y ) b e \r [ 032 \ f 1 \r l e t 0027240 p i n = @ p p i n - 1 \r l e 0027260 t p i n s P e r S i d e = 0027300 r e p e a t R o w s * \r ( ( r 0027320 e p e a t C o l s / 2 ) * p i n 0027340 s P e r B a s i c R e p e a t + 0027360 \r ( f u l l R e p e a t C o 0027400 376 001 \0 250 302 l s / 2 ) * e x t r a 0027420 P i n s P e r F u l l R e p e a 0027440 t ) \r l e t s i d e = p i 0027460 n / p i n s P e r S i d e \r p i 0027500 n = p i n r e m p i n s 0027520 P e r S i d e \r l e t p i n s 0027540 P e r F u l l C o l = r e p 0027560 e a t R o w s * ( p i n s P e r 0027600 B a s i c R e p e a t + e x t r 0027620 a P i n s P e r F u l l R e p e 0027640 a t ) \r l e t c o l = p i 0027660 n / p i n s P e r F u l l C o l 0027700 \r p i n = p i n r e m p 0027720 i n s P e r F u l l C o l \r l e 0027740 t p i n s P e r R e p e a t 0027760 = p i n s P e r B a s i c R e 0030000 p e a t + 376 001 \0 e 203 \r ( c o l 0030020 l s f u l l R e p e a t C o 0030040 l s / 2 ? e x t r a P i n s P 0030060 e r F u l l R e p e a t , 0 ) 0030100 \r l e t r o w = p i n / p 0030120 i n s P e r R e p e a t \r @ p p 0030140 i n = p i n r e m p i n 0030160 s P e r R e p e a t \r B a s i c 0030200 P a t t e r n ( r o w , 3 * s 0030220 i d e + c o l , p x , p y ) 0030240 032 l 4 2 6 9 \ f 1 \r ] \r \r a n d 0030260 B a s i c P a t t e r n ( r o 0030300 w , c o l , p x , p y ) 0030320 b e \r [ 032 \ f 1 \r @ p y = r 0030340 o w O f f s e t + r o w H e i g 0030360 h t * r o w \r @ p x = ( c 0030400 o l l s 3 ? l 376 \0 K [ ) e 0030420 f t C o l s O f f s e t , r i 0030440 g h t C o l s O f f s e t ) + \r 0030460 f u l l C o l W i d t h * ( c 0030500 o l r e m 3 ) 032 l 4 2 6 9 \ 0030520 f 1 \r ] \r 032 \ f 1 \r 377 \0 \0 r o u 0030540 t e m w l b 2 . b c p l \0 373 225 247 0030560 220 222 \0 \0 376 001 \0 335 g / / r o u t e 0030600 m w l b 2 . b c p l \r \r / / B 0030620 o a r d - s p e c i f i c R o 0030640 u t e r o u t i n e s f o r 0030660 t h e M u l t i - W i r e 0030700 v e r s i o n o f t h e \r / 0030720 / D o r a d o M a i n L o 0030740 g i c B o a r d \r \r / / p a 0030760 r t 2 o f 2 \r \r / / l a 0031000 s t m o d i f i e d b y E 0031020 . M c C r e i g h t , J u l 0031040 y 2 4 , 1 9 8 0 5 : 4 1 0031060 P M \r / / \t \t t o f i x m 0031100 u l t i w i r e - f o r m a t 0031120 s t i t c h w e l d b o a r d 0031140 c o n n e c t o r m i s a l 0031160 i g n m e n t \r \r 376 001 \0 356 234 / / 0031200 a l l c o - o r d i n a t e 0031220 s a r e d e s c r i b e d 0031240 w i t h r e s p e c t t o 0031260 t h e b o t t o m o r \r / / 0031300 w i r i n g s i d e o f 0031320 t h e b o a r d . L e v e l 0031340 T r a n s f o r m f i x e s 0031360 t h e s e a s n e c e s s a 0031400 r y . \r \r g e t " r o u t e . 0031420 d e f s " \r \r m a n i f e s t \r 0031440 [ 032 ( 6 3 5 ) \ f 1 \r r e p e a 0031460 t R o w s = 1 2 \r r e p e a 0031500 t C o l s P e r S i d e = 3 0031520 \r r e p e a t C o l s = 2 * 0031540 r e p e a t C o l s P e r S i d 0031560 e \r f u l l R e p e a t C o 376 001 0031600 \0 246 304 l s P e r S i d e = 2 0031620 \r f u l l R e p e a t C o l s 0031640 = 2 * f u l l R e p e a t C o 0031660 l s P e r S i d e \r r e p e a t 0031700 s = r e p e a t R o w s * r 0031720 e p e a t C o l s \r f u l l R e 0031740 p e a t s = r e p e a t R o 0031760 w s * f u l l R e p e a t C o l 0032000 s \r r o w O f f s e t = 1 6 0032020 \r l e f t C o l s O f f s e t 0032040 = 0 \r r i g h t C o l s O f f 0032060 s e t = 2 4 6 \r r o w H e i 0032100 g h t = 4 2 \r f u l l C o l 0032120 W i d t h = 1 1 2 \r p a t t 0032140 e r n G r o u n d s = 3 * r 0032160 e p e a t s + 6 * f u l l R e p 0032200 e a t 376 001 \0 u 230 s \r S o c k e t 0032220 s 1 6 p i n = 6 * f u l l R 0032240 e p e a t s \r S o c k e t s 2 4 0032260 p i n = 2 * f u l l R e p e 0032300 a t s \r S o c k e t s 5 0 p i n 0032320 = f u l l R e p e a t s \r S 0032340 o c k e t s S i p = 3 * f u 0032360 l l R e p e a t s 032 l 4 2 6 9 \ 0032400 f 1 \r ] \r \r s t a t i c [ b 0032420 o a r d I n t e r f a c e V e r 0032440 s i o n = i n t e r f a c e 0032460 V e r s i o n ] \r \r l e t F 0032500 i n d I n d e x F r o m C o o r 0032520 d ( x , y , p i c c l a s s 0032540 , p P i n N o ; n u m a r g 0032560 s n a ) = v a l o f \r [ 032 0032600 \ f 1 \r s t a t 376 001 \0 213 v i c 0032620 [ h o t I n d e x = - 1 ; 0032640 f i r s t U n u s e d P i n 0032660 = 0 ] \r \r D e f a u l t A r 0032700 g s ( l v n a , - 2 , l v 0032720 n a , l v n a ) \r \r i f 0032740 f i r s t U n u s e d P i n e 0032760 q 0 t h e n f i r s t U n 0033000 u s e d P i n = F I F C ( - 0033020 1 , - 1 ) \r l e t r e s u l t 0033040 = F I F C ( x , y , p i 0033060 c c l a s s , p P i n N o ) \r 0033100 i f r e s u l t l s 0 % 0033120 r e s u l t g r f i r s t 0033140 U n u s e d P i n t h e n C 0033160 a l l S w a t ( " I l l e g a l 0033200 i n d e x . . " ) \r i f 376 001 \0 0033220 k 350 r e s u l t e q h o t 0033240 I n d e x t h e n C a l l S 0033260 w a t ( " H o t i n d e x c 0033300 o m p u t e d . . . " ) \r r e s 0033320 u l t i s r e s u l t 032 l 4 2 0033340 6 9 \ f 1 \r ] \r \r a n d F I F 0033360 C ( x , y , p i c c l a s s 0033400 , p P i n N o ; n u m a r g 0033420 s n a ) = v a l o f \r [ 032 0033440 \ f 1 \r m a n i f e s t \r [ 032 l 0033460 4 2 6 9 \ f 1 \r f i r s t E P i 0033500 n = 1 \r f i r s t S o c k e 0033520 t G r o u n d = f i r s t E 0033540 P i n + 9 2 + 9 2 \r f i r s t P 0033560 a t t e r n P i n = f i r s 0033600 t S o c k e t G r o u n d + 9 2 0033620 + 9 376 001 \0 241 374 2 \r f i r s t U n 0033640 u s e d P i n = f i r s t P 0033660 a t t e r n P i n + r e p e a t 0033700 R o w s * ( f u l l R e p e a t 0033720 C o l s * 7 * 2 6 + \r r e p e 0033740 a t C o l s * 5 * 2 ) 032 l 5 5 3 0033760 9 \ f 1 \r ] \r \r i f x e q 0034000 - 1 & y e q - 1 t h e 0034020 n r e s u l t i s f i r s t 0034040 U n u s e d P i n \r \r D e f a u 0034060 l t A r g s ( l v n a , - 2 0034100 , l v n a , l v n a ) \r 0034120 \r u n l e s s O f f s e t L e 0034140 g a l ( x , 1 , 0 , 4 7 6 0034160 ) & O f f s e t L e g a l ( y , 0034200 1 , 0 , 5 2 4 ) d o r 0034220 e s u l t i s 376 001 \0 f 210 0 \r \r 0034240 i f y e q 0 % y e q 0034260 5 2 4 t h e n / / . . c 0034300 o n n e c t o r s i g n a l 0034320 p i n \r [ 032 l 4 2 6 9 \ f 1 \r l 0034340 e t c o n n C l a s s = ( 0034360 x - 2 2 ) r e m 1 0 \r i f 0034400 ( c o n n C l a s s n e 0 ) 0034420 & ( c o n n C l a s s n e 0034440 4 ) t h e n r e s u l t i 0034460 s 0 \r l e t v p i n = 2 0034500 * ( ( x - 2 2 ) / 1 0 ) + ( c o 0034520 n n C l a s s / 4 ) \r u n l e s 0034540 s O f f s e t L e g a l ( v p 0034560 i n , 1 , 0 , 9 1 ) d o 0034600 r e s u l t i s 0 \r r e s u 0034620 l t i s v p i n + 9 2 376 001 \0 315 0034640 R * ( y / 5 2 4 ) + f i r s t E 0034660 P i n 032 l 5 5 3 9 \ f 1 \r ] \r \r 0034700 i f y e q 4 % y e q 0034720 5 2 0 t h e n / / . . c 0034740 o n n e c t o r g r o u n d 0034760 p i n \r [ 032 l 4 2 6 9 \ f 1 \r l 0035000 e t c o n n C l a s s = ( 0035020 x - 2 2 ) r e m 1 0 \r i f 0035040 ( c o n n C l a s s n e 0 ) 0035060 & ( c o n n C l a s s n e 0035100 4 ) t h e n r e s u l t i 0035120 s 0 \r l e t v p i n = 2 0035140 * ( ( x - 2 2 ) / 1 0 ) + ( c o 0035160 n n C l a s s / 4 ) \r u n l e s 0035200 s O f f s e t L e g a l ( v p 0035220 i n , 1 , 0 , 9 1 ) d o 0035240 376 001 \0 [ 302 r e s u l t i s 0 0035260 \r l e t c g p = v p i n + 0035300 9 2 * ( y / 5 2 0 ) \r @ p i c c 0035320 l a s s = M u s t F i n d N 0035340 a m e e ( " G N D " , t y p e 0035360 I c c l a s s ) \r @ p P i n N o 0035400 = p a t t e r n G r o u n d 0035420 s + 1 + c g p \r r e s u l t i s 0035440 c g p + f i r s t S o c k e t 0035460 G r o u n d 032 l 5 5 3 9 \ f 1 \r 0035500 ] \r \r l e t s i d e = 0 \r 0035520 i f x g e r i g h t C o l 0035540 s O f f s e t t h e n \r [ 032 l 0035560 4 2 6 9 \ f 1 \r s i d e = 1 0035600 \r x = x - ( r i g h t C o l 0035620 s O f f s e t - l e f t C o l s 0035640 O f f s e t 376 001 \0 \n 274 ) 032 l 5 5 0035660 3 9 \ f 1 \r ] \r l e t x O f f 0035700 s e t = x - l e f t C o l s 0035720 O f f s e t \r u n l e s s O f 0035740 f s e t L e g a l ( x O f f s e 0035760 t , 4 , 0 , 5 7 ) d o 0036000 r e s u l t i s 0 \r l e t x 0036020 R e p e a t = r e p e a t C 0036040 o l s P e r S i d e * s i d e + 0036060 ( x O f f s e t / f u l l C o l 0036100 W i d t h ) \r x O f f s e t = 0036120 x O f f s e t r e m f u l 0036140 l C o l W i d t h \r u n l e s s 0036160 O f f s e t L e g a l ( x O f 0036200 f s e t , 4 , 0 , 2 7 ) 0036220 d o r e s u l t i s 0 \r l e 0036240 t y O f f s e t = 376 001 \0 365 g 0036260 y - r o w O f f s e t \r l e t 0036300 y R e p e a t = y O f f s 0036320 e t / r o w H e i g h t \r y O f 0036340 f s e t = y O f f s e t r 0036360 e m r o w H e i g h t \r u n l 0036400 e s s O f f s e t L e g a l ( 0036420 y R e p e a t , 1 , 0 , 1 0036440 1 ) & O f f s e t L e g a l ( y 0036460 O f f s e t , 6 , 0 , 6 ) 0036500 d o \r r e s u l t i s 0 \r 0036520 \r l e t p i n I n G r o u p 0036540 = 1 \r l e t p r e v G r o u 0036560 p s = r e p e a t R o w s * 0036600 x R e p e a t + y R e p e a t \r 0036620 l e t p r e v F u l l G r o u 0036640 p s = r e p e a t R o w s * 0036660 376 001 \0 " 320 ( x R e p e a t - ( x 0036700 R e p e a t / r e p e a t C o l 0036720 s P e r S i d e ) ) + \r ( x R 0036740 e p e a t r e m r e p e a t 0036760 C o l s P e r S i d e n e f 0037000 u l l R e p e a t C o l s P e r 0037020 S i d e ? y R e p e a t , 0 0037040 ) \r \r s w i t c h o n y O f f 0037060 s e t i n t o \r [ 032 l 4 2 6 9 0037100 \ f 1 \r c a s e 0 : 032 l 5 5 3 0037120 9 \ f 1 \r s w i t c h o n x O 0037140 f f s e t i n t o \r [ 032 l 6 8 0037160 0 9 \ f 1 \r c a s e 8 0 : p 0037200 i n I n G r o u p = p i n I 0037220 n G r o u p + 2 \r c a s e 4 4 0037240 : p i n I n G r o u p = p 0037260 i n I n G 376 001 \0 I 001 r o u p + 2 0037300 \r c a s e 4 : 032 l 8 0 7 9 \ f 0037320 1 \r @ p i c c l a s s = M u 0037340 s t F i n d N a m e e ( " V E E 0037360 " , t y p e I c c l a s s ) \r 0037400 @ p P i n N o = 2 * p r e v 0037420 G r o u p s + 4 * p r e v F u l 0037440 l G r o u p s + \r p i n I n G 0037460 r o u p \r e n d c a s e 032 l 9 3 0037500 4 9 \ f 1 \r \r c a s e 7 6 : 0037520 p i n I n G r o u p = p i n 0037540 I n G r o u p + 3 \r c a s e 4 0037560 0 : 032 l 8 0 7 9 \ f 1 \r p i n I 0037600 n G r o u p = p i n I n G r 0037620 o u p + 3 \r @ p i c c l a s s 0037640 = M u s t F i n d N a m e e ( 0037660 " G N D " , t y p 376 001 \0 023 030 e 0037700 I c c l a s s ) \r @ p P i n N o 0037720 = 3 * p r e v G r o u p s + 0037740 6 * p r e v F u l l G r o u p s 0037760 + \r p i n I n G r o u p \r e n 0040000 d c a s e \r 032 l 9 3 4 9 \ f 1 \r 0040020 d e f a u l t : 032 l 8 0 7 9 \ f 0040040 1 \r ] \r e n d c a s e 032 l 6 8 0 0040060 9 \ f 1 \r \r c a s e 6 : \r c a 0040100 s e 3 0 : 032 l 5 5 3 9 \ f 1 \r 0040120 i f x O f f s e t l s 8 0040140 t h e n r e s u l t i s 0 \r 0040160 e n d c a s e 032 l 6 8 0 9 \ f 1 0040200 \r \r c a s e 1 2 : 032 l 5 5 3 9 0040220 \ f 1 \r s w i t c h o n x O f 0040240 f s e t i n t o \r [ 032 l 6 8 0 0040260 9 \ f 1 \r c a s e 7 6 : p 376 0040300 001 \0 031 357 i n I n G r o u p = 0040320 p i n I n G r o u p + 2 \r c a s 0040340 e 7 2 : p i n I n G r o u p 0040360 = p i n I n G r o u p + 1 \r 0040400 c a s e 4 0 : p i n I n G r 0040420 o u p = p i n I n G r o u p 0040440 + 4 \r c a s e 0 : 032 l 8 0 7 9 0040460 \ f 1 \r @ p i c c l a s s = 0040500 M u s t F i n d N a m e e ( " G 0040520 N D " , t y p e I c c l a s s 0040540 ) \r @ p P i n N o = 3 * p r 0040560 e v G r o u p s + 6 * p r e v F 0040600 u l l G r o u p s + \r p i n I 0040620 n G r o u p \r e n d c a s e \r 032 0040640 l 9 3 4 9 \ f 1 \r d e f a u l t 0040660 : 032 l 8 0 7 9 \ f 1 \r ] \r e n d 0040700 c a s e 376 001 \0 u 311 032 l 6 8 0 9 \ 0040720 f 1 \r \r c a s e 1 8 : 032 l 5 5 0040740 3 9 \ f 1 \r s w i t c h o n x 0040760 O f f s e t i n t o \r [ 032 l 6 0041000 8 0 9 \ f 1 \r c a s e 4 : 032 l 0041020 8 0 7 9 \ f 1 \r @ p i c c l a s 0041040 s = M u s t F i n d N a m e 0041060 e ( " V D D " , t y p e I c c 0041100 l a s s ) \r @ p P i n N o = 0041120 p r e v G r o u p s + p i n I n 0041140 G r o u p \r e n d c a s e 032 l 9 0041160 3 4 9 \ f 1 \r \r c a s e 1 0 8 0041200 : 032 l 8 0 7 9 \ f 1 \r p i n I n 0041220 G r o u p = p i n I n G r o 0041240 u p + 2 \r @ p i c c l a s s = 0041260 M u s t F i n d N a m e e ( " 0041300 V T T " , t y p 376 001 \0 \b 177 e I 0041320 c c l a s s ) \r @ p P i n N o 0041340 = 3 * p r e v F u l l G r o u 0041360 p s + p i n I n G r o u p \r e n 0041400 d c a s e \r 032 l 9 3 4 9 \ f 1 \r 0041420 d e f a u l t : 032 l 8 0 7 9 \ f 0041440 1 \r ] \r e n d c a s e 032 l 6 8 0 0041460 9 \ f 1 \r \r c a s e 2 4 : 032 l 0041500 5 5 3 9 \ f 1 \r s w i t c h o n 0041520 x O f f s e t i n t o \r [ 032 0041540 l 6 8 0 9 \ f 1 \r c a s e 0 : 0041560 032 l 8 0 7 9 \ f 1 \r p i n I n G 0041600 r o u p = p i n I n G r o u 0041620 p + 1 \r @ p i c c l a s s = 0041640 M u s t F i n d N a m e e ( " G 0041660 N D " , t y p e I c c l a s s 0041700 ) \r @ p P i n N o = 3 * 376 001 0041720 \0 333 023 p r e v G r o u p s + 6 * 0041740 p r e v F u l l G r o u p s + \r 0041760 p i n I n G r o u p \r e n d c 0042000 a s e 032 l 9 3 4 9 \ f 1 \r \r c a 0042020 s e 8 0 : p i n I n G r o u 0042040 p = p i n I n G r o u p + 2 0042060 \r c a s e 4 4 : p i n I n G 0042100 r o u p = p i n I n G r o u 0042120 p + 2 \r c a s e 4 : 032 l 8 0 7 0042140 9 \ f 1 \r p i n I n G r o u p 0042160 = p i n I n G r o u p + 1 \r @ 0042200 p i c c l a s s = M u s t F 0042220 i n d N a m e e ( " V E E " , 0042240 t y p e I c c l a s s ) \r @ p P 0042260 i n N o = 2 * p r e v G r o 0042300 u p s + 4 * p r e v F u l l G r 0042320 o u p 376 001 \0 | 360 s + \r p i n I 0042340 n G r o u p \r e n d c a s e 032 l 0042360 9 3 4 9 \ f 1 \r \r c a s e 7 6 0042400 : p i n I n G r o u p = p 0042420 i n I n G r o u p + 1 \r c a s e 0042440 4 0 : 032 l 8 0 7 9 \ f 1 \r @ p 0042460 i c c l a s s = M u s t F i 0042500 n d N a m e e ( " V T T " , t 0042520 y p e I c c l a s s ) \r @ p P i 0042540 n N o = 3 * p r e v F u l l 0042560 G r o u p s + p i n I n G r o u 0042600 p \r e n d c a s e \r 032 l 9 3 4 9 0042620 \ f 1 \r d e f a u l t : 032 l 8 0 0042640 7 9 \ f 1 \r ] \r e n d c a s e 032 0042660 l 6 8 0 9 \ f 1 \r \r c a s e 3 0042700 6 : 032 l 5 5 3 9 \ f 1 \r s w i t 0042720 c h o n x O f 376 001 \0 343 O f s e 0042740 t i n t o \r [ 032 l 6 8 0 9 \ f 0042760 1 \r c a s e 0 : 032 l 8 0 7 9 \ 0043000 f 1 \r @ p i c c l a s s = M 0043020 u s t F i n d N a m e e ( " V C 0043040 C " , t y p e I c c l a s s ) 0043060 \r @ p P i n N o = p r e v G 0043100 r o u p s + p i n I n G r o u p 0043120 \r e n d c a s e 032 l 9 3 4 9 \ f 0043140 1 \r \r c a s e 1 0 8 : p i n 0043160 I n G r o u p = p i n I n G 0043200 r o u p + 6 \r c a s e 4 : 032 l 0043220 8 0 7 9 \ f 1 \r p i n I n G r o 0043240 u p = p i n I n G r o u p + 0043260 2 \r @ p i c c l a s s = M u 0043300 s t F i n d N a m e e ( " G N D 0043320 " , t y p e I c c l a s 376 001 \0 0043340 \v J s ) \r @ p P i n N o = 3 0043360 * p r e v G r o u p s + 6 * p r 0043400 e v F u l l G r o u p s + \r p 0043420 i n I n G r o u p \r e n d c a s 0043440 e \r 032 l 9 3 4 9 \ f 1 \r d e f a 0043460 u l t : 032 l 8 0 7 9 \ f 1 \r ] \r 0043500 e n d c a s e 032 l 6 8 0 9 \ f 1 0043520 \r \r d e f a u l t : r e s u l 0043540 t i s 0 032 l 5 5 3 9 \ f 1 \r ] 0043560 \r \r l e t c o l B a s e = 0043600 ( x R e p e a t / 3 ) * r e p e 0043620 a t R o w s * ( ( f u l l R e p 0043640 e a t C o l s / 2 ) * 7 * 2 6 + 0043660 \r ( r e p e a t C o l s / 2 ) 0043700 * 5 * 2 ) + ( x R e p e a t r 0043720 e m 3 ) * r e p e a t R o w s 0043740 * ( 376 001 \0 324 347 7 * 2 6 + 5 * 2 ) 0043760 \r l e t r o w B a s e = y 0044000 R e p e a t * ( ( x R e p e a t 0044020 r e m 3 e q 2 ) ? 5 * 0044040 2 , 7 * 2 6 + 5 * 2 ) \r \r r e 0044060 s u l t i s f i r s t P a t t 0044100 e r n P i n + c o l B a s e + r 0044120 o w B a s e + ( x O f f s e t / 0044140 4 ) + \r ( x R e p e a t r e 0044160 m 3 l s 2 ? \r s e l e 0044200 c t o n y O f f s e t i n t 0044220 o \r [ 032 l 4 2 6 9 \ f 1 \r c a s 0044240 e 0 : 0 \r c a s e 6 : 2 0044260 8 - 2 \r c a s e 1 2 : 2 8 + 0044300 2 6 \r c a s e 1 8 : 2 8 + 2 0044320 6 + 2 8 \r c a s e 2 4 : 2 8 0044340 + 2 6 + 2 8 + 376 \0 345 244 333 2 8 \r c 0044360 a s e 3 0 : 2 8 + 2 6 + 2 8 0044400 + 2 8 + 2 8 - 2 \r c a s e 3 6 0044420 : 2 8 + 2 6 + 2 8 + 2 8 + 2 8 0044440 + 2 6 032 l 5 5 3 9 \ f 1 \r ] , \r 0044460 s e l e c t o n y O f f s 0044500 e t i n t o \r [ 032 l 4 2 6 9 \ 0044520 f 1 \r c a s e 0 : 0 \r c a s 0044540 e 6 : 2 - 2 \r c a s e 1 2 0044560 : 2 \r c a s e 1 8 : 2 + 2 0044600 \r c a s e 2 4 : 2 + 2 + 2 \r 0044620 c a s e 3 0 : 2 + 2 + 2 + 2 0044640 - 2 \r c a s e 3 6 : 2 + 2 + 0044660 2 + 2 032 l 5 5 3 9 \ f 1 \r ] \r ) 0044700 032 l 4 2 6 9 \ f 1 \r ] \r 032 \ f 1 0044720 \r 377 \0 \0 r o u t e m w l b h o l 0044740 e s . b c p l \0 373 223 b 004 351 \0 \0 376 0044760 001 \0 \r k / / r o u t e m w l b h 0045000 o l e s . b c p l \r \r / / B o 0045020 a r d - s p e c i f i c R o u 0045040 t e e x t r a - h o l e r o 0045060 u t i n e s f o r t h e M 0045100 u l t i - W i r e v e r s i o 0045120 n o f t h e \r / / D o r a 0045140 d o M a i n L o g i c B o 0045160 a r d \r \r / / l a s t m o d 0045200 i f i e d b y E . M c C r 0045220 e i g h t , M a y 1 0 , 1 0045240 9 7 9 9 : 3 3 P M \r / / 0045260 t o c o r r e c t V D D / 0045300 V T T b u s b a r w i r i 0045320 n g r e v e r s a l \r \r g e t 0045340 " r o u t e . d e f s " \r \r e 0045360 x t e r 376 001 \0 6 307 n a l [ P 0045400 i n 1 o f 1 6 ] \r \r s t a t i 0045420 c [ b o a r d I n t e r f a 0045440 c e V e r s i o n = i n t e 0045460 r f a c e V e r s i o n ] \r \r 0045500 \r l e t C o m p u t e M W C o 0045520 o r d s ( p x , p y , i s M 0045540 i l s ) b e \r [ 032 ( 6 3 5 ) \ 0045560 f 1 \r u n l e s s i s M i l s 0045600 d o \r [ 032 l 4 2 6 9 \ f 1 \r @ 0045620 p x = 2 5 * @ p x \r @ p y 0045640 = 2 5 * @ p y 032 l 5 5 3 9 \ f 0045660 1 \r ] \r \r / / T h e b o a r 0045700 d , \r / / v i e w e d i n 0045720 s t a n d a r d o r i e n t a 0045740 t i o n w i t h a 0 1 a t 0045760 t o p l e f t 376 001 \0 322 275 a 0046000 n d l 0 1 a t t o p \r / / 0046020 r i g h t , i s d e s c r 0046040 i b e d w i t h y i n c r 0046060 e a s i n g u p w a r d a n 0046100 d x i n c r e a s i n g \r / 0046120 / t o t h e r i g h t a 0046140 n d t h e 0 , 0 o r i g i 0046160 n a t b o t t o m l e f t 0046200 o f f t h e b o a r d . 0046220 \r \r @ p x = 1 1 0 0 + @ p x 0046240 \t / / o f f s e t t h e x 0046260 c o - o r d i n a t e b y 0046300 1 . 1 i n c h e s \r @ p y = 0046320 1 4 4 0 0 - @ p y \t / / r e 0046340 v e r s e t h e y c o - o 0046360 r d i n a t e a n d o f 376 001 0046400 \0 231 ! f s e t 1 4 . 4 i n c 0046420 h e s \r \r / / L o c a t i o 0046440 n a 0 1 p i n 1 i s n 0046460 o w a t x = 2 0 0 0 , y = 0046500 1 4 0 0 0 \r \r @ p x = @ p x 0046520 + 2 5 - ( ( @ p x + 2 5 ) r e 0046540 m 5 0 ) / / r o u n d t 0046560 o n e a r e s t o n - g r i 0046600 d p o i n t \r @ p y = @ p 0046620 y + 2 5 - ( ( @ p y + 2 5 ) r 0046640 e m 5 0 ) 032 l 4 2 6 9 \ f 1 0046660 \r ] \r \r a n d D e s c r i b e 0046700 H o l e s ( P r i n t A H o l e 0046720 ) b e \r [ 032 \ f 1 \r m a n i f 0046740 e s t [ p l a t e d = t 0046760 r u e ; u n p l a t e d = 0047000 n o t 376 001 \0 250 204 p l a t e d 0047020 ] \r m a n i f e s t \r [ 032 l 4 2 0047040 6 9 \ f 1 \r s o c k e t H o l e 0047060 S i z e = 4 1 / / m i l 0047100 s , a f t e r p l a t i n g 0047120 & s o l d e r c o a t \r s 0047140 c r e w H o l e S i z e = 1 0047160 4 4 / / m i l s , u n p l 0047200 a t e d 032 l 5 5 3 9 \ f 1 \r ] \r 0047220 m a n i f e s t [ l e f t B 0047240 u s B a r C e n t e r x = - 0047260 1 4 ; r i g h t B u s B a r C 0047300 e n t e r x = 4 8 8 ] \r \r 0047320 l e t x , y = n i l , n i 0047340 l \r \r f o r x = 0 t o 5 9 0047360 9 d o f o r y = 0 t o 0047400 5 9 9 d o i 376 001 \0 \f 222 f F 0047420 i n d I n d e x F r o m C o o r 0047440 d ( x , y ) n e 0 t h e n 0047460 \r [ 032 l 4 2 6 9 \ f 1 \r l e t 0047500 c l a s s , p i n = e m p t 0047520 y , 0 \r F i n d I n d e x F r o 0047540 m C o o r d ( x , y , l v 0047560 c l a s s , l v p i n ) \r P 0047600 r i n t A H o l e ( x , y , 0047620 s o c k e t H o l e S i z e , 0047640 p l a t e d , f a l s e , c 0047660 l a s s n e e m p t y ) 032 l 0047700 5 5 3 9 \ f 1 \r ] \r \r f o r r 0047720 o w = 0 t o 1 1 d o \r P 0047740 r i n t A H o l e ( r i g h t B 0047760 u s B a r C e n t e r x - 1 0 , 0050000 2 8 + 4 2 * r o w , s 376 001 \0 0050020 ] 237 o c k e t H o l e S i z e , 0050040 p l a t e d , f a l s e , 0050060 t r u e ) \r / / V D D s t 0050100 r i p f e e d - t h r u h o 0050120 l e s \r \r f o r r o w = 0 t 0050140 o 1 1 d o \r P r i n t A H 0050160 o l e ( l e f t B u s B a r C e 0050200 n t e r x + 1 0 , 3 4 + 4 2 * 0050220 r o w , s o c k e t H o l e S 0050240 i z e , p l a t e d , f a l 0050260 s e , t r u e ) \r / / V T 0050300 T s t r i p f e e d - t h r 0050320 u h o l e s \r \r f o r x = l 0050340 e f t B u s B a r C e n t e r x 0050360 t o r i g h t B u s B a r C 0050400 e n t e r x b y ( r i g h t 0050420 B u 376 001 \0 025 374 s B a r C e n t e 0050440 r x - l e f t B u s B a r C e n 0050460 t e r x ) d o \r [ 032 l 4 2 6 9 0050500 \ f 1 \r f o r r o w = 0 t o 0050520 1 d o f o r h o l e = 0050540 0 t o 1 d o \r P r i n 0050560 t A H o l e ( x - 2 + h o l e * 0050600 4 , r o w * 5 2 4 , s o c k 0050620 e t H o l e S i z e , p l a t 0050640 e d , f a l s e , t r u e ) 0050660 \r / / p o w e r b u s f 0050700 e e d - t h r u h o l e s \r \r 0050720 f o r r o w = 0 t o 2 d 0050740 o \r P r i n t A H o l e ( x , 0050760 1 6 + r o w * 2 4 6 , s c r 0051000 e w H o l e S i z e , u n p l 0051020 a t e d , f 376 \0 D 207 327 a l s e 0051040 , t r u e ) \r / / b u s 0051060 b a r m o u n t i n g s c r 0051100 e w s 032 l 5 5 3 9 \ f 1 \r ] 032 l 0051120 4 2 6 9 \ f 1 \r ] \r \r 032 \ f 1 \r 0051140 374 0051141