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