Переглянути джерело

Merge www/ and trac/ into a single web/ project.

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/web/trunk@2920 92316355-f0b4-4df1-b90c-862c8a59935f
remotes/test
sam 16 роки тому
коміт
7029cca974
100 змінених файлів з 30047 додано та 0 видалено
  1. +57
    -0
      static/.htaccess
  2. BIN
      static/cacacon07/DSC000011.JPG
  3. BIN
      static/cacacon07/DSC000013.JPG
  4. BIN
      static/cacacon07/DSC000017.JPG
  5. BIN
      static/cacacon07/DSC000026.JPG
  6. BIN
      static/cacacon07/DSC000029.JPG
  7. +117
    -0
      static/cacacon07/index.html
  8. BIN
      static/cacacon07/tn-DSC000011.jpeg
  9. BIN
      static/cacacon07/tn-DSC000013.jpeg
  10. BIN
      static/cacacon07/tn-DSC000017.jpeg
  11. BIN
      static/cacacon07/tn-DSC000026.jpeg
  12. BIN
      static/cacacon07/tn-DSC000029.jpeg
  13. BIN
      static/cacatris-sample.png
  14. +37
    -0
      static/cacatris.html
  15. +64
    -0
      static/download.html
  16. +48
    -0
      static/export.html
  17. +20710
    -0
      static/export.ps
  18. +5397
    -0
      static/export.svg
  19. BIN
      static/favicon.ico
  20. +17
    -0
      static/footer.inc
  21. +28
    -0
      static/header.inc
  22. BIN
      static/img/back1.png
  23. BIN
      static/img/back2.png
  24. BIN
      static/img/back3.png
  25. BIN
      static/img/back4.png
  26. BIN
      static/img/cacaball-80x50.png
  27. BIN
      static/img/cacaplas-80x50.png
  28. BIN
      static/img/export.png
  29. BIN
      static/img/green-left.png
  30. BIN
      static/img/green-right.png
  31. BIN
      static/img/rotate.png
  32. BIN
      static/img/sample.png
  33. BIN
      static/img/stitch-80x45.png
  34. BIN
      static/img/swallow-80x32.png
  35. BIN
      static/img/tn-cacaball-80x50.jpeg
  36. BIN
      static/img/tn-cacaplas-80x50.jpeg
  37. BIN
      static/img/tn-export.jpeg
  38. BIN
      static/img/tn-rotate.jpeg
  39. BIN
      static/img/tn-stitch-80x45.jpeg
  40. BIN
      static/img/tn-swallow-80x32.jpeg
  41. BIN
      static/img/tn-truecolor-32x16.jpeg
  42. BIN
      static/img/tn-unicode-80x24.jpeg
  43. BIN
      static/img/trac_banner.png
  44. BIN
      static/img/truecolor-32x16.png
  45. BIN
      static/img/unicode-80x24.png
  46. BIN
      static/img2oric/OUTPUT.TAP
  47. BIN
      static/img2oric/bb.png
  48. BIN
      static/img2oric/bear.gif
  49. BIN
      static/img2oric/blur-eatme.png
  50. BIN
      static/img2oric/bufbw.png
  51. BIN
      static/img2oric/buffy.png
  52. BIN
      static/img2oric/dog.png
  53. BIN
      static/img2oric/eatme.png
  54. BIN
      static/img2oric/homer.png
  55. +610
    -0
      static/img2oric/img2oric.c
  56. BIN
      static/img2oric/img2oric.exe
  57. +139
    -0
      static/img2oric/index.html
  58. BIN
      static/img2oric/lena.png
  59. BIN
      static/img2oric/mire.png
  60. BIN
      static/img2oric/oric.png
  61. BIN
      static/img2oric/output-bb.png
  62. BIN
      static/img2oric/output-bear.gif
  63. BIN
      static/img2oric/output-bufbw.png
  64. BIN
      static/img2oric/output-buffy.png
  65. BIN
      static/img2oric/output-dog.png
  66. BIN
      static/img2oric/output-eatme.png
  67. BIN
      static/img2oric/output-homer.png
  68. BIN
      static/img2oric/output-lena.png
  69. BIN
      static/img2oric/output-mire.png
  70. BIN
      static/img2oric/real-oric.jpeg
  71. BIN
      static/img2oric/rotate-bb.png
  72. BIN
      static/img2oric/xeuphoric.png
  73. +376
    -0
      static/index.html
  74. +38
    -0
      static/lc-mw1.ans
  75. +50
    -0
      static/list-svn.html
  76. +50
    -0
      static/list-trac.html
  77. +58
    -0
      static/list.html
  78. BIN
      static/logo-caca.png
  79. +185
    -0
      static/main.css
  80. +54
    -0
      static/manual.html
  81. BIN
      static/neercs-thumbnails.png
  82. +36
    -0
      static/neercs.html
  83. +34
    -0
      static/robots.txt
  84. +157
    -0
      static/study/biblio.html
  85. BIN
      static/study/fig1-2-1.png
  86. +222
    -0
      static/study/fig1-2-1.svg
  87. BIN
      static/study/fig1-2-2.png
  88. +242
    -0
      static/study/fig1-2-2.svg
  89. BIN
      static/study/fig1-2-3.png
  90. +222
    -0
      static/study/fig1-2-3.svg
  91. BIN
      static/study/fig1-2-4.png
  92. +242
    -0
      static/study/fig1-2-4.svg
  93. BIN
      static/study/fig2-3-1.png
  94. +120
    -0
      static/study/fig2-3-1.svg
  95. BIN
      static/study/fig2-3-1b.png
  96. +360
    -0
      static/study/fig2-3-1b.svg
  97. BIN
      static/study/fig2-3-1c.png
  98. +177
    -0
      static/study/fig2-3-1c.svg
  99. BIN
      static/study/fig2-3-5.png
  100. +200
    -0
      static/study/fig2-3-5.svg

+ 57
- 0
static/.htaccess Переглянути файл

@@ -0,0 +1,57 @@
# $Id$

# Activated modules
RewriteEngine on

# We talk utf8 here
AddDefaultCharset utf-8

# Disallowed files: .htaccess, .htpasswd, .svn etc.
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

<Files ~ "^\.svn">
Order allow,deny
Deny from all
</Files>

# MIME Types
<IfModule mod_action.c>
AddType application/x-cgi-php .html
Action application/x-cgi-php /cgi-bin/php5
</IfModule>
<IfModule !mod_action.c>
AddType application/x-httpd-php .html
</IfModule>
AddType text/css .css
AddType application/octet-stream .TAP

# Redirects for disallowed stuff
RewriteRule ^.git/.* /.git/ [L]
RewriteRule ^.svn/.* /.svn/ [L]
RewriteRule (.*)/.svn/.* /$1/.svn/ [L]

# Redirects for manual and lists
RewriteRule ^manual/$ /manual.html?page=index [L]
RewriteRule ^manual/(.*)[.]html /manual.html?page=$1 [L]
RewriteRule ^list/$ /list.html?page=threads [L]
RewriteRule ^list/(.*)[.]html /list.html?page=$1 [L]
RewriteRule ^list-svn/$ /list-svn.html?page=threads [L]
RewriteRule ^list-svn/(.*)[.]html /list-svn.html?page=$1 [L]
RewriteRule ^list-trac/$ /list-trac.html?page=threads [L]
RewriteRule ^list-trac/(.*)[.]html /list-trac.html?page=$1 [L]

# Misc. redirects
RewriteRule ^([^/]*).(gz|bz2|zip) /files/$1.$2 [R=permanent,L]
RewriteRule ^images/(.*) /img/$1 [R=permanent,L]
RewriteRule ^labs/img2oric.html /img2oric/ [R=permanent,L]
RewriteRule ^devel.html /wiki [R=permanent,L]
RewriteRule ^cgi-bin/viewcvs.cgi /browser [R=permanent,L]

# Redirects for Trac - FIXME
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /cgi-bin/trac.cgi/$1 [PT,L,E=SCRIPT_NAME:/]


BIN
static/cacacon07/DSC000011.JPG Переглянути файл

Перед Після
Ширина: 1024  |  Висота: 768  |  Розмір: 490 KiB

BIN
static/cacacon07/DSC000013.JPG Переглянути файл

Перед Після
Ширина: 576  |  Висота: 768  |  Розмір: 266 KiB

BIN
static/cacacon07/DSC000017.JPG Переглянути файл

Перед Після
Ширина: 1024  |  Висота: 681  |  Розмір: 241 KiB

BIN
static/cacacon07/DSC000026.JPG Переглянути файл

Перед Після
Ширина: 1024  |  Висота: 768  |  Розмір: 593 KiB

BIN
static/cacacon07/DSC000029.JPG Переглянути файл

Перед Після
Ширина: 1024  |  Висота: 684  |  Розмір: 363 KiB

+ 117
- 0
static/cacacon07/index.html Переглянути файл

@@ -0,0 +1,117 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="CacaCon’07 - First International libcaca Conference" />
<meta name="Keywords" content="CacaCon, libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>CacaCon’07 - First International libcaca Conference</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<p> FOR IMMEDIATE RELEASE </p>

<h2> Report on the First International libcaca Conference </h2>

<p> Wednesday October 24, 2007 </p>

<p> Sam (ZOY) - Paris, France: <b>CacaCon’07</b>, the first international
libcaca conference, just took place on October 19-20, 2007 in Lyon, France.
</p>

<p> The most eagerly-awaited event of the conference was of course Jylam’s
keynote. The acclaimed libcaca second-in-chief developer covered the
history of the project, gave key figures about its current status, and
of course hinted at future plans. </p>

<p> The morning of the second day had been busy with uncalled for attacks
directed at the libcaca team by Mozilla Europe Board of Directors
president Tristan Nitot who reportedly managed to say that "all
applications have memory leaks" without immediately dying of maniac,
self-ridiculing laughter. Needless to say, Jylam’s keynote was
immediately refocused on insisting about libcaca’s superior development
model and giving examples of its speed, lightweightness and general lack
of memory leaks. </p>

<table cellspacing="5" border="0" style="margin: auto;">
<tr>
<td align="center">
<a href="DSC000013.JPG"><img alt="Jylam"
width="68" height="90"
src="tn-DSC000013.jpeg" /><br />Jylam</a>
</td>
<td align="center">
<a href="DSC000011.JPG"><img alt="PowerPipo"
width="120" height="90"
src="tn-DSC000011.jpeg" /><br />PowerPipo</a>
</td>
<td align="center">
<a href="DSC000017.JPG"><img alt="the audience"
width="135" height="90"
src="tn-DSC000017.jpeg" /><br />the audience</a>
</td>
</tr>
</table>

<p> The libcaca team eventually announced its new forthcoming product
"neercs", a replacement for the obsolete Unix utility "screen" with
full Unicode support, window thumbnailing, eye-candy transition effects
and textmode window management. The audience also sat in awe as Jylam,
literally knee-shaking in excitement, admitted that the very tool he had
been using during the keynote was not a Microsoft product or a cheap
clone thereof, but a development version of the libcaca team’s own
fully-featured presentation tool, PowerPipo. </p>

<p> <b>CacaCon’07</b> ended with a social event at luxury resort Le Chevreul
(Lyon) where hundreds of potential libcaca users and enthusiasts would
have been able to meet main developers Sam and Jylam. </p>

<table cellspacing="5" border="0" style="margin: auto;">
<tr>
<td align="center">
<a href="DSC000026.JPG"><img alt="Jylam and Sam"
width="120" height="90"
src="tn-DSC000026.jpeg" /><br />Jylam and Sam</a>
</td>
<td align="center">
<a href="DSC000029.JPG"><img alt="fan art"
width="135" height="90"
src="tn-DSC000029.jpeg" /><br />fan art</a>
</td>
</tr>
</table>

<p> <b>About libcaca:</b> <br />
libcaca is the industry leading colour ASCII art library. It is part
of a global conspiracy aiming at luring basement-dwelling nerds
into thinking that focusing on overtechnical, useless and generally
uninteresting activities is going to help them get laid. Approximately
700,000 Linux users still believe it to be true and frantically
recompile nightly git snapshots of the kernel as a consequence. </p>

<p> <b>About Firefox:</b> <br />
Firefox is the Mozilla Corporation’s rebranded version of the famous
Iceweasel web browser, to which they insist on adding a restrictive
trademark license and a suggestive yiff logo. Notwithstanding, we urge
you to donate all your money to the multimillion-dollar company. The
guys look legit. </p>

<p> <b>About memory leaks:</b> <br />
All applications called Firefox have memory leaks. </p>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

BIN
static/cacacon07/tn-DSC000011.jpeg Переглянути файл

Перед Після
Ширина: 120  |  Висота: 90  |  Розмір: 15 KiB

BIN
static/cacacon07/tn-DSC000013.jpeg Переглянути файл

Перед Після
Ширина: 68  |  Висота: 90  |  Розмір: 12 KiB

BIN
static/cacacon07/tn-DSC000017.jpeg Переглянути файл

Перед Після
Ширина: 135  |  Висота: 90  |  Розмір: 24 KiB

BIN
static/cacacon07/tn-DSC000026.jpeg Переглянути файл

Перед Після
Ширина: 120  |  Висота: 90  |  Розмір: 8.7 KiB

BIN
static/cacacon07/tn-DSC000029.jpeg Переглянути файл

Перед Після
Ширина: 135  |  Висота: 90  |  Розмір: 8.3 KiB

BIN
static/cacatris-sample.png Переглянути файл

Перед Після
Ширина: 648  |  Висота: 436  |  Розмір: 6.3 KiB

+ 37
- 0
static/cacatris.html Переглянути файл

@@ -0,0 +1,37 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca - cacatris" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca - cacatris</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<h2> cacatris </h2>

<p> Cacatris aims to create a graphical Tetris(c) clone, but in text mode. Main concerns focus on gameplay, and graphical quality (althought current screenshot doesn't really show this).</p>
<p> It is currently under heavy developement, thus no downloads are available yet.</p>

<h2> Screenshot </h2>

<p style="text-align: center;"><img src="cacatris-sample.png" width="648"
height="436" alt="ttyvaders sample 2" /></p>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 64
- 0
static/download.html Переглянути файл

@@ -0,0 +1,64 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca - downloads" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca - downloads</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<p> You can <a href="/files/downloads">browse old releases</a> of all the libcaca
software. </p>

<h2> Libcaca development versions </h2>

<p> The latest libcaca beta version is <a
href="/files/libcaca/libcaca-0.99.beta13b.tar.gz">libcaca-0.99.beta13b.tar.gz</a>
(November 28th, 2007). Please download and test it. If you are a developer,
please comment on the current API and let us know what is missing. </p>

<p> Even more recent code can be downloaded using Subversion. See the <a
href="/devel.html">development page</a> for more information. </p>

<h2> Documentation </h2>

<p> You can download a <a href="libcaca.pdf">PDF version</a> of the
libcaca manual. </p>

<h2> Old libcaca stable versions </h2>

<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: stable
releases of libcaca are terribly outdated. If you want to test libcaca, you
are encouraged to check the development versions. </p>

<p> Latest stable libcaca release is <a
href="/files/libcaca/libcaca-0.9.tar.gz">libcaca-0.9.tar.gz</a> (216KB) / <a
href="/files/libcaca/libcaca-0.9.tar.bz2">libcaca-0.9.tar.bz2</a> (172KB). </p>

<p> A Windows zip archive containing the libcaca demos can be downloaded here:
<a href="/files/libcaca/libcaca-win32-0.9.zip">libcaca-win32-0.9.zip</a> (100KB). </p>

<p> Older versions (up to 0.9) were under the LGPL license but all
copyright holders agreed to relicence the codebase under the WTFPL (such a
permission is not retroactive and you should consider old versions as still
covered by the LGPL). The logo on this page is copyrighted by Akira Toriyama
so if anyone fancies drawing a new logo it would be much appreciated. </p>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 48
- 0
static/export.html Переглянути файл

@@ -0,0 +1,48 @@
<html><head>
<title>Generated by libcaca 0.99.beta10</title>
</head><body>
<div cellpadding='0' cellspacing='0' style='font-family: monospace, fixed; font-weight: bold;'>
<span style="color:#aaa;background-color:#000">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#aaa;background-color:#000">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&#9604;&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&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><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&nbsp;&nbsp;&#9604;&#9604;&nbsp;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;&nbsp;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;&nbsp;&nbsp;&nbsp;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9612;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#f5f;background-color:#a0a">&#9616;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9617;&#9618;&#9619;</span><span style="color:#fff;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9600;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9619;</span><span style="color:#fff;background-color:#000">&#9612;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9600;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;&nbsp;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9618;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9618;&#9619;&#9618;&#9618;&#9617;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9618;&#9617;&#9618;&#9618;&#9618;&#9619;&#9619;&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9617;&#9618;&#9618;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#fff;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#f5f;background-color:#a0a">&#9616;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9617;&#9618;</span><span style="color:#555;background-color:#000">&#9604;&nbsp;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9612;</span><span style="color:#aaa;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9618;&#9617;</span><span style="color:#aaa;background-color:#000">&#9608;&nbsp;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9617;&nbsp;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&nbsp;&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9600;&#9600;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;&#9600;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#a0a;background-color:#000">&#9608;&nbsp;&nbsp;&#9604;&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9617;&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9618;&#9618;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9600;&nbsp;&#9616;</span><span style="color:#555;background-color:#aaa">&#9617;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&nbsp;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#a0a;background-color:#000">&#9608;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9616;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#555;background-color:#000">&#9616;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9604;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&nbsp;&#9617;&#9618;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9618;&#9619;</span><span style="color:#555;background-color:#000">&#9612;&#9616;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9618;&#9617;&#9617;&#9618;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9608;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9618;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&nbsp;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;&#9608;&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9604;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9617;&#9617;&nbsp;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#555;background-color:#000">&#9616;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9600;&#9604;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9618;&#9618;&#9617;</span><span style="color:#555;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;&#9600;&#9608;&#9612;</span><span style="color:#555;background-color:#000">&#9616;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9618;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9618;&#9618;</span><span style="color:#555;background-color:#000">&#9612;&nbsp;&#9616;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9618;&#9618;</span><span style="color:#555;background-color:#000">&#9612;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&nbsp;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9617;&#9617;&nbsp;&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#000">&#9604;&#9604;&#9604;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9604;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;&#9617;&#9617;</span><span style="color:#555;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9600;&#9608;&#9604;&nbsp;&#9600;&#9600;&#9600;&nbsp;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9612;&#9616;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&nbsp;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;&#9600;&#9600;&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9608;&#9600;&#9600;&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;&#9600;&#9600;&#9600;</span><span style="color:#a0a;background-color:#000">&#9608;&#9608;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#a0a;background-color:#a0a">&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9608;&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#a00;background-color:#000">&#9604;</span><span style="color:#f55;background-color:#a00">&#9617;&#9618;&#9619;&#9618;</span><span style="color:#a00;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9608;&#9608;&#9604;&#9604;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9608;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;&#9604;&nbsp;&nbsp;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9616;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#a0a;background-color:#a0a">&nbsp;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;</span><span style="color:#a00;background-color:#000">&#9608;</span><span style="color:#f55;background-color:#a00">&#9617;&#9618;&#9619;</span><span style="color:#fff;background-color:#a00">&#9619;</span><span style="color:#f55;background-color:#a00">&#9619;&#9618;</span><span style="color:#a00;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9600;</span><span style="color:#fff;background-color:#aaa">&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&#9604;</span><span style="color:#a00;background-color:#000">&#9600;</span><span style="color:#f55;background-color:#a00">&#9617;&#9618;&#9619;&#9618;</span><span style="color:#a00;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9608;&#9612;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9617;&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9616;</span><span style="color:#f5f;background-color:#000">&#9612;</span><span style="color:#fff;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9617;&#9618;&#9618;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9600;&#9604;&#9608;&#9604;&#9604;&#9604;&#9604;&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9618;&#9618;&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;&#9618;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&nbsp;&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9600;&#9612;</span><span style="color:#aaa;background-color:#000">&#9616;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9619;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#fff;background-color:#000">&#9604;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#fff;background-color:#000">&#9612;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;&#9616;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9618;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9600;&#9604;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;&#9617;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;&#9618;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#a0a;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9604;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&nbsp;&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;&nbsp;&#9616;</span><span style="color:#fff;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9617;&#9618;&#9618;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&#9604;&#9604;&#9604;&#9600;</span><span style="color:#555;background-color:#aaa">&#9617;&#9618;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9618;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&#9604;</span><span style="color:#555;background-color:#aaa">&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&nbsp;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9600;&#9600;&#9600;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;&nbsp;&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9618;&#9617;&#9617;&#9617;&#9618;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9619;</span><span style="color:#fff;background-color:#aaa">&#9617;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;</span><span style="color:#fff;background-color:#aaa">&#9618;&#9617;&#9617;&#9617;</span><span style="color:#555;background-color:#aaa">&#9617;&#9617;</span><span style="color:#fff;background-color:#aaa">&#9617;&#9617;&#9617;</span><span style="color:#aaa;background-color:#000">&#9612;</span><span style="color:#555;background-color:#000">&#9604;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9618;&#9618;</span><span style="color:#555;background-color:#000">&#9604;&nbsp;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9617;&#9617;&#9617;&#9618;&#9618;</span><span style="color:#555;background-color:#000">&#9612;&#9604;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9618;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9618;&#9618;&#9618;&#9619;&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9618;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9608;&nbsp;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9618;&#9618;&#9618;&#9618;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9616;</span><span style="color:#555;background-color:#aaa">&#9619;&#9618;&#9618;&#9618;&#9618;&#9618;&#9618;&#9619;</span><span style="color:#555;background-color:#000">&#9612;</span><span style="color:#f5f;background-color:#000">&#9616;</span><span style="color:#f5f;background-color:#a0a">&#9612;</span><span style="color:#a0a;background-color:#000">&#9612;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&nbsp;&#9604;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9604;&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#555;background-color:#000">&#9600;&#9600;</span><span style="color:#555;background-color:#aaa">&#9619;&#9619;&#9619;&#9619;&#9619;</span><span style="color:#555;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;&nbsp;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9608;&#9604;&#9604;&#9604;&#9604;&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9608;&#9608;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9604;&#9604;&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&#9600;</span><span style="color:#00a;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&#9600;</span><span style="color:#00a;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&#9604;&#9608;&#9608;&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#00a;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;&nbsp;&#9600;&#9600;&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;&#9600;&#9600;&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9604;&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&#9604;&#9600;&#9600;&#9600;&#9600;&#9600;&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;</span><span style="color:#00a;background-color:#000">&#9600;&#9608;&nbsp;&nbsp;</span><span style="color:#00a;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9608;</span><span style="color:#f5f;background-color:#000">&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#aaa;background-color:#000">&nbsp;</span><span style="color:#f5f;background-color:#000">&#9608;&#9608;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;&nbsp;</span><span style="color:#f5f;background-color:#00a">&nbsp;</span><span style="color:#55f;background-color:#00a">&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9608;&nbsp;&nbsp;</span><span style="color:#55f;background-color:#00a">&nbsp;&#9617;&#9618;&#9619;</span><span style="color:#55f;background-color:#000">&#9604;</span><span style="color:#f5f;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9604;</span><span style="color:#a0a;background-color:#000">&#9604;</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;&#9600;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#f5f;background-color:#000">&#9608;&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;&#9600;</span><span style="color:#f5f;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;</span><span style="color:#f5f;background-color:#a0a">&#9600;</span><span style="color:#a0a;background-color:#000">&#9600;</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&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><span style="color:#a0a;background-color:#000">&#9600;&#9600;&#9600;&#9600;&nbsp;&nbsp;&nbsp;&nbsp;&#9600;&#9600;&#9600;&#9600;&#9600;&nbsp;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&nbsp;&nbsp;&#9600;&#9600;&#9600;&#9600;&#9600;</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&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><span style="color:#fff;background-color:#000">M&nbsp;O&nbsp;R&nbsp;T&nbsp;A&nbsp;L&nbsp;&nbsp;&nbsp;W&nbsp;</span><span style="color:#555;background-color:#000">i&nbsp;</span><span style="color:#fff;background-color:#000">S&nbsp;H</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#555;background-color:#000">&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;&#9604;</span><br />
<span style="color:#aaa;background-color:#000">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">PiL&nbsp;HQ&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">Syndrome&nbsp;Couriers&nbsp;HQ&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">GODS&nbsp;WHQ</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">16.8&nbsp;Duals&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">8i8.XxX.XxXx&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">8&nbsp;Node&nbsp;Ringdown</span><span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&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><span style="color:#a0a;background-color:#000">S:&nbsp;QUAZiMODEM&nbsp;&&nbsp;CiPHER</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">CO'S:&nbsp;&nbsp;LORD&nbsp;THiNKER&nbsp;&nbsp;&nbsp;THE&nbsp;MOZARELLO</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:#a0a;background-color:#000">SLiCE&nbsp;&&nbsp;DiCE&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">HURRiCAN&nbsp;</span><span style="color:#fff;background-color:#000">&#9632;&nbsp;</span><span style="color:#a0a;background-color:#000">RAZOR&nbsp;BLADE</span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#555;background-color:#000">&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;&#9600;</span><br />
<span style="color:#aaa;background-color:#000">&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><span style="color:#555;background-color:#000">ANSi&nbsp;BY&nbsp;&nbsp;&nbsp;</span><span style="color:#fff;background-color:#000">LUC&nbsp;</span><span style="color:#555;background-color:#000"><&nbsp;</span><span style="color:#55f;background-color:#000">AiM&nbsp;</span><span style="color:#555;background-color:#000">'</span><span style="color:#00a;background-color:#000">NiNE&nbsp;FO</span><span style="color:#555;background-color:#000">'&nbsp;></span><span style="color:#aaa;background-color:#000">&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><br />
<span style="color:#aaa;background-color:#000">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
<span style="color:#aaa;background-color:#000">&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br />
</div></body></html>

+ 20710
- 0
static/export.ps
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 5397
- 0
static/export.svg
Різницю між файлами не показано, бо вона завелика
Переглянути файл


BIN
static/favicon.ico Переглянути файл

Перед Після

+ 17
- 0
static/footer.inc Переглянути файл

@@ -0,0 +1,17 @@
</div>
</div>
</div>

<div class="gradleft">
<div class="gradright">
<div class="bottom">
<div class="bottombar">
<div style="float: right">
<p>valid <a href="http://validator.w3.org/check/referer">XHTML 1.1</a> &amp; <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></p>
</div>
<p><?php echo $rev . ' Host: ' . $_SERVER['REMOTE_ADDR'];?></p>
</div>
</div>
</div>
</div>


+ 28
- 0
static/header.inc Переглянути файл

@@ -0,0 +1,28 @@
<div class="gradleft">
<div class="gradright">
<div class="top">
<p class="dashit">
<?php function printrand($a) { print $a[array_rand($a)]; }
printrand(array('it’s da shit!',
'libcaca c’est du caca',
'libcacaは糞です。',
'die scheussliche Bibliothek',
'libcaca©®™, take back the text',
'a million flies cannot be wrong')); ?>
</p>
<h1> libcaca - Colour AsCii Art library </h1>
</div>
</div>
</div>

<div class="menubar" style="clear: both;">
<p>
<a class="menubutton" href="/">home</a>
<a class="menubutton" href="/manual/">manual</a>
<a class="menubutton" href="/list.html">mailing-lists</a>
</p>
</div>

<div class="gradleft">
<div class="gradright">
<div class="main">

BIN
static/img/back1.png Переглянути файл

Перед Після
Ширина: 466  |  Висота: 432  |  Розмір: 84 KiB

BIN
static/img/back2.png Переглянути файл

Перед Після
Ширина: 466  |  Висота: 54  |  Розмір: 9.3 KiB

BIN
static/img/back3.png Переглянути файл

Перед Після
Ширина: 420  |  Висота: 390  |  Розмір: 79 KiB

BIN
static/img/back4.png Переглянути файл

Перед Після
Ширина: 466  |  Висота: 432  |  Розмір: 34 KiB

BIN
static/img/cacaball-80x50.png Переглянути файл

Перед Після
Ширина: 488  |  Висота: 436  |  Розмір: 16 KiB

BIN
static/img/cacaplas-80x50.png Переглянути файл

Перед Після
Ширина: 488  |  Висота: 436  |  Розмір: 44 KiB

BIN
static/img/export.png Переглянути файл

Перед Після
Ширина: 560  |  Висота: 645  |  Розмір: 28 KiB

BIN
static/img/green-left.png Переглянути файл

Перед Після
Ширина: 128  |  Висота: 16  |  Розмір: 474 B

BIN
static/img/green-right.png Переглянути файл

Перед Після
Ширина: 128  |  Висота: 16  |  Розмір: 469 B

BIN
static/img/rotate.png Переглянути файл

Перед Після
Ширина: 570  |  Висота: 683  |  Розмір: 61 KiB

BIN
static/img/sample.png Переглянути файл

Перед Після
Ширина: 128  |  Висота: 128  |  Розмір: 35 KiB

BIN
static/img/stitch-80x45.png Переглянути файл

Перед Після
Ширина: 488  |  Висота: 605  |  Розмір: 44 KiB

BIN
static/img/swallow-80x32.png Переглянути файл

Перед Після
Ширина: 648  |  Висота: 436  |  Розмір: 36 KiB

BIN
static/img/tn-cacaball-80x50.jpeg Переглянути файл

Перед Після
Ширина: 101  |  Висота: 90  |  Розмір: 7.3 KiB

BIN
static/img/tn-cacaplas-80x50.jpeg Переглянути файл

Перед Після
Ширина: 101  |  Висота: 90  |  Розмір: 13 KiB

BIN
static/img/tn-export.jpeg Переглянути файл

Перед Після
Ширина: 78  |  Висота: 90  |  Розмір: 3.3 KiB

BIN
static/img/tn-rotate.jpeg Переглянути файл

Перед Після
Ширина: 75  |  Висота: 90  |  Розмір: 5.1 KiB

BIN
static/img/tn-stitch-80x45.jpeg Переглянути файл

Перед Після
Ширина: 73  |  Висота: 90  |  Розмір: 8.0 KiB

BIN
static/img/tn-swallow-80x32.jpeg Переглянути файл

Перед Після
Ширина: 120  |  Висота: 81  |  Розмір: 11 KiB

BIN
static/img/tn-truecolor-32x16.jpeg Переглянути файл

Перед Після
Ширина: 87  |  Висота: 90  |  Розмір: 9.4 KiB

BIN
static/img/tn-unicode-80x24.jpeg Переглянути файл

Перед Після
Ширина: 120  |  Висота: 75  |  Розмір: 9.5 KiB

BIN
static/img/trac_banner.png Переглянути файл

Перед Після
Ширина: 236  |  Висота: 73  |  Розмір: 10 KiB

BIN
static/img/truecolor-32x16.png Переглянути файл

Перед Після
Ширина: 328  |  Висота: 340  |  Розмір: 22 KiB

BIN
static/img/unicode-80x24.png Переглянути файл

Перед Після
Ширина: 570  |  Висота: 358  |  Розмір: 50 KiB

BIN
static/img2oric/OUTPUT.TAP Переглянути файл


BIN
static/img2oric/bb.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 4.0 KiB

BIN
static/img2oric/bear.gif Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 154 KiB

BIN
static/img2oric/blur-eatme.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 14 KiB

BIN
static/img2oric/bufbw.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 24 KiB

BIN
static/img2oric/buffy.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 64 KiB

BIN
static/img2oric/dog.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 78 KiB

BIN
static/img2oric/eatme.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 3.9 KiB

BIN
static/img2oric/homer.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 46 KiB

+ 610
- 0
static/img2oric/img2oric.c Переглянути файл

@@ -0,0 +1,610 @@
/*
* img2oric Convert an image to Oric Atmos colours
* Copyright (c) 2008 Sam Hocevar <sam@zoy.org>
* All Rights Reserved
*
* Changes:
* Jan 18, 2008: initial release
* Jan 23, 2008: add support for inverse video on attribute change
* improve Floyd-Steinberg coefficient values
* Jun 14, 2008: Win32 version
* Jun 18, 2008: add meaningful error messages
*
* This program is free software. It comes without any warranty, to
* the extent permitted by applicable law. You can redistribute it
* and/or modify it under the terms of the Do What The Fuck You Want
* To Public License, Version 2, as published by Sam Hocevar. See
* http://sam.zoy.org/wtfpl/COPYING for more details.
*
* To build this program on Linux:
* cc -O3 -funroll-loops -W -Wall img2oric.c -o img2oric \
* $(pkg-config --cflags --libs sdl) -lSDL_image -lm
* To build a Windows executable:
* i586-mingw32msvc-cc -O3 -funroll-loops -W -Wall \
* img2oric.c -o img2oric.exe -lgdi32
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <math.h>

#if defined _WIN32
# include <windows.h>
# define uint8_t unsigned char
#else
# include <SDL_image.h>
#endif

/*
* BMP output name and Oric output name
*/
#define BMPFILE "output.bmp"
#define ORICFILE "OUTPUT" /* ".TAP" will be appended */

/*
* Image dimensions and recursion depth. DEPTH = 2 is a reasonable value,
* DEPTH = 3 gives good quality, and higher values may improve the results
* even more but at the cost of significantly longer computation times.
*/
#define WIDTH 240
#define HEIGHT 200
#define DEPTH 3

/*
* Error diffusion table, similar to Floyd-Steinberg. I choose not to
* propagate 100% of the error, because doing so creates awful artifacts
* (full lines of the same colour, massive colour bleeding) for unclear
* reasons. Atkinson dithering propagates 3/4 of the error, which is even
* less than our 31/32. I also choose to propagate slightly more in the
* X direction to avoid banding effects due to rounding errors.
* It would be interesting, for future versions of this software, to
* propagate the error to the second line, too. But right now I find it far
* too complex to do.
*
* +-------+-------+
* | error |FS0/FSX|
* +-------+-------+-------+
* |FS1/FSX|FS2/FSX|FS3/FSX|
* +-------+-------+-------+
*/
#define FS0 15
#define FS1 6
#define FS2 9
#define FS3 1
#define FSX 32

/*
* The simple Oric RGB palette, made of the 8 Neugebauer primary colours. Each
* colour is repeated 6 times so that we can point to the palette to paste
* whole blocks of 6 pixels. It’s also organised so that palette[7-x] is the
* RGB negative of palette[x], and screen command X uses palette[X & 7].
*/
#define o 0x0000
#define X 0xffff
static const int palette[8][6 * 3] =
{
{ o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o },
{ X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o },
{ o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o },
{ X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o },
{ o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X },
{ X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X },
{ o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X },
{ X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X },
};

/*
* Gamma correction tables. itoc_table and ctoi_table accept overflow and
* underflow values to a reasonable extent, so that we don’t have to check
* for these cases later in the code. Tests kill performance.
*/
#define PAD 2048
static int itoc_table_clip[PAD + 256 + PAD], ctoi_table_clip[PAD + 256 + PAD];
static int *itoc_table = itoc_table_clip + PAD;
static int *ctoi_table = ctoi_table_clip + PAD;

static void init_tables(void)
{
int i;

for(i = 0; i < PAD + 256 + PAD; i++)
{
double f = 1.0 * (i - PAD) / 255.999;
if(f >= 0.)
{
itoc_table_clip[i] = (int)(65535.999 * pow(f, 1./2.2));
ctoi_table_clip[i] = (int)(65535.999 * pow(f, 2.2));
}
else
{
itoc_table_clip[i] = - (int)(65535.999 * pow(-f, 1./2.2));
ctoi_table_clip[i] = - (int)(65535.999 * pow(-f, 2.2));
}
}
}

static inline int itoc(int p) { return itoc_table[p / 0x100]; }
static inline int ctoi(int p) { return ctoi_table[p / 0x100]; }

/*
* Set new background and foreground colours according to the given command.
*/
static inline void domove(uint8_t command, uint8_t *bg, uint8_t *fg)
{
if((command & 0x78) == 0x00)
*fg = command & 0x7;
else if((command & 0x78) == 0x10)
*bg = command & 0x7;
}

/*
* Clamp pixel value to avoid colour bleeding. Deactivated because it
* does not give satisfactory results.
*/
#define CLAMP 0x1000
static inline int clamp(int p)
{
#if 0
/* FIXME: doesn’t give terribly good results on eg. eatme.png */
if(p < - CLAMP) return - CLAMP;
if(p > 0xffff + CLAMP) return 0xffff + CLAMP;
#endif
return p;
}

/*
* Compute the perceptual error caused by replacing the input pixels "in"
* with the output pixels "out". "inerr" is the diffused error that should
* be applied to "in"’s first pixel. "outerr" will hold the diffused error
* to apply after "in"’s last pixel upon next call. The return value does
* not mean much physically; it is one part of the algorithm where you need
* to play a bit in order to get appealing results. That’s how image
* processing works, dude.
*/
static inline int geterror(int const *in, int const *inerr,
int const *out, int *outerr)
{
int tmperr[9 * 3];
int i, c, ret = 0;

/* 9 cells: 1 for the end of line, 8 for the errors below */
memcpy(tmperr, inerr, 3 * sizeof(int));
memset(tmperr + 3, 0, 8 * 3 * sizeof(int));

for(i = 0; i < 6; i++)
{
for(c = 0; c < 3; c++)
{
/* Experiment shows that this is important at small depths */
int a = clamp(in[i * 3 + c] + tmperr[c]);
int b = out[i * 3 + c];
tmperr[c] = (a - b) * FS0 / FSX;
tmperr[c + (i * 3 + 3)] += (a - b) * FS1 / FSX;
tmperr[c + (i * 3 + 6)] += (a - b) * FS2 / FSX;
tmperr[c + (i * 3 + 9)] += (a - b) * FS3 / FSX;
ret += (a - b) / 256 * (a - b) / 256;
}
}

for(i = 0; i < 4; i++)
{
for(c = 0; c < 3; c++)
{
/* Experiment shows that this is important at large depths */
int a = itoc((in[i * 3 + c] + in[i * 3 + 3 + c]
+ in[i * 3 + 6 + c]) / 3);
int b = itoc((out[i * 3 + c] + out[i * 3 + 3 + c]
+ out[i * 3 + 6 + c]) / 3);
ret += (a - b) / 256 * (a - b) / 256;
}
}

/* Using the diffused error as a perceptual error component is stupid,
* because that’s not what it is at all, but I found that it helped a
* bit in some cases. */
for(i = 0; i < 3; i++)
ret += tmperr[i] / 256 * tmperr[i] / 256;

memcpy(outerr, tmperr, 3 * sizeof(int));

return ret;
}

static uint8_t bestmove(int const *in, uint8_t bg, uint8_t fg,
int const *errvec, int depth, int maxerror,
int *error, int *out)
{
int voidvec[3], nvoidvec[3], bestrgb[6 * 3], tmprgb[6 * 3], tmpvec[3];
int const *voidrgb, *nvoidrgb, *vec, *rgb;
int besterror, curerror, suberror, statice, voide, nvoide;
int i, j, c;
uint8_t command, bestcommand;

/* Precompute error for the case where we change the foreground colour
* and hence only print the background colour or its negative */
voidrgb = palette[bg];
voide = geterror(in, errvec, voidrgb, voidvec);
nvoidrgb = palette[7 - bg];
nvoide = geterror(in, errvec, nvoidrgb, nvoidvec);

/* Precompute sub-error for the case where we print pixels (and hence
* don’t change the palette). It’s not the exact error because we should
* be propagating the error to the first pixel here. */
if(depth > 0)
{
int tmp[3] = { 0, 0, 0 };
bestmove(in + 6 * 3, bg, fg, tmp, depth - 1, maxerror, &statice, NULL);
}

/* Check every likely command:
* 0-7: change foreground to 0-7
* 8-15: change foreground to 0-7, print negative background
* 16-23: change background to 0-7
* 24-31: change background to 0-7, print negative background
* 32: normal stuff
* 33: inverse video stuff */
besterror = 0x7ffffff;
bestcommand = 0x10;
memcpy(bestrgb, voidrgb, 6 * 3 * sizeof(int));
for(j = 0; j < 34; j++)
{
static uint8_t const lookup[] =
{
0x00, 0x04, 0x01, 0x05, 0x02, 0x06, 0x03, 0x07,
0x80, 0x84, 0x81, 0x85, 0x82, 0x86, 0x83, 0x87,
0x10, 0x14, 0x11, 0x15, 0x12, 0x16, 0x13, 0x17,
0x90, 0x94, 0x91, 0x95, 0x92, 0x96, 0x93, 0x97,
0x40, 0xc0
};

uint8_t newbg = bg, newfg = fg;

command = lookup[j];
domove(command, &newbg, &newfg);

/* Keeping bg and fg is useless, because we could use standard
* pixel printing instead */
if((command & 0x40) == 0x00 && newbg == bg && newfg == fg)
continue;

/* I *think* having newfg == newbg is useless, too, but I don’t
* want to miss some corner case where swapping bg and fg may be
* interesting, so we continue anyway. */

#if 0
/* Bit 6 off and bit 5 on seems illegal */
if((command & 0x60) == 0x20)
continue;

/* Bits 6 and 5 off and bit 3 on seems illegal */
if((command & 0x68) == 0x08)
continue;
#endif

if((command & 0xf8) == 0x00)
{
curerror = voide;
rgb = voidrgb;
vec = voidvec;
}
else if((command & 0xf8) == 0x80)
{
curerror = nvoide;
rgb = nvoidrgb;
vec = nvoidvec;
}
else if((command & 0xf8) == 0x10)
{
rgb = palette[newbg];
curerror = geterror(in, errvec, rgb, tmpvec);
vec = tmpvec;
}
else if((command & 0xf8) == 0x90)
{
rgb = palette[7 - newbg];
curerror = geterror(in, errvec, rgb, tmpvec);
vec = tmpvec;
}
else
{
int const *bgcolor, *fgcolor;

if((command & 0x80) == 0x00)
{
bgcolor = palette[bg]; fgcolor = palette[fg];
}
else
{
bgcolor = palette[7 - bg]; fgcolor = palette[7 - fg];
}

memcpy(tmpvec, errvec, 3 * sizeof(int));
curerror = 0;

for(i = 0; i < 6; i++)
{
int vec1[3], vec2[3];
int smalle1 = 0, smalle2 = 0;

memcpy(vec1, tmpvec, 3 * sizeof(int));
memcpy(vec2, tmpvec, 3 * sizeof(int));
for(c = 0; c < 3; c++)
{
int delta1, delta2;
delta1 = clamp(in[i * 3 + c] + tmpvec[c]) - bgcolor[c];
vec1[c] = delta1 * FS0 / FSX;
smalle1 += delta1 / 256 * delta1;
delta2 = clamp(in[i * 3 + c] + tmpvec[c]) - fgcolor[c];
vec2[c] = delta2 * FS0 / FSX;
smalle2 += delta2 / 256 * delta2;
}

if(smalle1 < smalle2)
{
memcpy(tmpvec, vec1, 3 * sizeof(int));
memcpy(tmprgb + i * 3, bgcolor, 3 * sizeof(int));
}
else
{
memcpy(tmpvec, vec2, 3 * sizeof(int));
memcpy(tmprgb + i * 3, fgcolor, 3 * sizeof(int));
command |= (1 << (5 - i));
}
}

/* Recompute full error */
curerror += geterror(in, errvec, tmprgb, tmpvec);

rgb = tmprgb;
vec = tmpvec;
}

if(curerror > besterror)
continue;

/* Try to avoid bad decisions now that will have a high cost
* later in the line by making the next error more important than
* the current error. */
curerror = curerror * 3 / 4;

if(depth == 0)
suberror = 0; /* It’s the end of the tree */
else if((command & 0x68) == 0x00)
{
bestmove(in + 6 * 3, newbg, newfg, vec, depth - 1,
besterror - curerror, &suberror, NULL);

#if 0
/* Slight penalty for colour changes; they're hard to revert. The
* value of 2 was determined empirically. 1.5 is not enough and
* 3 is too much. */
if(newbg != bg)
suberror = suberror * 10 / 8;
else if(newfg != fg)
suberror = suberror * 9 / 8;
#endif
}
else
suberror = statice;

if(curerror + suberror < besterror)
{
besterror = curerror + suberror;
bestcommand = command;
memcpy(bestrgb, rgb, 6 * 3 * sizeof(int));
}
}

*error = besterror;
if(out)
memcpy(out, bestrgb, 6 * 3 * sizeof(int));

return bestcommand;
}

int main(int argc, char *argv[])
{
#if defined _WIN32
PBITMAPINFO pbinfo;
BITMAPINFO binfo;
BITMAPFILEHEADER bfheader;
ULONG bisize;
HANDLE hfile;
HBITMAP tmp;
HDC hdc;
DWORD ret;
#else
SDL_Surface *tmp, *surface;
#endif
FILE *f;
uint8_t *pixels;
int *src, *dst, *srcl, *dstl;
int stride, x, y, depth, c;

if(argc < 2)
{
fprintf(stderr, "Error: missing argument.\n");
fprintf(stderr, "Usage: img2oric <image>\n");
return 1;
}

#if defined _WIN32
tmp = (HBITMAP)LoadImage(NULL, argv[1], IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE);
#else
tmp = IMG_Load(argv[1]);
#endif
if(!tmp)
{
fprintf(stderr, "Error: could not load image %s.\n", argv[1]);
#if defined _WIN32
fprintf(stderr, "Maybe try with an 8-bpp or 24-bpp BMP file?\n");
#endif
return 2;
}

f = fopen(ORICFILE ".TAP", "w");
if(!f)
{
fprintf(stderr, "Error: could not open %s.TAP for writing.\n",
ORICFILE);
return 3;
}
fwrite("\x16\x16\x16\x16\x24", 1, 5, f);
fwrite("\x00\xff\x80\x00\xbf\x3f\xa0\x00\x00", 1, 9, f);
fwrite(ORICFILE, 1, strlen(ORICFILE), f);
fwrite("\x00", 1, 1, f);

init_tables();

/* Load the image into a friendly array of fast integers. We create it
* slightly bigger than the image so that we don’t have to care about
* borders when propagating the error later */
src = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int));
dst = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int));
stride = (WIDTH + 1) * 3;

#if defined _WIN32
hdc = CreateCompatibleDC(NULL);
SelectObject(hdc, tmp);
for(y = 0; y < HEIGHT; y++)
for(x = 0; x < WIDTH; x++)
{
COLORREF color = GetPixel(hdc, x, y);
src[y * stride + x * 3] = ctoi(GetRValue(color) * 0x101);
src[y * stride + x * 3 + 1] = ctoi(GetGValue(color) * 0x101);
src[y * stride + x * 3 + 2] = ctoi(GetBValue(color) * 0x101);
for(c = 0; c < 3; c++)
dst[y * stride + x * 3 + c] = 0;
}
#else
/* FIXME: endianness */
surface = SDL_CreateRGBSurface(SDL_SWSURFACE, WIDTH, HEIGHT, 32,
0xff0000, 0xff00, 0xff, 0x0);
SDL_BlitSurface(tmp, NULL, surface, NULL);
pixels = (uint8_t *)surface->pixels;
for(y = 0; y < HEIGHT; y++)
for(x = 0; x < WIDTH; x++)
for(c = 0; c < 3; c++)
{
src[y * stride + x * 3 + c]
= ctoi(pixels[y * surface->pitch + x * 4 + 2 - c] * 0x101);
dst[y * stride + x * 3 + c] = 0;
}
#endif

/* Let the fun begin */
for(y = 0; y < HEIGHT; y++)
{
uint8_t bg = 0, fg = 7;

fprintf(stderr, "\rProcessing... %i%%", (y * 100 + 99) / HEIGHT);

for(x = 0; x < WIDTH; x += 6)
{
int errvec[3] = { 0, 0, 0 };
int dummy, i;
uint8_t command;

depth = (x + DEPTH < WIDTH) ? DEPTH : (WIDTH - x) / 6 - 1;
srcl = src + y * stride + x * 3;
dstl = dst + y * stride + x * 3;

/* Recursively compute and apply best command */
command = bestmove(srcl, bg, fg, errvec, depth, 0x7fffff,
&dummy, dstl);
/* Propagate error */
for(c = 0; c < 3; c++)
{
for(i = 0; i < 6; i++)
{
int error = srcl[i * 3 + c] - dstl[i * 3 + c];
srcl[i * 3 + c + 3] =
clamp(srcl[i * 3 + c + 3] + error * FS0 / FSX);
srcl[i * 3 + c + stride - 3] += error * FS1 / FSX;
srcl[i * 3 + c + stride] += error * FS2 / FSX;
srcl[i * 3 + c + stride + 3] += error * FS3 / FSX;
}

for(i = -1; i < 7; i++)
srcl[i * 3 + c + stride] = clamp(srcl[i * 3 + c + stride]);
}
/* Iterate */
domove(command, &bg, &fg);
/* Write byte to file */
fwrite(&command, 1, 1, f);
}
}

fclose(f);

fprintf(stderr, " done.\n");

/* Save everything */
#if defined _WIN32
for(y = 0; y < HEIGHT; y++)
for(x = 0; x < WIDTH; x++)
{
uint8_t r = dst[y * stride + x * 3] / 0x100;
uint8_t g = dst[y * stride + x * 3 + 1] / 0x100;
uint8_t b = dst[y * stride + x * 3 + 2] / 0x100;
SetPixel(hdc, x, y, RGB(r, g, b));
}

binfo.bmiHeader.biSize = sizeof(binfo.bmiHeader);
binfo.bmiHeader.biBitCount = 0;
GetDIBits(hdc, tmp, 0, 0, NULL, &binfo, DIB_RGB_COLORS);

switch(binfo.bmiHeader.biBitCount)
{
case 24:
bisize = sizeof(BITMAPINFOHEADER);
break;
case 16:
case 32:
bisize = sizeof(BITMAPINFOHEADER) + sizeof(DWORD) * 3;
break;
default:
bisize = sizeof(BITMAPINFOHEADER)
+ sizeof(RGBQUAD) * (1 << binfo.bmiHeader.biBitCount);
break;
}

pbinfo = (PBITMAPINFO)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, bisize);
memcpy(pbinfo, &binfo, sizeof(BITMAPINFOHEADER));

bfheader.bfType = 0x4D42; /* "BM" */
bfheader.bfSize = sizeof(BITMAPFILEHEADER)
+ bisize + pbinfo->bmiHeader.biSizeImage;
bfheader.bfReserved1 = 0;
bfheader.bfReserved2 = 0;
bfheader.bfOffBits = sizeof(BITMAPFILEHEADER) + bisize;

pixels = GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT,
binfo.bmiHeader.biSizeImage);
GetDIBits(hdc, tmp, 0, pbinfo->bmiHeader.biHeight,
pixels, pbinfo, DIB_RGB_COLORS);

hfile = CreateFile(BMPFILE, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE, NULL);
WriteFile(hfile, &bfheader, sizeof(BITMAPFILEHEADER), &ret, NULL);
WriteFile(hfile, pbinfo, bisize, &ret, NULL);
WriteFile(hfile, pixels, pbinfo->bmiHeader.biSizeImage, &ret, NULL);
CloseHandle(hfile);

GlobalFree(pbinfo);
GlobalFree(pixels);
#else
for(y = 0; y < HEIGHT; y++)
for(x = 0; x < WIDTH; x++)
for(c = 0; c < 3; c++)
pixels[y * surface->pitch + x * 4 + 2 - c]
= itoc(dst[y * stride + x * 3 + c]) / 0x100;
SDL_SaveBMP(surface, BMPFILE);
#endif

return 0;
}


BIN
static/img2oric/img2oric.exe Переглянути файл


+ 139
- 0
static/img2oric/index.html Переглянути файл

@@ -0,0 +1,139 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="Caca Labs - img2oric" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, colour quantisation, dithering, oric" />
<title>Caca Labs - img2oric</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<img src="oric.png" width="200" height="130"
alt="Oric computer" style="float: left; border: 0px;" />

<p> <tt>img2oric</tt> converts images to the Oric screen format. The <a
href="http://www.defence-force.org/computing/oric/gallery/index.htm">Oric
screen format</a> is one of the most twisted standards and very little artwork
exists for this vintage computer. It was therefore the perfect challenge for
the Caca Labs image processing team. </p>

<p> The graphical part of the Oric screen has 240×200 pixels and can only
display 8 different colours (black, blue, red, green, cyan, magenta, yellow
and white). Each horizontal group of 6 pixels can only use two different
colours: the foreground and the background colours. The background <i>or</i>
the foreground colour may also be changed (one at a time), but while doing
so the next 6 pixels cannot be chosen: they will use the background colour
instead. Finally, a special bit may be activated to display the current group
of pixels in reverse video. </p>

<h2 style="clear: both;"> Downloads </h2>

<p> No real downloads are available yet. However, the file <tt><a
href="img2oric.c">img2oric.c</a></tt> may be compiled on Linux to obtain an
almost functional, yet extremely slow (around 2 minutes to process an image on
a modern computer) program. </p>

<h2> Usage </h2>

<p> <tt>img2oric</tt> will output to <tt>output.bmp</tt>, an image file
containing the new version, and to <tt>OUTPUT.TAP</tt> which contains the
Oric-format file. </p>

<p> You can download a <a href="OUTPUT.TAP">sample <tt>OUTPUT.TAP</tt></a>
file as generated by <tt>img2oric</tt>. To load it into an Oric
computer, or an emulator such as <tt>xeuphoric</tt>, just type
<b><tt>HIRES:CLOAD"OUTPUT"</tt></b> and it will be immediately displayed: </p>

<p style="text-align: center;">
<img src="real-oric.jpeg" width="360" height="338" class="matrix" alt="" />
<br />
<span style="font-size: 60%"><i>photography courtesy of André Chéramy</i></span>
</p>

<h2> Screenshots </h2>

<p> These images show how <tt>img2oric</tt> performs. The results may not seem
terribly clean, but they are probably better than anything that has been seen
so far on an Oric computer. </p>

<p> These first 4 images show the results on the same images than the ones
on Dbug’s <a href="http://www.defence-force.org/computing/oric/coding/annexe_3/pictconv/">PictConv</a> website, to illustrate the improvements over the
traditional RGB separation technique. </p>

<p style="text-align: center;">
<img src="buffy.png" width="240" height="200" class="inline" alt="" />
<img src="output-buffy.png" width="240" height="200" class="inline" alt="" />
</p>

<p style="text-align: center;">
<img src="mire.png" width="240" height="200" class="inline" alt="" />
<img src="output-mire.png" width="240" height="200" class="inline" alt="" />
</p>

<p style="text-align: center;">
<img src="dog.png" width="240" height="200" class="inline" alt="" />
<img src="output-dog.png" width="240" height="200" class="inline" alt="" />
</p>

<p style="text-align: center;">
<img src="lena.png" width="240" height="200" class="inline" alt="" />
<img src="output-lena.png" width="240" height="200" class="inline" alt="" />
</p>

<p> The following images show <tt>img2oric</tt>’s results with grayscale
images and cartoon images. </p>

<p style="text-align: center;">
<img src="bufbw.png" width="240" height="200" class="inline" alt="" />
<img src="output-bufbw.png" width="240" height="200" class="inline" alt="" />
</p>

<p style="text-align: center;">
<img src="homer.png" width="240" height="200" class="inline" alt="" />
<img src="output-homer.png" width="240" height="200" class="inline" alt="" />
</p>

<p> The following images use real Oric artwork, taken from the Buggy Boy
and the VIP 4 demos: they are almost pixel-perfect. </p>

<p style="text-align: center;">
<img src="bb.png" width="240" height="200" class="inline" alt="" />
<img src="output-bb.png" width="240" height="200" class="inline" alt="" />
</p>

<p style="text-align: center;">
<img src="eatme.png" width="240" height="200" class="inline" alt="" />
<img src="output-eatme.png" width="240" height="200" class="inline" alt="" />
</p>

<p> And finally, this is an animation whose frames were converted to Oric
colours using <tt>img2oric</tt>: </p>

<p style="text-align: center;">
<img src="bear.gif" width="240" height="200" class="inline" alt="" />
<img src="output-bear.gif" width="240" height="200" class="inline" alt="" />
</p>

<h2> Credits </h2>

<p> <tt>img2oric</tt> was written by Sam Hocevar. Thanks to Jean-Yves
Lamoureux, Mickaël Pointier, Robert Chéramy, André Chéramy and Fabrice
Frances for their help, their work and the information they provided. </p>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

BIN
static/img2oric/lena.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 30 KiB

BIN
static/img2oric/mire.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 4.2 KiB

BIN
static/img2oric/oric.png Переглянути файл

Перед Після
Ширина: 200  |  Висота: 130  |  Розмір: 30 KiB

BIN
static/img2oric/output-bb.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 5.3 KiB

BIN
static/img2oric/output-bear.gif Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 39 KiB

BIN
static/img2oric/output-bufbw.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 7.1 KiB

BIN
static/img2oric/output-buffy.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 11 KiB

BIN
static/img2oric/output-dog.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 10 KiB

BIN
static/img2oric/output-eatme.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 5.9 KiB

BIN
static/img2oric/output-homer.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 15 KiB

BIN
static/img2oric/output-lena.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 11 KiB

BIN
static/img2oric/output-mire.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 8.4 KiB

BIN
static/img2oric/real-oric.jpeg Переглянути файл

Перед Після
Ширина: 360  |  Висота: 338  |  Розмір: 96 KiB

BIN
static/img2oric/rotate-bb.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 200  |  Розмір: 11 KiB

BIN
static/img2oric/xeuphoric.png Переглянути файл

Перед Після
Ширина: 488  |  Висота: 469  |  Розмір: 34 KiB

+ 376
- 0
static/index.html Переглянути файл

@@ -0,0 +1,376 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca - Colour AsCii Art library" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca - Colour AsCii Art library</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<img src="logo-caca.png" width="128" height="128"
alt="libcaca logo" class="caca" />

<h2> Introduction </h2>

<p> <i>libcaca</i> is a graphics library that outputs text instead of pixels,
so that it can work on older video cards or text terminals. It is not unlike
the famous <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a>
library, with the following improvements: </p>

<ul>
<li> Unicode support </li>
<li> 2048 available colours (some devices can only handle 16) </li>
<li> dithering of colour images </li>
<li> advanced text canvas operations (blitting, rotations) </li>
</ul>

<p> Libcaca works in a text terminal (and should thus work on all Unix
systems including Mac OS X) using the S-Lang or ncurses libraries. It also
works natively on DOS and Windows. </p>

<p> Libcaca was written by Sam Hocevar &lt;<a
href="mailto:sam@zoy.org">sam@zoy.org</a>&gt; and Jean-Yves Lamoureux
&lt;<a href="mailto:jylam@lnxscene.org">jylam@lnxscene.org</a>&gt;. It is
<a href="http://www.gnu.org/philosophy/free-sw.html">free software</a>,
and can be used, modified and distributed under the terms of the <a
href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public
License</a>. </p>

<p style="text-align: center;">
<a href="http://www.ohloh.net/projects/9011?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9011/widgets/project_thin_badge.gif" width="100" height="16" alt="libcaca Ohloh metrics" /></a>
<a href="http://www.ohloh.net/projects/9018?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9018/widgets/project_thin_badge.gif" width="100" height="16" alt="toilet Ohloh metrics" /></a>
</p>

<h2> News </h2>

<ul>
<li> <b>18 May 2008</b>: <a href="/wiki/zzuf">zzuf</a> 0.11 </li>
<li> <b>1 Apr 2008</b>: libcaca to be <a href="http://blog.thebehrens.net/2008/04/01/new-highly-portable-canvas-backend/">OpenOffice.org’s official multiplatform rendering backend</a> </li>
<li> <b>24 Feb 2008</b>: we are now using <a href="/wiki">Trac</a>! </li>
<li> <b>24 Jan 2008</b>: <a href="/labs/img2oric.html">img2oric</a>, the
first Caca Labs piece of research software </li>
<li> <b>28 Nov 2007</b>: libcaca 0.99.beta13 </li>
<li> <b>24 Oct 2007</b>: Report on <a href="/cacacon07/">CacaCon’07</a>, the
first international libcaca conference. </li>
<!-- old news
<li> <b>30 Sep 2007</b>: libcaca 0.99.beta12 </li>
<li> <b>16 Nov 2006</b>: libcaca 0.99.beta11 </li>
<li> <b>16 Nov 2006</b>: <a href="/toilet.html">TOIlet</a> 0.1 </li>
<li> <b>12 Nov 2006</b>: libcaca 0.99.beta10 </p>
<li> <b>6 Nov 2006</b>: libcaca 0.99.beta9 </p>
<li> <b>22 Oct 2006</b>: libcaca 0.99.beta8 </p>
<li> <b>4 Oct 2006</b>: libcaca 0.99.beta7 </p>
-->
</ul>

<img src="img/sample.png" width="128" height="128"
alt="libcaca rendering sample" class="caca" />

<h2> Screenshots </h2>

<p> Here are a few <i>libcaca</i> screenshots. </p>

<table cellspacing="5" border="0">
<tr>
<td align="center">
<a href="img/stitch-80x45.png"><img alt="cacaview"
width="73" height="90"
src="img/tn-stitch-80x45.jpeg" /></a>
<br /><small><code>cacaview</code></small>
</td>
<td align="center">
<a href="img/cacaball-80x50.png"><img alt="cacaball"
width="101" height="90"
src="img/tn-cacaball-80x50.jpeg" /></a>
<br /><small><code>cacaball</code></small>
</td>
<td align="center">
<a href="img/cacaplas-80x50.png"><img alt="cacaplas"
width="101" height="90"
src="img/tn-cacaplas-80x50.jpeg" /></a>
<br /><small><code>cacaplas</code></small>
</td>
<td align="center">
<a href="img/truecolor-32x16.png"><img alt="truecolor"
width="87" height="90"
src="img/tn-truecolor-32x16.jpeg" /></a>
<br /><small>TrueColor</small>
</td>
<td align="center">
</td>
</tr>
<tr>
<td align="center">
<a href="img/unicode-80x24.png"><img alt="unicode"
width="120" height="75"
src="img/tn-unicode-80x24.jpeg" /></a>
<br /><small>Unicode</small>
</td>
<td align="center">
<a href="img/swallow-80x32.png"><img alt="swallow"
width="120" height="81"
src="img/tn-swallow-80x32.jpeg" /></a>
<br /><small>swallowing applications</small>
</td>
<td align="center">
<a href="img/rotate.png"><img alt="rotation"
width="75" height="90"
src="img/tn-rotate.jpeg" /></a>
<br /><small>canvas rotation</small>
</td>
<td align="center">
</td>
<td align="center">
</td>
</tr>
</table>

<p> See also the various export formats, generated from an old
<a href="lc-mw1.ans">ANSI file</a>:
<a href="export.png">PNG</a> (through TGA),
<a href="export.html">HTML</a>,
<a href="export.svg">SVG</a>,
<a href="export.ps">PostScript</a>.
</p>

<!--
<p> Here are my first libcaca attempts. The first image is,
<code>cacaview</code>, the libcaca image viewer. Then, two
screenshots of my first port of an application to libcaca: the <a
href="http://www.videolan.org/vlc/">VLC</a> media player. The last
screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
<code>cacaball</code> (a mini metaballs demo). </p>

<table cellspacing="5" border="0">
<tr>
<td align="center">
<a href="caca-stitch.png"><img alt="cacaview"
width="78" height="90"
src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
</td>
<td align="center">
<a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
width="120" height="74"
src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
</td>
<td align="center">
<a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
width="120" height="74"
src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
</td>
<td align="center">
<a href="caca-fire.png"><img alt="cacafire"
width="120" height="87"
src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
</td>
<td align="center">
<a href="caca-ball.png"><img alt="cacaball"
width="104" height="90"
src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
</td>
</tr>
</table>

<p> As with all image processing applications, I needed the obligatory <a
href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From
left to right: the currently in development Floyd-Steinberg dithering, the
antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
dithering, ordered dithering, random dithering. </p>

<table cellspacing="5" border="0">
<tr>
<td align="center">
<a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
width="87" height="90"
src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
</td>
<td align="center">
<a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
width="97" height="90"
src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
</td>
<td align="center">
<a href="lenna-new.png"><img alt="Lenna (new renderer)"
width="99" height="90"
src="tn-lenna-new.jpeg" /><br />new renderer</a>
</td>
<td align="center">
<a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
width="99" height="90"
src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
</td>
<td align="center">
<a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
width="99" height="90"
src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
</td>
<td align="center">
<a href="lenna-random.png"><img alt="Lenna (random dithering)"
width="99" height="90"
src="tn-lenna-random.jpeg" /><br />random dithering</a>
</td>
</tr>
</table>

<p> Here are a few examples of my libcaca patch for libSDL. Once there is a
libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program
using SDL can automatically benefit from libcaca’s rendering routines. These
examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the
<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous
<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is
fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
not being recognized (see the TODO list about that). </p>

<table cellspacing="5" border="0">
<tr>
<td align="center">
<a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
width="120" height="90"
src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
</td>
<td align="center">
<a href="caca-sabre.png"><img alt="the SABRE flight simulator"
width="120" height="90"
src="tn-caca-sabre.jpeg" /><br />SABRE</a>
</td>
<td align="center">
<a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
width="120" height="90"
src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
</td>
<td align="center">
<a href="caca-doom2.png"><img alt="Doom in ASCII art"
width="120" height="90"
src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
</td>
</tr>
</table>

<h2> Download libcaca </h2>

<p> libcaca is already in the Debian sid distribution. Debian woody users or
sid users in a hurry may use one of the following apt sources: (sorry, sarge
is not supported yet) </p>

<table class="leftmenu" cellspacing="5" cellpadding="0">
<tr>
<td class="nowrap" valign="top">
<code>
deb http://sam.zoy.org/projects/debian woody main<br />
deb-src http://sam.zoy.org/projects/debian woody main<br />
<br />
deb http://sam.zoy.org/projects/debian sid main<br />
deb-src http://sam.zoy.org/projects/debian sid main<br />
</code>
</td>
</tr>
</table>

<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh
RPMs</a> page. If no package is available, you are encouraged
to build packages for your system using this SRPM (<a
href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
command line: </p>

<table class="leftmenu" cellspacing="5" cellpadding="0">
<tr>
<td class="nowrap" valign="top">
<code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
</td>
</tr>
</table>

<p> BSD users should see the <a
href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port
page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD
port page</a> (I am not aware of an OpenBSD port yet, but <a
href="http://news.gw.com/openbsd.ports/15502">this email</a> has
information on it), Gentoo users may find information on the <a
href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo
portage</a> and Slackware users have a package on <a
href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>.
</p>

<h2> Patch for libSDL </h2>

<p> This simple patch was quickly hacked from the AAlib video
driver. Apply it to the libSDL sources and configuree libSDL with
<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
environment variable to run your SDL programs with libcaca output, for
instance Frozen Bubble: </p>

<table class="leftmenu" cellspacing="5" cellpadding="0">
<tr>
<td class="nowrap" valign="top">
<code>SDL_VIDEODRIVER=caca frozen-bubble</code>
</td>
</tr>
</table>

<p> Download <a href="patch-libsdl1.2-libcaca0.7.diff">patch-libsdl1.2-libcaca0.7.diff</a> (to be used with the Debian unstable SDL sources and libcaca 0.7. </p>

<h2> Patches for VLC, xine, mplayer... </h2>

<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a>
media player was already applied upstream. Check the CVS version. </p>

<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a>
called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&amp;forum_id=7131">this email</a>). Zeeshan Ali wrote a
<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not
aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you
should not be using MPlayer anyway, because it sucks). </p>

<h2> Development </h2>

-->

<h2> Why? </h2>

<blockquote><p>
Que dites-vous ?... C’est inutile ?... Je le sais !
<br />Mais on ne se bat pas dans l’espoir du succès !
<br />Non ! non, c’est bien plus beau lorsque c’est inutile !
<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
</p></blockquote>

<p> I am perfectly aware that <i>libcaca</i> is the waste of time it looks to
be. No need to tell me about that. I urge you to read Théophile Gautier’s
preface to <i>Mademoiselle de Maupin</i>, which also gives an excellent
explanation for the name “libcaca”: </p>

<blockquote><p>
Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
L’endroit le plus utile d’une maison, ce sont les latrines.
</p></blockquote>

<p> As for the name “libcucul”, please refer to the pioneer of modernist
Polish fiction: </p>

<blockquote><p>
Mais contre le cucul, il n’y a pas de refuge. Courez après moi
si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
tralala, Zut à celui qui le lira !
<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
</p></blockquote>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 38
- 0
static/lc-mw1.ans Переглянути файл

@@ -0,0 +1,38 @@

ÜÜÜÜÜÜ
ÜÜÜßßßÜÜ ÜÜÜÜÜßßßÜÜÜÜÜ
ÜÜßÜܲ²²ÜßÜßßÜÜÜ ÜÜ ÜÜÜßÜÜ ÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜßܲ²²ÜÜÜßßÜÜ
ÜÜßܲ²²±±±²²Ü²²ÜÜßÜÜÜßßÜßÜܲÜßÜßßÜÜßßÜßßÜÜÜÜÜÜÜßßÜÜÜßßÜÜßÝÞ²²±²²²²²ÜßÜÜ
ÞÝÞ²±±°±²ß²±±±±²²²Üßܲ²Üß²²±²Ýܲ²²²²²Üß²²²²²²²²²²Üßܲ²²²²Ü ²²±±±±±²²ÝÞÝÝ
Û ²±±°°±Ý Þ²²ß²±±²²ÝÞ±±±²Üß±±±²±±°ß±°±²²±±±°±±±²²ß²±°±±±²²²±°°±±Û ÛÛ
ÞÝÞ±°°°°±Ü ßÜÝÞ²±±²²°Þ°°±ÝÞ°°±°Û Þ° °±ÝÞ±°° °°±ßßܱ±°ß°°±Û ±°°°°±ÛÛ ÜÜ
ÛÛ °±±°±±²²Üßܲ±°°±²Ý°Ü°°°±°°°°°±±°°°Û °ß Þ° °ÝÞ°°°°°°°° °°ÝÞ°°°°ÛÛÜÜÜßßÜÜ
ÞÞÝÞ²²±±²²ßÜ°±°° °±±²±±±²ÝÞ±±±°°±²²ßßÜßÜÛ ±°°°°±°°±±ß±±° °°°°°ÝÞÛßßÜܲ²ÜßÜÜ
ßßÜß²²²ßܲ²±±°° °°±ÝÞ²²ßßܲ²ß²±±°ÜÜÜßßßÛÝÞ±±°±±±²±±Ý Þ±±°±±Ý±±°±ÜÜ°°°±±±²²ÜßÜÜ ßßÜß ²²²±±°° °°°°ÜÜÜßßÜÜÜßÜß²²±±±°°°ÜÜÜß²²²ßܲ²²²²²²±±±²²²±±±°°°±±±±±²²²ÜßÛßßÜßß²²²±±±°°ÝÞÝßÛÜ ßßß ßßÜÜß²²±±²²²²ßÜßÜßÜÜßßßÜÜÜß²²²²ÝÞ²²²²±±±±²²²²²ßßÜßÜÜßÜÜßßßÜÜßß²²²ßÜßÜÜßßÜÜ ÜÜßßßßÜÜßß²²ßÜÛßßßßÜÜßßßÛÛßßÜÜßßÜÜÜßßß²²²²ßßßÜÜßßß
ÜÜßܲÜßÜÜÜ ßßßÜÜÜÛßßÜܲ²ÜßÜÜßÜ°±²±ÜßÛÛÜÜßÜܲ²²²ÜÜßßÜßßÜÜÛßßßÛÜßÜÜÜ ÜÜßßßßß
ÞÞÝÞ²²²ÜÜßßÜÜÜ Üßܲ²²±±±²²Û°±²²²±Û Ûßܲ²²±±°±²²²²Üß²ÜÜßÜÜÛÛ ²²²²²²ÜßÜÜ
ÛÛ ²²±±±²²ÜÜßßÜÝÞ±±±°°°±±ÛÜß°±²±ßÜÛÝÞ²²±±°°°°±±±²²Û ²²²ÜßÜßÞ²²±±±²²ÝÞÝÝ
ÞÞÝÞ²±±°±±²²²²Üß ±°°°°°°±ÝßÜÛÜÜÜÜßßÜ ±±°°°°°ß±°°°±±ÝÞ²±±²Üܱ±±±°°°±²²ÛÛ
ÛÛ ²²±°°°±±±±ÝßÝÞ±°° °°°²ÜÜßßÜܲ²²Ý °°±±°°ÝÞ°°±°ßܱ°°°±±±°°°° °°°°±ÝÞÝÝ
ÛÛ ±°°°°°°°°Ü°Ü°°° °°°Ý Þ²²±±°±±±²ÜÜÜÜß°±Üß±ßÜ°°°° °°°ßßß°°° °°°°ÝÞÝÝ
ÛÛ °±±±°°°±°²°±±°°°±±±°°°°°°°°Ýܱ±°°°°°±±±Ü ±±°°°°±±Ýܱ±°°°°°±²ÛÛ
ßßÜß²²±±±±²ß²²±±±²²±±±²²²²±±±²²²±±±±±²²²ßÜÛ ²²±±±±²²Þ²±±±±±±²ÝÞÝÝ
ßßÜßß²²ßÜßÜßß²²ß ܲ²²ßßÜÜßß²²²Üßß²²²²²²ßÜßßßßÜß²²²²ßßÜßß²²²²²ßÜßß
ßßßÜÜßß ßßßÜÜßÛÜÜÜÜÛßÛÜÛÛÜÜÜÜßßÜÜÜÜÜÜÛÜÜÜÜ ßßÜÜÜÜßßßßßÜÜÜÜÜßß
ßßÛÛßÜÜÜÜÜÜßßÜÜÜÜÜßÜÜÜÛÛÛÜßÜÜÜÜÜßÜÜ ßßßßßßßßß
ÛÛ  °±²Ü Û  °±²ÛÜßßßßßÛ  °±²Ûßß
ÛÛ  °±²ÛÛ  °±²ßÜ  °±ßÛ  °±²ßÜÜÜ
ÛÛ  °±²ÛÛ  °±²Üß  °±²Û  °±²ÜßÜÜ
ßßÜÜÜÜßßßßÜÜÜÜÜßÛÜÜÜÜÜßßÜÜÜÜÜßß
ßßßß ßßßßß ßßßßßß ßßßßß
M O R T A L W i S H
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
PiL HQ þ Syndrome Couriers HQ þ GODS WHQ
16.8 Duals þ 8i8.XxX.XxXx þ 8 Node Ringdown
S: QUAZiMODEM & CiPHER
CO'S: LORD THiNKER THE MOZARELLO
SLiCE & DiCE þ HURRiCAN þ RAZOR BLADE
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßANSi BY LUC < AiM 'NiNE FO' >


+ 50
- 0
static/list-svn.html Переглянути файл

@@ -0,0 +1,50 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca SVN mailing-list" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca SVN mailing-list</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="doxygen.css" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<?php
$page = $_GET['page'];
$page = eregi_replace("[^a-z0-9_]", "", $page);
$file = $_SERVER["DOCUMENT_ROOT"]."/list-svn/".$page.".html";

if(file_exists($file))
{
$f = fopen($file, 'r');
$data = fread($f, filesize($file));
fclose($f);

$data = eregi_replace(".*<body>", "", $data);
$data = eregi_replace("</body>.*", "", $data);

echo $data;
}
else
{
?><p>Mailing-list error.</p><?
}
?>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 50
- 0
static/list-trac.html Переглянути файл

@@ -0,0 +1,50 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca Trac mailing-list" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca Trac mailing-list</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="doxygen.css" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<?php
$page = $_GET['page'];
$page = eregi_replace("[^a-z0-9_]", "", $page);
$file = $_SERVER["DOCUMENT_ROOT"]."/list-trac/".$page.".html";

if(file_exists($file))
{
$f = fopen($file, 'r');
$data = fread($f, filesize($file));
fclose($f);

$data = eregi_replace(".*<body>", "", $data);
$data = eregi_replace("</body>.*", "", $data);

echo $data;
}
else
{
?><p>Mailing-list error.</p><?
}
?>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 58
- 0
static/list.html Переглянути файл

@@ -0,0 +1,58 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca mailing-list" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca mailing-list</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="doxygen.css" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<?php
$page = $_GET['page'];
$page = eregi_replace("[^a-z0-9_]", "", $page);
$file = $_SERVER["DOCUMENT_ROOT"]."/list/".$page.".html";

if(file_exists($file))
{
$f = fopen($file, 'r');
$data = fread($f, filesize($file));
fclose($f);

$data = eregi_replace(".*<body>", "", $data);
$data = eregi_replace("</body>.*", "", $data);

echo $data;
}
else
{
?>
<p> There are three libcaca mailing-lists: </p>

<ul>
<li> libcaca (<a href="/list/">thread index</a>, <a href="/list/maillist.html">date index</a>) </li>
<li> libcaca-svn (<a href="/list-svn/">thread index</a>, <a href="/list-svn/maillist.html">date index</a>) </li>
<li> libcaca-trac (<a href="/list-trac/">thread index</a>, <a href="/list-trac/maillist.html">date index</a>) </li>
</ul>
<?
}
?>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

BIN
static/logo-caca.png Переглянути файл

Перед Після
Ширина: 128  |  Висота: 128  |  Розмір: 7.3 KiB

+ 185
- 0
static/main.css Переглянути файл

@@ -0,0 +1,185 @@
/*
* CSS for libcaca
* $Id$
*/

/* Common attributes */

html, body {
padding: 0;
border: 0;
margin: 0;
height: 100%;
}

body {
color: black;
background: url('/browser/www/img/back3.png?format=raw') repeat left top;
background-color: black;
}

body, td, h1, h2, h3, p {
font-family: serif;
}

h1 {
font-size: 1.6em;
font-variant: small-caps;
color: #002200;
background-color: inherit;
}

h2, h3 {
text-indent: 0.5em;
border-style: solid;
border-color: #88aa77;
background-color: inherit;
}

h2 {
font-size: 1.3em;
font-variant: small-caps;
color: #224422;
border-width: 0 0 2px 0;
}

h3 {
font-size: 1.1em;
color: #335533;
border-width: 0 0 1px 0;
}

p {
text-indent: 1em;
text-align: inherit;
}

/* Layout-specific attributes */

div.gradleft {
/* no longer used */
}

div.gradright {
/* no longer used */
}

div.top, div.main, div.bottom {
width: 800px;
display: table-caption;
color: inherit;
background-color: #dddddd;
background: url('/browser/www/img/back4.png?format=raw') repeat left top;
padding: 0 10px 0 10px;
border-style: solid;
border-width: 2px 2px 0 2px;
border-color: black;
margin: 0 auto 0 auto;
text-align: justify;
}

div.top {
border-width: 2px;
margin-top: 10px;
}

div.main {
padding: 5px 10px 5px 10px;
height: 100%;
}

div.bottom {
clear: both;
position: relative;
border-width: 0 2px 2px 2px;
margin-bottom: 5px;
}

div.bottombar {
font-family: monospace;
font-weight: bold;
font-size: smaller;
padding: 0;
border-style: solid;
border-width: 2px 0 0 0;
border-color: #88aa77;
}

img.caca {
border: solid 2px #88aa77;
margin: 10px 20px 10px 20px;
float: right;
}

img.inline, img.inlinetop {
border: solid 2px #88aa77;
padding: 2px;
}

img.inlinetop {
vertical-align: top;
}

img.math {
vertical-align: middle;
margin-left: 10px;
margin-right: 10px;
}

img.matrix {
vertical-align: top;
margin-right: 30px;
margin-top: 10px;
}

div.toilet {
border: solid 2px #88aa77;
padding-left: 10px;
padding-right: 10px;
}

p.toilet {
text-indent: 0;
}

p.dashit {
float: right;
text-align: right;
font-size: smaller;
font-style: italic;
}

a:link { color: #33aa55; background-color: inherit; }
a:visited { color: #117722; background-color: inherit; }
a:hover { color: #aa22dd; background-color: inherit; text-decoration: none; }
a:active { color: #cc22ff; background-color: inherit; }

/* Top menubar handling */

div.menubar {
text-align: center;
color: inherit;
padding: 8px 0px;
}

a.menubutton {
color: black;
background: url('/browser/www/img/back4.png?format=raw') repeat left top;
background-color: #dddddd;
text-decoration: none;
font-weight: bold;
border: solid black 2px;
padding: 4px 10px 4px 10px;
margin: 0 5px 0 5px;
}

a.menubutton:link {
color: black;
}

a.menubutton:hover {
color: #ffffff;
border-color: #ffffff;
background: inherit;
}


+ 54
- 0
static/manual.html Переглянути файл

@@ -0,0 +1,54 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca manual" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca manual</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="doxygen.css" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<div style="text-align: center;">
<a href="/manual/">^^^ Index</a>
</div>

<?php
$page = $_GET['page'];
$page = eregi_replace("[^-a-z0-9_]", "", $page);
$file = $_SERVER["DOCUMENT_ROOT"]."/manual/".$page.".html";

if(file_exists($file))
{
$f = fopen($file, 'r');
$data = fread($f, filesize($file));
fclose($f);

$data = eregi_replace(".*<body>", "", $data);
$data = eregi_replace("</body>.*", "", $data);

echo $data;
}
else
{
?><p>Documentation error.</p><?
}
?>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

BIN
static/neercs-thumbnails.png Переглянути файл

Перед Після
Ширина: 570  |  Висота: 503  |  Розмір: 127 KiB

+ 36
- 0
static/neercs.html Переглянути файл

@@ -0,0 +1,36 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="libcaca - neercs" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
<title>libcaca - neercs</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<h2> neercs </h2>

<p> neercs is a work-in-progress libcaca project. More later. </p>

<h2> Screenshots </h2>

<p style="text-align: center;"><img src="neercs-thumbnails.png" width="570"
height="503" alt="neercs sample" /></p>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

+ 34
- 0
static/robots.txt Переглянути файл

@@ -0,0 +1,34 @@
# $Id$

# Do not crawl CVS and .svn directories (they are 403 Forbidden anyway)
User-agent: *
Disallow: CVS
Disallow: .svn

# Prevent excessive search engine hits
Disallow: /cgi-bin/trac.cgi
Disallow: /log

# "This robot collects content from the Internet for the sole purpose of
# helping educational institutions prevent plagiarism. [...] we compare
# student papers against the content we find on the Internet to see if we
# can find similarities." (http://www.turnitin.com/robot/crawlerinfo.html)
# --> fuck off.
User-Agent: TurnitinBot
Disallow: /

# "NameProtect engages in crawling activity in search of a wide range of
# brand and other intellectual property violations that may be of interest
# to our clients." (http://www.nameprotect.com/botinfo.html)
# --> fuck off.
User-Agent: NPBot
Disallow: /

# "iThenticate® is a new service we have developed to combat the piracy
# of intellectual property and ensure the originality of written work for
# publishers, non-profit agencies, corporations, and newspapers."
# (http://www.slysearch.com/)
# --> fuck off.
User-Agent: SlySearch
Disallow: /


+ 157
- 0
static/study/biblio.html Переглянути файл

@@ -0,0 +1,157 @@
<?php header("Content-Type: text/html; charset=utf-8"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="GENERATOR" content="vim" />
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
<meta name="Description" content="Libcaca study - Bibliography" />
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib, dithering, thresholding" />
<title>Libcaca study - Bibliography</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/main.css" />
<style type="text/css">
li { padding-bottom: 0.5em; }
</style>
</head>

<body>

<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>

<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: this
document is still work in progress. Feel free to send comments but do not
consider it final material. </p>

<div style="float: left;">
<a href="part6.html">Photographic mosaics &lt;&lt;&lt;</a>
</div>
<div style="float: right;">
<a href="source.html">&gt;&gt;&gt; Source code</a>
</div>
<div style="text-align: center;">
<a href="index.html">^^^ Index</a>
</div>

<h2> Bibliography </h2>

<ul>

<li> [1] Victor Ostromoukhov. <i>A Simple and Efficient Error-Diffusion
Algorithm</i>. In Proceedings of SIGGRAPH 2001, in ACM Computer Graphics,
Annual Conference Series, pp. 567–572, 2001 </li>

<li> [2] Jamie Hutchinson. <i>Culture, Communication, and an Information Age
Madonna</i>. IEEE Professional Communication Society Newsletter, Volume 45,
Number 3, pp. 1, 5–7, 2001 </li>

<li> [3] V. Ostromoukhov, <i>Reproduction couleur par trames irrégulières
et semi-régulières</i>, Ph.D. Thesis No.1330, EPFL, Lausanne, Switzerland,
1995 </li>

<li> [4] J. Allebach and Q. Lin, <i>FM screen design using DBS algorithm</i>,
in Proc. IEEE International Conference on Image Processing (ICIP ’96), vol.
1, pp. 549–552, Lausanne, Switzerland, September 1996 </li>

<li> [5] R.W. Floyd, L. Steinberg, <i>An adaptive algorithm for spatial grey
scale</i>. Proceedings of the Society of Information Display 17, 75–77
(1976) </li>

<li> [6] P. Stucki, <i>MECCA - a multiple error correcting computation
algorithm for bi-level image hard copy reproduction</i>. Research report
RZ1060, IBM Research Laboratory, Zurich, Switzerland, 1981 </li>

<li> [7] J. F. Jarvis, C. N. Judice and W. H. Ninke, <i>A Survey of
Techniques for the Display of Continuous Tone Pictures on Bi-level
Displays</i>. Computer Graphics and Image Processing, 5 13–40, 1976 </li>

<li> [8] J. Shiau and Z. Fan, <i>Method for Quantization Gray Level Pixel
Data with Extended Distribution Set</i>, U.S. patent 5,353,127, 1994 </li>

<li> [9] R. Silvers. <i>Digital composition of a mosaic image</i>, U.S.
patent 6,137,498, Oct. 2000 </li>

<li> [10] Daniel Burkes, <i>Presentation of the Burkes error filter for use
in preparing continuous-tone images for presentation on bi-level devices</i>,
in LIB 15 (Publications), CIS Graphics Support Forum, September 15, 1988
(unpublished) </li>

<li> [11] Frankie Sierra, in LIB 17 (Developer’s Den), CIS Graphics Support
Forum (unpublished) </li>

<li> [12] Bill Atkinson, private correspondence with John Balestrieri,
January 2003 (unpublished) </li>

<li> [13] Robert Ulichney, <i>Digital Halftoning</i>, The MIT Press,
Cambridge, Mass. (1987) </li>

<li> [14] D.E. Knuth, <i>Digital Halftones by Dot Diffusion</i>, ACM
Transcripts on Graphics, 6(4), 1987, 245-273 </li>

<li> [15] T.C. Chan, K.S. Chen (Apple Computer, Inc.), <i>Method and system
for halftoning by tiling subsets of a threshold array over portions of an
image</i>, U.S. patent 5,761,347, 1998 </li>

<li> [16] Éric Brasseur, <i>Gamma error in picture scaling</i>, World Wide
Web, <code>http://www.4p8.com/eric.brasseur/gamma.html</code>, August 2007
</li>

<li> [17] B. Bayer, <i>Color imaging array</i>, in U.S. patent 3,971,065,
1976 </li>

<li> [18] R.A. Ulichney (Digital Equipment Corporation), <i>Void and cluster
apparatus and method for generating dither templates</i>, in U.S. patent
5,535,020, 1992 </li>

<li> [19] H. Ancin, A. Bhattacharjya and J. Shu (Seiko Epson Corporation),
<i>Void-and-cluster dither-matrix generation for better half-tone
uniformity</i>, in U.S. patent 6,088,512, 1997 </li>

<li> [20] J.S. Arney, P.G. Anderson, S. Ganawan, <i>Error Diffusion and
Edge Enhancement: Raster Versus Omni-Directional Processing</i>, Western NY
Conference on Image Processing, Rochester, NY, September 9, 2001 </li>

<li> [21] Robert Ulichney, <i>Spatial Extent of Void and Cluster Finding
Filters</i>, IS&amp;T’s 11th International Congress on Non-Impact Printing
Technologies, Oct. 29-Nov 3, 1995 </li>

<li> [22] Alejo Hausner, <i>Graph-order dithering</i>, proceedings of SPIE --
Volume 6058 Color Imaging XI, 1996 </li>

<li> [23] N. Damera-Venkata, B.L. Evans, <i> FM halftoning via block error
diffusion</i>, proceedings of the 2001 International Conference on Image
Processing, 2001 </li>

<li> [24] R.V. Klassen, R. Eschbach, and K. Bharat, <i>Vector diffusion
in a distorted colour space</i>, proceedings of IS&amp;T’s 47th Annual
Conference, 1994, pp. 489–491 </li>

<li> [25] D. Shaked, N. Arad, A. Fitzhugh, and I. Sobel, <i>Ink relocation
for color halftones</i>, proceedings of IS&amp;T Image Processing, Image
Quality, Image Capture Systems Conference, Portland, OR, 1998, pp. 340–343
</li>

<li> [26] T. Riemersma, <i>A Balanced Dither Algorithm</i>, C/C++ Users
Journal, volume 16, issue 12, December 1998 </li>

</ul>

<div style="float: left;">
<a href="part6.html">Photographic mosaics &lt;&lt;&lt;</a>
</div>
<div style="float: right;">
<a href="source.html">&gt;&gt;&gt; Source code</a>
</div>
<div style="text-align: center;">
<a href="index.html">^^^ Index</a>
</div>

<?php $rev = '$Id$';
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>

</body>
</html>

BIN
static/study/fig1-2-1.png Переглянути файл

Перед Після
Ширина: 256  |  Висота: 256  |  Розмір: 5.7 KiB

+ 222
- 0
static/study/fig1-2-1.svg Переглянути файл

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
id="svg5471"
sodipodi:version="0.32"
inkscape:version="0.45.1"
version="1.0"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig1-2-1.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig1-2-1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs5473">
<linearGradient
id="linearGradient3404">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3406" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3408" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path4296"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.6337563"
inkscape:cx="188.4865"
inkscape:cy="139.54181"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="256px"
height="256px"
showgrid="true"
gridempspacing="8"
inkscape:window-width="1400"
inkscape:window-height="1007"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata5476">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 41,215 L 232,24"
id="path2325"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3245"
d="M 40,214 L 104,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<image
xlink:href="gradient256bw.png"
sodipodi:absref="gradient256bw.png"
width="24"
height="192"
id="image3412"
x="16"
y="24" />
<image
xlink:href="grad1-2-1.png"
sodipodi:absref="grad1-2-1.png"
width="24"
height="192"
id="image3368"
x="216"
y="-232"
transform="matrix(0,1,-1,0,0,0)" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 36,72 L 44,72"
id="path2377"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 232,220 L 232,212"
id="path3259"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 40,16 L 40,216 L 240,216"
id="path136"
sodipodi:nodetypes="ccc"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
id="path3212"
d="M 36,120 L 44,120"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 88,220 L 88,212"
id="path3218"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3220"
d="M 136,220 L 136,212"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 184,220 L 184,212"
id="path3222"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3256"
d="M 36,24 L 44,24"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="path4482.png"
id="path3240"
d="M 36,168 L 44,168"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 104,120 L 168,120"
id="path3249"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3251"
d="M 168,24 L 232,24"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3253"
d="M 104,120 L 104,216"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 168,24 L 168,120"
id="path3255"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="129.79779"
y="163.31921"
id="text2187"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2189"
x="129.79779"
y="163.31921">mean error: 0.139</tspan><tspan
sodipodi:role="line"
x="129.79779"
y="178.31921"
id="tspan2191">max error: 0.333</tspan></text>
</g>
</svg>

BIN
static/study/fig1-2-2.png Переглянути файл

Перед Після
Ширина: 256  |  Висота: 256  |  Розмір: 5.8 KiB

+ 242
- 0
static/study/fig1-2-2.svg Переглянути файл

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
id="svg5471"
sodipodi:version="0.32"
inkscape:version="0.45.1"
version="1.0"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig1-2-2.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig1-2-2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs5473">
<linearGradient
id="linearGradient3404">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3406" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3408" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path4296"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.3104803"
inkscape:cx="130.61435"
inkscape:cy="123.6191"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="256px"
height="256px"
showgrid="true"
gridempspacing="8"
inkscape:window-width="1400"
inkscape:window-height="1007"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata5476">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 41,215 L 232,24"
id="path2325"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3245"
d="M 40,214 L 79,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<image
xlink:href="gradient256bw.png"
sodipodi:absref="gradient256bw.png"
width="24"
height="192"
id="image3412"
x="16"
y="24" />
<image
xlink:href="grad1-2-2.png"
sodipodi:absref="grad1-2-2.png"
width="24"
height="192"
id="image3368"
x="216"
y="-232"
transform="matrix(0,1,-1,0,0,0)" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 36,72 L 44,72"
id="path2377"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 232,220 L 232,212"
id="path3259"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 40,16 L 40,216 L 240,216"
id="path136"
sodipodi:nodetypes="ccc"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
id="path3212"
d="M 36,120 L 44,120"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 88,220 L 88,212"
id="path3218"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3220"
d="M 136,220 L 136,212"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 184,220 L 184,212"
id="path3222"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3256"
d="M 36,24 L 44,24"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="path4482.png"
id="path3240"
d="M 36,168 L 44,168"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 79,168 L 117,168"
id="path3249"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3251"
d="M 194,24 L 232,24"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3253"
d="M 79,168 L 79,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 155,72 L 155,120"
id="path3255"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path2179"
d="M 117,120 L 155,120"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 117,120 L 117,168"
id="path2181"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 155,72 L 194,72"
id="path2183"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path2185"
d="M 194,24 L 194,72"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="135.79778"
y="169.31921"
id="text2187"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2189"
x="135.79778"
y="169.31921">mean error: 0.075</tspan><tspan
sodipodi:role="line"
x="135.79778"
y="184.31921"
id="tspan2191">max error: 0.2</tspan></text>
</g>
</svg>

BIN
static/study/fig1-2-3.png Переглянути файл

Перед Після
Ширина: 256  |  Висота: 256  |  Розмір: 5.6 KiB

+ 222
- 0
static/study/fig1-2-3.svg Переглянути файл

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
id="svg5471"
sodipodi:version="0.32"
inkscape:version="0.45.1"
version="1.0"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig1-2-3.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig1-2-3.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs5473">
<linearGradient
id="linearGradient3404">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3406" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3408" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path4296"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.3104803"
inkscape:cx="105.41566"
inkscape:cy="106.16408"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="256px"
height="256px"
showgrid="true"
gridempspacing="8"
inkscape:window-width="1400"
inkscape:window-height="1007"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata5476">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 41,215 L 232,24"
id="path2325"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3245"
d="M 40,214 L 88,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<image
xlink:href="gradient256bw.png"
sodipodi:absref="gradient256bw.png"
width="24"
height="192"
id="image3412"
x="16"
y="24" />
<image
xlink:href="grad1-2-3.png"
sodipodi:absref="grad1-2-3.png"
width="24"
height="192"
id="image3368"
x="216"
y="-232"
transform="matrix(0,1,-1,0,0,0)" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 36,72 L 44,72"
id="path2377"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 232,220 L 232,212"
id="path3259"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 40,16 L 40,216 L 240,216"
id="path136"
sodipodi:nodetypes="ccc"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
id="path3212"
d="M 36,120 L 44,120"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 88,220 L 88,212"
id="path3218"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3220"
d="M 136,220 L 136,212"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 184,220 L 184,212"
id="path3222"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3256"
d="M 36,24 L 44,24"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="path4482.png"
id="path3240"
d="M 36,168 L 44,168"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 88,120 L 184,120"
id="path3249"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3251"
d="M 184,24 L 232,24"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3253"
d="M 88,120 L 88,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 184,24 L 184,120"
id="path3255"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="129.79779"
y="163.31921"
id="text2187"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2189"
x="129.79779"
y="163.31921">mean error: 0.125</tspan><tspan
sodipodi:role="line"
x="129.79779"
y="178.31921"
id="tspan2191">max error: 0.25</tspan></text>
</g>
</svg>

BIN
static/study/fig1-2-4.png Переглянути файл

Перед Після
Ширина: 256  |  Висота: 256  |  Розмір: 6.1 KiB

+ 242
- 0
static/study/fig1-2-4.svg Переглянути файл

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
id="svg5471"
sodipodi:version="0.32"
inkscape:version="0.45.1"
version="1.0"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig1-2-4.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig1-2-4.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs5473">
<linearGradient
id="linearGradient3404">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3406" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3408" />
</linearGradient>
<marker
inkscape:stockid="Arrow1Send"
orient="auto"
refY="0"
refX="0"
id="Arrow1Send"
style="overflow:visible">
<path
id="path4296"
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.3104803"
inkscape:cx="143.13828"
inkscape:cy="152.07584"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="256px"
height="256px"
showgrid="true"
gridempspacing="8"
inkscape:window-width="1400"
inkscape:window-height="1007"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata5476">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 41,215 L 232,24"
id="path2325"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3245"
d="M 40,214 L 64,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<image
xlink:href="gradient256bw.png"
sodipodi:absref="gradient256bw.png"
width="24"
height="192"
id="image3412"
x="16"
y="24" />
<image
xlink:href="grad1-2-4.png"
sodipodi:absref="grad1-2-4.png"
width="24"
height="192"
id="image3368"
x="216"
y="-232"
transform="matrix(0,1,-1,0,0,0)" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 36,72 L 44,72"
id="path2377"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 232,220 L 232,212"
id="path3259"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 40,16 L 40,216 L 240,216"
id="path136"
sodipodi:nodetypes="ccc"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
id="path3212"
d="M 36,120 L 44,120"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 88,220 L 88,212"
id="path3218"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3220"
d="M 136,220 L 136,212"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
d="M 184,220 L 184,212"
id="path3222"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
id="path3256"
d="M 36,24 L 44,24"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
inkscape:export-filename="path4482.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
sodipodi:nodetypes="cc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="path4482.png"
id="path3240"
d="M 36,168 L 44,168"
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 64,168 L 112,168"
id="path3249"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path3251"
d="M 208,24 L 232,24"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
id="path3253"
d="M 64,168 L 64,214"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 160,72 L 160,120"
id="path3255"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path2179"
d="M 112,120 L 160,120"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1"
d="M 112,120 L 112,168"
id="path2181"
sodipodi:nodetypes="cc" />
<path
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 160,72 L 208,72"
id="path2183"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
id="path2185"
d="M 208,24 L 208,72"
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="135.79778"
y="169.31921"
id="text2187"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2189"
x="135.79778"
y="169.31921">mean error: 0.0625</tspan><tspan
sodipodi:role="line"
x="135.79778"
y="184.31921"
id="tspan2191">max error: 0.125</tspan></text>
</g>
</svg>

BIN
static/study/fig2-3-1.png Переглянути файл

Перед Після
Ширина: 80  |  Висота: 80  |  Розмір: 2.3 KiB

+ 120
- 0
static/study/fig2-3-1.svg Переглянути файл

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig2-3-1.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig2-3-1.png"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="101.33764"
inkscape:cy="1016.8391"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1075"
inkscape:window-height="847"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2160"
width="118"
height="118"
x="6"
y="8.3621826"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60"
inkscape:export-filename="fig2-3-1.png" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 7,67.36218 L 123,67.36218 M 65,9.36218 L 65,125.36218"
id="rect4103"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="14.029541"
y="47.447662"
id="text4106"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4108"
x="14.029541"
y="47.447662">0.2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2167"
y="107.44766"
x="14.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="107.44766"
x="14.029541"
id="tspan2169"
sodipodi:role="line">0.6</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2171"
y="47.447662"
x="74.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="47.447662"
x="74.029541"
id="tspan2173"
sodipodi:role="line">0.8</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="74.029541"
y="107.44766"
id="text2175"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2177"
x="74.029541"
y="107.44766">0.4</tspan></text>
</g>
</svg>

BIN
static/study/fig2-3-1b.png Переглянути файл

Перед Після
Ширина: 240  |  Висота: 160  |  Розмір: 5.9 KiB

+ 360
- 0
static/study/fig2-3-1b.svg Переглянути файл

@@ -0,0 +1,360 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig2-3-1b.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig2-3-1b.png"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="168.37462"
inkscape:cy="891.07511"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1075"
inkscape:window-height="847"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:nodetypes="ccccc"
id="path3287"
d="M 6,8.3621826 L 362,8.3621826 L 362,244.36218 L 6,244.36218 L 6,8.3621826 z "
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 6,246.36218 L 6,8.3621826 L 364,8.3621826"
id="rect2160"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 7,67.36218 L 363,67.36218 M 65,9.36218 L 65,245.36218"
id="rect4103"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="14.029541"
y="47.447662"
id="text4106"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4108"
x="14.029541"
y="47.447662">0.2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2167"
y="107.44766"
x="14.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="107.44766"
x="14.029541"
id="tspan2169"
sodipodi:role="line">0.6</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2171"
y="47.447662"
x="74.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="47.447662"
x="74.029541"
id="tspan2173"
sodipodi:role="line">0.8</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="74.029541"
y="107.44766"
id="text2175"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2177"
x="74.029541"
y="107.44766">0.4</tspan></text>
<path
sodipodi:nodetypes="cccc"
id="path2168"
d="M 7,127.36218 L 363,127.36218 M 125,9.36218 L 125,245.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 7,187.36218 L 363,187.36218 M 185,9.36218 L 185,245.36218"
id="path2170"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cc"
id="path2172"
d="M 245,9.36218 L 245,245.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text2174"
y="47.447662"
x="134.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="47.447662"
x="134.02954"
id="tspan2176"
sodipodi:role="line">0.2</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="134.02954"
y="107.44766"
id="text2178"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2180"
x="134.02954"
y="107.44766">0.6</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="194.02954"
y="47.447662"
id="text2182"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2184"
x="194.02954"
y="47.447662">0.8</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2186"
y="107.44766"
x="194.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="107.44766"
x="194.02954"
id="tspan2188"
sodipodi:role="line">0.4</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="134.02954"
y="167.44766"
id="text2190"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2192"
x="134.02954"
y="167.44766">0.2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2194"
y="227.44766"
x="134.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="227.44766"
x="134.02954"
id="tspan2196"
sodipodi:role="line">0.6</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2198"
y="167.44766"
x="194.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="167.44766"
x="194.02954"
id="tspan2200"
sodipodi:role="line">0.8</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2206"
y="167.44766"
x="14.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="167.44766"
x="14.029541"
id="tspan2208"
sodipodi:role="line">0.2</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="14.029541"
y="227.44766"
id="text2210"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2212"
x="14.029541"
y="227.44766">0.6</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="74.029541"
y="167.44766"
id="text2214"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2216"
x="74.029541"
y="167.44766">0.8</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2218"
y="227.44766"
x="74.029541"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="227.44766"
x="74.029541"
id="tspan2220"
sodipodi:role="line">0.4</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2270"
y="167.44766"
x="254.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="167.44766"
x="254.02954"
id="tspan2272"
sodipodi:role="line">0.2</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="274.02954"
y="221.44766"
id="text2274"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2276"
x="274.02954"
y="221.44766">...</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="254.02954"
y="47.447662"
id="text2286"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2288"
x="254.02954"
y="47.447662">0.2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2290"
y="107.44766"
x="254.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="107.44766"
x="254.02954"
id="tspan2292"
sodipodi:role="line">0.6</tspan></text>
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 305,9.36218 L 305,245.36218"
id="path2213"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="125%"
id="text2215"
y="47.447662"
x="314.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="47.447662"
x="314.02954"
id="tspan2217"
sodipodi:role="line">0.8</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="314.02954"
y="107.44766"
id="text2219"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2221"
x="314.02954"
y="107.44766">0.4</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2212"
y="221.44766"
x="334.02954"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="221.44766"
x="334.02954"
id="tspan2214"
sodipodi:role="line">...</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="334.02954"
y="161.44766"
id="text2216"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2218"
x="334.02954"
y="161.44766">...</tspan></text>
<text
xml:space="preserve"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="214.02954"
y="221.44766"
id="text2220"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2222"
x="214.02954"
y="221.44766">...</tspan></text>
</g>
</svg>

BIN
static/study/fig2-3-1c.png Переглянути файл

Перед Після
Ширина: 297  |  Висота: 80  |  Розмір: 5.4 KiB

+ 177
- 0
static/study/fig2-3-1c.svg Переглянути файл

@@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig2-3-1c.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig2-3-1c.png"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="454.04411"
inkscape:cy="1036.1848"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1075"
inkscape:window-height="847"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2160"
width="118"
height="118"
x="91"
y="13.362183"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60"
inkscape:export-filename="fig2-3-1c.png" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 92,72.36218 L 208,72.36218 M 150,14.36218 L 150,130.36218"
id="rect4103"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="119.70291"
y="52.362183"
id="text4106"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4108"
x="119.70291"
y="52.362183">0</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2167"
y="52.362183"
x="179.70291"
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="52.362183"
x="179.70291"
id="tspan2169"
sodipodi:role="line">3</tspan></text>
<text
xml:space="preserve"
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="179.70291"
y="112.36218"
id="text2171"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan2173"
x="179.70291"
y="112.36218">1</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2175"
y="112.36218"
x="119.70291"
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="112.36218"
x="119.70291"
id="tspan2177"
sodipodi:role="line">2</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2168"
y="82.362183"
x="43.702911"
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="82.362183"
x="43.702911"
id="tspan2170"
sodipodi:role="line"
style="font-size:32px;font-style:italic">M =</tspan></text>
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="287.70291"
y="82.362183"
id="text2182"
sodipodi:linespacing="125%"><tspan
style="font-size:32px;font-style:italic"
sodipodi:role="line"
id="tspan2184"
x="287.70291"
y="82.362183">d<tspan
style="font-size:22px"
id="tspan2186">i,j</tspan> =</tspan></text>
<text
sodipodi:linespacing="125%"
id="text2204"
y="62.362183"
x="393.70291"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
xml:space="preserve"><tspan
y="62.362183"
x="393.70291"
id="tspan2206"
sodipodi:role="line"
style="font-size:32px;font-style:italic">1+M<tspan
id="tspan2208"
style="font-size:22">i,j</tspan></tspan></text>
<text
xml:space="preserve"
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif"
x="393.70291"
y="102.36218"
id="text2210"
sodipodi:linespacing="125%"><tspan
style="font-size:32px;font-style:italic"
sodipodi:role="line"
id="tspan2212"
x="393.70291"
y="102.36218">1+m×n</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path2216"
d="M 340,72.36218 L 452,72.36218"
style="font-size:32px;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>

BIN
static/study/fig2-3-5.png Переглянути файл

Перед Після
Ширина: 507  |  Висота: 173  |  Розмір: 2.8 KiB

+ 200
- 0
static/study/fig2-3-5.svg Переглянути файл

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="744.09448819"
height="1052.3622047"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study"
sodipodi:docname="fig2-3-5.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="fig2-3-5.png"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="325.08159"
inkscape:cy="991.45142"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1075"
inkscape:window-height="847"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:grid-points="true" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2160"
width="118"
height="118"
x="6"
y="8.3621826" />
<rect
y="148.36218"
x="6"
height="118"
width="118"
id="rect2167"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
id="path2169"
d="M 7,207.36218 L 123,207.36218 M 65,149.36218 L 65,265.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="8.3621826"
x="166"
height="118"
width="118"
id="rect2188"
style="fill:#3f3f3f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2208"
width="118"
height="118"
x="166"
y="148.36218" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 167,207.36218 L 283,207.36218 M 225,149.36218 L 225,265.36218"
id="path2210"
sodipodi:nodetypes="cccc" />
<rect
style="fill:#7f7f7f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2228"
width="118"
height="118"
x="326"
y="8.3621826" />
<rect
y="148.36218"
x="326"
height="118"
width="118"
id="rect2248"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
id="path2250"
d="M 327,207.36218 L 443,207.36218 M 385,149.36218 L 385,265.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="8.3621826"
x="486"
height="118"
width="118"
id="rect2268"
style="fill:#bfbfbf;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2288"
width="118"
height="118"
x="486"
y="148.36218" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 487,207.36218 L 603,207.36218 M 545,149.36218 L 545,265.36218"
id="path2290"
sodipodi:nodetypes="cccc" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2308"
width="118"
height="118"
x="646"
y="8.3621826" />
<rect
y="148.36218"
x="646"
height="118"
width="118"
id="rect2328"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
id="path2330"
d="M 647,207.36218 L 763,207.36218 M 705,149.36218 L 705,265.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect3317"
width="118"
height="118"
x="6"
y="148.36218" />
<path
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 225,207.36218 L 225,148.36218 L 284,148.36218 L 284,266.36218 L 166,266.36218 L 166,207.36218 L 225,207.36218 z "
id="rect3319"
sodipodi:nodetypes="ccccccc" />
<path
sodipodi:nodetypes="ccccccccc"
id="path3324"
d="M 385,207.36218 L 385,148.36218 L 444,148.36218 L 444,207.36218 L 385,207.36218 L 385,266.36218 L 326,266.36218 L 326,207.36218 L 385,207.36218 z "
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="148.36218"
x="546"
height="59"
width="59"
id="rect3326"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 327,67.36218 L 443,67.36218 M 385,9.36218 L 385,125.36218"
id="path2190"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 647,67.36218 L 763,67.36218 M 705,9.36218 L 705,125.36218"
id="path2186"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
id="path2188"
d="M 487,67.36218 L 603,67.36218 M 545,9.36218 L 545,125.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
id="path2192"
d="M 167,67.36218 L 283,67.36218 M 225,9.36218 L 225,125.36218"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>

Деякі файли не було показано, через те що забагато файлів було змінено

Завантаження…
Відмінити
Зберегти