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