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