$ od -c -N 50000 [_CDCSL_93-16_]<1>Cedar>release>SchemeLib>Miscellaneous.$cheme 0000000 # 001 006 002 003 n o t 001 x 021 020 I n t 0000020 e r p r e t e d C o d e 022 \0 017 0000040 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0000060 \a \0 022 001 \a 001 017 024 024 \0 003 037 \n \0 001 0000100 \0 022 \b 024 * 025 * 017 016 021 003 ( x ) \0 0000120 \a \0 021 002 ( ) \0 \n # 001 006 001 003 n i l 0000140 021 020 I n t e r p r e t e d C 0000160 o d e 022 \0 017 023 023 001 \a \0 003 037 \a \0 001 0000200 024 $ \0 025 * 017 \a \0 021 002 ( ) \0 \n # 001 0000220 006 001 001 t 021 020 I n t e r p r e t 0000240 e d C o d e 022 \0 017 023 023 001 \a \0 003 0000260 037 \a \0 001 024 $ \0 025 * 016 \a \0 021 002 ( ) 0000300 \0 \n # 001 006 \t \r v e c t o r - e q 0000320 u a l ? \n v e c t o r - r e f 001 0000340 + 006 e q u a l ? 001 = 003 e n d 005 s 0000360 t a r t 001 y 001 x 021 020 I n t e r 0000400 p r e t e d C o d e 022 \0 017 023 023 0000420 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * \a 0000440 \0 022 004 \a \b \a \a \a 006 \a 005 017 027 004 027 004 0000460 004 006 \a 004 \a 003 \a 001 \a 001 \a \0 \a 002 004 004 0000500 037 . \0 006 032 002 003 004 022 \f 024 * 033 034 0000520 \0 002 004 035 001 002 004 004 022 , 036 004 0000540 \0 001 036 005 002 025 004 003 \f 004 026 * 0000560 016 024 017 021 017 ( x y s t a r t 0000600 e n d ) \0 \a \0 021 002 ( ) \0 \n # 001 006 0000620 \r 006 e q u a l ? \r v e c t o r - 0000640 l e n g t h \a s t r i n g ? \a v 0000660 e c t o r ? 003 c d r 003 c a r 005 p 0000700 a i r ? 004 e q v ? 001 y 001 x 001 = \b 0000720 s t r i n g = ? \r v e c t o r - 0000740 e q u a l ? 021 020 I n t e r p r 0000760 e t e d C o d e 022 \0 017 023 023 001 \a 0001000 \0 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 0001020 002 \a \t \a \b 017 027 002 027 002 004 023 \a \a \a 006 0001040 \a 006 \a \0 \a 005 \a 005 \a \0 \a 004 \a 004 \a 003 0001060 \a 003 \a \n \a 001 \a 001 \a \f \a 001 \a 002 \a 002 0001100 \a \v 004 \t 037 201 003 \0 006 032 \0 001 004 022 0001120 \f 024 * 033 \0 003 022 7 034 001 003 022 5 035 0001140 036 004 \0 003 036 005 001 003 004 022 3 036 006 036 0001160 \a \0 003 036 \b 001 003 \n 025 * 026 * 036 \t 0001200 \0 003 022 h 036 \n 001 003 022 e 036 \v 036 \f 0001220 \0 003 036 \r 001 003 004 022 b 036 016 \0 0001240 001 027 036 017 \0 003 \f 004 030 005 * 030 006 * 036 0001260 020 \0 003 022 200 036 021 001 003 022 } 036 022 0001300 \0 001 \n 030 \a * 030 \b * 016 017 017 023 017 017 0001320 017 017 021 005 ( x y ) \0 \a \0 021 002 ( ) 0001340 \0 \n # 001 006 \t \r s t r i n g - a p 0001360 p e n d 003 c a r 005 n u l l ? \a s 0001400 t r i n g s 003 c d r 004 c d d r 004 0001420 c a d r 027 e s s e n t i a l - s 0001440 t r i n g - a p p e n d 005 a p p 0001460 l y 021 020 I n t e r p r e t e d 0001500 C o d e 022 \0 017 023 023 001 \a \0 003 037 \b 0001520 \0 001 ( 001 $ \0 025 * \a \0 022 001 \a 003 016 0001540 023 023 004 \n \a 002 \a 002 \a 004 \a 001 \a \b \a \0 0001560 \a \a \a 001 \a 006 \a 005 002 037 - \0 006 032 \0 0001600 003 022 \n 024 * 033 034 \0 003 003 022 026 035 \0 0001620 \t 036 004 036 005 036 006 036 \a \0 003 036 \b \0 0001640 003 004 036 \t \0 003 \v 021 \0 021 - s t r i 0001660 n g s A p p e n d a n a r 0001700 b i t r a r y n u m b e r o 0001720 f s t r i n g s \0 \a \0 021 002 ( ) 0001740 \0 \n # 001 006 003 016 n u m b e r - > s 0001760 t r i n g 006 f o r m a t 001 x 021 0002000 020 I n t e r p r e t e d C o d 0002020 e 022 \0 017 023 023 001 \a \0 003 037 \b \0 001 ( 001 0002040 $ \0 025 * \a \0 022 001 \a 002 017 024 024 001 \a 0002060 001 003 037 \b \0 004 032 024 025 \0 \v 017 021 002 ~ 0002100 S 021 003 ( x ) \0 \a \0 021 002 ( ) \0 \n # 0002120 001 006 003 006 v e c t o r \f l i s t - 0002140 > v e c t o r 001 x 021 020 I n t e 0002160 r p r e t e d C o d e 022 \0 017 023 0002200 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0002220 \a \0 022 001 \a 002 016 023 023 001 \a 001 001 037 006 \0 0002240 002 032 \0 \t 021 * x C r e a t e 0002260 a v e c t o r c o n t a i n 0002300 i n g t h e a r g u m e n t 0002320 s \0 \a \0 021 002 ( ) \0 \n # 001 006 \n \f v 0002340 e c t o r - f i l l ! 004 l o o p 0002360 \r v e c t o r - l e n g t h 003 l 0002400 e n 003 o b j 001 + \v v e c t o r - 0002420 s e t ! 001 < 001 i 001 v 021 020 I n t 0002440 e r p r e t e d C o d e 022 \0 017 0002460 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0002500 \a \0 022 004 \a \t \a 004 \a 003 \a 001 017 027 002 0002520 027 002 001 \a 002 004 004 037 026 \0 002 032 \0 003 & 0002540 \0 002 024 & \0 003 ( 002 & \0 003 003 026 \t 017 0002560 \a 001 022 001 \a \b 017 024 024 003 \a \a \a 006 \a 0002600 005 003 037 ! \0 004 032 \0 ! 001 002 004 022 037 033 0002620 ! 001 \0 \0 ! 001 001 005 # ! 001 003 034 \0 0002640 024 004 \t 025 * 024 036 021 003 ( i ) \0 023 021 036 0002660 ( v o b j ) F i l l v e c 0002700 t o r v w i t h o b j \0 \a 0002720 \0 021 002 ( ) \0 \n # 001 006 \n \f v e c t 0002740 o r - > l i s t 001 - 004 l o o p 006 0002760 r e s u l t \r v e c t o r - l e 0003000 n g t h \n v e c t o r - r e f 004 0003020 c o n s 001 < 001 i 001 v 021 020 I n t 0003040 e r p r e t e d C o d e 022 \0 017 0003060 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0003100 \a \0 022 003 \a \t \a 003 \a 002 017 024 024 002 \a 0003120 001 \a 004 004 005 037 031 \0 004 024 & \0 001 025 & \0 0003140 002 ( 003 & \0 002 002 032 033 \0 003 027 004 \t 0003160 \0 017 \a 002 022 001 \a \b 017 024 024 004 004 \a \a 0003200 \a 006 \a 005 \a 001 003 037 % \0 004 032 \0 024 004 0003220 022 \r ! 001 001 * 033 034 ! 001 \0 \0 004 ! 001 0003240 001 004 & 001 001 ! 001 002 035 \0 025 004 \t 023 024 0003260 021 003 ( i ) \0 024 021 003 ( v ) \0 \a \0 021 0003300 002 ( ) \0 \n # 001 006 \f 003 c d r 005 n u 0003320 l l ? 005 a p p l y 004 l o o p 017 e 0003340 s s e n t i a l - a p p l y 003 c 0003360 a r 004 t a i l \b s e t - c d r ! 0003400 004 r e s t 005 e r r o r 004 a r g s 0003420 004 p r o c 021 020 I n t e r p r e 0003440 t e d C o d e 022 \0 017 023 023 001 \a 002 0003460 003 037 \b \0 001 ( 001 $ \0 025 * \a 002 022 003 0003500 \a \v \a \n \a 003 016 024 024 004 \a \a 001 \a \t \a 0003520 001 \a \0 \a 004 \a 005 \a \0 004 004 037 0 \0 004 032 0003540 001 003 022 \v 033 024 \t 034 035 001 003 003 022 035 0003560 036 004 \0 036 005 001 003 \n 025 & \0 002 ( 003 0003600 & \0 002 002 001 036 006 001 003 \n 021 032 T 0003620 o o f e w a r g u m e n t s 0003640 t o A P P L Y 017 \a 003 022 002 \a 0003660 006 \a \b 017 027 002 027 002 004 \a \a 001 \a \0 \a \a 0003700 \a 005 \a 004 \a \0 \a \0 001 037 * \0 004 032 033 0003720 001 003 003 022 034 034 \0 035 001 003 004 # 036 004 0003740 ! 001 \0 ! 001 001 \n ! 001 002 036 005 \0 003 036 0003760 006 001 003 \n 021 \v ( t a i l r e s 0004000 t ) \0 021 V ( p r o c a r g 1 0004020 . . . a r g n ) A p p l y 0004040 P R O C t o A R G 1 . . . 0004060 A R G ( n - 1 ) a n d t h 0004100 e e l e m e n t s o f t h 0004120 e l i s t A R G n \0 \a 002 021 002 0004140 ( ) \0 \n # 001 006 002 005 f o r c e \a p 0004160 r o m i s e 021 020 I n t e r p r 0004200 e t e d C o d e 022 \0 017 023 023 001 \a 0004220 \0 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 0004240 001 \a 001 017 024 024 \0 001 037 005 \0 001 \0 \b 021 0004260 \t ( p r o m i s e ) \0 \a \0 021 002 ( 0004300 ) \0 \n # 001 006 002 004 h e a d 003 c a r 0004320 021 020 I n t e r p r e t e d C 0004340 o d e 022 \0 017 023 023 002 \a 001 \a \0 002 037 \a 0004360 \0 001 032 $ 001 024 * \a \0 021 002 ( ) \0 \n # 0004400 001 006 004 004 t a i l 003 f o o 003 c d r 0004420 005 f o r c e 021 020 I n t e r p r 0004440 e t e d C o d e 022 \0 017 023 023 001 \a 0004460 \0 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 0004500 001 \a 001 017 024 024 002 \a 003 \a 002 001 037 \b \0 003 0004520 032 033 \0 003 \t 021 + ( f o o ) f o 0004540 r s t r e a m s , a s i n 0004560 A b l e s o n & S u s s m 0004600 a n 2 \0 \a \0 021 002 ( ) \0 \n # 001 006 002 0004620 \r e m p t y - s t r e a m ? 005 n 0004640 u l l ? 021 020 I n t e r p r e t 0004660 e d C o d e 022 \0 017 023 023 002 \a 001 \a 0004700 \0 002 037 \a \0 001 032 $ 001 024 * \a \0 021 002 ( 0004720 ) \0 \n # 001 006 001 020 t h e - e m p t 0004740 y - s t r e a m 021 020 I n t e r 0004760 p r e t e d C o d e 022 \0 017 023 023 0005000 001 \a \0 003 037 \a \0 001 024 $ \0 025 * \0 \a \0 0005020 021 002 ( ) \0 \n # 001 006 \a 024 c a l l - 0005040 w i t h - i n p u t - f i l e 004 0005060 p r o c \t f i l e - n a m e 020 c 0005100 l o s e - i n p u t - p o r t 017 0005120 o p e n - i n p u t - f i l e 006 0005140 r e s u l t 004 p o r t 021 020 I n 0005160 t e r p r e t e d C o d e 022 \0 0005200 017 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 0005220 * \a \0 022 004 \a 002 \a 001 \a 006 \a 005 017 027 0005240 002 027 002 002 \a 004 \a 003 001 037 031 \0 002 032 \0 0005260 003 & \0 002 001 002 003 & \0 003 033 002 003 0005300 # 003 * 021 020 ( f i l e - n a m e 0005320 p r o c ) \0 \a \0 021 002 ( ) \0 \n # 0005340 001 006 \a 025 c a l l - w i t h - o u 0005360 t p u t - f i l e 004 p r o c \t f 0005400 i l e - n a m e 021 c l o s e - o 0005420 u t p u t - p o r t 020 o p e n - 0005440 o u t p u t - f i l e 006 r e s u 0005460 l t 004 p o r t 021 020 I n t e r p 0005500 r e t e d C o d e 022 \0 017 023 023 001 0005520 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 0005540 022 004 \a 002 \a 001 \a 006 \a 005 017 027 002 027 002 002 0005560 \a 004 \a 003 001 037 031 \0 002 032 \0 003 & \0 002 0005600 001 002 003 & \0 003 033 002 003 # 003 * 0005620 021 020 ( f i l e - n a m e p r o 0005640 c ) \0 \a \0 021 002 ( ) \0 \n # 001 006 \f 024 0005660 w i t h - i n p u t - f r o m - 0005700 f i l e 004 s w a p 006 r e s u l t 0005720 \f d y n a m i c - w i n d 017 o p 0005740 e n - i n p u t - f i l e 030 % s 0005760 e t - c u r r e n t - i n p u t 0006000 - p o r t ! 022 c u r r e n t - i 0006020 n p u t - p o r t 003 o l d 020 c l 0006040 o s e - i n p u t - p o r t \t f 0006060 i l e - n a m e 004 p o r t 005 t h 0006100 u n k 021 020 I n t e r p r e t e 0006120 d C o d e 022 \0 017 023 023 001 \a \0 003 037 0006140 \b \0 001 ( 001 $ \0 025 * \a \0 022 005 \a \t 0006160 \a \v \a \n \a 001 \a 002 017 027 002 027 002 003 \a 004 0006200 \a 003 \a \b 003 037 % \0 004 032 \0 003 & \0 002 0006220 024 & \0 003 ( 002 & \0 003 033 003 001 003 0006240 005 & \0 004 034 002 003 # 004 * 017 \a 001 0006260 022 001 \a \a 017 023 023 002 \a 006 \a 005 003 037 030 \0 0006300 002 024 & \0 \0 032 002 & \0 \0 033 ! 001 002 003 # 0006320 \0 & 001 002 025 * 017 036 021 002 ( ) \0 021 021 0006340 ( f i l e - n a m e t h u n k 0006360 ) \0 \a \0 021 002 ( ) \0 \n # 001 006 \f 023 w 0006400 i t h - o u t p u t - t o - f i 0006420 l e 004 s w a p 006 r e s u l t \f d 0006440 y n a m i c - w i n d 020 o p e n 0006460 - o u t p u t - f i l e 031 % s e 0006500 t - c u r r e n t - o u t p u t 0006520 - p o r t ! 023 c u r r e n t - o 0006540 u t p u t - p o r t 003 o l d 021 c 0006560 l o s e - o u t p u t - p o r t 0006600 \t f i l e - n a m e 004 p o r t 005 0006620 t h u n k 021 020 I n t e r p r e 0006640 t e d C o d e 022 \0 017 023 023 001 \a \0 0006660 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 005 0006700 \a \t \a \v \a \n \a 001 \a 002 017 027 002 027 002 003 0006720 \a 004 \a 003 \a \b 003 037 % \0 004 032 \0 003 & 0006740 \0 002 024 & \0 003 ( 002 & \0 003 033 003 001 0006760 003 005 & \0 004 034 002 003 # 004 * 017 0007000 \a 001 022 001 \a \a 017 023 023 002 \a 006 \a 005 003 037 0007020 030 \0 002 024 & \0 \0 032 002 & \0 \0 033 ! 001 002 0007040 003 # \0 & 001 002 025 * 017 036 021 002 ( ) \0 0007060 021 021 ( f i l e - n a m e t h u 0007100 n k ) \0 \a \0 021 002 ( ) \0 \n # 001 006 002 0007120 \b i d e n t i t y 001 x 021 020 I n 0007140 t e r p r e t e d C o d e 022 \0 0007160 017 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 0007200 * \a \0 022 001 \a 001 017 024 024 \0 001 037 005 \0 0007220 001 \0 * 021 003 ( x ) \0 \a \0 021 002 ( ) 0007240 \0 \n # 001 006 \v \a c o m p o s e 004 l 0007260 o o p 001 x 003 c a r 003 c d r 005 n u 0007300 l l ? 001 g 001 f 003 f n s 005 a p p l 0007320 y \t f u n c t i o n s 021 020 I n 0007340 t e r p r e t e d C o d e 022 \0 0007360 017 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 0007400 * \a \0 022 002 \a \n \a 001 016 023 023 \0 003 037 0007420 020 \0 002 024 & \0 001 ( 002 & \0 001 001 \0 0007440 \t 017 \a 001 022 003 \a \b \a \a \a 006 017 024 024 0007460 004 006 \a 005 \a 005 \a 004 \a 003 \a 003 \a 004 003 037 0007500 . \0 003 032 \0 003 022 \v ( 001 * 033 034 \0 0007520 003 003 022 027 035 \0 \t 036 004 \0 003 & \0 001 0007540 ! 001 001 036 005 \0 003 003 & \0 002 ( 002 * 0007560 021 022 A n o n y m o u s f u n c 0007600 t i o n 022 001 \a 002 017 024 024 \0 001 037 005 \0 0007620 001 \0 * 021 003 ( x ) \0 021 022 A n o 0007640 n y m o u s f u n c t i o n 022 0007660 001 \a 002 016 023 023 001 \a \t 001 037 \r \0 004 ! 001 0007700 001 032 ! 001 002 \0 004 \t 021 001 x \0 021 005 ( 0007720 f n s ) \0 021 036 f u n c t i o n s 0007740 F u n c t i o n c o m p o s 0007760 i t i o n \0 \a \0 021 002 ( ) \0 \n # 001 0010000 006 030 003 s y m \a a p r o p o s 016 w 0010020 a l k - e n v - c h a i n 005 c h 0010040 e c k 006 e q u a l ? 003 e n v 002 f 0010060 n 020 w a l k - e n v i r o n m e 0010100 n t 022 e n v i r o n m e n t - p 0010120 a r e n t 020 s t r i n g - c i - 0010140 m a t c h ? 003 v a l \a n e w l i 0010160 n e \a d i s p l a y 004 u s e r \b 0010200 s t r i n g < ? 004 s o r t 016 s y 0010220 m b o l - > s t r i n g 001 + 004 c 0010240 o n s \a c o l l e c t 006 r e s u 0010260 l t \a p a t t e r n 005 c o u n t 0010300 \b a s - l i s t ? 021 020 I n t e 0010320 r p r e t e d C o d e 022 \0 017 023 0010340 023 001 \a 001 003 037 \b \0 001 ( 001 $ \0 025 * 0010360 \a 001 022 \a \a 025 \a 027 \a 026 \a 024 \a 023 \a 003 0010400 \a 002 016 024 024 004 006 \a 004 \a \r \a 004 \a 017 \a 0010420 016 \a 020 004 017 037 V \0 004 024 & \0 002 025 & \0 0010440 003 026 & \0 004 027 & \0 005 030 005 & \0 006 030 006 0010460 & \0 002 030 \a & \0 003 032 001 030 \b 004 022 - 0010500 ( \t 016 / ( \n & \0 004 ( \v & \0 005 ( \f 0010520 & \0 006 006 ( \r 033 004 # 034 001 030 016 004 0010540 022 S 035 003 036 004 036 005 \v 002 * 017 017 017 0010560 017 017 023 \0 001 016 021 022 A n o n y m o 0010600 u s f u n c t i o n 022 001 \a \0 017 0010620 024 024 001 \a 022 002 037 016 \0 003 032 \0 ! 001 003 0010640 004 & 001 003 024 * 036 021 005 ( s y m ) \0 0010660 021 022 A n o n y m o u s f u n c 0010700 t i o n 022 001 \a \0 017 024 024 003 \a 021 \a \f 0010720 \a \v 002 037 022 \0 003 032 ! 001 002 024 004 & 001 002 0010740 033 \0 003 # 034 \b 024 021 005 ( s y m ) \0 0010760 \a 003 022 002 \a \0 \a \n 017 027 002 027 002 001 \a 0011000 \t 002 037 023 \0 003 032 ! 001 \0 \0 004 022 021 ! 0011020 001 004 \0 \t 024 * 036 021 \t ( s y m v 0011040 a l ) \0 \a 002 022 002 \a 006 \a 005 017 027 002 0011060 027 002 001 \a \b 002 037 030 \0 004 001 022 026 \0 0011100 001 003 # ! 001 006 \0 032 001 003 \n 024 * 0011120 036 021 , ( f n e n v ) a p p l 0011140 y f n t o e n v a n d 0011160 a l l i t s p a r e n t s \0 0011200 021 022 A n o n y m o u s f u n 0011220 c t i o n 022 001 \a 005 017 024 024 001 \a \a 001 0011240 037 \t \0 003 032 ! 001 005 \0 \n 021 005 ( e n 0011260 v ) \0 001 016 021 G ( p a t t e r n 0011300 . a s - l i s t ? ) f i n d 0011320 s y m b o l s i n t h e 0011340 e n v i r o n m e n t t h a t 0011360 m a t c h p a t t e r n \0 \a 0011400 001 021 002 ( ) \0 \n # 001 006 001 \f * l o a 0011420 d - n o t e s * 021 020 I n t e r 0011440 p r e t e d C o d e 022 \0 017 023 023 0011460 001 \a \0 003 037 \a \0 001 024 $ \0 025 * \0 \a \0 0011500 021 002 ( ) \0 \n # 001 006 006 021 * l o a d 0011520 - n o t e - t a k e r * \f * l o 0011540 a d - n o t e s * 004 l i s t 004 c 0011560 o n s 017 d e f i n e d - s y m b 0011600 o l s 020 f i l e - d e s c r i p 0011620 t i o n 021 020 I n t e r p r e t 0011640 e d C o d e 022 \0 017 023 023 001 \a \0 003 0011660 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 002 \a 0011700 005 \a 004 017 027 002 027 002 004 004 \a 003 \a 002 \a 001 0011720 \a 001 002 037 017 \0 004 032 033 \0 001 004 034 004 0011740 $ 003 024 * 036 021 " ( f i l e - d e s 0011760 c r i p t i o n d e f i n e d 0012000 - s y m b o l s ) \0 \a \0 021 002 ( ) 0012020 \0 \n # 001 006 001 027 * r e a d - e v a 0012040 l - p r i n t - n o t e s * 021 0012060 020 I n t e r p r e t e d C o d 0012100 e 022 \0 017 023 023 001 \a \0 003 037 \a \0 001 024 $ 0012120 \0 025 * \0 \a \0 021 002 ( ) \0 \n # 001 006 003 0012140 025 r e a d - e v a l - p r i n t 0012160 - n o t e s 027 * r e a d - e v a 0012200 l - p r i n t - n o t e s * \a r 0012220 e v e r s e 021 020 I n t e r p r 0012240 e t e d C o d e 022 \0 017 023 023 001 \a 0012260 \0 003 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 0012300 \0 017 023 023 002 \a 002 \a 001 001 037 005 \0 002 032 033 0012320 \t 021 002 ( ) \0 \a \0 021 002 ( ) \0 \n # 001 0012340 006 001 001 & 021 020 I n t e r p r e t 0012360 e d C o d e 022 \0 017 023 023 001 \a \0 003 0012400 037 \a \0 001 024 $ \0 025 * 017 \a \0 021 002 ( ) 0012420 \0 \n # 001 006 \t 034 * r e a d - e v a 0012440 l - p r i n t - n o t e - t a k 0012460 e r * 027 * r e a d - e v a l - p 0012500 r i n t - n o t e s * 004 c o n s 0012520 001 & 003 c a r 005 p a i r ? 004 r e s 0012540 t 003 e x p 004 f o r m 021 020 I n t 0012560 e r p r e t e d C o d e 022 \0 017 0012600 023 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0012620 \a \0 022 003 \a \b \a \a \a 006 016 027 002 027 002 0012640 004 006 \a 005 \a 004 \a 003 \a 002 \a 001 \a 001 002 037 0012660 032 \0 003 032 002 003 022 020 033 002 003 $ 002 016 0012700 020 035 \0 036 004 004 $ 005 024 * 036 021 021 ( f 0012720 o r m e x p . r e s t ) \0 0012740 \a \0 021 002 ( ) \0 \n # 001 006 \r 016 e v a 0012760 l - s e l e c t i o n 004 l o o p 0013000 004 r e a d 004 f o r m \v e o f - o 0013020 b j e c t ? \a r e s u l t s 004 u 0013040 s e r 004 e v a l 004 c o n s \b r e 0013060 v e r s e ! 001 p 026 g e t - s e l 0013100 e c t i o n - c o n t e n t s 021 0013120 o p e n - i n p u t - s t r i n 0013140 g 021 020 I n t e r p r e t e d 0013160 C o d e 022 \0 017 023 023 001 \a \0 003 037 \b \0 0013200 001 ( 001 $ \0 025 * \a \0 022 002 \a \n \a 001 0013220 017 023 023 003 \a \f \a \v \a 002 004 004 037 032 \0 003 0013240 032 033 002 003 & \0 \0 024 & \0 001 ( 002 & \0 001 0013260 001 034 \0 003 026 \n 017 \a 001 022 002 \a 003 0013300 \a 005 017 027 002 027 002 004 006 \a 004 \a \t \a 002 \a 0013320 \b \a \a \a 006 001 037 \0 006 032 \0 003 022 \f 0013340 033 001 \t ! 001 001 034 ! 001 \0 003 035 036 004 0013360 \0 036 005 004 001 004 \n 021 016 ( f o r m 0013400 r e s u l t s ) \0 \0 021 002 ( ) \0 \a 0013420 \0 021 002 ( ) \0 \n # 001 006 001 021 * d e f 0013440 a u l t - c o n t e x t * 021 020 0013460 I n t e r p r e t e d C o d e 0013500 022 \0 017 023 023 001 \a \0 003 037 \a \0 001 024 $ \0 0013520 025 * 017 \a \0 021 002 ( ) \0 \n # 001 006 002 \n 0013540 e v e n t - k i n d 003 c a r 021 0013560 020 I n t e r p r e t e d C o d 0013600 e 022 \0 017 023 023 002 \a 001 \a \0 002 037 \a \0 001 0013620 032 $ 001 024 * \a \0 021 002 ( ) \0 \n # 001 006 0013640 \v \a e v e n t - x 003 t 3 1 005 e v 0013660 e n t 006 e r a s e d \a m o u s e 0013700 t o \b b u t t o n u p \n b u t t 0013720 o n d o w n 005 e r r o r 004 c a d 0013740 r 004 m e m v \n e v e n t - k i n 0013760 d 021 020 I n t e r p r e t e d 0014000 C o d e 022 \0 017 023 023 001 \a \0 003 037 \b \0 0014020 001 ( 001 $ \0 025 * \a \0 022 002 \a 002 \a 001 0014040 017 024 024 004 004 \a \n \a \t \a \b \a \a 004 004 037 0014060 032 \0 004 032 \0 003 & \0 001 033 001 024 004 022 0014100 024 034 \0 \t 035 025 \0 026 \v 004 004 \a 006 \a 0014120 005 \a 004 \a 003 \a \0 021 031 E v e n t h 0014140 a s n o x - c o o r d i n a 0014160 t e 021 \a ( e v e n t ) \0 \a \0 021 002 0014200 ( ) \0 \n # 001 006 \v \a e v e n t - y 0014220 003 t 3 2 005 e v e n t 006 e r a s e 0014240 d \a m o u s e t o \b b u t t o n 0014260 u p \n b u t t o n d o w n 005 e r 0014300 r o r 005 c a d d r 004 m e m v \n e 0014320 v e n t - k i n d 021 020 I n t e 0014340 r p r e t e d C o d e 022 \0 017 023 0014360 023 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * 0014400 \a \0 022 002 \a 002 \a 001 017 024 024 004 004 \a \n \a 0014420 \t \a \b \a \a 004 004 037 032 \0 004 032 \0 003 & 0014440 \0 001 033 001 024 004 022 024 034 \0 \t 035 025 0014460 \0 026 \v 004 004 \a 006 \a 005 \a 004 \a 003 \a \0 021 0014500 031 E v e n t h a s n o y - 0014520 c o o r d i n a t e 021 \a ( e v e 0014540 n t ) \0 \a \0 021 002 ( ) \0 \n # 001 006 \t 0014560 \f e v e n t - b u t t o n \b b u 0014600 t t o n u p \n b u t t o n d o w 0014620 n 005 e r r o r 006 c a d d d r 004 m 0014640 e m v \n e v e n t - k i n d 003 t 0014660 3 5 005 e v e n t 021 020 I n t e r 0014700 p r e t e d C o d e 022 \0 017 023 023 0014720 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * \a 0014740 \0 022 002 \a \b \a \a 017 024 024 004 004 \a 006 \a 005 0014760 \a 004 \a 003 004 004 037 032 \0 004 032 \0 003 & \0 0015000 001 033 001 024 004 022 024 034 \0 \t 035 025 \0 0015020 026 \v 002 \a 002 \a 001 \a \0 021 031 E v e n t 0015040 h a s n o m o u s e b u 0015060 t t o n 021 \a ( e v e n t ) \0 \a \0 0015100 021 002 ( ) \0 \n # 001 006 \f \v e v e n t 0015120 - s h i f t 004 m e m v 003 c a r 006 0015140 c a d d d r 006 c d d d d r \a m o 0015160 u s e t o \b b u t t o n u p \n b 0015200 u t t o n d o w n 005 e r r o r 005 0015220 e v e n t \n e v e n t - k i n d 0015240 003 t 4 1 021 020 I n t e r p r e t 0015260 e d C o d e 022 \0 017 023 023 001 \a \0 003 0015300 037 \b \0 001 ( 001 $ \0 025 * \a \0 022 002 \a 0015320 \t \a \v 017 024 024 004 \a \a \n \a 001 \a 002 \a 004 0015340 \a 001 \a 003 \a \b 004 005 037 * \0 004 032 \0 003 0015360 & \0 001 033 001 024 004 022 026 034 035 \0 003 \t 0015400 036 004 001 025 004 022 # 036 005 \0 \t 036 006 026 0015420 \0 027 \v 002 \a \a \a 006 001 \a 005 \a \0 021 0015440 E v e n t h a s n o c t r 0015460 l s h i f t p a r a m e t e r 0015500 021 \a ( e v e n t ) \0 \a \0 021 002 ( ) 0015520 \0 \n # 001 006 \b 020 w a l k - e n v i 0015540 r o n m e n t 002 f n \b f o r - e 0015560 a c h 003 e n v 003 c d r 003 c a r 004 0015600 p a i r 023 % e n v i r o n m e n 0015620 t - > a l i s t 021 020 I n t e r 0015640 p r e t e d C o d e 022 \0 017 023 023 0015660 001 \a \0 003 037 \b \0 001 ( 001 $ \0 025 * \a 0015700 \0 022 002 \a 001 \a 003 017 027 002 027 002 002 \a 002 \a 0015720 \a 002 037 \n \0 004 032 ( 001 033 001 003 \n 021 0015740 022 A n o n y m o u s f u n c t 0015760 i o n 022 001 \a 006 017 024 024 002 \a 005 \a 004 001 0016000 037 016 \0 004 ! 001 \0 032 \0 003 033 \0 003 \n 0016020 021 006 ( p a i r ) \0 021 \b ( f n e 0016040 n v ) \0 \a \0 021 002 ( ) \0 \n # 001 006 006 0016060 004 e v a l 004 e x p r 030 * s y s t 0016100 e m - s y n t a x - e x p a n d 0016120 e r * 021 * s y s t e m - c o m p 0016140 i l e r * 005 a p p l y 003 e n v 0016160 021 020 I n t e r p r e t e d C o 0016200 d e 022 \0 017 023 023 001 \a \0 003 037 \b \0 001 ( 0016220 001 $ \0 025 * \a \0 022 002 \a 001 \a 005 017 027 0016240 002 027 002 003 \a 004 \a 003 \a 002 002 037 017 \0 005 032 0016260 033 034 \0 001 004 001 004 024 \n \0 021 \n ( 0016300 e x p r e n v ) \0 \a \0 021 002 ( ) 0016320 \0 \n # 001 006 \n 005 t h u n k 005 f i r 0016340 s t 005 k w o t e 001 v 004 l i s t \a 0016360 n u m b e r ? 005 q u o t e 005 c h 0016400 a r ? \b b o o l e a n ? \a s t r 0016420 i n g ? 021 020 I n t e r p r e t 0016440 e d C o d e 022 \0 017 023 023 001 \a 002 003 0016460 037 \b \0 001 ( 001 $ \0 025 * \a 002 022 003 \a 0016500 003 \a 001 \a \0 017 024 024 002 \a 005 \a 004 003 037 # 0016520 \0 003 032 \0 003 & \0 001 ( 001 & \0 002 001 0016540 022 026 001 016 031 002 002 022 036 \0 * 033 025 0016560 \0 \n 021 022 A n o n y m o u s 0016600 f u n c t i o n 022 002 \a 001 \a \0 017 023 0016620 023 001 \a \t 002 037 031 \0 002 032 ! 001 \0 003 & \0 0016640 \0 ( 001 & \0 001 \0 022 026 \0 * 001 \b 0016660 021 022 A n o n y m o u s f u n 0016700 c t i o n 022 002 \a 001 \a \0 017 023 023 001 \a 0016720 \b 002 037 031 \0 002 032 ! 002 \0 003 & \0 \0 ( 001 0016740 & \0 001 \0 022 026 \0 * 001 \b 021 022 0016760 A n o n y m o u s f u n c t i 0017000 o n 022 \0 017 023 023 001 \a \a 001 037 \a \0 002 032 0017020 ! 003 \0 \t 021 002 ( ) \0 021 002 ( ) \0 021 002 0017040 ( ) \0 \a 006 021 003 ( v ) \0 \a 002 021 002 ( 0017060 ) \0 \n 0017063