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