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