compressionlibs/ziplib/engineering/Differences between prototype and release.html
changeset 44 97b0fb8a2cc2
parent 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compressionlibs/ziplib/engineering/Differences between prototype and release.html	Tue Jul 20 16:35:53 2010 +0530
@@ -0,0 +1,328 @@
+<html><head>
+<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<style>
+/* Default heading font (outside of tables) */
+body { font-family: sans-serif; font-size: 11pt; }
+
+td { vertical-align: top; padding-left: 4px; padding-right: 4px; }
+
+/* File Difference Report styles - Color */
+table.fc { border-top: 1px solid Black; border-left: 1px solid Black; width: 100%; font-family: monospace; font-size: 10pt; }
+
+tr.secBegin td { border-left: none; border-top: none; border-right: 1px solid Black; }
+tr.secMiddle td { border-left: none; border-top: none; border-right: 1px solid Black; }
+tr.secEnd td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
+tr.secAll td { border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
+tr.secSubEnd td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
+tr.secSubAll td { border-left: none; border-top: none; border-bottom: 1px solid Gray; border-right: 1px solid Black; }
+tr.secGap td { font-size: 4px; border-left: none; border-top: none; border-bottom: 1px solid Black; border-right: 1px solid Black; }
+
+td.LineNum { text-align: right; }
+td.LineRange { font-family: sans-serif; }
+td.SubLineRange { font-family: sans-serif; border-bottom: none; }
+
+td.AlignLeft { text-align: left; }
+td.AlignRight { text-align: right; }
+td.AlignCenter { text-align: center; }
+td.Caption { text-align: left; background-color: #E7E7E7; padding-top: 8px; }
+
+td.Normal { }
+td.HasSimilar { background-color: #F0F0FF; }
+td.HasMismatch { background-color: #FFF0F0; }
+td.HasOrphan { background-color: #FFF0F0; }
+td.Added { background-color: #FFF0F0; }
+td.Deleted { background-color: #FFF0F0; text-decoration: line-through; }
+td.UAdded { background-color: #F0F0FF; }
+td.UDeleted { background-color: #F0F0FF; text-decoration: line-through; }
+
+.ttSigDiff { color: #FF0000; }
+.ttInsigDiff { color: #0000FF; }
+.ttAdded { color: #FF0000; }
+.ttDeleted { text-decoration: line-through; }
+
+/* Directory Comparison Report styles - Color */
+table.dc { border-top: 1px solid Black; border-left: 1px solid Black; width: 100%; font-family: sans-serif; font-size: 10pt; }
+
+table.dc tr.secBegin td { border-bottom: 1px solid Silver; }
+table.dc tr.secMiddle td { border-bottom: 1px solid Silver; }
+
+.ttNewer { color: #FF0000; }
+.ttOlder { color: #808080; }
+.ttOrphan { color: #0000FF; }
+.ttGhosted { color: #008080; }
+</style>
+</head><body>
+FILE COMPARISON<br />
+Produced: 20/09/2007 11:44:52<br />
+&nbsp; &nbsp;
+<br />
+Mode:&nbsp; Just Differences &nbsp;
+<br />
+Left base folder: U:\documents\PREQ1583\version comparison\zlib_prototype &nbsp;
+<br />
+Right base folder: U:\documents\PREQ1583\version comparison\zlib_release &nbsp;
+<br />
+&nbsp; &nbsp;
+<br />
+File: deflate.cpp &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secAll">
+<td class="LineNum">190</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; s-&gt;head[s-&gt;ins_h] = <span class="ttSigDiff">static_cast</span><span class="ttSigDiff">&lt;</span>Pos<span class="ttSigDiff">&gt;</span>(str))</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">190</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; s-&gt;head[s-&gt;ins_h] = <span class="ttSigDiff">(</span>Pos<span class="ttSigDiff">)</span>(str))</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">195</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; s-&gt;head[s-&gt;ins_h] = <span class="ttSigDiff">static_cast</span><span class="ttSigDiff">&lt;</span>Pos<span class="ttSigDiff">&gt;</span>(str))</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">195</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; s-&gt;head[s-&gt;ins_h] = <span class="ttSigDiff">(</span>Pos<span class="ttSigDiff">)</span>(str))</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secBegin">
+<td class="LineNum">342</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; // Line to stop compiler warning about unused mandatory global variable</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">342</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; // Line to stop compiler warning about unused mandatory global variable<span class="ttInsigDiff"> </span><span class="ttSigDiff">'deflate_copyright'</span></td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">343</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; char <span class="ttSigDiff">__z</span>=deflate_copyright[0]; <span class="ttSigDiff">__z</span>=<span class="ttSigDiff">__z</span>;</td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">343</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; char <span class="ttSigDiff">dontCa</span><span class="ttSigDiff">re</span><span class="ttInsigDiff"> </span>=<span class="ttInsigDiff"> </span>deflate_copyright[0]; <span class="ttSigDiff">dontCa</span><span class="ttSigDiff">re</span><span class="ttInsigDiff"> </span>=<span class="ttInsigDiff"> </span><span class="ttSigDiff">dontC</span><span class="ttSigDiff">are</span>;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">1446</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>Call UPDATE_HASH() MIN_MATCH-3 more times</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">1446</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call UPDATE_HASH() MIN_MATCH-3 more times</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">1633</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>Call UPDATE_HASH() MIN_MATCH-3 more times</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">1633</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call UPDATE_HASH() MIN_MATCH-3 more times</td>
+</tr>
+</table>
+&nbsp; &nbsp;
+<br />
+File: inftrees.cpp &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secBegin">
+<td class="LineNum">47</td>
+<td class="HasSimilar">&nbsp;&nbsp;&nbsp; <span class="ttInsigDiff">&nbsp;&nbsp;&nbsp; </span>// Line to stop compiler warning about unused mandatory global variable</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">47</td>
+<td class="HasSimilar">&nbsp;&nbsp;&nbsp; // Line to stop compiler warning about unused mandatory global variable</td>
+</tr>
+<tr class="secMiddle">
+<td class="LineNum">48</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; char <span class="ttSigDiff">__z</span>=inflate_copyright[0]; <span class="ttSigDiff">__z</span>=<span class="ttSigDiff">__z</span>;</td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">48</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp; char <span class="ttSigDiff">dontCa</span><span class="ttSigDiff">re</span><span class="ttInsigDiff"> </span>=<span class="ttInsigDiff"> </span>inflate_copyright[0]; <span class="ttSigDiff">dontCa</span><span class="ttSigDiff">re</span><span class="ttInsigDiff"> </span>=<span class="ttInsigDiff"> </span><span class="ttSigDiff">dontC</span><span class="ttSigDiff">are</span>;</td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">&nbsp;</td>
+<td class="HasSimilar">&nbsp;</td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">49</td>
+<td class="HasSimilar"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp; </span></td>
+</tr>
+</table>
+&nbsp; &nbsp;
+<br />
+File: trees.cpp &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secAll">
+<td class="LineNum">243</td>
+<td class="HasMismatch"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp;</span><span class="ttInsigDiff"> </span>s-&gt;bi_buf = <span class="ttSigDiff">static_cast</span><span class="ttSigDiff">&lt;</span>ush<span class="ttSigDiff">&gt;</span><span class="ttSigDiff">(</span>val &gt;&gt; (Buf_size - s-&gt;bi_valid<span class="ttSigDiff">)</span>);\</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">243</td>
+<td class="HasMismatch"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp; </span>s-&gt;bi_buf = <span class="ttSigDiff">(</span>ush<span class="ttSigDiff">)</span>val &gt;&gt; (Buf_size - s-&gt;bi_valid);\</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secBegin">
+<td class="LineNum">630</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>next_code[bits] = code = (code + bl_count[bits-1]) &lt;&lt; 1;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">630</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next_code[bits] = code = (code + bl_count[bits-1]) &lt;&lt; 1;</td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">631</td>
+<td class="HasOrphan"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="ttSigDiff">next_code[bits]</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">=</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">code</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">=</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">static_cast&lt;ush&gt;((code</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">+</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">bl_count[bits-1])</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">&lt;&lt;</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">1);</span></td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secBegin">
+<td class="LineNum">644</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>tree[n].Code = bi_reverse(next_code[len]++, len);</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">643</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree[n].Code = bi_reverse(next_code[len]++, len);</td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">645</td>
+<td class="HasOrphan"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="ttSigDiff">tree[n].Code</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">=</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">static_cast&lt;ush&gt;(bi_reverse(next_code[len]++,</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">len));</span></td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secBegin">
+<td class="LineNum">721</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>tree[node].Freq = tree[n].Freq + tree[m].Freq;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">719</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tree[node].Freq = tree[n].Freq + tree[m].Freq;</td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">722</td>
+<td class="HasOrphan"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="ttSigDiff">tree[node].Freq</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">=</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">static_cast&lt;ush&gt;(tree[n].Freq</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">+</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">tree[m].Freq);</span></td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secBegin">
+<td class="LineNum">778</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="ttSigDiff">//</span>s-&gt;bl_tree[curlen].Freq += count;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">775</td>
+<td class="HasMismatch">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s-&gt;bl_tree[curlen].Freq += count;</td>
+</tr>
+<tr class="secEnd">
+<td class="LineNum">779</td>
+<td class="HasOrphan"><span class="ttInsigDiff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="ttSigDiff">s-&gt;bl_tree[curlen].Freq</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">=</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">static_cast&lt;ush&gt;(s-&gt;bl_tree[curlen].Freq</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">+</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">count);</span></td>
+<td class="AlignCenter">&nbsp;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+</table>
+&nbsp; &nbsp;
+<br />
+File: zlib.h &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secAll">
+<td class="LineNum">87</td>
+<td class="HasSimilar">&nbsp;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasSimilar">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">657</td>
+<td class="HasSimilar"><span class="ttInsigDiff">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasSimilar">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">705</td>
+<td class="HasSimilar">&nbsp;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasSimilar">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">893</td>
+<td class="HasSimilar">&nbsp;</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasSimilar">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">1266</td>
+<td class="HasMismatch">#endif //SYMBIAN_EXCLUDE_GZ_FUNCTIONS</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">1262</td>
+<td class="HasMismatch">#endif //SYMBIAN_E<span class="ttSigDiff">ZLIB_E</span>XCLUDE_GZ_FUNCTIONS</td>
+</tr>
+</table>
+&nbsp; &nbsp;
+<br />
+File: zutil.cpp &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secAll">
+<td class="LineNum">161</td>
+<td class="HasOrphan"><span class="ttSigDiff">#ifndef</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">SYMBIAN_EZLIB_DEVICE</span></td>
+<td class="AlignCenter">+-</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">327</td>
+<td class="HasOrphan"><span class="ttSigDiff">#endif</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">//SYMBIAN_EZLIB_DEVICE</span></td>
+<td class="AlignCenter">+-</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+</table>
+&nbsp; &nbsp;
+<br />
+File: zutil.h &nbsp;
+<br />
+<table class="fc" cellspacing="0" cellpadding="0">
+<tr class="secAll">
+<td class="LineNum">100</td>
+<td class="HasOrphan"><span class="ttSigDiff">#ifndef</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">SYMBIAN_EZLIB_DEVICE</span></td>
+<td class="AlignCenter">+-</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">179</td>
+<td class="HasOrphan"><span class="ttSigDiff">#endif</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">//SYMBIAN_EZLIB_DEVICE</span></td>
+<td class="AlignCenter">+-</td>
+<td class="LineNum">&nbsp;</td>
+<td class="HasOrphan">&nbsp;</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">228</td>
+<td class="HasMismatch">#endif //LIBZGZIO_H</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">226</td>
+<td class="HasMismatch">#endif //<span class="ttInsigDiff"> </span><span class="ttSigDiff">!SYMBIAN_EZLIB_DEVICE</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">||</span><span class="ttInsigDiff"> </span>LIBZGZIO_H</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">259</td>
+<td class="HasMismatch">// Native Symbian Memory Functions Symbian<span class="ttSigDiff">,</span><span class="ttInsigDiff"> </span><span class="ttSigDiff">21/03/07</span></td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">257</td>
+<td class="HasMismatch">// Native Symbian Memory Functions Symbian</td>
+</tr>
+<tr class="secGap"><td colspan="5">&nbsp;</td></tr>
+<tr class="secAll">
+<td class="LineNum">268</td>
+<td class="HasMismatch">#endif //SYMBIAN_EZLIB_DEVICE &amp;&amp; LIBZGZIO_H</td>
+<td class="AlignCenter">&lt;&gt;</td>
+<td class="LineNum">266</td>
+<td class="HasMismatch">#endif //SYMBIAN_EZLIB_DEVICE &amp;&amp; <span class="ttSigDiff">!</span>LIBZGZIO_H</td>
+</tr>
+</table>
+</body></html>