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