
<HTML><HEAD><TITLE>CosmicOS message</TITLE></HEAD>
<BODY BGCOLOR='#ffffff'>
<HR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT><A NAME='42'><FONT COLOR=red>#&nbsp;GATE simulating unless gates</FONT></A></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;for embedded image-and-logic-based primer</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;practice with pure logic gate</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;X unless Y = (X if Y=0, otherwise 0)</TT><BR>
<TT>[<A HREF='sound.cgi?s=211013210001110030232110032100101302321100321001003023210132210010133221003221001003332233'>hear</A>] </TT><TT>(define unless /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? x / ? y /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;and <font style='background-color: #cdffff'>(x)</font> <font style='background-color: #ffcdff'>(not </font><font style='background-color: #ff9bff'>(y)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;if second input is true, output is blocked (false)</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;if second input is false, output copies first input</TT><BR>
<TT>[<A HREF='sound.cgi?s=210322101100332210001110032210110033221011003332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(false)</font> <font style='background-color: #ffcdff'>(unless </font><font style='background-color: #ff9bff'>(false)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(false)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210322101011332210001110032210101133221011003332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(true)</font> <font style='background-color: #ffcdff'>(unless </font><font style='background-color: #ff9bff'>(true)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(false)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210322101100332210001110032210110033221010113332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(false)</font> <font style='background-color: #ffcdff'>(unless </font><font style='background-color: #ff9bff'>(false)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(true)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210322101100332210001110032210101133221010113332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(false)</font> <font style='background-color: #ffcdff'>(unless </font><font style='background-color: #ff9bff'>(true)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(true)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;To do: add a simple simulator for non-grid-based</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;logic -- much simpler to understand than</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;grid-based</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;On to a grid-based logic simulation</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;first, need unbounded, mutable matrices</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132100011101302321100321000011130232211011322100001103221000011133332233'>hear</A>] </TT><TT>(define make-matrix /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? default /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(make-cell </font><font style='background-color: #9bffff'>(hash-default </font><font style='background-color: #69ffff'>(default)</font><font style='background-color: #9bffff'>)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=211013210001111030232110032100011111302321100321001013023211003210010000030232111003221000111113302321000001032211101322100011111333221001000003322100101332233'>hear</A>] </TT><TT>(define matrix-set /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? m /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? x /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? addr /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;set! <font style='background-color: #cdffff'>(m)</font> / hash-add <font style='background-color: #ffcdff'>(get! </font><font style='background-color: #ff9bff'>(m)</font><font style='background-color: #ffcdff'>)</font> <font style='background-color: #ffffcd'>(addr)</font> <font style='background-color: #cdffff'>(x)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2110132100100001302321100321000111113023211003210010000030232100001003221110132210001111133322100100000332233'>hear</A>] </TT><TT>(define matrix-get /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? m /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? addr /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;hash-ref <font style='background-color: #cdffff'>(get! </font><font style='background-color: #9bffff'>(m)</font><font style='background-color: #cdffff'>)</font> <font style='background-color: #ffcdff'>(addr)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2110132100100010322100011101320332233'>hear</A>] </TT><TT>(define test-matrix</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(make-matrix 0)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032030232100100001322100100010330232100003213210321132233'>hear</A>] </TT><TT>(= 0 / matrix-get <font style='background-color: #cdffff'>(test-matrix)</font> / vector 1 2 3);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2100011110322100100010332101030232100003213210321132233'>hear</A>] </TT><TT>(matrix-set <font style='background-color: #cdffff'>(test-matrix)</font> 10 / vector 1 2 3);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032101030232100100001322100100010330232100003213210321132233'>hear</A>] </TT><TT>(= 10 / matrix-get <font style='background-color: #cdffff'>(test-matrix)</font> / vector 1 2 3);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;go through a circuit of unless gates and analyze data flow</TT><BR>
<TT>[<A HREF='sound.cgi?s=21101321001000113023211003210010010030232111032100100101322100011101322101100333221000000032210101013221100321001001103023211103210010011132211111032210010011033203302321110321001010003221111103221001001103321330232111032100101001322111110322100100110332103302321110321001010103221111103221001001103321133023211103210101101322111110322100100110332100330232211113221032210010011133221001010013332210000000322100011110322100100101332210101101330232100003221001010013322100101010332100101011332210001111032210010010133221010113302321000032210010100133221001010103321001011003322100011110322100100101332210101133023210000322100100111332210010100033210010110133221001001103332210000000322100011110322100100101332210101101330232100003221001010013322100101010332100101110332210001111032210010010133221010113302321000032210010100133221001010103321001011113322100011110322100100101332210101133023210000322100100111332210010100033210011000033221001001103333322100100100333221001001013332233'>hear</A>] </TT><TT>(define unless-phase-1 /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? circuit /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign state <font style='background-color: #cdffff'>(make-matrix </font><font style='background-color: #9bffff'>(false)</font><font style='background-color: #cdffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #ffcdff'>(begin</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff9bff'>(map </font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>(? gate /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>assign x1 </font><font style='background-color: #ff37ff'>(list-ref </font><font style='background-color: #ff05ff'>(gate)</font><font style='background-color: #ff37ff'> 0)</font><font style='background-color: #ff69ff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>assign y1 </font><font style='background-color: #ff69cd'>(list-ref </font><font style='background-color: #ff699b'>(gate)</font><font style='background-color: #ff69cd'> 1)</font><font style='background-color: #ff69ff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>assign x2 </font><font style='background-color: #cd69ff'>(list-ref </font><font style='background-color: #9b69ff'>(gate)</font><font style='background-color: #cd69ff'> 2)</font><font style='background-color: #ff69ff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>assign y2 </font><font style='background-color: #ff37ff'>(list-ref </font><font style='background-color: #ff05ff'>(gate)</font><font style='background-color: #ff37ff'> 3)</font><font style='background-color: #ff69ff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff69ff'>assign v </font><font style='background-color: #ff69cd'>(list-ref </font><font style='background-color: #ff699b'>(gate)</font><font style='background-color: #ff69cd'> 4)</font><font style='background-color: #ff69ff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd69ff'>(if </font><font style='background-color: #9b69ff'>(= </font><font style='background-color: #6969ff'>(x1)</font><font style='background-color: #9b69ff'> </font><font style='background-color: #9b37ff'>(x2)</font><font style='background-color: #9b69ff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd37ff'>(begin</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd05ff'>(matrix-set </font><font style='background-color: #cd00ff'>(state)</font><font style='background-color: #cd05ff'> </font><font style='background-color: #cd05cd'>(v)</font><font style='background-color: #cd05ff'> / vector </font><font style='background-color: #9b05ff'>(x2)</font><font style='background-color: #cd05ff'> </font><font style='background-color: #cd00ff'>(y2)</font><font style='background-color: #cd05ff'> vert-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd37cd'>(matrix-set </font><font style='background-color: #cd379b'>(state)</font><font style='background-color: #cd37cd'> </font><font style='background-color: #9b37cd'>(true)</font><font style='background-color: #cd37cd'> / vector </font><font style='background-color: #cd05cd'>(x2)</font><font style='background-color: #cd37cd'> </font><font style='background-color: #cd379b'>(y2)</font><font style='background-color: #cd37cd'> vert-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9b37ff'>(matrix-set </font><font style='background-color: #6937ff'>(state)</font><font style='background-color: #9b37ff'> </font><font style='background-color: #9b05ff'>(true)</font><font style='background-color: #9b37ff'> / vector </font><font style='background-color: #9b37cd'>(x1)</font><font style='background-color: #9b37ff'> </font><font style='background-color: #6937ff'>(y1)</font><font style='background-color: #9b37ff'> vert-want)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd05ff'>(gate)</font><font style='background-color: #cd37ff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd69cd'>(begin</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd699b'>(matrix-set </font><font style='background-color: #cd6969'>(state)</font><font style='background-color: #cd699b'> </font><font style='background-color: #9b699b'>(v)</font><font style='background-color: #cd699b'> / vector </font><font style='background-color: #cd379b'>(x2)</font><font style='background-color: #cd699b'> </font><font style='background-color: #cd6969'>(y2)</font><font style='background-color: #cd699b'> horiz-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9b69cd'>(matrix-set </font><font style='background-color: #6969cd'>(state)</font><font style='background-color: #9b69cd'> </font><font style='background-color: #9b37cd'>(true)</font><font style='background-color: #9b69cd'> / vector </font><font style='background-color: #9b699b'>(x2)</font><font style='background-color: #9b69cd'> </font><font style='background-color: #6969cd'>(y2)</font><font style='background-color: #9b69cd'> horiz-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd37cd'>(matrix-set </font><font style='background-color: #cd05cd'>(state)</font><font style='background-color: #cd37cd'> </font><font style='background-color: #cd379b'>(true)</font><font style='background-color: #cd37cd'> / vector </font><font style='background-color: #9b37cd'>(x1)</font><font style='background-color: #cd37cd'> </font><font style='background-color: #cd05cd'>(y1)</font><font style='background-color: #cd37cd'> horiz-want)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd699b'>(gate)</font><font style='background-color: #cd69cd'>)</font><font style='background-color: #cd69ff'>)</font><font style='background-color: #ff69ff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff9bcd'>(circuit)</font><font style='background-color: #ff9bff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdcd'>(state)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;move forward one simulation step</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132100110001302321100321001001003023211003210010010132210101013221100321001001103023211103210010011132211111032210010011033203302321110321001010003221111103221001001103321330232111032100101001322111110322100100110332103302321110321001010103221111103221001001103321133023211103210101101322111110322100100110332100330232111032100110010322111132210322100100111332210010100133322111132210010000132210010010133023210000322100100111332210010100033210010110033221013221001000013221001001013302321000032210010011133221001010003321001010113322100322101322100100001322100100101330232100003221001001113322100101000332100101110332210032210010000132210010010133023210000322100100111332210010100033210011000033333322111132210010000132210010010133023210000322100100111332210010100033210010111133221001000013221001001013302321000032210010011133221001010003321001011103322101011333322111132210010000132210010010133023210000322100100111332210010100033210010111133221013221001000013221001001013302321000032210010011133221001010003321001011103322100322101322100100001322100100101330232100003221001001113322100101000332100101011332210032210010000132210010010133023210000322100100111332210010100033210010110133333322111132210010000132210010010133023210000322100100111332210010100033210010110033221001000013221001001013302321000032210010011133221001010003321001010113322101011333330232100003221001001113322100101000332210010100133221001010103322100110010333221001001003332233'>hear</A>] </TT><TT>(define unless-phase-2 /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? circuit /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? state</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(map </font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>(? gate /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign x1 </font><font style='background-color: #69ffff'>(list-ref </font><font style='background-color: #37ffff'>(gate)</font><font style='background-color: #69ffff'> 0)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign y1 </font><font style='background-color: #9bcdff'>(list-ref </font><font style='background-color: #9b9bff'>(gate)</font><font style='background-color: #9bcdff'> 1)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign x2 </font><font style='background-color: #9bffcd'>(list-ref </font><font style='background-color: #9bff9b'>(gate)</font><font style='background-color: #9bffcd'> 2)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign y2 </font><font style='background-color: #69ffff'>(list-ref </font><font style='background-color: #37ffff'>(gate)</font><font style='background-color: #69ffff'> 3)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign v </font><font style='background-color: #9bcdff'>(list-ref </font><font style='background-color: #9b9bff'>(gate)</font><font style='background-color: #9bcdff'> 4)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>assign nv </font><font style='background-color: #9bffcd'>(if </font><font style='background-color: #9bff9b'>(= </font><font style='background-color: #9bff69'>(x1)</font><font style='background-color: #9bff9b'> </font><font style='background-color: #69ff9b'>(x2)</font><font style='background-color: #9bff9b'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69ffcd'>(if </font><font style='background-color: #37ffcd'>(matrix-get </font><font style='background-color: #05ffcd'>(state)</font><font style='background-color: #37ffcd'> / vector </font><font style='background-color: #37cdcd'>(x1)</font><font style='background-color: #37ffcd'> </font><font style='background-color: #37ff9b'>(y1)</font><font style='background-color: #37ffcd'> vert-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cdcd'>(and </font><font style='background-color: #699bcd'>(matrix-get </font><font style='background-color: #6969cd'>(state)</font><font style='background-color: #699bcd'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #699bcd'>vector </font><font style='background-color: #699b9b'>(x1)</font><font style='background-color: #699bcd'> </font><font style='background-color: #379bcd'>(y1)</font><font style='background-color: #699bcd'> vert-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cd9b'>(not </font><font style='background-color: #69cd69'>(and </font><font style='background-color: #69cd37'>(matrix-get </font><font style='background-color: #69cd05'>(state)</font><font style='background-color: #69cd37'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cd37'>vector </font><font style='background-color: #37cd37'>(x1)</font><font style='background-color: #69cd37'> </font><font style='background-color: #699b37'>(y1)</font><font style='background-color: #69cd37'> horiz-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #37cd69'>(not </font><font style='background-color: #05cd69'>(matrix-get </font><font style='background-color: #00cd69'>(state)</font><font style='background-color: #05cd69'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #05cd69'>vector </font><font style='background-color: #059b69'>(x1)</font><font style='background-color: #05cd69'> </font><font style='background-color: #05cd37'>(y1)</font><font style='background-color: #05cd69'> horiz-want)</font><font style='background-color: #37cd69'>)</font><font style='background-color: #69cd69'>)</font><font style='background-color: #69cd9b'>)</font><font style='background-color: #69cdcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69ff9b'>(if </font><font style='background-color: #69ff69'>(matrix-get </font><font style='background-color: #69ff37'>(state)</font><font style='background-color: #69ff69'> / vector </font><font style='background-color: #37ff69'>(x1)</font><font style='background-color: #69ff69'> </font><font style='background-color: #69cd69'>(y1)</font><font style='background-color: #69ff69'> horiz-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #37ff9b'>(matrix-get </font><font style='background-color: #05ff9b'>(state)</font><font style='background-color: #37ff9b'> / vector </font><font style='background-color: #37cd9b'>(x1)</font><font style='background-color: #37ff9b'> </font><font style='background-color: #37ff69'>(y1)</font><font style='background-color: #37ff9b'> horiz-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cd9b'>(true)</font><font style='background-color: #69ff9b'>)</font><font style='background-color: #69ffcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bcdcd'>(if </font><font style='background-color: #9b9bcd'>(matrix-get </font><font style='background-color: #9b69cd'>(state)</font><font style='background-color: #9b9bcd'> / vector </font><font style='background-color: #9b9b9b'>(x1)</font><font style='background-color: #9b9bcd'> </font><font style='background-color: #699bcd'>(y1)</font><font style='background-color: #9b9bcd'> horiz-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bcd9b'>(and </font><font style='background-color: #9bcd69'>(matrix-get </font><font style='background-color: #9bcd37'>(state)</font><font style='background-color: #9bcd69'> / vector </font><font style='background-color: #69cd69'>(x1)</font><font style='background-color: #9bcd69'> </font><font style='background-color: #9b9b69'>(y1)</font><font style='background-color: #9bcd69'> horiz-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cd9b'>(not </font><font style='background-color: #37cd9b'>(and </font><font style='background-color: #05cd9b'>(matrix-get </font><font style='background-color: #00cd9b'>(state)</font><font style='background-color: #05cd9b'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #05cd9b'>vector </font><font style='background-color: #059b9b'>(x1)</font><font style='background-color: #05cd9b'> </font><font style='background-color: #05cd69'>(y1)</font><font style='background-color: #05cd9b'> vert-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #379b9b'>(not </font><font style='background-color: #37699b'>(matrix-get </font><font style='background-color: #37379b'>(state)</font><font style='background-color: #37699b'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #37699b'>vector </font><font style='background-color: #969696'>(x1)</font><font style='background-color: #37699b'> </font><font style='background-color: #05699b'>(y1)</font><font style='background-color: #37699b'> vert-want)</font><font style='background-color: #379b9b'>)</font><font style='background-color: #37cd9b'>)</font><font style='background-color: #69cd9b'>)</font><font style='background-color: #9bcd9b'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cdcd'>(if </font><font style='background-color: #37cdcd'>(matrix-get </font><font style='background-color: #05cdcd'>(state)</font><font style='background-color: #37cdcd'> / vector </font><font style='background-color: #379bcd'>(x1)</font><font style='background-color: #37cdcd'> </font><font style='background-color: #37cd9b'>(y1)</font><font style='background-color: #37cdcd'> vert-have)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #699bcd'>(matrix-get </font><font style='background-color: #6969cd'>(state)</font><font style='background-color: #699bcd'> / vector </font><font style='background-color: #699b9b'>(x1)</font><font style='background-color: #699bcd'> </font><font style='background-color: #379bcd'>(y1)</font><font style='background-color: #699bcd'> vert-value)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cd9b'>(true)</font><font style='background-color: #69cdcd'>)</font><font style='background-color: #9bcdcd'>)</font><font style='background-color: #9bffcd'>)</font><font style='background-color: #9bffff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>vector </font><font style='background-color: #69ffff'>(x1)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(y1)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bffcd'>(x2)</font><font style='background-color: #9bffff'> </font><font style='background-color: #69ffff'>(y2)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(nv)</font><font style='background-color: #9bffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(circuit)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;wrap up both phases of simulation</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132100110011302321100321001001003023211103210010010132210010001132210010010033302321001100013221001001003322100100101332233'>hear</A>] </TT><TT>(define simulate-unless /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? circuit /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign state <font style='background-color: #cdffff'>(unless-phase-1 </font><font style='background-color: #9bffff'>(circuit)</font><font style='background-color: #cdffff'>)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;unless-phase-2 <font style='background-color: #ffcdff'>(circuit)</font> <font style='background-color: #ffffcd'>(state)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;A circuit is a list of gates</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;Each gate is a list (x1 y1 x2 y2 v)</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;where the coordinates (x1,y1) and (x2,y2) represent</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;start and end points of a wire on a plane, carrying a </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;logic value v.</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;Wires copy values from their start point.</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;&nbsp;&nbsp;|  </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;&nbsp;&nbsp;| (A)</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;&nbsp;&nbsp;V        </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;--&gt;--&gt;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;(B)(C)</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;Wire C here copies from wire B.</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;If wire A is on, it blocks (sets to 0) C.</TT><BR>
<TT>[<A HREF='sound.cgi?s=211103210011010032210000322100003210321032100321032210101133322100003210032103211032103221010113332210000321103210321000321032210101133322100003211032100321103210322101011333302321110321001101013221000032210000321032103210032103221010113332210000321003210321103210322101011333221000032110321032100032103221011003332210000321103210032110321032210101133330232100032210011001132210011010033322100110101332233'>hear</A>] </TT><TT>(assign circuit1</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffff'>(vector</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>(vector 2 2 4 2 </font><font style='background-color: #69ffff'>(true)</font><font style='background-color: #9bffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(vector 4 2 6 2 </font><font style='background-color: #cd9bff'>(true)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(vector 6 2 8 2 </font><font style='background-color: #cdff9b'>(true)</font><font style='background-color: #cdffcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffff'>(vector 6 4 6 2 </font><font style='background-color: #69ffff'>(true)</font><font style='background-color: #9bffff'>)</font><font style='background-color: #cdffff'>)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assign circuit2</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdff'>(vector</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff9bff'>(vector 2 2 4 2 </font><font style='background-color: #ff69ff'>(true)</font><font style='background-color: #ff9bff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdcd'>(vector 4 2 6 2 </font><font style='background-color: #ffcd9b'>(true)</font><font style='background-color: #ffcdcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(vector 6 2 8 2 </font><font style='background-color: #9bcdff'>(false)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ff9bff'>(vector 6 4 6 2 </font><font style='background-color: #ff69ff'>(true)</font><font style='background-color: #ff9bff'>)</font><font style='background-color: #ffcdff'>)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equal <font style='background-color: #ffffcd'>(simulate-unless </font><font style='background-color: #ffff9b'>(circuit1)</font><font style='background-color: #ffffcd'>)</font> <font style='background-color: #cdffff'>(circuit2)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;okay, now let us make a simple image class</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;we are going to encode each row as a single binary number,</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;rather than a vector, so that images will be pretty</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;obvious in the raw, uninterpreted message</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132100110110302321101032211000032100110111330232111032100111000322100010322110000332103322111132210320302321001101113322100302321032211000033023210013210302321001110003322100110110322100111000330232101132210011011133213332233'>hear</A>] </TT><TT>(define bit-get /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;lambda <font style='background-color: #cdffff'>(n offset)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign div2 <font style='background-color: #ffcdff'>(div </font><font style='background-color: #ff9bff'>(n)</font><font style='background-color: #ffcdff'> 2)</font> </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #ffffcd'>(if </font><font style='background-color: #ffff9b'>(= 0 / offset)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(not / = </font><font style='background-color: #9bffcd'>(n)</font><font style='background-color: #cdffcd'> / * 2 / div2)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdcd'>(bit-get </font><font style='background-color: #ff9bcd'>(div2)</font><font style='background-color: #ffcdcd'> / - </font><font style='background-color: #ffcd9b'>(offset)</font><font style='background-color: #ffcdcd'> 1)</font><font style='background-color: #ffffcd'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210320302321001101103211032032233'>hear</A>] </TT><TT>(= 0 / bit-get <font style='background-color: #cdffff'>(::.)</font> 0);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210321302321001101103211032132233'>hear</A>] </TT><TT>(= 1 / bit-get <font style='background-color: #cdffff'>(::.)</font> 1);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103213023210011011032110321032233'>hear</A>] </TT><TT>(= 1 / bit-get <font style='background-color: #cdffff'>(::.)</font> 2);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103203023210011011032110321132233'>hear</A>] </TT><TT>(= 0 / bit-get <font style='background-color: #cdffff'>(::.)</font> 3);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032030232100110110321103210032233'>hear</A>] </TT><TT>(= 0 / bit-get <font style='background-color: #cdffff'>(::.)</font> 4);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103203023210011011032100032032233'>hear</A>] </TT><TT>(= 0 / bit-get 8 0);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103203023210011011032100032132233'>hear</A>] </TT><TT>(= 0 / bit-get 8 1);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032030232100110110321000321032233'>hear</A>] </TT><TT>(= 0 / bit-get 8 2);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032130232100110110321000321132233'>hear</A>] </TT><TT>(= 1 / bit-get 8 3);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21101321001110013023211010322100000113210011132111011330232100003221000001133221001113322111011332233'>hear</A>] </TT><TT>(define make-image /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;lambda <font style='background-color: #cdffff'>(h w lst)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;vector <font style='background-color: #ffcdff'>(h)</font> <font style='background-color: #ffffcd'>(w)</font> <font style='background-color: #cdffff'>(lst)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21101321001110103023211010322100111011321001111003210011110133023211103210000011322111110322100111011332033023211103210011132211111032210011101133213302321110321110113221111103221001110113321033023211103210011111032211111032211101133221001111003330232100110110322100111110332210113221011322100111332210011110133321332233'>hear</A>] </TT><TT>(define image-get /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;lambda <font style='background-color: #cdffff'>(image row col)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign h <font style='background-color: #ffcdff'>(list-ref </font><font style='background-color: #ff9bff'>(image)</font><font style='background-color: #ffcdff'> 0)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign w <font style='background-color: #ffffcd'>(list-ref </font><font style='background-color: #ffff9b'>(image)</font><font style='background-color: #ffffcd'> 1)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign lst <font style='background-color: #cdffff'>(list-ref </font><font style='background-color: #9bffff'>(image)</font><font style='background-color: #cdffff'> 2)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign bits <font style='background-color: #ffcdff'>(list-ref </font><font style='background-color: #ff9bff'>(lst)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(row)</font><font style='background-color: #ffcdff'>)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;bit-get <font style='background-color: #ffffcd'>(bits)</font> <font style='background-color: #cdffff'>(- </font><font style='background-color: #9bffff'>(- </font><font style='background-color: #69ffff'>(w)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(col)</font><font style='background-color: #9bffff'>)</font><font style='background-color: #cdffff'> 1)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21101321001111113023211003210011101130232111110322100111011332032233'>hear</A>] </TT><TT>(define image-height /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? image /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;list-ref <font style='background-color: #cdffff'>(image)</font> 0);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21101321010000003023211003210011101130232111110322100111011332132233'>hear</A>] </TT><TT>(define image-width /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? image /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;list-ref <font style='background-color: #cdffff'>(image)</font> 1);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=211013210100000130232100111001321132101302321000032100003210001321000032233'>hear</A>] </TT><TT>(define test-image /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;make-image 3 5 /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;vector <font style='background-color: #cdffff'>(:....)</font> <font style='background-color: #ffcdff'>(:...:)</font> <font style='background-color: #ffffcd'>(:....)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210321132210011111130232101000001332233'>hear</A>] </TT><TT>(= 3 <font style='background-color: #cdffff'>(image-height / test-image)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103210132210100000030232101000001332233'>hear</A>] </TT><TT>(= 5 <font style='background-color: #cdffff'>(image-width / test-image)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032210101133221001110103221010000013320320332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(true)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 0 0)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032210110033221001110103221010000013320321332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(false)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 0 1)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103221011003322100111010322101000001332032100332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(false)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 0 4)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21032210101133221001110103221010000013321320332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(true)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 1 0)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=210322101011332210011101032210100000133210320332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(true)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 2 0)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2103221010113322100111010322101000001332132100332233'>hear</A>] </TT><TT>(= <font style='background-color: #cdffff'>(true)</font> <font style='background-color: #ffcdff'>(image-get </font><font style='background-color: #ff9bff'>(test-image)</font><font style='background-color: #ffcdff'> 1 4)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;need a way to join two lists</TT><BR>
<TT>[<A HREF='sound.cgi?s=211013210100001030232110032110011113023211003211010000302322111132211322111101302321100111133203322111111322111010302321100111133221010000103221111003023211001111332211010000333322110100003332233'>hear</A>] </TT><TT>(define merge-list /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst1 /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst2 /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(if </font><font style='background-color: #9bffff'>(&gt; </font><font style='background-color: #69ffff'>(list-length / lst1)</font><font style='background-color: #9bffff'> 0)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(prepend </font><font style='background-color: #cd9bff'>(head / lst1)</font><font style='background-color: #cdcdff'> </font><font style='background-color: #cdcdcd'>(merge-list </font><font style='background-color: #cdcd9b'>(tail / lst1)</font><font style='background-color: #cdcdcd'> </font><font style='background-color: #9bcdcd'>(lst2)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(lst2)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2110132101000011302321100321110113023221111322113221111013023211101133210332210100001032211101030232111011332210100001130232111100302321110113332211113221032211110130232111011332103322101000010322111010302321110113302322111010302321111003023211101133322111132210322111101302321110113321332211101030232111011332210000333332233'>hear</A>] </TT><TT>(define merge-lists /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(if </font><font style='background-color: #9bffff'>(&gt; </font><font style='background-color: #69ffff'>(list-length / lst)</font><font style='background-color: #9bffff'> 2)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(merge-list </font><font style='background-color: #cd9bff'>(head / lst)</font><font style='background-color: #cdcdff'> </font><font style='background-color: #cdcdcd'>(merge-lists / tail / lst)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(if </font><font style='background-color: #cdff9b'>(= </font><font style='background-color: #cdff69'>(list-length / lst)</font><font style='background-color: #cdff9b'> 2)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bffcd'>(merge-list </font><font style='background-color: #69ffcd'>(head / lst)</font><font style='background-color: #9bffcd'> / </font><font style='background-color: #9bcdcd'>(head / tail / lst)</font><font style='background-color: #9bffcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdcd'>(if </font><font style='background-color: #cd9bcd'>(= </font><font style='background-color: #cd69cd'>(list-length / lst)</font><font style='background-color: #cd9bcd'> 1)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcd9b'>(head / lst)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bcdcd'>(vector)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdffcd'>)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><BR>
<TT>[<A HREF='sound.cgi?s=2100032210000321321032113210033221010000103221000032132103322100003211321003332233'>hear</A>] </TT><TT>(equal <font style='background-color: #cdffff'>(vector 1 2 3 4)</font> <font style='background-color: #ffcdff'>(merge-list </font><font style='background-color: #ff9bff'>(vector 1 2)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(vector 3 4)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2100032210000321321032113210033221010000113221000032210000321321033221000032113322100003210033332233'>hear</A>] </TT><TT>(equal <font style='background-color: #cdffff'>(vector 1 2 3 4)</font> <font style='background-color: #ffcdff'>(merge-lists </font><font style='background-color: #ff9bff'>(vector </font><font style='background-color: #ff69ff'>(vector 1 2)</font><font style='background-color: #ff9bff'> </font><font style='background-color: #ff9bcd'>(vector 3)</font><font style='background-color: #ff9bff'> </font><font style='background-color: #cd9bff'>(vector 4)</font><font style='background-color: #ff9bff'>)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;helper for pairing</TT><BR>
<TT>[<A HREF='sound.cgi?s=21101321010001003023211003210010130232110032111011302321010101322110032100100322100003221001013322100100333322111011332233'>hear</A>] </TT><TT>(define prefix /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? x / </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;map <font style='background-color: #cdffff'>(? y </font><font style='background-color: #9bffff'>(vector </font><font style='background-color: #69ffff'>(x)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(y)</font><font style='background-color: #9bffff'>)</font><font style='background-color: #cdffff'>)</font> <font style='background-color: #ffcdff'>(lst)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21000322100003221000032132101033221000032132101133322101000100321322100003210103210113332233'>hear</A>] </TT><TT>(equal <font style='background-color: #cdffff'>(vector </font><font style='background-color: #9bffff'>(vector 1 10)</font><font style='background-color: #cdffff'> </font><font style='background-color: #cdcdff'>(vector 1 11)</font><font style='background-color: #cdffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdff'>(prefix 1 </font><font style='background-color: #ff9bff'>(vector 10 11)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;need a way to take product of domains</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132101000101302321100321100111130232110032110100003221111322113221111013023211001111332033221010000103221010001003221110103023211001111332211010000333221010001013221111003023211001111332211010000333322100003332233'>hear</A>] </TT><TT>(define pairing /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst1 / </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lst2</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(if </font><font style='background-color: #9bffff'>(&gt; </font><font style='background-color: #69ffff'>(list-length / lst1)</font><font style='background-color: #9bffff'> 0)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(merge-list </font><font style='background-color: #cd9bff'>(prefix </font><font style='background-color: #cd69ff'>(head / lst1)</font><font style='background-color: #cd9bff'> </font><font style='background-color: #cd9bcd'>(lst2)</font><font style='background-color: #cd9bff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdcd'>(pairing </font><font style='background-color: #cdcd9b'>(tail / lst1)</font><font style='background-color: #cdcdcd'> </font><font style='background-color: #9bcdcd'>(lst2)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(vector)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=21000322100003221000032132101033221000032132101133221000032103210103322100003210321011333221010001013221000032132103322100003210103210113332233'>hear</A>] </TT><TT>(equal <font style='background-color: #cdffff'>(vector </font><font style='background-color: #9bffff'>(vector 1 10)</font><font style='background-color: #cdffff'> </font><font style='background-color: #cdcdff'>(vector 1 11)</font><font style='background-color: #cdffff'> </font><font style='background-color: #cdffcd'>(vector 2 10)</font><font style='background-color: #cdffff'> </font><font style='background-color: #9bffff'>(vector 2 11)</font><font style='background-color: #cdffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffcdff'>(pairing </font><font style='background-color: #ff9bff'>(vector 1 2)</font><font style='background-color: #ffcdff'> </font><font style='background-color: #ffcdcd'>(vector 10 11)</font><font style='background-color: #ffcdff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;need a way to make counting sets</TT><BR>
<TT>[<A HREF='sound.cgi?s=21101321100110030232110032101000110302321100321010001113221111322110010322101000110332210100011133322111111322101000110332211001100322101032210100011033213322101000111333322100003332233'>hear</A>] </TT><TT>(define count /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? lo / ? hi</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(if </font><font style='background-color: #9bffff'>(&lt;= </font><font style='background-color: #69ffff'>(lo)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(hi)</font><font style='background-color: #9bffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(prepend </font><font style='background-color: #cd9bff'>(lo)</font><font style='background-color: #cdcdff'> </font><font style='background-color: #cdcdcd'>(count </font><font style='background-color: #cdcd9b'>(+ </font><font style='background-color: #cdcd69'>(lo)</font><font style='background-color: #cdcd9b'> 1)</font><font style='background-color: #cdcdcd'> </font><font style='background-color: #9bcdcd'>(hi)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(vector)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>[<A HREF='sound.cgi?s=2100032210000320321321032113210033221100110032032100332233'>hear</A>] </TT><TT>(equal <font style='background-color: #cdffff'>(vector 0 1 2 3 4)</font> <font style='background-color: #ffcdff'>(count 0 4)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;given an image of a circuit, extract a model.</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;wire elements are centered on multiples of 8</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;individual element...</TT><BR>
<TT>[<A HREF='sound.cgi?s=2110132101001000302321100321001110113023211003210100100130232110032101001010302321100321010010113023211003210100110032211113221001110103221001110113322101001100332210100101133322111032101001101322100111010322100111011332210103221010011003321003322101001011333023211103210100111032211113221010011013320321330232111032101001111322111132210100110133213203302321110321010100003221001110103221001110113322101032210100110033023210103221001321003023210100111133221001321030232101001110333221010322101001011330232101132210013210030232101001110332210013210302321010011113333023211103210101000132211113221010100003321322101132032133302321110321010011103221001322101010001332210100111033302321110321010011113221001322101010001332210100111133302321110321010100103221001110103221001110113322101032210100110033221010011103332210113221010010113322101001111333302322100003221000032210113221010010013322101001110333221011322101001010332210100111133322101032210100100133221010011103332210103221010010103322101001111333221010100103333322100003332233'>hear</A>] </TT><TT>(define distill-element /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? image / ? xlogic / ? ylogic / ? xmid / ? ymid </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #cdffff'>(if </font><font style='background-color: #9bffff'>(image-get </font><font style='background-color: #69ffff'>(image)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bcdff'>(ymid)</font><font style='background-color: #9bffff'> </font><font style='background-color: #9bffcd'>(xmid)</font><font style='background-color: #9bffff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>(assign vert </font><font style='background-color: #cd9bff'>(image-get </font><font style='background-color: #cd69ff'>(image)</font><font style='background-color: #cd9bff'> </font><font style='background-color: #cd9bcd'>(+ </font><font style='background-color: #cd9b9b'>(ymid)</font><font style='background-color: #cd9bcd'> 4)</font><font style='background-color: #cd9bff'> </font><font style='background-color: #9b9bff'>(xmid)</font><font style='background-color: #cd9bff'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign dx </font><font style='background-color: #cdcdcd'>(if </font><font style='background-color: #cdcd9b'>(vert)</font><font style='background-color: #cdcdcd'> 0 1)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign dy </font><font style='background-color: #9bcdff'>(if </font><font style='background-color: #69cdff'>(vert)</font><font style='background-color: #9bcdff'> 1 0)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign pos </font><font style='background-color: #cd9bff'>(image-get </font><font style='background-color: #cd69ff'>(image)</font><font style='background-color: #cd9bff'> </font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cd9bcd'>(+ </font><font style='background-color: #cd9b9b'>(ymid)</font><font style='background-color: #cd9bcd'> / + </font><font style='background-color: #9b9bcd'>(* 4 / dy)</font><font style='background-color: #cd9bcd'> </font><font style='background-color: #cd69cd'>(* 2 / dx)</font><font style='background-color: #cd9bcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9b9bff'>(+ </font><font style='background-color: #699bff'>(xmid)</font><font style='background-color: #9b9bff'> / - </font><font style='background-color: #9b69ff'>(* 4 / dx)</font><font style='background-color: #9b9bff'> </font><font style='background-color: #9b9bcd'>(* 2 / dy)</font><font style='background-color: #9b9bff'>)</font><font style='background-color: #cd9bff'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign sgn </font><font style='background-color: #cdcdcd'>(if </font><font style='background-color: #cdcd9b'>(pos)</font><font style='background-color: #cdcdcd'> 1 </font><font style='background-color: #9bcdcd'>(- 0 1)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign dx </font><font style='background-color: #9bcdff'>(* </font><font style='background-color: #69cdff'>(sgn)</font><font style='background-color: #9bcdff'> </font><font style='background-color: #9b9bff'>(dx)</font><font style='background-color: #9bcdff'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign dy </font><font style='background-color: #cd9bff'>(* </font><font style='background-color: #cd69ff'>(sgn)</font><font style='background-color: #cd9bff'> </font><font style='background-color: #cd9bcd'>(dy)</font><font style='background-color: #cd9bff'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcdff'>assign active </font><font style='background-color: #cdcdcd'>(image-get </font><font style='background-color: #cdcd9b'>(image)</font><font style='background-color: #cdcdcd'> </font><font style='background-color: #9bcdcd'>(+ </font><font style='background-color: #69cdcd'>(ymid)</font><font style='background-color: #9bcdcd'> </font><font style='background-color: #9b9bcd'>(dx)</font><font style='background-color: #9bcdcd'>)</font><font style='background-color: #cdcdcd'> </font><font style='background-color: #cd9bcd'>(- </font><font style='background-color: #cd69cd'>(xmid)</font><font style='background-color: #cd9bcd'> </font><font style='background-color: #cd9b9b'>(dy)</font><font style='background-color: #cd9bcd'>)</font><font style='background-color: #cdcdcd'>)</font><font style='background-color: #cdcdff'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #9bcdff'>(vector </font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cdff'>(vector </font><font style='background-color: #37cdff'>(- </font><font style='background-color: #05cdff'>(xlogic)</font><font style='background-color: #37cdff'> </font><font style='background-color: #379bff'>(dx)</font><font style='background-color: #37cdff'>)</font><font style='background-color: #69cdff'> </font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #699bff'>(- </font><font style='background-color: #6969ff'>(ylogic)</font><font style='background-color: #699bff'> </font><font style='background-color: #699bcd'>(dy)</font><font style='background-color: #699bff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #69cdcd'>(+ </font><font style='background-color: #69cd9b'>(xlogic)</font><font style='background-color: #69cdcd'> </font><font style='background-color: #37cdcd'>(dx)</font><font style='background-color: #69cdcd'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #37cdff'>(+ </font><font style='background-color: #05cdff'>(ylogic)</font><font style='background-color: #37cdff'> </font><font style='background-color: #379bff'>(dy)</font><font style='background-color: #37cdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #699bff'>(active)</font><font style='background-color: #69cdff'>)</font><font style='background-color: #9bcdff'>)</font><font style='background-color: #cdcdff'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdffcd'>(vector)</font><font style='background-color: #cdffff'>)</font>);</TT><BR>
<BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>#&nbsp;full circuit...</TT><BR>
<TT>[<A HREF='sound.cgi?s=21101321010100113023211003210011101130232111032100000113221000103221001111113023210011101133210003302321110321001113221000103221010000003023210011101133210003322101000011322101010132211003210101101302321110321010010013221111103221010110133203302321110321010010103221111103221010110133213302321110321010010113221001321000302321010010013302321110321010011003221001321000302321010010103302321010010003221001110113322101001001332210100101033221010010113322101001100333221010001013221100110032132210113221001113321333221100110032132210113221000001133213333332233'>hear</A>] </TT><TT>(define distill-circuit /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;? image /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign h <font style='background-color: #cdffff'>(div </font><font style='background-color: #9bffff'>(image-height / image)</font><font style='background-color: #cdffff'> 8)</font> /</TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;assign w <font style='background-color: #ffcdff'>(div </font><font style='background-color: #ff9bff'>(image-width / image)</font><font style='background-color: #ffcdff'> 8)</font> </TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;<font style='background-color: #ffffcd'>(merge-lists</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff9b'>(map </font><font style='background-color: #ffff69'>(? v /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff69'>assign xlogic </font><font style='background-color: #ffff37'>(list-ref </font><font style='background-color: #ffff05'>(v)</font><font style='background-color: #ffff37'> 0)</font><font style='background-color: #ffff69'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff69'>assign ylogic </font><font style='background-color: #cdff69'>(list-ref </font><font style='background-color: #9bff69'>(v)</font><font style='background-color: #cdff69'> 1)</font><font style='background-color: #ffff69'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff69'>assign xmid </font><font style='background-color: #ffcd69'>(* 8 / xlogic)</font><font style='background-color: #ffff69'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff69'>assign ymid </font><font style='background-color: #ffff37'>(* 8 / ylogic)</font><font style='background-color: #ffff69'> /</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #ffff69'>distill-element </font><font style='background-color: #cdff69'>(image)</font><font style='background-color: #ffff69'> </font><font style='background-color: #ffcd69'>(xlogic)</font><font style='background-color: #ffff69'> </font><font style='background-color: #ffff37'>(ylogic)</font><font style='background-color: #ffff69'> </font><font style='background-color: #cdff69'>(xmid)</font><font style='background-color: #ffff69'> </font><font style='background-color: #ffcd69'>(ymid)</font><font style='background-color: #ffff69'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdff9b'>(pairing </font><font style='background-color: #9bff9b'>(count 1 </font><font style='background-color: #69ff9b'>(- </font><font style='background-color: #37ff9b'>(w)</font><font style='background-color: #69ff9b'> 1)</font><font style='background-color: #9bff9b'>)</font></TT><BR>
<TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TT><TT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style='background-color: #cdcd9b'>(count 1 </font><font style='background-color: #cd9b9b'>(- </font><font style='background-color: #cd699b'>(h)</font><font style='background-color: #cd9b9b'> 1)</font><font style='background-color: #cdcd9b'>)</font><font style='background-color: #cdff9b'>)</font><font style='background-color: #ffff9b'>)</font><font style='background-color: #ffffcd'>)</font>);</TT><BR>
<BR>

</BODY>
</HTML>
