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