$ od -c -N 50000 [Indigo]<Chipmonk>gate>gate-sources.dm!4
0000000  377  \0  \0   r   l   d   e   f   s   .   m   e   s   a  \0 373
0000020  227 366   q 236  \0  \0 376 001  \0   ? 267   -   -       d   e
0000040    f   i   n   i   t   i   o   n   s       m   o   d   u   l   e
0000060        f   o   r       r   a   n   d   o   m       l   o   g   i
0000100    c       l   a   y   o   u   t       s   u   b   r   o   u   t
0000120    i   n   e  \r   -   -       w   r   i   t   t   e   n       b
0000140    y       P   e   t   i   t   ,       S   e   p   t   e   m   b
0000160    e   r       2   6   ,       1   9   8   1           6   :   3
0000200    5       P   M  \r  \r   D   I   R   E   C   T   O   R   Y  \r
0000220            S   e   g   m   e   n   t   D   e   f   s   ,  \r    
0000240        p   p   d   e   f   s   ;  \r   r   l   d   e   f   s   :
0000260        D   E   F   I   N   I   T   I   O   N   S       I   M   P
0000300    O   R   T   S       S   e   g   m   e   n   t   D   e   f   s
0000320    ,       p   p   d   e   f   s       =  \r           B   E   G
0000340    I   N       O   P   E   N       p   p   d   e   f   s   ,    
0000360    S   e   g   m   e   n   t   D   e   f   s   ;  \r  \r  \r   -
0000400    -       g   a   t   e       s   t   u   f   f   :  \r  \r   g
0000420    a   t   e   C   h   a   r   a   c   :   T 376 001  \0   ~  \f
0000440    Y   P   E       =       R   E   C   O   R   D   [   i   n   C
0000460    n   t   ,   n   o   r   C   n   t   :   I   N   T   E   G   E
0000500    R   ,   -   -       n   o   r   C   n   t       i   s       m
0000520    a   x   C   n   t       f   o   r       S   e   q   u   e   n
0000540    c   e  \r  \t   a   n   d   s   :   S   E   Q   U   E   N   C
0000560    E       C   O   M   P   U   T   E   D       C   A   R   D   I
0000600    N   A   L       O   F       [   0   .   .   2   5   5   ]    
0000620    ]   ;  \r  \r   g   a   t   e   :   T   Y   P   E       =    
0000640    R   E   C   O   R   D       [   n   x   t   :   L   O   N   G
0000660        P   O   I   N   T   E   R       T   O       g   a   t   e
0000700    ,  \r  \t   c   h   a   r   a   c   :   L   O   N   G       P
0000720    O   I   N   T   E   R       T   O       g   a   t   e   C   h
0000740    a   r   a   c   ,  \r  \t   f   i   r   s   t   I   n   T   o
0000760    p   A   v   a   i   l   :   B   O   O   L   E   A   N   ,  \r
0001000   \t   l   S   p   a   c   ,   r   S   p   a   c   :   [   0   .
0001020    .   7   ]   ,  \r  \t   p   a   r   m   N   u   m   :   [   0
0001040  376 001  \0 215 220   .   .   2   5   5   ]   ,  \r  \t   c   e
0001060    l   l   :   L   O   N   G       P   O   I   N   T   E   R    
0001100    T   O       c   L   i   s   t   ,  \r  \t   i   n   C   n   t
0001120    :   I   N   T   E   G   E   R   ,   -   -       t   h   i   s
0001140        i   s       t   h   e       m   a   x   C   o   u   n   t
0001160        f   o   r       t   h   e       S   e   q   u   e   n   c
0001200    e  \r  \t   g   n   d   :   P   o   i   n   t   ,  \r  \t   f
0001220    i   r   s   t   I   n   T   o   p   :   P   o   i   n   t   ,
0001240   \r  \t   o   u   t   :   P   o   i   n   t   ,  \r  \t   i   n
0001260    s   :   S   E   Q   U   E   N   C   E       C   O   M   P   U
0001300    T   E   D       C   A   R   D   I   N   A   L       O   F    
0001320    P   o   i   n   t       ]   ;  \r  \r   G   a   t   e   L   i
0001340    s   t   :   T   Y   P   E       =       R   E   C   O   R   D
0001360    [   n   x   t   :   L   O   N   G       P   O   I   N   T   E
0001400    R       T   O       G   a   t   e   L   i   s   t   ,  \r  \t
0001420    g   a   t   :   L   O   N   G       P   O   I   N   T   E   R
0001440        T   O       g 376 001  \0 330 270   a   t   e   ,  \r  \t
0001460    x   ,   y   :   l   o   c   N   u   m   ,  \r  \t   o   u   t
0001500    N   o   d   e   :   I   N   T   E   G   E   R   ,  \r  \t   n
0001520    o   d   e   s   :   S   E   Q   U   E   N   C   E       n   o
0001540    d   e   C   n   t   :   C   A   R   D   I   N   A   L       O
0001560    F       [   0   .   .   2   5   5   ]       ]   ;  \r  \r   m
0001600    C   o   n   t   P   r   o   c   d   :   T   Y   P   E       =
0001620        P   R   O   C   E   D   U   R   E   [   l   C   n   t   ,
0001640    r   C   n   t   ,   x   ,   y   ,   m   a   x   y   :   I   N
0001660    T   E   G   E   R   ,  \r  \t   l   p   :   L   O   N   G    
0001700    P   O   I   N   T   E   R       T   O       l   i   s   t   ,
0001720    t   o   t   I   n   s   :   I   N   T   E   G   E   R   ]  \r
0001740   \t   R   E   T   U   R   N   S   [   d   x   ,   w   i   d   :
0001760    I   N   T   E   G   E   R   ,   n   l   :   L   O   N   G    
0002000    P   O   I   N   T   E   R       T   O       l   i   s   t   ]
0002020    ;  \r  \r   m   A   n   d   P   r   o   c   d   :   T   Y   P
0002040    E       =       P   R   O   C   E   D 376 001  \0   ;   O   U
0002060    R   E   [   a   C   n   t   ,   x   ,   y   :   I   N   T   E
0002100    G   E   R   ,   l   p   :   L   O   N   G       P   O   I   N
0002120    T   E   R       T   O       l   i   s   t   ,  \r  \t   i   n
0002140    p   u   t   s   :   I   N   T   E   G   E   R   ,   g   a   t
0002160    :   L   O   N   G       P   O   I   N   T   E   R       T   O
0002200        g   a   t   e   ,   t   o   t   I   n   s   :   I   N   T
0002220    E   G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [   d
0002240    x   ,   w   i   d   :   I   N   T   E   G   E   R   ,   n   l
0002260    :   L   O   N   G       P   O   I   N   T   E   R       T   O
0002300        l   i   s   t   ]   ;  \r  \r   m   T   W   P   r   o   c
0002320    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0002340    R   E   [   x   :   I   N   T   E   G   E   R   ,   l   p   :
0002360    L   O   N   G       P   O   I   N   T   E   R       T   O    
0002400    l   i   s   t   ,   t   o   t   I   n   s   :   I   N   T   E
0002420    G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [   d   x
0002440    :   I   N   T   E   G   E   R   ,   n   l   :   L   O   N 376
0002460  001  \0 204 374   G       P   O   I   N   T   E   R       T   O
0002500        l   i   s   t   ]   ;  \r  \r   m   P   u   P   r   o   c
0002520    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0002540    R   E   [   x   1   ,   x   2   ,   m   x   :   I   N   T   E
0002560    G   E   R   ,  \r  \t   l   p   :   L   O   N   G       P   O
0002600    I   N   T   E   R       T   O       l   i   s   t   ,   g   a
0002620    t   :   L   O   N   G       P   O   I   N   T   E   R       T
0002640    O       g   a   t   e   ,   t   o   t   I   n   s   :   I   N
0002660    T   E   G   E   R   ]  \r  \t   R   E   T   U   R   N   S   [
0002700    d   x   :   I   N   T   E   G   E   R   ,   n   l   :   L   O
0002720    N   G       P   O   I   N   T   E   R       T   O       l   i
0002740    s   t   ]   ;  \r  \r   c   a   l   c   M   y   P   r   o   c
0002760    d   :   T   Y   P   E       =       P   R   O   C   E   D   U
0003000    R   E   [   g   c   :   L   O   N   G       P   O   I   N   T
0003020    E   R       T   O       g   a   t   e   C   h   a   r   a   c
0003040    ]  \r  \t   R   E   T   U   R   N   S   [   m   y   :   I   N
0003060    T   E   G   E 376 001  \0 034   Y   R   ]   ;  \r  \r   p   a
0003100    r   m   a   C   n   t   :   T   Y   P   E       =       [   1
0003120    .   .   5   ]   ;  \r  \r   g   a   t   e   T   y   p   e   R
0003140    e   c   o   r   d   :   T   Y   P   E       =       R   E   C
0003160    O   R   D   [  \r  \t   w   W   i   d   ,   m   w   W   i   d
0003200    :   I   N   T   E   G   E   R   ,  \r  \t   n   o   r   W   i
0003220    r   e   O   f   f   :   I   N   T   E   G   E   R   ,  \r  \t
0003240    s   t   a   n   d   W   i   d   t   h   :   I   N   T   E   G
0003260    E   R   ,  \r  \t   s   t   r   t   Y   ,   i   n   v   O   f
0003300    f   :   I   N   T   E   G   E   R   ,  \r  \t   p   u   t   W
0003320    i   d   ,   p   u   t   L   e   n   :   I   N   T   E   G   E
0003340    R   ,  \r  \t   m   a   k   A   n   d   :   m   A   n   d   P
0003360    r   o   c   d   ,  \r  \t   m   a   k   P   u   :   m   P   u
0003400    P   r   o   c   d   ,  \r  \t   m   a   k   C   o   n   t   s
0003420    :   m   C   o   n   t   P   r   o   c   d   ,  \r  \t   m   a
0003440    k   T   o   p   W   i   r   e   :   m   T   W   P   r   o   c
0003460    d   ,  \r  \t   c   a   l   c   M 376 001  \0 324   o   a   x
0003500    y   :   c   a   l   c   M   y   P   r   o   c   d       ]   ;
0003520   \r  \r   d   o   w   n   W   i   r   e   R   e   c   :   T   Y
0003540    P   E       =       R   E   C   O   R   D       [  \r  \t   n
0003560    o   d   e   ,   x   ,   y   ,   t   x   ,   t   y   :   I   N
0003600    T   E   G   E   R   ,  \r  \t   f   i   x   e   d   :   B   O
0003620    O   L   E   A   N   ,   l   e   f   t   E   n   d   ,   r   i
0003640    g   h   t   E   n   d   ,   a   n   d   C   n   t   :   [   0
0003660    .   .   3   1   ]   ,  \r  \t   w   i   r   e   d   L   e   f
0003700    t   ,   t   o   p   W   i   r   e   a   b   l   e   :   B   O
0003720    O   L   E   A   N   ,   d   w   L   e   f   t   :   [   0   .
0003740    .   3   7   7   7   7   B   ]   ,  \r  \t   w   i   r   e   d
0003760    R   i   g   h   t   :   B   O   O   L   E   A   N   ,   d   w
0004000    R   i   g   h   t   :   [   0   .   .   3   7   7   7   7   B
0004020    ]       ]   ;  \r  \r   b   l   o   c   k   a   g   e   T   y
0004040    p   e   :   T   Y   P   E       =       {   n   o   n   e   ,
0004060    m   e   t   ,   p   o   l   y   ,   c   e   l   l   } 376 001
0004100   \0   } 243   ;  \r  \r   h   L   i   n   e   R   e   c   :   T
0004120    Y   P   E       =       R   E   C   O   R   D       [  \r  \t
0004140    b   t   y   p   :   b   l   o   c   k   a   g   e   T   y   p
0004160    e   ,   d   i   s   t   a   n   c   e   :   [   -   2   0   .
0004200    .   5   0   0   0   ]       ]   ;  \r  \r  \r   -   -       *
0004220    *   *   *   *   *       S   t   u   f   f       F   r   o   m
0004240            r   l   g   a   t   e   .   m   e   s   a   :  \r  \r
0004260    g   e   t   G   a   t   e   :   P   R   O   C   E   D   U   R
0004300    E   [   g   c   :   L   O   N   G       P   O   I   N   T   E
0004320    R       T   O       g   a   t   e   C   h   a   r   a   c   ,
0004340    p   a   r   m   s   :   I   N   T   E   G   E   R   ]  \r  \t
0004360    R   E   T   U   R   N   S   [   g   a   t   :   L   O   N   G
0004400        P   O   I   N   T   E   R       T   O       g   a   t   e
0004420    ]       ;  \r  \r  \r   -   -       *   *   *   *   *   *    
0004440    S   t   u   f   f       F   r   o   m           r   l   i   n
0004460    .   m   e   s   a   :  \r  \r   m   y   Z   o   n   e   :    
0004500    U   N   C 376  \0 214   } 222   O   U   N   T   E   D       Z
0004520    O   N   E       ;  \r   f   i   l   e   E   r   r   :       S
0004540    I   G   N   A   L   ;  \r   a   b   b   r   t   :       S   I
0004560    G   N   A   L   ;  \r  \r   i   n   p   u   t   C   i   r   c
0004600    u   i   t   :   P   R   O   C   E   D   U   R   E       R   E
0004620    T   U   R   N   S   [   p   n   t   :   L   O   N   G       P
0004640    O   I   N   T   E   R       T   O       G   a   t   e   L   i
0004660    s   t   ,  \r  \t   d   w   C   n   t   ,   m   a   x   N   N
0004700    :   I   N   T   E   G   E   R   ]   ;  \r  \r  \r           E
0004720    N   D   .  \r 377  \0  \0   r   l   g   a   t   e   .   m   e
0004740    s   a  \0 373 233   i   O 206  \0  \0 376 001  \0 017   P   -
0004760    -       a       p   r   o   g   r   a   m       t   o       r
0005000    u   n       w   i   t   h   i   n       C   h   i   p   m   o
0005020    n   k  \r  \r   -   -       l   a   s   t       m   o   d   i
0005040    f   i   e   d       b   y       P   e   t   i   t   ,       O
0005060    c   t   o   b   e   r       8   ,       1   9   8   1        
0005100    2   :   2   0       P   M  \r   -   -       w   r   i   t   t
0005120    e   n       b   y       P   e   t   i   t   ,       O   c   t
0005140    o   b   e   r       5   ,       1   9   8   1           6   :
0005160    4   5       P   M  \r  \r   D   I   R   E   C   T   O   R   Y
0005200   \r           p   p   d   d   e   f   s   ,  \r           p   p
0005220    d   e   f   s   ,  \r           r   l   d   e   f   s   ,  \r
0005240            p   p   d   d   d   e   f   s   ,  \r           S   t
0005260    r   i   n   g   D   e   f   s   ;  \r  \r   r   l   g   a   t
0005300    e   :       P   R   O   G   R   A   M  \r           I   M   P
0005320    O   R   T   S       p   p   d   d   e   f   s   ,       p   p
0005340    d   e   f   s   ,       p   p   d   d   d   e   f   s   , 376
0005360  001  \0 263   N       S   t   r   i   n   g   D   e   f   s    
0005400    E   X   P   O   R   T   S       r   l   d   e   f   s       =
0005420   \r           B   E   G   I   N       O   P   E   N       p   p
0005440    d   d   e   f   s   ,       r   l   d   e   f   s   ,       p
0005460    p   d   e   f   s   ,       p   p   d   d   d   e   f   s   ,
0005500        S   t   r   i   n   g   D   e   f   s   ;  \r  \r  \r   -
0005520    -       g   a   t   e       c   r   e   a   t   i   o   n    
0005540    r   o   u   t   i   n   e   s   :  \r  \r   p   a   r   m   a
0005560    :   A   R   R   A   Y       p   a   r   m   a   C   n   t    
0005600    O   F       P   O   I   N   T   E   R       T   O       g   a
0005620    t   e   T   y   p   e   R   e   c   o   r   d       _  \r  \t
0005640    [   @   g   t   r   1   ,   @   g   t   r   2   ,   @   g   t
0005660    r   3   ,   @   g   t   r   4   ,   @   g   t   r   5   ]   ;
0005700   \r  \r   c   u   r   r   e   n   t   P   a   r   a   m   e   t
0005720    e   r   s   :   P   O   I   N   T   E   R       T   O       g
0005740    a   t   e   T   y   p   e   R   e   c   o   r   d   ;  \r   c
0005760    u   r   r   e 376 001  \0  \f 266   n   t   P   a   r   a   m
0006000    N   u   m   b   e   r   :   p   a   r   m   a   C   n   t   ;
0006020   \r  \r   g   t   r   1   :   g   a   t   e   T   y   p   e   R
0006040    e   c   o   r   d       _       [  \r  \t   w   W   i   d   :
0006060    4   ,  \r  \t   m   w   W   i   d   :   8   ,  \r  \t   n   o
0006100    r   W   i   r   e   O   f   f   :   2   ,  \r  \t   s   t   a
0006120    n   d   W   i   d   t   h   :   1   6   ,  \r  \t   s   t   r
0006140    t   Y   :   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0006160    0   ,  \r  \t   p   u   t   W   i   d   :   4   ,  \r  \t   p
0006200    u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n   d
0006220    :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :   m
0006240    P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :   m
0006260    C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W   i
0006300    r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M   a
0006320    x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t   r
0006340    2   :   g   a   t   e   T   y   p   e   R   e   c   o   r   d
0006360        _       [  \r  \t   w   W   i 376 001  \0   r 222   d   :
0006400    4   ,  \r  \t   m   w   W   i   d   :   8   ,  \r  \t   n   o
0006420    r   W   i   r   e   O   f   f   :   2   ,  \r  \t   s   t   a
0006440    n   d   W   i   d   t   h   :   3   2   ,  \r  \t   s   t   r
0006460    t   Y   :   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0006500    0   ,  \r  \t   p   u   t   W   i   d   :   8   ,  \r  \t   p
0006520    u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n   d
0006540    :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :   m
0006560    P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :   m
0006600    C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W   i
0006620    r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M   a
0006640    x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t   r
0006660    3   :   g   a   t   e   T   y   p   e   R   e   c   o   r   d
0006700        _       [  \r  \t   w   W   i   d   :   4   ,  \r  \t   m
0006720    w   W   i   d   :   8   ,  \r  \t   n   o   r   W   i   r   e
0006740    O   f   f   :   2   ,  \r  \t   s   t   a   n   d   W   i   d
0006760    t   h   :   4   8   ,  \r  \t   s   t   r   t   Y   : 376 001
0007000   \0   * 204   3   0   ,  \r  \t   i   n   v   O   f   f   :   1
0007020    0   ,  \r  \t   p   u   t   W   i   d   :   1   2   ,  \r  \t
0007040    p   u   t   L   e   n   :   4   ,  \r  \t   m   a   k   A   n
0007060    d   :   m   A   n   d   1   ,  \r  \t   m   a   k   P   u   :
0007100    m   P   u   1   ,  \r  \t   m   a   k   C   o   n   t   s   :
0007120    m   C   o   n   t   1   ,  \r  \t   m   a   k   T   o   p   W
0007140    i   r   e   :   m   T   W   1   ,  \r  \t   c   a   l   c   M
0007160    a   x   y   :   m   C   a   l   c   1  \r   ]   ;  \r   g   t
0007200    r   4   :   g   a   t   e   T   y   p   e   R   e   c   o   r
0007220    d       _       [  \r  \t   w   W   i   d   :   4   ,  \r  \t
0007240    m   w   W   i   d   :   8   ,  \r  \t   n   o   r   W   i   r
0007260    e   O   f   f   :   2   ,  \r  \t   s   t   a   n   d   W   i
0007300    d   t   h   :   8   ,  \r  \t   s   t   r   t   Y   :   2   8
0007320    ,       -   -       p   u   t   L   e   n   +   2   0  \r  \t
0007340    i   n   v   O   f   f   :   6   ,  \r  \t   p   u   t   W   i
0007360    d   :   4   ,  \r  \t   p   u   t   L   e   n   :   8   ,  \r
0007400   \t   m   a 376 001  \0 323 001   k   A   n   d   :   m   A   n
0007420    d   1   ,  \r  \t   m   a   k   P   u   :   m   P   u   2   ,
0007440   \r  \t   m   a   k   C   o   n   t   s   :   m   C   o   n   t
0007460    1   ,  \r  \t   m   a   k   T   o   p   W   i   r   e   :   m
0007500    T   W   1   ,  \r  \t   c   a   l   c   M   a   x   y   :   m
0007520    C   a   l   c   1  \r   ]   ;  \r   g   t   r   5   :   g   a
0007540    t   e   T   y   p   e   R   e   c   o   r   d       _       [
0007560   \r  \t   w   W   i   d   :   4   ,  \r  \t   m   w   W   i   d
0007600    :   8   ,  \r  \t   n   o   r   W   i   r   e   O   f   f   :
0007620    2   ,  \r  \t   s   t   a   n   d   W   i   d   t   h   :   4
0007640    ,  \r  \t   s   t   r   t   Y   :   3   6   ,       -   -    
0007660    p   u   t   L   e   n   +   2   0  \r  \t   i   n   v   O   f
0007700    f   :   6   ,  \r  \t   p   u   t   W   i   d   :   4   ,  \r
0007720   \t   p   u   t   L   e   n   :   1   6   ,  \r  \t   m   a   k
0007740    A   n   d   :   m   A   n   d   1   ,  \r  \t   m   a   k   P
0007760    u   :   m   P   u   2   ,  \r  \t   m   a   k   C   o   n   t
0010000    s   :   m   C   o   n   t   1 376 001  \0 336  \t   ,  \r  \t
0010020    m   a   k   T   o   p   W   i   r   e   :   m   T   W   1   ,
0010040   \r  \t   c   a   l   c   M   a   x   y   :   m   C   a   l   c
0010060    1  \r   ]   ;  \r  \r   g   a   t   e   L   i   s   t   :   L
0010100    O   N   G       P   O   I   N   T   E   R       T   O       g
0010120    a   t   e   _   N   I   L   ;  \r  \r   g   e   t   G   a   t
0010140    e   :   P   U   B   L   I   C       P   R   O   C   E   D   U
0010160    R   E   [   g   c   :   L   O   N   G       P   O   I   N   T
0010200    E   R       T   O       g   a   t   e   C   h   a   r   a   c
0010220    ,   p   a   r   m   s   :   I   N   T   E   G   E   R   ]  \r
0010240   \t   R   E   T   U   R   N   S   [   g   a   t   :   L   O   N
0010260    G       P   O   I   N   T   E   R       T   O       g   a   t
0010300    e   ]       =  \r                   B   E   G   I   N  \r  \t
0010320    g   a   t   _   g   a   t   e   L   i   s   t   ;  \r  \t   W
0010340    H   I   L   E       g   a   t   #   N   I   L       D   O  \r
0010360   \t           I   F       g   a   t   .   p   a   r   m   N   u
0010400    m       =       p   a   r   m   s       A   N   D 376 001  \0
0010420    v 217       g   c   S   a   m   e   [   g   c   ,   g   a   t
0010440    .   c   h   a   r   a   c   ]       T   H   E   N       R   E
0010460    T   U   R   N   ;  \r  \t           g   a   t   _   g   a   t
0010500    .   n   x   t   ;  \r  \t   E   N   D   L   O   O   P   ;  \r
0010520   \t   g   a   t   _   m   a   k   e   G   a   t   e   [   g   c
0010540    ,   p   a   r   m   s   ]   ;  \r  \t   g   a   t   .   n   x
0010560    t   _   g   a   t   e   L   i   s   t   ;  \r  \t   g   a   t
0010600    e   L   i   s   t   _   g   a   t   ;  \r                   E
0010620    N   D   ;  \r   g   c   S   a   m   e   :   P   R   O   C   E
0010640    D   U   R   E   [   a   ,   b   :   L   O   N   G       P   O
0010660    I   N   T   E   R       T   O       g   a   t   e   C   h   a
0010700    r   a   c   ]       R   E   T   U   R   N   S   [   B   O   O
0010720    L   E   A   N   ]       =  \r                   B   E   G   I
0010740    N  \r  \t   I   F       a   .   i   n   C   n   t   #   b   .
0010760    i   n   C   n   t       O   R       a   .   n   o   r   C   n
0011000    t   #   b   .   n   o   r   C   n   t       T   H   E   N    
0011020    R   E 376 001  \0   O 310   T   U   R   N   [   F   A   L   S
0011040    E   ]   ;  \r  \t   F   O   R       i   :   I   N   T   E   G
0011060    E   R       I   N       [   0   .   .   a   .   n   o   r   C
0011100    n   t   )       D   O  \r  \t           I   F       a   .   a
0011120    n   d   s   [   i   ]       #       b   .   a   n   d   s   [
0011140    i   ]       T   H   E   N       R   E   T   U   R   N   [   F
0011160    A   L   S   E   ]   ;  \r  \t   E   N   D   L   O   O   P   ;
0011200   \r  \t   R   E   T   U   R   N   [   T   R   U   E   ]   ;  \r
0011220                    E   N   D   ;  \r  \r   m   a   k   e   G   a
0011240    t   e   :   P   R   O   C   E   D   U   R   E   [   g   c   :
0011260    L   O   N   G       P   O   I   N   T   E   R       T   O    
0011300    g   a   t   e   C   h   a   r   a   c   ,   p   a   r   m   s
0011320    :   p   a   r   m   a   C   n   t   ]  \r  \t   R   E   T   U
0011340    R   N   S   [   g   a   t   :   L   O   N   G       P   O   I
0011360    N   T   E   R       T   O       g   a   t   e   ]       =  \r
0011400                    B   E   G   I   N  \r  \t   O   P   E   N    
0011420    c   u   r   r   e   n   t 376 001  \0  \0 265   P   a   r   a
0011440    m   e   t   e   r   s   ;  \r  \t   l   p   :   L   O   N   G
0011460        P   O   I   N   T   E   R       T   O       l   i   s   t
0011500    ;   -   -   _   N   I   L   ;  \r  \t   o   b   :   L   O   N
0011520    G       P   O   I   N   T   E   R       T   O       o   b   j
0011540    e   c   t   ;  \r  \t   c   p   :   L   O   N   G       P   O
0011560    I   N   T   E   R       T   O       c   L   i   s   t   ;  \r
0011600   \t   x   :   l   o   c   N   u   m   ;  \r  \t   y   :   l   o
0011620    c   N   u   m   ;  \r  \t   i   ,   i   n   I   d   x   ,   a
0011640    c   n   t   ,   m   x   ,   m   a   x   y   :   I   N   T   E
0011660    G   E   R   ;  \r  \t   t   o   p   x   1   ,   t   o   p   x
0011700    2   ,   d   x   ,   w   i   d   t   h   ,   b   o   t   x   :
0011720    I   N   T   E   G   E   R   ;  \r  \t   c   u   r   r   e   n
0011740    t   P   a   r   a   m   e   t   e   r   s   _   p   a   r   m
0011760    a   [   p   a   r   m   s   ]   ;  \r  \t   c   u   r   r   e
0012000    n   t   P   a   r   a   m   N   u   m   b   e   r   _   p   a
0012020    r   m   s   ;  \r  \t   g   a   t   _   G   e 376 001  \0 273
0012040  037   t   S   p   a   c   e   [   S   I   Z   E   [   g   a   t
0012060    e   [   g   c   .   i   n   C   n   t   ]   ]   ]   ;  \r  \t
0012100    g   a   t   .   i   n   C   n   t   _   g   c   .   i   n   C
0012120    n   t   ;  \r  \t   g   a   t   .   n   x   t   _   N   I   L
0012140    ;  \r  \t   g   a   t   .   c   h   a   r   a   c   _   g   c
0012160    ;  \r  \t   g   a   t   .   p   a   r   m   N   u   m   _   c
0012200    u   r   r   e   n   t   P   a   r   a   m   N   u   m   b   e
0012220    r   ;  \r  \t   m   x   _   0   ;  \r  \t   y   _   s   t   r
0012240    t   Y   ;  \r  \t   m   a   x   y   _   y   +   c   a   l   c
0012260    M   a   x   y   [   g   c   ]   ;  \r  \t   x   _   -   2   ;
0012300   \r  \t   [   d   x   ,   ,   l   p   ]   _   m   a   k   C   o
0012320    n   t   s   [   0   ,   g   c   .   a   n   d   s   [   0   ]
0012340    ,   x   ,   y   ,   m   a   x   y   ,   N   I   L   ,   g   c
0012360    .   i   n   C   n   t   ]   ;  \r  \t   x   _   x   +   d   x
0012400    ;  \r  \t   b   o   t   x   _   0   ;  \r  \t   i   n   I   d
0012420    x   _   0   ;  \r  \t   F   O   R       i       I   N       [
0012440    0 376 001  \0 004 312   .   .   g   c   .   n   o   r   C   n
0012460    t   )       D   O  \r  \t           a   c   n   t   _   g   c
0012500    .   a   n   d   s   [   i   ]   ;  \r  \t           [   d   x
0012520    ,   w   i   d   t   h   ,   l   p   ]   _   m   a   k   A   n
0012540    d   [   a   c   n   t   ,   x   ,   y   ,   l   p   ,   i   n
0012560    I   d   x   ,   g   a   t   ,   g   c   .   i   n   C   n   t
0012600    ]   ;  \r  \t           i   n   I   d   x   _   i   n   I   d
0012620    x   +   a   c   n   t   ;  \r  \t           m   x   _   M   A
0012640    X   [   m   x   ,   x   +   w   i   d   t   h   ]   ;  \r  \t
0012660            x   _   x   +   d   x   ;  \r  \t           I   F    
0012700    i   =   0       T   H   E   N       t   o   p   x   1   _   x
0012720    +   n   o   r   W   i   r   e   O   f   f   ;  \r  \t        
0012740    I   F       i       M   O   D       2       =       0       T
0012760    H   E   N  \r  \t                   B   E   G   I   N  \r  \t
0013000   \t   t   o   p   x   2   _   x   +   n   o   r   W   i   r   e
0013020    O   f   f   +   w   W   i   d   ;  \r  \t  \t   [   d   x   ,
0013040    l   p   ]   _   m   a 376 001  \0 020   C   k   T   o   p   W
0013060    i   r   e   [   x   +   n   o   r   W   i   r   e   O   f   f
0013100    ,   l   p   ,   g   c   .   i   n   C   n   t   ]   ;  \r  \t
0013120   \t   x   _   x   +   d   x   ;  \r  \t  \t   m   x   _   M   A
0013140    X   [   m   x   ,   t   o   p   x   2   ]   ;  \r  \t        
0013160            E   N   D  \r  \t       E   L   S   E  \r  \t        
0013200            B   E   G   I   N  \r  \t  \t   [   d   x   ,   w   i
0013220    d   t   h   ,   l   p   ]   _   m   a   k   C   o   n   t   s
0013240    [   a   c   n   t   ,   (   I   F       i   =   g   c   .   n
0013260    o   r   C   n   t   -   1       T   H   E   N       0  \r  \t
0013300   \t  \t   E   L   S   E       g   c   .   a   n   d   s   [   i
0013320    +   1   ]   )   ,   x   ,   y   ,   m   a   x   y   ,   l   p
0013340    ,   g   c   .   i   n   C   n   t   ]   ;  \r  \t  \t   b   o
0013360    t   x   _   x   +   2   ;  \r  \t  \t   m   x   _   M   A   X
0013400    [   m   x   ,   x   +   w   i   d   t   h   ]   ;  \r  \t  \t
0013420    x   _   x   +   d   x   ;  \r  \t                   E   N   D
0013440    ;  \r  \t   E   N   D   L   O   O   P   ; 376 001  \0 331 303
0013460   \r  \t   [   d   x   ,   l   p   ]   _   m   a   k   P   u   [
0013500    t   o   p   x   1   ,   t   o   p   x   2   ,   m   x   ,   l
0013520    p   ,   g   a   t   ,   g   c   .   i   n   C   n   t   ]   ;
0013540   \r  \t   m   x   _   M   A   X   [   m   x   ,   d   x   ]   ;
0013560   \r  \t   I   F       b   o   t   x   >   0       T   H   E   N
0013600   \r  \t                   B   E   G   I   N  \r  \t  \t   l   p
0013620    _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,   m
0013640    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0013660    [   b   o   t   x   +   m   w   W   i   d   ,   6   ,   m   e
0013700    t   ]  \r  \t  \t  \t   ,   0   ,   m   a   x   y   -   2   ,
0013720    2   ,   0   ]   ]   ;  \r  \t                   E   N   D   ;
0013740   \r  \t   g   a   t   .   g   n   d   _   [   b   o   t   x   +
0013760    2   ,   m   a   x   y   -   2   ]   ;  \r  \t   o   b   _   m
0014000    a   k   e   C   e   l   l   [   m   x   ,   m   a   x   y   +
0014020    4   ,   0   ,   l   p   ]   ;  \r  \t   c   p   _   a   l   o
0014040    c   C   L   i   s   t   [   ]   ;  \r  \t   c   p   .   o   b
0014060  376 001  \0 020 320   _   o   b   ;  \r  \t   c   p   .   n   a
0014100    m   e   _   m   a   k   e   C   e   l   l   N   a   m   e   [
0014120    g   c   ]   ;  \r  \t   o   b   .   r   e   t   u   r   n   a
0014140    b   l   e   _   F   A   L   S   E   ;  \r  \t   g   a   t   .
0014160    c   e   l   l   _   c   p   ;  \r  \t   c   p   .   n   x   t
0014200    _   c   e   l   l   L   i   s   t   ;  \r  \t   c   e   l   l
0014220    L   i   s   t   _   c   p   ;  \r                   E   N   D
0014240    ;  \r  \r   m   a   k   e   C   e   l   l   N   a   m   e   :
0014260    P   R   O   C   E   D   U   R   E   [   g   c   :   L   O   N
0014300    G       P   O   I   N   T   E   R       T   O       g   a   t
0014320    e   C   h   a   r   a   c   ]       R   E   T   U   R   N   S
0014340    [   s   :   S   T   R   I   N   G   ]       =  \r            
0014360        B   E   G   I   N  \r  \t   s   s   :   S   T   R   I   N
0014400    G   _   [   1   0   1   ]   ;  \r  \t   s   s   .   l   e   n
0014420    g   t   h   _   0   ;  \r  \t   A   p   p   e   n   d   S   t
0014440    r   i   n   g   [   s   s   ,   "   G   A   T   E   "   ]   ;
0014460   \r  \t   A   p   p 376 001  \0 372 376   e   n   d   D   e   c
0014500    i   m   a   l   [   s   s   ,   c   u   r   r   e   n   t   P
0014520    a   r   a   m   N   u   m   b   e   r   ]   ;  \r  \t   A   p
0014540    p   e   n   d   C   h   a   r   [   s   s   ,   '   -   ]   ;
0014560   \r  \t   A   p   p   e   n   d   D   e   c   i   m   a   l   [
0014600    s   s   ,   g   c   .   n   o   r   C   n   t   ]   ;  \r  \t
0014620    F   O   R       i   :   I   N   T   E   G   E   R       I   N
0014640        [   0   .   .   g   c   .   n   o   r   C   n   t   )    
0014660    D   O  \r  \t           I   F       s   s   .   l   e   n   g
0014700    t   h   >   9   2       T   H   E   N       B   E   G   I   N
0014720        A   p   p   e   n   d   S   t   r   i   n   g   [   s   s
0014740    ,   "   .   E   T   C   "   ]   ;   E   X   I   T   ;   E   N
0014760    D   ;  \r  \t           I   F       g   c   .   a   n   d   s
0015000    [   i   ]   >   1       T   H   E   N  \r  \t                
0015020    B   E   G   I   N  \r  \t  \t   A   p   p   e   n   d   C   h
0015040    a   r   [   s   s   ,   '   -   ]   ;  \r  \t  \t   A   p   p
0015060    e   n   d   C   h   a   r   [   s   s 376 001  \0 256 256   ,
0015100    (   '   A   +   i   )   ]   ;  \r  \t  \t   A   p   p   e   n
0015120    d   D   e   c   i   m   a   l   [   s   s   ,   g   c   .   a
0015140    n   d   s   [   i   ]   ]   ;  \r  \t                   E   N
0015160    D   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   s   _
0015200    n   e   w   S   t   r   i   n   g   [   s   s   ]   ;  \r    
0015220                E   N   D   ;  \r  \r   m   A   n   d   1   :   m
0015240    A   n   d   P   r   o   c   d       =  \r                   B
0015260    E   G   I   N  \r  \t   O   P   E   N       c   u   r   r   e
0015300    n   t   P   a   r   a   m   e   t   e   r   s   ;  \r  \t   i
0015320    :   I   N   T   E   G   E   R   ;  \r  \t   l   l   :   L   O
0015340    N   G       P   O   I   N   T   E   R       T   O       l   i
0015360    s   t   ;  \r  \t   d   x   _   0   ;  \r  \t   g   a   t   .
0015400    f   i   r   s   t   I   n   T   o   p   A   v   a   i   l   _
0015420    T   R   U   E   ;  \r  \t   I   F       t   o   t   I   n   s
0015440    =   1       T   H   E   N  \r  \t                   B   E   G
0015460    I   N  \r  \t  \t   y   _   y   +   i   n   v   O   f   f 376
0015500  001  \0 343   Z   ;  \r  \t  \t   l   l   _   m   a   k   e   L
0015520    i   s   t   [   m   a   k   e   X   s   t   r   [   s   t   a
0015540    n   d   W   i   d   t   h   ,   c   L   e   n   g   t   h   ]
0015560    ,   x   ,   y   -   4   ,   0   ,   0   ]   ;  \r  \t  \t   l
0015600    p   _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,
0015620    l   l   ]   ;  \r  \t  \t   g   a   t   .   i   n   s   [   0
0015640    ]   _   [   x   ,   y   ]   ;  \r  \t  \t   g   a   t   .   f
0015660    i   r   s   t   I   n   T   o   p   _   [   x   -   2   ,   y
0015700    +   4   ]   ;  \r  \t  \t   g   a   t   .   r   S   p   a   c
0015720    _   2   ;  \r  \t  \t   g   a   t   .   l   S   p   a   c   _
0015740    3   ;  \r  \t  \t   d   x   _   s   t   a   n   d   W   i   d
0015760    t   h   +   2   ;  \r  \t  \t   n   l   _   l   p   ;  \r  \t
0016000   \t   w   i   d   _   d   x   +   6   ;  \r  \t  \t   R   E   T
0016020    U   R   N   ;  \r  \t                   E   N   D   ;  \r  \t
0016040    I   F       i   n   p   u   t   s   =   0       T   H   E   N
0016060        g   a   t   .   l   S   p   a   c   _   g   a   t   .   r
0016100    S   p   a   c 376 001  \0 200 363   _   1   ;  \r  \t   F   O
0016120    R       i       I   N       [   0   .   .   a   C   n   t   )
0016140        D   O  \r  \t           l   l   _   m   a   k   e   L   i
0016160    s   t   [   m   a   k   e   X   s   t   r   [   s   t   a   n
0016200    d   W   i   d   t   h   *   a   C   n   t   ,   c   L   e   n
0016220    g   t   h   ]   ,   x   +   d   x   ,   y   ,   2   ,   0   ]
0016240    ;  \r  \t           l   p   _   i   n   s   e   r   t   L   i
0016260    s   t   [   l   p   ,   l   l   ]   ;  \r  \t           g   a
0016300    t   .   i   n   s   [   i   n   p   u   t   s   +   i   ]   _
0016320    [   x   +   d   x   +   4   +   c   L   e   n   g   t   h   /
0016340    2   ,   y   +   s   t   a   n   d   W   i   d   t   h   *   a
0016360    C   n   t   +   6   ]   ;  \r  \t           I   F       i   n
0016400    p   u   t   s   +   i   =   0       T   H   E   N       g   a
0016420    t   .   f   i   r   s   t   I   n   T   o   p   _   [   x   +
0016440    d   x   +   4   +   c   L   e   n   g   t   h   /   2   ,   y
0016460    +   2   ]   ;  \r  \t           d   x   _   d   x   +   8   ;
0016500   \r  \t   E   N   D   L   O   O   P 376 001  \0   @ 271   ;  \r
0016520   \t   n   l   _   l   p   ;  \r  \t   w   i   d   _   d   x   +
0016540    4   ;  \r                   E   N   D   ;  \r   m   P   u   1
0016560    :   m   P   u   P   r   o   c   d       =  \r                
0016600    B   E   G   I   N  \r  \t   O   P   E   N       c   u   r   r
0016620    e   n   t   P   a   r   a   m   e   t   e   r   s   ;  \r  \t
0016640    l   p   p   :   L   O   N   G       P   O   I   N   T   E   R
0016660        T   O       l   i   s   t   ;  \r  \t   w   i   d   :   I
0016700    N   T   E   G   E   R   _   p   u   t   W   i   d   +   1   2
0016720    ;  \r  \t   t   :   I   N   T   E   G   E   R   _   x   2   -
0016740    w   i   d   ;  \r  \t   o   x   :   I   N   T   E   G   E   R
0016760    _   m   x   +   g   a   t   .   r   S   p   a   c   *   2   ;
0017000   \r  \t   y   :   I   N   T   E   G   E   R   _   1   6   ;  \r
0017020   \t   I   F       t   o   t   I   n   s   =   1       T   H   E
0017040    N  \r  \t                   B   E   G   I   N  \r  \t  \t   x
0017060    2   _   x   1   ;  \r  \t  \t   x   1   _   x   1   -   s   t
0017100    a   n   d   W   i   d   t   h   ;  \r  \t  \t   t   _ 376 001
0017120   \0   /       x   2   -   w   i   d   ;  \r  \t  \t   y   _   y
0017140    +   i   n   v   O   f   f   ;  \r  \t                   E   N
0017160    D   ;  \r  \t   I   F       t   <   x   1       T   H   E   N
0017200        t   _   M   I   N   [   x   1   ,   m   x   -   w   i   d
0017220    ]   ;  \r  \t   I   F       t   <   0       T   H   E   N    
0017240    t   _   0   ;  \r  \t   x   1   _   M   I   N   [   t   ,   x
0017260    1   ]   ;  \r  \t   x   2   _   M   A   X   [   x   2   ,   t
0017300    +   w   i   d   ]   ;  \r  \t   l   p   p   _   m   a   k   e
0017320    L   i   s   t   [   m   a   k   e   W   i   r   e   [   x   2
0017340    -   x   1   ,   w   W   i   d   ,   d   i   f   ]   ,   x   1
0017360    ,   y   +   8   ,   2   ,   0   ]   ;  \r  \t   l   p   _   i
0017400    n   s   e   r   t   L   i   s   t   [   l   p   ,   l   p   p
0017420    ]   ;  \r  \t   l   p   p   _   m   a   k   e   L   i   s   t
0017440    [   m   a   k   e   B   u   t   c   o   n   [   ]   ,   t   ,
0017460    y   ,   0   ,   0   ]   ;  \r  \t   l   p   _   i   n   s   e
0017500    r   t   L   i   s   t   [   l   p   ,   l   p   p   ]   ;  \r
0017520   \t   l   p 376 001  \0 210 006   p   _   m   a   k   e   L   i
0017540    s   t   [   m   a   k   e   D   i   f   c   o   n   [   M   A
0017560    X   [   8   ,   p   u   t   W   i   d   ]   ]   ,   t   +   1
0017600    2   ,   0   ,   2   ,   0   ]   ;  \r  \t   l   p   _   i   n
0017620    s   e   r   t   L   i   s   t   [   l   p   ,   l   p   p   ]
0017640    ;  \r  \t   d   x   _   M   A   X   [   t   +   w   i   d   +
0017660    4   ,   x   2   ]   ;  \r  \t   I   F       t   +   w   i   d
0017700    +   2   <   o   x       T   H   E   N  \r  \t                
0017720    B   E   G   I   N  \r  \t  \t   d   x   _   M   A   X   [   o
0017740    x   +   2   ,   d   x   ]   ;  \r  \t  \t   l   p   p   _   m
0017760    a   k   e   L   i   s   t   [   m   a   k   e   W   i   r   e
0020000    [   o   x   -   t   -   w   i   d   ,   4   ,   p   o   l   ]
0020020    ,   t   +   w   i   d   +   2   ,   y   +   2   ,   2   ,   0
0020040    ]   ;  \r  \t  \t   l   p   _   i   n   s   e   r   t   L   i
0020060    s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t  \t   g   a
0020100    t   .   o   u   t   _   [   o   x   +   2   ,   y   +   2   ]
0020120    ;  \r  \t                   E 376 001  \0 214 202   N   D  \r
0020140   \t       E   L   S   E  \r  \t                   B   E   G   I
0020160    N  \r  \t  \t   g   a   t   .   o   u   t   _   [   t   +   w
0020200    i   d   +   4   ,   y   +   2   ]   ;  \r  \t                
0020220    E   N   D   ;  \r  \t   l   p   p   _   m   a   k   e   L   i
0020240    s   t   [   m   a   k   e   W   i   r   e   [   y   -   6   ,
0020260    p   u   t   W   i   d   ,   d   i   f   ]   ,   t   +   1   2
0020300    ,   6   ,   0   ,   0   ]   ;  \r  \t   l   p   _   i   n   s
0020320    e   r   t   L   i   s   t   [   l   p   ,   l   p   p   ]   ;
0020340   \r  \t   l   p   p   _   m   a   k   e   L   i   s   t   [   m
0020360    a   k   e   X   s   t   r   [   p   u   t   W   i   d   ,   p
0020400    u   t   L   e   n   ,   T   R   U   E   ]   ,   t   +   8   ,
0020420    y   -   2   ,   0   ,   0   ]   ;  \r  \t   n   l   _   i   n
0020440    s   e   r   t   L   i   s   t   [   l   p   ,   l   p   p   ]
0020460    ;  \r                   E   N   D   ;  \r   m   P   u   2   :
0020500    m   P   u   P   r   o   c   d       =  \r                   B
0020520    E   G   I   N  \r  \t   O   P   E   N       c   u 376 001  \0
0020540   \v   f   r   r   e   n   t   P   a   r   a   m   e   t   e   r
0020560    s   ;  \r  \t   l   p   p   :   L   O   N   G       P   O   I
0020600    N   T   E   R       T   O       l   i   s   t   ;  \r  \t   w
0020620    i   d   :   I   N   T   E   G   E   R   =   1   0   ;  \r  \t
0020640    t   :   I   N   T   E   G   E   R   _   x   2   -   w   i   d
0020660    ;  \r  \t   o   x   :   I   N   T   E   G   E   R   _   m   x
0020700    +   g   a   t   .   r   S   p   a   c   *   2   ;  \r  \t   y
0020720    :   I   N   T   E   G   E   R   _   s   t   r   t   Y   -   1
0020740    2   ;  \r  \t   I   F       t   o   t   I   n   s   =   1    
0020760    T   H   E   N  \r  \t                   B   E   G   I   N  \r
0021000   \t  \t   x   2   _   x   1   ;  \r  \t  \t   x   1   _   x   1
0021020    -   s   t   a   n   d   W   i   d   t   h   ;  \r  \t  \t   t
0021040    _   x   2   -   w   i   d   ;  \r  \t  \t   y   _   y   +   i
0021060    n   v   O   f   f   ;  \r  \t                   E   N   D   ;
0021100   \r  \t   I   F       t   <   x   1   -   2       T   H   E   N
0021120        t   _   M   I   N   [   x   1   -   2   ,   m   x   -   w
0021140    i   d 376 001  \0 213   N   ]   ;  \r  \t   I   F       t   <
0021160    0       T   H   E   N       t   _   0   ;  \r  \t   x   1   _
0021200    M   I   N   [   t   +   2   ,   x   1   ]   ;  \r  \t   x   2
0021220    _   M   A   X   [   x   2   ,   t   +   w   i   d   ]   ;  \r
0021240   \t   l   p   p   _   m   a   k   e   L   i   s   t   [   m   a
0021260    k   e   W   i   r   e   [   x   2   -   x   1   ,   w   W   i
0021300    d   ,   d   i   f   ]   ,   x   1   ,   y   +   6   ,   2   ,
0021320    0   ]   ;  \r  \t   l   p   _   i   n   s   e   r   t   L   i
0021340    s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t   l   p   p
0021360    _   m   a   k   e   L   i   s   t   [   m   a   k   e   D   i
0021400    f   c   o   n   [   8   ]   ,   t   +   2   ,   0   ,   2   ,
0021420    0   ]   ;  \r  \t   l   p   _   i   n   s   e   r   t   L   i
0021440    s   t   [   l   p   ,   l   p   p   ]   ;  \r  \t   d   x   _
0021460    M   A   X   [   t   +   w   i   d   +   2   ,   x   2   ]   ;
0021500   \r  \t   I   F       t   +   w   i   d   <   o   x       T   H
0021520    E   N  \r  \t                   B   E   G   I   N  \r  \t  \t
0021540    d   x   _   M   A   X   [ 376 001  \0 177 327   o   x   +   2
0021560    ,   d   x   ]   ;  \r  \t  \t   l   p   p   _   m   a   k   e
0021600    L   i   s   t   [   m   a   k   e   W   i   r   e   [   o   x
0021620    -   t   -   w   i   d   ,   4   ,   p   o   l   ]   ,   t   +
0021640    w   i   d   +   2   ,   y   ,   2   ,   0   ]   ;  \r  \t  \t
0021660    l   p   _   i   n   s   e   r   t   L   i   s   t   [   l   p
0021700    ,   l   p   p   ]   ;  \r  \t  \t   g   a   t   .   o   u   t
0021720    _   [   o   x   +   2   ,   y   ]   ;  \r  \t                
0021740    E   N   D  \r  \t       E   L   S   E  \r  \t                
0021760    B   E   G   I   N  \r  \t  \t   g   a   t   .   o   u   t   _
0022000    [   t   +   w   i   d   +   4   ,   y   ]   ;  \r  \t        
0022020            E   N   D   ;  \r  \t   l   p   p   _   m   a   k   e
0022040    L   i   s   t   [   m   a   k   e   P   u   l   l   u   p   [
0022060    p   u   t   W   i   d   ,   p   u   t   L   e   n   ]   ,   t
0022100    ,  \r  \t  \t   (   I   F       t   o   t   I   n   s   >   1
0022120        T   H   E   N       8       E   L   S   E       i   n   v
0022140    O   f   f   +   8   )   ,   0   ,   0   ]   ; 376 001  \0   m
0022160  330  \r  \t   n   l   _   i   n   s   e   r   t   L   i   s   t
0022200    [   l   p   ,   l   p   p   ]   ;  \r  \t   I   F       t   o
0022220    t   I   n   s   =   1       T   H   E   N  \r  \t            
0022240        B   E   G   I   N  \r  \t  \t   l   p   p   _   m   a   k
0022260    e   L   i   s   t   [   m   a   k   e   W   i   r   e   [   i
0022300    n   v   O   f   f   +   4   ,   p   u   t   W   i   d   ,   d
0022320    i   f   ]   ,   t   +   4   ,   6   ,   0   ,   0   ]   ;  \r
0022340   \t  \t   n   l   _   i   n   s   e   r   t   L   i   s   t   [
0022360    n   l   ,   l   p   p   ]   ;  \r  \t                   E   N
0022400    D   ;  \r                   E   N   D   ;  \r   m   T   W   1
0022420    :   m   T   W   P   r   o   c   d       =  \r                
0022440    B   E   G   I   N  \r  \t   I   F       t   o   t   I   n   s
0022460    =   1       T   H   E   N       {   d   x   _   1   0   ;   n
0022500    l   _   l   p   ;   R   E   T   U   R   N   }   ;  \r  \t   n
0022520    l   _   m   a   k   e   L   i   s   t   [   m   a   k   e   W
0022540    i   r   e   [   1   4   ,   c   u   r   r   e   n   t   P   a
0022560    r 376 001  \0   4 300   a   m   e   t   e   r   s   .   w   W
0022600    i   d   ,   d   i   f   ]   ,  \r  \t  \t   x   ,   c   u   r
0022620    r   e   n   t   P   a   r   a   m   e   t   e   r   s   .   s
0022640    t   r   t   Y   -   6   ,   0   ,   0   ]   ;  \r  \t   n   l
0022660    _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,   n
0022700    l   ]   ;  \r  \t   d   x   _   c   u   r   r   e   n   t   P
0022720    a   r   a   m   e   t   e   r   s   .   w   W   i   d   ;  \r
0022740                    E   N   D   ;  \r   m   C   o   n   t   1   :
0022760    m   C   o   n   t   P   r   o   c   d       =  \r            
0023000        B   E   G   I   N  \r  \t   O   P   E   N       c   u   r
0023020    r   e   n   t   P   a   r   a   m   e   t   e   r   s   ;  \r
0023040   \t   l   h   ,   r   h   ,   n   y   ,   c   :   I   N   T   E
0023060    G   E   R   ;  \r  \t   l   h   _   s   t   a   n   d   W   i
0023100    d   t   h   *   l   C   n   t   ;  \r  \t   r   h   _   s   t
0023120    a   n   d   W   i   d   t   h   *   r   C   n   t   ;  \r  \t
0023140    I   F       t   o   t   I   n   s   =   1       T   H   E   N
0023160   \r  \t                 376 001  \0   {   9   B   E   G   I   N
0023200   \r  \t  \t   x   _   x   +   6   ;  \r  \t  \t   y   _   y   -
0023220    2   +   i   n   v   O   f   f   ;  \r  \t  \t   n   y   _   y
0023240        +       8   ;  \r  \t  \t   n   l   _   m   a   k   e   L
0023260    i   s   t   [   m   a   k   e   D   i   f   c   o   n   [   8
0023300    ]   ,   x   ,   n   y   ,   0   ,   0   ]   ;  \r  \t  \t   l
0023320    p   _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,
0023340    n   l   ]   ;  \r  \t  \t   n   l   _   m   a   k   e   L   i
0023360    s   t   [   m   a   k   e   W   i   r   e   [   l   h   ,   4
0023400    ,   d   i   f   ]   ,   x   ,   n   y   +   2   ,   2   ,   0
0023420    ]   ;  \r  \t  \t   l   p   _   i   n   s   e   r   t   L   i
0023440    s   t   [   l   p   ,   n   l   ]   ;  \r  \t  \t   I   F    
0023460    m   a   x   y   -   n   y   >   2       T   H   E   N  \r  \t
0023500   \t                   B   E   G   I   N  \r  \t  \t  \t   n   l
0023520    _   m   a   k   e   L   i   s   t   [   m   a   k   e   W   i
0023540    r   e   [   m   a   x   y   -   n   y   +   2   ,   m   w   W
0023560    i   d   ,   m   e   t   ]   ,   x   ,   n 376 001  \0 305 320
0023600    y   +   2   ,   0   ,   0   ]   ;  \r  \t  \t  \t   n   l   _
0023620    i   n   s   e   r   t   L   i   s   t   [   l   p   ,   n   l
0023640    ]   ;  \r  \t  \t                   E   N   D   ;  \r  \t  \t
0023660    d   x   _   2   ;  \r  \t  \t   w   i   d   _   2   ;  \r  \t
0023700   \t   R   E   T   U   R   N   ;  \r  \t                   E   N
0023720    D   ;  \r  \t   x   _   x   +   2   ;  \r  \t   c   _   I   F
0023740        M   A   X   [   r   h   ,   l   h   ]   <   1   2       T
0023760    H   E   N       1       E   L   S   E       (   M   A   X   [
0024000    r   h   ,   l   h   ]   -   8   )   /   1   6   +   1   ;  \r
0024020   \t   y   _   y   +   4   ;  \r  \t   n   y   _   y       +    
0024040    (   (   M   A   X   [   r   h   ,   l   h   ]   -   8   )   M
0024060    O   D       1   6   )   ;  \r  \t   F   O   R       i   :   I
0024100    N   T   E   G   E   R       I   N       [   0   .   .   c   )
0024120        D   O  \r  \t           n   l   _   m   a   k   e   L   i
0024140    s   t   [   m   a   k   e   D   i   f   c   o   n   [   8   ]
0024160    ,   x   ,   n   y   +   i   *   1   6   ,   0   ,   0   ]   ;
0024200  376 001  \0 272   U  \r  \t           l   p   _   i   n   s   e
0024220    r   t   L   i   s   t   [   l   p   ,   n   l   ]   ;  \r  \t
0024240    E   N   D   L   O   O   P   ;  \r  \t   n   l   _   m   a   k
0024260    e   L   i   s   t   [   m   a   k   e   W   i   r   e   [   M
0024300    A   X   [   r   h   ,   l   h   ]   ,   4   ,   d   i   f   ]
0024320    ,   x   +   2   ,   y   ,   0   ,   0   ]   ;  \r  \t   l   p
0024340    _   i   n   s   e   r   t   L   i   s   t   [   l   p   ,   n
0024360    l   ]   ;  \r  \t   n   l   _   m   a   k   e   L   i   s   t
0024400    [   m   a   k   e   W   i   r   e   [   m   a   x   y   -   n
0024420    y   +   4   ,   m   w   W   i   d   ,   m   e   t   ]   ,   x
0024440    ,   n   y   ,   0   ,   0   ]   ;  \r  \t   n   l   _   i   n
0024460    s   e   r   t   L   i   s   t   [   l   p   ,   n   l   ]   ;
0024500   \r  \t   d   x   _   8   ;  \r  \t   w   i   d   _   1   0   ;
0024520   \r                   E   N   D   ;  \r   m   C   a   l   c   1
0024540    :   c   a   l   c   M   y   P   r   o   c   d       =  \r    
0024560                B   E   G   I   N  \r  \t   m   y   _   0   ;  \r
0024600   \t   F   O   R     376  \0 211 020   l   i   :   I   N   T   E
0024620    G   E   R       I   N       [   0   .   .   g   c   .   n   o
0024640    r   C   n   t   )       D   O  \r  \t           m   y   _   M
0024660    A   X   [   m   y   ,   g   c   .   a   n   d   s   [   i   ]
0024700    ]   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   m   y
0024720    _   m   y   *   c   u   r   r   e   n   t   P   a   r   a   m
0024740    e   t   e   r   s   .   s   t   a   n   d   W   i   d   t   h
0024760    +   8   ;  \r                   E   N   D   ;  \r  \r  \r    
0025000        E   N   D   .       -   -       o   f       r   l   g   a
0025020    t   e  \r 377  \0  \0   r   l   i   n   .   m   e   s   a  \0
0025040  373 227 366 204 260  \0  \0 376 001  \0 275 240   -   -       a
0025060        p   r   o   g   r   a   m       t   o       r   u   n    
0025100    w   i   t   h   i   n       C   h   i   p   m   o   n   k  \r
0025120   \r   -   -       l   a   s   t       m   o   d   i   f   i   e
0025140    d       b   y       P   e   t   i   t   ,       O   c   t   o
0025160    b   e   r       1   3   ,       1   9   8   1           8   :
0025200    0   0       P   M  \r   -   -       w   r   i   t   t   e   n
0025220        b   y       P   e   t   i   t   ,       O   c   t   o   b
0025240    e   r       9   ,       1   9   8   1           2   :   0   4
0025260        P   M  \r  \r   D   I   R   E   C   T   O   R   Y  \r    
0025300        p   p   d   d   e   f   s   ,  \r           p   p   d   e
0025320    f   s   ,  \r           r   l   d   e   f   s   ,  \r        
0025340    A   l   t   o   F   i   l   e   D   e   f   s   ,  \r        
0025360    Z   o   n   e   A   l   l   o   c   D   e   f   s   ,  \r    
0025400        S   t   r   e   a   m   D   e   f   s   ,  \r           D
0025420    i   r   e   c   t   o   r   y   D   e   f   s   ,  \r        
0025440    S   t   r   i   n   g   D   e   f   s   ;  \r 376 001  \0 324
0025460  242  \r   r   l   i   n   :       P   R   O   G   R   A   M  \r
0025500            I   M   P   O   R   T   S       p   p   d   e   f   s
0025520    ,       S   t   r   e   a   m   D   e   f   s   ,       D   i
0025540    r   e   c   t   o   r   y   D   e   f   s   ,       r   l   d
0025560    e   f   s   ,       S   t   r   i   n   g   D   e   f   s  \r
0025600        E   X   P   O   R   T   S       r   l   d   e   f   s    
0025620    =  \r           B   E   G   I   N       O   P   E   N       p
0025640    p   d   d   e   f   s   ,       r   l   d   e   f   s   ,    
0025660    S   t   r   e   a   m   D   e   f   s   ,       D   i   r   e
0025700    c   t   o   r   y   D   e   f   s   ,       p   p   d   e   f
0025720    s   ,       S   t   r   i   n   g   D   e   f   s   ;  \r  \r
0025740   \r           f   H   a   n   d   l   e   :   D   i   s   k   H
0025760    a   n   d   l   e   ;  \r           f   p   :   A   l   t   o
0026000    F   i   l   e   D   e   f   s   .   F   P   ;  \r  \r        
0026020    m   y   Z   o   n   e   :       P   U   B   L   I   C       U
0026040    N   C   O   U   N   T   E   D       Z   O   N   E   ;  \r  \r
0026060      376 001  \0 354 253       f   i   l   e   E   r   r   :   P
0026100    U   B   L   I   C       S   I   G   N   A   L   =   C   O   D
0026120    E   ;  \r           a   b   b   r   t   :   P   U   B   L   I
0026140    C       S   I   G   N   A   L   =   C   O   D   E   ;  \r  \r
0026160   \r   -   -       N   E   W       F   I   L   E       F   O   R
0026200    M   A   T   :  \r  \r   -   -       e   a   c   h       g   a
0026220    t   e       i   s       r   e   p   r   e   s   e   n   t   e
0026240    d       b   y       o   n   e       l   i   n   e       o   f
0026260        t   e   x   t   ,       t   h   u   s   :  \r   -   -    
0026300            <   o   u   t   p   u   t       N   o   d   e       N
0026320    a   m   e   >       (       <   #   >       )       :       <
0026340    i   n   p   u   t       S   p   e   c   >       <   s   e   p
0026360    >       <   i   n   p   u   t       S   p   e   c   >       .
0026400    .   .       <   C   R   >  \r   -   -       W   h   e   r   e
0026420        <   i   n   p   u   t       S   p   e   c   >       i   s
0026440        e   i   t   h   e   r       <   N   o   d   e       N   a
0026460    m   e   >           f 376 001  \0   x 207   o   r       a    
0026500    s   i   n   g   l   e       n   o   r       i   n   p   u   t
0026520   \r   -   -       o   r       [       <   N   o   d   e       N
0026540    a   m   e   >       <   s   e   p   >       <   N   o   d   e
0026560        N   a   m   e   >       .   .   .       ]           f   o
0026600    r       a   n       A   N   D       n   o   r       i   n   p
0026620    u   t  \r   -   -       <   s   e   p   >       i   s       e
0026640    i   t   h   e   r       s   p   a   c   e       o   r       c
0026660    o   m   m   a   .  \r   -   -       N   o   d   e       N   a
0026700    m   e   s       a   r   e       i   d   e   n   t   i   f   i
0026720    e   r   s       (   s   t   r   i   n   g   s       o   f    
0026740    <   D   i   g   i   t   >       a   n   d   /   o   r       <
0026760    L   e   t   t   e   r   >   )  \r   -   -       T   h   e    
0027000    "   (       <   #   >       )   "       f   o   l   l   o   w
0027020    i   n   g       t   h   e       <   o   u   t   p   u   t    
0027040    N   o   d   e       N   a   m   e   >       i   s       t   h
0027060    e  \r   -   -       p   a   r   a   m   e 376 001  \0 344 330
0027100    t   e   r       (   p   u   l   l   u   p       s   t   r   e
0027120    n   g   t   h   )       i   n   d   e   x   .           I   t
0027140        i   s       o   p   t   i   o   n   a   l   ,       a   n
0027160    d       i   f  \r   -   -       i   t       i   s       l   e
0027200    f   t       o   u   t       t   h   e       c   u   r   r   e
0027220    n   t       d   e   f   a   u   l   t       w   i   l   l    
0027240    b   e       u   s   e   d   .  \r   -   -       A       l   i
0027260    n   e       c   o   n   s   i   s   t   i   n   g       o   f
0027300        o   n   l   y   :       (   <   #   >   )   <   C   R   >
0027320            w   i   l   l       s   e   t       t   h   e       d
0027340    e   f   a   u   l   t   .  \r   -   -       N   .   B   .   :
0027360        i   d   e   n   t   i   f   i   e   r   s       a   r   e
0027400        l   i   m   i   t   e   d       t   o       1   0   0    
0027420    C   h   a   r   a   c   t   e   r   s   !  \r   -   -       f
0027440    i   l   e       e   n   d   s       w   i   t   h       a    
0027460    l   i   n   e       c   o   n   s   i   s   t   i   n   g    
0027500  376 001  \0   6 265   o   f       @  \r  \r   -   -       <   C
0027520    R   >       a   n   d       ;       a   r   e       e   q   u
0027540    i   v   a   l   e   n   t   .           C   o   m   m   a    
0027560    a   n   d       s   p   a   c   e       a   r   e       e   q
0027600    u   i   v   a   l   e   n   t   .  \r   -   -       a       l
0027620    i   n   e       s   t   a   r   t   i   n   g       w   i   t
0027640    h       (   f   i   r   s   t       n   o   n   -   b   l   a
0027660    n   k       c   h   r   )       a       m   i   n   u   s    
0027700    (   -   )       i   s       i   g   n   o   r   e   d   .  \r
0027720   \r  \r   i   t   e   m   T   y   p   e   :   T   Y   P   E    
0027740    =       {   i   d   e   n   t   ,   n   u   m   ,   s   e   p
0027760    ,   l   e   n   d   ,   c   o   l   o   n   ,   l   p   a   r
0030000    ,   r   p   a   r   ,   l   b   r   k   ,   r   b   r   k   ,
0030020    f   e   n   d   ,   c   o   m   m   t   }   ;  \r   p   i   n
0030040    T   y   p   e   :   T   Y   P   E       =       {   o   u   t
0030060    ,   n   o   r   ,   f   i   r   s   t   A   n   d   ,   a   n
0030100    d   }   ;  \r   p 376 001  \0   @ 001   i   n   D   e   f   :
0030120    T   Y   P   E       =       R   E   C   O   R   D   [   n   x
0030140    t   :   L   O   N   G       P   O   I   N   T   E   R       T
0030160    O       p   i   n   D   e   f   ,   n   o   d   e   :   I   N
0030200    T   E   G   E   R   ,   t   y   p   e   :   p   i   n   T   y
0030220    p   e   ]   ;  \r  \r   n   o   d   e   N   a   m   e   L   i
0030240    s   t   :   T   Y   P   E       =       R   E   C   O   R   D
0030260    [   n   x   t   :   L   O   N   G       P   O   I   N   T   E
0030300    R       T   O       n   o   d   e   N   a   m   e   L   i   s
0030320    t   ,  \r  \t   n   o   d   e   :   I   N   T   E   G   E   R
0030340    ,   n   a   m   e   :   S   T   R   I   N   G   ]   ;  \r  \r
0030360    t   e   r   m   C   h   a   r   :   C   H   A   R   A   C   T
0030400    E   R   ;  \r   d   u   m   m   y   t   c   :   C   H   A   R
0030420    A   C   T   E   R       =       1   7   7   C   ;  \r   p   i
0030440    n   s   ,   p   n   p   :   L   O   N   G       P   O   I   N
0030460    T   E   R       T   O       p   i   n   D   e   f   ;  \r   s
0030500    a   v   e   P   D   :   L   O   N   G 376 001  \0 362   1    
0030520    P   O   I   N   T   E   R       T   O       p   i   n   D   e
0030540    f   _   N   I   L   ;  \r   n   n   L   i   s   t   :   L   O
0030560    N   G       P   O   I   N   T   E   R       T   O       n   o
0030600    d   e   N   a   m   e   L   i   s   t   ;  \r  \r   i   n   p
0030620    u   t   C   i   r   c   u   i   t   :   P   U   B   L   I   C
0030640        P   R   O   C   E   D   U   R   E  \r  \t   R   E   T   U
0030660    R   N   S   [   p   n   t   :   L   O   N   G       P   O   I
0030700    N   T   E   R       T   O       G   a   t   e   L   i   s   t
0030720    ,   d   w   C   n   t   ,   m   a   x   N   N   :   I   N   T
0030740    E   G   E   R   ]       =  \r                   B   E   G   I
0030760    N  \r  \t   s   :   S   T   R   I   N   G   ;  \r  \t   o   k
0031000    :   B   O   O   L   E   A   N   ;  \r  \t   t   y   p   :   i
0031020    t   e   m   T   y   p   e   ;  \r  \t   g   c   :   L   O   N
0031040    G       P   O   I   N   T   E   R       T   O       g   a   t
0031060    e   C   h   a   r   a   c   ;  \r  \t   g   a   t   :   L   O
0031100    N   G       P   O   I   N   T   E   R       T   O       g 376
0031120  001  \0 225 017   a   t   e   ;  \r  \t   g   p   ,   m   o   s
0031140    t   R   e   c   e   n   t   :   L   O   N   G       P   O   I
0031160    N   T   E   R       T   O       G   a   t   e   L   i   s   t
0031200    ;  \r  \t   n   o   r   C   n   t   ,   i   n   C   n   t   ,
0031220    i   ,   a   ,   p   a   r   m   :   I   N   T   E   G   E   R
0031240    ;  \r  \t   d   e   f   p   a   r   m   :   I   N   T   E   G
0031260    E   R   _   1   ;   -   -   d   e   f   a   u   l   t  \r  \t
0031300    [   o   k   ,   s   ,   ]   _   t   y   p   e   I   n   [   "
0031320    T   y   p   e       F   i   l   e       N   a   m   e   "   L
0031340    ,   "   W   i   t   h       E   x   t   e   n   s   i   o   n
0031360    "   L   ,   "   "   L   ]   ;  \r  \t   I   F       N   O   T
0031400        o   k       T   H   E   N       S   I   G   N   A   L    
0031420    a   b   b   r   t   ;  \r  \t   o   k   _   o   p   e   n   F
0031440    [   s   ]   ;  \r  \t   p   n   t   _   N   I   L   ;  \r  \t
0031460    p   i   n   s   _   N   I   L   ;  \r  \t   d   w   C   n   t
0031500    _   m   a   x   N   N   _   0   ;  \r  \t   n   n   L   i   s
0031520    t   _   N   I 376 001  \0 270 356   L   ;  \r  \t   W   H   I
0031540    L   E       N   O   T       o   k       D   O  \r  \t        
0031560    [   o   k   ,   s   ,   ]   _   t   y   p   e   I   n   [   "
0031600    N   o       S   u   c   h       F   i   l   e   "   L   ,   "
0031620    T   y   p   e       F   i   l   e       N   a   m   e   "   L
0031640    ,  \r  \t  \t  \t   "   W   i   t   h       E   x   t   e   n
0031660    s   i   o   n   "   L   ]   ;  \r  \t           I   F       N
0031700    O   T       o   k       T   H   E   N       S   I   G   N   A
0031720    L       a   b   b   r   t   ;  \r  \t           o   k   _   o
0031740    p   e   n   F   [   s   ]   ;  \r  \t   E   N   D   L   O   O
0031760    P   ;  \r  \r  \t   t   e   r   m   C   h   a   r   _   d   u
0032000    m   m   y   t   c   ;  \r  \t   D   O  \r  \t           [   t
0032020    y   p   ,   s   ,   a   ]   _   s   c   a   n   [   ]   ;  \r
0032040   \t           I   F       t   y   p   =   f   e   n   d       T
0032060    H   E   N       E   X   I   T   ;  \r  \t           I   F    
0032100    t   y   p   =   c   o   m   m   t       T   H   E   N       U
0032120    N   T   I   L       t   y   p   = 376 001  \0   @ 216   l   e
0032140    n   d       D   O       [   t   y   p   ,   ,   ]   _   s   c
0032160    a   n   [   ]   ;   E   N   D   L   O   O   P   ;  \r  \t    
0032200        I   F       t   y   p   =   l   e   n   d       T   H   E
0032220    N       L   O   O   P   ;  \r  \t           I   F       t   y
0032240    p   =   l   p   a   r       T   H   E   N  \r  \t            
0032260        B   E   G   I   N  \r  \t  \t   d   e   f   p   a   r   m
0032300    _   r   e   a   d   N   u   m   [   ]   ;  \r  \t  \t   c   h
0032320    e   c   k   F   o   r   C   h   r   [   '   )   ]   ;  \r  \t
0032340   \t   [   t   y   p   ,   ,   ]   _   s   c   a   n   [   ]   ;
0032360   \r  \t  \t   I   F       t   y   p   #   l   e   n   d       T
0032400    H   E   N       S   I   G   N   A   L       f   i   l   e   E
0032420    r   r   ;  \r  \t                   E   N   D  \r  \t        
0032440    E   L   S   E       I   F       t   y   p   #   i   d   e   n
0032460    t       T   H   E   N       S   I   G   N   A   L       f   i
0032500    l   e   E   r   r  \r  \t           E   L   S   E  \r  \t    
0032520                B   E   G   I   N  \r  \t  \t   p   a   r 376 001
0032540   \0 327 035   m   _   d   e   f   p   a   r   m   ;  \r  \t  \t
0032560    e   n   t   e   r   P   i   n   [   o   u   t   ,   s   ]   ;
0032600   \r  \t  \t   [   t   y   p   ,   ,   ]   _   s   c   a   n   [
0032620    ]   ;  \r  \t  \t   I   F       t   y   p   =   l   p   a   r
0032640        T   H   E   N  \r  \t  \t                   B   E   G   I
0032660    N  \r  \t  \t  \t   p   a   r   m   _   r   e   a   d   N   u
0032700    m   [   ]   ;  \r  \t  \t  \t   c   h   e   c   k   F   o   r
0032720    C   h   r   [   '   )   ]   ;  \r  \t  \t  \t   [   t   y   p
0032740    ,   ,   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t        
0032760            E   N   D   ;  \r  \t  \t   I   F       t   y   p   #
0033000    c   o   l   o   n       T   H   E   N       S   I   G   N   A
0033020    L       f   i   l   e   E   r   r   ;  \r  \t  \t   I   F    
0033040    N   O   T       p   a   r   m       I   N       p   a   r   m
0033060    a   C   n   t       T   H   E   N       S   I   G   N   A   L
0033100        f   i   l   e   E   r   r   ;  \r  \t  \t   n   o   r   C
0033120    n   t   _   0   ;  \r  \t  \t   D   O  \r  \t  \t           [
0033140    t   y   p 376 001  \0   _   k   ,   s   ,   a   ]   _   s   c
0033160    a   n   [   ]   ;  \r  \t  \t           I   F       t   y   p
0033200    =   l   b   r   k       T   H   E   N  \r  \t  \t            
0033220        B   E   G   I   N  \r  \t  \t  \t   [   t   y   p   ,   s
0033240    ,   a   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t  \t   I
0033260    F       t   y   p   #   i   d   e   n   t       T   H   E   N
0033300        S   I   G   N   A   L       f   i   l   e   E   r   r   ;
0033320   \r  \t  \t  \t   e   n   t   e   r   P   i   n   [   f   i   r
0033340    s   t   A   n   d   ,   s   ]   ;  \r  \t  \t  \t   n   o   r
0033360    C   n   t   _   n   o   r   C   n   t   +   1   ;  \r  \t  \t
0033400   \t   D   O  \r  \t  \t  \t           [   t   y   p   ,   s   ,
0033420    a   ]   _   s   c   a   n   [   ]   ;  \r  \t  \t  \t        
0033440    I   F       t   y   p   =   r   b   r   k       T   H   E   N
0033460        E   X   I   T   ;  \r  \t  \t  \t           I   F       t
0033500    y   p   #   i   d   e   n   t       T   H   E   N       S   I
0033520    G   N   A   L       f   i   l   e   E   r   r   ;  \r  \t  \t
0033540   \t           e   n   t   e   r 376 001  \0   Y 320   P   i   n
0033560    [   a   n   d   ,   s   ]   ;  \r  \t  \t  \t   E   N   D   L
0033600    O   O   P   ;  \r  \t  \t  \t   L   O   O   P   ;  \r  \t  \t
0033620                    E   N   D   ;  \r  \t  \t           I   F    
0033640    t   y   p   =   l   e   n   d       T   H   E   N       E   X
0033660    I   T   ;  \r  \t  \t           I   F       t   y   p   #   i
0033700    d   e   n   t       T   H   E   N       S   I   G   N   A   L
0033720        f   i   l   e   E   r   r   ;  \r  \t  \t           n   o
0033740    r   C   n   t   _   n   o   r   C   n   t   +   1   ;  \r  \t
0033760   \t           e   n   t   e   r   P   i   n   [   n   o   r   ,
0034000    s   ]   ;  \r  \t  \t   E   N   D   L   O   O   P   ;  \r  \t
0034020   \t   g   c   _   G   e   t   S   p   a   c   e   [   S   I   Z
0034040    E   [   g   a   t   e   C   h   a   r   a   c   [   n   o   r
0034060    C   n   t   ]   ]   ]   ;  \r  \t  \t   g   c   .   n   o   r
0034100    C   n   t   _   n   o   r   C   n   t   ;  \r  \t  \t   i   n
0034120    C   n   t   _   i   _   0   ;  \r  \t  \t   p   n   p   _   p
0034140    i   n   s   ;  \r  \t  \t   W   H   I   L   E     376 001  \0
0034160    m 254   p   n   p   #   N   I   L       D   O  \r  \t  \t    
0034200        S   E   L   E   C   T       p   n   p   .   t   y   p   e
0034220        F   R   O   M  \r  \t  \t  \t   o   u   t       =   >    
0034240    {   p   n   p   _   p   n   p   .   n   x   t   ;   L   O   O
0034260    P   }   ;  \r  \t  \t  \t   n   o   r       =   >       {   i
0034300    n   C   n   t   _   i   n   C   n   t   +   1   ;   g   c   .
0034320    a   n   d   s   [   i   ]   _   1   ;   i   _   i   +   1   ;
0034340    p   n   p   _   p   n   p   .   n   x   t   }   ;  \r  \t  \t
0034360   \t   f   i   r   s   t   A   n   d       =   >       B   E   G
0034400    I   N  \r  \t  \t  \t  \t   a   _   1   ;  \r  \t  \t  \t  \t
0034420    i   n   C   n   t   _   i   n   C   n   t   +   1   ;  \r  \t
0034440   \t  \t  \t   p   n   p   _   p   n   p   .   n   x   t   ;  \r
0034460   \t  \t  \t  \t   W   H   I   L   E       p   n   p   #   N   I
0034500    L       A   N   D       p   n   p   .   t   y   p   e   =   a
0034520    n   d       D   O  \r  \t  \t  \t  \t           a   _   a   +
0034540    1   ;  \r  \t  \t  \t  \t           i   n   C   n   t   _   i
0034560    n   C 376 001  \0 310 376   n   t   +   1   ;  \r  \t  \t  \t
0034600   \t           p   n   p   _   p   n   p   .   n   x   t   ;  \r
0034620   \t  \t  \t  \t   E   N   D   L   O   O   P   ;  \r  \t  \t  \t
0034640   \t   g   c   .   a   n   d   s   [   i   ]   _   a   ;  \r  \t
0034660   \t  \t  \t   i   _   i   +   1   ;  \r  \t  \t  \t            
0034700        E   N   D   ;  \r  \t  \t  \t   E   N   D   C   A   S   E
0034720    ;  \r  \t  \t   E   N   D   L   O   O   P   ;  \r  \t  \t   g
0034740    c   .   i   n   C   n   t   _   i   n   C   n   t   ;  \r  \t
0034760   \t   g   a   t   _   g   e   t   G   a   t   e   [   g   c   ,
0035000    p   a   r   m   ]   ;  \r  \t  \t   g   p   _   g   e   t   N
0035020    e   w   G   a   t   e   L   i   s   t   [   i   n   C   n   t
0035040    ]   ;  \r  \t  \t   i   _   0   ;  \r  \t  \t   p   n   p   _
0035060    p   i   n   s   ;  \r  \t  \t   a   _   p   n   p   .   n   o
0035100    d   e   ;  \r  \t  \t   m   a   x   N   N   _   M   A   X   [
0035120    m   a   x   N   N   ,   a   ]   ;  \r  \t  \t   g   p   .   o
0035140    u   t   N   o   d   e   _   a   ;  \r  \t  \t   p   n   p   _
0035160    p   n   p   .   n   x   t 376 001  \0   M 006   ;  \r  \t  \t
0035200    W   H   I   L   E       p   n   p   #   N   I   L       D   O
0035220   \r  \t  \t           a   _   p   n   p   .   n   o   d   e   ;
0035240   \r  \t  \t           g   p   .   n   o   d   e   s   [   i   ]
0035260    _   a   ;  \r  \t  \t           m   a   x   N   N   _   M   A
0035300    X   [   m   a   x   N   N   ,   a   ]   ;  \r  \t  \t        
0035320    i   _   i   +   1   ;  \r  \t  \t           p   n   p   _   p
0035340    n   p   .   n   x   t   ;  \r  \t  \t   E   N   D   L   O   O
0035360    P   ;  \r  \t  \t   d   w   C   n   t   _   d   w   C   n   t
0035400    +   i   n   C   n   t   +   1   ;  \r  \t  \t   g   p   .   g
0035420    a   t   _   g   a   t   ;  \r  \t  \t   g   p   .   n   x   t
0035440    _   N   I   L   ;  \r  \t  \t   I   F       p   n   t   =   N
0035460    I   L       T   H   E   N       p   n   t   _   g   p       E
0035500    L   S   E       m   o   s   t   R   e   c   e   n   t   .   n
0035520    x   t   _   g   p   ;  \r  \t  \t   m   o   s   t   R   e   c
0035540    e   n   t   _   g   p   ;  \r  \t  \t   f   r   e   e   u   p
0035560    P   i   n   s   [   ]   ;  \r  \t             376 001  \0 247
0035600  252       E   N   D   ;  \r  \t   E   N   D   L   O   O   P   ;
0035620   \r                   E   N   D   ;  \r   c   h   e   c   k   F
0035640    o   r   C   h   r   :   P   R   O   C   E   D   U   R   E   [
0035660    c   :   C   H   A   R   A   C   T   E   R   ]       =  \r    
0035700                B   E   G   I   N  \r  \t   c   h   r   :   C   H
0035720    A   R   A   C   T   E   R   ;  \r  \t   W   H   I   L   E    
0035740    (   c   h   r   _   r   e   a   d   C   h   r   [   ]   )    
0035760    =       '           O   R       c   h   r   =   '   ,       O
0036000    R       c   h   r   =   1   1   C       D   O       E   N   D
0036020    L   O   O   P   ;  \r  \t   I   F       c   h   r   #   c    
0036040    T   H   E   N       S   I   G   N   A   L       f   i   l   e
0036060    E   r   r   ;  \r                   E   N   D   ;  \r   o   p
0036100    e   n   F   :   P   R   O   C   E   D   U   R   E       [   f
0036120    n   a   m   e   :       S   T   R   I   N   G   ]  \r  \t   R
0036140    E   T   U   R   N   S       [   B   O   O   L   E   A   N   ]
0036160        =  \r                   B   E   G   I   N  \r  \t   I   F
0036200      376 001  \0   g 323   N   O   T       D   i   r   e   c   t
0036220    o   r   y   L   o   o   k   u   p   [   @   f   p   ,       f
0036240    n   a   m   e   ,       F   A   L   S   E   ]       T   H   E
0036260    N       R   E   T   U   R   N   [   F   A   L   S   E   ]   ;
0036300   \r  \t   f   H   a   n   d   l   e       _       N   e   w   B
0036320    y   t   e   S   t   r   e   a   m   [   f   n   a   m   e   ,
0036340        R   e   a   d   ]   ;  \r  \t   R   E   T   U   R   N   [
0036360    T   R   U   E   ]   ;  \r                   E   N   D   ;  \r
0036400    r   e   a   d   C   h   r   :   P   R   O   C   E   D   U   R
0036420    E       R   E   T   U   R   N   S   [   C   H   A   R   A   C
0036440    T   E   R   ]       =  \r                   B   E   G   I   N
0036460   \r  \t   c   :   C   H   A   R   A   C   T   E   R   _   t   e
0036500    r   m   C   h   a   r   ;  \r  \t   t   e   r   m   C   h   a
0036520    r   _   d   u   m   m   y   t   c   ;  \r  \t   I   F       c
0036540    #   d   u   m   m   y   t   c       T   H   E   N       R   E
0036560    T   U   R   N   [   c   ]   ;  \r  \t   I   F       N   O   T
0036600        f   H   a   n   d 376 001  \0   H 210   l   e   .   e   n
0036620    d   o   f   [   f   H   a   n   d   l   e   ]       T   H   E
0036640    N       R   E   T   U   R   N   [   f   H   a   n   d   l   e
0036660    .   g   e   t   [   f   H   a   n   d   l   e   ]   ]   ;  \r
0036700   \t   R   E   T   U   R   N   [   1   5   C   ]   ;  \r        
0036720            E   N   D   ;  \r   r   e   a   d   N   u   m   :   P
0036740    R   O   C   E   D   U   R   E       R   E   T   U   R   N   S
0036760    [   i   :   I   N   T   E   G   E   R   ]       =  \r        
0037000            B   E   G   I   N  \r  \t   c   :   C   H   A   R   A
0037020    C   T   E   R   ;  \r  \t   i   _   0   ;  \r  \t   W   H   I
0037040    L   E       (   c   _   r   e   a   d   C   h   r   [   ]   )
0037060        =       '           O   R       c   =   '   ,       O   R
0037100        c   =   1   1   C       D   O       E   N   D   L   O   O
0037120    P   ;  \r  \t   W   H   I   L   E       c       I   N       [
0037140    '   0   .   .   '   9   ]       D   O  \r  \t           i   _
0037160    i   *   1   0   +   (   c   -   '   0   )   ;  \r  \t        
0037200    c   _   r   e   a   d   C   h   r   [   ] 376 001  \0 361 305
0037220    ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   t   e   r
0037240    m   C   h   a   r   _   c   ;  \r                   E   N   D
0037260    ;  \r   s   c   a   n   :   P   R   O   C   E   D   U   R   E
0037300        R   E   T   U   R   N   S   [   t   :   i   t   e   m   T
0037320    y   p   e   ,   s   :   S   T   R   I   N   G   ,   i   :   I
0037340    N   T   E   G   E   R   ]       =  \r                   B   E
0037360    G   I   N  \r  \t   c   :   C   H   A   R   A   C   T   E   R
0037400    ;  \r  \t   s   s   :   S   T   R   I   N   G   _   [   1   0
0037420    0   ]   ;  \r  \t   i   _   0   ;  \r  \t   s   _   N   I   L
0037440    ;  \r  \t   W   H   I   L   E       (   c   _   r   e   a   d
0037460    C   h   r   [   ]   )       =       '           O   R       c
0037500    =   '   ,       O   R       c   =   1   1   C       D   O    
0037520    E   N   D   L   O   O   P   ;  \r  \t   t   _   n   u   m   ;
0037540   \r  \t   I   F       N   O   T       (   c       I   N       [
0037560    '   0   .   .   '   9   ]       O   R       c       I   N    
0037600    [   '   a   .   .   '   z   ]       O   R       c       I   N
0037620  376 001  \0   '   >       [   '   A   .   .   '   Z   ]   )    
0037640    T   H   E   N  \r  \t                   B   E   G   I   N  \r
0037660   \t  \t   S   E   L   E   C   T       c       F   R   O   M  \r
0037700   \t  \t  \t   '   ,   ,   '           =   >       t   _   s   e
0037720    p   ;  \r  \t  \t  \t   '   :       =   >       t   _   c   o
0037740    l   o   n   ;  \r  \t  \t  \t   1   5   C   ,   '   ;       =
0037760    >       t   _   l   e   n   d   ;  \r  \t  \t  \t   '   (    
0040000    =   >       t   _   l   p   a   r   ;  \r  \t  \t  \t   '   [
0040020        =   >       t   _   l   b   r   k   ;  \r  \t  \t  \t   '
0040040    ]       =   >       t   _   r   b   r   k   ;  \r  \t  \t  \t
0040060    '   )       =   >       t   _   r   p   a   r   ;  \r  \t  \t
0040100   \t   '   @       =   >       t   _   f   e   n   d   ;  \r  \t
0040120   \t  \t   '   -       =   >       t   _   c   o   m   m   t   ;
0040140   \r  \t  \t   E   N   D   C   A   S   E       =   >       S   I
0040160    G   N   A   L       f   i   l   e   E   r   r   ;  \r  \t  \t
0040200    R   E   T   U   R   N   ;  \r  \t                   E   N   D
0040220    ;  \r  \t   W   H 376 001  \0 336 031   I   L   E       c    
0040240    I   N       [   '   0   .   .   '   9   ]       O   R       c
0040260        I   N       [   '   a   .   .   '   z   ]       O   R    
0040300    c       I   N       [   '   A   .   .   '   Z   ]       D   O
0040320   \r  \t           I   F       t   =   n   u   m       T   H   E
0040340    N  \r  \t                   B   E   G   I   N  \r  \t  \t   I
0040360    F       c       I   N       [   '   0   .   .   '   9   ]    
0040400    T   H   E   N       i   _   i   *   1   0   +   (   c   -   '
0040420    0   )  \r  \t  \t       E   L   S   E       t   _   i   d   e
0040440    n   t   ;  \r  \t                   E   N   D   ;  \r  \t    
0040460        A   p   p   e   n   d   C   h   a   r   [   s   s   ,   c
0040500    ]   ;  \r  \t           c   _   r   e   a   d   C   h   r   [
0040520    ]   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   s   _
0040540    n   e   w   S   t   r   i   n   g   [   s   s   ]   ;  \r  \t
0040560    t   e   r   m   C   h   a   r   _   c   ;  \r                
0040600    E   N   D   ;  \r   g   e   t   N   e   w   G   a   t   e   L
0040620    i   s   t   :   P   R   O   C   E   D 376 001  \0 260 300   U
0040640    R   E   [   c   n   t   :   I   N   T   E   G   E   R   ]    
0040660    R   E   T   U   R   N   S   [   L   O   N   G       P   O   I
0040700    N   T   E   R       T   O       G   a   t   e   L   i   s   t
0040720    ]       =  \r                   B   E   G   I   N  \r  \t   R
0040740    E   T   U   R   N   [   m   y   Z   o   n   e   .   N   E   W
0040760    [   G   a   t   e   L   i   s   t   [   c   n   t   ]   ]   ]
0041000    ;  \r                   E   N   D   ;  \r  \r   e   n   t   e
0041020    r   P   i   n   :   P   R   O   C   E   D   U   R   E   [   t
0041040    y   p   :   p   i   n   T   y   p   e   ,   s   :   S   T   R
0041060    I   N   G   ]       =  \r                   B   E   G   I   N
0041100   \r  \t   p   :   L   O   N   G       P   O   I   N   T   E   R
0041120        T   O       p   i   n   D   e   f   ;  \r  \t   p   p   :
0041140    L   O   N   G       P   O   I   N   T   E   R       T   O    
0041160    p   i   n   D   e   f   _   g   e   t   P   i   n   D   e   f
0041200    [   ]   ;  \r  \t   p   p   ^   _   [   N   I   L   ,   e   n
0041220    t   e   r   N   o   d   e   N   a   m   e   [   s   ]   , 376
0041240  001  \0  \n 025   t   y   p   ]   ;  \r  \t   I   F       p   i
0041260    n   s   =   N   I   L       T   H   E   N       p   i   n   s
0041300    _   p   p  \r  \t       E   L   S   E  \r  \t                
0041320    B   E   G   I   N  \r  \t  \t   p   _   p   i   n   s   ;  \r
0041340   \t  \t   W   H   I   L   E       p   .   n   x   t   #   N   I
0041360    L       D   O       p   _   p   .   n   x   t   ;   E   N   D
0041400    L   O   O   P   ;  \r  \t  \t   p   .   n   x   t   _   p   p
0041420    ;  \r  \t                   E   N   D   ;  \r                
0041440    E   N   D   ;  \r   g   e   t   P   i   n   D   e   f   :   P
0041460    R   O   C   E   D   U   R   E       R   E   T   U   R   N   S
0041500    [   p   :   L   O   N   G       P   O   I   N   T   E   R    
0041520    T   O       p   i   n   D   e   f   ]       =  \r            
0041540        B   E   G   I   N  \r  \t   I   F       s   a   v   e   P
0041560    D   =   N   I   L       T   H   E   N       R   E   T   U   R
0041600    N   [   m   y   Z   o   n   e   .   N   E   W   [   p   i   n
0041620    D   e   f   ]   ]   ;  \r  \t   p   _   s   a   v   e   P   D
0041640    ;  \r  \t   s 376 001  \0   & 213   a   v   e   P   D   _   p
0041660    .   n   x   t   ;  \r                   E   N   D   ;  \r   f
0041700    r   e   e   u   p   P   i   n   s   :   P   R   O   C   E   D
0041720    U   R   E       =  \r                   B   E   G   I   N  \r
0041740   \t   I   F       s   a   v   e   P   D   =   N   I   L       T
0041760    H   E   N       {   s   a   v   e   P   D   _   p   i   n   s
0042000    ;   p   i   n   s   _   N   I   L   ;   R   E   T   U   R   N
0042020    }   ;  \r  \t   p   n   p   _   s   a   v   e   P   D   ;  \r
0042040   \t   W   H   I   L   E       p   n   p   .   n   x   t   #   N
0042060    I   L       D   O       p   n   p   _   p   n   p   .   n   x
0042100    t   ;   E   N   D   L   O   O   P   ;  \r  \t   p   n   p   .
0042120    n   x   t   _   p   i   n   s   ;  \r  \t   p   i   n   s   _
0042140    N   I   L   ;  \r                   E   N   D   ;  \r   e   n
0042160    t   e   r   N   o   d   e   N   a   m   e   :   P   R   O   C
0042200    E   D   U   R   E   [   s   :   S   T   R   I   N   G   ]    
0042220    R   E   T   U   R   N   S   [   I   N   T   E   G   E   R   ]
0042240        =  \r                   B   E 376 001  \0 352   x   G   I
0042260    N  \r  \t   n   :   I   N   T   E   G   E   R   _   0   ;  \r
0042300   \t   n   n   :   L   O   N   G       P   O   I   N   T   E   R
0042320        T   O       n   o   d   e   N   a   m   e   L   i   s   t
0042340    _   n   n   L   i   s   t   ;  \r  \t   W   H   I   L   E    
0042360    n   n   #   N   I   L       D   O  \r  \t           I   F    
0042400    E   q   u   i   v   a   l   e   n   t   S   t   r   i   n   g
0042420    [   s   ,   n   n   .   n   a   m   e   ]       T   H   E   N
0042440        R   E   T   U   R   N   [   n   n   .   n   o   d   e   ]
0042460    ;  \r  \t           n   _   M   A   X   [   n   ,   n   n   .
0042500    n   o   d   e   ]   ;  \r  \t           n   n   _   n   n   .
0042520    n   x   t   ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t
0042540    n   _   n   +   1   ;  \r  \t   n   n   _   m   y   Z   o   n
0042560    e   .   N   E   W   [   n   o   d   e   N   a   m   e   L   i
0042600    s   t   ]   ;  \r  \t   n   n   .   n   a   m   e   _   s   ;
0042620   \r  \t   n   n   .   n   o   d   e   _   n   ;  \r  \t   n   n
0042640    .   n   x   t   _   n   n   L   i   s   t   ;  \r  \t 376  \0
0042660    ;   V 230   n   n   L   i   s   t   _   n   n   ;  \r  \t   R
0042700    E   T   U   R   N   [   n   ]   ;  \r                   E   N
0042720    D   ;  \r  \r  \r  \r   E   N   D   .       -   -       o   f
0042740        r   l   i   n  \r 032   (   1   7   9   2   )  \r 377  \0
0042760   \0   r   l   m   a   i   n   .   m   e   s   a  \0 373 233   i
0043000    Q      \0  \0 376 001  \0 220 024   -   -       a       p   r
0043020    o   g   r   a   m       t   o       r   u   n       w   i   t
0043040    h   i   n       C   h   i   p   m   o   n   k  \r  \r   -   -
0043060        l   a   s   t       m   o   d   i   f   i   e   d       b
0043100    y       P   e   t   i   t   ,       O   c   t   o   b   e   r
0043120        ?   ,       1   9   8   1           2   :   2   0       P
0043140    M  \r   -   -       w   r   i   t   t   e   n       b   y    
0043160    P   e   t   i   t   ,       O   c   t   o   b   e   r       9
0043200    ,       1   9   8   1           2   :   0   4       P   M  \r
0043220   \r   D   I   R   E   C   T   O   R   Y  \r           p   p   d
0043240    d   e   f   s   ,  \r           p   p   d   d   d   e   f   s
0043260    ,  \r           p   p   d   e   f   s   ,  \r           r   l
0043300    d   e   f   s   ,  \r           Z   o   n   e   A   l   l   o
0043320    c   D   e   f   s   ,  \r           S   t   r   i   n   g   D
0043340    e   f   s   ;  \r  \r   r   l   m   a   i   n   :       P   R
0043360    O   G   R   A   M  \r           I   M   P   O   R   T   S    
0043400    p   p   d   d   e   f   s   ,     376 001  \0 236   G   p   p
0043420    d   e   f   s   ,       Z   o   n   e   A   l   l   o   c   D
0043440    e   f   s   ,       p   p   d   d   d   e   f   s   ,       r
0043460    l   d   e   f   s  \r       -   -   E   X   P   O   R   T   S
0043500        r   l   d   e   f   s   -   -       =  \r           B   E
0043520    G   I   N       O   P   E   N       p   p   d   d   e   f   s
0043540    ,       r   l   d   e   f   s   ,       p   p   d   d   d   e
0043560    f   s   ,       p   p   d   e   f   s   ,       S   t   r   i
0043600    n   g   D   e   f   s   ;  \r  \r  \r                   d   o
0043620    w   n   W   i   r   e   A   r   r   a   y   :   T   Y   P   E
0043640        =       R   E   C   O   R   D   [   S   E   Q   U   E   N
0043660    C   E       C   O   M   P   U   T   E   D       C   A   R   D
0043700    I   N   A   L       O   F       d   o   w   n   W   i   r   e
0043720    R   e   c   ]   ;  \r           d   w   A   r   :   L   O   N
0043740    G       P   O   I   N   T   E   R       T   O       d   o   w
0043760    n   W   i   r   e   A   r   r   a   y   ;  \r                
0044000    n   o   d   e   A   r   r   a   y   :   T   Y   P   E 376 001
0044020   \0 200 345       =       R   E   C   O   R   D   [   S   E   Q
0044040    U   E   N   C   E       C   O   M   P   U   T   E   D       C
0044060    A   R   D   I   N   A   L       O   F       I   N   T   E   G
0044100    E   R   ]   ;  \r           n   o   d   e   A   r   :   L   O
0044120    N   G       P   O   I   N   T   E   R       T   O       n   o
0044140    d   e   A   r   r   a   y   ;  \r                   h   o   r
0044160    L   i   n   e   A   r   r   a   y   :   T   Y   P   E       =
0044200        R   E   C   O   R   D   [   S   E   Q   U   E   N   C   E
0044220        C   O   M   P   U   T   E   D       C   A   R   D   I   N
0044240    A   L       O   F       h   L   i   n   e   R   e   c   ]   ;
0044260   \r           h   l   A   r   :   L   O   N   G       P   O   I
0044300    N   T   E   R       T   O       h   o   r   L   i   n   e   A
0044320    r   r   a   y   ;  \r  \r           h   L   e   v   :   I   N
0044340    T   E   G   E   R   ;  \r           d   o   w   n   W   i   r
0044360    e   C   n   t   ,   m   a   x   N   o   d   e   N   u   m   :
0044400    I   N   T   E   G   E   R   ;  \r           m   a   x   x   ,
0044420    m   a   x 376 001  \0 335   {   y   s   ,   m   i   n   y   s
0044440    :   I   N   T   E   G   E   R   _   0   ;  \r           m   i
0044460    n   e   ,   l   l   :   L   O   N   G       P   O   I   N   T
0044500    E   R       T   O       l   i   s   t   ;  \r  \r  \r   d   o
0044520    S   w   i   t   c   h   :   P   R   O   C   E   D   U   R   E
0044540    [   i   ,   j   :   I   N   T   E   G   E   R   ]       =  \r
0044560                    B   E   G   I   N  \r  \t   t   :   I   N   T
0044600    E   G   E   R   ;  \r  \t   t   _   d   w   A   r   [   i   ]
0044620    .   n   o   d   e   ;   d   w   A   r   [   i   ]   .   n   o
0044640    d   e   _   d   w   A   r   [   j   ]   .   n   o   d   e   ;
0044660    d   w   A   r   [   j   ]   .   n   o   d   e   _   t   ;  \r
0044700   \t   t   _   d   w   A   r   [   i   ]   .   d   w   L   e   f
0044720    t   ;   d   w   A   r   [   i   ]   .   d   w   L   e   f   t
0044740    _   d   w   A   r   [   j   ]   .   d   w   L   e   f   t   ;
0044760    d   w   A   r   [   j   ]   .   d   w   L   e   f   t   _   t
0045000    ;  \r  \t   t   _   d   w   A   r   [   i   ]   .   d   w   R
0045020    i   g   h   t   ;   d   w   A 376 001  \0 360 267   r   [   i
0045040    ]   .   d   w   R   i   g   h   t   _   d   w   A   r   [   j
0045060    ]   .   d   w   R   i   g   h   t   ;   d   w   A   r   [   j
0045100    ]   .   d   w   R   i   g   h   t   _   t   ;  \r  \t   I   F
0045120        (   t   _   d   w   A   r   [   i   ]   .   d   w   L   e
0045140    f   t   )   #   0       T   H   E   N       d   w   A   r   [
0045160    t   ]   .   d   w   R   i   g   h   t   _   i   ;  \r  \t   I
0045200    F       (   t   _   d   w   A   r   [   j   ]   .   d   w   L
0045220    e   f   t   )   #   0       T   H   E   N       d   w   A   r
0045240    [   t   ]   .   d   w   R   i   g   h   t   _   j   ;  \r  \t
0045260    I   F       (   t   _   d   w   A   r   [   i   ]   .   d   w
0045300    R   i   g   h   t   )   #   0       T   H   E   N       d   w
0045320    A   r   [   t   ]   .   d   w   L   e   f   t   _   i   ;  \r
0045340   \t   I   F       (   t   _   d   w   A   r   [   j   ]   .   d
0045360    w   R   i   g   h   t   )   #   0       T   H   E   N       d
0045400    w   A   r   [   t   ]   .   d   w   L   e   f   t   _   j   ;
0045420   \r                   E   N   D   ;  \r   r   u   n 376 001  \0
0045440    g 301   L   e   n   g   t   h   :   P   R   O   C   E   D   U
0045460    R   E   [   i   :   I   N   T   E   G   E   R   ]       R   E
0045500    T   U   R   N   S   [   I   N   T   E   G   E   R   ]       =
0045520   \r                   B   E   G   I   N  \r  \t   l   ,   r   :
0045540    I   N   T   E   G   E   R   ;  \r  \t   l   _   d   w   A   r
0045560    [   i   ]   .   d   w   L   e   f   t   ;  \r  \t   r   _   d
0045600    w   A   r   [   i   ]   .   d   w   R   i   g   h   t   ;  \r
0045620   \t   I   F       l   =   0       T   H   E   N       l   _   i
0045640        E   L   S   E  \r  \t       U   N   T   I   L       d   w
0045660    A   r   [   l   ]   .   d   w   L   e   f   t   =   0       D
0045700    O       l   _   d   w   A   r   [   l   ]   .   d   w   L   e
0045720    f   t   ;   E   N   D   L   O   O   P   ;  \r  \t   I   F    
0045740    r   =   0       T   H   E   N       r   _   i       E   L   S
0045760    E  \r  \t       U   N   T   I   L       d   w   A   r   [   r
0046000    ]   .   d   w   R   i   g   h   t   =   0       D   O       r
0046020    _   d   w   A   r   [   r   ]   .   d   w   R   i   g   h   t
0046040    ;   E 376 001  \0 250 237   N   D   L   O   O   P   ;  \r  \t
0046060    U   N   T   I   L       d   w   A   r   [   l   ]   .   f   i
0046100    x   e   d       O   R       d   w   A   r   [   l   ]   .   r
0046120    i   g   h   t   E   n   d   =   0       O   R       d   w   A
0046140    r   [   l   +   1   ]   .   f   i   x   e   d       D   O    
0046160    l   _   l   +   1   ;   E   N   D   L   O   O   P   ;  \r  \t
0046200    U   N   T   I   L       d   w   A   r   [   r   ]   .   f   i
0046220    x   e   d       O   R       d   w   A   r   [   r   ]   .   l
0046240    e   f   t   E   n   d   =   0       O   R       d   w   A   r
0046260    [   r   -   1   ]   .   f   i   x   e   d       D   O       r
0046300    _   r   -   1   ;   E   N   D   L   O   O   P   ;  \r  \t   R
0046320    E   T   U   R   N   [   r   -   l   ]   ;  \r                
0046340    E   N   D   ;  \r  \r   m   o   v   e   D   o   w   n   :   P
0046360    R   O   C   E   D   U   R   E   [   c   u   r   ,   a   m   t
0046400    :   I   N   T   E   G   E   R   ]       R   E   T   U   R   N
0046420    S   [   I   N   T   E   G   E   R   ]       =  \r            
0046440        B   E   G   I   N  \r 376 001  \0 361   @  \t   t   :   I
0046460    N   T   E   G   E   R   ;  \r  \t   I   F       a   m   t   =
0046500    0       T   H   E   N  \r  \t                   B   E   G   I
0046520    N  \r  \t  \t   a   m   t   _   1   0   0   0   0   ;  \r  \t
0046540   \t   F   O   R       i   :   I   N   T   E   G   E   R       I
0046560    N       [   1   .   .   d   o   w   n   W   i   r   e   C   n
0046600    t   ]       D   O  \r  \t  \t           t   _   h   l   A   r
0046620    [   i   ]   .   d   i   s   t   a   n   c   e   ;  \r  \t  \t
0046640            I   F       t   >   =   0       A   N   D       t   <
0046660    a   m   t       T   H   E   N       a   m   t   _   t   ;  \r
0046700   \t  \t   E   N   D   L   O   O   P   ;  \r  \t  \t   a   m   t
0046720    _   I   F       a   m   t   =   1   0   0   0   0       T   H
0046740    E   N       1       E   L   S   E       a   m   t   +   1   ;
0046760   \r  \t                   E   N   D   ;  \r  \t   F   O   R    
0047000    i   :   I   N   T   E   G   E   R       I   N       [   1   .
0047020    .   d   o   w   n   W   i   r   e   C   n   t   ]       D   O
0047040   \r  \t           I   F       h   l   A   r   [ 376 001  \0 231
0047060    %   i   ]   .   b   t   y   p   =   n   o   n   e       T   H
0047100    E   N       L   O   O   P   ;  \r  \t           t   _   h   l
0047120    A   r   [   i   ]   .   d   i   s   t   a   n   c   e   ;  \r
0047140   \t           t   _   t   -   a   m   t   ;  \r  \t           I
0047160    F       t   <   -   3       T   H   E   N       h   l   A   r
0047200    [   i   ]   _   [   n   o   n   e   ,   -   5   ]  \r  \t    
0047220            E   L   S   E       h   l   A   r   [   i   ]   .   d
0047240    i   s   t   a   n   c   e   _   t   ;  \r  \t   E   N   D   L
0047260    O   O   P   ;  \r  \t   R   E   T   U   R   N   [   c   u   r
0047300    +   a   m   t   ]   ;  \r                   E   N   D   ;  \r
0047320   \r   f   i   n   d   G   a   p   :   P   R   O   C   E   D   U
0047340    R   E   [   s   t   r   t   :   I   N   T   E   G   E   R   ]
0047360        R   E   T   U   R   N   S   [   o   k   :   B   O   O   L
0047400    E   A   N   ,   l   e   ,   r   e   :   I   N   T   E   G   E
0047420    R   ]       =  \r                   B   E   G   I   N  \r  \t
0047440    o   k   _   T   R   U   E   ;  \r  \t   U   N   T   I   L    
0047460    s 376 001  \0 355   i   t   r   t   >   d   o   w   n   W   i
0047500    r   e   C   n   t       O   R       h   l   A   r   [   s   t
0047520    r   t   ]   .   d   i   s   t   a   n   c   e   <   0       D
0047540    O  \r  \t  \t   s   t   r   t   _   s   t   r   t   +   1   ;
0047560    E   N   D   L   O   O   P   ;  \r  \t   l   e   _   r   e   _
0047600    s   t   r   t   ;  \r  \t   I   F       s   t   r   t   >   d
0047620    o   w   n   W   i   r   e   C   n   t       T   H   E   N    
0047640    B   E   G   I   N       o   k   _   F   A   L   S   E   ;   R
0047660    E   T   U   R   N   ;   E   N   D   ;  \r  \t   U   N   T   I
0047700    L       s   t   r   t   >   d   o   w   n   W   i   r   e   C
0047720    n   t       O   R       h   l   A   r   [   s   t   r   t   ]
0047740    .   d   i   s   t   a   n   c   e   >   =   0       D   O  \r
0047760   \t  \t   s   t   r   t   _   s   t   r   t   +   1   ;   E   N
0050000    D   L   O   O   P   ;  \r  \t   r   e   _   s   t   r   t   -
0050020    1   ;  \r                   E   N   D   ;  \r  \r   w   i   r
0050040    e   O   n   e   :   P   R   O   C   E   D   U   R   E   [   l
0050060    e   ,   r   e   :   I 376 001  \0   7 333   N   T   E   G   E
0050100    R   ]       R   E   T   U   R   N   S   [   g   o   t   O   n
0050120    e   ,   a   l   l   D   o   n   e   :   B   O   O   L   E   A
0050140    N   ]       =  \r                   B   E   G   I   N  \r  \t
0050160    i   ,   f   a   v   ,   l   e   n   ,   t   ,   r   e   l   L
0050200    e   v   ,   r   r   :   I   N   T   E   G   E   R   ;  \r  \t
0050220    p   o   l   y   W   i   r   e   :   B   O   O   L   E   A   N
0050240    _   F   A   L   S   E   ;  \r  \t   f   a   v   P   o   l   y
0050260    ,   t   b   ,   w   r   b   l   :   B   O   O   L   E   A   N
0050300    ;  \r  \t   g   o   t   O   n   e   _   F   A   L   S   E   ;
0050320   \r  \t   a   l   l   D   o   n   e   _   T   R   U   E   ;  \r
0050340   \t   F   O   R       i       I   N       [   1   .   .   d   o
0050360    w   n   W   i   r   e   C   n   t   ]       D   O  \r  \t    
0050400        I   F       N   O   T       (   d   w   A   r   [   i   ]
0050420    .   w   i   r   e   d   L   e   f   t       A   N   D       d
0050440    w   A   r   [   i   ]   .   w   i   r   e   d   R   i   g   h
0050460    t   )  \r  \t  \t   T   H   E   N       a 376 001  \0  \b   {
0050500    l   l   D   o   n   e   _   F   A   L   S   E   ;  \r  \t    
0050520        [   w   r   b   l   ,   t   b   ,   t   ]   _   w   i   r
0050540    e   a   b   l   e   [   i   ,   l   e   ,   r   e   ]   ;  \r
0050560   \t           I   F       w   r   b   l       A   N   D       t
0050600    >   0       T   H   E   N  \r  \t                   B   E   G
0050620    I   N  \r  \t  \t   I   F       g   o   t   O   n   e       T
0050640    H   E   N  \r  \t  \t                   B   E   G   I   N  \r
0050660   \t  \t  \t   I   F       t   <   l   e   n       T   H   E   N
0050700        {   f   a   v   _   i   ;   l   e   n   _   t   ;   f   a
0050720    v   P   o   l   y   _   t   b   }   ;  \r  \t  \t            
0050740        E   N   D  \r  \t  \t       E   L   S   E  \r  \t  \t    
0050760                B   E   G   I   N  \r  \t  \t  \t   f   a   v   _
0051000    i   ;  \r  \t  \t  \t   l   e   n   _   t   ;  \r  \t  \t  \t
0051020    f   a   v   P   o   l   y   _   t   b   ;  \r  \t  \t  \t   g
0051040    o   t   O   n   e   _   T   R   U   E   ;  \r  \t  \t        
0051060            E   N   D   ;  \r  \t                   E   N   D   ;
0051100  376 001  \0 254 314  \r  \t   E   N   D   L   O   O   P   ;  \r
0051120   \t   I   F       N   O   T       g   o   t   O   n   e       T
0051140    H   E   N  \r  \t                   B   E   G   I   N  \r  \t
0051160   \t   I   F       l   e   <   =   1       A   N   D       r   e
0051200    >   =   d   o   w   n   W   i   r   e   C   n   t       T   H
0051220    E   N       a   l   l   D   o   n   e   _   T   R   U   E   ;
0051240   \r  \t  \t   R   E   T   U   R   N   ;  \r  \t                
0051260    E   N   D   ;  \r  \t   i   _   f   i   n   a   l   D   W   [
0051300    f   a   v   ]   ;  \r  \t   r   r   _   i   +   l   e   n   ;
0051320   \r  \t   p   o   l   y   W   i   r   e   _   f   a   v   P   o
0051340    l   y   ;  \r  \t   I   F       i   #   f   a   v       T   H
0051360    E   N       d   o   S   w   i   t   c   h   [   i   ,   f   a
0051400    v   ]   ;  \r  \t   I   F       p   o   l   y   W   i   r   e
0051420        A   N   D       d   w   A   r   [   r   r   ]   .   t   o
0051440    p   W   i   r   e   a   b   l   e       T   H   E   N       -
0051460    -       a   s   s   u   m   e   s       i       i   s       o
0051500    u   t   p   u   t 376 001  \0 215 024  \r  \t                
0051520    B   E   G   I   N  \r  \t  \t   t   _   d   w   A   r   [   i
0051540    ]   .   d   w   R   i   g   h   t   ;  \r  \t  \t   d   o   T
0051560    o   p   W   i   r   e   s   [   i   ,   r   r   ]   ;  \r  \t
0051600   \t   d   w   A   r   [   r   r   ]   .   w   i   r   e   d   L
0051620    e   f   t   _   d   w   A   r   [   r   r   ]   .   w   i   r
0051640    e   d   R   i   g   h   t   _   d   w   A   r   [   r   r   ]
0051660    .   f   i   x   e   d   _   T   R   U   E   ;  \r  \t  \t   d
0051700    w   A   r   [   i   ]   .   w   i   r   e   d   L   e   f   t
0051720    _   d   w   A   r   [   i   ]   .   w   i   r   e   d   R   i
0051740    g   h   t   _   d   w   A   r   [   i   ]   .   f   i   x   e
0051760    d   _   T   R   U   E   ;  \r  \t  \t   I   F       d   w   A
0052000    r   [   i   ]   .   d   w   L   e   f   t   =   0       A   N
0052020    D       d   w   A   r   [   r   r   ]   .   d   w   R   i   g
0052040    h   t   =   0       T   H   E   N       R   E   T   U   R   N
0052060    ;  \r  \t  \t   d   w   A   r   [   r   r   ]   .   w   i   r
0052100    e   d   L   e   f   t   _   d   w   A 376 001  \0 336 227   r
0052120    [   r   r   ]   .   w   i   r   e   d   R   i   g   h   t   _
0052140    F   A   L   S   E   ;  \r  \t  \t   t   _   d   w   A   r   [
0052160    i   ]   .   d   w   L   e   f   t   ;  \r  \t  \t   d   w   A
0052200    r   [   r   r   ]   .   d   w   L   e   f   t   _   t   ;  \r
0052220   \t  \t   I   F       t   #   0       T   H   E   N       d   w
0052240    A   r   [   t   ]   .   d   w   R   i   g   h   t   _   r   r
0052260    ;  \r  \t  \t   R   E   T   U   R   N   ;  \r  \t            
0052300        E   N   D   ;  \r  \t   r   e   l   L   e   v   _   0   ;
0052320   \r  \t   F   O   R       t       I   N       [   i   .   .   r
0052340    r   ]       D   O  \r  \t           S   E   L   E   C   T    
0052360    h   l   A   r   [   t   ]   .   b   t   y   p       F   R   O
0052400    M  \r  \t  \t   m   e   t       =   >       I   F       p   o
0052420    l   y   W   i   r   e       T   H   E   N       r   e   l   L
0052440    e   v   _   M   A   X   [   r   e   l   L   e   v   ,   h   l
0052460    A   r   [   t   ]   .   d   i   s   t   a   n   c   e   +   2
0052500    ]  \r  \t  \t  \t   E   L   S   E       r   e   l   L   e 376
0052520  001  \0 034   s   v   _   M   A   X   [   r   e   l   L   e   v
0052540    ,   h   l   A   r   [   t   ]   .   d   i   s   t   a   n   c
0052560    e   +   3   ]   ;  \r  \t  \t   p   o   l   y       =   >    
0052600    r   e   l   L   e   v   _   M   A   X   [   r   e   l   L   e
0052620    v   ,   h   l   A   r   [   t   ]   .   d   i   s   t   a   n
0052640    c   e   +   2   ]   ;  \r  \t  \t   c   e   l   l       =   >
0052660        I   F       N   O   T       p   o   l   y   W   i   r   e
0052700        T   H   E   N  \r  \t  \t  \t   r   e   l   L   e   v   _
0052720    M   A   X   [   r   e   l   L   e   v   ,   h   l   A   r   [
0052740    t   ]   .   d   i   s   t   a   n   c   e   +   3   ]   ;  \r
0052760   \t           E   N   D   C   A   S   E   ;  \r  \t   E   N   D
0053000    L   O   O   P   ;  \r  \t   t   _   i   ;  \r  \t   U   N   T
0053020    I   L       t   =   0       D   O  \r  \t           r   r   _
0053040    f   i   n   a   l   D   W   [   t   ]   ;  \r  \t           I
0053060    F       t   #   r   r       T   H   E   N       d   o   S   w
0053100    i   t   c   h   [   t   ,   r   r   ]   ;  \r  \t           d
0053120    o   D   o   w 376 001  \0   t 312   n   W   i   r   e   [   r
0053140    r   ,   r   e   l   L   e   v   ,   (   N   O   T       p   o
0053160    l   y   W   i   r   e   )   ]   ;  \r  \t           d   w   A
0053200    r   [   r   r   ]   .   w   i   r   e   d   L   e   f   t   _
0053220    d   w   A   r   [   r   r   ]   .   w   i   r   e   d   R   i
0053240    g   h   t   _   d   w   A   r   [   r   r   ]   .   f   i   x
0053260    e   d   _   T   R   U   E   ;  \r  \t           I   F       p
0053300    o   l   y   W   i   r   e       A   N   D       t   #   i    
0053320    T   H   E   N       E   X   I   T   ;  \r  \t           t   _
0053340    d   w   A   r   [   r   r   ]   .   d   w   R   i   g   h   t
0053360    ;  \r  \t   E   N   D   L   O   O   P   ;  \r  \t   d   o   H
0053400    W   i   r   e   [   i   ,   r   r   ,   r   e   l   L   e   v
0053420    ,   p   o   l   y   W   i   r   e   ]   ;  \r  \t   I   F    
0053440    p   o   l   y   W   i   r   e       T   H   E   N  \r  \t    
0053460                B   E   G   I   N  \r  \t  \t   I   F       d   w
0053500    A   r   [   i   ]   .   d   w   L   e   f   t   =   0       A
0053520    N   D       d   w   A   r   [   r 376 001  \0   o 260   r   ]
0053540    .   d   w   R   i   g   h   t   =   0       T   H   E   N    
0053560    R   E   T   U   R   N   ;  \r  \t  \t   I   F       d   w   A
0053600    r   [   r   r   ]   .   d   w   R   i   g   h   t   #   0    
0053620    O   R       d   w   A   r   [   r   r   ]   .   l   e   f   t
0053640    E   n   d   #   0       T   H   E   N  \r  \t  \t            
0053660        B   E   G   I   N  \r  \t  \t  \t   d   w   A   r   [   r
0053700    r   ]   .   w   i   r   e   d   L   e   f   t   _   d   w   A
0053720    r   [   r   r   ]   .   w   i   r   e   d   R   i   g   h   t
0053740    _   F   A   L   S   E   ;  \r  \t  \t  \t   t   _   d   w   A
0053760    r   [   i   ]   .   d   w   L   e   f   t   ;  \r  \t  \t  \t
0054000    d   w   A   r   [   r   r   ]   .   d   w   L   e   f   t   _
0054020    t   ;  \r  \t  \t  \t   I   F       t   #   0       T   H   E
0054040    N       d   w   A   r   [   t   ]   .   d   w   R   i   g   h
0054060    t   _   r   r   ;  \r  \t  \t  \t   I   F       d   w   A   r
0054100    [   r   r   ]   .   l   e   f   t   E   n   d   #   0       T
0054120    H   E   N       d   w   A   r   [   r   r   ]   .   x 376 001
0054140   \0 326 213   _   d   w   A   r   [   r   r   ]   .   x   -   4
0054160    ;  \r  \t  \t                   E   N   D  \r  \t  \t       E
0054200    L   S   E  \r  \t  \t                   B   E   G   I   N  \r
0054220   \t  \t  \t   d   w   A   r   [   i   ]   .   w   i   r   e   d
0054240    L   e   f   t   _   d   w   A   r   [   i   ]   .   w   i   r
0054260    e   d   R   i   g   h   t   _   F   A   L   S   E   ;  \r  \t
0054300   \t  \t   d   w   A   r   [   i   ]   .   d   w   R   i   g   h
0054320    t   _   0   ;  \r  \t  \t                   E   N   D   ;  \r
0054340   \t                   E   N   D   ;  \r                   E   N
0054360    D   ;  \r   w   i   r   e   a   b   l   e   :   P   R   O   C
0054400    E   D   U   R   E   [   i   ,   l   e   ,   r   e   :   I   N
0054420    T   E   G   E   R   ]       R   E   T   U   R   N   S   [   B
0054440    O   O   L   E   A   N   ,   B   O   O   L   E   A   N   ,   I
0054460    N   T   E   G   E   R   ]       =  \r                   B   E
0054500    G   I   N  \r  \t   j   :   I   N   T   E   G   E   R   _   i
0054520    ;  \r  \t   I   F       d   w   A   r   [   i   ]   .   w   i
0054540    r   e   d 376 001  \0 023 360   R   i   g   h   t       A   N
0054560    D       d   w   A   r   [   i   ]   .   w   i   r   e   d   L
0054600    e   f   t       T   H   E   N  \r  \t  \t   R   E   T   U   R
0054620    N   [   F   A   L   S   E   ,   F   A   L   S   E   ,   0   ]
0054640    ;  \r  \t   I   F       d   w   A   r   [   i   ]   .   d   w
0054660    R   i   g   h   t   =   i   +   1       T   H   E   N  \r  \t
0054700                    B   E   G   I   N  \r  \t  \t   I   F       i
0054720    +   1   >   r   e       O   R       i   <   l   e       T   H
0054740    E   N       R   E   T   U   R   N   [   F   A   L   S   E   ,
0054760    F   A   L   S   E   ,   0   ]   ;  \r  \t  \t   R   E   T   U
0055000    R   N   [   T   R   U   E   ,   T   R   U   E   ,   1   ]   ;
0055020   \r  \t                   E   N   D   ;  \r  \t   I   F       d
0055040    w   A   r   [   i   ]   .   d   w   L   e   f   t   #   0    
0055060    O   R       i   +   d   w   A   r   [   i   ]   .   r   i   g
0055100    h   t   E   n   d   <   l   e       T   H   E   N  \r  \t  \t
0055120    R   E   T   U   R   N   [   F   A   L   S   E   ,   F   A   L
0055140    S   E   ,   0   ]   ;  \r  \t 376 001  \0 362 210   I   F    
0055160    i   -   d   w   A   r   [   i   ]   .   l   e   f   t   E   n
0055200    d   >   r   e       T   H   E   N       R   E   T   U   R   N
0055220    [   F   A   L   S   E   ,   F   A   L   S   E   ,   0   ]   ;
0055240   \r  \t   W   H   I   L   E       d   w   A   r   [   j   ]   .
0055260    d   w   R   i   g   h   t   #   0       D   O       j   _   d
0055300    w   A   r   [   j   ]   .   d   w   R   i   g   h   t   ;   E
0055320    N   D   L   O   O   P   ;  \r  \t   U   N   T   I   L       d
0055340    w   A   r   [   i   ]   .   f   i   x   e   d       O   R    
0055360    d   w   A   r   [   i   ]   .   r   i   g   h   t   E   n   d
0055400    =   0       O   R       d   w   A   r   [   i   +   1   ]   .
0055420    f   i   x   e   d       D   O  \r  \t  \t   i   _   i   +   1
0055440    ;   E   N   D   L   O   O   P   ;  \r  \t   U   N   T   I   L
0055460        d   w   A   r   [   j   ]   .   f   i   x   e   d       O
0055500    R       d   w   A   r   [   j   ]   .   l   e   f   t   E   n
0055520    d   =   0       O   R       d   w   A   r   [   j   -   1   ]
0055540    .   f   i   x   e   d       D   O  \r  \t  \t   j 376 001  \0
0055560  035 273   _   j   -   1   ;   E   N   D   L   O   O   P   ;  \r
0055600   \t   I   F       i   <   l   e       O   R       j   >   r   e
0055620        T   H   E   N       R   E   T   U   R   N   [   F   A   L
0055640    S   E   ,   F   A   L   S   E   ,   0   ]   ;  \r  \t   R   E
0055660    T   U   R   N   [   T   R   U   E   ,   F   A   L   S   E   ,
0055700    r   u   n   L   e   n   g   t   h   [   i   ]   ]   ;  \r    
0055720                E   N   D   ;  \r   d   o   D   o   w   n   W   i
0055740    r   e   :   P   R   O   C   E   D   U   R   E   [   d   w   ,
0055760    l   e   v   :   I   N   T   E   G   E   R   ,   c   o   n   t
0056000    :   B   O   O   L   E   A   N   ]       =  \r                
0056020    B   E   G   I   N  \r  \t   c   o   f   f   :   I   N   T   E
0056040    G   E   R   _   2   ;  \r  \t   l   e   v   _   (   l   e   v
0056060    +   h   L   e   v   )   *   2   ;  \r  \t   l   l   _   m   a
0056100    k   e   L   i   s   t   [   m   a   k   e   W   i   r   e   [
0056120    l   e   v   -   d   w   A   r   [   d   w   ]   .   y   +   4
0056140    ,   4   ,   p   o   l   ]  \r  \t  \t   ,   d   w   A   r   [
0056160    d   w 376 001  \0 271   m   ]   .   x   -   2   ,   d   w   A
0056200    r   [   d   w   ]   .   y   ,   0   ,   0   ]   ;  \r  \t   m
0056220    i   n   e   _   i   n   s   e   r   t   L   i   s   t   [   m
0056240    i   n   e   ,   l   l   ]   ;  \r  \t   m   a   x   x   _   M
0056260    A   X   [   m   a   x   x   ,   d   w   A   r   [   d   w   ]
0056300    .   x   +   2   ]   ;  \r  \t   I   F       c   o   n   t    
0056320    T   H   E   N  \r  \t                   B   E   G   I   N  \r
0056340   \t  \t   I   F       d   w   A   r   [   d   w   ]   .   d   w
0056360    R   i   g   h   t   =   0  \r  \t  \t       O   R       (   d
0056400    w   A   r   [   d   w   ]   .   d   w   L   e   f   t   #   0
0056420        A   N   D       d   w   A   r   [   d   w   ]   .   r   i
0056440    g   h   t   E   n   d   >   0  \r  \t  \t  \t   A   N   D    
0056460    N   O   T       d   w   A   r   [   d   w   +   1   ]   .   f
0056500    i   x   e   d   )  \r  \t  \t       O   R       (   d   w   A
0056520    r   [   d   w   ]   .   a   n   d   C   n   t   =   1       A
0056540    N   D       d   w   <   d   o   w   n   W   i   r   e   C   n
0056560    t       A   N   D  \r  \t 376 001  \0   | 362  \t  \t   d   w
0056600    A   r   [   d   w   +   1   ]   .   x   -   d   w   A   r   [
0056620    d   w   ]   .   x   <   1   2   )       T   H   E   N       c
0056640    o   f   f   _   6   ;  \r  \t  \t   I   F       d   w   A   r
0056660    [   d   w   ]   .   a   n   d   C   n   t   =   1       A   N
0056700    D       d   w   >   1       A   N   D  \r  \t  \t  \t   d   w
0056720    A   r   [   d   w   ]   .   x   -   d   w   A   r   [   d   w
0056740    -   1   ]   .   x   <   1   2       T   H   E   N       c   o
0056760    f   f   _   2   ;  \r  \t  \t   l   l   _   m   a   k   e   L
0057000    i   s   t   [   m   a   k   e   P   o   l   y   c   o   n   [
0057020    8   ]   ,   d   w   A   r   [   d   w   ]   .   x   -   c   o
0057040    f   f   ,   l   e   v   ,   0   ,   0   ]   ;  \r  \t  \t   m
0057060    i   n   e   _   i   n   s   e   r   t   L   i   s   t   [   m
0057100    i   n   e   ,   l   l   ]   ;  \r  \t                   E   N
0057120    D   ;  \r                   E   N   D   ;  \r   d   o   H   W
0057140    i   r   e   :   P   R   O   C   E   D   U   R   E   [   l   ,
0057160    r   ,   l   e   v   :   I   N   T   E   G   E 376 001  \0 307
0057200  343   R   ,   p   o   l   y   :   B   O   O   L   E   A   N   ]
0057220        =  \r                   B   E   G   I   N  \r  \t   l   v
0057240    :   I   N   T   E   G   E   R   _   (   l   e   v   +   h   L
0057260    e   v   )   *   2   ;  \r  \t   l   l   _   m   a   k   e   L
0057300    i   s   t   [   m   a   k   e   W   i   r   e   [   d   w   A
0057320    r   [   r   ]   .   x   -   d   w   A   r   [   l   ]   .   x
0057340    ,   I   F       p   o   l   y       T   H   E   N       4    
0057360    E   L   S   E       6   ,  \r  \t  \t   I   F       p   o   l
0057400    y       T   H   E   N       p   o   l       E   L   S   E    
0057420    m   e   t   ]   ,   d   w   A   r   [   l   ]   .   x   ,   l
0057440    v   ,   2   ,   0   ]   ;  \r  \t   m   i   n   e   _   i   n
0057460    s   e   r   t   L   i   s   t   [   m   i   n   e   ,   l   l
0057500    ]   ;  \r  \t   F   O   R       i   :   I   N   T   E   G   E
0057520    R       I   N       [   l   .   .   r   ]       D   O  \r  \t
0057540            h   l   A   r   [   i   ]   _   I   F       p   o   l
0057560    y       T   H   E   N       [   p   o   l   y   ,   l   e   v
0057600    + 376 001  \0 214   k   2   ]       E   L   S   E       [   m
0057620    e   t   ,   l   e   v   +   4   ]   ;  \r  \t   E   N   D   L
0057640    O   O   P   ;  \r  \t   m   a   x   y   s   _   M   A   X   [
0057660    m   a   x   y   s   ,   l   v   +   (   I   F       p   o   l
0057700    y       T   H   E   N       4       E   L   S   E       8   )
0057720    ]   ;  \r                   E   N   D   ;  \r   d   o   T   o
0057740    p   W   i   r   e   s   :   P   R   O   C   E   D   U   R   E
0057760    [   l   ,   r   :   I   N   T   E   G   E   R   ]       =  \r
0060000                    B   E   G   I   N  \r  \t   l   l   _   m   a
0060020    k   e   L   i   s   t   [   m   a   k   e   W   i   r   e   [
0060040    A   B   S   [   d   w   A   r   [   r   ]   .   t   y   -   d
0060060    w   A   r   [   l   ]   .   y   ]   ,   4   ,   p   o   l   ]
0060100    ,   d   w   A   r   [   l   ]   .   x   -   2   ,  \r  \t  \t
0060120    M   I   N   [   d   w   A   r   [   r   ]   .   t   y   ,   d
0060140    w   A   r   [   l   ]   .   y   ]   ,   0   ,   0   ]   ;  \r
0060160   \t   m   i   n   e   _   i   n   s   e   r   t   L   i   s   t
0060200    [   m   i   n   e   , 376 001  \0 244 215   l   l   ]   ;  \r
0060220   \t   l   l   _   m   a   k   e   L   i   s   t   [   m   a   k
0060240    e   W   i   r   e   [   d   w   A   r   [   r   ]   .   t   x
0060260    -   d   w   A   r   [   l   ]   .   x   +   2   ,   4   ,   p
0060300    o   l   ]  \r  \t  \t   ,   d   w   A   r   [   l   ]   .   x
0060320    ,   M   A   X   [   d   w   A   r   [   r   ]   .   t   y   ,
0060340    d   w   A   r   [   l   ]   .   y   ]   -   4   ,   2   ,   0
0060360    ]   ;  \r  \t   m   i   n   e   _   i   n   s   e   r   t   L
0060400    i   s   t   [   m   i   n   e   ,   l   l   ]   ;  \r        
0060420            E   N   D   ;  \r   f   i   n   a   l   D   W   :   P
0060440    R   O   C   E   D   U   R   E   [   i   :   I   N   T   E   G
0060460    E   R   ]       R   E   T   U   R   N   S   [   I   N   T   E
0060500    G   E   R   ]       =  \r                   B   E   G   I   N
0060520   \r  \t   I   F       d   w   A   r   [   i   ]   .   f   i   x
0060540    e   d       T   H   E   N       R   E   T   U   R   N   [   i
0060560    ]   ;  \r  \t   I   F       d   w   A   r   [   i   ]   .   d
0060600    w   L   e   f   t   =   0       T   H   E 376 001  \0   F   A
0060620    N       {   U   N   T   I   L       d   w   A   r   [   i   ]
0060640    .   f   i   x   e   d       O   R  \r  \t  \t   d   w   A   r
0060660    [   i   ]   .   r   i   g   h   t   E   n   d   =   0       O
0060700    R       d   w   A   r   [   i   +   1   ]   .   f   i   x   e
0060720    d       D   O       i   _   i   +   1   ;   E   N   D   L   O
0060740    O   P   ;   R   E   T   U   R   N   [   i   ]   ;   }   ;  \r
0060760   \t   U   N   T   I   L       d   w   A   r   [   i   ]   .   f
0061000    i   x   e   d       O   R       d   w   A   r   [   i   ]   .
0061020    l   e   f   t   E   n   d   =   0       O   R       d   w   A
0061040    r   [   i   -   1   ]   .   f   i   x   e   d       D   O    
0061060    i   _   i   -   1   ;   E   N   D   L   O   O   P   ;  \r  \t
0061100    R   E   T   U   R   N   [   i   ]   ;  \r                   E
0061120    N   D   ;  \r  \r   c   o   n   v   :   P   R   O   C   E   D
0061140    U   R   E   [   s   :   S   T   R   I   N   G   ]       R   E
0061160    T   U   R   N   S   [   i   :   I   N   T   E   G   E   R   ]
0061200        =  \r                   B   E   G   I   N  \r  \t   i   _
0061220  376 001  \0 254 244   0   ;  \r  \t   F   O   R       j   :   C
0061240    A   R   D   I   N   A   L       I   N       [   0   .   .   s
0061260    .   l   e   n   g   t   h   )       D   O  \r  \t           I
0061300    F       N   O   T       s   [   j   ]       I   N       [   '
0061320    0   .   .   '   9   ]       T   H   E   N       {   I   F    
0061340    s   [   j   ]   #   1   5   C       A   N   D       s   [   j
0061360    ]   #   3   3   C       T   H   E   N  \r  \t  \t   i   _   -
0061400    1   ;   E   X   I   T   ;   }   ;  \r  \t           i   _   i
0061420    *   1   0   +   (   s   [   j   ]   -   '   0   )   ;  \r  \t
0061440    E   N   D   L   O   O   P   ;  \r                   E   N   D
0061460    ;  \r  \r  \r   -   -       M       a       i       n        
0061500        P       r       o       g       r       a       m  \r  \r
0061520            m   y   Z   o   n   e       _       Z   o   n   e   A
0061540    l   l   o   c   D   e   f   s   .   G   e   t   A   n   X   M
0061560    Z   o   n   e   [   ]   ;  \r  \r           B   E   G   I   N
0061600   \r           E   N   A   B   L   E       B   E   G   I   N    
0061620    f   i   l   e   E 376 001  \0   I 302   r   r       =   >    
0061640    G   O   T   O       f   l   e   r   ;   a   b   b   r   t    
0061660    =   >       G   O   T   O       a   b   o   r   t   s   ;   E
0061700    N   D   ;           -   -       f   o   r       e   x   i   t
0061720    s  \r  \r           o   k   ,   a   l   l   D   o   n   e   ,
0061740    d   i   d   O   n   e   ,   t   w   :   B   O   O   L   E   A
0061760    N   ;  \r           i   ,   j   ,   k   ,   a   C   n   t   ,
0062000    a   i   :   I   N   T   E   G   E   R   ;  \r           l   e
0062020    ,   r   e   :   I   N   T   E   G   E   R   ;  \r           g
0062040    p   ,   t   g   p   :   L   O   N   G       P   O   I   N   T
0062060    E   R       T   O       G   a   t   e   L   i   s   t   ;  \r
0062100            x   x   ,   y   y   :   l   o   c   N   u   m   _   0
0062120    ;  \r  \r           m   i   n   e   _   N   I   L   ;  \r  \r
0062140            [   g   p   ,   d   o   w   n   W   i   r   e   C   n
0062160    t   ,   m   a   x   N   o   d   e   N   u   m   ]   _   i   n
0062200    p   u   t   C   i   r   c   u   i   t   [   ]   ;  \r        
0062220    I   F       g   p   =   N   I   L     376 001  \0   | 204   T
0062240    H   E   N       G   O   T   O       n   o   F   i   l   e   ;
0062260   \r  \r           t   g   p   _   g   p   ;  \r           W   H
0062300    I   L   E       t   g   p   #   N   I   L       D   O  \r  \t
0062320    t   g   p   .   x   _   x   x   ;  \r  \t   t   g   p   .   y
0062340    _   y   y   ;  \r  \t   m   a   x   x   _   M   A   X   [   m
0062360    a   x   x   ,   x   x   +   t   g   p   .   g   a   t   .   c
0062400    e   l   l   .   o   b   .   s   i   z   e   [   0   ]   ]   ;
0062420   \r  \t   x   x   _   x   x   +   t   g   p   .   g   a   t   .
0062440    o   u   t   .   x   +   2   ;  \r  \t   I   F       t   g   p
0062460    .   n   x   t   #   N   I   L       T   H   E   N       x   x
0062500    _   x   x   +   t   g   p   .   n   x   t   .   g   a   t   .
0062520    l   S   p   a   c   *   2   ;  \r  \t   i   _   t   g   p   .
0062540    g   a   t   .   c   e   l   l   .   o   b   .   s   i   z   e
0062560    [   1   ]   ;  \r  \t   m   a   x   y   s   _   M   A   X   [
0062600    m   a   x   y   s   ,   i   ]   ;  \r  \t   m   i   n   y   s
0062620    _   I   F       m   i   n   y   s   =   0       T   H   E 376
0062640  001  \0 320   !   N       i       E   L   S   E       M   I   N
0062660    [   m   i   n   y   s   ,   i   ]   ;  \r  \t   t   g   p   _
0062700    t   g   p   .   n   x   t   ;  \r           E   N   D   L   O
0062720    O   P   ;  \r  \r           t   g   p   _   g   p   ;  \r    
0062740        W   H   I   L   E       t   g   p   #   N   I   L       D
0062760    O  \r  \t   a   n   y   C   h   a   n   g   e   s   _   s   i
0063000    n   c   e   I   O   c   h   a   n   g   e   s   _   T   R   U
0063020    E   ;  \r  \t   l   l   _   m   a   k   e   L   i   s   t   [
0063040    t   g   p   .   g   a   t   .   c   e   l   l   .   o   b   .
0063060    p   .   a   n   o   t   h   e   r   m   e   [   t   g   p   .
0063100    g   a   t   .   c   e   l   l   .   o   b   ]  \r  \t  \t   ,
0063120    t   g   p   .   x   ,   t   g   p   .   y   ,   0   ,   0   ]
0063140    ;  \r  \t   m   i   n   e   _   i   n   s   e   r   t   L   i
0063160    s   t   [   m   i   n   e   ,   l   l   ]   ;  \r  \t   I   F
0063200        t   g   p   .   n   x   t   #   N   I   L       T   H   E
0063220    N  \r  \t                   B   E   G   I   N  \r  \t  \t   i
0063240    _   y   y   + 376 001  \0 217 241   M   I   N   [   t   g   p
0063260    .   g   a   t   .   c   e   l   l   .   o   b   .   s   i   z
0063300    e   [   1   ]   ,   t   g   p   .   n   x   t   .   g   a   t
0063320    .   c   e   l   l   .   o   b   .   s   i   z   e   [   1   ]
0063340    ]   ;  \r  \t  \t   j   _   t   g   p   .   x   +   t   g   p
0063360    .   g   a   t   .   g   n   d   .   x   ;  \r  \t  \t   l   l
0063400    _   m   a   k   e   L   i   s   t   [   m   a   k   e   W   i
0063420    r   e   [   t   g   p   .   n   x   t   .   x   +   4   -   j
0063440    ,   6   ,   m   e   t   ]   ,   j   ,   i   -   6   ,   2   ,
0063460    0   ]   ;  \r  \t  \t   m   i   n   e   _   i   n   s   e   r
0063500    t   L   i   s   t   [   m   i   n   e   ,   l   l   ]   ;  \r
0063520   \t                   E   N   D   ;  \r  \t   t   g   p   _   t
0063540    g   p   .   n   x   t   ;  \r           E   N   D   L   O   O
0063560    P   ;  \r  \r           d   w   A   r   _   m   y   Z   o   n
0063600    e   .   N   E   W   [   d   o   w   n   W   i   r   e   A   r
0063620    r   a   y   [   d   o   w   n   W   i   r   e   C   n   t   +
0063640    1   ]   ]   ;  \r           t   g 376 001  \0  \0 212   p   _
0063660    g   p   ;  \r           i   _   1   ;  \r           W   H   I
0063700    L   E       t   g   p   #   N   I   L       D   O  \r  \t   j
0063720    _   0   ;  \r  \t   F   O   R       k       I   N       [   0
0063740    .   .   t   g   p   .   g   a   t   .   c   h   a   r   a   c
0063760    .   n   o   r   C   n   t   )       D   O  \r  \t           a
0064000    C   n   t   _   t   g   p   .   g   a   t   .   c   h   a   r
0064020    a   c   .   a   n   d   s   [   k   ]   ;  \r  \t           F
0064040    O   R       a   i       I   N       [   0   .   .   a   C   n
0064060    t   )       D   O  \r  \t                   d   w   A   r   [
0064100    i   ]   .   x       _       t   g   p   .   x   +   t   g   p
0064120    .   g   a   t   .   i   n   s   [   j   ]   .   x   ;  \r  \t
0064140                    d   w   A   r   [   i   ]   .   y       _    
0064160    t   g   p   .   y   +   t   g   p   .   g   a   t   .   i   n
0064200    s   [   j   ]   .   y   ;  \r  \t                   d   w   A
0064220    r   [   i   ]   .   n   o   d   e       _       t   g   p   .
0064240    n   o   d   e   s   [   j   ]   ;  \r  \t             376 001
0064260   \0 354   }       d   w   A   r   [   i   ]   .   f   i   x   e
0064300    d       _       a   C   n   t   =   1   ;  \r  \t            
0064320        d   w   A   r   [   i   ]   .   a   n   d   C   n   t    
0064340    _       a   C   n   t   ;  \r  \t                   d   w   A
0064360    r   [   i   ]   .   l   e   f   t   E   n   d       _       a
0064400    i   ;  \r  \t                   d   w   A   r   [   i   ]   .
0064420    r   i   g   h   t   E   n   d       _       a   C   n   t   -
0064440    a   i   -   1   ;  \r  \t                   d   w   A   r   [
0064460    i   ]   .   w   i   r   e   d   L   e   f   t   _   d   w   A
0064500    r   [   i   ]   .   w   i   r   e   d   R   i   g   h   t   _
0064520    F   A   L   S   E   ;  \r  \t                   t   w   _    
0064540    j   =   0       A   N   D       t   g   p   .   g   a   t   .
0064560    f   i   r   s   t   I   n   T   o   p   A   v   a   i   l   ;
0064600   \r  \t                   d   w   A   r   [   i   ]   .   t   o
0064620    p   W   i   r   e   a   b   l   e   _   t   w   ;  \r  \t    
0064640                I   F       t   w       T   H   E   N  \r  \t    
0064660              376 001  \0 235 211           B   E   G   I   N  \r
0064700   \t  \t   d   w   A   r   [   i   ]   .   t   x       _       t
0064720    g   p   .   x   +   t   g   p   .   g   a   t   .   f   i   r
0064740    s   t   I   n   T   o   p   .   x   ;  \r  \t  \t   d   w   A
0064760    r   [   i   ]   .   t   y       _       t   g   p   .   y   +
0065000    t   g   p   .   g   a   t   .   f   i   r   s   t   I   n   T
0065020    o   p   .   y   ;  \r  \t                           E   N   D
0065040    ;  \r  \t                   i   _   i   +   1   ;  \r  \t    
0065060                j   _   j   +   1   ;  \r  \t           E   N   D
0065100    L   O   O   P   ;  \r  \t   E   N   D   L   O   O   P   ;  \r
0065120   \t   d   w   A   r   [   i   ]   .   x       _       t   g   p
0065140    .   x   +   t   g   p   .   g   a   t   .   o   u   t   .   x
0065160    ;  \r  \t   d   w   A   r   [   i   ]   .   y       _       t
0065200    g   p   .   y   +   t   g   p   .   g   a   t   .   o   u   t
0065220    .   y   ;  \r  \t   d   w   A   r   [   i   ]   .   n   o   d
0065240    e       _       t   g   p   .   o   u   t   N   o   d   e   ;
0065260   \r  \t   d   w   A   r   [   i 376 001  \0 274 331   ]   .   f
0065300    i   x   e   d       _       T   R   U   E   ;  \r  \t   d   w
0065320    A   r   [   i   ]   .   a   n   d   C   n   t       _       1
0065340    ;  \r  \t   d   w   A   r   [   i   ]   .   w   i   r   e   d
0065360    L   e   f   t   _   d   w   A   r   [   i   ]   .   w   i   r
0065400    e   d   R   i   g   h   t   _   F   A   L   S   E   ;  \r  \t
0065420    i   _   i   +   1   ;  \r  \t   t   g   p   _   t   g   p   .
0065440    n   x   t   ;  \r           E   N   D   L   O   O   P   ;  \r
0065460   \r           n   o   d   e   A   r   _   m   y   Z   o   n   e
0065500    .   N   E   W   [   n   o   d   e   A   r   r   a   y   [   m
0065520    a   x   N   o   d   e   N   u   m   +   1   ]   ]   ;  \r    
0065540        F   O   R       i       I   N       [   0   .   .   m   a
0065560    x   N   o   d   e   N   u   m   ]       D   O       n   o   d
0065600    e   A   r   [   i   ]   _   0   ;   E   N   D   L   O   O   P
0065620    ;  \r           F   O   R       i       I   N       [   1   .
0065640    .   d   o   w   n   W   i   r   e   C   n   t   ]       D   O
0065660   \r                   a   i   _   d   w   A   r   [ 376 001  \0
0065700    k 232   i   ]   .   n   o   d   e   ;  \r                   k
0065720    _   n   o   d   e   A   r   [   a   i   ]   ;  \r            
0065740        d   w   A   r   [   i   ]   .   d   w   L   e   f   t   _
0065760    k   ;  \r                   I   F       k   >   0       T   H
0066000    E   N       d   w   A   r   [   k   ]   .   d   w   R   i   g
0066020    h   t   _   i   ;  \r                   n   o   d   e   A   r
0066040    [   a   i   ]   _   i   ;  \r           E   N   D   L   O   O
0066060    P   ;  \r           F   O   R       i       I   N       [   0
0066100    .   .   m   a   x   N   o   d   e   N   u   m   ]       D   O
0066120   \r                   k   _   n   o   d   e   A   r   [   i   ]
0066140    ;  \r                   I   F       k   >   0       T   H   E
0066160    N       d   w   A   r   [   k   ]   .   d   w   R   i   g   h
0066200    t   _   0   ;  \r           E   N   D   L   O   O   P   ;  \r
0066220   \r           h   l   A   r   _   m   y   Z   o   n   e   .   N
0066240    E   W   [   h   o   r   L   i   n   e   A   r   r   a   y   [
0066260    d   o   w   n   W   i   r   e   C   n   t   +   1   ]   ]   ;
0066300   \r     376 001  \0 366   }       t   g   p   _   g   p   ;  \r
0066320            i   _   1   ;  \r           W   H   I   L   E       t
0066340    g   p   #   N   I   L       D   O  \r  \t   j   _   (   t   g
0066360    p   .   y   +   t   g   p   .   g   a   t   .   c   e   l   l
0066400    .   o   b   .   s   i   z   e   [   1   ]   )   /   2   ;  \r
0066420   \t   F   O   R       k       I   N       [   0   .   .   t   g
0066440    p   .   g   a   t   .   c   h   a   r   a   c   .   n   o   r
0066460    C   n   t   )       D   O  \r  \t           a   C   n   t   _
0066500    t   g   p   .   g   a   t   .   c   h   a   r   a   c   .   a
0066520    n   d   s   [   k   ]   ;  \r  \t           F   O   R       a
0066540    i       I   N       [   0   .   .   a   C   n   t   )       D
0066560    O  \r  \t                   h   l   A   r   [   i   ]   .   d
0066600    i   s   t   a   n   c   e       _       j   ;  \r  \t        
0066620            h   l   A   r   [   i   ]   .   b   t   y   p       _
0066640        c   e   l   l   ;  \r  \t                   i   _   i   +
0066660    1   ;  \r  \t           E   N   D   L   O   O   P   ;  \r  \t
0066700    E   N   D   L   O   O   P 376 001  \0 356 303   ;  \r  \t   h
0066720    l   A   r   [   i   ]   .   d   i   s   t   a   n   c   e    
0066740    _       -   3   ;  \r  \t   h   l   A   r   [   i   ]   .   b
0066760    t   y   p       _       n   o   n   e   ;  \r  \t   i   _   i
0067000    +   1   ;  \r  \t   t   g   p   _   t   g   p   .   n   x   t
0067020    ;  \r           E   N   D   L   O   O   P   ;  \r           h
0067040    L   e   v   _   0   ;  \r  \r           F   O   R       i    
0067060    I   N       [   1   .   .   d   o   w   n   W   i   r   e   C
0067100    n   t   ]       D   O  \r                   I   F       (   d
0067120    w   A   r   [   i   ]   .   d   w   L   e   f   t   =   i   -
0067140    1       A   N   D       i   >   1   )       O   R       d   w
0067160    A   r   [   i   ]   .   d   w   R   i   g   h   t   =   i   +
0067200    1       T   H   E   N  \r  \t   d   w   A   r   [   i   ]   .
0067220    f   i   x   e   d   _   T   R   U   E   ;  \r           E   N
0067240    D   L   O   O   P   ;  \r  \r           a   l   l   D   o   n
0067260    e   _   F   A   L   S   E   ;  \r           U   N   T   I   L
0067300        a   l   l   D   o   n   e       D   O  \r 376 001  \0 267
0067320  341  \t   h   L   e   v   _   m   o   v   e   D   o   w   n   [
0067340    h   L   e   v   ,   0   ]   ;  \r  \t   [   o   k   ,   l   e
0067360    ,   r   e   ]   _   f   i   n   d   G   a   p   [   1   ]   ;
0067400   \r  \t   W   H   I   L   E       o   k       D   O  \r  \t  \t
0067420    [   d   i   d   O   n   e   ,   a   l   l   D   o   n   e   ]
0067440    _   w   i   r   e   O   n   e   [   l   e   ,   r   e   ]   ;
0067460   \r  \t  \t   I   F       N   O   T       a   l   l   D   o   n
0067500    e       T   H   E   N  \r  \t  \t  \t   [   o   k   ,   l   e
0067520    ,   r   e   ]   _   f   i   n   d   G   a   p   [   I   F    
0067540    d   i   d   O   n   e       T   H   E   N       l   e       E
0067560    L   S   E       r   e   +   1   ]  \r  \t  \t       E   L   S
0067600    E       E   X   I   T   ;  \r  \t   E   N   D   L   O   O   P
0067620   \r           E   N   D   L   O   O   P   ;  \r  \r           l
0067640    l   _   m   a   k   e   L   i   s   t   [   m   a   k   e   W
0067660    i   r   e   [   m   a   x   x   ,   8   ,   m   e   t   ]   ,
0067700    0   ,   0   ,   2   ,   0   ]   ;  \r           m   i   n   e
0067720    _ 376 001  \0 203  \t   i   n   s   e   r   t   L   i   s   t
0067740    [   m   i   n   e   ,   l   l   ]   ;  \r  \r           l   l
0067760    _   m   a   k   e   L   i   s   t   [   m   a   k   e   C   e
0070000    l   l   [   m   a   x   x   ,   m   a   x   y   s   ,   0   ,
0070020    m   i   n   e   ]   ,   m   a   r   k   P   n   t   .   x   ,
0070040    m   a   r   k   P   n   t   .   y   ,   0   ,   0   ]   ;  \r
0070060            m   a   s   t   e   r   L   i   s   t   _   i   n   s
0070100    e   r   t   L   i   s   t   [   m   a   s   t   e   r   L   i
0070120    s   t   ,   l   l   ]   ;  \r  \r           E   X   I   T   S
0070140        f   l   e   r       =   >       [   ]   _   t   y   p   e
0070160    I   n   C   [   "   S   y   n   t   a   x       e   r   r   o
0070200    r       i   n       f   i   l   e   "   L   ,   "   T   y   p
0070220    e       C   R       t   o       a   b   o   r   t   "   L   ,
0070240    "   "   L   ]   ;  \r          \t   n   o   F   i   l   e    
0070260    =   >       [   ]   _   t   y   p   e   I   n   C   [   "   N
0070300    o       s   u   c   h       f   i   l   e   "   L   ,   "   T
0070320    y   p   e       C   R 376  \0 217 364 323       t   o       a
0070340    b   o   r   t   "   L   ,   "   "   L   ]   ;  \r          \t
0070360    a   b   o   r   t   s       =   >       N   U   L   L   ;  \r
0070400            E   N   D   ;  \r  \r           d   C   h   a   n   g
0070420    e       _       T   R   U   E   ;  \r  \r           m   y   Z
0070440    o   n   e       _       Z   o   n   e   A   l   l   o   c   D
0070460    e   f   s   .   D   e   s   t   r   o   y   A   n   X   M   Z
0070500    o   n   e   [   m   y   Z   o   n   e   ]   ;  \r  \r  \r  \r
0070520    E   N   D   .       -   -       o   f       r   l   m   a   i
0070540    n  \r 032   (   1   7   9   2   )  \r 377  \0  \0   g   a   t
0070560    e   .   c   o   n   f   i   g  \0 373 233   i   Q 317  \0  \0
0070600  376 001  \0 325   (   -   -       g   a   t   e   .   c   o   n
0070620    f   i   g  \r   -   -       w   r   i   t   t   e   n       b
0070640    y       P   e   t   i   t   :           O   c   t   o   b   e
0070660    r       9   ,       1   9   8   1           6   :   4   2    
0070700    P   M  \r  \r   g   a   t   e   :       C   O   N   F   I   G
0070720    U   R   A   T   I   O   N  \r   I   M   P   O   R   T   S  \r
0070740            p   p   d   e   f   s   ,   p   p   d   d   e   f   s
0070760    ,   p   p   d   d   d   e   f   s   ,   D   i   r   e   c   t
0071000    o   r   y   D   e   f   s   ,   S   y   s   t   e   m   D   e
0071020    f   s   ,   P   r   o   c   e   s   s   D   e   f   s   ,  \r
0071040            S   e   g   m   e   n   t   D   e   f   s   ,   S   t
0071060    r   e   a   m   D   e   f   s   ,   T   r   a   p   D   e   f
0071100    s   ,   -   -   A   l   t   o   F   i   l   e   D   e   f   s
0071120    ,  \r           S   t   r   i   n   g   D   e   f   s  \r   E
0071140    X   P   O   R   T   S  \r           r   l   d   e   f   s   ,
0071160    Z   o   n   e   A   l   l   o   c   D   e   f   s  \r   C   O
0071200    N   T   R   O   L 376  \0   B   O   .  \r           r   l   g
0071220    a   t   e   ,   r   l   i   n   ,   r   l   m   a   i   n    
0071240    =  \r   B   E   G   I   N  \r   S   t   o   r   a   g   e   Z
0071260    o   n   e   ;   r   l   g   a   t   e   ;   r   l   i   n   ;
0071300    r   l   m   a   i   n  \r   E   N   D   .  \r 377  \0  \0   g
0071320    a   t   e   -   s   o   u   r   c   e   s   .   c   m  \0 373
0071340  227 366   - 221  \0  \0 376  \0   -   # 230   r   l   d   e   f
0071360    s   .   m   e   s   a       r   l   g   a   t   e   .   m   e
0071400    s   a       r   l   i   n   .   m   e   s   a       r   l   m
0071420    a   i   n   .   m   e   s   a 377  \0  \0   g   a   t   e   -
0071440    s   a   v   e   .   c   m  \0 373 227 366   /   i  \0  \0 376
0071460   \0 246 001 325   f   t   p       i   n   d   i   g   o       c
0071500    o   n   n   /   c       c   h   i   p   m   o   n   k       d
0071520    i   r   /   c       >   g   a   t   e       s   t   /   c    
0071540    g   a   t   e   .   c   h   i   p   b   c   d       g   a   t
0071560    e   .   s   y   m   b   o   l   s       d   u   m   p   /   c
0071600        g   a   t   e   -   s   o   u   r   c   e   s   .   d   m
0071620        @   g   a   t   e   -   s   o   u   r   c   e   s   .   c
0071640    m   @       g   a   t   e   .   c   o   n   f   i   g       g
0071660    a   t   e   -   s   o   u   r   c   e   s   .   c   m       g
0071700    a   t   e   -   s   a   v   e   .   c   m       g   a   t   e
0071720    -   d   e   l   e   t   e   .   c   m 377  \0  \0   g   a   t
0071740    e   -   d   e   l   e   t   e   .   c   m  \0 373 227 366   /
0071760    a  \0  \0 376  \0   A   } 022   d   e   l   e   t   e       @
0072000    g   a   t   e   -   s   o   u   r   c   e   s   .   c   m   @
0072020        g   a   t   e   .   c   o   n   f   i   g       g   a   t
0072040    e   -   s   a   v   e   .   c   m       g   a   t   e   -   d
0072060    e   l   e   t   e   .   c   m  \r 374                        
0072072