New control panel version

This commit is contained in:
Zane Kaminski 2021-03-31 06:27:34 -04:00
parent b928079d45
commit 015a3c5cda
7 changed files with 294 additions and 184 deletions

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
#include "RDiskCP.h" static long RDiskCPMacDev() { int i; // Check signature and return 0 if doesn't match for (i = 0; i < sizeof(RDiskSig)-1; i++) { if (RDiskSigAddr[i] != RDiskSig[i]) { // If signature doesn't match, // fail if not holding R key if (!((*((char*)0x175)) & 0x80)) { return 0; } } } return 1; // Otherwise return 1 if signature matches } static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { GrafPtr savePort; Handle h; Rect r; short type; char startup, ram; // Get startup and ram from PRAM RDiskCPReadXPRam(1, 4, &startup); RDiskCPReadXPRam(1, 5, &ram); // Save GrafPort and set port to dialog before updating items GetPort(&savePort); SetPort(cpDialog); GetDItem(cpDialog, BootCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x01 ? 1 : 0); GetDItem(cpDialog, MountCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x02 && !(startup & 0x01) ? 1 : 0); HiliteControl((ControlHandle)h, startup & 0x01 ? 255 : 0); GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x03 && ram & 0x01 ? 1 : 0); HiliteControl((ControlHandle)h, startup & 0x03 ? 0 : 255); // Restore old GrafPort SetPort(savePort); } static void RDiskCPHitDev(short message, short item, short numItems, short cpPrivateVal, EventRecord *theEvent, void *cdevStorageValue, DialogPtr cpDialog) { char startup, ram; RDiskCPReadXPRam(1, 4, &startup); RDiskCPReadXPRam(1, 5, &ram); switch (item - numItems) { case BootCheckbox: if (startup & 0x01) { startup &= 0x0F & ~0x01; } else { startup = startup & 0x0F | 0x01; } break; case MountCheckbox: if (!(startup & 0x01)) { if (startup & 0x02) { startup &= 0x0F & ~0x02; } else { startup = startup & 0x0F | 0x02; } } break; case RAMCheckbox: if (startup & 0x03) { if (ram & 0x01) { ram = 0x00; } else { ram = 0x01; } } break; }; RDiskCPWriteXPRam(1, 4, &startup); RDiskCPWriteXPRam(1, 5, &ram); RDiskCPUpdate(cpDialog, numItems); } pascal long main(short message, short item, short numItems, short cpPrivateVal, EventRecord *theEvent, void *cdevStorageValue, DialogPtr cpDialog) { long ret = (long)cdevStorageValue; // Switch to our A4 world EnterCodeResource(); // Handle message switch (message) { case initDev: if (RDiskSigAddr[sizeof(RDiskSig) + 4] == 0x57) { Str15 ramSize; ramSize[0] = 2; } } for (i = 0; i < sizeof(RDiskSig)-1; i++) { } if (RDiskSigAddr[i] != RDiskSig[i]) { } // If signature doesn't match, case closeDev: ret = cdevUnset; break; case macDev: ret = RDiskCPMacDev(); break; case updateDev: case activDev: case deactivDev: RDiskCPUpdate(cpDialog, numItems); break; case hitDev: RDiskCPHitDev(message, item, numItems, cpPrivateVal, theEvent, cdevStorageValue, cpDialog); break; }; // Restore old A4 world and return result ExitCodeResource(); return ret; }
#include "RDiskCP.h" static long RDiskCPMacDev() { int i; // Check signature and return 0 if doesn't match // Don't check for length byte at beginning or null byte at endss for (i = 1; i < sizeof(RDiskSigStr)-1; i++) { if (RDiskSigPtr[i] != RDiskSigStr[i]) { // If signature doesn't match, // fail if not holding R key if (!((*((char*)0x175)) & 0x80)) { return 0; } } } return 1; // Otherwise return 1 if signature matches } static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { GrafPtr savePort; Handle h; Rect r; short type; char startup, ram; // Get startup and ram from PRAM RDiskCPReadXPRam(1, 4, &startup); RDiskCPReadXPRam(1, 5, &ram); // Save GrafPort and set port to dialog before updating items GetPort(&savePort); SetPort(cpDialog); GetDItem(cpDialog, BootCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x01 ? 1 : 0); GetDItem(cpDialog, MountCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x02 && !(startup & 0x01) ? 1 : 0); HiliteControl((ControlHandle)h, startup & 0x01 ? 255 : 0); GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x03 && ram & 0x01 ? 1 : 0); HiliteControl((ControlHandle)h, startup & 0x03 ? 0 : 255); GetDItem(cpDialog, DebugCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, startup & 0x04 && (startup & 0x01) ? 1 : 0); HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskDBGDisPos ? 255 : 0); GetDItem(cpDialog, CDROMCheckbox+numItems, &type, &h, &r); SetCtlValue((ControlHandle)h, !(startup & 0x08) && (startup & 0x01) ? 1 : 0); HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskCDROMDisPos ? 255 : 0); // Restore old GrafPort SetPort(savePort); } static void RDiskCPHitDev(short message, short item, short numItems, short cpPrivateVal, EventRecord *theEvent, void *cdevStorageValue, DialogPtr cpDialog) { char startup, ram; RDiskCPReadXPRam(1, 4, &startup); RDiskCPReadXPRam(1, 5, &ram); switch (item - numItems) { case BootCheckbox: if (startup & 0x01) { startup &= 0x0F & ~0x01; } else { startup = startup & 0x0F | 0x01; } break; case MountCheckbox: if (!(startup & 0x01)) { if (startup & 0x02) { startup &= 0x0F & ~0x02; } else { startup = startup & 0x0F | 0x02; } } break; case RAMCheckbox: if (startup & 0x03) { if (ram & 0x01) { ram = 0x00; } else { ram = 0x01; } } break; case DebugCheckbox: if (startup & 0x01) { if (startup & 0x04) { startup &= 0x0F & ~0x04; } else { startup = startup & 0x0F | 0x04; } } break; case CDROMCheckbox: if (startup & 0x01) { if (startup & 0x08) { startup &= 0x0F & ~0x08; } else { startup = startup & 0x0F | 0x08; } } break; }; RDiskCPWriteXPRam(1, 4, &startup); RDiskCPWriteXPRam(1, 5, &ram); RDiskCPUpdate(cpDialog, numItems); } static void RDiskCPInitDev(short message, short item, short numItems, short cpPrivateVal, EventRecord *theEvent, void *cdevStorageValue, DialogPtr cpDialog) { Str15 ramSize; Str255 dbgName = "\pMacsBug"; Str255 cdromName = "\pCD-ROM Ext."; int i; ramSize[0] = 2; if (RDiskCPMacDev()) { ramSize[1] = RDiskRAMReq[0]; ramSize[2] = RDiskRAMReq[1]; } else { ramSize[1] = '1'; ramSize[2] = '6'; } if (RDiskCPMacDev() && *RDiskDBGNamePos != 0) { for (i = 0; i < 255; i++) { dbgName[i] = (*RDiskDBGNamePos)[i]; } } if (RDiskCPMacDev() && *RDiskCDROMNamePos != 0) { for (i = 0; i < 255; i++) { cdromName[i] = (*RDiskCDROMNamePos)[i]; } } ParamText(ramSize, dbgName, cdromName, 0); } pascal long main(short message, short item, short numItems, short cpPrivateVal, EventRecord *theEvent, void *cdevStorageValue, DialogPtr cpDialog) { long ret = (long)cdevStorageValue; // Switch to our A4 world EnterCodeResource(); // Handle message switch (message) { case initDev: static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { for (i = 0; i < sizeof(RDiskSig)-1; i++) { static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { if (RDiskSigAddr[i] != RDiskSig[i]) { static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) { // If signature doesn't match, case closeDev: ret = cdevUnset; break; case macDev: ret = RDiskCPMacDev(); break; case updateDev: case activDev: case deactivDev: RDiskCPUpdate(cpDialog, numItems); break; case hitDev: RDiskCPHitDev(message, item, numItems, cpPrivateVal, theEvent, cdevStorageValue, cpDialog); break; }; // Restore old A4 world and return result ExitCodeResource(); return ret; }

103
RDiskCP/RDiskCP.c.hqx Normal file
View File

@ -0,0 +1,103 @@
(This file must be converted with BinHex 4.0)
:#9*%DA0V3e!ZB`"849K868e$3`%!N!-4V3!!!CVCNb0TEQ0XG@4P)#*54'PcDd0
3,QJL$3ecG'&dD@-JE'pZCb"54'PcDd036@&M4'9f+#NJH`d*D@jd)'Nl$3N[,b"
$D'9MDb"cD@GZBA4eFQ8JB@jN)(*PG(9bEL!`)'PQ)'4[CA0Z*h3JE@&dBfJ0#5m
[)%4[ELGd)'0SC@0V)'C[FL"XC@jRG'JJBRPdC5"KG#"LC@GTEQjTEQFJEh)JER9
XE#"LHA4P)'&d)'9ZC(0c$3PQEh)J+'NJ25!a1b"T)$`JFfPkC@pQ+&*%DA0V8fP
R8h4b+5da1b"T+bXT)(X0#3PTCL!S8N4TFfY6D@G3G(*ED9dJ)6dJ8N4TFfY6D@G
6G(*ED9dT)(X0#C!$,bmJ5@BJFfPREQ&dGA*P)'4[CA0Z*h3JE@&dBfJX$3Q3!bm
[)'CKD@`JD@BJEQpd)'K[E'4TEQFJ8L"VCAN0#C!$D@BJ+#%S+#SS+'0SBA)U+6"
i-6Fe+5NJ*L!`H$J`+5NJHb"bCA4eFQiJ-$XJI3d*#Ad0#Ad0#A*PG(9bEL!a1b!
[,b"2G'KPFRGTFf8JFQ9dGA*Z)$%JD@BJFfPREQ&dGA*P)'eKG'0SCA-0I3d0Fh4
KG'PM)(C[D@3J8N4TFfY$8&9`C'&dC5K%D@&XEfG3G()JBh"%D@&XEfFX)(0SEh*
d)'jeE8PdC@ec+5"l$3P(FQ&Q8(4b)(0KGQ93Eh*d1`d*5'&ZC'aP)'Jl$3P5C@0
d)()l$3PcD'pbG#"dHA"P1`d*BfKKFL"cG'&bG(9`,#"bB@dl$3N0#5m[)%GPG#"
cG'&bG(9`)'&ZC#"bB@dJCR*[E5"38N&0$3P54'PcDd038Q9KC&K38Q&Y+$%X)$3
X)#CcG'&bG(9`+6X0#9*%DA0V3e"5C@&N@&"5B@dS-5`J05`J*R*KE5Nl$3N0#5m
[)&0KGQ8J4h*KCP"[FR3JB@jN)(0PG#"`Eh*d)(4[)'4TB@a[Cb"LC@C[FQ8JGA"
NBA4TEQFJDA4PEA-0#8GPG&"[FR3S*R0KGQ93Eh*d+6X0#90PG&"[FR3SBh"%D@&
XEfFT1`d*$3P(CA4%5A4PE5KMF%4TB@a[Cb`J3Qp[G%0SC@0VBQpi+fjeE8PdC@e
c,#!QG(P`C5`J*QJX)#Cb+6X0#90PG%0dE&CKE(9P+#K$EfjdFQpX5'&ZC'aP+@J
X)(0dBA*dGA!J*L!`H$!a)$mJ-5!k)$!T1`d*$3P(CA4%5A4PE5KMF%4TB@a[Cb`
J6@peER4$D'9MDf*[H#YZG@e*G'9YFb`J*R4jF'8X)#CS,#!QFLNl$3P6CA4$G'a
@B@aeC5JS3fpZG(*[E%KKEQ4XC5PS,#"cG'&bG(9`)#BJ-(J`-L!Q*L!K+(0dBA*
dGA!J*L!`H$!a+5!r)$%J1L!`+6X0#8KTE'PdC80[ER4bEf`S+%0[ER4bEfa)B@j
NE'8TD#`JFh4KFR4eF#!Q)$"i-$%J2b!b068J1L!`+6X0#3d*4f9d4%PdC@dSBh"
%D@&XEfFX)&*"680SC@0VBQpi+fjeE8PdC@ec,#!QG(P`C5`J*QJX)#Cb+6X0#90
PG%0dE&CKE(9P+#K$EfjdFQpX5'&ZC'aP+@JX)(0dBA*dGA!J*L!`H$!c)#BQ)(*
KE5!Q)$"i-$%J2b!a)$SJ-#Nl$3P)D@aTG'9$EfjdFQpX+#K$EfjdFQpX5'&ZC'a
P+@JX)(0dBA*dGA!J*L!`H$!c)$mJ-#!k)$)e05Nl$3N0#8GPG%4*G'9Y+'0`4'P
KE'pR,#"%C@*eCd0SC@0VBQpi+fjeE8PdC@ec,#!QG(P`C5`J*QJX)#Cb+6X0#90
PG%0dE&CKE(9P+#K$EfjdFQpX5'&ZC'aP+@JX)(0dBA*dGA!J*L!`H$!d)#BQ)#K
cG'&bG(9`)#BJ-(J`-5NJ2b!a)$SJ-#Nl$3P)D@aTG'9$EfjdFQpX+#K$EfjdFQp
X5'&ZC'aP+@JX)#%SFh4KFR4eF#!Q)$"i-$%T)(am)#%U8N4TFfY%3NG%DA03Eh-
J2b!b068J1L!`+6X0#3d*4f9d4%PdC@dSBh"%D@&XEfFX)%0%8Np03fKPBfYLEhJ
VER9Y5A4PEA-X)#CdHA"P,#!QD#`J*R)T1`d*8f9d3h4X9Q&XG@8S+%0[ER4bEfa
)B@jNE'8TD#`J)5KcG'&bG(9`)#BJ-(J`1#NJ*LBJ+(0dBA*dGA!J*L!`H$!a+5!
r)$%J1L!`+6X0#8KTE'PdC80[ER4bEf`S+%0[ER4bEfa)B@jNE'8TD#`J)5KcG'&
bG(9`)#BJ-(J`-5NJI(`J)5T54'PcDd0%8Np04'Pc8'pc)$mJ-M8e)$SJ-#Nl$3N
0#5m[)&*PFh4[FQ8JEfaN)%GbB@C3Eh*d$3P6CA43Eh*d+(0KGQ93Eh*d+6X0I3d
0Fh4KG'PM)(C[D@3J8N4TFfY$8%KTG%4PGLKcD'pbG#"YCA0cB@GP,#"cD'pbG#"
TG'9Y,#"cD'pbG#"ZG@e*G'9YFb`0#C!%)*!$FfK[FR3JBh"3FQPfBA4P9Q&X,#"
&GQ9ZG&*PBfpbC#!UG'KP4ACPER3X$3Q3"##3!hC[D@3J+Q0NCAC6G'pbB@GP9Q&
XG@8X)%4TB@a[Ce"dFL"MF%4TB@a[CbNJH`d*BfKKFL"cG'&bG(9`,#"bB@dl$3P
54'PcDd038Q9KC&K38Q&Y+$%X)$3X)#CcG'&bG(9`+6X0#9*%DA0V3e"5C@&N@&"
5B@dS-5`J05`J*R*KE5Nl$3PcGfPdBfJJ+'PdC@dJ,5"ZG@e*G'9YFbNJH`d*#@0
KFf8J3Qp[G%0SC@0VBQpi1Jd*N!0TCL!SFh4KFR4eF#!Q)$"i-$%T)(XJFh4KFR4
eF#!Q25!`H$"')#BJIM"i-$%l)(d0#C!$C@acC5"l)(0dBA*dGA!J25"cG'&bG(9
`)#BJ-(J`4L"m)$"i-$%l)(d0#C!$BR*PB@Xl$3N*Bf&cC5"0Eh9ZG%0SC@0VBQp
i1Jd*N!0TCL!S)5KcG'&bG(9`)#BJ-(J`-5NT)(X0#C!%D@BJ+(0dBA*dGA!J*L!
`H$!b+5"l)(0dBA*dGA!J*MdJ-(J`4L!Q)(i`H$!b1b"p$3Q3"'9XFf8JHb"cG'&
bG(9`)$dJFh4KFR4eF#!Q)$"i-%BJI#!`H$!b1b"p$3Q3!hd0#C!$BR*PB@Xl$3N
*Bf&cC5"538e$D'9MDf*[H$S0#C!$D@BJ+(0dBA*dGA!J*L!`H$!c+5"l)!d*N!4
TCL!SFQ&Y)#BJ-(J`-5NJHb"bB@dJ25!`H$!`1b"p$3Q3"'9XFf8JHb"bB@dJ25!
`H$!a1b"p$3Q3!hd0#C!$BR*PB@Xl$3N*Bf&cC5"%C@*eCd0SC@0VBQpi1Jd*N!0
TCL!SFh4KFR4eF#!Q)$"i-$%T)(X0#C!%D@BJ+(0dBA*dGA!J*L!`H$!d+5"l)(0
dBA*dGA!J*MdJ-(J`4L!Q)(i`H$!d1b"p$3Q3"'9XFf8JHb"cG'&bG(9`)$dJFh4
KFR4eF#!Q)$"i-%BJI#!`H$!d1b"p$3Q3!hd0#C!$BR*PB@Xl$3N*Bf&cC5"$4&*
2680SC@0VBQpi1Jd*N!0TCL!SFh4KFR4eF#!Q)$"i-$%T)(X0#C!%D@BJ+(0dBA*
dGA!J*L!`H$!i+5"l)(0dBA*dGA!J*MdJ-(J`4L!Q)(i`H$!i1b"p$3Q3"'9XFf8
JHb"cG'&bG(9`)$dJFh4KFR4eF#!Q)$"i-%BJI#!`H$!i1b"p$3Q3!hd0#C!$BR*
PB@Xl$3Pp1`d*8N4TFfY$8&GbDA4P@&"5B@dS-5`J0#`J*R0dBA*dGA!T1`d*8N4
TFfY$8&GbDA4P@&"5B@dS-5`J05`J*R*KE5Nl$3P54'PcDd039A"NBA4P+'0`4'P
KE'pR,#"ZG@e*G'9YFbNl$Ad0$A0dBA4TBb"fEfPN)&*%DA0V3e"*EQPd4'9f+(0
SEh*d)'ePFh0KCf8X)(0SEh*d)'PdC@dX)(0SEh*d)'jeE8PdC@ec,!d*N!BJN!0
cD'pbG#"MF&"bDACKG'9@B@`X)%9fC@jd8Q9MEh*N)#TdD'9&GQ9ZG#`0#C!')*!
$GQpTC#!UBf4PGP0dEh*KCf9@B@aeC5`J4'PKE'pR8(4b)'0`4'PKE'pR+5"l$3P
6G()a05"bB@e6DATP1`d*8h4b-M8e)'4LCdjKE@8J25!LA("0B@0c3R9R)MX0#90
dFM)e05"MC(*[E8jKE@8J25!LA("$4#e56ddJ4AKd,L)l$3PTER3JD6X0#A*KE90
THQ9E-&dJ25!b1`d*D@BJ+&*%DA0V3e"0B@0%CABS+5NJH`d*#A*KE90THQ9E-9d
J25"54'PcDe*"69*PF9X`A6X0#3PbB@e6DATP@c*G)$dJ8N4TFfY538e5CA&E-9d
l$3Pp)'9XFf8JH`d*#A*KE90THQ9E-9dJ25!R-5Fl$3N*FQ&Y8fPkC9XbA5!p)#F
f*cX0#Ad0$3PTCL!S8N4TFfY$8%eKBd4PGLJT)#BQ)#T54'PcDd4#4djKE@93Eh-
J)6dJ-#NJH`d*#@C[FL!SD5!p)$!l)'NJ2#!b068l)'NV+bNJH`d*N!0NBQG1B@e
P@fPG)$dJ+#T54'PcDd4#4djKE@93Eh-T@fPG1`d*#Ad0#Ad0$3PTCL!S8N4TFfY
$8%eKBd4PGLJT)#BQ)#T54'PcDd0%8Np06Q&YC9"[Fb!K25!`+5"l$3N*CQpb)#K
T)$dJ-$XJD5!m)$)e06XJD5XV+5"l$3Q3!f0NFQpY6Q&YC9YTA5!p)#JU8N4TFfY
$4&*268jKE@93Eh-T@fPG1`d*#Ad0#Ad0$3P3BA*KE94PH(3SFQ&Y8fPkC5`JC'*
R6Q&YC5`JBf4bEfe1B@eP,#!`+6X0I3d0F'&cBf&X)'a[EQFJE@&TELKcD'pbG#"
YCA0cB@GP,#"cD'pbG#"TG'9Y,#"cD'pbG#"ZG@e*G'9YFb`0#C!%)(0SEh*d)'0
`8(*TGQ&dC9CKE#`J4ACPER45C@0[FQ3J+R4SC89fC@jd,!d*N!3JGQpTC#!UBf4
PGP0dEh*KCf9@B@aeC5`J4'PKE'pR8(4b)'0`4'PKE'pR+3el$3PXEfjR)(*PG#!
p)#KXEfjR+@0NCAC6G'pbB@GP9Q&XG@8l$3N[,b"6GfPdBfJJG'mJEh9b)%%d)(G
[FQaN$3P&ER4PFN0[C'95CA0[GA*MC5JT1`d*,bmJ5'&ZC'aP)'ePFh0KCf80#A0
hDA4MD#!SE@9cFf&RC5NJH`d*#@0KFf8JD@jTG%4PGMS0#C!$8N4TFfY$8%PZDA4
%CABSE@9cFf&RC5`JDA4PE5`JER9Y5A4PEA-X$3Q3"L#3!f0`8(*TGQ&dC9CKE#`
JG'KP4ACPER3X$3Q3"L#3!f0NCAC6G'pbB@GP9Q&XG@8X)'0`4'PKE'pR+6X0#C!
$,bmJ+'CKE'`JG'KbEh9RD#"dEb"bCA4eFQiJBf4PGP9ZFf9d+3d*#@0KFf8JBfa
[Ff9%CABk$3Q3!h*PG#!p)'0NCAC9ER0PG$XJBR*PB@Xl$3N*Bf&cC5"YB@0%CAB
k$3Q3!h*PG#!p)&*%DA0V3e"0B@0%CABS+6XJBR*PB@Xl$3N*Bf&cC5"eF'4KG'9
%CABk$3N*Bf&cC5"KBh4TGN4PGMS0#3PMBA0P)'4PB@0dDAC%CABk$3Q3!e*%DA0
V3e"9F'4KG'8SBh"%D@&XEfFX)'jeE8PdC@ec+6X0#C!$BR*PB@Xl$3N*Bf&cC5"
SDA4%CABk)!d*N!054'PcDd035'Pd4'9f+'ePFh0KCf8X)'PdC@dX)'jeE8PdC@e
c,!d*N!BJ)'0`8(*TGQ&dC9CKE#`JG'KP4ACPER3X$3Q3"L!JBf4PGP0dEh*KCf9
@B@aeC5`JBh"%D@&XEfFT1`d*N!0LFQ9KDcX0#Adl$3N[,b"5CA0dEh*P)'pXC#"
"0#"hEh*XC#"KEQ3JFQ9dGA*Z)(*PFh9XG!d*4AKTG%0[C'95CA0[GA*MC5JT1`d
*FQ9dGA*Z)(*PG$X0I3eQY3!!!3#3!`&8!*!$9!#3!dB"2Krh!!-"m!!2j3$P!!)
IMi$i!!3"m!!2J1B!j3!#$`P54'PcDd03,Q-#!*!$9%9B9%e03d-"!2q3"!#3"P4
&@&40680$!3$rN!3!N",FA1kS!!!6F3!!!CS'"i!F+%4H91X!eJ!'"i!#I%4861X
!eJ!'$i!L4%4561X!eJ!'$`!F4%1441X!eJ!!(q8!jJ!$!3!!#28!!$lP!1B!!`'
!!"Me!!"qj3$Q!!-$`!!mpJ!"!IcP!1B!!`2!!$cf!!%2q18!jJ!$"m!!2[B!!6r
`j3$Q!!-(J!!HpJ!"!*!$5!!*6@pZB@0[!*!E!`!%!&F!!`(F!RN!9`!$!G`#HGa
H9!S!!!l5!!!1dJ!!#pi"!*!%"!!"!!%!!!%!N!-"9!#3!e3!N!0'!10'b!hf!*!
$(!"'!!&08&05!*!$%NeA3N)!N!-H!qhrr`#3#!2`rrm!N!0-!*!%!`)!:

View File

@ -1 +1 @@
#ifndef RDISKCP_H #define RDISKCP_H #include <A4Stuff.h> #define BootCheckbox 3 #define BootCaption 6 #define MountCheckbox 5 #define MountCaption 8 #define RAMCheckbox 7 #define RAMCaption 10 const char RDiskSig[] = "RDisk"; #define RDiskSigAddr ((char*)0x40851D91) #pragma parameter __D0 RDiskCPReadXPRam(__D0, __D1, __A0) short RDiskCPReadXPRam(short size, short offset, char *where) = {0x4840, 0x3001, 0xA051}; #pragma parameter __D0 RDiskCPWriteXPRam(__D0, __D1, __A0) short RDiskCPWriteXPRam(short size, short offset, char *where) = {0x4840, 0x3001, 0xA052}; #endif
#ifndef RDISKCP_H #define RDISKCP_H #include <A4Stuff.h> #define BootCheckbox 3 #define BootCaption 6 #define MountCheckbox 5 #define MountCaption 8 #define RAMCheckbox 7 #define RAMCaption 10 #define DebugCheckbox 13 #define DebugCaption 14 #define CDROMCheckbox 15 #define CDROMCaption 16 #define RDiskSigPtr ((char*)0x40851D90) #define RDiskSigStr "\5RDisk" // sizeof(RDiskSigStr) == 7 #define RDiskDBGNamePos ((char**)0x40851DA0) #define RDiskDBGDisPos ((char**)0x40851D98) #define RDiskDBGDisByte ((char*)0x40851DA8) #define RDiskCDROMNamePos ((char**)0x40851DA4) #define RDiskCDROMDisPos ((char**)0x40851D9C) #define RDiskCDROMDisByte ((char*)0x40851DA9) #define RDiskRAMReq ((char*)0x40851DAA) #pragma parameter __D0 RDiskCPReadXPRam(__D0, __D1, __A0) short RDiskCPReadXPRam(short size, short offset, char *where) = {0x4840, 0x3001, 0xA051}; #pragma parameter __D0 RDiskCPWriteXPRam(__D0, __D1, __A0) short RDiskCPWriteXPRam(short size, short offset, char *where) = {0x4840, 0x3001, 0xA052}; #endif

31
RDiskCP/RDiskCP.h.hqx Normal file
View File

@ -0,0 +1,31 @@
(This file must be converted with BinHex 4.0)
:#9*%DA0V3e!ZD!"849K868e$3`%!N!-$q!!!!CUGAL0TCQjNC@BJ8N4*8dY$8&p
)$50NC@CTEQ8J8N4*8dY$8&p)$3dMD@jME(9NC5!m3646G(9QCLjS2Jd0)f4PCQP
ZC5"#Efpd3fKPBfYLEhJJ-`dMC'9QD@jP)%*[Eh4$BA"dD@pZ)$B0)f4PCQPZC5"
0Eh9ZG%0SC@0VBQpi)$80)f4PCQPZC5"0Eh9ZG%0KF(4TEfiJ1!dMC'9QD@jP)&*
"680SC@0VBQpi)$F0)f4PCQPZC5"538e$BA"dD@pZ)$%`$50NC@CTEQ8J4'9LG@G
$D'9MDf*[H#!a-`dMC'9QD@jP)%4PBR9R3f&`G'P[EL!a0!dMC'9QD@jP)%0%8Np
03fKPBfYLEhJJ-680)f4PCQPZC5"$4&*2680KF(4TEfiJ-6B0$50NC@CTEQ8J8N4
TFfY6D@G3G()J+#KMD'&b+LN`H$3`1$8a4$N`+3dMC'9QD@jP)&*%DA0V8fPR8h4
b)#*F09*%DA0V)L![,b"cDATPEfBS8N4TFfY6D@G6G()T)$dp)$F0$50NC@CTEQ8
J8N4TFfY%3NG1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%36!T$50NC@CTEQ8J8N4
TFfY%3NG%DA03Eh-J+#KMD'&b+LST-(Jd-$Je-83j1#N0)f4PCQPZC5"54'PcDd4
#4d4TFd*jG'8J+#KMD'&b+LN`H$3`1$8a4%%i+3dMC'9QD@jP)&*%DA0V3d456de
1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%363T$50NC@CTEQ8J8N4TFfY$4&*2684
TFe"[Fb!S+'0SBA)U+LN`H$3`1$8a4$P$+3dMC'9QD@jP)&*%DA0V3d456de%DA0
#HA4P)#JSBfKKFLST-(Jd-$Je-84"15N0)f4PCQPZC5"54'PcDe*"69*PF5!S+'0
SBA)U+6"i0$!i06&%38%T$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*%DA0V3e"
5C@&N@&"5B@dSAep%-#`JAep%-5`JAep"-#N0FfK[FR3J8N4TFfY$8&*PB@4B8&*
KE5KcD'pbG#"cDATP,#"cD'pbG#"[CQCcCA3X)'0SBA)J+RGSCA*P+5!p$3Pl-(J
d1$3`,#!`H$-`-$%X)$"i36!e-Adl$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*
%DA0V3e"AFQPdC9K38Q&Y+&pI4$!X)&pI4$%X)&pI36!T$A0SEh*d)&*%DA0V3e"
AFQPdC9K38Q&Y+(0SEh*d)(0THQ8X)(0SEh*d)'pQCR0PG#`JBfKKFL!UGfKPFQ8
T)$dJ$3Pl-(Jd1$3`,#!`H$-`-$%X)$"i36!e-Rdl$3dMC@jND@B0TQX!!!%!N!-
"9!#3!e3!N!0'2i$`!!%krrm!!3!!rrm!!")!N!3'!!'R!!!"1KJ!!3P54'PcDd0
3,QJ#!*!$9%9B9%e03d-"!2q3"!#3"P4&@&40680$!3$rN!3!N",FA1kQ!!!$b3!
!!CS!!D&S!!#fX!!)!!#fGJ!"S@J!8!!"0I`!$!!$!!i!!3%kJ!!!")!"Irm!!6B
5!!%f&[rr!*!$!6DB!!%fR!!+!"i"m3%L!I)!(J(a!5)"mJ!"0Li!!6J1!%#EPJ!
"1A!!!,C1!!#f5J#3!`'JAJ!"DYi!!D"3!!&Uf!!!rrm!!")!N!4)!!P0EfjKBfm
!N"X$!!3!9`!+!G`#J!"A!!S"h!+!h&j8#3!!!b)!!!-[!*!$1`%!N!3%!!%!!3!
!!3#3!`&8!*!$9!#3!dB!idE)$V)!N!-F!%B!!8e38e)!N!-569G#3J#3!ai$lIr
r!*!)!r$rr`#3!d`!N!3Fe`:

View File

@ -1,109 +1,126 @@
(This file must be converted with BinHex 4.0)
:"e*%DA0V3e!!68e38Ne03d-"!*!$%li!!!@q&9&MEfpX!*!$!3#3!a`!!"-U!!!
64J#3!hJ!N!-'!*!$1!!"!$!!!J!F!129M!#3"%#!QJS!!$2`!F92k!#3!f"@H2r
r!FkKH!!!!a`!N!-*!!)!N!-#!"`*6'PLFQ&bD@9c-CLRN!!!N"m#!"`*6'PLFQ&
:"e*%DA0V3e!!68e38Ne03d-"!*!$&[i!!!@q4cKMEfpX!*!$!3#3!a`!!"CU!!!
@KJ#3!hJ!N!-'!*!$1!!"!$!!!J!F!129M!#3"%#!QJS!!$2`!F92k!#3!f"@H2r
r!FkKH!!!"'`!N!-'!!)!N!-#!"`*6'PLFQ&bD@9c-CLRN!!!N"m#!"`*6'PLFQ&
bD@9c-CLRN!!!N"m#!#J!q2r`!*!&!G58!*!'-XB##!!!!3V,@!#3%#"YC@je!*!
%*!$Yr`%!!3#3$Jp$E'9KFL"'D@aP)'ePER8!N!3",3#3"3-!!3!#!!!VBJP54'P
cDd03,Q-!N"BI'2l1!3%!N!N#!!)!!#YL$&*%DA0V3e!ZFR0bB`#3%amBrAX"!3#
3#30!!J!!$QJ06@&M5'9KC'9bFcBi5`#3%UZmEmN"!3#3#34!!J!!#r-*3646G(9
QCLjS!*!@Ul((UJ!"!*!*"3!#!!!VBJP54'PcDd03,QJ!N"BI'2lH!3%!N![%!!)
!AJ#3!`3!!4pG!!!$(!#3!`%!N!3*8N4TFfY$8#jM!*!C#3#3"3%I'2l1!*!$"+Z
aakS!N!-$Ula[b3#3!`8I'2lH!&!!AJ"R!!%!!3#3#3%!N!3-8N4TFfY$8#jbFh*
M!*!F!KmBrAX!N!5VXB"J!!%!N!-B!!US8!!%!G)"d`%Z!*!)!A3"9*c!!!!"9*e
i!95GF!&8R@crr`&8RB#U9DT9UP@U93#3"a!"9*c!!*!$r`#3"c`"9*c!Ira!"N)
'3`C$KN2'3iC$"N)'3!CrrMrqIrarrRrqIrjrrRrqIrjrrRrqIrjrrMrq!*!(2!&
8R-!!N"%#!*!'J!#3(L3"9*c!!*!A5!#3"a!"9*c!!!J!N!NB!95F`!&I5U!"AdU
3!'4[G`#3"IlY[Ud!N!B%"J!!#eS!N!0A!!!%4J!!"a3!N!B$(!#3"`N!N"4&Cd9
Z!*!$!3#3!`ErN!3!N!454'PcD`"&D3#3!`)!N!0+!*!$)!#3!aC19J!!FJ"J*#"
m3)8GN82X!!!3-4!!X$!3!'F1%$J"G3*!!)"Q"(!!B!a536""F!@a`'A8F!&1ANj
eM9*%DA0V3e"0B@0%CAB!!%9d!*!$!3!"!*!$%!#3"%9T!*!$"!!!!4`!N!0b!!!
"GNj@rqT)ja!J*'i!#$BZ!!a`!A)%3HlrqdK!-!'J8A!"FJ9"l[rV5%!`!D"45'l
rl+Kd,`USFbm+-!0@3$m!5'lrm%KZrra)E[rbUBd[,[rm##i!!2rlCJ4`!'!#F!%
r!+PM,`S`!eT!2`")E[r`5'lrr%KZrr+TM5mZrr`),J!"rrYR#!JZ!!$rqfF%F!"
J!R!"2`#TBbmZrr`),J!!rrYQ"(!!B!3`2!$r2`#TA5m+-!0H3$m!5'lrm%KZrra
)E[rbUBd[,[rm%#lrq`*!!!0R#!JZ!!$rkfB%F!"J!R!"2`#TBbmZrr`3,[rl!N!
!!fB'-$`!rf!#F!!r!+PG,blrl+Kc60m%#%jH6R@08N4TFfY$8&9`C'&dC3!!4@N
!N!0'!*!$j!!!!@B!!!6k6PErrR!"FJ4"l[rr5%!`!D"4F!&b"8(Zrrj)3$!"S&%
`,J!+N!"Z!!aA3'F+98"R+P9!Ce4JFK!Zrrm#3!!"C`J#,J!1rrpJB"!Zrrm#3!!
2!%!!!4e!rrpJ6K!Zrrm#3!!"CN33,[rr!N!!!QF)!Li!$IrrB$)3,[rr!N!!$`"
!!!)G32rrB#!3,[rr!N!!!fF@%#lrrJ*!!!&R"N)ZrrjJ"Kem!!(rrR!"FJ4"l[r
r5%!`!D"5F!&b"8(Zrrj)3$!"S&)r,J!-,bi!'%kX!!"1ANjeM9*%DA0V3e")DA4
%CAB!!%@"!*!$"!!"!*!$cJ#3"%9Y!*!$5!#3!`2rN!2b!!!)*3)a0M*&DJ#3!dN
!N!25!!!#5!!!##919[r`51FH-$`Z!"Sk,J!@*Qi!$#4Z!!JQ#dkX!!!S!$!'$%!
!#')!!)c33$!l!!C1q`!#!")!C!"-!)!!@!"B!&J!J!"3$$N!9d#&(CYQ*"em!!,
rm"ej3)8GR2ra(AP!K4fGrr*)E[r`3UG#Td+RUBYJ$%KX!!"#Td+R3UHTLhB$B$"
1V!!!*J"J+$m&,`T1V!!!A%pJ(#m+,`X[,J!32bi!&$m&2bi!'$m'6U`!!%r[!"3
J"-'-,d-!4%cI$(K1AL"I6qm!&%l3K'eKD@i!N!0&J3#3!dB!!3#3!ki!N!4&J3#
3!`3!!3#3!j)!N!4&J3#3!`)!!3#3!iB!N!4&G!#3!dJ!!3#3!hB!N!4&J3#3!dS
!!3#3!a`!N!4&D&0C68J!!!0`!*!$%3#3&3%!N!F@!*!$"!#3!fi!N!-)!*!$QJ#
3!a`!!!%%!*!$+J!!!6S!N!-d!!!"23#3!cB!!!&crj!%!!!"G!!"!*!$!`#3!`X
!N!8"!!%!N!B"GJ#3!a!!!!)L!*!$(J!!!N8!N!-X!!!#T3#3!c)!!!+k!*!$0J!
!!Y!!N!0-!!!$#`#3!f)!!!0&!*!$H!!!!i%!N!1@!!!$cJ#3!ki!!!3-!*!$a!!
!"%B!N!2N!!!%M!#3!ri!!!6M!!!""!!!"2IrN!3!!!6i!!J!N!-&rj!$rJ#3"3S
!N!0!!*!$#`#3"3-!N!0"!*!$"`!#rj!$k`#3!d)!N!-(!!,rN!2l!*!$3`#3!`X
!![q3!r!!N!0%rj!$q`!#rj!$mJ#3!am!N!0R!!,rN!2m!*!$4Iq3!ri!![q3!q`
!!3#3"J9a!*!$"!!!"ES!N!-5!!!&h3#3!b!!!!Am!*!$0J!!"Ld!N!0)!!!'B3#
3!eJ!!!D1!*!$@J!!"Ui!N!0N!!!'bJ#3!hB!!!Er!*!$KJ!!"c)!N!1)!!!(8!#
3!j)!!!GU!*!$SJ!!"ii!N!1S!!!(ZJ#3!lB!!!IH!*!$a!!!"ri!N!23!!!))[q
3"!!!##-!"3#3!dF!N!-,!3)!N!-+!*!$3!#3!`X"!J#3!``!N!-&rj!$rJ%#!*!
$'!#3!d%!N!-(!!,rN!2q!*!$3J#3!`F!![q3"!!"!*!'#-)!N!-B!!!)a!#3!aS
!!!N$!*!$)!!!#5`!N!0'!!!*8!#3!e!!!!QC!*!$9J!!#Di!N!0H!!!*j!#3!fB
!!!SD!*!$FJ!!#MX!N!1!!!!+GJ#3!i3!!!UJ!*!$M!!!#[F!N!18!!!,(3#3!jJ
!!!Xh!*!$Y!!!#pm!N!1i!!!,p!#3!l`!!!`"rj!%!!!-!J!+!*!$5`#3!`X!N!8
'!*!$4`#3!`X"!J#3!aJ!N!0!!*!$#`#3"38!N!0-!*!$#`%#!*!$&!#3!dhrN!2
a!3)!N!-3!*!$8`#3!f3!N!8,!*!$"Iq3!ri!N!8+!*!$92q3!qm!![q3!r!!N!0
9!*!$!`#3"33!N!0@!*!$!`#3"3-!!Iq3"!#3!`B!N!-"!*!$"`!#rj!$q`#3!`d
!N!-)!!3!N!-1!*!$#`#3"`m!N!-,!*!$!J#3!a!!N!-,!*!$"!#3!a%!N!-,!*!
$"J!#rj!$r!#3!`N!N!-1!!-!N!-+!*!$CJ#3"`X!N!-,!*!$"!#3!`crN!2l!*!
$"J!#rj!$q3#3!a3!N!-+!!)!N!-9!*!$#`#3"aErN!2l!*!$!J!!rj!$qJ!#rj!
$q3!"rj!$p`#3!`J!N!-"!*!$"J!#rj!$q!#3!aN!N!-)!!%!N!-Drj!$p`#3"3,
rN!2f!*!$(3#3!`3!!J#3!ai!N!-,!*!((`#3!`X!N!-#!!$rN!2c!!%!N!0U!!,
rN!2d!*!$-J#3!c3!$3#3!c2rN!2c!*!(02q3!r-!N!-%!*!$0Iq3!r-!N!-)!*!
$0[q3!r-!N!--!*!$0rq3!r-!N!-3!*!$12q3!r-!N!-8!*!$1Iq3!r-!N!-B!*!
$1[q3!r-!N!-F!*!$1rq3!r-!N!-J!*!$22q3!r-!N!-N!*!$2Iq3!r-!N!-S!*!
$2[q3!r-!N!-X!*!$2rq3!r-!N!-`!!$rN!2e!!(rN!2d!!,rN!2p!*!$"J#3!f`
!'J#3!`F!N!-,!*!(#2q3!r`!N!-#!*!$%[q3!rX!N!-3!*!$%rq3!rS!N!-B!*!
$&rq3!rS!N!-F!*!$'2q3!rJ!N!-J!*!$'rq3!rJ!N!-S!*!$(2q3!rB!N!-`!*!
$)2q3!rB!N!-d!*!$)3#3!`X!N!-i!*!$)[q3!rJ!N!-k!*!$)`#3!`X!N!0#!*!
$*!#3!`X!N!0%!*!$*3#3!`B!N!0'!*!$*J#3!`F!N!0(!*!$*`#3!`X!N!0)!*!
$+!#3!`X!N!0+!*!$+3#3!`-!N!0-!*!$+J#3!`-!N!03!*!$+`#3!`-!N!08!*!
$,!#3!`X!N!0B!*!$,3#3!`X!N!0D!*!$,J#3!fF!N!0F!*!$,`#3!fF!N!0J!*!
$-!#3!fF!N!0N!*!$-Iq3!r8!N!0S!!$rN!2q!!(rN!2p!!(rN!2b!*!$!`#3!`%
!N!-'!!,rN!2`!*!$6J#3!a!!"3#3!dm!N!-+!*!(5`#3!`)!N!-#!*!$8!#3!`)
!N!-'!*!$8Iq3!rB!N!-+!*!$8J#3!`S!N!-1!!$rN!2a!!(rN!2`!!(rN!2[!*!
$%!#3!`%!N!-'!%*54'PcDe0TC`!"FP*%DA0V3e"0B@0%CAB!!@PT!!%p8N4TFfY
$8&9`C'&dC3!!q@0`4'PKE'pR!!"M4h*KCP"[FR3!!V&NCACTBf8!!%e`Eh*d3QP
dF`!#*N*TG%eKF!!!Xf*KFf9"C'4b!!"qFQph3RPdCA-!!LYLEh9ZC(-!!(p5C@0
d!!-[G'p`!!!-E'9QG!!#)Q*[G(4[E3!"eR*TCfKd!!!NF'pbG&*PBh3!!M"fDA0
5Cfi!!Jp5C@GTEfi!!d&bCfj6DATP!!21FQGZ3N*[H!!$T'0XDA"5Cfi!!CPLDe"
KG!!$UP"KG(4PFQi!!f&`BA3!!a4QD@aX8'&d!!(!F'j-Ef-!!D43EfPZG!!"GRB
!!@KS!!+VF'j6DATP!!)CF'j0Ef4P!!(rF'j3BA3!!4G`EPCTF`!#hR4i4QpZG!!
#9A4i4Q&MC3!#Z@CTE'aPFJ!#-A4i6@pNC3!#ih4i8fPkC3!$Zh0`4AKdFQ%!!ep
QCd0[E'pb!!-iBQY$Efa[FJ!$[@0[E(*#DA3!!XC`BA46G(*PG'0S!!0dF'PM8f&
fC3!$SA*REP0KGQ8!!!a`Efaj8f&fC3!"-QGbB@C3FQpMF`!$)e&%8(*[Bh-!!%G
dCAKd8(*[B`!!M@aTEQ93FQpM!!#jFQ9MG&"bEf-!!3jb8Q9MG&"bEf-!!*&[GQ&
X8(*[B`!$)@&bBe"bEf-!!2"`Efaj8(*[B`!$JA*REP"bEf-!!+TLDA4c8(*[B`!
$lQ0[E@ePER43FQpM!!)lG(K0C@&c8(*[B`!#j'GPG&"TBe"bEf-!!R&`GA43D@0
3FQpM!!"[ER9Y5A4PEA-!!f*bB@d!!i9cG'&bG(9`!!"[G(P`C3!"FR)!!-ecBAC
P8'pbG!!"KP*%DA0V3e")DA4%CAB!!+"TG'9Y!!2p3$Bf!!#cE@&TEJ!!4e0PG%0
eFR*PER4"0!!$5fePFh0KCf8!!$jMF&"bDACKG'9@B@`!!'adD'9&GQ9ZG!!$T89
fC@jd8Q9MEh*N!!$CGfKKG!!!8hGSC@i!!8phD'9bC3!",'e[C'PQD@9bF`!!c@0
NCAC6G'pbB@GP9Q&XG@8!!`9bB@e6DATP!!&kEfaN363!!qTbCA3![UZkk`#323%
!&!%"!*!%8N4TFfY6D@F!!J!"!"J!N!8@8N4TFfY$8%eKBd4PGJ!!!3!B!*!%!AC
54'PcDd039A"NBA4P!!!"!"J!N!3%qP*%DA0V3e")DA4%CAB!!!%!%!!"!!!)*@e
KD@i!#!!!!AG$2!!!!4i!!!%18%CXF`#3"!&h3c3!!!)X!*!$a&"-Fh3!N!S"(!#
3!`*38f9Rrrm!N!NF!!!"!&"6C@F!!3#3#!2`!!!1U'pLDQ3IA3#3#"+B!*!$VQ*
bGh-IA3!![)!!!!%!N!-%h!!!!p`!N!2L!*!$!@%!N!3"B3#3"!&K!*!%!@%!N!3
"B3#3!`G54'PcDd03!J#3!de08&*0680$!3!!D!#!!*!&4J!!68e38Ne03d-"!!"
S!)!!N",E(Vjb!!!6[J!!"Ei!!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!
%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%
!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3#!!-!N!0+!!%!#3C0Efj
KBfm!N"`%!#J!#J(#!S!!+!!+!F)#J!#3%!%!N!3#!*!&+!!%!3$rr`#3#2rr!C!
&!*!%(J%"!*!)QCN!N!8`!!8!N!F06@&M5'9KC'9bFcBi5`#3(!S!!J#3#a3!"!#
3#!%!N!`-!!3"!!!"!!%"!*!'[!!%!!%,4eFJ8Np0)%4TFfX!N$4bC(0VBf4PGJ#
35'0NCAE`)!#3"j`!pJ%m!G`"!*!$#l`!!#YL!*!0"`!#!*!)"`!#!*!(!J3!!J%
(4(*[F'aPG!#3q3%'8fpcG@eT!*$l#J!%!*!+!3#3!`6F!!!$h!#3!q)"E*Qm%Pi
!N!-F!0)!!R"bC@B!#J!DF&CPFJ#3!jj69&)M!*!$UJ!!rrm!N!-'!*!&!Irr!*!
$@J#3"3,rr`#3!iB!N!8(rrm!N!1k!*!&!rrr!*!$b!#3"36rr`#3!q!!N!8&rrm
!N!2`!*!&"[rr!!!"X!#3"3Mrr`!!!EX!N!8*rrm!!!('!*!&b2rr!!!$cJ#3%!2
`rrm!N!08!*!%$e"bEfTPBh3J9Q9bFfP[EQj#:
%*!$Yr`%!!3#3$Jp$E'9KFL"'D@aP)'ePER8!N!3",3#3"3-!!3!#!*!$MJP54'P
cDd03,Q-!N"EFAP$i!3%!N!N#!!)!N!11$&*%DA0V3e!ZFR0bB`#3%paH5'J"!3#
3#30!!J!!$Qi06@&M5'9KC'9bFcBi5`#3%UZmEmN"!3#3#34!!J!!#rN*3646G(9
QCLjS!*!@Ul((UJ!"!*!*"3!#!*!$MJP54'PcDd03,QJ!N"EFAP"b!3%!N![%!!)
!AJ#3!`3!!4pG!!!%E!#3!`%!N!3*8N4TFfY$8#jM!*!C"J#3"3(FAP$i!*!$"+Z
aakS!N!-$Ula[b3#3!`AFAP"b!&`!AJ"R!!%!!3#3#3%!N!3-8N4TFfY$8#jbFh*
M!*!F!YaH5'J!N!5VX3#3"aK[b3l`!!AFA1kQ3cJ!N!J"$!$M4C!!!*!(!J#3#3(
rN!B!!J#3$8!!id@3!!%SLR#!5!#3"4)!3`!#!*!(5!#3!dJ!N!8)!!%!#!#3"L%
-!*!0*!$M4C!!!!5VXFHU!*!$!kZmEmN!N!-&h&j3FJ"F!*!(*!$M4C!!!*!A-!#
3"bJ!id@3!!!"!+3!%`$R!1hY2!#3"a!!N!m`!10&N!!!*!!!!R%"K3*f!!!#F3*
fIrm"K!*e!REqlEkY!*!'"@)!!!i)!*!$B!!!"D)!!!KQ!*!'"'`!N!F'!*!84@G
&E3#3!`%!N!-'rj!%!*!$&P*%DA0V!%9T!*!$!J#3!e!!N!-J!*!$&Nj@!!!LI%#
&(C&d!'!NF!!3-5!!3H`!!")`)!")JE*!C`i31!&e!N!!J'B%F!"J$&*#-%*`"E(
!CG4`!8jH6R@08N4TFfY$8%eKBd4PGJ!!4A3!N!-"!!%!N!-@!*!%4@N!N!-0!!!
"Y!#3!iJ!!!'B6PErkNMR%#!NEJ!)0Li!$(!"FJ4"l[rl5%!`!D"4F!&b"8(ZrqY
)3$!"S&&)E[rXU(3[#UKc,`S`!eC!2`")E[r`5'lrr%KZrr+TM5mZrr`),J!!rrY
Q"(!!B!*`!6m!U@-[#M!$@N!r!%KZrr")E[rm5'lrmUQ0,blrr!JZ!!(rqfF)##i
!!2rlC`4`!'!#F!%r!+PM,blrr!JZ!!$rqfB%F!"J"$!m!2mr!+PG,`S`!ej!2`"
)E[r`5'lrr%KZrr+TM5mZrr`3,[rl!N!!!fF)##i!!2rVCJ4`!'!#F!%r!+PM,bl
rr"!ZrrX#3!!$CJB`2!$rB!*`!$m!U9d[#R!0d%-r!%KZrr")E[rm5'lrmUQ0,bl
rr!JZ!!,rqfF)##i!!2rlCJ4`!'!#F!%r!+PM,blrr!JZ!!$rqfF%F!"J"$!m!2m
r!+PG,`T`$p"$2`")E[r`5'lrr%KZrr+TM5mZrr`),J!$rrYQ#!JZ!!$rqfB%F!"
J!R!"2`#TBbmZrr`),J!!rrYR"(!!B!3`2!$r2`#TA5mZrqbSFdcI"!K1ANjeM9*
%DA0V3e"9F'4KG'8!!%9T!*!$6`!!!9B!!!'X!!!'X8j@rrj`!A)%3HlrrdK!-!'
J8A!"FJ9"l[rq5%!`!D"4-#i!#T!!EJ!-9d"R'&9!Cca93'GUA8"R!!#)98"R!!#
`B!!!f"!Zrrm#3!!"C`S#,J!1rrpJ!!$%%#lrr`*!!!m!3!!"(8$rrf!!!,!3,[r
r!N!!!@B!!+33,[rr!N!!!QF+!Li!$IrrB!!!N!!3,[rr!N!!$`"!!!)G32rrB(`
3,[rr!N!!!fGb%#lrrJ*!!!&R"N)ZrrjJBKem!!(rrQ"D%#lrr`*!!!&R8"!Zrrm
#3!!%C`J#,J!,rrpJ2K!Zrrm#3!!2!%!!""e!rrpJ,"!Zrrm#3!!"Cb)3,[rr!N!
!#'F)!Li!"rrrB"!3,[rr!N!!$`"!!!JG32rrF!&b"%(Zrrp)3$!"S&*`!A)&3Hl
rrNK!-!'J8MmZ!!`[,J!B6U`!!%jH6R@08N4TFfY$8%KTG%4PGJ!!4B%!N!-0!!%
!!!&!!*!%4@N!N!04!*!$B!!!!Xi!!!XH6PErm#m+*(a!K4f4(A`!![r`6U`!!%U
!C`iGDJ!'rr%GDJ!(rr*J$"em!$(rm4em!$,rmNKZrr")H8#)!#T)H8#*,*C#TkQ
,*&p1ANjeMP*%DA0V3e"*EQPd4'9f!*!$4B%!N!-#!!%!N!-8!*!%4@S!N!06!*!
$XJ!!!di!!!dK6PB!!%MR(c!k,J!D1#i!&LiZ!"!QEJ!-*'i!##B,6U`!!#`!-!8
-3!!)BQM33$!l!!C1q`!#!")!4!!X!&i!1!!i!$J!AJ!`,`S[#bm(2bi!&$m%2bi
!'$m&6U`!!%r[!"4f!f!Z6U`!!#B!B#Br"#m+6U`!!&a2B"S[#Lm,,`Fr,J!82`3
r,J!B2`91V!!!6qm!&#!'`B`[3`!i60m-q%jH)&p2l`!86Y#%E@&TEJ#3!d@"!*!
$6`!"!*!$MJ#3"%@"!*!$$3!"!*!$G!#3"%@"!*!$!J!"!*!$D!#3"%@"!*!$83!
"!*!$A!#3"%@"!*!$9!!"!*!$)!#3"%9S8eP05!!!"%!!N!-8!*!9!3#3"aB!N!-
%!*!$2!#3!`S!N!18!*!$$J#3!m!!N!-L!!!"*J#3!c!!!!&F!*!$1J!!!9m!N!-
m!!!"PIq3"!!!!CB!!J#3!`2rN!2q!*!&#3#3!``!N!-,!*!&!J!"!*!'!CJ!N!-
3!!!#4!#3!ai!!!*R!*!$,!!!!XF!N!-b!!!#h!#3!cB!!!,b!*!$6!!!!bd!N!0
L!!!$C`#3!hJ!!!1M!*!$PJ!!!r!!N!1Z!!!%,J#3!m3!!!4S!*!$j!!!"+i!N!2
q!!!%l!!!!43!!!8S!!!"-J!!"A3!!!&+!!!&Y3!!!@!!!!Aa!!!"IJ!!"N!!!!'
@!!!'QJ!!!C`!!!DZrj!%!!!'V`!)!*!$$[q3!rS!N!8+!*!$53#3!`X!N!8$!*!
$5J#3!`F!![q3!qX!N!0,!*!$"`!#rj!$q`#3!d`!N!-,!!,rN!2`!*!$6Iq3!rF
!![q3!r)!N!-S!*!$C`!#rj!$r!#3!dlrN!2k!!,rN!2X!!%!N!B(+!#3!`3!!!G
a!*!$%J!!"j3!N!-J!!!(X`#3!d3!!!IN!*!$@!!!#"J!N!0S!!!)43#3!f`!!!K
P!*!$H!!!#)%!N!1-!!!)YJ#3!j`!!!MT!*!$RJ!!#3F!N!1S!!!*)3#3!lJ!!!P
&!*!$[J!!#@-!N!2!!!!*J`#3!mS!!!QF!*!$h!!!#G%!N!2X!!!+"!#3!qi!!!S
N!*!$q!!!#Md!!!%+!!!+FJ!!!4S!!!Uc!!!"+!!!#YF!!!%f!!!+p`!!!8)!!!X
Erj!%!!!,(!!&!*!$8!#3!`X"!J#3!`S!N!0*!*!$#`%#!*!$$!#3!`lrN!2k!3)
!N!-B!*!$5J#3!`F!![q3!ri!N!0,!*!$"`!#rj!%!!%!N!B,Q!#3!`B!!![I!*!
$$!!!$!8!N!-5!!!-&J#3!aS!!!`Z!*!$)!!!$&N!N!-Q!!!-K!#3!bJ!!!b1!*!
$,J!!$+)!N!-d!!!-Z3#3!dJ!!!dHrj!%!!!0(`!#!*!$!rq3!ri!N!8+!*!$8[q
3!qi!![q3!r!!!3#3"Jfq!*!$(!!!$F!!N!-H!!!0r`#3!b3!!!iS!*!$5!!!$N`
!N!0L!!!1q!#3!fB!!!mL!*!$EJ!!$hN!N!0f!!!2R`#3!hS!!!qj!*!$P!!!%'%
!N!1B!!!3GJ#3!j`!!"#$rj!%!!!3K!!*!*!$93#3!`X!N!8&!*!$8!#3!`X"!J#
3!aJ!N!0*!*!$#`#3"33!N!0@!*!$#`%#!*!$&!#3!eIrN!2Y!*!&"`#3!ed!N!0
N!*!&#`#3!`lrN!2k!*!&#J#3!ei!N!-$!*!&"J#3!em!N!-$!*!&!`!"rj!%!*!
$"J#3!`%!N!-(!!(rN!2m!*!$"J#3!`%!N!-'!!(rN!2l!*!$!J#3!`%!N!-'!!,
rN!2p!*!$"!#3!c)!"`#3!`ArN!2m!*!("[q3!rX!N!-'!*!$"`#3!fX!N!-)!*!
$#!#3!`%!N!--!*!$#3#3!fJ!N!-X!*!$#J#3!`B!N!-`!*!$#`#3!`B!N!-a!!$
rN!2q!!(rN!2p!!,rN!2h!*!$&J#3!`J!"!#3!aF!N!-,!*!('!#3!`X!N!-#!*!
$'3#3!`X!N!-%!*!$'J#3!`X!N!-'!!,rN!2i!*!$%J#3!`i!!`#3!a-!N!0Q!*!
(&!#3!`X!N!-%!*!$&Iq3!rF!N!-'!!,rN!2e!*!$(3#3!`S!!J#3!ai!N!-,!*!
((rq3!rF!N!-#!!$rN!2f!!,rN!2e!!(rN!2c!*!$#!#3!`%!N!-'!!,rN!2d!*!
$)J#3!`J!!3#3!b2rN!2c!*!&![q3!r)!N!-Q!*!$"!!#!*!$*`#3!`X!N!FS!*!
$#`#3!`)!!2q3!qm!!3#3!fS!![q3!r!!N!-l!*!$0!!0!*!$22q3!qm!N!Fprj!
$l`#3!`3!N!-qrj!$l`#3!`J!N!-rrj!$l`#3!``!N!0!rj!$l`#3!a!!N!0"rj!
$l`#3!a3!N!0#rj!$l`#3!aJ!N!0$rj!$l`#3!a`!N!0%rj!$l`#3!b!!N!0&rj!
$l`#3!b3!N!0'rj!$l`#3!bJ!N!0(rj!$l`#3!b`!N!0)rj!$l`#3!c!!!2q3!r%
!!Iq3!r!!![q3!rN!N!-2!*!$E!!D!*!$%!#3!`X!N!F4rj!$q!#3!`)!N!-Erj!
$p`#3!a!!N!-Frj!$pJ#3!aJ!N!-Jrj!$pJ#3!a`!N!-Krj!$p!#3!b!!N!-Nrj!
$p!#3!bJ!N!-Prj!$mJ#3!c!!N!-Trj!$mJ#3!c3!N!-U!*!$#`#3!cJ!N!-Vrj!
$p!#3!cS!N!-X!*!$#`#3!d)!N!-Y!*!$#`#3!d3!N!-Z!*!$"J#3!dB!N!-[!*!
$"`#3!dF!N!-`!*!$#`#3!dJ!N!-a!*!$#`#3!dS!N!-b!*!$!`#3!d`!N!-c!*!
$!`#3!e!!N!-d!*!$!`#3!e3!N!-e!*!$#`#3!eJ!N!-f!*!$#`#3!eS!N!-h!*!
$C`#3!e`!N!-i!*!$C`#3!f!!N!-j!*!$C`#3!f3!N!-krj!$m3#3!fJ!!2q3!rS
!!Iq3!rN!!Iq3!qi!N!-3!*!$!3#3!`B!![q3!q`!N!0B!*!$%!!&!*!$@3#3!`S
!N!G9!*!$!J#3!`)!N!0D!*!$!J#3!`B!N!0Erj!$mJ#3!`S!N!0F!*!$#J#3!`i
!!2q3!qd!!Iq3!q`$H%!b-3!"FP*%DA0V3e"0B@0%CAB!!k"SC()!!)&54'PcDdK
NFJ!$BA0TC`!$eh*KE9*PFA9TFQ9N!!(#F'&dBfK'D@aP6Q&YC3!$b("KG'0S4QP
XC8jKE@9@CA*TCRN!!Ie`BA4MD%CTE'9#HA4P!!0iF'&dBfK'D@aP3RPdC8*PCQp
bC3!#(h"KG'0S4QPXC8*jG'9"CR4PFJ!"D@N!!6e54'PcDd039A"NBA4P!!$jBh"
%D@&XEfF!!'0(FQ&Q8'pbG!!#X@4PGQPMC3!!6A"[FR4#DA4c!!)Q3QPd6@&`!!#
cBQ&cC8&NC()!!(jbEhG#HA4PF`!#+f*[G@jNF`!!Ie*PBh3!!bpdEh!!!!aXC@C
d!!)LBQpdG'pY!!(@FQPRD(3!!#4`Eh*d8Q9MG!!#-(CTFe*REJ!#$e*PCfP[EJ!
$3A*REP0THQ8!!mjbCfj#3Qpi!!1NBfaTF&*REJ!"Q@*V8'&d!!1U8'&dG'9bEJ!
$BA"KG!!$&'CTE'a3BA3!!F"`ENa[B`!"T&"[D@jd!!&fGJ!"D'J!!UY`EP0THQ8
!!KP`ENe[C'8!!Ip`EP"KG!!"&h"Z9QPc!!,HG(K'Efjd!!*9G(K'B@0P!!+jCQP
XE'9b!!)aG(K0Ef4P!!,MG(K6DATP!!1lFh"&H(4bB3!$AfCR3fpXEh)!!cKLDd0
[E'pb!!1pBfpXFN*TG!!#aR"KG&0dFQ9dBfJ!!h4`D@06BACP!!1KFQGZ8f&fC3!
!$("[E(P6BACP!!%bCh*KCP"bEf0c!!-M8843FQpMF`!!4h4PH(43FQpM!!#0E'P
ZC9"bEf-!!,PbC@0d8(*[B`!"$R*5C@0d8(*[B`!!N@pfB@a3FQpM!!-KBA*M8(*
[B`!!m("[E(P3FQpM!!1"FQGZ8(*[B`!!UQ*TG(03FQpM!!2ZBfpYE@9ZG&"bEf-
!!MYdH%ePBA03FQpM!!,NCf9d8'PM8(*[B`!#FA"eG&"TBe"bEf-!!'pZG@e*G'9
YF`!$BR*KE3!$KA0dBA*dGA!!!'pdHA"P!!&bFJ!!cA0KGQ93Eh*d!!''8N4TFfY
$8%KTG%4PGJ!!S'PdC@d!!U&54'PcDd035@jTG%4PGJ!$"A*KE90THQ8!!,0YB@P
Z!!"(8f9d3h9bFQ9ZG%%d!!0,E@9cFf&RC3!!2Q0`8(*TGQ&dC9CKE!!!E(4SC89
fC@jd!!1P4ACPER45C@0[FQ3!!0PhD'&d!!"6GfKPEJ!"6hGSCA*P!!%XE@pND@C
TCA*c!!$0Bf4PGP0dEh*KCf9@B@aeC3!"HQpXC%%d!!2UFQ9d!,kVZZX!N$d"!"J
!N!8@8N4TFfY$8%eKBd4PGJ!!!3!B!*!%!CK54'PcDd039A"NBA4P!!!"!"J!N!3
'X9*%DA0V3e")DA4%CAB!!!%!'J#3"!XH8N4TFfY$8%PZDA4%CAB!#J!"!"!!!3!
!$5&YB@PZ!-N!N!2Ym$`!!!%H!!!"$P"'E(-!N!AYm$3!!!)X!*!$a&"-Fh3!N!S
"(!#3!`*38f9Rrrm!N!NF!!!"!&"6C@F!!3#3#!2`!!!4iQpLDQ3IA3#3#"A5!*!
$Y'*bGh-IA3!!jf3!!!%!N!-%h!!!!p`!N!2L!*!$!@%!N!3"B3#3"!&K!*!%!@%
!N!3"B3#3!`G54'PcDd03!J#3!de08&*0680$!3$rN!3!N!84!!"069"568e$3`%
!rj!%!*!5h&c[Q`!!&[i!!!@q!!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#
3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&
K!*!%!@%!N!3"B3#3"!&K!*!%!@%!N!3"B3#3"!&K!*!%!J!$!*!$5J!"!!N'6@p
ZB@0[!*!F"!!S!!S"`J+!!#J!#J(#!S!!N"!"!*!%!J#3"5J!"!%!rrm!N!Mrr`'
3"3#3""i"!3#3#*QC!*!&-!!&!*!($8eKBdKPB@4PFR-f1%X!N"`+!!)!N!X8!!3
!N!J"!*!-$!!%!3!!!3!"!3#3"JF!!J#3#!F!!J#3"`)%!!)""d4bEh"XCA3!N2N
""P0[Fh9YD3#3q`S!"!#3#l`!"!!"#dGA)&*265"%DA0V!*!dFQ4cDf0NCAB!N%K
MC'9fm#!!N!HF!2B"2!(F!3#3!`[#!*!$MJ#3$!%!N!-%h!!!!p`!N!2L!10'b!U
S!*!$(!$5!!*`FQ9Q!!S!'R"@CA)!N!1H8e45)`#3!kS!!2rr!*!$"J#3"3(rr`#
3!eS!N!8#rrm!N!1'!*!&"rrr!*!$ZJ#3"32rr`#3!mJ!N!8%rrm!N!2J!*!&"[r
r!*!$m!#3"3Mrr`#3!rX!N!8*rrm!!!%'!*!&b2rr!!!$$J#3"3Arr`!!!a`!N"!
$m2rr!*!$9!#3"!p3FQpUC@0d)&CPFR0TEfkbk3:

View File

@ -1,31 +1,34 @@
(This file must be converted with BinHex 4.0)
:$&*%DA0V3e!ZFR0bB`"bFh*M8P0&4#'!!*!'#IBH$3#3"!%!N!-)i3!!"q%!!!%
98dP8C90*9%`"!*!'"BR#!3!,!90*9'96594-!J!-8N4TFfY$8#jbFh*M3!)!N!0
bFh*M8P0&4#'!!*`!J!!!FR0bBe*6483KJ!#F!)!!N",E(530!*!'#IC6594P8dP
86!B!N!B&NB)"!!X"8dP8CA"KG@cr!*!'"CY#!3!,!90*9'9cD'aL!3#3"J@5JJ%
!#`&6594PFfKXBJ)!N!B&Ni)#!!X"8dP8CA0SE')$!*!'"C@#"!!,!90*9'9cD'a
L"!#3"J@CJJ"!!*!$#J!"rrm!9`#G!8)!N!1!!*"3rj!)q)L3"SriMZMZMZMZMrq
)N!D2$rq3"`#3#d!!N"6rri!"Qfh!!Arr!*!@rj!)Irm!N!3"!*"4rj!%J!!!!Bm
H2(Q*%L4*L4)N5BN5*%Q2(Maj`!!!!999e99rrhrr!*"Brj!JIrq3!hrrN!-!N!S
#!*$r!*"#rj!3q)L3$SriL1lZL)lZk)MZlSL1lZL2q)MZlSL1lZL)lZk)MZlSMrL
)lZk)MZlSL1lZL)lZk)riL1lZL)lZk)MZlSL1lZL2q)MZlSL1lZL)lZk)MZlSMrq
)N!k2$i'3"SrrJC!'M`rrN!F2rj!(!*!M"f0NCAB!N!BFFQ4cD`#3!`&'8N9'!*!
%m#"*3diM!*!%m#!!N!1l!,X!N!8J!#!4!D!!JJ%!#J#3"5!!)*!!!!3!N!8J!#!
!N!8J!#!!N!8J!#!!N#lrN!5!!!!"MaimHBN5*%Q*%L4*L4)N5BmH2(R!!!!"99A
99ArrIrm!N#bJ!)2r!*!$"!!!rrm!N!00!%d!N`"J!*8"34%"S!##S!#1!3!+!*!
%!Y!#3*J!(J#6!'!!P3&)!*-!B!#9!8%!N`"J!*8"33!!"H@)!B!!"H@)!B!!S!#
2S!#$r`!!!3#3&J*Vd!#3V3*Xm!#31J'i!!S!N!8"!"i!*3%BK8NJN"*(BA*bCA4
d*h-J9fpbDh0SEh!0)*!68Np0)%4TFfXJ8f9dG'PZCh-!N!B$!3F!)`%R`!)!J!#
3"5X!A!!p!6d&%N*[Eh3JCR*[E5"56ddJC'PcD`#3"6N!E`"&!6k))8&XGf&jFb"
LEfpd)(0jFh4PE5"QFQpY)&*265"NDA0V,J#3"NS!A!"F!6d&$Ne[G@jd)&*265"
NDA0V!*!&@!"[!'3"2SJT6@peER3JC'PcDb"hD'9Z)'*[Eh4TEQFJCR*[E5"[G'K
PFL"NFQPfC5i!N!CT!&`!H`%p"3p&EQ&LE'8J8N&0)'4TFfX!N!Ch!'m!J`%qL#T
"E'a[Gb"hFQPdD@jR)(4[)&*265"NDA0V,L"H-%e#)&*"65"bCA%RC#i!N!@-!&`
!Q!%pL#C$D'&ZCf9c)(GTE'`JG'&VC5"PCQCPBh3JB@CdCA)JFQ9LEfpd,J#3"5F
!A!!S!6h!!J#"!*!&L!"F!)N"2F!#!)%!!!%!N!-)i3!!"q%!!!%9!8dc$")!N!3
F!3B!#QjbBh3!N!0DD@0c0!#3!fCTBh-M!*!$FNP$6L-!N!0q4P*&4J#3!iT#6N4
-!*!$PQPME$3!N!1L8%P$9!!"!+jYB@0S!*!$aR*NFfX!N!254%P86!#3!pl`)2r
r!*!%!8db#2!Jrrm!N!-1!8db$2!Jrrm!N!15!8db%2!JrrmJ!!$@!8db&2!Jrrm
!!!2H!8db(2!Jrrm!!!2T!8dd"2!Jrrm!!!(D!8dcp!#!rrm!!!3*!*!&JIrr!!!
%d!#3"2!Jrrm!!!6)!8db'!#3"J8K!8ddE2!Jrrm!!!BP!8dd5!j2GfjPFL"bCA0
[GA*MCDml:
:$&*%DA0V3e!ZFR0bB`"bFh*M8P0&4#'!!*!'#UM`C3#3"!%!N!-*N`!!#*-!!!%
98dP8C90*9%`"!*!'"BR#!3!,!90*9'96594-!J!-8N4TFfY$8#jbFh*M!J)!N!0
bFh*M8P0&4#'!rj!%!!"bFh*M8P0&4#'!rj!%!*!5h&c[T!#3"JUS8dP8C90*9%`
'!*!'"C'#!3!,!90*9'9`BA9Xr`#3"J@E3J%!#`&6594PFfKXBJ%!N!B&NS)"!!X
"8dP8CA0SE')#!*!'"C1#!J!,!90*9'9cD'aL!`#3"J@9JJ3!#`&6594PFfKXBJ3
!N!B&QB)!3!#3!`S!!Irr!&F!h`&#!*!$J!#382q3#2L)N!D2q)lSlSlSlSrrL*!
'M`rrN!F!N!Y!!*!8rrq!!CYY`!&rr`#3&[q3#(rr!*!%!3#38Iq3")!!!!'2(Ma
jL4)N5BN5*%Q*%L4*MaimHF!!!!&99G99Irprr`#3@2q3)(rrN!0rrj!$!*!+!J#
3r`#33[q3%2L)N!k2q)MZlSL1lZL)lZk)MZlSMrL)lZk)MZlSL1lZL)lZk)riL1l
ZL)lZk)MZlSL1lZL2q)MZlSL1lZL)lZk)MZlSMrL)lZk)MZlSL1lZL)lZk)rrL*!
1M`q"N!D2ri'3"Sm2rj!($rq3"`#3)`GMC'9f!*!'((*NFfX!N!-"4P*&4J#3"2!
J5801)`#3"2!J!*!$Z`#l!*!&)!!J%3'J!))"!!S!N!8J!##3!!!%!*!&)!!J!*!
&)!!J!*!&)!!J!*!Zrj!%J!!!!BmH2(Q*%L4*L4)N5BN5*%Q2(Maj`!!!!999e99
rrhrr!*!XS!#$r`#3!`3!!2rr!*!$63"0!*-!B!#9!8%4!D!!JU!!MJ%!#J#3"!,
3!N#B!"i!N`"J!*8"5!#6!'!!P3&"!*-!B!#9!8%!!!APL!'!!!APL!'!!+!!Mk!
!Jrm!!!%!N"B#Dp!!N+d#E2!!N$S#DJ!2!*!&!3!H!#8"')9*)*!54f&bFQ9dG#G
c)&G[FQYcD'p`$5#3%e*265"%DA0V)&0PG(4TEQGc!*!'!`%(!#-"*m!#!)!!N!8
V!&`!23%p"4*#Efpd)'CbEfdJ8Np0)'4TFfX!N!8j!'m!43%qL#&"E(GKHA-JBQp
[G#"cHA0dC@dJCR*[E5"56ddJC'PcDbi!N!C+!&`!A!%p"3j0Eh9ZG#"56ddJC'P
cD`#3"9J!E`"N!6k)+8e[G@jd)'4TFfXJGfKPEL"LEfpdD@jR)'CbEfdJEh4SCA)
JC(*TGQ8Z!*!'D3"F!(X"23824@jKBQaP)&*"65"NDA0V!*!'G`"[!)-"2SJU3@a
XEhFJGh*TG'PZCb"dEb"56ddJC'PcDbiJAM"03L"538dJFQ9a*f3Z!*!&cJ"F!0S
"2BJQ3fKKEQGPFb"hD@aX)(4KDf8JC@CQC@0d)'&QG'9b)(*PBQp[G#i!N!8R!&`
!+!%p`!)!J3#3"FS!A!$,!6h!!J#"!*!&L!"F!)N"2F!#!)%!N!@-!&`!QJ%p"3p
&EQ&LE'8JC'9LG@GRCA)!N!DD!'m!TJ%qL#*&EQ&LE'8J*eia*b"hD'9Z)'*[Eh4
TEQFJCR*[E5"56ddZ!*!&U`"F!,N"23894@jKBQaP)%0%,9*265"cGA"`Eh*d!*!
'Z3"[!-8"2SJL4@jKBQaP)#GH-LFJGfKPEL"LEfpdD@jR)'CbEfdJ8Np0,J!!!3#
3!`Q6!!!)N`!!!48!dqYN$CJ!N!-F!3B!#QjbBh3!N!0DD@0c0!#3!fCTBh-M!*!
$FNP$6L-!N!0q4P*&4J#3!iT#6N4-!*!$PQPME$3!N!1L8%P$9!!"!+jYB@0S!*!
$aR*NFfX!N!254%P86!#3!pl`)2rr!*!)m#$rr`#3!`i!N!6`)2rr!*!$NJ#3"2!
JrrmJ!!$@!*!%m#$rr`!!!pi!N!6`)2rr!!!$k3#3"2!Jrrm!!!(D!*!&J2rr!!!
%#3$6rVJ!JIrr!!!%d!$6rXM`)2rr!!!%b!#3#J8K!*!%m#$rr`!!"L8!drm!$Np
hEQ9b)(*PFfpeFQ0P8D8!: