$ od -c -N 50000 [_CD6_]<sil>GobSources.dm!1>gobd.bcpl
0000000    /   /   g   o   b   d   .   b   c   p   l  \r   /   /   n   e
0000020    w       g   o   b   b   l   e   r       f   o   r       s   i
0000040    l       f   i   l   e   s  \r  \r   g   e   t       "   s   y
0000060    s   d   e   f   s   .   d   "  \r   g   e   t       "   g   o
0000100    b   .   d   e   f   s   "  \r  \r   s   t   a   t   i   c  \r
0000120    [  \r   A   d   d   D   e   l   e   t   e   N   e   t   N   u
0000140    m   =   1  \r   ]  \r  \r   s   t   r   u   c   t   u   r   e
0000160        o   l   d   n   o   d   e   :  \r   [ 032   (   6   3   5
0000200    )   \   f   1  \r   n   o   d   e   t   y   p   e       b   y
0000220    t   e  \r   u   a   t       b   i   t       1  \r   [ 032   l
0000240    4   2   6   9   \   f   1  \r   i   p   i   n       b   i   t
0000260        7  \r   b   l       w   o   r   d 032   l   5   5   3   9
0000300    \   f   1  \r   ]  \r   =       [ 032   l   4   2   6   9   \
0000320    f   1  \r   b   l   a   n   k       b   i   t       7  \r   p
0000340    i   n       w   o   r   d 032   l   5   5   3   9   \   f   1
0000360   \r   ]  \r   n   o   d   e   s   t   p       w   o   r   d  \r
0000400    n   o   d   e   a   d   r       w   o   r   d 032   l   4   2
0000420    6   9   \   f   1  \r   ]  \r   m   a   n   i   f   e   s   t
0000440   \r   [  \r   o   n   s   i   z   e       =       (   s   i   z
0000460    e       o   l   d   n   o   d   e   )   /   1   6  \r   ]  \r
0000500   \r   l   e   t       R   e   a   d   N   e   t   N   a   m   e
0000520    (   l   i   n   e   ,   n   a   m   e   s   t   r   ,   l   v
0000540    N   e   t   l   e   n   g   t   h   )       =       v   a   l
0000560    o   f       /   /   r   e   t   u   r   n   s       n   e   t
0000600        n   u   m   b   e   r   ,       o   r       0       i   f
0000620        t   h   i   s       i   s       n   o   t       a       n
0000640    e   t       n   a   m   e  \r   [ 032   \   f   1  \r   n   a
0000660    m   e   s   t   r   !   0       =       0  \r   l   e   t    
0000700    l   i   n   d   e   x       =       1  \r   i   f       R   e
0000720    a   d   T   o   (   l   i   n   e   ,   $   :   ,   l   v    
0000740    l   i   n   d   e   x   ,   n   a   m   e   s   t   r   )    
0000760    t   h   e   n       r   e   s   u   l   t   i   s       0  \r
0001000    l   e   t       n   e   t   s   t   r       =       v   e   c
0001020        1   0   ;       n   e   t   s   t   r   !   0   =   0  \r
0001040    i   f       R   e   a   d   T   o   (   l   i   n   e   ,   $
0001060    <   ,   l   v       l   i   n   d   e   x   )       t   h   e
0001100    n       r   e   s   u   l   t   i   s       0  \r   i   f    
0001120    R   e   a   d   T   o   (   l   i   n   e   ,   $   >   ,   l
0001140    v       l   i   n   d   e   x   ,   n   e   t   s   t   r   )
0001160        t   h   e   n       r   e   s   u   l   t   i   s       0
0001200   \r   l   e   t       n   e   t   n   o       =       C   S   N
0001220    (   n   e   t   s   t   r   )  \r   i   f       R   e   a   d
0001240    T   o   (   l   i   n   e   ,   $   (   ,   l   v       l   i
0001260    n   d   e   x   )       t   h   e   n       r   e   s   u   l
0001300    t   i   s       0  \r   n   e   t   s   t   r   !   0       =
0001320        0  \r   i   f       R   e   a   d   T   o   (   l   i   n
0001340    e   ,   $   )   ,   l   v       l   i   n   d   e   x   ,    
0001360    n   e   t   s   t   r   )       t   h   e   n       r   e   s
0001400    u   l   t   i   s       0  \r   @   l   v   N   e   t   l   e
0001420    n   g   t   h       =       C   S   N   (   n   e   t   s   t
0001440    r   )  \r   r   e   s   u   l   t   i   s       n   e   t   n
0001460    o  \r 032   l   4   2   6   9   \   f   1  \r   ]  \r  \r   a
0001500    n   d       C   S   N   (   s   t   x   )       =       v   a
0001520    l   o   f  \r   [ 032   \   f   1  \r   l   e   t       n   u
0001540    m       =       0  \r   f   o   r       i       =       1    
0001560    t   o       s   t   x   >   >   s   t   r   .   l   e   n   g
0001600    t   h       d   o 032   l   4   2   6   9   \   f   1  \r   [
0001620  032   l   4   2   6   9   \   f   1  \r       l   e   t       c
0001640    h       =       s   t   x   >   >   s   t   r   .   c   h   a
0001660    r   ^   i  \r   i   f       (   c   h       l   s       $   0
0001700    )   %   (   c   h       g   r       $   9   )       t   h   e
0001720    n       r   e   s   u   l   t   i   s       -   1  \r   n   u
0001740    m       =       n   u   m   *   1   0       +       c   h   -
0001760    $   0 032   l   5   5   3   9   \   f   1  \r   ]  \r  \r   r
0002000    e   s   u   l   t   i   s       n   u   m 032   l   4   2   6
0002020    9   \   f   1  \r   ]  \r  \r   a   n   d       R   e   a   d
0002040    T   o   (   s   r   c   ,   s   t   o   p   c   h   a   r   ,
0002060    l   v   I   n   d   e   x   ,   d   e   s   t       ;       n
0002100    u   m   a   r   g   s       n   a   )       =       v   a   l
0002120    o   f  \r   [ 032   \   f   1  \r   l   e   t       m   a   x
0002140        =       s   r   c   >   >   s   t   r   .   l   e   n   g
0002160    t   h  \r   [ 032   l   4   2   6   9   \   f   1  \r   i   f
0002200        @   l   v   I   n   d   e   x       g   r       m   a   x
0002220        t   h   e   n       r   e   s   u   l   t   i   s       t
0002240    r   u   e  \r   l   e   t       c   h       =       s   r   c
0002260    >   >   s   t   r   .   c   h   a   r   ^   (   @   l   v   I
0002300    n   d   e   x   )       /   /   r   e   a   d       c   h   a
0002320    r  \r   @   l   v   I   n   d   e   x       =       @   l   v
0002340    I   n   d   e   x   +   1  \r   i   f       c   h       e   q
0002360        s   t   o   p   c   h   a   r       t   h   e   n       r
0002400    e   s   u   l   t   i   s       f   a   l   s   e  \r   i   f
0002420        n   a       g   r       3       t   h   e   n       A   p
0002440    p   e   n   d   C   (   c   h   ,   d   e   s   t   ) 032   l
0002460    5   5   3   9   \   f   1  \r   ]       r   e   p   e   a   t
0002500  032   l   4   2   6   9   \   f   1  \r   ]  \r   a   n   d    
0002520    P   r   o   c   e   s   s   L   i   n   e   (   s   r   c   )
0002540        =       v   a   l   o   f  \r   [ 032   \   f   1  \r   l
0002560    e   t       n   u   m   n   o   d   e   s       =       0  \r
0002600    l   e   t       s   r   c   i   n   d   e   x       =       1
0002620   \r   l   e   t       n   o   d   e   v       =       v   e   c
0002640        5   0  \r   [ 032   l   4   2   6   9   \   f   1  \r   n
0002660    o   d   e   v   !   0       =       0  \r   i   f       R   e
0002700    a   d   T   o   (   s   r   c   ,   $   {   ,   l   v       s
0002720    r   c   i   n   d   e   x   ,   n   o   d   e   v   )       t
0002740    h   e   n       b   r   e   a   k  \r   i   f       R   e   a
0002760    d   T   o   (   s   r   c   ,   $   }   ,   l   v       s   r
0003000    c   i   n   d   e   x   )       t   h   e   n       b   r   e
0003020    a   k      \r   u   n   l   e   s   s       M   a   k   e   N
0003040    o   d   e   (   n   o   d   e   v   )       t   h   e   n    
0003060    b   r   e   a   k  \r   n   u   m   n   o   d   e   s       =
0003100        n   u   m   n   o   d   e   s   +   1 032   l   5   5   3
0003120    9   \   f   1  \r   ]       r   e   p   e   a   t  \r   i   f
0003140        n   u   m   n   o   d   e   s       e   q       0       t
0003160    h   e   n       r   e   s   u   l   t   i   s       f   a   l
0003200    s   e  \r   r   e   s   u   l   t   i   s       t   r   u   e
0003220  032   l   4   2   6   9   \   f   1  \r   ]  \r   a   n   d    
0003240    M   a   k   e   N   o   d   e   (   s   t   )       =       v
0003260    a   l   o   f  \r   [ 032   \   f   1  \r   i   f       s   t
0003300    >   >   s   t   r   .   l   e   n   g   t   h       e   q    
0003320    0       t   h   e   n       r   e   s   u   l   t   i   s    
0003340    f   a   l   s   e  \r   l   e   t       n   o   d   e   p   t
0003360    r       =       N   e   w   I   t   e   m   +   1   +   (   N
0003400    e   w   I   t   e   m   !   0   )   *   o   n   s   i   z   e
0003420        /   /   p   o   i   n   t   e   r       t   o       n   e
0003440    x   t       n   o   d   e       t   o       a   d   d  \r   n
0003460    o   d   e   p   t   r   >   >   o   l   d   n   o   d   e   .
0003500    n   o   d   e   t   y   p   e       =   0  \r   n   o   d   e
0003520    p   t   r   >   >   o   l   d   n   o   d   e   .   u   a   t
0003540        =       0  \r   l   e   t       s   t   i   n   d   e   x
0003560        =       1  \r   l   e   t       c   h       =       $   *
0003600    s  \r   w   h   i   l   e       c   h       e   q       $   *
0003620    s       d   o       [       c   h       =       s   t   >   >
0003640    s   t   r   .   c   h   a   r   ^   s   t   i   n   d   e   x
0003660    ;       s   t   i   n   d   e   x       =       s   t   i   n
0003700    d   e   x   +   1       ]  \r   /   /   c   h       n   o   w
0003720        h   a   s       f   i   r   s   t       n   o   n   -   s
0003740    p   a   c   e       c   h   a   r   ,       s   t   i   n   d
0003760    e   x       p   o   i   n   t   s       t   o       t   h   e
0004000        n   e   x   t       o   n   e  \r   t   e   s   t       c
0004020    h       g   r       $   Z           /   /   n   o   r   m   a
0004040    l       i   c   p   i   n       (   s   m   a   l   l       l
0004060    e   t   t   e   r   )   ,       o   r       s   p   e   c   i
0004100    a   l       (   b   i   g   )  \r   i   f   s   o  \r   [ 032
0004120    l   4   2   6   9   \   f   1  \r   l   e   t       n   v    
0004140    =       v   e   c       5   ;   n   v   !   0   =   0  \r   i
0004160    f       R   e   a   d   T   o   (   s   t   ,   $   .   ,   l
0004200    v       s   t   i   n   d   e   x   ,   n   v   )       t   h
0004220    e   n       r   e   s   u   l   t   i   s       f   a   l   s
0004240    e  \r   l   e   t       b   o   a   r   d   l   o   c       =
0004260        C   S   N   (   n   v   )  \r   i   f       b   o   a   r
0004300    d   l   o   c       e   q       -   1       t   h   e   n    
0004320    r   e   s   u   l   t   i   s       f   a   l   s   e  \r   n
0004340    v   !   0       =       0  \r   i   f       R   e   a   d   T
0004360    o   (   s   t   ,   $   *   s   ,   l   v       s   t   i   n
0004400    d   e   x   ,   n   v   )       t   h   e   n       r   e   s
0004420    u   l   t   i   s       f   a   l   s   e  \r   l   e   t    
0004440    p   i   n   n   o       =       C   S   N   (   n   v   )  \r
0004460    i   f       p   i   n   n   o       e   q       -   1       t
0004500    h   e   n       r   e   s   u   l   t   i   s       f   a   l
0004520    s   e  \r   n   o   d   e   p   t   r   >   >   o   l   d   n
0004540    o   d   e   .   i   p   i   n       =       p   i   n   n   o
0004560   \r   n   o   d   e   p   t   r   >   >   o   l   d   n   o   d
0004600    e   .   b   l       =       2   6   *   b   o   a   r   d   l
0004620    o   c   +   (   c   h   -   $   a   )  \r  \r 032   l   5   5
0004640    3   9   \   f   1  \r  \r   ]  \r   i   f   n   o   t  \r   [
0004660  032   l   4   2   6   9   \   f   1  \r   l   e   t       n   v
0004700        =       v   e   c       5   ;       n   v   !   0   =   0
0004720   \r   i   f       R   e   a   d   T   o   (   s   t   ,   $   *
0004740    s   ,   l   v       s   t   i   n   d   e   x   ,   n   v   )
0004760        t   h   e   n       r   e   s   u   l   t   i   s       f
0005000    a   l   s   e  \r   l   e   t       p   i   n   n   o       =
0005020        C   S   N   (   n   v   )  \r   i   f       p   i   n   n
0005040    o       e   q       -   1       t   h   e   n       r   e   s
0005060    u   l   t   i   s       f   a   l   s   e  \r   n   o   d   e
0005100    p   t   r   >   >   o   l   d   n   o   d   e   .   n   o   d
0005120    e   t   y   p   e       =       c   h  \r   n   o   d   e   p
0005140    t   r   >   >   o   l   d   n   o   d   e   .   p   i   n    
0005160    =       p   i   n   n   o 032   l   5   5   3   9   \   f   1
0005200   \r   ]  \r   n   o   d   e   p   t   r   >   >   o   l   d   n
0005220    o   d   e   .   n   o   d   e   s   t   p       =       0  \r
0005240    n   o   d   e   p   t   r   >   >   o   l   d   n   o   d   e
0005260    .   n   o   d   e   a   d   r       =       0  \r   N   e   w
0005300    I   t   e   m   !   0       =       N   e   w   I   t   e   m
0005320    !   0   +   1  \r   r   e   s   u   l   t   i   s       t   r
0005340    u   e  \r 032   l   4   2   6   9   \   f   1  \r   ]      \r
0005360   \r   /   /       A   l   g   o   r   i   t   h   m       f   o
0005400    r       t   e   r   m   i   n   a   t   o   r       c   h   e
0005420    c   k   i   n   g       i   s       i   n   t   e   n   d   e
0005440    d       t       o   b   e       t   h   e       f   o   l   l
0005460    o   w   i   n   g   :  \r   /   /       N   o   r   m   a   l
0005500    l   y   ,       i   g   n   o   r   e       t   e   r   m   i
0005520    n   a   t   o   r       d   i   f   f   e   r   e   n   c   e
0005540    s       b   e   t   w   e   e   n       o   l   d       a   n
0005560    d       n   e   w       n   e   t   .           H   o   w   e
0005600    v   e   r   ,  \r   /   /       i   f       n   e   t       t
0005620    o   u   c   h   e   s       E   d   g   e   P   i   n       o
0005640    r       C   a   b   l   e   P   i   n       O   R       i   f
0005660        e   i   t   h   e   r       o   l   d       o   r       n
0005700    e   w       n   e   t       n   a   m   e       e   n   d   s
0005720   \r   /   /       i   n       !   ,       c   h   e   c   k    
0005740    t   e   r   m   i   n   a   t   o   r       e   q   u   i   v
0005760    a   l   e   n   c   e       e   x   p   l   i   c   i   t   l
0006000    y   .  \r  \r   a   n   d       C   o   r   r   e   c   t   O
0006020    l   d   N   e   t   (   n   e   t   n   a   m   e   ,   o   l
0006040    d   n   e   t   l   e   n   g   t   h   )       b   e  \r   [
0006060  032   \   f   1  \r   l   e   t       n   p   b   a   s   e    
0006100    =       N   e   w   I   t   e   m   +   1  \r   l   e   t    
0006120    o   l   d   n   o   d   e   c   o   u   n   t       =       N
0006140    e   w   I   t   e   m   !   0  \r   l   e   t       c   h   e
0006160    c   k   T   e   r   m   i   n   a   t   o   r   s   T   o   o
0006200    =   (   n   e   t   n   a   m   e   >   >   s   t   r   .   c
0006220    h   a   r   ^   (   n   e   t   n   a   m   e   >   >   s   t
0006240    r   .   l   e   n   g   t   h   )   )       e   q       $   !
0006260   \r   f   o   r       i   =   0       t   o       o   l   d   n
0006300    o   d   e   c   o   u   n   t   -   1       d   o  \r   [ 032
0006320    l   4   2   6   9   \   f   1  \r   /   /   f   i   l   l    
0006340    i   n       t   h   e       p   a   r   a   m   e   t   e   r
0006360    s       o   f       t   h   e       o   l   d       n   o   d
0006400    e  \r   l   e   t       o   n   p   t   r       =       n   p
0006420    b   a   s   e       +       o   n   s   i   z   e   *   i  \r
0006440    l   e   t       n   o   d   e   a   d   r       =       0  \r
0006460    l   e   t       n   o   d   e   s   t   p       =       0  \r
0006500    l   e   t       u   a   t       =       0  \r   l   e   t    
0006520    n   o   d   e   t   y   p   e       =       o   n   p   t   r
0006540    >   >   o   l   d   n   o   d   e   .   n   o   d   e   t   y
0006560    p   e  \r   t   e   s   t       n   o   d   e   t   y   p   e
0006600        e   q       0      \r   i   f   s   o       /   /   n   o
0006620    r   m   a   l       i   c       p   i   n  \r   [ 032   l   5
0006640    5   3   9   \   f   1  \r   l   e   t       b   p       =    
0006660    B   o   a   r   d   v   e   c   !   (   o   n   p   t   r   >
0006700    >   o   l   d   n   o   d   e   .   b   l   )  \r   i   f    
0006720    b   p       n   e       0       d   o  \r   [ 032   l   6   8
0006740    0   9   \   f   1  \r   n   o   d   e   a   d   r       =    
0006760    l   v   (       b   p   >   >   i   c   d   e   s   c   .   p
0007000    i   n   p   t   r   ^   (   o   n   p   t   r   >   >   o   l
0007020    d   n   o   d   e   .   i   p   i   n   )   )  \r   i   f    
0007040    (   (   @   n   o   d   e   a   d   r   )       e   q       0
0007060    )   &   (   (   b   p   >   >   i   c   d   e   s   c   .   i
0007100    c   t   y   p   e   )       e   q       t   e   r   m   t   y
0007120    p   e   )       t   h   e   n       u   a   t       =       1
0007140   \r 032   l   8   0   7   9   \   f   1  \r   ] 032   l   6   8
0007160    0   9   \   f   1  \r   ]  \r   i   f   n   o   t       n   o
0007200    d   e   a   d   r       =       o   n   p   t   r   >   >   o
0007220    l   d   n   o   d   e   .   p   i   n       +       s   e   l
0007240    e   c   t   o   n       n   o   d   e   t   y   p   e       i
0007260    n   t   o  \r   [ 032   l   5   5   3   9   \   f   1  \r   c
0007300    a   s   e       $   E   :       E   p   i   n   s  \r   c   a
0007320    s   e       $   C   :       E   p   i   n   s       +       M
0007340    a   x   E   p   i   n   s  \r   c   a   s   e       $   G   :
0007360        G   n   d   v   e   c  \r   c   a   s   e       $   F   :
0007400        V   c   c   v   e   c  \r   c   a   s   e       $   M   :
0007420        V   e   e   v   e   c  \r   c   a   s   e       $   T   :
0007440        V   t   t   v   e   c  \r   c   a   s   e       $   D   :
0007460        V   d   d   v   e   c 032   l   6   8   0   9   \   f   1
0007500   \r   ]  \r   i   f       n   o   d   e   t   y   p   e       e
0007520    q       $   E       %       n   o   d   e   t   y   p   e    
0007540    e   q       $   C       t   h   e   n       c   h   e   c   k
0007560    T   e   r   m   i   n   a   t   o   r   s   T   o   o   =   t
0007600    r   u   e  \r   o   n   p   t   r   >   >   o   l   d   n   o
0007620    d   e   .   n   o   d   e   s   t   p       =       v   a   l
0007640    o   f  \r   [ 032   l   5   5   3   9   \   f   1  \r   i   f
0007660        (   n   o   d   e   a   d   r       e   q       0   )   %
0007700    (   @   n   o   d   e   a   d   r       e   q       0   )    
0007720    t   h   e   n       r   e   s   u   l   t   i   s       0  \r
0007740    l   e   t       p       =       n   o   d   e   a   d   r    
0007760    /   /   t   h   e       n   o   d   e       i   s       o   n
0010000        a       l   i   s   t       w   h   i   c   h       t   e
0010020    r   m   i   n   a   t   e   s       a   t       a      \r   /
0010040    /   s   y   m   b   o   l       t   a   b   l   e       e   n
0010060    t   r   y  \r   u   n   t   i   l       @   p       e   q    
0010100    -   1       d   o       p       =       @   p  \r   p       =
0010120        p   -   (   o   f   f   s   e   t       s   t   r   e   c
0010140    .   m   a   r   k   )   /   1   6  \r   l   e   t       s   =
0010160    l   v       p   >   >   s   t   r   e   c   .   s   t  \r   i
0010200    f       (   s   >   >   s   t   r   .   c   h   a   r   ^   (
0010220    s   >   >   s   t   r   .   l   e   n   g   t   h   )   )    
0010240    e   q       $   !       t   h   e   n       c   h   e   c   k
0010260    T   e   r   m   i   n   a   t   o   r   s   T   o   o   =   t
0010300    r   u   e  \r   r   e   s   u   l   t   i   s       p  \r 032
0010320    l   6   8   0   9   \   f   1  \r   ]  \r   o   n   p   t   r
0010340    >   >   o   l   d   n   o   d   e   .   n   o   d   e   a   d
0010360    r       =       n   o   d   e   a   d   r  \r   o   n   p   t
0010400    r   >   >   o   l   d   n   o   d   e   .   u   a   t       =
0010420        u   a   t  \r 032   l   5   5   3   9   \   f   1  \r   ]
0010440   \r  \r  \r   /   /   a   l   l       o   l   d       n   o   d
0010460    e       e   n   t   r   i   e   s       a   r   e       f   i
0010500    l   l   e   d       i   n   -       s   e   e       i   f    
0010520    t   h   e       o   l   d       n   e   t       a   n   d    
0010540    s   o   m   e       n   e   w       n   e   t       a   r   e
0010560   \r   /   /   i   d   e   n   t   i   c   a   l   ,       o   r
0010600        w   h   e   t   h   e   r       t   h   e       o   l   d
0010620        n   e   t       i   s       o   b   s   o   l   e   t   e
0010640   \r   l   e   t       o   b   s   o   l   e   t   e       =    
0010660    f   a   l   s   e  \r   l   e   t       n   u   a   t       =
0010700        0  \r   l   e   t       n   e   w   s   t   p       =    
0010720    0  \r   f   o   r       i       =       0       t   o       o
0010740    l   d   n   o   d   e   c   o   u   n   t   -   1       d   o
0010760   \r   [ 032   l   4   2   6   9   \   f   1  \r   l   e   t    
0011000    o   n   p   t   r       =       n   p   b   a   s   e       +
0011020        o   n   s   i   z   e   *   i      \r   i   f       c   h
0011040    e   c   k   T   e   r   m   i   n   a   t   o   r   s   T   o
0011060    o       e   q       0       &       o   n   p   t   r   >   >
0011100    o   l   d   n   o   d   e   .   u   a   t       e   q       1
0011120        t   h   e   n  \r  \t   [       n   u   a   t       =    
0011140    n   u   a   t   +   1   ;       l   o   o   p       ]      \r
0011160    l   e   t       o   l   d   s   t   p       =       o   n   p
0011200    t   r   >   >   o   l   d   n   o   d   e   .   n   o   d   e
0011220    s   t   p  \r   i   f       o   l   d   s   t   p       e   q
0011240        0       t   h   e   n       [       o   b   s   o   l   e
0011260    t   e       =       t   r   u   e   ;       l   o   o   p    
0011300    ]      \r   i   f       n   e   w   s   t   p       e   q    
0011320    0       t   h   e   n       [       n   e   w   s   t   p    
0011340    =       o   l   d   s   t   p   ;       l   o   o   p       ]
0011360       \r   i   f       n   e   w   s   t   p       n   e       o
0011400    l   d   s   t   p       t   h   e   n       o   b   s   o   l
0011420    e   t   e       =       t   r   u   e 032   l   5   5   3   9
0011440    \   f   1  \r   ]  \r  \r   /   /   c   o   u   n   t       t
0011460    h   e       n   u   m   b   e   r       o   f       n   o   d
0011500    e   s       i   n       t   h   e       n   e   w       n   e
0011520    t  \r   l   e   t       n   e   w   n   o   d   e   c   o   u
0011540    n   t       =       0  \r   u   n   l   e   s   s       o   b
0011560    s   o   l   e   t   e       d   o  \r   [ 032   l   4   2   6
0011600    9   \   f   1  \r   l   e   t       n   e   w   p       =    
0011620    n   e   w   s   t   p   >   >   s   t   r   e   c   .   l   i
0011640    s   t  \r   u   n   t   i   l       (   @   n   e   w   p   )
0011660        e   q       -   1       d   o  \r   [ 032   l   5   5   3
0011700    9   \   f   1  \r   n   e   w   n   o   d   e   c   o   u   n
0011720    t       =       n   e   w   n   o   d   e   c   o   u   n   t
0011740    +   1  \r   n   e   w   p       =       @   n   e   w   p 032
0011760    l   6   8   0   9   \   f   1  \r   ] 032   l   5   5   3   9
0012000    \   f   1  \r  \r   ]  \r   i   f       o   l   d   n   o   d
0012020    e   c   o   u   n   t       n   e       (   n   e   w   n   o
0012040    d   e   c   o   u   n   t   +   n   u   a   t       )       t
0012060    h   e   n       o   b   s   o   l   e   t   e       =       t
0012100    r   u   e  \r   t   e   s   t       o   b   s   o   l   e   t
0012120    e  \r   i   f   s   o 032   l   4   2   6   9   \   f   1  \r
0012140    [ 032   l   4   2   6   9   \   f   1  \r   /   /   w   r   i
0012160    t   e       t   h   e       o   l   d       n   e   t       t
0012200    o       t   h   e       d   e   l   e   t   e       l   i   s
0012220    t  \r   l   e   t       n   a   m   e   v       =       v   e
0012240    c       5   0   ;       n   a   m   e   v   !   0       =    
0012260    0  \r   A   p   p   e   n   d   S   (   "   *   n   *   n   D
0012300    E   L   E   T   E           "   ,   n   a   m   e   v   )  \r
0012320    A   p   p   e   n   d   S   (       n   e   t   n   a   m   e
0012340    ,   n   a   m   e   v   )  \r   A   p   p   e   n   d   C   (
0012360    $   :   ,   n   a   m   e   v   )  \r   A   p   p   e   n   d
0012400    S   (   "       <   "   ,   n   a   m   e   v   )  \r   A   p
0012420    p   e   n   d   N   (   A   d   d   D   e   l   e   t   e   N
0012440    e   t   N   u   m   ,   n   a   m   e   v   )  \r   A   d   d
0012460    D   e   l   e   t   e   N   e   t   N   u   m       =       A
0012500    d   d   D   e   l   e   t   e   N   e   t   N   u   m   +   1
0012520   \r   A   p   p   e   n   d   S   (   "   >       (   "   ,   n
0012540    a   m   e   v   )  \r   A   p   p   e   n   d   N   (   o   l
0012560    d   n   e   t   l   e   n   g   t   h   ,   n   a   m   e   v
0012600    )  \r   A   p   p   e   n   d   S   (   "   )   "   ,   n   a
0012620    m   e   v   )  \r   A   p   p   e   n   d   C   (   $   *   n
0012640    ,   n   a   m   e   v   )  \r   W   S   S   (   A   D   F   i
0012660    l   e   ,   n   a   m   e   v   )  \r   l   e   t       o   u
0012700    t   c   o   u   n   t       =       0  \r   f   o   r       i
0012720    =   0       t   o       o   l   d   n   o   d   e   c   o   u
0012740    n   t   -   1       d   o  \r   [ 032   l   5   5   3   8   (
0012760    1   2   7   0   )   \   f   1  \r   i   f       o   u   t   c
0013000    o   u   n   t       g   r       3       t   h   e   n       [
0013020        o   u   t   c   o   u   n   t       =       0   ;       W
0013040    S   S   (   A   D   F   i   l   e   ,   "   *   n   "   )    
0013060    ]      \r   o   u   t   c   o   u   n   t       =       o   u
0013100    t   c   o   u   n   t   +   1  \r   W   S   S   (   A   D   F
0013120    i   l   e   ,   "   *   s   *   s   *   s   *   s   "   )  \r
0013140    l   e   t       o   n   p   t   r       =       n   p   b   a
0013160    s   e       +       o   n   s   i   z   e   *   i          \r
0013200    l   e   t       n   o   d   e   a   d   r   =   o   n   p   t
0013220    r   >   >   o   l   d   n   o   d   e   .   n   o   d   e   a
0013240    d   r  \r   l   e   t       d   u   m   m   y   I   C   =   v
0013260    e   c       i   c   d   s   i   z   e   +   1   0   0  \r   i
0013300    f       n   o   d   e   a   d   r       e   q       0       t
0013320    h   e   n  \t   /   /   e   n   t   i   r   e       I   C    
0013340    h   a   s       g   o   n   e       a   w   a   y  \r   [  \t
0013360    /   /   s   o       k   l   u   d   g   e       u   p       a
0013400        t   e   m   p   o   r   a   r   y       I   C       d   e
0013420    s   c   r   i   p   t   o   r 032   l   6   8   0   8   \   f
0013440    1  \r   Z   e   r   o   (   d   u   m   m   y   I   C   ,    
0013460    i   c   d   s   i   z   e   +   1   0   0   )  \r   d   u   m
0013500    m   y   I   C   >   >   i   c   d   e   s   c   .   b   l   =
0013520    o   n   p   t   r   >   >   o   l   d   n   o   d   e   .   b
0013540    l  \r   d   u   m   m   y   I   C   >   >   i   c   d   e   s
0013560    c   .   m   a   r   k   =   -   1  \r   n   o   d   e   a   d
0013600    r   =   d   u   m   m   y   I   C   +   i   c   d   s   i   z
0013620    e   +   o   n   p   t   r   >   >   o   l   d   n   o   d   e
0013640    .   i   p   i   n  \r 032   l   8   0   7   8   \   f   1  \r
0013660    ]  \r   P   r   i   n   t   N   (   n   o   d   e   a   d   r
0013700    ,   A   D   F   i   l   e   ,   0   )  \r 032   l   6   8   0
0013720    8   \   f   1  \r   ] 032   l   5   5   3   8   \   f   1  \r
0013740    ]  \r   i   f   n   o   t       /   /   r   e   o   r   d   e
0013760    r       t   h   e       n   e   w       n   e   t       s   a
0014000    m   e       a   s       t   h   e       o   l   d       n   e
0014020    t   -       t   h   i   s       w   i   l   l       a   u   t
0014040    o   m   a   t   i   c   a   l   l   y  \r   /   /   a   s   s
0014060    i   g   n       a   l   l       t   h   e       o   l   d    
0014100    n   e   t   '   s       t   e   r   m   i   n   a   t   o   r
0014120    s  \r   [ 032   l   4   2   6   9   (   6   3   5   )   \   f
0014140    1  \r   l   e   t       n       =       0  \r   l   e   t    
0014160    p       =       l   v   (   n   e   w   s   t   p   >   >   s
0014200    t   r   e   c   .   l   i   s   t   )  \r   u   n   t   i   l
0014220        n       e   q       o   l   d   n   o   d   e   c   o   u
0014240    n   t       d   o  \r   [ 032   l   5   5   3   9   \   f   1
0014260   \r   l   e   t       o   n   p   t   r       =       n   p   b
0014300    a   s   e       +       o   n   s   i   z   e   *   n        
0014320   \r   l   e   t       n   o   d   e   a   d   r       =       o
0014340    n   p   t   r   >   >   o   l   d   n   o   d   e   .   n   o
0014360    d   e   a   d   r  \r   @   p   =   n   o   d   e   a   d   r
0014400   \r   p       =       n   o   d   e   a   d   r  \r   n       =
0014420        n   +   1 032   l   6   8   0   9   \   f   1  \r   ]  \r
0014440    @   p       =       l   v   (   n   e   w   s   t   p   >   >
0014460    s   t   r   e   c   .   m   a   r   k   )       /   /   c   l
0014500    o   s   e       t   h   e       l   i   s   t  \r   n   e   w
0014520    s   t   p   >   >   s   t   r   e   c   .   o   r   d   e   r
0014540    e   d       =       1  \r   n   e   w   s   t   p   >   >   s
0014560    t   r   e   c   .   n   e   t   l   e   n   g   t   h       =
0014600        o   l   d   n   e   t   l   e   n   g   t   h 032   l   5
0014620    5   3   9   \   f   1  \r   ] 032   l   4   2   6   9   \   f
0014640    1  \r   ]  \r 032   \   f   1  \r  \0                        
0014652