Newsgroups: bit.listserv.i-amiga
Date:         Mon, 27 Jul 1992 09:34:12 UT
From:         "Terry Jeffery International Product Support Group"
              <TGJ@UKHOUO.PRIME.COM>
Subject:      Startup repost pt 2
X-To:         i-amiga@ubvm.cc.buffalo.edu

=============================================================================
                               APPENDIX A
=============================================================================

                     AMIGA SOFTWARE SOURCES (Jun 15, 1991)

The following is a list of mail-servers, BBS services, and anonymous Internet
FTP sites which provide a large selection of Amiga software.

Some of these sites provide a BBS service. To use the BBS facility use
'telnet' instead of 'ftp'.

=============================== FTP/BBS SITES ================================

Here are some of the more popular FTP sites that are used by the Amiga
community. these are in simple alpha order, not by their popularity.

To the regular readers, you will notice I have changed the format of this
section. I have removed all directory and time-zone info. This allows me to do
an ARCHIE search just before publication in order that I can keep this list as
up to date as possible with the least keystrokes. I have noticed that some of
the more popular machines are missing! Here again is another example of the
use of ARCHIE.

Name                           IP-Address
------------------------------------------------------------------------------

a.cs.uiuc.edu                          (128.174.252.1)
akiu.gw.tohoku.ac.jp                   (130.34.8.9)
alfred.ccs.carleton.ca                 (134.117.1.1)
alice.fmi.uni-passau.de                (132.231.1.180)
amiga.physik.unizh.ch                  (130.60.80.80)
athene.uni-paderborn.de                (131.234.2.32)
aupair.cs.athabascau.ca                (131.232.10.8)
avahi.inria.fr                         (138.96.24.30)
cameron.egr.duke.edu                   (128.109.156.10)
ccvr1.cc.ncsu.edu                      (128.109.212.20)
cert.sei.cmu.edu                       (192.88.209.5)
chook.cs.adelaide.edu.au               (129.127.8.8)
cnam.cnam.fr                           (192.33.159.6)
cobalt.cco.caltech.edu                 (131.215.48.200)
colonsay.dcs.ed.ac.uk                  (129.215.160.5)
cs.dal.ca                              (129.173.4.5)
cs.uwp.edu                             (131.210.1.4)
csc2.anu.edu.au                        (150.203.2.2)
csuvax1.csu.murdoch.edu.au             (134.115.4.1)
dimacs.rutgers.edu                     (128.6.75.16)
emx.utexas.edu                         (128.83.1.33)
f.ms.uky.edu                           (128.163.128.6)
faramir.informatik.uni-oldenburg.de    (134.106.1.9)
faui43.informatik.uni-erlangen.de      (131.188.1.43)
forwiss.uni-passau.de                  (132.231.1.10)
ftp.uni-kl.de                          (131.246.9.95)
ftp.uu.net                             (137.39.1.9)
gem.stack.urc.tue.nl                   (131.155.2.59)
geocub.greco-prog.fr                   (192.33.148.2)
hemul.nada.kth.se                      (130.237.225.20)
hilbert.math.ksu.edu                   (129.130.6.1)
hpcsos.col.hp.com                      (15.255.240.16)
hubcap.clemson.edu                     (130.127.8.1)
iceberg.cs.wwu.edu                     (140.160.140.160)
ifi.informatik.uni-stuttgart.de        (129.69.211.1)
iraun1.ira.uka.de                      (129.13.10.90)
iskut.ucs.ubc.ca                       (137.82.27.61)
j.cc.purdue.edu                        (128.210.9.2)
jyu.fi                                 (130.234.0.6)
kalikka.jyu.fi                         (130.234.0.2)
krynn.efd.lth.se                       (130.235.48.11)
kukulcan.berkeley.edu                  (128.32.131.190)
linc.cis.upenn.edu                     (130.91.6.8)
louie.udel.edu                         (128.175.1.3)
lysator.liu.se                         (130.236.254.1)
mcshh.hanse.de                         (192.76.134.1)
mcsun.eu.net                           (192.16.202.1)
milton.u.washington.edu                (128.95.136.1)
mirek.ai.polymtl.ca                    (132.207.24.8)
mother.ludd.luth.se                    (130.240.16.3)
mrcnext.cso.uiuc.edu                   (128.174.201.12)
net-1.iastate.edu                      (129.186.150.150)
nic.funet.fi                           (128.214.6.100)
nic.stolaf.edu                         (130.71.128.8)
nic.switch.ch                          (130.59.1.40)
oes.orst.edu                           (128.193.124.2)
optima.cs.arizona.edu                  (192.12.69.5)
pascal.math.fu-berlin.de               (130.133.4.50)
pc.usl.edu                             (130.70.40.3)
phoenix.oulu.fi                        (130.231.240.17)
physics.su.oz.au                       (129.78.129.1)
piggy.cogsci.indiana.edu               (129.79.238.6)
plains.nodak.edu                       (134.129.111.64)
plaza.aarnet.edu.au                    (139.130.4.6)
ren.css.itd.umich.edu                  (141.211.182.11)
reseq.regent.e-technik.tu-muenchen.de  (129.187.230.225)
rigel.acs.oakland.edu                  (141.210.10.117)
rs3.hrz.th-darmstadt.de                (130.83.55.75)
sabrina.dei.unipd.it                   (147.162.2.106)
sachiko.acc.stolaf.edu                 (130.71.192.17)
samba.acs.unc.edu                      (128.109.157.30)
sirius.ucs.adelaide.edu.au             (129.127.40.3)
solaria.cc.gatech.edu                  (130.207.3.245)
srawgw.sra.co.jp                       (133.137.4.3)
src.doc.ic.ac.uk                       (146.169.2.1)
sun.soe.clarkson.edu                   (128.153.12.3)
sunic.sunet.se                         (192.36.125.2)
switek.uni-muenster.de                 (128.176.120.210)
titania.mathematik.uni-ulm.de          (134.60.66.21)
toklab.ics.osaka-u.ac.jp               (133.1.12.30)
tolsun.oulu.fi                         (130.231.96.16)
trantor.harris-atd.com                 (26.13.0.98)
tybalt.caltech.edu                     (131.215.139.100)
ucsd.edu                               (128.54.16.1)
uhunix2.uhcc.hawaii.edu                (128.171.44.7)
umnstat.stat.umn.edu                   (128.101.51.1)
van-bc.wimsey.bc.ca                    (192.48.234.1)
walhalla.germany.eu.net                (192.76.144.129)
watserv1.waterloo.edu                  (129.97.129.140)
wolfen.cc.uow.edu.au                   (130.130.68.4)
wowbagger.pc-labor.uni-bremen.de       (134.102.228.9)
wpi.wpi.edu                            (130.215.24.1)
wuarchive.wustl.edu                    (128.252.135.4)
xanth.cs.odu.edu                       (128.82.8.1)
zaphod.ncsa.uiuc.edu                   (141.142.20.50)
zug.csmil.umich.edu                    (141.211.184.2)

On line BBS's (use TELNET not FTP)

mars.ee.msstate.edu            (0.18.64.3) /files/Amiga.*/ (login bbs for bbs)
uafcseg.uark.edu               (130.184.64.202)  /amiga/ (login 'bbs' => bbs)
=============================================================================
                               APPENDIX B
=============================================================================

                            AMIGA MAIL SERVERS

------------------------------- Server 1 -------------------------------------

Requests to: amiga-archive@ncr-sd.SanDiego.NCR.COM (Registered domain address)
             amiga-archive@ncr-sd.UUCP          (Psuedo-domain address)
             ...!ncr-sd!amiga-archive           (UUCP path)

All lines of the incoming mail message are ignored except lines that begin
with either "path" or "send". (For compatibility with other servers, "help"
and "index" are also recognized and are treated as equivalent to "send help"
and "send index".)

If a line saying "path route-from-us-to-you" is encountered, it will be used
for any subsequent mail. If the path line is missing, the system will try to
determine the reply address; it's pretty good at guessing, but it's not
perfect. Try it initially without the path line; if you don't get an answer
in a reasonable period, try again with one. We run a full domain router, so
the route-from-me-to-you should be a domain address (or a UUCP psuedo-domain
address) if you have one.

Start with "send help" for information on how to get started.

------------------------------ Server 2 --------------------------------------

        Announcing MRCserv, a mailserver based at Mount Royal College.

        All commands to the server must be in the BODY of the message.
        The subject line is ignored.

        The address of the server is MRCserv@Janus.MtRoyal.AB.CA

        Mount Royal College is in Calgary, Alberta, Canada. Our time
        zone is MST. Please try and restrict your archive access to
        non-prime hours (primetime is 07:00 - 17:00).

    Commands:
        DIR       -   list a directory (equiv. to ls -l)
        LS        -   briefly list a directory
        DIR -d    -   list subdirectories only
        LS -d     -   briefly subdirectories only
        DIR -s nn -   list files added to archinve in the last 'nn' days
                      an optional parameter of 'directory specification
                      can be added (ie dir -s 07 *.* )
        LS -s nn  -   briefly list files added in last 'nn' days
        CD        -   change working directory
        GET       -   sends you one or more files
        HELP      -   sends you this help
        EXIT      -   finishes request
        PATH      -   Path from MRCserv to you. (if your using "!" paths make
                      address ends with a .UUCP ie. foo!bar.uucp)
        PUT       -   Put a file in the archive. (must be validated first).
                   (currently not implemented)

    Wildcards and directory specifications are allowable with DIR and GET
    commands. These follow standard VMS wildcard rules.

    Subdirectories can be accessed via the CD command. For example, if
    you see a file with the extension .DIR (ie ARCHIVERS.DIR), CD to
    it by issuing the command CD [ARCHIVERS] (case insensitive, brackets are
    not required). To move to the parent directory issue the command CD [-]
 (Brackets are required) To move to the root directory issue command
    CD [000000]

    Binary files (ZOO/ARC/LZH/EXE) will be uuencoded before being sent.

    Files larger then 100 blocks will be sent in multiple parts. You
    will be informed of the number of parts in the server's response. All
    files will be sent as separate messages (except HELP).

------------------------------- Server 3 -------------------------------------

filerequest@deepthot.cary.nc.us

Subject: Deep Thought File Request Instructions

Welcome to DeepPost, the file request mail daemon at Deep Thought.
We only support a few commands at this point:

If the body of your message contains any of the following keywords,
mail will be sent back to you.

HELP - Returns this message
LIST - Lists the files available
FILE: filename - requests a file.
Each file requires its own line in the message.
=============================================================================
                               APPENDIX C
=============================================================================

                               GIF SITES (Just a few)

Taken from an ARCHIE search (this may be out of date by the time you read it)

 Node Name                              Address
---------------------------------------
ahkcus.org                             (192.55.187.25)
akiu.gw.tohoku.ac.jp                   (130.34.8.9)
alex.stacken.kth.se                    (130.237.237.3)
ames.arc.nasa.gov                      (128.102.18.3)
amiga.physik.unizh.ch                  (130.60.80.80)
apocalypse.engr.ucf.edu                (132.170.200.67)
arp.anu.edu.au                         (150.203.20.2)
athene.uni-paderborn.de                (131.234.2.32)
bikini.cis.ufl.edu                     (128.227.224.1)
bull.cs.williams.edu                   (137.165.5.2)
chsun1.spc.uchicago.edu                (128.135.46.7)
cnam.cnam.fr                           (192.33.159.6)
cobalt.cco.caltech.edu                 (131.215.48.200)
coombs.anu.edu.au                      (150.203.76.2)
cs.bu.edu                              (128.197.2.1)
cs.dal.ca                              (129.173.4.5)
cs.umn.edu                             (128.101.224.1)
dftsrv.gsfc.nasa.gov                   (128.183.10.134)
einstein.mse.lehigh.edu                (128.180.9.162)
etlport.etl.go.jp                      (192.31.197.99)
f.ms.uky.edu                           (128.163.128.6)
faramir.informatik.uni-oldenburg.de    (134.106.1.9)
faui43.informatik.uni-erlangen.de      (131.188.1.43)
ferkel.ucsb.edu                        (128.111.72.60)
garfield.catt.ncsu.edu                 (152.1.43.23)
gdr.bath.ac.uk                         (138.38.32.1)
gipsy.vmars.tuwien.ac.at               (128.130.39.16)
helium.club.cc.cmu.edu                 (128.2.55.10)
hubcap.clemson.edu                     (130.127.8.1)
ifi.informatik.uni-stuttgart.de        (129.69.211.1)
ipl.rpi.edu                            (128.113.14.50)
iskut.ucs.ubc.ca                       (137.82.27.61)
jumbo.hartford.edu                     (137.49.1.99)
jyu.fi                                 (130.234.0.6)
kalikka.jyu.fi                         (130.234.0.2)
life.slhs.udel.edu                     (128.175.41.33)
lth.se                                 (130.235.16.3)
m2xenix.psg.com                        (147.28.0.33)
mockingbird.lcs.mit.edu                (18.52.0.62)
mother.ludd.luth.se                    (130.240.16.3)
network.ucsd.edu                       (128.54.16.3)
nic.funet.fi                           (128.214.6.100)
oinker.ucsb.edu                        (128.111.72.55)
oswego.oswego.edu                      (129.3.1.1)
piggy.ucsb.edu                         (128.111.72.50)
plaza.aarnet.edu.au                    (139.130.4.6)
pollux.lu.se                           (130.235.132.89)
rainbow.cse.nau.edu                    (134.114.64.24)
rigel.acs.oakland.edu                  (141.210.10.117)
sabrina.dei.unipd.it                   (147.162.2.106)
samba.acs.unc.edu                      (128.109.157.30)
shark.mel.dit.csiro.au                 (144.110.16.11)
sics.se                                (192.16.123.90)
srawgw.sra.co.jp                       (133.137.4.3)
src.doc.ic.ac.uk                       (146.169.2.1)
sumex-aim.stanford.edu                 (36.44.0.6)
sun.soe.clarkson.edu                   (128.153.12.3)
sun0.urz.uni-heidelberg.de             (129.206.100.126)
syrinx.umd.edu                         (128.8.2.114)
tehran.stanford.edu                    (36.28.0.189)
toklab.ics.osaka-u.ac.jp               (133.1.12.30)
tybalt.caltech.edu                     (131.215.139.100)
uhunix2.uhcc.hawaii.edu                (128.171.44.7)
unixd1.cis.pitt.edu                    (130.49.253.1)
uts.mcc.ac.uk                          (130.88.200.3)
utsun.s.u-tokyo.ac.jp                  (133.11.11.11)
wiretap.spies.com                      (130.43.3.3)
wnoc-fuk.wide.ad.jp                    (133.4.14.3)
wuarchive.wustl.edu                    (128.252.135.4)

=============================================================================
                               APPENDIX D
=============================================================================

                   RS-232 A1000 pinout

Here are reproduced the pin descriptions of the RS-232 connector on the Amiga
A1000 computer, taken from the `Introduction to the Amiga' manual that was
shipped with the A1000.

For a modem cable: connecting pins 1, 2, 3 , 4, 5, 6, 7, 8, and 20 will work
perfectly (normally ?).

For a printer with serial RS232 interface: a subset of these pins, but not
necessarily on the same pins on the printer side, it depends on the printer.

WARNING: The pins with POWER on it are not the same on the 1000 compared to
the 500, 2000 and 3000. The gender of the connector is not the same, but this
is a minor annoyence, all you need is a gender changer.

WARNING: Pins 14, 21, and 23 on the serial connector of the A1000 are used to
provide external power. DO NOT CONNECT THEM in the cable if your external
device does not need them.

Asterisk (*) at the end of a signal indicates an active low.

Pin number    Amiga description    RS232 desc.        Description

 1            GND                  GND                FRAME GROUND
 2            TXD                  TXD                TRANSMIT DATA
 3            RXD                  RXD                RECEIVE DATA
 4            RTS                  RTS                REQUEST TO SEND
 5            CTS                  CTS                CLEAR TO SEND
 6            DSR                  DSR                DATA SET READY
 7            GND                  GND                SYSTEM GROUND
 8            CD                   CD                 CARRIER DETECT
14            -5V                  S.TXD              -5 Volt power (50 mA)
15            AUDO                 TXC                AUDIO OUT OF AMIGA
16            AUDI                 S.RXD              AUDIO INTO AMIGA
17            EB                   RXC                BUFFERED PORT CLOCK
18            INT2*                                   INTERRUPT LINE TO AMIGA
20            DTR                  DTR                DATA TERMINAL READY
21            +5V                  SQD                +5 Volt power (100 mA)
23            +12V                 SS                 +12 Volt (50 mA)
24            C2*                  TXC1               3.58 MHz Clock
25            RESB*                                   BUFFERED SYSTEM RESET

=============================================================================
                               APPENDIX E
=============================================================================

                       GURU ALERT NUMBERS

                           by Dave Boulton
                      Finished by Ralph Johnston

It's usually too late once you see one of these messages but some programmers
may need the assistance of these numbers to troubleshoot programs.

                      02 01 0009 . 00009310
                       |  |   |         |
    Subsystem Number---+  |   |         |
    General Error Code----+   |         |
    Specific Error Code-------+         |
    Task Address------------------------+

An alert number is divided into several parts. The section to the right of the
decimal point is simply the address in RAM of the task that was running when
the error occurred.

The left hand portion of the alert number is an encoded error number. There
are several fields with different meanings:

The first two digits tell which module of the operating system reported the
error (this is technically known as the 'alert object' or a Subsystem ID). In
the example above the alert object is 02, which tells me that the error was
reported by the Graphics library.

The first digit can be encoded in a funny way. The 'most significant bit' of
this digit says whether or not this alert is a 'dead-end'; that is, does the
system have a chance of recovering from the error or not. If the alert object
had been given as 82 instead of 02, then the alert would be a 'dead-end'.

In practice, this is a pretty narrow distinction. By the time you have gotten
to the Alert Box the system is in such dire straits that the only choices left
are to reboot, or to enter the system debugger. The 'dead-end' bit could
possibly cause some confusion if you aren't used to dealing in hexadecimal. If
the first digit of the alert object is ever greater than 7 (hexadecimal) then
subtract 8 from it. Thus if the first two digits were B1, then the alert is a
dead-end error reported by the Workbench (Subsystem ID code 31). (B minus 8
equals 3, for those of you without the required 16 fingers!)

The Subsystem ID codes are as follows:

Exec Library        01     Console Device      11
Graphics Library    02     GamePort Device     12
Layers Library      03     Keyboard Device     13
Intuition Library   04     TrackDisk Device    14
Math Library        05     Timer Device        15
CList Library       06     CIA Resource        20
DOS Library         07     Disk Resource       21
RAM Library         08     Misc Resource       22
Icon Library        09     BootStrap           30
Audio Device        10     Workbench           31

The next two digits specify the general type of error which has occurred. For
many specialized types of errors this field is 00, instead of one of the
general error codes below. This field is often very useful, since the user can
easily tell such things as out-of-memory conditions, and missing libraries or
device drivers. In the example given above the general error code is 01, which
means the the Graphics Library was not able to find enough free memory to
allocate for some reason.

The general error codes are:

Insufficient memory   01    OpenDevice error    04
MakeLibrary error     02    OpenResource error  05
OpenLibrary error     03    I/O error           06

The last four digits of the alert number give specific information about
exactly what error has occurred. The interpretation of the specific error code
depends on which subsystem we are talking about. Each subsystem reuses the
same values for the specific error code with different meanings. In our
example the specific error code is 0009. Since we are talking about an error
in the graphics library, we determine that the error is called 'TextTmpRas'
which means that a call to the Text() routine (trying to draw characters on
the screen) ran out of memory when it tried to allocate memory for a TmpRas
(temporary raster work area) data structure.

If the error had been in a different subsystem (say the Intuition library)
then the same error code of 0009 would have had a completely different
interpretation (for Intuition it would mean that the Screen Type parameter to
an OpenScreen call was not a valid type).

There is one special case in dealing with Guru Meditation Numbers. Everything
that we have discussed so far has to do with alerts that are detected and
generated by the Amiga ROM Kernel. There is another case, which is when an
alert is caused by a 68000 processor exception (or 'trap'). Whenever a CPU
trap occurs (for instance, an illegal opcode is executed) the Exec will
generally cause an alert. A program can intercept this trap processing, and
insert its own 'trap handler' to perform some other function, but usually
these traps end up causing an alert. When this happens, the left hand part of
the guru number will be a small value. The subsystem ID and the general error
code will both be zero. The specific error code will be the 'trap number' of
the trap that occurred. The trap numbers are part of the 68000 chip, and are
not assigned by the ROM kernel like other error codes are.

The following is a list of all the possible CPU traps. A few of these will
never show up as an alert because they are always handled by the ROM Kernel.

Bus Error              02      Priviledge Violation   08
Address Error          03      Instruction Trace      09
Illegal Instruction    04      Line A Emulation       0A
Divide by Zero         05      Line F Emulation       0B

CHK instruction        06      TRAP 0 ... 15          20 ... 2F
TRAPV (Overflow)       07

The following is a list of the specific error codes and a short comment about
their meaning. The descriptions are a slightly edited version of the
exec/alerts file, so they are very cryptic.

ExecLib        01000000
ExcptVect      81000001    CPU trap vector checksum
BaseChkSum     81000002    ExecBase checksum error
LibChkSum      81000003    library checksum failure
LibMem         81000004    no memory to make library
MemCorrupt     81000005    corrupted free memory list
IntrMem        81000006    no memory for interrupt servers
InitAPtr       81000007    InitStruct() of an APTR source
GraphicsLib    02000000
CopDisplay     82010001    copper display list, no memory
CopInstr       82010002    copper instruction list, no mem.
CopListOver    82000003    copper list too long
CopIListOver   82000004    copper intermediate list too long
CopListHead    82010005    copper list head, no memory
LongFrame      82010006    long frame, no memory
ShortFrame     82010007    short frame, no memory
FloodFill      82010008    flood fill, no memory
TextTmpRas     02010009    text, no memory for TmpRas
BltBitMap      8201000A    BltBitMap, no memory
LayersLib      03000000
Intuition      04000000
GadgetType     84000001    unknown gadet type
BadGadget      04000001    Recoverable form of GadgetType
CreatePort     84010002    create port, no memory
ItemAlloc      04010003    item plane alloc, no memory
SubAlloc       04010004    sub alloc, no memory
PlaneAlloc     84010005    plane alloc, no memory
ItemBoxTop     84000006    item box top < RelZero
OpenScreen     84010007    open screen, no memory
OpenScrnRast   84010008    OpenScreen's AllocRast, no mem.
SysScrnType    84000009    open sys screen, unknown type
AddSWGadget    8401000A    add SW gadgets, no memory
OpenWindow     8401000B    open window, no memory
BadState       8400000C    Bad State Return entering Int.
BadMessage     8400000D    Bad Message received by IDCMP
WeirdEcho      8400000E    Weird echo causing problem
NoConsole      8400000F    couldn't open the Console Device
MathLib        05000000
CListLib       06000000
DOS Library
DOSLib         07000000
StartMem       07010001    no memory at startup
EndTask        07000002    EndTask didn't
QPktFail       07000003    Qpkt failure
AsyncPkt       07000004    Unexpected packet received
FreeVec        07000005    Freevec failed
DiskBlkSeq     07000006    Disk block sequence error
BitMap         07000007    Bitmap corrupt
KeyFree        07000008    Key already free
BadChkSum      07000009    Invalid checksum
DiskError      0700000A    Disk Error
KeyRange       0700000B    Key out of range
BadOverlay     0700000C    Bad overlay
RAMLib         08000000
IconLib        09000000
AudioDev       10000000
ConsoleDev     11000000
GamePortDev    12000000
KeyboardDev    13000000
TrackDiskDev   14000000
TDCalibSeek    14000001    calibrate: seek error
TDDelay        14000002    delay: error on timer wait
TimerDev       15000000
TMBadReq       15000001    bad request
CIARsrc        20000000
DiskRsrc       21000000
DRHasDisk      21000001    get unit: alread has disk
DRIntNoAct     21000002    interrupt: no active unit
MiscRsrc       22000000
BootStrap      30000000
BootError      30000001    Boot code returned an error
Workbench      31000000
Help!!         48454C50    When the Guru gets confused (Help in Ascii)

Enjoy, and may you never have to use this chart!

=============================================================================
                               APPENDIX F
=============================================================================
From: DAVE HOWELL <HOWELL%WHITMAN.BITNET@CORNELLC.cit.cornell.edu>

$! NETFIX.COM  - fixes the carriage control on files that come from FTP
$! sites via the RECEIVE area.  First RECEIEVE/BINARY the file(s), then type
$! NETFIX <filename.ext>.  If the file is in multiple parts, join them
$! first. This version supports the use of wildcards.
$! Wildcard code by Dave Howell. Convert process origins from someone else,
$! whose name is lost in the mists of time. :(
$!
$ if p1 .eqs. "" then exit
$ if f$length(p1) .gt. f$locate("*",p1) then goto loopit
$ if f$length(p1) .gt. f$locate("%",p1) then goto loopit
$ DoMe == p1
$ gosub FixIt
$ exit
$
$ loopit:
$ FullName == f$search(p1)
$ Name == f$parse("''FullName'",,,"NAME")
$ Type == f$parse("''FullName'",,,"TYPE")
$ DoMe == f$edit("''Name' ''Type'","COLLAPSE")
$ if DoMe .eqs. "." then exit
$ write sys$output DoMe
$ gosub FixIt
$ goto loopit
$!
$ FixIt:
$ full = DoMe
$ base = f$element(0,".",full)
$ fdlname = base + ".fdl"
$ analyze/rms/fdl 'DoMe'
$ edt/nojournal 'fdlname'
find "CARRIAGE_CONTROL"
delete
insert; CARRIAGE_CONTROL        none
exit
$ convert/create/fdl='base' 'DoMe' *.*
$ delete *.fdl;*
$ return
=============================================================================
                               APPENDIX G
=============================================================================
                       UUDECODE SOURCE(S)

------------------------ uudecode.bas ---------------------------------

'This Amiga Basic program uudecodes files.
'It may not be fast, but it works!
'I have an analogous uuencode program if anyone wants it.
'    Michael Creutz
'    creutz@bnlux0.bnl.gov
'
WINDOW 1,,(20,20)-(400,150)
DEFINT a-z
INPUT "File to decode:",f1$
INPUT "Decoded file name:",f2$
OPEN f1$ FOR INPUT AS #1
OPEN f2$ FOR OUTPUT AS #2
length!=LOF(1)
leftlength!=length!
PRINT "Looking for 'begin.'"
findbegin:
  IF EOF(1) THEN PRINT "begin not found":CLOSE:END
  LINE INPUT #1, a$:leftlength!=leftlength!-LEN(a$)-1
  IF LEFT$(a$,6)<>"begin " THEN GOTO findbegin
  PRINT
  PRINT "'begin' found"
  PRINT "decoding ";f1$;" to file ";f2$
newline:
  LOCATE 10,10
  partdone=100*(1!-leftlength!/length!)
  PRINT partdone;"% finished"
inline:  LINE INPUT #1,a$ :leftlength!=leftlength!-LEN(a$)-1
  IF a$="" THEN GOTO inline
  IF a$="end" THEN GOTO done
  count=(ASC(LEFT$(a$,1))-32) AND 63
  IF count=0 THEN GOTO done
  pointer=2
  out$=""
loop:
  a1=(ASC(MID$(a$,pointer  ,1))-32) AND 63
  a2=(ASC(MID$(a$,pointer+1,1))-32) AND 63
  a3=(ASC(MID$(a$,pointer+2,1))-32) AND 63
  a4=(ASC(MID$(a$,pointer+3,1))-32) AND 63
pointer=pointer+4
count=count-3
  out$=out$+CHR$((a1* 4+a2\16) AND 255)
  out$=out$+CHR$((a2*16+a3\ 4) AND 255)
  out$=out$+CHR$((a3*64+a4   ) AND 255)
IF count>0 THEN GOTO loop
  PRINT #2, out$;
IF NOT EOF(1) THEN GOTO newline
  PRINT "end not found"
done:
  PRINT "all done"
  CLOSE
---------------------------------------------------------------
And now:
----------------------  uudecode.c ----------------------------

#include <stdio.h>
#define DEC(c)  (((c) - ' ') & 077)
main()
{
        int n;
        char dest[128], a,b,c,d;

        scanf("begin %o ", &n);
        gets(dest);

        if (freopen(dest, "w", stdout) == NULL) {
                perror(dest);
                exit(1);
        }

        while ((n=getchar()) != EOF && (n=DEC(n))!=0)  {
                while (n>0) {
                        a = DEC(getchar());
                        b = DEC(getchar());
                        c = DEC(getchar());
                        d = DEC(getchar());
                        if (n-- > 0) putchar(a << 2 | b >> 4);
                        if (n-- > 0) putchar(b << 4 | c >> 2);
                        if (n-- > 0) putchar(c << 6 | d);
                }
                n=getchar();
        }
        exit(0);
}
=============================================================================
                               APPENDIX H
=============================================================================

               Some AGNUS Chip Numbers:-


               8361 = Agnus A1000 NTSC
               8367 = Agnus A1000 PAL
               8370 = 512K Agnus A500/2000 NTSC
               8371 = 512K Agnus A500/2000 PAL
               8372A= 1 Meg Agnus A500/2000 NTSC/PAL
               8372B= 2 Meg Agnus A3000
               8375 = 2 Meg Agnus A500+

=============================================================================
                               APPENDIX I
=============================================================================

If you are trying to format a 3 1/2" disk using an XT Bridgeboard and the
message 'parameter not supported' try the following tip:-

You have to add a line in your config.sys

device=driver.sys /d:(number of physical floppy drive) /f:(type of drive
     where you want 2)

something like
device=driver.sys /d:1 /f:2
or
device=driver.sys /d:1 /h:(heads) /s:(sectors) /t:(tracks)

=============================================================================
                               APPENDIX J
=============================================================================
                 *********************************
                 *              FAST!            *
                 *-------------------------------*
                 *  A Program to transfer files  *
                 *  from the Amiga to the C64    *
                 *  and back very FAST!          *
                 *-------------------------------*
                 *  Author: Gregg Tavares        *
                 *          April 5, 1987        *
                 *********************************


To use FAST! you must first make a cable to connect your Amiga's printer port
with your Commodore's User port.

    Amiga DB25 Male       C64 User port

       Pin #                  Pin #
       -----                  -----
         2                      C
         3       (data          D
         4       lines          E     <- As numbered in the
         5       0 to 7)        F        "Commodore 64
         6                      H         Programmer's
         7                      J         Reference Guide"
         8                      K
         9                      L

        14       (+5V)          N

Ok. Hook up the cable.

Say you have a file you want to send to the C64.  You would first type "fast
send filename" on the Amiga, then on the C64 type:

           LOAD "F",8
           RUN
           R         (for Receive)
           FILENAME  (to Receive)
           P         (for a PRG file)

Ok. Now press RETURN on your Amiga.  After a year or so it will finish.

To send a file from the C64 to the Amiga.  On the C64 type:

           LOAD "F",8
           RUN
           S         (for Send)
           FILENAME  (to send)
           P or S    (type of file you're sending)

Now on the Amiga Type: "fast receive filename" then press RETURN on the C64

        JUST REMEMBER, ALWAYS RUN THE SENDING PROGRAM FIRST!!!

These programs do no error checking.  Transfer will always work perfectly
unless you fill your disk or try to send a corrupt file or you break your
cable.  Feel free to modify the programs in any way.

               Somebody please write some better DOCS!

/*********************************
 *  FAST!
 *-------------------------------
 *  A Program to transfer files
 *  from the Amiga to the C64
 *  and back very FAST!
 *-------------------------------
 * Original Author: Gregg Tavares
 *                  April 5, 1987
 *
 * Compiled with Aztec C
 *   cc +l FAST.c
 *   ln FAST.o -lc32
 *********************************/
#include "exec/types.h"
#include "libraries/dos.h"
#include "stdio.h"

#define C64DATA       (*((UBYTE *)0xbfe101))
#define DATADIRECTION (*((UBYTE *)0xbfe301))
#define AHANDSHAKE    0x80
#define CHANDSHAKE    0x40
#define CTRANSFER     0x20
#define ATRANSFER     0x10
#define NYBBLE        0x0F

extern struct FileHandle *Open();

UBYTE Buffer[16384];

UBYTE GetByte()
  {
  UBYTE data;

  /*--- Wait for sent signal from C64 ---*/
  while ((C64DATA & CHANDSHAKE) != CHANDSHAKE && (C64DATA & CTRANSFER) ==
CTRANS
FER);

  if (C64DATA & CTRANSFER)                /* if there was no error */
    {
       data = (C64DATA & NYBBLE) << 4;    /* get High Nybble       */
    C64DATA = AHANDSHAKE | ATRANSFER;     /* Tell C64 we got it    */
    }
  else
    error();                              /* else exit             */

  /*--- Wait for sent signal from C64 ---*/
  while ((C64DATA & CHANDSHAKE) == CHANDSHAKE && (C64DATA & CTRANSFER) ==
CTRANS
FER);

  if (C64DATA & CTRANSFER)                /* if there was not error */
    {
       data |= (C64DATA & NYBBLE);        /* get Low Nybble         */
    C64DATA  = ATRANSFER;                 /* Tell C64 we got it     */
    }
  else
    error();                              /* else exit              */

  return(data);                           /* return byte            */
  }

PutByte(data)
  UBYTE data;
  {
  C64DATA = (data >> 4) | ATRANSFER | AHANDSHAKE; /* Send High Nybble to C64
*/

  /*--- Wait for received signal from C64 ---*/
  while ((C64DATA & CHANDSHAKE) != CHANDSHAKE && (C64DATA & CTRANSFER) ==
CTRANS
FER);

  if ((C64DATA & CTRANSFER) != CTRANSFER)         /* If c64 stopped sending */
    error();                                      /* then error */

  C64DATA = (data & 0xF) | ATRANSFER;             /* Send low Nybble to C64 */

  /*--- Wait for received signal from C64 ---*/
  while ((C64DATA & CHANDSHAKE) == CHANDSHAKE && (C64DATA & CTRANSFER) ==
CTRANS
FER);

  if ((C64DATA & CTRANSFER) != CTRANSFER)         /* If c64 stopped sending */
    error();                                      /* then error */
  }

WaitForCommodore()
  {
  while((C64DATA & CTRANSFER) != CTRANSFER);
  }

main(argc, argv)
  int argc;
  char **argv;
  {
  FILE *fp;
  struct FileHandle *fh;
  char junk;
  UWORD Length;
  int i;

  if (argc < 3)
    printf("Usage: '%s (Send|Receive) filename'\n",argv[0]);
  else
    {
    if (toupper(*argv[1]) == 'R')
      {
      DATADIRECTION = AHANDSHAKE | ATRANSFER;
      C64DATA = ATRANSFER;

      printf("Waiting for Commodore\n");
      WaitForCommodore();
      printf("Receiving Data\n");
      fp = fopen(argv[2],"w");
      if (fp == NULL)
        {
        printf ("Couldn't open file\n");
        }
      else
        {
        do
          {
          Length  = GetByte() << 8;
          Length |= GetByte();
          if (Length > 0)
            {
            printf ("Receiving %u bytes\n",Length);
            for (i=0; i<Length; i++)
              Buffer[i] = GetByte();
            printf ("  Saving %u bytes\n",Length);
            fwrite(Buffer,Length,1,fp);
            }
          }
          while (Length > 0);
        close (fp);
        }
      }
    else
      {
      DATADIRECTION = AHANDSHAKE | ATRANSFER | NYBBLE;
      C64DATA = 0;

      printf("Start Commodore then press return:\n");
      scanf("%c",&junk);
      printf("Sending Data\n");
      C64DATA = ATRANSFER;

      fh = Open(argv[2],MODE_OLDFILE);
      if (fh != NULL)
        {
        do
          {
          Length = Read(fh,Buffer,16384);
          PutByte (Length >> 8);
          PutByte (Length & 0xFF);
          printf ("Sending %u bytes.\n",Length);
          for (i=0; i<Length; i++)
            PutByte(Buffer[i]);
          printf ("Sent %u bytes.\n",Length);
          }
          while (Length > 0);
        Close (fh);
        }
      }
    printf("Done\n");
    C64DATA = 0;
    DATADIRECTION = 0;
    }
  }

error()
  {
  printf("Your Commodore is having problems\n");
  C64DATA = 0;
  DATADIRECTION = 0;
  exit(10);
  }
===================== END OF THE AMIGA STARTUP FILE====================
=============================================================================
                               APPENDIX K
=============================================================================
               BBS's (Bulletin Board Services) Of Interest For Amigas
=======================================================================
Telephone #        Sys-name   Location           Baud        Hours
------------       --------   -----------        -------     -----
618-536-2284    Ethereal Realms BBS             3/12/24
Running WWIV v4.21 Member of WWIVlink (Node @16850), Member of WWIVnet (@6856)
SysOp: Ethereal Cereal Primarily Amiga Files, with some general message bases
thrown in Will be closing down probably May 8th 1992 or so for summer. Will go
back up in Fall.
00/2400, 8N1, ANSI Support, X/Y/Zmodem
Contact: CA2096@SIUCVMB.SIU.EDU
-----------
39-541-27858      xtc        Rimini (Fo) IT     3/12/24/96  24
386/20, 380Meg, ISC 386ix;  Menu driven BBS, no shell.  tb+ on first line,
+39-541-27135 has USRobotics HST.  USENET News and Fidonet and sublink.
Fidonet address 2:332/307, 2:332/308.  No fees required but no downloads on
the first call -- comp.sources.* archive + GIFs available.
Contact: Riccardo Pizzi (root@xtc.sublink.org)
----------
64-4-642-260      cavebbs    Wellington      NZ 12/24       24
 AT&T 3B2/400 w/SysV 3.2; The Cave MegaBBS System. 144MB disk; 4 lines.
Free access line 1, NZD$40 donation requested for others. KCBBS s/w featuring
Usenet, Fidonet 3:771/130.0 and conferencing, email and links with other local
systems. The Cave runs concurrently using KiwiBoard s/w on two lines +64-4-
643-429 12/24/96 V32MNP5 on a 386/25 to provide local messaging and 290MB of
PC/Amiga/GIF/sound files;
Contact: clear@cavebbs.gen.nz (Charlie Lear), Box 2009 Wellington, NZ
----------
64-4-895-478      actrix     Wellington      NZ 3/12/24/96  24
Zenith 386/33MHz w/ ISC 386/ix 2.02;  Actrix Information Exchange --
New Zealand's first Public Access UNIX.  750 Mb disk; 3 lines, USR  Courier
HST (T2500 due December 1990, X25 in '91).  Fee: NZ$54 p.a. -  offers heavily
modified XBBS with USEnet and Fidonet, e-mail (elm),  hundreds of file areas
divided into sections for UNIX, MS-DOS, Amiga,  Atari, Apple //, Macintosh,
CP/M etc.  Shell w/ many extras available  via `Enhanced subscription'.
Planned to join APC (PeaceNet/EcoNet);
Contact: paul@actrix.gen.nz (Paul Gillingwater) PO Box 11-410, Wgtn, NZ
----------
201-759-8450       tronsbox   Belleville      NJ 3/12/24/96  24
Equip ???, UNIX 3.2;  Provides shell for some users, menu driven BBS with GIF
and text downloads, adult discussion section;  USENET, E-Mail (feeds
available);  Multiple line (-8568 300 - 2400 baud).
----------
203-661-2873       admiral    Greenwich       CT 3/12/24/96  24
Xenix/386 2.3.3. Line 1: 203-661-1279, USR HST Dual; Line 2: -2967 Microcom
AX/9624c; Line 3: -2873 Telebit T2500; Line 4: -0450, 2400. Magpie/386 BBS,
chat, interactive games, SIGS for Unix/IBM/Mac/Amiga. BBS name is The Grid.
All users are welcome, no strings attached. No fee, anonymous UUCP, login:
nuucp, no PW. 230 megs disk, for more information, contact: ...!uunet!sir-
alan!admiral!admiral.
----------
212-431-1944       dorsai     NYC             NY 3/12/24     24
80386, SCO Xenix, Waffle bbs;  3 phone lines -  2400 baud, no shell (yet); BBS
with over 250 non-Usenet newsgroups, 1.2 gb of mac, ibm, amiga, cp-m, appleII,
cbm files;  BBS is free, $25/yr for UseNet access, (180 min/day), $50/yr for
extended gold access (300 min/day);  Full news and mail feed from uupsi;
login through bbs.
 Contact: uupsi!dorsai!ssegan
----------
412-431-8649       eklektik   Pittsburgh      PA 3/12/24     24
UNIX PC- SYSV - UNaXcess BBS, donation requested for shell, login: bbs for
BBS, limited Usenet news (amiga and gaming groups). RPG mailing list,
rec.games.frp and rec.music.dylan archive. Alternate number: 431-3064,
  Contact:  anthony@eklektik.pgh.pa.us or anthony@cs.pitt.edu
===========================================================================
=============================================================================
                               APPENDIX L
=============================================================================

Here is the 1Mega Agnus modification for A500 computers. It is part of an
article that was posted some time ago on USENET.

This mod has been carried out on a rev 5 A500 and it worked fine.

A. What is the 1Mb Agnus ?
-----------------------------
The 1Mb Agnus (variously known as the Obese Agnus or Fatter Agnus), Commodore
part 8372a or 318069-02, is the relatively new Agnus which is capable of
addressing 1Mb of chip-RAM. This allows you to have twice the amount of
sampled music, screens, and other custom-chip data in memory simultaneously.
It also has the desirable effect of letting you run things like Deluxe Paint
in 16-color 640x512 (or 640x400, NTSC users) mode, without having to
disconnect external drives, close down WorkBench screens and the like. For A-
Max users, installing the new Agnus and configuring it to 1Mb chip-RAM mode
will also increase A-Max compatibility. If you have more than 1Mb of RAM, then
it will make A-Max virtually 100% identical to a Mac Plus, memory-map-wise.
NOTE WELL : This modification requires 1Mb of RAM to be visible !

Commodore, not wishing to make two chips where one will do, is now shipping
the 8372a in most (nearly all Rev. 6a) A500's, without telling anybody. In
these machines, the extra chip-RAM capability has been disabled so that if you
connect an A501, it will still think it is "slow" [see below] RAM.

B. An Aside on Memory Speeds
-------------------------------
The Amiga has *three* types of RAM. Chip-RAM, Fast-RAM and "Slow"-RAM.
Contrary to what many people assert, RAM at $C00000 (the default location of
the A501 expander, and the second 512K of RAM in A2000's) is NOT fast-RAM,
even though the system reports it as such. Because this RAM is refreshed and
accessed via Agnus, it is affected by buss contention in just the same way as
chip-RAM. It is simply a dead area in RAM which is not accessed by the custom
chips and which is not faster than chip-RAM. Moving this RAM to $80000 (which
is what you do to enable 1Mb chip-RAM) will have no effect on machine speed at
all.

C. Compatibility
-------------------
To date (20-Oct-91, 18:11EST) at least 400 pieces of software have been tested
with the new Agnus. Three programs were found not to work :
* Double Dragon II (Completely screwed up)
* VideoFX 3D (Again, completely useless)
* Impossible Mission II (This game requires memory at $C00000. It does not
  mind the Agnus, but if you want to run it you must drop back to 512K
  chip/512K slow mode. Lousy AllocAbs() programmer !)
In addition, Dragon Ninja thinks you are running on a 512K machine and will
not play in-game music. Again, this can be rectified by switching into 512K
chip/512K slow mode. Some other games also think they are running on a 512K
machine, notably TechnoCop and R-Type, but this is of no real consequence.

D. Identifying the Version of your A500
------------------------------------------
There are several versions of the A500 out there. I have only tried fitting
the new Agnus to the following :
 a. The Revision 5 board shipped until early 1989
 b. The new Revision 6a board supplied from May (?) 1989 onwards
The way to identify your machine type is to check the expansion port which
lurks under a plastic cover on the left-hand side of the computer. The Rev. 5
machine has a very fat strip (double width) at the back of the connector; the
Rev. 6a board has two normal-width strips instead.

E. Installing the 8372a to Revision 5 A500's
-----------------------------------------------
1. Remove the 8371 from its socket. If you are an NTSC user who does not wish
   to use the PAL mode, go to step 3.
2. Pin 41 of the new Agnus controls whether the machine starts up in PAL or
   NTSC modes. When it is tied low (to ground), the machine boots in NTSC
   mode. When the line is tied high or left floating (ie unconnected), it
   boots into PAL mode. On the Rev. 5 board, pin 41 is connected to ground by
   tracks on BOTH sides of the board, making it virtually impossible to cut
   the track without desoldering the socket. This means if you just plug in
   the new Agnus, you will be locked in NTSC mode !! There are a couple of
   ways to go about circumventing this problem; I will detail here the one I
   undertook on my own Rev. 5 board. I will assume you want to install some
   sort of switch to toggle PAL/NTSC mode. If you only want to run in PAL
   mode, you can simply bend out pin 41 of the Agnus socket (don't bend the
   pin on the chip) to prevent it from making contact with Agnus. If you do
   this, proceed to step 3. Otherwise, get yourself an SPDT or SPST toggle
   switch and two lengths of telephone (or other thin, stiff single-core
   wire). Solder wires to the switch :

                            +---+
    To a convenient ground--+-o |  BACK VIEW OF SWITCH
                   +--------+-o |  When held as shown, UP=PAL, DOWN=NTSC.
                   |        | o |
                   |        +---+
 Uninsulated --> | | <-- This side is insulated
                 \-/ <-- Fold the wire thru 180 degrees

3. Insert the new Agnus. If installing the switch, you should now poke the
   loose end of wire (see above) from the switch into pin 41 of the socket so
   that the bare copper side touches the pin on the chip and the insulated
   side touches the pin on the socket. In order to fit the wire down the hole
   you may find it necessary to bend out or remove entirely [Not recommended
   !] the pin on the socket. Secure the wire with a tiny drop of cyanoacrylate
   adhesive.

4. If you wish to install a memory mode switch, go to step 5. Otherwise,
   locate JP2 (between 68000 and ROM). This consists of three pads. The center
   and lower pads are joined by a thin track. Cut this track and place a drop
   of solder between the center and upper pads. Now locate the _EXRAM line
   coming from the A501 port (it comes from pin #32 and runs on the upper side
   of the motherboard parallel to the A501 connector). Cut this line. You have
   now completed the installation procedure.

5. Complicated. Locate JP2 and cut the track which joins the center and lower
   pads. Locate the _EXRAM line from the A501 port (see step 4) and cut the
   track. Solder wires to all three pads of JP2 and one wire to either side of
   the gap you cut in the _EXRAM track. Wire a DPDT switch as follows :

                   +-----+  BACK VIEW OF SWITCH
Upper pad of JP2 --+-o o |  When held as shown, UP=512K CHIP, DOWN=1M CHIP
Center pad of JP2 -+-o o-+- To one side of the gap in the _EXRAM track
Lower pad of JP2 --+-o o-+- To the other side of the gap
                   +-----+
You have now completed the installation procedure.

F. Installing the 8372a to Revision 6a A500's
------------------------------------------------
1. Remove the 8371 from its socket. Insert the new 8372a. NTSC users who do
not wish to use the PAL mode should go to step 3. When installing the new
Agnus, note that on the 6a board, the Agnus socket has been rotated 90 degrees
anti-clockwise from the orientation on the revision 5 board. For this reason,
plugging in the Agnus correctly is no longer an intuitive operation!

2. JP4 controls PAL/NTSC video mode. If you are in North America or Hong Kong
or anywhere else the National Television Standards Committee TV format is
used, this should be bridged by a track or a blob of solder. If you are in
Australia, Europe or anywhere else the Phase-Alternated Linescan TV format is
used, this jumper should be cut open. If you wish to install a switch, then
simply connect it across the two pads of the jumper.

3. Cut the track joining the center and upper pads of JP2, and the track
joining the center and upper pads of JP7a. (JP2 is between the CPU and the ROM
and JP7a is just to the left of the A501 connector). If you wish to install a
memory switch, proceed to step 4 otherwise solder the center and lower pads of
JP2 together. You have now completed the installation procedure.

4. Connect a DPDT switch as follows :

                   +-----+  BACK VIEW OF SWITCH
Upper pad of JP2 --+-o o |  When held as shown, UP=512K CHIP, DOWN=1M CHIP
Center pad of JP2 -+-o o-+-- Center pad of JP7a
Lower pad of JP2 --+-o o-+-- Upper pad of JP7a
                   +-----+
You have now completed the installation procedure.
==============================================================================
=============================================================================
                               APPENDIX M
=============================================================================

Standard disclaimer applies of course!!!

   -= A DIY Guide to Computer Repair & Modification (PC and Amiga 500) =-
      == == == From - lae@mullauna.cs.mu.oz.au (Lewin EDWARDS) == == ==

                  -=<* About This Document - Disclaimer *>=-

This document is intended to provide electronics hobbyists with some useful
notes. It is not intended to train or encourage novices to attempt service or
modifications to expensive appliances. It is especially not intended to
encourage unqualified personnel to tamper with dangerous appliances such as
monitors, power supplies and other devices which contain vacuum tubes, live
mains or high-tension rails, or other hazardous areas. Any such work carried
out is done at the reader's own risk and the author accepts no reponsibility
for damage to property or person which occurs as a result of attempting any of
the procedures described herein.

Having said that, I can vouch for the workability of the modifications listed
here. I have personally performed them all myself on my own machines (this is,
after all, a chronicle of my own experiences, chopped up under suitable
headings for your convenience). With regards to the service information,
whilst I have described problems and the solution(s) I found, keep in mind
that this is rather like a doctor prescribing medication over the telephone or
from an encyclopaedia. What I mean by this statement is that different
problems may well cause the same symptoms; to take a trivial example, if you
turn your monitor on and nothing happens, perhaps the fuse is blown, but on
the other hand, perhaps it is not plugged in, or perhaps there is a more
sinister fault in the power supply section. For this reason, I suggest you use
the service information as a very vague guide ONLY. Remember; it is very rare
to find two machines which are exactly the same inside, and so what I have
found to be a suitable solution to a given fault may be totally inappropriate
to your situation.

                      -=<* The Commodore Amiga 500 *>=-

i. Serial Killer
----------------
Problems with Amiga serial ports generally fall into three categories;
problems with the flow control lines, problems with the actual data
transmission lines, and problems with the line level (caused by faulty line
driver chips). The first two can be relatively costly to repair, due to
Commodore's monopoly on the CIA and Paula chips, so I advise exploring the
line driver section of the circuit before rushing out to buy new Paulas or
CIAs.

Faults in the line driver chips (MC1488 and MC1489, U38 and U39 respectively
in the schematic on page F-7 of the book 'Introduction to the Commodore Amiga
500') are typified by either total loss of transmission, total loss of
reception, or both. If you look at the flow control lines, (CTS and RTS), you
usually see that these lines are behaving normally (exactly why these lines
are rarely affected is a mystery to me); if not, then you probably have a
faulty CIA. Since the 1488 and 1489 only cost around A$1.00 each, depending on
your source, it is well worth replacing these chips before you investigate
Paula. Unfortunately, they are not socketed so you will have to desolder them
(see "Desoldering Small IC's" below). When you have the chips out, put in a
couple of sockets to facilitate later repairs.

If, after replacing the 148x's, you still experience problems, it is time to
look further. If you have suitable software, you can check whether the problem
lies in the flow control lines (in which case you have a damaged even CIA, U8)
or in the data lines (in which case you have a damaged Paula). If you do not
have, or are unable to interpret the results of, this software, you can make
use of an old Amiga-tech wrinkle; exchange the CIA chips and see if your fault
clears up. If it does, then ten to one the problem is in the CIA which started
out as U8; if the problem persists, then it is most likely a Paula fault.

ii. Floppy Hassles
------------------
In my life I have opened at least 40 Amiga 500's and have NEVER seen two which
have the same make and model of internal floppy. It seems that Commodore
change their suppliers (and also the colors of the LEDs on the keyboard) on a
weekly basis. Let's see.. three possible LED colors (red, green, yellow),
three LEDs on the keyboard, four floppy manufacturers (Sankyo, Chinon,
Panasonic, Sony), two different styles of head connector (one film connector
per head or one wide film connector servicing both heads), helical screw or
belt-drive head carriage mechanisms.. that makes 144 possible configurations
already. For this reason it is not possible to give specific "look-to-the-
left-of-the-large-chip" directions, and I can only state a couple of possible
faults and their possible causes :

* Floppy refuses to acknowledge disk insert

Probably caused by a defective odd CIA (U7). Try switching the CIAs over. Also
check that the switches at the front of the drive travel freely up and down.
Verify that the pads to which the switch assembly is connected have not flaked
off the board (this can be caused by rough disk insertion).

* Floppy will not read disks formatted in other drives

The head alignment is faulty. There is a method of adjusting it without
special tools and measurement devices, but it requires considerable patience
and one of the X-Copy series of programs. The method is as follows :
- Format a disk in a working drive.
- Open your machine (or external drive). Remove the cover from the drive unit
(it is usually held on by one screw on either side and another on top at the
back). Locate the track zero sensor and loosen the screw which holds it in
position. Load X-Copy and select the Toolkit option CHECKDISK.
- You must now align the lower head. This can be accomplished by moving the
track zero sensor a little, then checking the disk, and repeating this until
you find a position in which the drive will read the lower side of the disk.
When this is done, tighten the screw which holds the track zero sensor, to
stop it shifting. If you have any Lok-Tite, a drop of that on the screw is
advisable.
- You must now align the upper head. Loosen the two screws which hold it to
the head carriage assembly (Do NOT remove these screws, unless you relish the
idea of going over the floor with a metal detector looking for small springs).
Adjust the upper head by eye until it appears to be exactly over the lower
head. Now repeat the above trial-and-error process, tweaking the upper head
around until you find a workable position. Tighten the screws, replace the
cover and reassemble.

If the above procedure sounds rigmarolish and uncertain, it is ! But I have
successfully performed it on a number of Amiga and PC 3.5" drives. And I have
never had a failure with it.

iii. Caps Lock Chaos
--------------------
Many Amiga owners will know, to their detriment, that occasionally the Caps
Lock light will start blinking and the keyboard will lock up. This is caused
by the microprocessor in the keyboard detecting a keyboard fault. I first
noticed this fault when our school Amiga room (two rev. 5a A500's) acquired an
autofire joystick, a Quickshot IIb I think. When switched to autofire mode,
this joystick would periodically jam the keyboard. If you have recently
acquired an autofire joystick, you should investigate whether turning it off
during boot fixes the problem. Otherwise, you can try the old "Atari Twist",
ie pick up your machine in both hands and twist it. This is basically
equivalent to reseating the chips on the motherboard; if you have a spare
moment, I suggest you actually open the machine up and manually reseat them.

iv.  Is My Jumper On The Line ?
------------------------------
Number  Rev5 ?  Rev6a ? Function
------------------------------------------------------------------------------
-
JP1     yes     yes     Connects reset timer (NE555) to main reset
JP2     yes     yes     Maps A501 at $C00000 or $80000
JP3     yes     yes     Swaps _CAS of RAM banks (of use for test purposes)
JP4     no      yes     8371  Agnus : TEST line [solder closed !!]
                        8372a Agnus : PAL/NTSC video mode select
JP5     no      yes     28MHz base clock to Agnus
JP6     no      yes     7MHz clock on pin 7 of expansion connector
JP7a    no      yes     Controls _EXRAM to Gary
JP7b    no      yes     CIA tick from VSYNC or pin 32 of A501 (default VSYNC)
JP8     no      yes     LPEN from FIRE0 or FIRE1
JP9     no      no      ??? A non-existent jumper. Future Rev. 7 ???
JP10a   no      yes     Connects AUDIN to pin 18 of serial port
JP10b   no      yes     Connects AUDOUT to pin 11 of RS232 port
JP11    no      yes     Connects CSYNC to BCSYNC or video hybrid
------------------------------------------------------------------------------
-
NB: These are A500 jumpers only. A2000, 2500, 3000 have different jumper
assignments. The 1000 *may* have similar settings but I cannot guarantee this.

v. Hol(e)y, Hol(e)y, Hol(e)y
-----------------------------

Owners of Rev. 6a A500's will notice that they only have 4 RAM chips as
opposed to the 16 in the Rev. 5 and earlier machines. They will also note that
in between the RAM chips are empty sets of holes which look like something
ought to go into them.

Firstly, fear not - the reason you have a quarter the number of RAM chips as
older machines is that the 6a uses 44256 4-bit x 256K chips which are four
times as large as the 41256 1-bit x 256K chips used in the 5 and earlier
revisions. All the modern Amiga memory hardware (except possibly the A501)
uses these larger chips because they are slightly cheaper on a dollar-per-
megabyte basis. For example, the older Series I A590 hard drives use the
41256, and they will accept up to 2Mb. The new Series II A590's use the 44256
(and consequently have enough space to fit 8Mb of RAM).

But, back to those extra holes. They are indeed designed to accept something;
viz, another set of four 44256's to take your machine up to 1Mb without having
to buy an A501 or other expander (this is particularly useful if you have a
memory expansion which uses the A501 slot, and you want to have 1Mb chip-RAM).
If you want to install your own RAM there, you should do as follows :

Purchase four 20-pin IC sockets (preferably machined-pin). Make sure you have
a solder-sniffer. Now look at those holes and you will see that they are
clogged by solder (this is due to the way the boards are soldered; the process
covers all exposed copper areas with solder). You must clean this solder out
by heating the board from one side and sniffing the solder out on the other
(or blowing the solder through; if you choose this method, make sure to remove
all the little splashes of solder from the board and your lap). When you have
cleaned out all the holes, solder in the sockets. Now plug in four 44256 chips
and you have 1Mb of memory for slightly less than the cost of an A501 (in
Australia, the difference is roughly A$20).

With respect to the speed of RAM chips required, I use 150ns chips with no
problems at all; however, I suspect that Commodore would recommend 100ns
devices. The price difference is minimal so you may as well buy 100ns chips so
that if you ever buy a series II A590, you can shift the chips over and have
100%-guaranteed-not-to-overheat fast-RAM.

vi. 1Mb of Motherboard Memory on the Rev. 5
--------------------------------------------

It is possible to install 1Mb of RAM onto the revision 5 motherboard. However,
this modification is flaky at best and I cannot recommend it (having tried it
in a moment of sheer boredom). Also note that I could *not* get this extra
memory to be mapped at $C00000 (the computer would only recognise it if I had
JP2 set to map the A501 at $80000); which means that it is only of potential
interest to owners of the 1MB Agnus. (This failure to work as $C0 RAM may well
have been due to some stupid omission on my part).

I will deliberately be vague because this is not a trivial modification. If
you are unable to work out what to do with confidence, you do not have enough
knowledge to perform the mod.

The procedure can be summarised as follows: Take sixteen 41256 RAM chips (for
speed information, see the end of subsection vi. above). Bend the refresh
address strobe pins (_RAS, pin 4) on all the chips up and over so that it is
well clear of the other pins and easily accessible from the top of the chip.
Bend in all the other pins a little. Now, piggyback the new chips on top of
the existing RAM, making sure to install them in the same orientation as the
original chips. It is not possible to reach all the pins to solder them, so
you will have to content yourself with only soldering the corner pins. Solder
wires from the bent-up _RAS pins to pin #38 of the A501 port (or any
convenient take-off point of this signal). You should now have 1Mb of RAM. (If
you want to try using it as $C00000 RAM, you should ground the _EXRAM pin, pin
#32, of the A501 port. I had no success with this).

This mod sounds all very well, but in the current climate it may be slightly
cheaper to buy a secondhand A501 than to buy 41256 chips. In addition, due to
the precarious hold the piggybacked chips have on the originals (because there
isn't enough room to solder all of the pins down), the mod is sensitive to
shock; if you tap the table, you can sometimes guru the machine. For this
reason, this is a "possible but ill-advised" modification.

vii. Double Trouble
--------------------

The hack to accelerate your Amiga to 14MHz has been published in countless
articles, but I may as well include a brief description of it here. The hack
involves removing the original 68000 from your Amiga and substituting a
version rated at 16MHz (confusingly called the 68000P-12; the Motorola chips
have "16MHz" stamped on them, but the SGS-Thompson clones do not). The clock
pin is bent out and soldered to the output of a divide-by-2 counter whose
input is connected to the base 28MHz clock. THIS MODIFICATION SHOULD BE
INSTALLED WITH A SWITCH !! If not, you WILL (not may) find that some games
will refuse to load because they use timing-dependent loaders.

Aside from the problem mentioned above, the only compatibility down-side to
this modification is that some floppy drives will not handle the increased
step rate. If you find that your drives give read/write errors at the high
speed, you can either replace them or run a program called "DFDelay" to slow
down the step rate. (If df0: will not work, you have a problem. Try swapping
df1: for df0: - to do which you will need a Commodore df1:. The mechanisms
used in the old A1010 drives are EXTREMELY reliable and much quieter than the
new rubbishy things; if you have an A1010, you can be fairly certain that it
will support the new speed).

To perform the mod, remove your old 68000 and embed it in a perspex block for
future reference. Now rig half of a 74S74 dual D bistable as a divide-by-2
counter. Connect the input of this to a convenient take-off point of the 28MHz
clock line on the motherboard (I use pin #34 of Agnus, but anywhere will do).
Now bend out pin 15 of the new CPU and solder a wire to this pin. Take a piece
of stiff telephone wire, strip approx. 5mm of insulation from one end, and
stick this end down pin 15 of the 68000 socket. Insert the new CPU in the
socket and verify that pin 15 is well clear of the wire in the socket. Now
wire a SPDT switch as follows :

                                            BACK VIEW
                                     +---+  When held as shown UP=7.14MHz,
   To output of divide-by-2 counter -+-o |  DOWN=14.28MHz
                 To pin 15 of 68000 -+-o |
  To wire in pin 15 of 68000 socket -+-o |
                                     +---+

The 74S74 should be mounted somewhere convenient; I break off all the unused
pins, bend the remaining pins out, and stick the chip on top of one of the
data path IC's; this has the advantage of allowing me to take power directly
off the existing components rather than stringing yet another pair of wires
through the machine.

If you only have chip and/or slow memory (see subsubsection iv-2.) then your
machine will run at approximately 150% normal speed (on CPU-intensive
operations; DMA rates will be unchanged). If you have true fast-RAM then code
running from fast-RAM will execute at close to 200% of normal speed. Try
placing a large perpective brush with anti-aliasing HIGH in DeluxePaint III
(or IV !) and you will see the speed increase.

vii. The Numbers Game
--------------------
This is how PLCC chips are numbered (using Agnus as an example) :

                1 1                   8 8 8 8 8 7 7 7 7 7
                1 0 9 8 7 6 5 4 3 2 1 4 3 2 1 0 9 8 7 6 5
 BEVELED CORNER | | | | | | | | | | | | | | | | | | | | |
              /-------------------------------------------|
         12 -|                      o                     |- 74
         13 -|                                            |- 73
         14 -|                                            |- 72
         15 -|                                            |- 71
         16 -|                                            |- 70
         17 -|                                            |- 69
         18 -|                                            |- 68
         19 -|                                            |- 67
         20 -|                   8372A                    |- 66
         21 -|                                            |- 65
         22 -|                                            |- 64
         23 -|                 TOP  VIEW                  |- 63
         24 -|                                            |- 62
         25 -|                                            |- 61
         26 -|                                            |- 60
         27 -|                                            |- 59
         28 -|                                            |- 58
         29 -|                                            |- 57
         30 -|                                            |- 56
         31 -|                                            |- 55
         32 -|                                            |- 54
             |____________________________________________|
                | | | | | | | | | | | | | | | | | | | | |
                3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5
                3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3

ix. A Change Of Face
-------------------

Installing the ECS Denise is simplicity itself. Simply remove the old Denise
and plug the new one straight in. Note that to use the new video modes, you
require the 1Mb Agnus (not necessarily in 1Mb chip-RAM mode, though). By
installing the new Denise, you also eliminate the annoying video glitches
which occur in NTSC mode when using the new Agnus with the old Denise.

x. Snap, Crackle and Pop
-------------------------

[For non-Australians, the above is the slogan a local cereal company uses to
advertise a tasteless soggy mess called Rice Bubbles].

Symptom : Your monitor produces snapping or popping noises, and sometimes goes
unaccountably blank after being switched on for a while.

I have no idea why this problem seems to affect Commodore monitors so badly.
It is caused by arcing of the EHT rail (around 14kV, from memory) to lower-
voltage areas of the set. Initial treatment is to turn off the monitor, leave
it for a couple of days (to allow capacitors to discharge), and then to remove
every last speck of dust from the inside. This usually works.

If it does not, however, sterner measures are called for. Open your monitor
and (here comes the dangerous part) leave it running, open, for a few hours.
If you actively work against Murphy's Law by watching it from behind something
or inside something, where the monitor can't see you, you MAY eventually be
lucky enough to actually catch it in the act of arcing. Mark the place with a
spirit pen and spray on some anti-gaussing compound. (This stuff has a very
high dielectric constant and hence helps to prevent arcs).

=============================================================================
                               APPENDIX N
=============================================================================

                       FastGIF.lha

begin 644 FastGIF112.lha
M'3\M;&@U+:4;``"@+0``HH+<&```!T9A<W1'249`C!<!A.%][[--2R<?T^D(
M1EB6,TPXVZ-WYFRB!922E/'BB8,D"A+$8C"KICSU]]+0GU"P(;*6Z:>,6`#2
M*[B&N>YYS5S>>W-SR]=NW#'SUYYQYR4U]>>NN71NK6MVY6TZM37AK>NW';XT
M2?[^__T@%:OF]G;^'WZ._9V=V&L;<CCA$O_B2WR4SVN(F>W%;NP+_@=-_\?=
MUSG\0$L''?.F3HG=:1*[9,>5RN7ZX#\KXI%I(IB;UIG<'A2ZR!(B,J>!>RU"
M+.3>/O-3_QVN;XNC99LOK5_^1J(SLN4HDG\'?^U+T,CUS-[?J*--J@;M<[Q=
M'_=^Q[G2$EB?XI'N2EE;'(&?$ZYG2]Y(GJ6!(8WIKTFH7NCQZ6#(2@_]"+N'
M,2A?WY+CIMVMMCH!\R(PAEVO4?>B^]%_?RY<T6YBK&;=H@EZ%-%D,7+F0S3<
MR)Y5LX>4<).F)@W@"[M.GJHG23=$PI^]@;]5F`."WL0M]_9_#@Z$'>P?P##O
M)'_\P_^4/^(/_X1_W(_UX_[%_%PNI#)MOK;'%'_`48HLWO724#@R&RK-TYD-
MH9:Y2VQQ7H$5Z"&7;,$5VZL\_OU"`-O#+N;>T`/&^<R/&^>&37G&1X?'.OA\
M<(/K(K\9%?C"O[MMCWQ*5;M)_*^*0]SL/E^Y*@9"M'>D[<XV:Z)'OHC-_4'N
MFL,J/)[[YB:0GWJ1=_EW&5#)I;./NG:^I=$S!FD"O/EM#*Q<_T1:N+:8\,I;
MLR5_\;M-PZ)JXC%/@&QO4LG#C-738%/Y`4OC*6C)_?K_E=#%^&3BTM,>E>2&
MQX%Q`')*'YEMCK"]5?VQB]8!>LBLP+G`D<"VQ[V@R0!NS`L0!W5MCH8M898"
MNBAEJ\%!O0'B?$,E7`E?#'V_7+QF_K$XLB@]R4_M!B#K;0\D\04>4%J!9X^K
M9(_>S#P%-4JF@U\,M'101F+],6%([;PR7>T$#=!`^88,8H\R9BSRW1`38`39
MFB8$7&S@B8N%2@#=(8+U8HNYAKT)AKF&:R/E`F@,U^O*L"_V"\.>8N.NJG.-
MU/C_X)KI@_J('^<!_+F+'I&L9$D`38;BXW317O17S;89$KZ$TK*SL;-I7F-R
M3Q%8%E\'&Y)XBSU4>(N-\YLXS<1?HT!@"A_4VE1E[[",O6YM4Z1&,24W.-R6
MX:CY$BE>XV>%CX86.^F7I%I3;/#8>>;8XIZV&7;^@+8SX5_(!WR,G@XV>BU-
M<#>N1CJ'$^UZ<S'6@TW$S8_0#%-?F@QV(,6AXNXV8_BX?(6<IUN`>!ZU/M>`
MLA3ISK2&6A?V?PL&B&N7?^WC&RF$+3++&@CHQ'D*LGP;GT!G_58),??SI%!2
M[LF&-S:6UQN6MG7SI,K!*7'*H%/GX65@RRPWFS>XW+0!YG.\?*`U9AWGR)0&
MR'NS>8W,O2:N<;FU%:4C*,MSEJ\>=E84==R#`]2R_\E.H8YH''>:>=\<-&ZI
MLX+W\I/O(7DM&I.8GSHLCT19',V>[)EC?(LR;J67S-2R^8@#T-2R_0U++]!9
MFW4.^CJ'?10!S=0[S=0[S47#^32NGTUJ\=XBKTA<_M$-#TDP/J7K^N\+-V=X
M5B>4>SOUD+GJ6N%EKOMO!>%8M]!N0/>JZ9PYZVQX7DC8AUMG\+09HNF:<8F5
MZ2E'7YV)><B4X?PI+;RZ_.Q=2GXVE3A/,F+C=6X]UQ_8>G6TBDGC=7<M8>VV
M>"3#?Y8\M=_QU'VS!'O^.//4W^6-5MR]SM_>9>4A/Y37\@J^4=7%FU>$=7QD
M54:I_'N./-U)0>O@0\C+RG#]Z#_+.]+65H%WM&3T('2K^9EXA@?&TP/;Y>)'
M:9GI3\@TF+9^J$7K-H+$^[E3^&/?E3/?"/V",6[N^=-;EKG8UFSUHW&"2C8)
M&H4)%AY37@R*6%8NV+^5ZDC<='`*KG*I@".KFD8M'*.P/)>30.+,`\K2`^-,
M`\MYI(F4-7.C/"?W)5&_#%Z]NE#)E^B@D&'LA:WWP8NV"`OE:07A("SB`M_0
M2(7!D48S5P3W;QJYUD-I#MQ[Z$,DN%!WJ<7$NF5((-']JK+9X*XI+91B,L?:
MDMFD5<\QNCN3JKL;1-JO)BR6RU>20SE&:J*I8VB?F2UV<62UDSR*:1X7UOU$
MH:]T56U76I2*EA`BR4E:"IK4I2C6KK5SR8!85-:N4%$E:!VYDMO_#RL*JG%B
MODX).U&M8`LP"P`&AX<7&S=RR#*N;)9*,-G7R60S7Z*`/1DL0!?26+M@_E5#
MF2Q?\2PPN1(#D(P9G:C9O)+-W.($LOI$T($C8!DM(R+;R6EG\)5JS//U[*9^
M]_EGL=X?(&I7AC3S:AE&JZ\`NX?_6:@IOK3'<2('ES=?G^7-#OZT!K[(/ZQ]
MZ*QFMH@[[5\C$Z/CY0?'EZ,,F.V;DZ75"3_B?%A;0*'WN(Z&Z7V_2U('F4LU
MBZ2&2+'#T=G%P]'$UHILL0MG%Q"Q$]F"7$21C.Q99PA>)U&39TYW$&N+AY\,
MJ+K'MBX?&.$71:>=%ISVV8N'QL2K?Q<36`CS4$?'.%+01L@1MCV=3A5:+J(&
M\4X4E9]$VWW1+/UZ5.\FTSPU/;AP^*+GI'MJS'^<HW^0#NDXN'Q4MUXO\R3.
MCL8LEF5%,HM"UJ+GLSKLLT-H]PBZ<VO.Z1FQ*A;BX>RW14)-!1XNR&#)"#;P
M^-L;DM84\9.GNB<`KGB9:E5J3,75ZJT1'14AP`]%5&PSW:<'P)?66#_<S=*_
M]-;8_=!RV7H==Q]00>X2?'"3\&.NUM(6K^9$$."\;DH&_W:^Z*?E]:LIBH:V
MF+6#6=+MQO+M/U'`QR^M$)='&M[T?,%R:L,1^:+>^M@EKE6@\TBK$>:&)!OE
MS6<R*TJ%6B'GM56/WQ@RI0LHH>'EJ-C]R5RC-'M>HE?%`?*DNGNO:<;VH@0]
M'R!),_.$G9W!%TA[[[<$711=71O5\JQ5K4*>S5I+4E6@_T)^P9_CM`A1[Q>_
MBG?,L&T6]WW?K!XH_[J]=A`U,Q`MP<LQ_GQ_9*0-G8`GL$61GE*T/LSRE4M9
M]2G4<S#-.89MD&=!"--M;4U2SA'Y8"FU#"\]%6?+GA3:S*;7AF'/0SGO5,*P
M-8P+N7HJB-!^CRQ>O:1&(O24O0/*]U2%X(S=O+;'</$V<0M'P@5Z`]U,'_8'
M;T29YPA)QW]]+-]<1FH1.L]VTQZ-XGJE7@E1=$\S?MB,[HR@8BJ;K5.AO6_;
MK!).R%6<#]),(K!QKRP4!6J(W=@ZU00?Z+3'&4NBFDMO/O_C3/:':.(N)`49
M)W1,(.0XA"RO5?Q9(A?9S!.''DB.GG(Z*/D"B(^U02;\GV13\,Y.^3[,3IB'
M58.AIZ]36VV.+BL$:<]0)*_6&VB<-WK'AWQ:4Q=J3*(1>)`X!>>K/4MT7GR?
M:I1@Z[2D^V`?H(!^A)Y4P'S`#_0K!'G@JOQ,(\'XI%&\%X7,1,Y,-_@+I$,O
M]7XSC!9.:+%YJK(SEJE)SCJQ)\>>4$G%D\J3FS$GG#%7%$T:M>/(/3Q`&2C&
MM:]N#J`TIM]S!Z5O^JM8O7O)>A`_5+T%2+D'H[PI!O`I##=R\3&:Z=(35!+U
MIFDK/.M@28(?D-&]N-8M.;I7ARE=YIYHWJ67B?$LAZFV&>;I>_$2R@>B41A8
M@6/65K@G^M?%/M=1;B:SU[PDYB1"I,C?[H]AM*_,[3NR3R\IJ%O1_J`U?\4B
M.7<X3(EF0?_7LVF.:'^@:/:C41P(9E)Q3C&'Z.2;(LN6*/MGI7M?RFU;9AD.
MF*#^`0\K"]EGGG*)^\E<1^]ROF)++PG[Q\\J'1)"JQR\*TQS;;@86[90)&[;
M![=O881T0HZ&PD0=[8!3E/+40-8&5JZU^]@/8CYTD_>N"Q>)<S[=)\]?O3G!
M3US6Y&MW2]P3Y\_?8O$JDG]>^KZDCHIKS!MTJ/[JT/C5EIDM\52OXHM/5I>U
MQ']?R<7(Q-VS;D;BY44'>VN'EX6[S].N=WQP/[(^$-A21'VIJ]8>>T5ZD!JJ
M_%%G$24>0L(46\1M"D@*W13ZJFL,Q%=L9*JT0=L3.XF;`:@U9MSB^QD>IZ2:
MZ;&8MXPRI$^&I3?6KT)4`W&UMO'<25DW$SX4FUD#B`>2<9S-?3@8<1@(WFI-
MM6]99>&>:]!D6B-'429?!1PXL\8G7/"8;3Y"9*,;V<I7F)X2;-9\$](<J@:0
M[6RSI$\F=XZ;:?)+ZRE!_RX\1K1^8?`1GI#T$$:*K6C@N;5.>B=`WZZ#!/0%
MLR-!GAV+GLA<]HJQ;<JUD1,\\2X.];.BU:B4<IN+JK%KQ)@T+U]A*-1C>P,E
MFD/N2LDY(6DW+!1IVRX^*56*SXR^I99GD6[#MEUK(2P@1RW"[GOL-]4KAG?A
M4:5(E3).4J=)N^</J-]2/J9\Y?'Q7Y.\@-'O^=W?B9&%==;+>B4U89#W=L>X
M2R'MUGY;U1+MDC4Y\33-5:8WI2+:?*4^>A:-('A.F8=K'#;I'HEM7`8W1KEH
MQ#=,QB"R,I/"N=\JGD'DB=-=OC+4(._.`1U3.T$]O)OSS%/'L9CA@>^EC*]\
MRIA:NC5K`;B>-<$-0^J'$RTQ50W6_"ML<#YTNYB:P]<-/RX'EJLDX7<"FME#
MHU8X!%+2UES2[6C$`OYG`),(E.[HQY:JIC9+HG2\)5J/[L1^]L>AGPY"K&]E
MAB6D<4Q4@5*X6)<@Q9*F3LEN!QO2!"R0AS"C`WZ,J8%F(UCHHM/.%W,VW+9_
M;8Z7`ER]'^).$6?::=GPV'/U0V/_ZL&7+*IUSXG;M>_E'EFN+#D:YZ3C71<3
MP2H46931YHEE/.PAM*R(S)E\@O_W*C%'NC63IXKZ<K_1NBI*.,3F_EWJ[)#E
M],O4GQ1Q!1#S*:)2?^;FF(<C^Q1RK?`9:\EXM^18'K?I#7#(]U5G06V.=6\K
M74XZUY3YXXLJH\.?.`7]_Z2GZ2<!N+%JOH'C#6WG+60TJ"9LBB5!G_:#5;4I
M',XHFZ8ADG7HPKYIG](4#%O$E&GP#;O][V?/Q8&_O.9`Q8K'!E]S8E2#<%$-
M.GKRI%&OK8L1@FO&^&B7%S_/6EJ0XN;WYWCJ1O#Z#F!OA(>GM9C0Y\B`V&D2
MV+71.K_UXRM&ZU2;/(\H209M.SPV)ZF"ALTX&&*P$2??^^-N=.`#=K$.ONI]
MMZE:#UBY`-3T[\A5V$1BR]DDE*@4]>BFN4HQ3313$Y&*?WD4UZD\*;N)/"FP
M4248PO(GVRGK@'3#5!%.V_43L6%=UE)+T5*LRN[=CSL[RFP"4H7<YQ-`F;9)
M_A/^)XCOR\:L+EO3-4$[,R>-S%$L"7@RQ3IXEA,%_4FZTTW2"=AH:AC^L(]J
MD_D/Y7B.\C&K5W,>:2/8K(_UL%J5X6CQO7'N,,`=&4`^ZB,S)Q<6<4Z8KQ=*
MNQ4YPKV<2>F5YU3+%Y_;=;"7H#.><="&1&AK4OQ8<0G-H,:TT8UC.\\:87D.
M8`4?AGCZ,V6"8-T;N8B(7>QJ-E4_U57]=7LX>XW-O<"".TP+U]7V&TL1R#_Q
M]V[$+_7#/>0+UN7%IOBORP"LOEERFNP+7B+W5#8_R73L4>:*/.\`AYY8J]L(
M\.T'O5*UPC#X-J8?*1Y]<9[W0)ZS_6=7DH!]`_*Y/[YT]`"]:=%<(YM<\&RJ
MP^Y=![_7V7REK]\N`.H1&$^P8ES32]"R]YIL"WI:]5I`W\5E8;]$@C[%KY*;
M&.'16'AQW?(*@PEJO\NHY*!OXF8(R_V%65KY-!ZY;!36LM@-!#NIE?7J3PKD
M*[%%=-/M<CR:H@]SZUEGI(>M2$H&Y*J8@GG3-Q8DY$?\J-P$B\L[,IW0<KV!
M6',\9/?@'XB`:+6VODX,[[<@658T&%T9(W<^DY[7S_)JF*EL9'1@WWQP$=?`
M?7;#U*^,^@;)V43IJ5DU`B]ML;C+W/T8*C`>:HTG'U>5(H,FA+--(]-OVOE^
M35+AO&Z(POLX%?%2WPE5XJ52OX;Z,E5)<.[*NC,.ZKRKCHG*].]@58_E,AT=
M08*P*W8%7>?7^(\]BQC)5QWG8"\Y],N[=SIQ"[^[EB%IZQ\#*T4L0'3^D/=(
M#TYM-S`YQB]VAD5VMH)GI+QDN7B^?9>O@D\BA2P+&)QX%?&;H-5\TU&BG_F9
MHMG;Z=L5;;L6O^NQ_\N7_^L>;>J?D#4O8)C1A3G#<]:!SVMB18T.^KID5NW?
MS845-ED>.M#US8*\9&T(A0W"C:`N#*)PL9PJ<_"DPO';-?3[97-]/MK<1?*B
M5ZN1OUB)74:+1OJ.4+'`[XD*[Z77Z9??2W:1PQ9;I:8!5\$;F;1&XB.<+^?R
MAM=GNLT*W67E..FPWTV4W6+4;;XD;H;&(R/AKV?`F;L;!;=_O2<2$46B:^;P
MWKL=1K4$_XE2YQ(3_*]3"W#.^7TK[$\(7)3J2?Y7\,,<=[!]S*''?L`E],:D
MFR.W,R"+&!ZUN9?"F6Y=HM303+4]IU[4J4"+.RCWB56%Z;9H1][+FP0=6["/
MH1M-T0W@T[\2*Y7\Q.VELM-S[:]U4H39*MB-N<*402Y\0RDZ^TGN])2U"-X^
M=5:FPF^]%U]H;IO,1T-(+45>&MNCA?L$1;;`,!T2W)A_Q_/,C<1V1+C=+I\8
MKL"HE1&8M2.+%U7YQ#'Q<3;P<@7#UI]4"_P"MD=9"4NNF3$(E6>GZPP/$-F)
MFG/18E@G%DY\'(/)E9AF9'JA%ILHC/:9\ODTL#$VZC"E?@#VAG>WKV9=B,K_
MP]I6(.S`\3W)7[I50RS/'N%*CM!Y\(XP%<ON*9N6'H$YN6YQ?:.VU<J,_R2K
M/+P=!_S^[KN__[R^J_>NUQQ6]071DJ,/O)_>3$63GS.W'Z;M<CGT9V(R6CC?
MM)]?MY5@?_U;V?*"U]S!T/W2OL6[?E-^5_HMVW*^Q;FS?/B/W.('."W^X^EB
M,%F0P?YAE.M#!X)Q7=X?`-T,2KF:"LM:(#^C\RW7/^GI17<+@$<5G216(GN:
M13P5M^M2"<-:6VF-3RU*X-ASX*Y]KAVH3HWP6<2A0PSW(BUS*QQUZDQ)ZB/8
MK(_3C]YL=^=BPY61<:9'AD4I:+3.VZ(T=K$HQ;6A'">V%MCG&7B*Q$;&@2Q0
M^;0ZZZ'(RG'5T5V[18VC5->T4:B?>B%^YR!3$_BB_9(ZS,&KE:,51'PU`CNZ
M'^XX^_#$/6EIQ\>A?&6^II83^\,)])6IQ6B+2L5@(\M2GSOJJMIZE-?/K3T'
MZ$/ET5('S\"9IQ_SQ9FA3"6T*1!YKS<?^G0IJTV%J."]#V(T,6.M.QM,4#QK
MO6P,07]79.*JU/1A0-)8:G.'KGA=CG3WN<.(_?XD%[GZ$A#I]XNGP_@?#2ZR
M!Z1<&)/O<TO#=,H/"T9"?]@\_C'95LX/X+TJ_/#+O"^CE#07W`R5MU&EO&WE
M/%N=Q'AQ_Q%](^(!]@HVN;R^WMS?7,:\TB7ZD/=`GHE&RL>'>[JYW.FC$$\'
M>GH%S?:;D+5BW>"R.X%.)J4[J;3-D>;_-V][GKJ1/]H95=G'HTD8JWO<X2?G
MS%5AS=Y:O!P#+S;/'<B.NM7G/N:O"A/:W"4B)ZJGP"Z9O(B=5VFLUBO2_YYY
M="+FC@Y]INQMOM=9_#TL61:6'#L+SI.TNCP/-KY5D.<G]U3I0\M3Q(>;D[:)
MZ\-)2DJJPO3J)^N7;9[S;*ULDUV6\K_G(LMYWG5%W][#YT/\XG<+"'ZL/AI]
MX^L:"4H^B8L/C*=/+>5M49..MP)VQH$/WI]YD<6U?PGOL/8M$TKQM_^;"K^;
M90K)2>%DY/_RR>2]BT%-[4*QJ.+D^#><#)VT7T$^\H)3ZQ4]5VQ,+3?L63=!
MEJ?WEI?(TIQAC7YZ_PV_S%4C#VK;B&-UHFN4K(=.!_V#I[$-.L(;E1*&Q6PG
M<X"^G[WI#6SV[C;T>WI-O3;>MK%[>UL0Z[@=_QY>?!WM76+VU56+VC&O'?E=
MYR:\<!R536B<-3/@0T4:`44A180V@HKA12AGU:/H\XO5>QJ9S@)<;L*,:C?Z
M_W2O>E>_*^"5^^4?&&\A\H4OW;/_>4Z(_6L2_/\3]S_:."%Y)%KKP?W(XY[H
M#_Y@_OA7X$W^_]'Q2KJQ*\S>^M;+=T%;6G/'KO2J.)4Y55^NK]FL_Q[_]LO.
MK:Q*"E8EJU4ZYB!OD.P2Y%ES[GGW7/W?/B\^[TRT+_1.V_]II/6(2<_,2>#-
M)0D>E6UB[00D:)"14["1FE(1O--&[P(U=[:$:VF(VT6(PB^F$7DH1="A%U77
M1:Q*$/QS0^Y-#XJ$.UF(=P9"$+U`A;I"%GT(5IIH4R$('BF@:\T"^0@9Y9`E
MUJCB`_ZH/Z9!^U,_+,FG]1Q`=Y2V"?>_Y$.3>"!+KX,EQ>Q@R69IX,EP/],&
M;6Q?/7SY]7OK!]M&M#F6G[GN9:>\^S+3WZ_,M/@L,RT_?M`T#F]<G^PE!#G:
M9#V!X%].:+TQ("]58*L#%?K?38MXUH6H?'[*I%B^N[>.')'+WDT<Q<3<0>%+
MS+/X7@V(W4\W&^W,!\QS,XN-V97/$UF!^2"M;B`^P'R_Z!_86#_2F_5FIOZK
M#\'LV'_O_H5_E[)72+%8X1N,@'$-?]D'ZO9!UG9!U/9!L/L!Z/N]D'OYH.97
MP.R1UVGC&`K47?U93X%W0%\[2PW!>!*]%^;J:K3P/!FT`F=1C68G`FX)H+V4
MP+/F7K+?Z4//+!W(C6Q=?!T[7HK[Z;7FHM`6L6,YL8#,"T\TK;QII3H\O_V?
MZ/'F6+=:0'*[&"Z`?X^RCYF)Y$OS@V%/3&RN&/_&'_IC_\@_\T?\H:M+<?Z,
M?Z8^D<'^H'\.,N*P?ZX$>J(^2D'9-C_!%*S']^/]@/[P?SY,.K'^I']V-:W)
M65R_J#^:GY1?T^EC[KU[+:V-7_7#+P;FX_#<WBJ=./B^^]A0=K!LJQ,#$XES
M%N$]S&CQ][>WUQ;I]P3.PN-S&N[V/<;S>:1BFGX"*D6-N8<4%L6-'3NX=Z`^
MUO+ZXCV</<@ZC1[>X'/5)V%Q>WVZ3C1$[VYW-]O8]Q3TZ=8GKJFW3W%S?;Q.
M'>6Z>NV5NLA-XS!?:W.!<?2732^_/R9#MHU[V"":0N5B%GM;R)&CW<,X7=.'
MN(V]OD]K=PU;@SNRBQMQU[9ICC#+F\N+?47%]NKA/>;F/<7%X$M2::83I69?
M8F;5!25G&AV\W!]F7@;P*X63WB=:>*EB,5*X67VD*%WT(PS,O.=]ULMCW52[
MN_^*>QV>SJ$]Q^).OW4>YWE]&O0OK1[:VO@;2SL^^<IO8L5./<J[H85C(.XC
M[ZXMPH/.V/=;+9&?6,/>7QJ+P=C3[&H33TDMYVR[K95!T+,SM.UO;@9)(*!G
MT,EZ^'>=S?)QKT7D#!-O&_"1VD3OHT9/>7<.+%U!ZV!<PQ5N+Y9B/>#"TOOQ
M[F^N$[B/'C1RA7$.WF4M0\,K*#&OD[B\C;U7=)W=Q=QCC!0!AIK-&K$?__Y*
M0'.F!N?KOV_4)R](>@B)=VDCLG^7I4M7I45Y^&&H2H?G26>G7A[=?/S7@R'U
M+6QH-2WZ!0``E0P``"V&W!@```M&87-T1TE&+D5N9U4_!3-SFM8VXW(,=?`'
MTP)8U0FHTY&Q>>%$VTFT*^:813[AP@F!J)\D=YDG2-W2U%1/C?_[3I+?"WI;
MP@%`@@@FX#6MMIW`7\?9U.?V:,Y>[)CR<O[)G%+A+)[/9RELX%U3M6Y[*YS+
MPRR2>.;N[M/[*O'_/V#!@^4`+<2BVCD+S6>\VEM8TD[&U=!NQ%O:M[SJ)=1=
M4.V\0'8X)"ZGFW:J4X,]54Q*<XZ=E$6)956J7R75NAVT;J<;66/74;L9<6L,
ME'R8?B/&V`(,U%_+2O<K#C_W%TJJOL>6PR<R@/"AE1DQ(+#DX$CP5N/$6RQY
M<&6(G%M:9T<(,685$:L=PR6\F5%X=?V.3J^3BXJ%^1EG:<Q9UNG'=/"C:9:V
MNGID'%1P)>V#*E937089"2Y952R9>U9S"+L&#KT2=7=ET>W-JP?*NY$DXJL?
M.D8N22&FZME3E"FA,VP=$RJ1(3D[5E#TID.Q&NB<4:$P='3EZ\$6UQEH>B$E
MSJ&/1)I.EC>`EABID8Z712E.K+[<.(4[H9*H5\*A3=QEL'-Y%Q?=R\G^=E]@
MU%S_?R%_<N;)RE6O\SH</Z5]@AS"D`=FG3"`8P%[C#O2Z6(J5+J=?>TE-.\)
M5CD@WS1+G7NG%4V5O72MQ^H0H0%Q/WKEB"1`\BYNNQNQ@G_#?.CIV6`!8`F?
MF&[%,WK?.7W`GBWN`!FS."#*I*B)4R+GX7Q#:,01*ZD49(ZF6;IR>P4U>E-$
M5)52SGC^;XWL:`?`$W?KDZD!CX9>X#=64S$O%.KS.':C&/PB)9TK6!T1J=Z-
M43),"\@,#6V5O%$[S&I7'MT^\M>DO&3,6?+)K';P?0\?H3%ZO(TAX3FW=92=
M3THW+.A^4E2I5)W!BN=.*%_#$W70^&@*#@E-="N#B<O_01*K*=AM<B[*RA@X
M4(8Y@=N(L>.$IZ:A<"*N)+N,I=8?R/@[HP78RNZ/_T$ZV(]"88Z+L,8^[?F@
M]JP(LN*)FBJ`^E)?>,(1C[#<OZ?FOZ0(>00C<@9A<.U`-TJJP'QK*;JF0R=Z
MV?\MW?)DMC7,;BM#W)VZ,^N^;XJ-H^E%DYXE.#/`KJXJ>7NM4:6`&8#VF`]R
MYK[/^@+(X3+H!6[UK&F0Q,SMBWK9!]&"+BRUT&5C(ZC.]X%SL.J6=+NIDH94
M^,176;MS"\?<>UY=\,.8#YUZ<''Z'T\8*$:W@^CS5,D8;FGPXQ4,8=$";=@W
MMFD8F3M.A?:N)`I%><(`86C/G+(G!S6G%Q%DB<]`S<OWPXX0GE\=?;INRV0"
M;(80J3MJ#9N&5!*%IH8W.XVG6QHQ1[:`/L:XS?+C05P5\H3Y10:&B5*>BK.\
MZ!GM,OQ323]KIQ@E_+>F"H2K2"L#+%L710Z&A_#!C:-L*V.C`M;6;FJII&)>
M9DKK<K0=/+S<]K$#,C4"&*K$2Q2:BA&4\9)D`5,JM_KG\38F%KUD^UVKJ#<I
M4D=BD^QENPAJ2IM7NZ$5_?`?`A.4W0%>"!.2:Q;2\"6(IV;QG%$2C1?"36;Z
MBXNKMT>!?VAA[CN;NQH)394KX5UM"^J:87P=>=[^/#&Y>;$6JP8++"\*!J85
M9?VO9DY^3D*3+[M'9W_`I/'46G5V9K^]GU9>_JS0<R;61+1[16JT9.;VJ71#
M29#!'94\<TAC*RF+R'BPX?2(:^<5`Y,G/^"]E.3'*N5M>/XV.<L[,>UL$+]+
M<2M1O_ZJR@EE!_17_=5VME6VO_&3&!H!`]?'-_0NF'2AGYT2:].KX8/3/'QE
MJS=V;*-!0\D;DR72+G6UR>"U0:G'@_5'Y;D?K-/#$2T*7\YOKCLZQQ[W38G@
M9?F,*'04D,7WN\$#-,PX>%W;KWAO&!(:+3KWYL)L9:$R,19GM&H62W$0AO-1
MZYUU>77;BSNP:X_UBS)R719W@1J!ECCF_K"<F-$%TCB"NE3PN5D-_4C3-(QM
MR:H+.E<TU%^7"W)W_Z%[ZV6W551=6^YT(:F.?5!"Y9IC^DOWV,[SWCQDMS!X
MD<],,$$WRL]T`CQ?7`NV;5#'G__T8<U7Q9POW_?5Z?8`(;\M;&@U+>8&``"*
M#@``[H3<&```"T9A<W1'248N1G)A,(P%T726VC;;<>USX`_W0E)-PHM$QI6-
MS1A2121E+*.$$FY=3@!Q*YL`<+W#C6GD\3YJ03P!^_X``M)JMVQZ4R9-P'=6
MVTY<+^/NM#:.S-UEMQ8<6/ZIEZ*^6+U>K&4Z&%T][%-H7/WI+3D@@V9<^?N^
MJMR?S]<N7/&`4MH)TQ<%)_XEA1W52HWI:2'%N6R5%!!$^[^^`E2$@J:*2IB8
MJ@DS%TE.MS'LR2ZJ:A+-R(DDE_L0UJ989$N8]%*1)1TQ+EG1%0'`:+(@/5KD
M2*:BA2YL+V5>Z;IPE^92H*)<TR%-:B8-<,&N)#C8?[/(YI,1.J-)-#BR2JWH
MOX?E+TP1TNH+]:&!?3-&[`^J`;1^$2KQ]T8K$Q4+J7LZ,4%'A]S7L\..-<J%
M&SW0R*BP$MUJ/T=$`C$2@U+A#(;D:CE(O]N$<74,B[U<$G!C5JH>T)T-*5<:
MMRJ4B,[ES)MRZM>:"#+[,NC7<\[9&HY[J'4'5#RE.A,SB8ELZYFHA.LQQNN6
MJXS*6NDH1-0/-7:EU"K*XV4E>_\^6`NK+UY-FN"YYOOD+-(52NDH4H=$MTYT
M2EIE6H0)>%1XN]#-[[3;E";J[3@!6K)[+^`D22+=7`:#\;[#0R+B"'0:=>^W
M'RE_A9J0$@_TO!TX3>\2I<_IY?[<V+'?MB_)MR:->3LRP?2E[XS,)-#/TM!-
M$@Q$C_EB39A_#4S-5"?B`#^(WA__D,-\;+GH5*IM)D;E1[U2NEPE>C2[W@E2
MF^0CSOOK<R%8H'?M@Z,7\"T`&B;DS1+%.I5&P&OF<OMQE"JAOTB?C!50CFG%
MUD(#WOI0`%*`CT3-.PL2`YL/U?:@)_=NI8F45[.:M.3/6;C1K@Z:U7:MSVSP
M3\";$Q<D@6I*L$/%L5-,I?UE`W5?._XL"B%4M+[9[->;/F@R:\W=H_Z&/Q-@
MP&G%0KHHB`IN?$@:\RY2C=XM[!5/`#T=<*@2*D#-1N-%$((*A"A'&"M@0F><
MS0N.IF`L(^-_;`]WW%KE^M@TI`&*BVUC_JLQ0MP;P!^Y7`%=2WUW+,QV>O]^
MLLQY$Y#R)]TWH[MVZQ![;4'M,Z/)JI:N1SS(5)!7GX1WSN=4JX2FNH?@V`):
MX_;?PV-3NM:G=P2R")$WF]<L'36@:3IFU;*#!:FRO+]"]7J\[UV3U\/*>A8F
M(0"^HIDLGG=X(J":8"PS*$RSM>-J#MS=>L[`U-I4V\%Y+<@"2/`*<J"",7.4
MZO>F1OW^;0#+>%[BT,F?6=F&GI5G?6+VN:`8@S4*V1FS?$5&>N2*7Y"K;M/)
M4`R`^8I<-83JLVJJ\'*W>T4/,@;7X):LHADUH/+T/!_E;/="#D]YX%`+>4Q,
M"$)O*0;=3O)V(.GA:*L^)=>3-JRW/+%KLL#,><>R\QMV08*'^28:2D#!F)CW
ML4VS:^TJ]W4=6QJS5M\06UFT@0#I;T,CJT65E/?CRS=?66(:RN9^(?`6*O$@
M,#>/TO_JJ.=FO+LU7/CJ=RS<%^"?AR#0>7!9VDWB"SJ:&+"[>WD8F><!S`+*
M(L+R[!6UC'`FK<8-O#Z^'7F%29ANL<>`M>]B)1?SJTGMQ/3&*HWHD-[RM)+4
M0;\0%]+!P,#N52-?0S5F%ZA[DC7$_"2;C.R`U"C+,/1DVC-BL35Z,?I/>J;*
M>I-J0&ECYN?C8H0(_/2^NW@2(T3@\WQVE%648V&`6'.AV'%!!`<TP*,=)#KR
MJ:KBQG25\)\%F%<4.W*WN8_T>M\'>$[\6PH;$EM1<P>5IR6##F(7H,0N`9-0
M'!0UCA-/;)>Z>W-I+^H#3!KOOQW<8@EJKR.,BDWUQSV2W3V"B"?S/A>1L-Y6
MXZL-N.G^.4KCYL!:A<$0_ID10!96^KU8N?EY2@R;<W9H_T4&S47=J[,MONZ]
M631TY7N9;JIVI/58?(%.Y^7V#.D_D5\$2/X>=9_"@2+%OSQGS.;_&*9^<5KY
M<7/^"H9<6&)43)\(5&@J>'<QZ%^56:_0FCZ*L0-W(G_ZO^ZKN9$ID_W8L()O
M,"@\?OR+H50:F/NW-!K[OC@&,IXV]Y=4`V2GT(.7%9(^FK#`FR_=SYI6.Q*Z
MG\VP[<F"/F^SQX3MFC/9,70!*)FD3PI&A>!^9S;I,6"'B@`;X9/TEJXAUNL[
M"7XW4*'"Y:_EZ5LVK,-[$>Y(8Z0GB<=2=?>J;W=2FCV^&'YQ?BY;(OV^/0).
M^?RQF>>,@X.JR#6Y!4#-5139+6?CD.?Q*CYW(XCQYC#PME$,!#!Q./_0E;6W
M;66!_3:FMIK!;K"KX]=CY^;)ML9H,JPZG\F]8Y+G>"[U9LT5]1.RTU['S%]A
C:<^R`&[TYNK+?N7+G[=>;)*X;C^1YM'R@C@F*WBA_TX_7``5
`
end
END------------------------CUT HERE--------------------------