[Spambayes-checkins] spambayes/spambayes/core_resources README.txt, NONE, 1.1.2.1 README_txt.py, NONE, 1.1.2.1 __init__.py, NONE, 1.1.2.1 classify.gif, NONE, 1.1.2.1 classify_gif.py, NONE, 1.1.2.1 config.gif, NONE, 1.1.2.1 config_gif.py, NONE, 1.1.2.1 helmet.gif, NONE, 1.1.2.1 helmet_gif.py, NONE, 1.1.2.1 help.gif, NONE, 1.1.2.1 help_gif.py, NONE, 1.1.2.1 message.gif, NONE, 1.1.2.1 message_gif.py, NONE, 1.1.2.1 query.gif, NONE, 1.1.2.1 query_gif.py, NONE, 1.1.2.1 scanning__init__.py, NONE, 1.1.2.1 status.gif, NONE, 1.1.2.1 status_gif.py, NONE, 1.1.2.1 train.gif, NONE, 1.1.2.1 train_gif.py, NONE, 1.1.2.1 ui.html, NONE, 1.1.2.1 ui.psp, NONE, 1.1.2.1 ui_html.py, NONE, 1.1.2.1 ui_psp.py, NONE, 1.1.2.1
Skip Montanaro
montanaro at users.sourceforge.net
Tue May 22 05:03:00 CEST 2007
Update of /cvsroot/spambayes/spambayes/spambayes/core_resources
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19508
Added Files:
Tag: CORESVR
README.txt README_txt.py __init__.py classify.gif
classify_gif.py config.gif config_gif.py helmet.gif
helmet_gif.py help.gif help_gif.py message.gif message_gif.py
query.gif query_gif.py scanning__init__.py status.gif
status_gif.py train.gif train_gif.py ui.html ui.psp ui_html.py
ui_psp.py
Log Message:
isolate Core UI templates from pop3 proxy version
--- NEW FILE: README.txt ---
When running SpamBayes from source, you need to install resourcepackage
from http://resourcepackage.sourceforge.net/ in order for your changes to
anything in the "resource" directory to take effect. Download
ResourcePackage-1.0.0.tar.gz, unpack it into a temporary area, cd to that
area, and run "python setup.py install". You can then delete the unpacked
files.
--- NEW FILE: README_txt.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource README_txt (from file README.txt)"""
# written by resourcepackage: (1, 0, 0)
source = 'README.txt'
package = 'spambayes.core_resources'
import zlib
data = zlib.decompress("xÚ]±NÆ0\014÷>Å©sIaeD<\000\0011ZÛTëD®+T\036·å_Päì|wögfn\"ø¨´¼ÐÎ+\
\006-\013Ö²iä\016{Ù Ì\011V0Éj4ÏP¾ªâFnÎ\017Ù¬>÷ý¿Z¸^CQ¿\013[ï\020\024M¬pí +b&\031Ý×JC²\
[>ÒxeF{ǵHr´¢ûÄèÆàap%\000¯å[æB©yÿë~»Ì\037£\037#\015ãOMPÌéÎ \030/µ(9\
©C<§´LÖ\\\002I:ö¶z¬\"XÙ¶\032ê~ßDëæ_¾ Hg\\AâÏè\033§ff^Có\013\031×")
### end
--- NEW FILE: __init__.py ---
"""Design-time __init__.py for resourcepackage
This is the scanning version of __init__.py for your
resource modules. You replace it with a blank or doc-only
init when ready to release.
"""
try:
__file__
except NameError:
pass
else:
import os
if os.path.splitext(os.path.basename( __file__ ))[0] == "__init__":
try:
from resourcepackage import package, defaultgenerators
generators = defaultgenerators.generators.copy()
### CUSTOMISATION POINT
## import specialised generators here, such as for wxPython
#from resourcepackage import wxgenerators
#generators.update( wxgenerators.generators )
except ImportError:
pass
else:
package = package.Package(
packageName = __name__,
directory = os.path.dirname( os.path.abspath(__file__) ),
generators = generators,
)
package.scan(
### CUSTOMISATION POINT
## force true -> always re-loads from external files, otherwise
## only reloads if the file is newer than the generated .py file.
# force = 1,
)
--- NEW FILE: classify.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: classify_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource classify_gif (from file classify.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'classify.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010þ\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#JH±¢Å\022o¸ÐÀ\000\006\030\\(q\003ã\017\024\015>\
ª\\¹²\001\037\024]$øØ@\004\023+\003<\030\021!ÀÇ\004-\"úÐðñ\001>Xð\000Ã\004\002\005:n`ð\011 \017=\036\000\010@â`J\
\003\034t< \006¢;\030fݺb Ì\034TBEÀB \0134{,¬ð1\005A\0072\006Þ \012 Ã\011\011\004ã\002 \020ÅG\014\005\005ìx\020\
B\007\020\012*\017ì @ð(\022\"øX \000 \037\005\\º \010\022:\006 áÀ\0029F³\004 3AÌ\000B'ä\013\003Á\012'>\
ì\006à!\005âÊ\027/\\\013\000ÃU 0\020eù@º\002£p?Ð;]+\000\0064\004Zèîá\000o\017:*\005¢ã3ñ\016\020ݺ\001G\
V\004'¤µ\003\012\011@Å\003\010\004|¤Áu\017ÉôQ\000\022 \001a\001@@Â\005\002ü\024ÔD'¥´\034K.ÙVF\034y\004H$a¤â,¶è\
â0Æ(ã4Öhã8æ¨ã+\006\004\000;"
### end
--- NEW FILE: config.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: config_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource config_gif (from file config.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'config.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#J\010\003E\034\000\\QãÆ\035=~T\030RäÈ%M\
$R%C \001Èér!\000$iÒ(\023'J;!ÎôÉ\022èPG\013¶L*¦Ï¥='\002
\011õ&E£\034ª\022mj´ëV\
®]u~å\030VìɪLG¢\035{\021*Û-ß~,)WmÔ$ëâÝË·¯ß¿\003\013\036L¸°á\001\001\000;"
### end
--- NEW FILE: helmet.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: helmet_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource helmet_gif (from file helmet.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'helmet.gif'
package = 'spambayes.resources'
data = "GIF89a\"\000\030\000÷\000\000BBFUSTcZR^^^kZVoe\\kkgskcwogtf{wt~k¡p´\
¥¥µ¯·º½À½·µ½ÊÀÃÈÆÆÎÆÒÞ½ÖïÆÖïÆÞïÆÞ÷½ÞÿÆçÿΩ֯νïË\
ÎËËÖÚâ÷Ö½äáäÎÞïÖÞïÖçïÞçïçëëïïçïïï÷÷ïÎÞ÷Îç÷ÎçÿÖç÷ÖçÿÖïÿÞç÷Þï\
ûçï÷ç÷ÿïï÷ï÷ÿ÷÷÷÷ÿÿÿÿ÷ÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000!ù\004\001\000\000\036\000,\000\000\000\000\"\000\030\000\000\010þ\000=\010\034H° Á\003eÈððaÆ\015\020#~`ãÃ\007\034;>DÜXP\006\013\0362b¸\
à¡£I\032,|Ð\020Ùc¡I4Nø¸aÃÅ\017\032/a¦ÌQófÎ4ZüÈ¡ÂæÃ\020E\016UÁâGÆ\026K\"ü°ÇR\
=p\"±Á\002\0141 zô1\024Ì¡R\011~Àà@Á\002\007\026Â\032¤jsh\023V{ÜHë\001\005\005\006\006\0240 \002\012\037bthøñ\
GÖ\017%êê\"Ã\030\023\024\014Ø\\ ÀÂ)P`\020¡\004\027?.Üpö\007\017\014\013bCÐ, \000Î\0258p°Àí\005«©÷z\
\0219u\013\007\006\002o\036 à6\003Ð\017<W \000\001\004²]z@×\007\011Í\003\000È\004\010@À9\004\010Ð\037( ù\002ì9Ô8qÂA\
\001\001Ä\007è \001óç%PÀr\010ØÔRA\035p\002÷å\027 at m\007üÇ@\003\022\0128X`\025ì UA1`\020X~\000\000P[\002\015Xâ\003\
\024®7Ø\001\016Ø\000Q\007\013l\026â\0054b\003 \020Â\003\014 À\036\002\012T\000CDá\027\"\001\010ØÈÀ\003 0\002\010\015ø÷\0053ðUÐ\007\
\034HÀà\021òã\010&\020e\002\025Ì D1hIÝn\020@À¤\010\025P\000\003\020\034öS\007\032ä©A\007|rÀ\001v\000Q@\000\000;"
### end
--- NEW FILE: help.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: help_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource help_gif (from file help.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'help.gif'
package = 'spambayes.resources'
data = "GIF89a\026\000 \000÷\000\000\000{÷\000÷\010÷\020÷\020÷\030÷!÷!÷)ÿ1ÿ9ÿBÿRÿZÿcµÿkµ\
ÿsµÿ{½ÿ½ÿÆÿÆÿÎÿ¥Îÿ¥ÖÿÖÿµÖÿ½ÞÿÆÞÿÖçÿÖïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\
ÿ!ù\004\001\000\000\036\000,\000\000\000\000\026\000 \000\000\010§\000=\010\034H° Á\030\036$ \000\000\000\004\0204\034\034(aÃ\030\017T0ÈÁ\000Æ\037\025\024\
\034ð1ÀF\017\023\002|D0\001H\012\004# P\000H \017\010\004\011\000çM\017<\013r\0009`¢Á\006 \035\030%è\000¤¥\002+\014\001ê\002\
\005$.E\024ª\007\015S«zå¦W\017\0261Ýùólеoݶ]K·®]»\025\016\0000prm
}½zÄhn\\¯z3Òµ\000¸\
®\005½|ï\015\010\000;"
### end
--- NEW FILE: message.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: message_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource message_gif (from file message.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'message.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#JH±¢C\000\0303jÜȱcÆ\030-\026\014dÄ@L\
\032Tù\020%K/\033º\004\000¦Ä5'â,iS¤À?{ú\004R¨H¢Do\032
)Ô£ÇHVês ÕN5B\032´jW\
^æÜuëØªWÑr\025ë5íеIOÂ]«´fÖ»OÃêÝË·¯ß¿\003\013\036¼0 \000;"
### end
--- NEW FILE: query.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: query_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource query_gif (from file query.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'query.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010þ\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#JHñ`\013\010\000\004` ÂGÅ7V\014øP\003È\031\030\022\
Øøh0Ä\0011ä!bC\016\025\007t°\034\010Â\003\015\005o@°1bÂN 4\000È`\000Cà\017\014\"à`ÀéÎ\014\000z\014à1B \017\
\004!|\020qâÂN\005\000¤\025°Cà\002 at j0¸`g¬\002|\004P!°G\000Ó²\004\000Æ\032\01688`2à\004\000Ð@\
¢Ä\0038d ]`ãÀN\010\000\030ÈHàÃ,Á\017!NTØ9ð\012\011$\012æxÐÁ<\014\00080ã@?Pðààà(\020\027w\025\
¬8°¡d\017\030\022\026è4â.\016\022\022häèѸ@\032\025\006`\020&ÌÃ;Â\002+Ð0P\002á\014,Ø\033ô@ À^ù\005]Ç`\
ñÅõ'\017ãÁ% @\007×Ö\021§Ù\032Â@´F\007\024²0Þj\007þGØ\002\024êEØ\000\024\002aB\001\003tUâ,¶è\
âQ\001\001\000;"
### end
--- NEW FILE: scanning__init__.py ---
# To change these resource files, temporarily replace __init__.py with
# this file, and install Mike Fletcher's ResourcePackage from
# http://resourcepackage.sourceforge.net/ Put __init__.py back before
# you check in your edits!
"""Design-time __init__.py for resourcepackage
This is the scanning version of __init__.py for your
resource modules. You replace it with a blank or doc-only
init when ready to release.
"""
try:
__file__
except NameError:
pass
else:
import os
if os.path.splitext(os.path.basename( __file__ ))[0] == "__init__":
try:
from resourcepackage import package, defaultgenerators
generators = defaultgenerators.generators.copy()
### CUSTOMISATION POINT
## import specialised generators here, such as for wxPython
#from resourcepackage import wxgenerators
#generators.update( wxgenerators.generators )
except ImportError:
pass
else:
package = package.Package(
packageName = __name__,
directory = os.path.dirname( os.path.abspath(__file__) ),
generators = generators,
)
package.scan(
### CUSTOMISATION POINT
## force true -> always re-loads from external files, otherwise
## only reloads if the file is newer than the generated .py file.
# force = 1,
)
# ResourcePackage license added by Richie Hindle <richie at entrian.com>,
# since this is "Redistribution and use in source form". Note that binary
# Spambayes packages don't redistribute this file or rely on ResourcePackage;
# it's only used at development time (and even developers don't need it
# unless they want to change the resources). Kudos to Mike Fletcher for
# ResourcePackage - excellent tool!
__license__ = """
ResourcePackage License
Copyright (c) 2003, Michael C. Fletcher, All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
The name of Michael C. Fletcher, or the name of any Contributor,
may not be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS NOT FAULT TOLERANT AND SHOULD NOT BE USED IN ANY
SITUATION ENDANGERING HUMAN LIFE OR PROPERTY.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
"""
--- NEW FILE: status.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: status_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource status_gif (from file status.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'status.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010þ\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#J$xCÄ\004\004\001\000\004 at 0AÄ\010c@\000@²¤I\000\020b\
\034Ø#\003É\001\031TØø\001ä\015\025\031\006ÌÐ\003¤\005\000\004à\007\010\001\000\026è¨C\001\000\0055\010@\000\000Á\0106*Xú°\007Ð\
\007=\0078\011`\007IÃ6t©@@&\007\024ìá4Ã\030A£\026[RnA\033HU2\000 ¬Á±&\015\027\034\033á\015\000\003\036Z\
õêA\036:?*\024\001ÀîJ .E,\000@Åg *\000LX\000'\023Ú\000`aF\010c#ü¡q!I
ºs\003ð\015\000÷Áà\006y\
\017WHõµð²«.\015ÛdÂÔ«7w®\016\035aè
#s?ÿ}93Ã\013\"'8\026BC\030A«·n\0200\000\030\0161¤5¸\036\
W\000\030tõ[@¬wÖ~\017é`ÀSò\025H@Y\001`@\016L\001%dº\031
R õ \037d1ÍTÓM9\001\022tÒ)F\
E\030iÄG.Öhã8æ¨ã<öP@\000\000;"
### end
--- NEW FILE: train.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: train_gif.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource train_gif (from file train.gif)"""
# written by resourcepackage: (1, 0, 0)
source = 'train.gif'
package = 'spambayes.resources'
data = "GIF89a(\000(\000÷\000\000\000ö\004ö\010ö\014
ö\020÷\024÷\030÷\034÷ ÷$÷(÷,ø0ø4ø8ø<\
ø@øD¡øH£ùL¥ùP§ùT©ùX«ù\\ù`¯ùd±úh³úlµúp·út¹úx»ú|½ú¿ûÁûÃûÅ\
ûÇûÉûËûÍü Ïü¤Ñü¨Óü¬Õü°×ü´Ùü¸Ûü¼ÝýÀßýÄáýÈãýÌåýÐçýÔéýØëþÜí\
þàïþäñþèóþìõþð÷þôùÿøûÿüýÿÿÿÿ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\000,\000\000\000\000(\000(\000\000\010þ\000\010\034H° Á\010\023*\\Ȱ¡Ã\020#JHÑa\015\012\001\0028\000À@\010(\000Â\0174\
Ì\020\000Òà\012\020røX0Ç\003\000\0000ÑRFN\000\025~\010¼1`\000\002\030@~°XвÃ\010\022\002tèA\020 at C\023\014\\\034d²`\012\
\011?n`\010ðóÄÂ\021\012:x88ÀË\010\012(¨p\013ÄÅ
\010fÜpÐêÁ\013\031~Ø\000@#K
~\015\010-8ÇÁ\037\020\020LX!\
ôÅ\001\011\025Ø\000RamÁ\0062\020x óE\010\033/\030(\024Á\001H\017\006$\012~\010\0212\001\001\033èúEÈÃÀ\016 :\024¬ X#'\010:\026\
ºh°ÐCl 7\016¼py\001Ý:`xÈ»Ð\006_5\014þÜ8È¡uU\000\004\034pÌ\020\001A\026\015\026\023üÑ\005A÷\014yp@ g\
Áò\007Ý`@\015\003A°B3 à\001\014É\031ä\003\003'È7eã\001Ag\0115YB:DÐ\037\000\004\016´\002Éí`\000{\010ùåÃ\006\002\030\020\
\004
ðAA$0@\025\007\"(ÄÀ\0136ð\0179<@ÛA20W\007\025\000a\002\012¹ ]R+L\000\0040\012ÄÃ]\005ý`@»!$\
\003dM`Ã\017\031\\âA\020ÜàB\003`æ\012\024(\020A>`yd\007\012<¥Ð\011?\005Á\015?HA4¨f\013\014ÐP=t\020\
\004\006ÐAK\013° \024\014\010\024UáK?
\006R\014\014ät at M#,\000$\004AµT\0003\000AÃ\007 \022x0\022\010U¶T\001\000@\000f\000\024\
¨ê¯À\006+ì°Ä\026k¬B\001\001\000;"
### end
--- NEW FILE: ui.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title id="title">SpamBayes Core Server User Interface</title>
<meta http-equiv="Cache" content="no-cache" />
<meta http-equiv="Expires" content="Thu, 01 Jan 1970 00:00:00 GMT" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, no-store" />
<style>
body { font: 90% arial, swiss, helvetica; margin: 0 }
table { font: 90% arial, swiss, helvetica }
form { margin: 0 }
a:link { color: #0000c0 }
a:visited { color: #0000c0 }
a:hover { color: #6040ff }
.content a { font-weight: bold }
.viewlink a { font-weight: normal }
.banner { background: #c0e0ff; padding=5; padding-left: 15;
border-top: 1px solid black;
border-bottom: 1px solid black }
.header { font-size: 133% }
.content { margin: 15 }
.messagetable td { padding-left: 1ex; padding-right: 1ex }
.sectiontable { border: 1px solid #808080; width: 95% }
.sectionheading { background: #fffae0; padding-left: 1ex;
border-bottom: 1px solid #808080;
font-weight: bold }
.sectionbody { padding: 10px }
.reviewheaders a:link { color: #000000 }
.reviewheaders a:visited { color: #000000 }
.viewlink a:link { color: #000000 }
.viewlink a:visited { color: #000000 }
.stripe_on td { background: #ececec }
.highlight_on td { background: #00ccff }
.uiHtmlHeader { font-size: 120%; color: #800000; font-weight: bold }
</style>
</head>
<body id="body">
<div class='banner'>
<span id="helmet"><img src='helmet.gif' align='absmiddle'/> </span>
<span class='header'>
<span id="productName">SpamBayes Web Interface</span>:
<a id="homelink" href='home'>Home</a>
<span id="pagename">> ui.html</span>
</span>
</div>
<div id="mainContent" class="content">
<h4>Introduction</h4>
<p>This file, <code>ui.html</code>, defines the look-and-feel
of the user interface of the SpamBayes Core Server. The various
pieces of HTML defined here are extracted and manipulated at
runtime to dynamically produce the HTML that the SpamBayes
Server serves up - this file acts as a palette of HTML
components. <code>PyMeldLite</code> is the module that provides
the HTML-to-object mapping layer that makes all this possible.
Each piece of HTML that needs to be manipulated has an
<code>id</code> tag, and becomes a Python object at runtime.</p>
<p>This "Introduction" section serves as an introduction to this file.
It does not require translation and is never used in the run-time
interface.</p>
<p>As an example of how this works, here is an editbox with
an <code>id</code> of <code>examplebox</code>:
<input id="examplebox" type="text" value="example" size="10"/>
PyMeldLite lets you manipulate the HTML programmatically:</p>
<div style='border: 1px solid #606060'>
<pre style='background: #fffae0; margin: 0; padding: 10'>
<font color="#0000C0">>>></font> import PyMeldLite
<font color="#0000C0">>>></font> html = open("ui.html", "rt").read()
<font color="#0000C0">>>></font> doc = PyMeldLite.Container(html)
<font color="#0000C0">>>></font> print doc.examplebox
<i><input id="examplebox" size="10" type="text" value="example"/></i>
<font color="#0000C0">>>></font> doc.examplebox.value = "Changed"
<font color="#0000C0">>>></font> print doc.examplebox
<i><input id="examplebox" size="10" type="text" value="Changed"/></i>
</pre>
</div>
<p>So the Python code to build the HTML user interface pages doesn't
need to faff about pasting strings together, or building HTML components
from scratch in code. And the look-and-feel is controlled solely by
this one HTML file - changing the stylesheet, translating into
other languages, adding a new piece of user interface - all of these
things are very easy.</p>
<p>Below are all the user interface components along with their
<code>id</code>s.</p>
<hr/>
<p class="uiHtmlHeader">headedBox</p>
<span id="headedBox">
<table class='sectiontable' cellspacing='0'>
<tr><td id="heading" class='sectionheading' colspan='2'>Headed box</td></tr>
<tr><td id='iconCell' valign='top' class='sectionbody' width='20'>
<img id='icon' src='status.gif' width='40' height='40'/>
</td>
<td id="boxContent" class='sectionbody'>
This is a "headedBox". Most of the user interfaces pieces are
presented in one of these. The pieces aren't presented in these
boxes here in <code>ui.html</code> to avoid duplication of HTML.
As such, this section does not need translation.
</td></tr></table>
<br/>
</span>
<hr/>
<p class="uiHtmlHeader">The help page</p>
<div id="helppage">
<table class='sectiontable' cellspacing='0'>
<tr><td class='sectionheading' colspan='2' id="helpheader">SpamBayes Help</td></tr>
<tr><td valign='top' class='sectionbody' width='20' rowspan='3'>
<img id='icon' src='help.gif' width='22' height='32'/>
</td>
<td id="helptext" class='sectionbody'>
Sorry, there isn't any specific help available for that section.
</td>
</tr>
<tr>
<td class="sectionbody"><hr /></td>
</tr>
<tr>
<td id="aboutbugreport" class='sectionbody'>
If you believe you may have found a bug in SpamBayes, or are
at a loss as to how you can proceed, you can ask the SpamBayes
mailing list for assistance. Note that the members of this list
are volunteers that answer questions in their free time, so an
answer to your question might take a little while to appear. If
you are quite certain that you have found a bug, then you're
probably better off submitting this via the <a href="http://sourceforge.net/tracker/?group_id=61702">
SourceForge tracking system</a>, as sometimes things get lost on
the list, particularly in busy times or when the latest virus is
flooding the net with bogus messages.<br /> <br />
There is certain information which people need to know in order to
suggest how you might fix any problems. To help make sure that you
have all this information, SpamBayes can <a href="bugreport">create
a help message</a> for you. If you choose to email the list without
using this, please ensure that you have all the pertinent information.
(Otherwise your response is likely to be "please tell us ...").
</td>
</tr></table>
</div>
<hr/>
<p class="uiHtmlHeader">Context-sensitive help page text</p>
<h5 id="helpheader_review">Review Page Help</h5>
<div id="helptext_review">
<p>When you first start using
SpamBayes, all your mail will be classified as 'unsure' because SpamBayes
doesn't have any preconceived ideas about what good or bad mail looks like.
As soon as you start training the classification will improve, and by the
time you've classified even 20 messages of each you'll be seeing quite
reasonable results.</p>
<p>SpamBayes saves a <strong>temporary copy</strong> of all incoming mail
so that classification can be independant of whatever mail client you are
using. You need to run through these messages and tell SpamBayes how to
handle mail like that in the future. This page lists messages that have
arrived in the last %(cache_expiry_days)s days and that have not yet been
trained. For each message listed, you need to choose to either
<strong>discard</strong> (don't train on this message),
<strong>defer</strong> (leave training on this message until later), or
train (as either good - <strong>ham</strong>, or bad -
<strong>spam</strong>). You do this by simply clicking in the circle in
the appropriate column; if you wish to change all the messages to the same
action, you can simply click the column heading.</p>
<p>You are presented with the subject and sender of each message, but, if
this isn't enough information for you to make a decision on the message,
you can also view the message text (this is the raw text, so you can't do
any damage if the message contains a virus or any other malignant data).
To do this, simply click on the subject of the message.</p>
<p>Once you have chosen the actions you wish to perform on all the
displayed messages, click the <em>Train</em> button at the end of the page.
SpamBayes will then update its database to reflect this data.</p>
<p>Note that the messages are split up into the classification that
SpamBayes would place the message with current training data (if this is
correct, you might choose to <em>Discard</em> the message, rather than
train on it - see the <a href="http://entrian.com/sbwiki">SpamBayes wiki
</a> for discussion of training techniques). You can also see the
<em>Tokens</em> that the message contains (the words in the message,
plus some additional tokens that SpamBayes generates) and the <em>Clues
</em> that SpamBayes used in classifying the message (not all tokens are
used in classification).</p>
<p>So that the page isn't overwhelmingly long, messages waiting for review
are split by the day they arrived. You can use the <em>Previous Day</em>
or <em>Next Day</em> buttons at the top of the page to move between days.
If mail arrives while the review page is open the new messages will
<strong>not</strong> be automatically added to the displayed list; to add
the new message, click the <em>Refresh</em> button at the top of the page.
</p>
</div>
<h5 id="helpheader_stats">Statistics Page Help</h5>
<div id="helptext_stats">
<p>SpamBayes keeps track of certain
information about the messages that are classified. For your interest,
this page displays statistics about the messages that have been classified
and trained so far.</p>
<p>Currently the page displays information about the
number of messages that have been classified as good, bad and unsure, how
many of these were false negatives or positives, and how many messages
were classified as unsure (and what their correct classification was).</p>
<p>Note that the data for this page resides in the "message info"
database that SpamBayes uses, and so only reflects messages since the
last time this database was created.</p>
</div>
<h5 id="helpheader_home_proxy">Home Page Help</h5>
<div id="helptext_home_proxy">
<p>This is the main page for the
SpamBayes web interface. You are presented with some information about
the current status of SpamBayes, and can follow links to review messages
or alter your configuration.</p>
<p>If you have messages stored in a mbox or dbx (Outlook Express) file
that you wish to 'bulk' train, or if you wish to train on a message
that you type in, you can do this on this page. Click the
"Browse" button (or paste the text in, including headers),
and then click the <em>Train as Ham</em> or <em>Train as Spam</em>
button.</p>
<p>Likewise, if you have a message that you wish to classify, you
can do this. Either paste the message into the text box, or click
"Browse" and locate the text file that the message is
located in. Click <em>Classify</em>, and you will be taken to a
page describing the classification of that message.</p>
<p>If you want to find out information about a word in the statistics
database that forms the heart of SpamBayes, you can use the "Word
Query" facility. Enter in the word that you wish to search for
and click <em>Tell me about this word</em>. If you enable the advanced
find query, you can also search using wildcards or regular expressions.</p>
<p>You can also search for a specific message in the cache of temporary
copies of messages that have been proxied. You might wish to do this if
you realise that you have incorrectly trained a message and need to correct
the training. You can search the subject, headers, or message body, or
for the SpamBayes ID (which is in the headers of messages that SpamBayes
proxies). Messages that are found will be presented in the standard
review page. Note that once messages expire from the cache (after
%(cache_expiry_days)s days), you can no longer find them.</p>
</div>
<hr/>
<p class="uiHtmlHeader">A pre-filled-in 'help' message</p>
<div id="bugreport">
<form action="submitreport" method="GET">
<!-- Mail things that we could offer, but won't, for the moment at
least:
<input name="reply-to" size="30" value="ta-meyer at ihug.co.nz" style="width: 265px" tabindex="6" />
<input name="bcc" size="30" value="" style="width: 265px" tabindex="6" />
<select name="priority">
<option value="normal">Normal</option>
<option value="urgent">Urgent</option>
</select>
-->
<table class='sectiontable' cellspacing='0'>
<tr><td class='sectionheading' colspan='2'>Send Help Message</td></tr>
<tr><td class='sectionbody'>From:</td><td class='sectionbody'>
<input type="text" name="from_addr" size="30" id="from_addr" value="ta-meyer at ihug.co.nz" style="width: 265px" tabindex="0" />
</td></tr>
<tr><td class='sectionbody'>Subject:</td><td class='sectionbody'>
<input name="subject" size="60" id="subject" value="Problem with sb_server: [problem summary here]" style="width: 450px" tabindex="3" />
</td></tr>
<tr><td class='sectionbody'>Message:</td><td class='sectionbody'>
<textarea wrap="physical" name="message" id="message_body" cols="60" rows="10" style="width: 450px" tabindex="4"></textarea>
</td></tr>
<tr><td class='sectionbody'>Attach Log file:</td><td class='sectionbody'>
<input type="file" name="attach" size="60" id="file" tabindex="7" value="" />
</td></tr>
<tr id="submitrow"><td class='sectionbody' colspan='2' style="text-align:center">
<input type="submit" value="Send"/>
</td></tr>
</table>
</form>
</div>
<hr/>
<p class="uiHtmlHeader">status</p>
<table id="statusTable" border="0" cellspacing="0" cellpadding="0">
<tr><td>
<span id="status">
Messages classified this session:
<b><span id="numSpams">0</span></b> spam,
<b><span id="numHams">0</span></b> ham,
<b><span id="numUnsure">0</span></b> unsure.<br/>
Total messages trained:
Spam: <b><span id="nspam">0</span></b>
Ham: <b><span id="nham">0</span></b><br/>
<a href="stats">More statistics...</a>
</span>
</td>
<td style='width: 6ex'> </td>
<td valign='top'>
<img src='config.gif' width='40' height='40' align='left'/>
<span id="configurationLink">
You can configure your SpamBayes<br/>
system using the
<a href='config'>Configuration page</a>.
</span></td>
</tr>
<tr style="padding: 1em">
<td colspan='3'><b id="warning">
Warning: please insert warning message here! The warnings are
all dynamically inserted, and so translating this text is not
necessary.
</b></td>
</tr>
</table>
<hr/>
<p class="uiHtmlHeader">reviewText</p>
<p id="reviewText">
The SpamBayes server stores all the messages it sees.
You can train the classifier based on those messages
using the <a href='review'>Review messages</a> page.
</p>
<hr/>
<p class="uiHtmlHeader">reviewTable</p>
<span id="reviewtable">
<p>These are messages that you can use to train the
classifier. Check the appropriate button for each message,
then click 'Train' below. 'Defer' leaves the message
here, to be trained on later. Click one of the
Discard / Defer / Ham / Spam headers to check all of the
buttons in that section in one go. Click one of the other
headers to sort messages (within their classification) by that
header (note that sorting will lose any changes you have
made to the page).</p>
<form action='review' method='GET'>
<input type='hidden' name='prior' id='prior' value='0'/>
<input type='hidden' name='next' id='next' value='0'/>
<table border='0' cellpadding='0' cellspacing='0'>
<tr><td><input type='submit' name='go' id='priorButton'
value='Previous day' disabled='1'/> </td>
<td><input type='submit' name='go' id='refresh'
value='Refresh'/> </td>
<td><input type='submit' name='go' id='nextButton'
value='Next day' disabled='1'/> </td>
<td> </td>
</tr></table>
</form>
<script type='text/javascript'>//<![CDATA[
function onHeader(type, switchTo)
{
if (document.forms && document.forms.length >= 2)
{
form = document.forms[1];
for (i = 0; i < form.length; i++)
{
splitName = form[i].name.split(':');
if (splitName.length == 3 && splitName[1] == type &&
form[i].value == switchTo.toLowerCase())
{
form[i].checked = true;
}
}
}
}
//]]>
</script>
<form action='review' method='POST'>
<table id='table' class='messagetable' cellpadding='0' cellspacing='0'>
<div id="reviewSubHeader">
<tr>
<td><b>Messages classified as TYPE:</b></td>
</tr>
<tr>
<span id='optionalHeaders'>
<td class='reviewheaders' id='headerHeader'>
<a href="review" id='headerLink'>
<b id='headerName'>Subject</b>
</a>
</td>
</span>
<span id="received_header">
<td class='reviewheaders'><a href="review?sort=received"><b>Received:</b></a></td>
</span>
<td class='reviewheaders' nowrap='1'><b>
<a href="javascript: onHeader('TYPE', 'Discard');">Discard</a> /
<a href="javascript: onHeader('TYPE', 'Defer');">Defer</a> /
<a href="javascript: onHeader('TYPE', 'Ham');">Ham</a> /
<a href="javascript: onHeader('TYPE', 'Spam');">Spam</a>
</b>
</td>
<span id="score_header">
<td class='reviewheaders'><a href="review?sort=score"><b>Score:</b></a></td>
</span>
</tr>
</div>
<tr id="reviewRow" class='stripe_on' onMouseOver="this.className='highlight_on';"
onMouseOut="this.className='stripe_on';">
<span id="optionalHeadersValues">
<td id="headerValue">
<span id='text'>
Richie Hindle <richie at entrian.com>
</span>
</td>
<td id="linkedHeaderValue" class="viewlink">
<a id="text" href="view">
Re: SpamBayes and PyMeld rock! 8-)
</a>
</td>
</span>
<td id="received_">Sat, 11 Sep 2003 19:03:11</td>
<td align='center'>
<input type='radio' name='classify:TYPE:KEY'
id="discard" value='discard'/>
<input type='radio' name='classify:TYPE:KEY'
id="defer" value='defer'/>
<input type='radio' name='classify:TYPE:KEY'
id="ham" value='ham'/>
<input type='radio' name='classify:TYPE:KEY'
id="spam" value='spam'/>
</td>
<td id="score_" align='center'>0.00%</td>
<td nowrap="nowrap"><a id="classify" href="classify">Clues</a> |
<a id="tokens" href="classify">Tokens</a></td>
</tr>
<tr id="blankRow"><td> </td><td> </td><td> </td></tr>
<tr id="trainRow"><td> </td><td> </td>
<td align='center'> <br/>
<input type='submit' name='Train' value='Train'/>
</td>
</tr>
</table>
</form>
</span>
<hr/>
<p class="uiHtmlHeader">upload</p>
<form id="upload" action='train'
method='POST' enctype='multipart/form-data'>
Either upload a message<span id="or_mbox">, mbox or dbx</span> file:
<input type='file' name='file' value=''/><br/>
Or paste one whole message (including headers) here:<br/>
<textarea name='text' rows='3' cols='60'></textarea><br/>
<input id="submit_spam" type='submit' name='which' value='Train as Spam'/>
<input id="submit_ham" type='submit' name='which' value='Train as Ham'/>
<input id="submit_classify" type='submit' name='which' value='Classify'/>
</form>
<p>(The upload form gets used for both training and classifying - the
inappropriate pieces are removed at runtime.)</p>
<hr/>
<p class="uiHtmlHeader">wordQuery</p>
<form id="wordQuery" action='wordquery' name="wordquery">
<table>
<tr>
<td width='55%'>
<input id="word" name='word' value='' type='text' size='30'/>
<br/>
<input type='submit' value='Tell me about this word'/>
</td>
<span id="advanced">
<td>
<input id="basic" name='query_type' type='radio' checked='checked'
value='basic' onClick="document.wordquery.max_results.disabled='disabled'"/>
<span id="basic_label">Basic Query</span>
<br/>
<input id="wildcard" name='query_type' value='wildcard' type='radio'
onClick="document.wordquery.max_results.disabled=''"/>
<span id="wildcard_label">Wildcard Query</span>
<br/>
<input id="regex" name='query_type' value='regex' type='radio'
onClick="document.wordquery.max_results.disabled=''"/>
<span id="regex_label">Regular Expression Query</span>
<br/>
<input id="ignore_case" name='ignore_case' value='ignore_case' type='checkbox'/>
<span id="ignore_case_label">Ignore Case</span>
<br/>
<span id="max_results_label">Maximum results</span>
<input id="max_results" name='max_results' value='10' type='text'
size='4' disabled='disabled'/>
<br/>
</td>
</span>
</tr>
</table>
</form>
<hr/>
<p class="uiHtmlHeader">findMessage</p>
<form id="findMessage" action='review' method='GET'>
<table>
<tr>
<td style='padding-right: 20' width="150">
<b>Search in...</b>
<br/>
<input name='id' id="id" type='checkbox' checked='checked'/>
<span id="basic_label">SpamBayes ID</span>
<br/>
<input name='subject' id="subject" type='checkbox'/>
<span id="wildcard_label">Subject</span>
<br/>
<input name='headers' id="all_headers" type='checkbox'/>
<span id="wildcard_label">Message headers</span>
<br/>
<input name='body' id="body" type='checkbox'/>
<span id="regex_label">Message body</span>
</td>
<td style='padding-right: 20'>
<input name="ignore_case" id="ignore_case" type='checkbox'/>
<span id="ignore_case_label">Ignore Case</span>
<br/>
<span id="max_results_label">Maximum results</span>
<input id="max_results" name='max_results' value='20' type='text' size='4'/>
<br/>
</td>
<td>
<input id="find" name='find' value='' type='text' size='20'/>
<input type='submit' value='Search'/>
</td>
</tr>
</table>
</form>
<hr/>
<p class="uiHtmlHeader">wordStats</p>
<span id="wordStats">
Number of spam messages: <b><span id="spamcount">123</span></b>.<br/>
Number of ham messages: <b><span id="hamcount">456</span></b>.<br/>
Probability that a message containing this word is spam:
<b><span id="spamprob">0.789</span></b>.<br/>
</span>
<span id="multiStats">
<table id="multiTable">
<tr id="multiHeader">
<td width="55%"><strong>Word</strong></td>
<td width="15%" align='center'><strong># Spam</strong></td>
<td width="15%" align='center'><strong># Ham</strong></td>
<td width="15%" align='center'><strong>Probability</strong></td>
</tr>
<tr id="statsRow" class='stripe_on'>
<td id='word'>spambayes</td>
<td align='center' id='spamcount'>123</td>
<td align='center' id='hamcount'>436</td>
<td align='center' id='spamprob'>.789</td>
</tr>
</table>
</span>
<hr/>
<p class="uiHtmlHeader">classifyResults</p>
<span id="classifyResults">
<p>Spam probability: <b id="probability">0.123</b>.
<span id="orig_prob">Original probability: <b id="orig_prob_num">0.125</b>.</span></p>
<span id="cluesBox">
(The table of clues goes here, like this but in a headedBox):
<table id="cluesTable">
<tr id="cluesHeader">
<td style='padding-right: 10'><b>Word</b></td>
<td align='center' style='padding-right: 10'><b>Probability</b></td>
<td align='center' style='padding-right: 10'><b>Times in ham</b></td>
<td align='center'><b>Times in spam</b></td>
</tr>
<tr id="cluesRow">
<td id="clue" style='padding-right: 10'>Example word</td>
<td id="probability" align='center'>0.123</td>
<td id="nham" align='center'>1</td>
<td id="nspam" align='center'>2</td>
</tr>
</table>
</span>
<p>Return <a href='home'>Home</a> or classify another:</p>
<span id="classifyAnother">(The Classify form goes here)</span>
</span>
<hr/>
<p class="uiHtmlHeader">configForm</p>
<span id="configForm">
<form id="action_page" action="changeopts" method="POST">
<p><span id="introduction">This page allows you to change the options
that control how SpamBayes processes your messages.</span> Your options
are stored in <b><span id='optionsPathname'>/example/pathname</span></b>.</p>
<span id="configFormContent">
<TABLE id="configTable" border="0" cellpadding="0">
<TR id="configTextRow1">
<TD align="right" nowrap='1'>
<span id="label">Label</span>:
</TD>
<TD>
<input type="text" size="26" id="input" name="from_parm_ini_map"/>
</TD>
<TD id='helpSpacer'> </TD>
<TD id='helpCell' valign='top' rowspan='2'>
<p>(Help text goes here.)</p>
</TD>
</TR>
<TR id="configCbRow1">
<TD align="right" nowrap='1' valign='top'>
<span id="label">Label</span>:
</TD>
<TD width='110' nowrap='1' valign='top'>
<div id="input">
<input type="checkbox" id="input_box" value="value" name="from_parm_ini_map"/>
<span id="val_label">Value Label</span>
</div>
</TD>
<TD id='helpSpacer'> </TD>
<TD id='helpCell' valign='top' rowspan='2'>
<p>(Help text goes here.)</p>
</TD>
</TR>
<TR id="configRow2">
<TD nowrap='1' align='right' valign='top'>Current Value:</TD>
<TD nowrap='0' width='150' valign='top'> <span id="currentValue">(value)</span></TD>
</TR>
<TR id="configTextRow2">
<TD nowrap='1' align='right' valign='top'>Current Value:</TD>
<TD valign='top'> <span id="currentValue">(value)</span></TD>
</TR>
<TR id="blankRow"><TD> </TD></TR>
<TR id="folderRow">
<TD width="25%">
<input type="checkbox" id="folderBox" value="value" name="folderName">
<span id="folderName">Folder name</span>
</input>
</TD>
<TD id='helpCell' valign='top' rowspan='1000'>
<p>(Help text goes here.)</p>
</TD>
</TR>
</TABLE>
</span>
<center>
<input id="config_submit" type="submit" name="how" value="Save"/>
</center>
</form>
<form id="restore_form" action="restoredefaults" method="POST">
<center>
<input id="restore" type="submit" name="how" value="Restore Defaults"/>
</center>
</form>
<form action="advancedconfig" method="post" id="adv_button">
<center>
<input type="submit" value="Advanced Configuration" id="name"/>
</center>
</form>
<form action="experimentalconfig" method="post" id="exp_button">
<center>
<input type="submit" value="Experimental Configuration" id="name"/>
</center>
</form>
</span>
<hr/>
<p class="uiHtmlHeader">shutdownMessage</p>
<p id="shutdownMessage"><b>Shutdown</b>. Goodbye.</p>
<hr/>
</div>
<form id="footer" action='save' method='POST'>
<table width='100%' cellspacing='0'>
<tr>
<td class='banner'>
<span id="version">Version 0.00</span><br />
<a id='footerHome' href='home'>SpamBayes Web Interface</a>,
<span id="timestamp">Mon Dec 30 14:04:32 2002</span>.
<a href='http://www.spambayes.org/'>Spambayes.org</a></td>
<td class='banner' style="align:top">
<a href="help" id="helplink">
<img id='icon' src='help.gif' width='22' height='32' style='border:none'/>Help
</a></td>
<td align='right' class='banner' id="shutdownTableCell">
<input type='submit' id='shutdownButton' name='how'
value='Save & shutdown'/></td>
</tr>
</table>
</form>
</body>
</html>
--- NEW FILE: ui.psp ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: ui_html.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource ui_html (from file ui.html)"""
# written by resourcepackage: (1, 0, 0)
source = 'ui.html'
package = 'spambayes.core_resources'
import zlib
data = zlib.decompress("xÚÝ=ksÛFßõ+&ز!ÕR$%ÙN¢\007omÙYùÎ}¶²®T*¥\032\002C\022+\020@ð\020ÅÍí¿~Ì\014\006\017´\
Ý«:gW\"\001LOwO¿§\007:ÿæå»Ëëß¿\022W×oß÷?½xóúRx£Ñ§ËÑèåõK¾ñd8>\022×¹L¨\
ÒDƣѫ\037½ÉÞù¢\\ÆøKÉ\020~Q\031+\021
\027\036}ò&\0373¹|!ת\020i®ÄGß©\\üTÀ×I©ò\014Ôù\
\036áKUJ±(ËìPýVEw\027Þ¥\014\026Ê\023A\012Ï&å
¤\001_\032õ=þê>rU8\003®\027Õ@\000êÿ)\023qôý·c1\
\036ÒÿÄ_ß^oB\036^\002<{&\037eU¹ºq\024Ê\022.À¢\004\002\031bQ®i\032®Åïb\006ãOÅ÷ãGBæ\
\007¢XEE1\020\013\025ß©2\012äXÊ|\036%§b,þ¹WÊ)°paðì,Íð¨;|OÆQr\013W4NóSñ§1ü\013\
ð<½`ùTØsâÒÔ·g3¸5Ô\034\020R£u¸RÑ|\001ØMÓ8Ä\007î\"µ¢Y;O$¡\021¯áT&\011M0\
Áí<O«$Y±YÎD&Ã0Jæ\027OíÇÃXÍ\000ÂÑÓ³=aÿMÓ<Tùafp'»\027E\012K ¦1ìyle\
ºì<(£À\0226n\021ýCÁc''\\zkÎ\036=ÅëKU\024r®x
Jdc\013Uu_c3\003à\032\016-Tzc\026ñs\021ûÓ\
wcüïL¬¢°\\ÀÂ?}äCl\001hy³ÙLªñY\017\032\016/¶òÄLÝ3¦wµ5NZ¼õÜ\000pÝÓBb<0\013Ñ\
+c\024¹ÎýâÉÏÖ\"¶\031óÌ\003 22u&¼\015ª\000ÿ#\011\001ªc¤¼ÿAÐÔcoXEW`\005¯ú$êx\
üèÌ¢ð\035¡pÖËÕó¶\032ç#¶¥{çÄ`´¥ø\001l-Ïy\030Ý Eqá³Fù\023¾Qd`ãðq°\020`Ó¼Éy´\
\"\017.|¾2G3_Í'\027¾\026Ë(\014cå&i\001\006\000Á\005¦§á\005ÒÓ4§Êò4¬òG¹lØúOjêw\
{Z\017fºT¸ZXäj\006ÓÀwr\005?ÏG²w2нfz</ÏD\025\015Ñù4Ðn|\006N!\033a8|)£ä5ÛÓ\
¤yZÓ¹ç'×hò \020oX'çÙäz\021\025b\026Å`ëÏ4T\023;;}\033PÍ¢\004H/\027JÄiz{(ðp¦T\
L\020Ò\031ݨÐïE1æj¯\034\012q\015÷îÀø§UA@²\010D³ÀQäyÆ\020\034\002\014ðu_æ2@©¹Át%QVž\
\004 ¯2ZéJE¸\006N\023ãµàET\013A.\027²lbFõó.ðW!ªL\034ÂC-\002&\006\025ÿAUY*'\015\
\015Òe&Àé\002èb\006¾_¿Uqø\006´TóPD̽%`ö\025\000Ôî¢PÏoð\003ëNÿ\016V\010Ì2´1 ó¥¼\
\005ì0F.K\"\002£;$\020¯À3\037-\033iP¢TX _¦ªÁ¸\005R°\020\020Qh°-å|@* \016§\024ï×å\002l
Æ\
\015Àj\017ÏGYK<WÔ<¡Mªá-Íb\037AÜ,³×¥\010Sx8Ia\"\014]@\004JÐ\000u\034¸ÁDá¢äÁ·\
x\010X\035\"Z\004ÅJc\023ÉçºË,&^-Ò\025#°Jó[\012C`º\012£rÞç*\0274\036®µ¹\005\020ø\006\011Ïë[l\
\027Σ$«JÒÓú\011OëLA,\011í*IJ·g`a/¼£±7b
¯\005J\000\026bVÎZÖÒ\01525Ïår)KÿS\
p´\025dÁ¸v]ô³1þgìm\006\0140Ïö9e\033¹>ÒF\037ÀáÂ#ßt9ö&ðï|w@\031 at aòÒ!j·ah\
Ä
H3ì{ÚFy\003áå¥w\000þVû\007»\001\012Ó\000àÔÓ\017Ñt\005Uù>ÂÜ\021J|!¬a½ªz½'ãò¬ÕíÊ\
>´þ#t\002ç£h²3=\016\016C\002\006\004z\013ÌUèýÑc\020hÑ3\002ñj:2\037S\022emkP
ÈnU\021\021VÆ[\006=\
gAÖ\"ñÙ\025 ÁÃq3\0111¦u&\022m)FGÉ\034!º æ\003æ\014\037ï\022øÚ\023°Y.E\021ä²\004ë\0321R`ç\
'a×\035¢Í\0108µ\001\005Ð,\005.hºÖ\026\036î\002`
üÊ¡\010A85Â\"
+\026JÚØÁ= 5eO(?Hæ\025\022\015\
&T\017¬s¢Vµéo1è\034\006ûãB\031\\\013èXÁ®
źi#_¨\030\">ÀÞ¦ãßk6Á\023) \026\022\037ò>R\
hð\020äFf&JqãKoBáXø\002\015¨EÆýôMO\013\017g\034:s³\020_\004*a`io\015SOÎ!Ú5Àà¦×\032\
®/û¨(8ñ
\014q\033M,È®!(\014Ài\003ô#XùKÕGá§0\024\0229¿\005\036£]Ó <vâNV4\010j\015,ÃÛ¢\
eUpx«Ç=\031ûà¢0¦Ï&Æ£JD²þ¦\011\006ì[\021b\003©z\000ùpô~Âá8üÛ´(û½Âo /\026\014èx\001\
±kF¹7\022¨£¿z\010èmóéZP9·»çØ''½\021**»¼KÁ
U\026ç£\030A\007AC\013\010ü~Q\005\001«¢\011Kl\
Áf£\0162{´âð\003e\031¥Ói>jFç[ä\033\011%#«Å2ncx¼¿Vº·\013´n¡Ñª£ô+¸ºAÈ?\
C¬E®x²\035D\0341i\010øñq-à'Ç»\0128aïó xLó|2ÀA\036\012LÖ¢ÈT\020Í¢GÞÉ(&þÏR\035\
{khÃ\036,¼j ¦¥ÀA\005r×E.F#]äÁ¦Õ<W\0305m¡îõbÃ)d\020\033ë8q\015±þ\035\002A\034¨5ÀB\
M²NNÐU]å°\030\013\014ÖA·0>FH\001\030b0\003P½ Û|\012ÿAR\032S\002\023á@>\002ÞðQ&\001Ú\037ÓR\
ÕÙØR-§X(!#\001Úcj|ÐO¥1$\034\012¡A ¦+°A¿Uª@6\024ÚnD9xl\005!\007\030\0076\031\016î4\004\010\002Ü\
ë¡b\0069ÏB²£\022˼«\005:h´+Y¦$f¬¯g\026\0208A^\0024\004*ÇàÑÂ[mf°%xËoØÇt\012\022\006ñ\
\001f9P>\003ó4]Âü\034\020\000\027î\"IÜ9\\Gð°{:\032\025 ¥s5LT9ÂÜøVå£ÿÀ@=»\001©yvôíøØ\
s¥\036Gü#\004=MÑк(Õ\022+\022\003\\é\002R=ä[aâ\003P\014Àê×L¤ \007\026g\000&,,\003\022\034\000ú§U±\026<\036\
Öz
$Óà \000»(¯ÐX at 3\010B\023ú\000\021\034 at LÓ9<¦\0204LQU¬±\025#×Mé,Íð?J°d̶\037\017a\
bgâÁÛ\004ä\030\021&?BÇTø¯¨æsÄÑÈ9\013Ä,º'Ë\013\025«%f÷×)\007ÌÃaT®ì¢[X´ø6Cwp\0328\
µ\020Ô\033»¦µjO\002ÈbJG\017õlÌ\015\\'R#nh5=X¤iAªPßìú\020;ÁpX`UaÄ\012.O\0114hpq\007\
ÿ\014l0Às¨ßþ;´ «¨P¬Mà¿!\036,hEâè\026\003_.9xz²\022|\026 !Ã!¤k¬¨u²¶Äõ ?¥æ\
¾<Ø\0017oî\034ï*ðv±§-wÃåYoò~÷8}ßâé¤é\021}~¢ãOZAFr`5Ø4HgÁp\
ß±«ÈKâ\016-Í*¯SíÒÁ×`ñª\020~E«àcEB\\Õ0¤:Ñ+C¨Àq\006\012HEï °B\031Î\012\027q\016*E\031\
\014yJLOx=ã\030\000¥X=á\002\002£\015Ö J\036\032Ôt\010E\030C¶§wJ\027Öø\034À¢b\033´»\006Aàt\022q<¶\032\006\
]aa\012\037eò\013¥p:2\000\010D¾H\023òµ CU\\êTA\010æu5
¤ú\021d\004a%ó\011Ø.P\033\011ùKfk,2Óe\022\
\031\037%£àLÈ\011U¤,é-\032Q\027§\030Z*SI(\023\012rT\\\"6\006àMÒØý=LCñ3\\0Ö%¯ÐÞý/8\
y#ñ¯i¡\023Z H\000ÃXéÕub\034u5kV \032C\016ÉI¨QµkûÈ\017£pì¡ÌY*Ý\005É|´O»z7\
\0127\017×7¡\\\027\007,Ã/FÊ\014§\000x\015Fxª\024Úz\022\012\025\016\005x\014^?=%!`Ü¿!ݱA\021Z\005\\8½\030aT\0042\017ëÅÙ\
\017S\024h@`í\017IÓÀ\017\006îH5S¹3\016¬Èª¥µ5T`52&g\037`@c\020û í\026«Ç¡a!\026þÀ¨Í¡\
\002°õ\023\007¼Ü¡®U\"\024 \031`æ@8ØjÆ\007Q\036àF1ñ\021¾C\004§Y\036a¡\016ðj7Ï\0053\020ë$Öô\
ÖËËõBRAS\006ìGLäåÎÏ3\023t¡Cþ¦\032ý¬c:Ñ2\011;F\035\\Ô\005{!\005#U\037s\007\037Íöt\035ãf\
´»Wû'Ä|É\001U\010quAùXâ\022KmCÈ\030tì°ó\000Ùo±¯§ãâ®\\ÑU\012ìô`\037KVÈ\0340¡\\âÀh\
Ö\023pq\017-\007\007!\030ÂÓ\\MYRVZ\037ÊRc\002/¯WyÐ䱦Àð+mÌÓd÷;°ÑµO\005\005)t8ÄX4\037\\\
-ív£if\021@Ó\037\025\031þC+\016\003g©ÏÕrrò}>O¸<%æ`\032ÖÐ Fcè:%¶é\024V\031nð¨,ö©\
d\035 $Fòóx£IY;n76\016+Æ|¸y\025«>ÃȤU\034B8\"õ\026Y3Í Ês4»Vç\021\031±\037Í\
\014îáæ\013<\023\003'n«\0212é¥1@È&Wþ@H\000\000'kñp\005CôQ½7 \003\014Á³é*ºÜä\031¿#\
L Ư*\012]¨\035\012\026Ié\007Ø\0242*V\011ô¼\010\004\0278½
¸Æ Þäx-Öûxu\005AÉ\\\025Ëâ\003{ª\025r{\013\
°\006á2È\032û¹JTÁúö\015,eqE¡F=Æl½èu^8 ¹~
d§4Þ³1JKÇAËï§5ÍäúØæ\
`#Ç\012÷|a*PL,=\016j)\\ɲ'ä>l{Â\021M^ÐÿáïµqÎ*`\000f(\020RàßK¹&ê\001\026ÀÅ[?¢\
m2µö\025FýÊ4sÕl! Þ\012Ü+¹_ÔIàÉí3\026
É9ÑÐqTªÉ¦\035\017&\034ZA\035g\005®½%\0044\
²*S»\017«Ï¾è·¦\005½ù\031¥¹a¨Ý3GÛà|P[\027>Ó¢yH\002¹a|'\004ÇÊf\001ê\003¿\000((¶Gá\
zH;0¼U*+8E$tB¸'\032Ãä¦{¥BBî\006° \012?°\013ÓõMÈ\013\007ÆëÑzhæ\025\030>\033Ä7Á&ã!3\003\
ùªÐDXèÉf2oþ%\033¾x]˵$\030TX at Aò·£\011\000ÆB\003x\020\033ÎA\006\030îaá\006Ý£.×\025æÙ3\
0O(\033sY¬\002²S®3\003hi \037\000ÑÐæ¼<\023De0d¥õ;Ê\035ï$ ²8xÈýGà\022Y\037X1ÜU7\
¶ðñoUZ\031{Üã+èaÓë\0305M\023,NÀ2hè\004Þ\020ÿ\007ÆTS¤ÍÍ\007Æe\022X@^pF\037\016·)\0036Ü@\
x¿ö¨Md».¸#öêÍwÓhÞøÁÜQM·«¦Îæ8[¿àüFGà´0Þ7(P\\ÜÄ\027ætƸ\
0\005Ç\026dØ\034\021Á`,Æú\027©\0348µY4¯r.64\026^×;HëeÀÆDò%R,q\036½îô^ì¿«JÌ}Å«{¤\011\\\
\032n¸\021æºÖab/ZÅ·>«#%\001ÐÜÆ\005ÒÌêBÁ=O\02191¹I\017LzBÆPKcGa0Ëß\013,+þllé>j\
\025\010\023;\001\0216Z\\Q©L·Q¤}tÒ\027\024¢¢]aîZ»,{ãc¦ï\000\020¸Éè7
b]g`XÁÅ:.o\
³Ð8ÿ.9|\000Ò_qîUÓUë¢vGD(,\036±¨éç\022R\034§tù3ân4Ê¡!?Âa\027ã\031ÆXÀÊÄ\
pu\002ËÀÔ\"1z\"Ó« ¦\033J$d&±5§/\013Ð2»Âô\0027¤#\014Ì«²ÇKàѪ]KÇLá@Vq\020¼l\
éݺ\025Æ0ç>\001h\000ôßÊ× ø\021DDk\\ 4\004ff¢³Â\005L\005ÙàÒjÒmËÎk¬k`x©}\021wÑp¼]W\
)\025\027x(\001\012ïp\007\000\021\"~üX\015¹ K°2!ðätr5dzP¬×JuóÜ6\034Ú{¨wxj\001ä\005Å\012\011\
£©'Q^E\\½ÚäNÑôF6väÔÃðËX\001J2ð\002qT´KX¡\"·^Ç\003µ!m
Ó¦×d\022Nܪ\
)uÒÓ±\026¤V\006(n\027éòv\014[xýRìså<²þÓt°v8á)\027μí\004W¼\023bô«½Ñ²\004Ô\011\
{\033\033DXð¬g§ZâÆzýö嬤ÊÓæ×A-eIJ\003È=É Y¶]ôCeççHÆ!ØX
@\007maúu¡\
¾±¯ëÔ÷M#\016äú\\\007¸ðxËÇìí-U¹HaÌ__];7çß\034\036·\\Ýçö\025äÊ\012s at LÓÙ\014;Y¦X\005Æâ\
ÚÀ.í\022\0348ö¶×»\000X/O[[²ÔØÝ§\027\036 \022¯\017ËÔ4öm3O)\017jò¿Dj\016\031ð0ù§Ä<Ý\
Ø}üìimråÔû\013ïçnÙtf\006AÏD_\002µPT³`°Y\036¥9\0307oÒiû>O3²ºz*ná÷ ªÄßç#\
¾»uXÏ©³ö'úÝ?\0141©¾zxènî~æîþçíðO>b\015\010ÃG£MýÍàxCù\007ЮS\036³á¾Uu[\
Àx)PKo ¹ÌÝuFpn|
|\033ð4~dCùùd2iÚÎ\032ÂiÂìeMÖ{Þ>Ô\021õôÚ`óSñÞW\004\
{½\\â&\006îgþÚ¦øÉÓq⯡XËÂçP\011V\034â\\f Zu%\005³¾Úä1éúË\015µ982[0ã\036\
Á-Ä=ñ\030=ã\027Sù¼,±vý&Sxø¥bc\015@¶¨ÑÿÖ1a[\027É\010\013ZÿtåmB°Ñ·£ÙG[T\
·>\015ÐæÞ\003dð\024\02634\014Þ\026äÜF'ì\016Í»:FN\006æ=6sD*ݺÆï>¯CúëZ;óÝ\034ï\036¤¾\
\023\014×á@Âîø¢±åý¦\032VR-1¬\001hcÝÐu>N\004î\003\015\036\034uÕ\035´Ø6æ'ª´FqydX7Q«\
CZÊØ\011¿8TlÒx¶æ@¼ð\033C®º#\026í\001MDl9\\\027âÞ¦¹¬\014ÃæñÆ\025»Ï\017®{˵\035x¦î\
}Ýäáþl\016qÛÏ)ì9 .\035<Ô(i\007áI2Ô'KòÃ\033<¿S?ÕůûÓDã\006î°¡r»@ä\026\035Û\
¼¡\022¥CÓîc;D¿î1a{A6´\031óRwô«¥×jg3ÆèÄ\007Ñ d¹HË\004}â«§¦Õ$JÀïA\
|Êm:>ï\033î\007Õ·M¤Ô\005\003{¤Aá\036´.ѹ½Ò¤è\\9¡®Î\006¤\004;N\013ðµ.G¦ýì06pÁã\
åÚ¶pû41¦¾¥ysÝH¶\012}â\010+XEwë7ÂCU0¦F®¸\030åV!\024îZãv\012\025R§ë`Ïmú©w²|FË\
7/æqÚ´2¥{]¼ßxdT_¿6ß&>\0323EJ¬)c^ØL'\033´¦XYj±³PºÞåî¬ë\022Ú¬Õ¯\
00§«Ļ:\030vÛÄé\012 ù/±ÏÀ\027Ô^P¸k@#Q@\007ºÉ¤è0\015õ\031زRÝÝLcô£\030\011\015¿ÁÒÂO\
\\{OÓ®?\022R7çÓ`³d\032\012M²n¢§=³òV¶Æ×/ðeò>ƶG²µóÆ\033c:MÔ§qëNçß\
\010IWb°¥¨àV$nZ(l9c{>ùÌÙ¸8p\025¸¯CòúòÖvÝ`üE\024\012B1;ja6\0379\
²ñÇM`|\002\012ÉÃùSßhZt\002·\032AùÞ¢8¥1?G`fþyê ÿVÛï9ÿ4jv\0372\020\017Q\
Ø\001#çx«\033\033±Þ\0057ô¶Ì¯·ý¾z6ä÷N\004Óîêç\021»É¶ZÅ;}ü&¼ý±±bA\036e\036t(£¿\
Ë;ÉWýÉhtþÍ//_?ÿ
O\011U\011«i°qÜÇô^2X\\§|¤ìwH4ÃF¨ ÂòÌKº\037æa\
¬9ä\013q|`Gþ¾×<Ã\016\032uÑ\032øËѯgí§Ä~\004ÏÏD$Îi\016\027þüçÆÓ¿w\0266Ïñ\0344À±\
¿D¿\016qitcß?õ\017º\007ìD;ÐÐrq!NR{\003pÅ´òøq¯X\031õ±¶\013ËÔa¾IW*¿\004\007¸pÐ\
\031üûàÈú5ÉóJuñÿç^ÿ7þÄ?G£_µç?H4v2uïß}¼ö'\004É7Õ\037Î\001Ý÷1ìhlÅçû\
XM£î=\\\000\001ܤ/W
À¦n\014\032p·÷¹\006&upPtê\0106»m¼\031-\003¹jÅï¤\035º\013×\031AzÏ\
\010ηçPÖlŧ\0111²]Àk:i9Ü{³p¹½ðIªÿ@/{ay¸:\037ô\027½\024r²\005¥<NRª\
Þ\021E°½9W·ÓÚù(\011þ\000¢$i@ѽº¥\012\"ÆÑ\027\001£@qç\002¸ÀÐ^ç\002Á° ðÆhG\
\012¦M\007ê\032D\000Aü\037²þ\004\026ÿ#~ÚaåÝ
J4n}AHWõ±!ó~\020\037Xñ\026¢\012õî\016+1´[KÏüHN\
Û}Cæé©Íªì¨!y}Lj\031¿¡9/z¸ezæôH_\021ß\032\035tÌ\033ÔÿC\024,\"%®\"ê¯Æ\003Ì9]ù\
ÓÃÇ{\014ASº\013ïb\015*¼rð5¹yc×kÐè=RT(g!°Ç\013z(Q§NÞI/\037]\027y\032ÜBöüÝá\
ÁW[3Mµe \015²\034£#ñQeâx<>\021GßONº§ït]
k~û´^'\036Ïe\030¥&84Í\003§äsþëÕ\
Ͻ±!â¦[ÉM%Ó×ßm\\ØýùÇ£æÊ«\003UúþïD\000ësn¤\014ßÿÓSAÑ\036¿û£Él\035½¶ã\
ñ£î\010í«<þíM´®\030$¾ØïÜ JæÿÚ¯áá®Óî\020ÓX+7Âhã6Éí\007]w-_;¨p°\003 í\
JÕ, vµwéJ^+þÖ»X=e¯vndÏ7o)\011UYʰó#\023øgbb+ièX(H¨¦e\025\021\
5$l\016±\033F[|ÝYÄëÆ\011Çãä7Ø\024æM\006ns&
÷ö:<ÄËüY3\020xW³ÿéhÂ*ÌjÆNÏs·\
_ÊH§Îiq»«Æó\033ãm2ÿ·|.||\033³\033æ®ßÄÁ\013~ÃzÙ'\003ÔÎÑ\001Ó\003æo\004·øLhW\017\001«\025\
w;DÓe¡i\0114ÅÃ},¡êõ&ÁãËp¨\034sÜi'ZL=÷)Õ}éuý<JÜÒaý&\002+ìÔ\016Ý÷\033\035\
ìT\012Å'ê¯ÒÍH®äÛ{µðã%j|Ò|ðì
ÆéÿVÂ
fAom<}ú¨±\013b¹<Ã\\ø\\¯SËðy#Ó?\
\0317\014Bs¯§Ï°ïoúªÍZ\026«¦í«¹¡ÐkËÈöÊ\"\012\014\035Ä\033ÄÄoú/Ãä\017¾ØÛPR\"x\030òR\
í\024<¹©XÆ\017òþÆ@¬ëNæïuZN\014i\004û&S\025{\027øEhQè\011$7\031pZ;ÝéÖG·¦Ã<ÒdDê\
ϧó\001úÌÄOúû\027R«¹ºDºÿï¤&4Ä}Ð\015¯lá\027\011Þ\033Ã@\026¦Àw.Yj\033×f\022fð\
WþFA\006ï×tI`-lGT-4a\006Ú[y\037-«¥9Û\013±&Õ\001`Hu.YRÆ\015\033Ô-3MzâV}ö\036\"\
Çdú\023ã¾\007í9¶\005¾uÛù&ݹíí°£±Ñë}ðÖ{Uñ\015*lç½£§c×bN'\037¹Ñ3Jh³}ºÅzk\
¹\013ù/QèµE¬kB{7Æ\033&Îm\030í$±ÐQ~³Kj³Èo6@¶·óÜnµÑq¬k5ÅÍÿÖî^\023Ï\
À[zì{Ow½aÞ:}¼[Û+ºbÕVÓVu×.H~Ejqè+,Ñç[¡ãq_$ô¤?\020j°µwV´\004M\
\027ããf¼õ@ÅjÞ\023P=lÔv\011SñÀ]Ñ·_oojó£=Rù
ÝJnõ\014á½ °\035öèøÄi\035rj\
HÍ\026\026ΧÏúá¼§wæÐÁ\005Ý_Þ>\016k{@ø8EA¨ë,¯56`zñðÛï¾ï®ûÖ`3LH]>9M\
ntïÚíxÐ%\000ºqÕ.\020×\001½\007\001½71g9?¥Î+\023º¥\001ë\033\036u*\006Âô1¯qõµ \005ë\001ÔP_Y\
¹ºSWâô^Ò0¥æª-%\024\032c¥ÕgiÝaÈÂxròlçIP¸ü\011ËÖVåݶbÙ\017Æ\024vU¸õHÝvC½\
'Y½\032§z{Ìs®¡.\020S¦ºe̤Dó\033Öwð1ÂSä}Ðìs7IµdxOY©e\016Ê*ê:Ò»
0Íg\
¥Âã¼ø§ú%\003ó\024|\011\007¥¢÷$é\027\025\036¶[ìí\034®Z¶ûp髾ý]*¾ó\026ì\012ëëtÒÝ&Ø \
%\017Bk(Í\037\005ô^Ì\005Ì¢·ì\016µ1_Ò7¸ÙAÜa-\025?{g3x\017 ÿJ¿ª\017m»-ÍÝzsGãÛÃ\
©ÿµ=îhË\030.¾µ\006\035ocQ¯\005ÐÊúAU^¿!¬õöx>%Éz.dB½_§½ÅÏ<çG<®\022®\031:è\
{ÕüVDí¦?\000 ^[dïzí\030gL7>yÜOf\030¾sPX\013öêú\023oº¯\030ÔïGxÞ¸0¯ ÑïÕ\
¡\0269Ú}4/[Ç×@ñzéÜzÑÐë\015ÛÚrçEtºhü3^uaÑË%ì)d7ÆÐ\035\021Å{Y.\022j?\030é\027'\
2}©\021v<ÈÂKû2zâúù7¯GúÛê»mô×\037ÜA\020b\036¹\001ÉõK-É\036éç¶\016l(\037è@ý\015þ2\017\
¡óÂÎëI¶\036â\026ÇÏt:÷\033G2/o Ü»Yʬy¡5î\0013Xã ÞHÙÜ/¶i|Ï»}í[N\
ÛÌÉ&ûtø:éZr\027Wøô¡o
.§±>\033:ä¿~±LÍù\010\0138»Íg:xáz§»â&³tÖú¾ê#\
+w¼¾Ãêwé
±&¤ÝyáRÞ·KZ÷Püÿ\023'\020¦ã09Ë©Q!¹j-®~! \026v2PlÝÊ?z:nÁ\
Ð\014©m\033ÃÔ=\036û´È\007Ö n#EÛ®\0159ÿ\022¼ÝdxÈ\0214\0063Þj=ô1UÜÛQ\030ÖêD·ù\
oÜl0\031î#?Ðgáø®ö\020\"»èÏCò4\036ÿ8\025\030³lE6üz\012ÖÌp§¨Ã2vcÎ5\017Ò1ã\026¤3\
uòNy¶f` öì`Ú\000\010_+õ2¼PG@új¨f«X0èa¤õèíè~à\007ñt\002ÏÓA}\003æ\006O³ÇlªÑÌ\
Ò¢ôÌnß\015dx\020íÞ\023Ï5tÑ8ÍÄpéO$}.ºê>Sy»D2Þ2<õÅ(¿rfø2´?'ì.\026U\031¦«¤\
»?Á\007Z÷¹P_£PSü5MÃéÚüY\034ÍðÜs¶9Ò\024OÚ\035\016|\003k§YçÙÆðÇzú\033»\036}â\
«å¶U^Pdÿ7þ °YÈ\030Ùæ{ ¹ÕÇgT1Gò\033YÓÆ?Ü%'éýÕ%Déx¸1\001\025\011ÄÉX\034=9\035?9=\
9ÆF¸cưs*Ò×/\011\\VC[\032¦ù|ÄhØïÆ£\016GÌA<>â\013¶Ñë9FÔ³¯êi4üWí·þ@\
P&ø7ÔÐðî¹
Mä¶E+¥ á÷¶\024Á©¦\007é\023#f#']u6\016MÉ\034_©ò\030îL±¾yÍ>ç\
ÞÎË¥µ±\000uHÃ5ýa:ú[{ÿ\013+ã\021Ê")
### end
--- NEW FILE: ui_psp.py ---
# -*- coding: ISO-8859-1 -*-
"""Resource ui_psp (from file ui.psp)"""
# written by resourcepackage: (1, 0, 0)
source = 'ui.psp'
package = 'spambayes.resources'
data = "Paint Shop Pro Image File\012\032\000\000\000\000\000\005\000\000\000~BK\000\000\000.\000\000\000.\000\000\000Â\001\000\000F\000\000\000j\
¼tX<@\002\002\000\030\000\001\000\000\000\000\001\000`ã\002\000\001\000\000\000\002\000\003\000\000%~BK\000\012\000\030\000\000\000~FL\000\001\000\016\000\000\000ÀÀÀ\000\012\000\000\000\
\012\000\000\000\000\000~BK\000\001\0008\000\000\000~FL\000\001\000\004\000\000\000ÔÃ'>~FL\000\002\000\004\000\000\000\021ñ}?~FL\000\006\000\004\000\000\000\001\000\000\000~F\
L\000\007\000\004\000\000\000\004\004\000\007~BK\000\020\000g\035\000\000\010\000\000\000\002\000\000\000~BK\000\021\000\030\000\000\000\030\000\000\000È\000\000\000\037\000\000\000\030\000\003\000\001\000\000\000\
\000\001\001\000~BK\000\021\000\030\000\000\000\030\000\000\000Â\001\000\000F\000\000\000\030\000\003\000\001\000\000\000\000\001\000\000~BK\000\022\000û\012\000\000\016\000\000\000í\012\000\000ÐH\000\000\
\005\000ÿØÿà\000\020JFIF\000\001\001\000\001,\001,\000\000ÿÛ\000C\000\002\001\001\001\001\001\002\001\001\001\002\002\002\002\002\004\003\002\002\002\002\005\004\004\003\004\006\005\006\006\006\005\006\
\006\006\007\011\010\006\007\011\007\006\006\010\013\010\011\012\012\012\012\012\006\010\013\014\013\012\014\011\012\012\012ÿÛ\000C\001\002\002\002\002\002\002\005\003\003\005\012\007\006\007\012\012\012\012\012\012\012\012\012\012\
\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012\012ÿÀ\000\021\010\000\037\000È\003\001\"\