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