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