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