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