diff --git a/Mac/Lib/test/AEservertest.py b/Mac/Lib/test/AEservertest.py
new file mode 100644
index 0000000..a372bee
--- /dev/null
+++ b/Mac/Lib/test/AEservertest.py
@@ -0,0 +1,219 @@
+"""AEservertest - Test AppleEvent server interface
+
+(adapted from Guido's 'echo' program).
+
+Build an applet from this source, and include the aete resource that you
+want to test. Use the AEservertest script to try things.
+"""
+
+import addpack
+addpack.addpack('Tools')
+addpack.addpack('bgen')
+addpack.addpack('ae')
+addpack.addpack('evt')
+#addpack.addpack('menu')
+addpack.addpack('win')
+
+import sys
+sys.stdout = sys.stderr
+import traceback
+import MacOS
+import AE
+from AppleEvents import *
+import Evt
+from Events import *
+import Menu
+import Dlg
+import Win
+from Windows import *
+import Qd
+import macfs
+
+import aetools
+import EasyDialogs
+
+kHighLevelEvent = 23				# Not defined anywhere for Python yet?
+
+Quit='Quit'
+
+def mymessage(str):
+	err = AE.AEInteractWithUser(kAEDefaultTimeout)
+	if err:
+		print str
+	EasyDialogs.Message(str)
+
+def myaskstring(str, default=''):
+	err = AE.AEInteractWithUser(kAEDefaultTimeout)
+	if err:
+		return default
+	return EasyDialogs.AskString(str, default)
+
+def main():
+	echo = EchoServer()
+	yield = MacOS.EnableAppswitch(-1)		# Disable Python's own "event handling"
+	try:
+		try:
+			echo.mainloop(everyEvent, 0)
+		except Quit:
+			pass
+	finally:
+		MacOS.EnableAppswitch(yield)	# Let Python have a go at events
+		echo.close()
+
+
+class EchoServer:
+	
+	suites = ['aevt', 'core', 'reqd']
+	
+	def __init__(self):
+		self.active = 0
+		#
+		# Install the handlers
+		#
+		for suite in self.suites:
+			AE.AEInstallEventHandler(suite, typeWildCard, self.aehandler)
+			print (suite, typeWildCard, self.aehandler)
+		self.active = 1
+		#
+		# Setup the apple menu and file/quit
+		#
+		self.appleid = 1
+		self.fileid = 2
+		
+		Menu.ClearMenuBar()
+		self.applemenu = applemenu = Menu.NewMenu(self.appleid, "\024")
+		applemenu.AppendMenu("All about echo...;(-")
+		applemenu.AppendResMenu('DRVR')
+		applemenu.InsertMenu(0)
+		
+		self.filemenu = Menu.NewMenu(self.fileid, 'File')
+		self.filemenu.AppendMenu("Quit/Q")
+		self.filemenu.InsertMenu(0)
+		
+		Menu.DrawMenuBar()
+		#
+		# Set interaction allowed (for the return values)
+		#
+		AE.AESetInteractionAllowed(kAEInteractWithAll)
+	
+	def __del__(self):
+		self.close()
+	
+	def close(self):
+		if self.active:
+			self.active = 0
+			for suite in self.suites:
+				AE.AERemoveEventHandler(suite, typeWildCard)
+	
+	def mainloop(self, mask = everyEvent, timeout = 60*60):
+		while 1:
+			self.dooneevent(mask, timeout)
+	
+	def dooneevent(self, mask = everyEvent, timeout = 60*60):
+			got, event = Evt.WaitNextEvent(mask, timeout)
+			if got:
+				self.lowlevelhandler(event)
+	
+	def lowlevelhandler(self, event):
+		what, message, when, where, modifiers = event
+		h, v = where
+		if what == kHighLevelEvent:
+			msg = "High Level Event: %s %s" % \
+				(`code(message)`, `code(h | (v<<16))`)
+			self.handled_by_us = 0
+			try:
+				AE.AEProcessAppleEvent(event)
+			except AE.Error, err:
+				mymessage(msg + "\015AEProcessAppleEvent error: %s" % str(err))
+				traceback.print_exc()
+			else:
+				if self.handled_by_us == 0:
+					print msg, "Handled by AE, somehow"
+				else:
+					print msg, 'Handled by us.'
+		elif what == keyDown:
+			c = chr(message & charCodeMask)
+			if modifiers & cmdKey:
+				if c == '.':
+					raise KeyboardInterrupt, "Command-period"
+				else:
+					self.menuhit(Menu.MenuKey(message&charCodeMask))
+			##MacOS.HandleEvent(event)
+		elif what == mouseDown:
+			partcode, window = Win.FindWindow(where)
+			if partcode == inMenuBar:
+				result = Menu.MenuSelect(where)
+				self.menuhit(result)
+		elif what <> autoKey:
+			print "Event:", (eventname(what), message, when, (h, v), modifiers)
+##			MacOS.HandleEvent(event)
+
+	def menuhit(self, result):
+			id = (result>>16) & 0xffff	# Hi word
+			item = result & 0xffff		# Lo word
+			if id == self.appleid:
+				if item == 1:
+					mymessage("Echo -- echo AppleEvents")
+				elif item > 1:
+					name = self.applemenu.GetItem(item)
+					Qd.OpenDeskAcc(name)
+			elif id == self.fileid:
+				if item == 1:
+					raise Quit
+	
+	def aehandler(self, request, reply):
+		print "Apple Event!"
+		self.handled_by_us = 1
+		parameters, attributes = aetools.unpackevent(request)
+		print "class =", `attributes['evcl'].type`,
+		print "id =", `attributes['evid'].type`
+		print "Parameters:"
+		keys = parameters.keys()
+		keys.sort()
+		for key in keys:
+			print "%s: %.150s" % (`key`, `parameters[key]`)
+			print "      :", str(parameters[key])
+		print "Attributes:"
+		keys = attributes.keys()
+		keys.sort()
+		for key in keys:
+			print "%s: %.150s" % (`key`, `attributes[key]`)
+		parameters['----'] = self.askreplyvalue()
+		aetools.packevent(reply, parameters)
+		
+	def askreplyvalue(self):
+		while 1:
+			str = myaskstring('Reply value to send (python-style)', 'None')
+			try:
+				rv = eval(str)
+				break
+			except:
+				pass
+		return rv
+		
+_eventnames = {
+	keyDown: 'keyDown',
+	autoKey: 'autoKey',
+	mouseDown: 'mouseDown',
+	mouseUp: 'mouseUp',
+	updateEvt: 'updateEvt',
+	diskEvt: 'diskEvt',
+	activateEvt: 'activateEvt',
+	osEvt: 'osEvt',
+}
+
+def eventname(what):
+	if _eventnames.has_key(what): return _eventnames[what]
+	else: return `what`
+
+def code(x):
+	"Convert a long int to the 4-character code it really is"
+	s = ''
+	for i in range(4):
+		x, c = divmod(x, 256)
+		s = chr(c) + s
+	return s
+
+
+if __name__ == '__main__':
+	main()
diff --git a/Mac/Lib/test/AEservertest.rsrc.hqx b/Mac/Lib/test/AEservertest.rsrc.hqx
new file mode 100644
index 0000000..dd0685c
--- /dev/null
+++ b/Mac/Lib/test/AEservertest.rsrc.hqx
@@ -0,0 +1,514 @@
+(This file must be converted with BinHex 4.0)
+
+:%8&&Ff9bGQ9bG'9cG#jbFh*M!(*cFQ058d9%!3#3"f2$GSF!N!3"!!!!BVS!!''
+k!!!"#6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj%8&&Ff9bGQ9bG'9
+cG#jbFh*M!J!!!$q3#!#3"$q3#!#3'+a8lVX!N!CM`rm4`+KT!4e!%Irc%h!!%#l
+rmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R(N39$!!!('85F!!3,N-9$!!!(f)
+'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!)&-#+!#r!#iL!1d*!J%!3)-Sfc3
+6UGF[$%kk!3P+CfX"!+CA3cS!!!%!N")#!!!!!`!!!Irq!!($!J!#)J)!""!#!!J
+J!L!33#FJ)-!R)((J!L"l-%q!4KK2N!"!$%q3!#!%(p!3""r!#!`I`!`B0@!H-$9
+J1@!ri$(!!J!6J!)!$`!#!!3!!J!%!3)!"!-#!!IrrJ!!!`!!!!%!N"-#!!!!!`!
+!!Irq!!($!J!$iJ)!"r!#!!rJ!L!I`#FJ2m!R)(rJ!L"rm%q!IrK2N!"rr%q3!$r
+m(p!Ir"r!$r`I`!ri2q!Im$rJ2q!ri$r!!J!IJ!)!$`!#!!3!!J!%!3)!"!-#!!I
+rrJ!!!`!!!!%!N!8+81!!2S!!!"p!!*!%"d&38%`!N!BF8&P8C`!!!!&'8N9'!*!
+&J%P$6L-!N!3",!!!!%!)J#P!!L!%%#i)0!3Z!Qi"2`)I"#U)2j!!!L!"3!#!!!!
+)J#R!!q!(m#ri2r`rrRrr2riIr$ri2r!$i!(!!)!!N!3%!*#2r`#3(rrr!*!Arj!
+3!*!3rrrr!*!%rrm!N!Er!*!2r`!!prm!!!$r!*!(r`#3$[m!!#SUprm!N!Vr!*!
+0r`!!+LVhr`#3#rm!!!#`!*!)r`!!+LVhr`#3#,!!!,#`X!!!X!#3"rm!!#SUprr
+r!*!)X!!!X,#`!!#`!*!'rrrr!#VhrrVkr`#3#l!!!!#`!*!'rrVkrbVrqLSUq[m
+!N!@`!!#`N!8!N!MrprFUrrSUN!6kr`#3",!!!,#3"3!!X!#3"Irf!#U3"J!Uq[m
+!!!#`!!#`N!8!!,!!N!Er!!!UN!3!+J!Ur`#3"E#3"`#`!*!(r`!!+LS!+J!U+[m
+!N!@`N!F!N!Vr!!!!+J!U+[Vr!*!&X*!(!*!+rrm!!!!U+[Vr!*!&X,!&X!@`"E#
+`!*!)rrVkr`!U+[Vr!*!'X,!&X!@`"E#`!*!(rrVk+LVr+[Vr!*!(X*!*!*!(rrS
+U+J$rq[m!N!cr!*!-r`!!q[rr!*!0r`#3$Iq3"!#3$[m!N!lr!*!3r`#3$[m!N!R
+r!*!'r`#3$[m!N!Mrr`#3"[m!N!lrN")!N"Irr`#3(rm!N")#!*")m!#3$rm!N!X
+2rj!(m!#3"`rr!!$r!!!!m!#3"r!-m!$`!!!!m!#3"Jm!c-m!N!A`!*!'m!c-m!#
+3"I!!8!!!!!m!c-m!N!43"98!8!!!!2!-c2m!N!43"98!8!!!$rm-cph`!*!&8!"
+3!!!2hIcpc0m!!!8!9993!!!!$mc2h-c0m!!&!&998!8!!!r!c-c-$0m!"3"999!
+&!!!!m!c-`-$2!!!&9999"3!!!!m!c!`-c`!!"99993#3"I!!`-cI!!!&9999!*!
+&r`!-cI!!!&89&493!!!!$ph`c0m!!!"9&4898!!!!2hFcmh`!!!!9C!%8!!!!2h
+-$pm!N!E`!*!&$`$Im!#3"[!!N!Err`#3"r!!N!B2!*!)m!#3"Jm!N!32!!!!m!#
+3"Jm!N!6r!!!!m!#3"JrrN!M`!*!,r`#3$`m!N!S"!*!&r`!!!2m!N!Rr!2m!!2m
+!r`#3$2m!+`$r!*!+r`!V+bX!r`#3"[m!X,#`+j!%!2m!N!Arr`#`qINVN!3!r`#
+3"2m!X,#`+j!'!2m!!2rr+l#`X2NVN!Ir!!$rX*!&q5Z3"2Rr!*!%X*!&q5XV+rR
+r!*!%X!@`"E!&X2NVqIm!N!@`N!IjqIm!N!VrqIRjr`#3$2rjr`#3$[m!N"U!!!$
+`!2!!N!6`m!m2!*!'m-$`!*!%$`c-$`!!!2"9A-c!m!!!r`AGc-`2!!$`99c-c-$
+`$ra9AFc-c-m!p999h-c0m!!&99AFc0m!!&&489h0m!!!9999AGm!N!AphI!!N!8
+2h`#3"r!!N!eBS!#3!!#3"3-18Q9aG@PbC@3J8h9TG'8V9'9bEA-JG'KKG#"PGQ9
+bH5"KF("XD@0KG'P[EL"cD'peE'3JFh9`F'pbG!"bCA&N!!%!!3!%"'p`C@iF6h"
+PEL"dD'8JFh"PBfPQD@9N)'pLDQ9MG#Kc+@&PGR4[C'pMER9XE!!!J!"KE'Pc&fa
+TFh3JEfBJEf*UC@0dFb"dEb"[F'9Z8!!!!!9`FQPZG"e3FQPZG#"dD'8JFh"PBfP
+QD@9N)'pLDQ9MG#Kc+@&PGR4`C'pMER9XE!!!J!"KE'Pc''aTFh3JEfBJEf*UC@0
+dFb"dEb"`FQPZG!"!!!!""@PdC@ecCR0PE'aTFh4T4%mJ6Np8)&9646SJF(*[GQP
+NC@3JCQpb)'*KBfYhBA*NFb"MEfe`BA4TBQPXDA4j)(GTG'JJEfaN)'9fC@jd)(0
+eDA4P,L!J9fPXE#"LC5"bC@e[GQ9N)'PZ)'CeG(9bC5"'D@jNCA*cJ!!%FA9TG#T
+4G@Pd)(4SC5"'D@jNCA)J+'4TFQ9MG#"`BA*KE@9dCA)JD@GZEh*PC#PKCACdFA9
+TG'jeE'`!!)!!ER9XE"aZEb"NDA*PBh3JF'&bB@ePG'9b)(*PFA9TFQ9N!*!!!!!
+!!h*eEM"6C@jd)(4[)'&Z)'&`F'aTBf&dD@pZ)(GSC@iJDA3JDA-JC'peBQaP,@0
+XD@0VC@3!B@9fG'pKF("ZG@aX!!#!!'jeE'`FEQmJC'PbC@0d)("KFQ&YCA4PFL"
+bCA&eDA*PC!#3!!#3#3j6G'&ZC'&bC#"6G@PdC5*$EfeYEfiJG'9bEA-JCQpb)'e
+[Fh3JBA"`E'PMBA4TEfjcBfpbC3!"!!%!%3TME'&cFb"TEQC[*8GPG#"TEQC[FQe
+KG'P[EL"KBQpeG#"KEL"[BQTPBh3JBfaKFh-!BfpbCA&[BQTRBfaT1'%JFQ9MEh*
+N)'0[ER4KD@jTEQFJG'KP)'pLDQ9MG09c)("bEh"PFR4TCA-JB@jN)'9XC@ePER4
+c!!!!G(P`C69dD'8JEf*UC@0d)'0XBA0c)'&LEh9d)(GSD@0S)'PZCQpbE@&dD@p
+Z)'Pc)(*PFA9PFh4PC)!!!!%#D@i!Gh*MC'PZG'a$G'KP)'KeE@&Z)'aKEQGeB@G
+P)'&ZC#"cBh*TF(3JFhPcG'9Y)'PZ)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P
+[ES!!"@0XEh0P$d0XEh0P)'&Z)'pLDQ9MG'0[FQ9ME'pcER9XE!!!J!"[BQSJ%h4
+SC5"[BQTPBh3JG'mJBfa[Ff83!!!#"R0KGQPZC`"cBAC[Ff&fEcKcF'9MD@CTCA-
+JGfKPG'KPFL"MD'&ZCf9c)(0SEh9XC#"LC5"cBACPC#"LC@C[FQ8JBfa[FfPZC`#
+J!!PcBACTEQFJD@jVCQPXB@aTFb4dD'8JCQPXC5"TEL"hD'PMD#"dEb"cBACP)(4
+SC5"[BQTPBh3!J!!&BfpeER4%8Q9dGA*Z)(4SC5"ZG@eLCA)JEfBJC@aPE@9ZG(-
+JEfBJB5"`BA*dD@0eE'&b)'0XBA0c)(GTG'KTEL"KEL"[BQTPBh3!BfpbC@0ZG'9
+XEfjR&R4SC5"ZG@eLCA)JEfBJC@aPE@9ZG(-!!!"[BQSJ+h4SC5"[BQTPBh3JGfK
+[Ff8JC@aPE@9ZG(-JBA*P)(4[)'*P)'0[G@jdC@3!!!!""'9KBfJ!DfpME(4jF'8
+RG'KP)'0XBA0c)'pQ)(4SC5"PE'9YC@jdFb"dEb"LC5"MEh9ZG'9N!!!*C'&dB5"
+cDATP*9*PG(9bEL"dD'8JFfPkC5"TEL"LHA4PFb"[CL"KEL"[BQTPBh4MEh*PC(0
+THQa[EQFIG'KP)(0THQ8JEfBJG'KP)'pLDQ9MG#"TEL"LHA4PF`!!Ef*U)#adD'8
+JEf*UC@0d)(GSEh0P)'4KG'%JFfPkC5"TFb"dEb"LC5"bCA4eFQjPC!#3"!%#BA-
+!FR4jF(4jF'8ZG'KP)'4KG'%JG(P`C5"QEh)JGfKTBfJJG'KP)(0THQ8JDA-JBf&
+XBh9XBA4PC!#!!!CNC@aPG'8J4'9XCA4P)'&Z)'9XC@ePER3JCR*[E5"KEL"[BQT
+PBh4MEh*PC'9XEfjeE'`!!)!!Ef*U)"9dD'8JC@aPE@9ZG#"dEb"NC@aPG'83!!!
+!#@4eF'aTBf&dC40%GA"XD@0KG'8JEf*UC@0d+(-TBfpbC@0XEfj[BQSJ'h4[)(4
+SC5"NGA"XD@0KG'9N)'pLDQ9MG#Kc+3!!Ef*U)"TdD'8JEf*UC@0d+(-T)(4[)'4
+eF'aTBf&dC3!3!!!%!R4[!'PZFfKTER0X)R4SC5"ZCAFJE'pMBA4TEfiJCQpb)(4
+SC5"[BQTPBh3SFbN!J!!*FQ9`E'&MD@jRB@abF'*[EfaZ8h"PBfPQD@9c)(GSCA4
+SCA)JEh)JEQpd)(4[)(*PF'aKBf8JDA4PEA-JD@iJG'KP)'4PFh4TEQ&dD@pZ)(4
+SBA3JD'&fC5"dD'8JFf&YC5"ZB@eP)'&c)'PdC@ec)'*PD@jR)'4eF'aTBf&dC@3
+!S!!0F'pcDA4TEfjPC#"KG'efF'aXDA0d88GTGQ9c)'%JE'PcG#!SD@iJE'pMB@`
+JGfPZC'ph)'0[Eh*ND@jKG'9c+5"[CL"`Eh0TG'P[ER-JCQpb)(4SC5"NCA0dD@j
+KG'P[EL"TG'9YFk!!"@PdC@ecCR0PE'aTFh4T4%mJ6Np8)&9646SJF(*[GQPNC@3
+JCQpb)'*KBfYhBA*NFb"MEfe`BA4TBQPXDA4j)(GTG'JJEfaN)'9fC@jd)(0eDA4
+P,L!J9fPXE#"LC5"bC@e[GQ9N)'PZ)'CeG(9bC5"'D@jNCA*cJ!!+CACPER3JD@j
+QEc&(CA3JD@jQEh*YBA4TEfiJB@*[GA3JG'KP)%&`F'aP)'9fC@jdFb"TEL"K)(0
+eDA4P!'0[FQ9RG'9TCACTEM0K)(*PBfpbC#"MEfjdB@PZD@jR)(4SC5"PGQ9ZG(-
+JB@jN)(4SC@Pb)("KFQ&YCA4PFR0!!(4jF'9$G'KP)'9fC@jd)'0XBA0c)'pQ)(4
+SC5""F("XC5"PGQ9ZG(-JCQpb)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P[EJ!
+!!!%#D@i!Gh*MC'PZG'a$G'KP)'KeE@&Z)'aKEQGeB@GP)'&ZC#"cBh*TF(3JFhP
+cG'9Y)'PZ)(GSD@0S)(4[)(*PG(9bEL"TEQC[FQeKG'P[ES!!"Q9iDA0dFaT@CA*
+TCRNJD@BJB@iJEf*UC@0d)'9iDA0dFf0[FQ9NEf9iBQp[E"pdFR9P)'PQ)'Pd)'9
+iDA0dFb`JCQ&XFf8JD@BJEQpd!!"[BQSJ&R4SC5"[BQTPBh3JD@iJFA9PFh4TEfi
+!N!8$Cf9d'NGPG#"dD'8JC'&dB5"QEh)JB@iJEf*UC@0d!'0[FQ9RCA4N+T!%'(4
+SC5"NBA4K)'CbEfdJG'KP)'pLDQ9MG!!!!'pLDL!RG'KP)'pLDQ9MG#"hD'pcC5"
+NBA4K)'Pc)(4[)'*P)(*PG(9bEQ9N!!!!!3*KF`"bG(P`G(P`C6CdD'8JC'9cDA*
+PC#"dHA"PFb"QEh)JG'KP)'4KG'%X)'PZ)'pbC'9b)'pQ)("bC@CPFQ9ZBf8!`!!
+%E@&VC4*0B@YP)'%JEQ9h)'9XC@ePER4MEh*PBh*PE'pLDL!8G'mJG'KP)'jPGb"
+[BQTPBh3SFbN!!!"ZG@aX!!#3!!!!"30ZCAGVEf0XG(P`C4adD'8JBfaKFh-JEfB
+JG'KP)'jPGb"PE'9YC@jd!!!!!Q&d!'PZFfKTER0X+h4SC5"XEf0KG'P[EL"KG#"
+hD'PMD#"dEb"TER0PFR3JG'KP)'9XC@ePER3!!!*dE`"dEb!JEf*U)%4hD'9Z)'0
+bC@&dD@jR)'&Z)'&XD@&c)'CTE'8X)(4SC5"[FQPRD@jKE#"TG'9Y)(4[)'0bC@&
+dC5"KEL"KE'PKFb"dE`#!!!PhDA4S)'4KG'&NBA4K+T!%)(4SC5"TEQPdD@&X)'4
+KG'%JCQpb)(4SC5"PE'9YC@jd!)!!$hGTG'JJF(*[F'9bG'PPFh"bC(4bC@0[0(4
+SC5"TEQPdD@&X)(CKE(9PFb"QEh)JG'KP)("bEh"PFR4TCA-JEfBJG'KP)'9XC@e
+PER3!J!!%E@pfC5"0EhCP)'pLDQ9MG#Kc+5"dEb"K)'jPGb"XEf0KG'P[EQ0[FQ9
+YEhCPEf*U)#YdEb"dD'8JEf*UC@0d+(-T)'&QG'9b)(4SCANJD'&fC5"LC@9Z)'e
+[GQ9N!!"[BQSJ&A4SC5"[BQTPBh3SFbNJG'mJE@pfC4!!!!-#G'm!D@jcD'PZFf`
+LG'KP)'jPGb"XEf0KG'P[EL"QEh)JG'KP)'pLDQ9MG#Kc+3!!!!PbCA"XB@0TEQG
+KE(*`BQp[E'P6F'9MD@CTCA-JGfKPG'KPFL"[FL"ZEh3JG'mJFQ9`E'&MC5"TG'9
+YFb"TEL"dD'8JC'9cG'PZBA4TEfiJG'KKG#"SBACP)(4SC5"cB@eP)'jKE@8JBA-
+JDA4PEA-JBQ9TEQFJE@pfC@5J!!e`Eh0TG'P[EQ9N)'&dEAC`E'aTFh444fPfCA-
+JB5"XDA0d)#KTEL"XEf0KE#"hD@jNEhFJBfp[FQ4TEQ&dCA-T)'pQ)("[FfPdD@p
+ZFb"QEh)JG'KP)'4PFh4TEQ&dD@pZ)'PdC@ecS!!%Eh"PEKa2F'9Z)(4SC5"cF'9
+MD@CTC@3JEf*UC@0d+(-TB@9fG'pNEf0ZG@aX!!#!!'pLDL!AE'PcG#"[CL"[BQT
+PBh4c)(4[)'p`C@i3!!!#"A9cD@jRGA0TEQpLDL!XG'KP)'&`F'aTBf&dD@pZ)'C
+TE'8JG'mJEh"PEL"dD'8JEf*UC@0d)(GTG'J!J!!&DA4PEA0QFf9XE'PcG'P%6b"
+16e3J990&1L"`FQpfD@4PC#"QEh)JBQ&MDhGKFQ4c)'0[EA"KG'PLD@aTG(NJGfP
+dD#"[E'3JCACPER3JFh9TG'8Z)#"AD@aX)'*P)(*PE@pfC@3JD@iJCR9dGA*P)%C
+TEQ4PFR1!!!9`FQPZG"e3FQPZG#"dD'8JFh"PBfPQD@9N)'pLDQ9MG#Kc+@&PGR4
+`C'pMER9XE!!!J!"[BQSJ''aTFh3JEfBJEf*UC@0dFb"dEb"`FQPZG!#3"!%&DA4
+PEA0QFf9XE'PcG'P%6b"16e3J990&1L"`FQpfD@4PC#"QEh)JBQ&MDhGKFQ4c)'0
+[EA"KG'PLD@aTG(NJGfPdD#"[E'3JCACPER3JFh9TG'8Z)#"AD@aX)'*P)(*PE@p
+fC@3JD@iJCR9dGA*P)%CTEQ4PFR1!!!4aG@Pd+P&eDA3JG'KP)%CTEQ4PFL!SC'P
+bC@0d)("KFQ&YCA4PFL"TCfj[FQ9N+@&PGR4aG@PdER9XE!!!J!"ZG@aX!!#3!!!
+!!3CcBACTEQF!Ff&fEh0KGQp-Fh"PBfPQD@9c)(GSCA4SCA)JG'mJFf&fC5"MGA*
+bC@jdE(NJEh"PEL"NEf0eE@9ZG(-J+'j[G#"cGA"`Eh*dC@3JBRNJ4QPZC'9b+3#
+J!!4cBACP+&0KGQ8JB@iJEf*UC@0d)#K1Eh3JFh9`F'pbG'9N)'*j)%CTEQ4PFLP
+MEh*PFf&fC@jeE'`!!)!!Ef*U)"*dD'8JEf*UC@0d)(4[)(0KGQ8!%!!!!J*TEJ"
+VCQPXB@aTFcjdD'8JCQPXC5"TEL"hD'PMD#"dEb"cBACP)(4SC5"[BQTPBh3J+'j
+[G#"cGA"`Eh*dC@3JBRNJ4QPZC'9b+3#!!!*KF`"QE(4`G(P`C9&dD'8JCQPXC5"
+dHA"P)'pQ)(4SC5"NEf0eE@9ZG#"TEL"hD'PMD#"dEb"cBACP)(4SC5"NBA4K)#K
+ZEh3JFh9`F'pbG'9N)'*j)%CTEQ4PFLQ!!!0cCA388f9d)'&Z)'pLDQ9MG#Gc)'4
+KG'%!BfpbCA0PG'4ZG@aX!!#!!'pLDL!8G'KP)'pLDQ9MG#"dEb"MD'&ZCf8!%!!
+!!3*dE`"NBA4K+T!%$A4SC5"ZCAFJGQ&XG@8!!!TcG@PdC5"TEQC[*%GPG#"TEQC
+[FQeKG'P[EL"KBQpeG#"PGQ9ZG#"cG@PdC5Kc+@0[FQ9RG(0TFh9TEM&K)(*PBfp
+bC#"MEfjdB@PZD@jR)(4SC5"cG@PdCA-JB@jN)(4SC@Pb)(CPFR0TEfjc3!"dHA"
+P+A4SC5"cG@PdC5"QEh)JGfKTBfJJG'mJFQ9dGA*Z)'PZCQpbE@&dD@pZ!!!!!3*
+TEJ"hFQ0ND@jdE%0dD'8JD(9YB@iJE'&ZCh9KCf8JB@jN)(0MFQP`G#"cHA0dC@d
+JD@iJGfKTBfJJG'mJFQ9dGA*Z)'PZCQpbE@&dD@pZJ!#3"`a'D@jNCA)J8h9TG'8
+K6f*UC@0dFb"KEQ3J4ACPER4c)'C[FL"dD'8J4QPZC'9b!'CZC()!!3!"!!d)Bfa
+PB@iJGA!H3A*bB@jRC5"TG'9YFb"TEL"hD@jNEhFJEQPMC@ajCQjNFQCME(9ZG@a
+X!!#!!'pLDL!@G'KP)(GTEQ4[Gb"dEb"ME'9KEL"eF!#3"!%#BRN!BRNJ)(4jF'8
+UG'KP)'pbC'9b)'PZ)(GSD@0S)(4[)'0XC@&Z)(9`)(4SC5"[BQTPBh4c!)!!#'0
+[EA"eG'9b)&4PFh3JBA4dFQPLGA4PFb"[CL"dD'Pc)'0[EA"eG'9bCQjNFQGcG'a
+XEfjR&h4SC5"bCA0eE(3JEfBJG'KP)(&eCA*jJ!"dHA"P&A4SC5"KG(4bD@*eG'8
+JG'mJG'9cG!!!!!%$D'&cD'&c)'a[EQFHG'9cG#"cF'9MD@CTBb"LDA4c)'pQ)(*
+PFh"[ER0P!)!!"@9UC@0d889UC@0d)(4SC5"cF'9MD@CTC@3JC'PcDbKc+5`JEh)
+JCACPFRNJC@TPBh4KBQaP)'4TFfXJD@BJEQmJF'&bB@ePG'9b)'Pc)(0`C@0TCQP
+PC'CZC(*PDQ0dER9XE!!!J!"[BQSJ%R4SC5"TG'9YFb"dEb"PDQ9MG!#!!!!!"@9
+YF(4j$d9YF(4j)(4SC5"dFQ&cD'CZC(*PEA"dER9XE!!!J!"[BQSJ-0*PEA"dHG-
+JB@jN)0*PEA"dH5"dFQ&cD0-JBQpdD#"NEb"dD'8JFf&YC5"dD'PZC`#3!!!!!!9
+PFQ&cC4Y&FQ&cC5"dD'8JFh"PBfPQD@9N)'4TFfXSFbPQEQ4bCQ9bB@jeE'`!!)!
+!Ef*U)"*dD'8JDA4PEA-JG'mJCA*KFf8!N!8)F(9d)'&hBANJ8(9d)'&hBANJG'K
+P)(0`C@0TCQPPC#"[BQTPBh3SFbPQEQ4bF(4hH@pLDL!XG'KP)'pLDQ9MG#"`GA3
+JBAGKH5"TEL"TG(-JF(9d,@&hBANJE'pMBA4TEfi!!!"[BQSJ&A4SC5"TG'9YFb"
+dEb"`GA3JBAGKH3!!!!%&DA4PEA0QFf9XE'PcG'P%6b"16e3J990&1L"`FQpfD@4
+PC#"QEh)JBQ&MDhGKFQ4c)'0[EA"KG'PLD@aTG(NJGfPdD#"[E'3JCACPER3JFh9
+TG'8Z)#"AD@aX)'*P)(*PE@pfC@3JD@iJCR9dGA*P)%CTEQ4PFR1!!!GbCA0dBA*
+d&9*PFh4KFR3JG'KP)%eKBfPZG'pcD'CZC(*bCA0dER9XE!!!J!"ZG@aX!!#3!!!
+!!!CbCACPB@`R3R*TEQFJG'KP)(0`C@0TCQPPC#"[BQTPBh3SFbNJD@jdEb"fD@9
+h!'eTFf0YGQPcER9XE!!!J!"[BQSJ(A4SC5"[BQTPBh3JG'mJBQ8JE@&NC5"fDA0
+TBQaP%!!!!!CcC@aPBh3H8f9XC@0d)(4SC5"cF'9MD@CTC@3JEf*UC@0d+(-TE@P
+cBh0XBh4ZG@aX!!#!!'pLDL!8G'KP)'pLDQ9MG#"dEb"cC@aPBh3!%!!!!!PcD(9
+d)'4[GfiA8fKeG#"%EhGZ)(4SC5"0B@0TER4[FfKQEQ4bFfKeG'jeE'`!!)!!ER9
+XE!!!N!!!!!!&FfaPCA!68faPCA!JG'KP)%eKBfPZG'pcD'CZC(*cEQpkER9XE!!
+!J!"ZG@aX!!#3!!!!!!4cEh*d,e*PG(9bEL"dD'8JFh"PBfPQD@9N)'pLDQ9MG#K
+c+5"TEL"K)(0[FR4PC#"XDA0d!%4"9%&66e*8Ef*U)#0dD'8JFfpbG'9N)'PdC@e
+c)'PZ)(4SC@Pb)'jPGb"[FQ4PFS!!Ef*U)#"K)'aTFh3JEfBJCQPZC'9b)'pLDQ9
+MG(-JG'mJFfpbG!#3"!%#BRN!BRNJ)(4jF'8KG'KP)("bEh"PFR4j)(4[)(0[FR3
+JG'KP)'PdC@ec)'*j!!!'GA"NBA4P8e9`C'&dC5"dD'8JC'PcF'aKH5"[CL"dD'8
+JFh"PBfPQD@9N)'pLDQ9MG#Kc+5"dEb"YBA4MD#"dD'9TFL"[ELeNDA0V)(*PF(*
+PFf9ZG'&dD@pZ!'CZC(*QGA"NER9XE!!!J!"[BQSJ%R4SC5"TG'9Y)(4[)(9`C'&
+dC3#3"MS4B@0MCA0cEh*j)("bEf0PFh0`Bf4K,8%JF(*[Bf9cFb"XBA9ZBfKPC#"
+QFQpY)'%JC'9cDb"KBf0PFh0[FRNJCQPXC3!"%f4PFfXJB@0MCA0cEh*j)'CTE'9
+NB@CTEf*U)$adD'8JC'9cDb"KBf0PFh0[FRNJCQPXC5"QFQpY)(GSD@0S)(4SDA-
+JF(*[Bf9cFb"hBA-JE'&eEQ0SC@3!N!86B@0MCA0cEh*j)("bEf0PFh0PFh"MC'%
+ACACPFRNJB@0MCA0cEh*j)("bEf0PFh-!!3!!Bd!M)A4jF'8!!!!"!!!5B@0MCA0
+cEh*j)(0eDA4MBA0P!'4cGA3C35"NCA0V)'&MBf9cFfpbH5"cG@PdBf&cC3!!!!&
+MEf*U!!*TEQ4iEQ&YC40KBf0PFh0[FRNJFh9TG'0KFf9cC(0eG"KPGQ9bH5"KBf0
+PFh0[FRNJFh9TG'0KFf8!!!%!!'0!)b&dHA"P!!!!!3!!#Q&XD@&c)'CTE'8!B@a
+TB5P"EL"KE'PKFb"QD@aP)#KMFQ9KG'9N)(GTG'JJdNeKDf8J3@aTBA26+3!"$@p
+bD@GTEQ&X)'PdC@e[FQPREf*U)#PdD'8JEh*TCfPZB@`JDA4PE5"`EfPZG'9N)(4
+[)'*j)(4SC5"KE'PKF`#3"!YKE'PKFb"QD@aPFf&XD@%3CACPFRNJB@aTBA-JCQP
+XC3!!!3!!Bd!M)A4jF'8!!!!"!!!,BA"`E'PMBA4TEfjMBA"`&N&Z)'&`F'aTBf&
+dD@pZ)("bEfGbB@d!!"F8B@*[GA3JG'KTFb"YB@0TER4[FfJ!B@*LH'pLDL"8G'K
+P)0*"BQpeG#"dD'Pc)%eKBfPZG'pcD0-JC'PKE'pR,#"KEQ3JG'KP)'aTFh3JEfB
+JFR9ZEQPZCb"`FQpMCA0cCA-JC'PcF'aKH@9N)'PZ)'Pd!!!!&f&`F'aP)'ePER8
+JDA4PEA-JCQpXC'9bB@eZG@pLDL"9G'KP)(0`C@0TB@`JCQpXC'9b)0*"F("XC5"
+0C@je)%PdC@ec,0-JG'KP)'0[ER4PER4c)'pQ)(GSD@0S)'&`F'9KFL"TEL"dD'8
+J3A"`E'8JE@9ZG3!!#@0XDA"LEf&bC("ME'P[BQSJ(A4SC5"'D@jNCA)RFb"ME'P
+`BQpKFQ3JGfPZC'ph!!!9BfpZG(*[E#"`B@jPE(-JCQpXC'9bBh4bE'pLDL!MG'K
+P)(0`C@0TB@`JCQpXC'9b)0*$EfjdFQpX)&"KEQ9XFp-!!!GNCA0VG'p`C'9cDfp
+LDL!,G'KP)'4PFfYdEh!!!"&PH(4PER0TEfjc)'C[E'4PFQ9iG'j[BQSJ(h4SC5"
+cF'9MD@&X)'C[E'4PFL$54AKdC@jcD@pZFp-!!!aQD@aP)(0SBA*TEQF!CR0SFQ*
+[Ef`65A-JCQPXC5"cD'&bD@jR)'pZ2a!!$'C[ER4c)'C[E'4PFJ"QCQjdEf*U)"T
+dD'8JFh"PBfPKE#"QEfaNCA)JdNC[ER4cd`!!!!PQFQpZG'e[Fh4`DA0QBQp[E#*
+*Fb"dD'Pc)(4SC5"QFQpZG'e[Fh3JBA"`E'PMBA4TEfir!"!!%QPZFf9bG'P[EL"
+XEf0KG'P[EJ"`D@jcEf*U)%adD'8JBfpZG'&TEQ9b)(4SBA3JB5"ZCAFJCQpXC'9
+b)(G[G@aN)'&`F'9KFL"TEL"TCL$56Q9h)%C[E'4PFY-JGf&c)(0PE'9MG'9N!!!
+!%QaKFQGPFh3JCR*PC5"LE'pMD`"YCR*PE'pZCdYdD'8JE'&bCf9cG#"QFQ9P)'*
+XEf0V)'pQ)("bEf0PFh-JE@9YEh*j)'&fB@PXB@*XC5"dEb"XBA9ZBfJJB@iJBA"
+`E'PMBA4TEfi!!"*`FQ9QCA*PEQ0PFb"QEfaNCA)!F(*PCQpLDL!JG'KP)(0`C@0
+TB@`JCQpXC'9b)0*3FQ9QCA*PEQ0PFp-!!!!2F(*[C(9MG#"fCA*cD@pZGQ9b-QP
+dH(3mG'KP)(CPFR0TEfiJEfBJG'KP)&0jFh4PE5"cEfCdGf&bC5"bG@jZD@jR)'p
+Z)(4SDA-J6@&MD@jdEh0S!!!!#A0PE'9MG'P[ER0PE'9[BQSJ)A4SC5"cC@aPBh4
+TEfiJGQPcD@*XC5"dEb"dD'8JGA0PFK!!%h0SBA*TEQFJFh4KFR4TEQFJGA"QFh9
+`BQp[E%e*Fb"'D@aP)(0SBA*TEQFJD@iJG'KP)("bEf0PFh-JEfBJFh4KFR4TEQF
+JGA!J+(0dD@aX)'pQCL`JBR9d)(0[EfiJG'mJBQ8JEfiT2`!!#A0SEh*dBh9dFh0
+MGA4[BQSJ0A4SC5$54QPZC'9b)&0SEh*dBh9dFp-JDA4PE5"TEL"dD'8J4QPZC'9
+b*h-JD'9XF#"YC@je!!!9FfKeG'4[GfiJDA4PEA-JCQpXC'9bFfKNCQpLDL!MG'K
+P)(0`C@0TB@`JCQpXC'9b)0*6D(9dC'phEL"*G'9YFp-!!"4cG'&bG(9`)'PdC@e
+c)'C[E'4PFJ"cG(*dEf*U)#*dD'8JFh"PBfPKE#"QEfaNCA)JdP0dBA*dGA!J5A4
+PEA26!!!!$A0jFh4PE5"QEfaNCA*YB@0cEf*U)"&dD'8J8hPcG'9Y)'C[E'4PFJ!
+!&R4PEA"[FQ&bH5"TG'9YFb"QEfaNCA)!G'9YF'pLDL!`G'KP)(0`C@0TB@`JCQp
+XC'9b)0*8C@e`Eh*KFRNJ5A4PEA26)#KTERCTFfPLE'8T!!!!"hCPFR0TEfjfCA*
+cDA4iG#edD'8JGQ9bFfP[EL"[CL"dD'8J4QPZC'9b)&0MFQP`G'PZCb"&H(4PER0
+TEfi!!""fD@9h)("bC@CPFQ9ZBf9c!("fGh"[BQSJ)R4SC5"fD@9h)("bC@CPFQ9
+ZBf9c)'0[ER4bEf`JF'&ZC@`!!!!(GQPcD@*XCA"fDA0LEfpX(NPc)(4SC5"'D@j
+NCA)RFb"XBAPPFL"fDA0TBQaP2`!3!!!AC(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4
+iEQ&YC@&`F'B!!fPZC(KZB@eP583J)'0dER)!!QPZC(KZB@ePBhGZC!!#D@jNH'j
+KE@9NGfjN!!*TEQ4iEQ&YC@0MC(B!!QPZC(KZB@ePC'&QD3!#D@jNH'jKE@9MC(0
+V!!*TEQ4iEQ&YC@0NDA-!!fPZC(KZB@eP583J)'4[BfB!!QPZC(KZB@ePCQPXC3!
+#D@jNH'jKE@9MCQpX!!0TEQ4iEQ&YC8P%)#"QER4Q!!*TEQ4iEQ&YC@CcGA3!!QP
+ZC(KZB@ePDAGZC!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QPZC(KZB@e
+PFhGZC!!#D@jNH'jKE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@ePBh4bF`!
+#D@jNH'jKE@9MGfPZ!!*TEQ4iEQ&YC4"KF("XD@0KG'P[EL"QD@aP!'&`F'BG3@i
+JBA"`E'PMBA4TEfiRFb"QD@aP)'pZ)'4TFfX!""CYD@jTEA9Y)("KFR4TG'P[EL"
+cDATP!'e`FR4XEfjR5h4SC5"cE@&XE'9cG#"YC@e[FRNJFfPkC5"dD'&d)(4SC5"
+KF("XD@0KG'P[EL"MB@iJF'pcFfPLE(NJBQ8JE'&eEQ0SC@3JGfPdD"!!$R"KFR4
+TG'P[EL"cDATP!'&`F(4XEfjR1R4SC5"YC@e[FRNJFfPkC5"dD'&d)(4SC5"KF("
+XD@0KG'P[EL"hD@aX)'*P)'aKG@jMD'9N)(GTG'J!%!!+Ff0bDA"dB@*XC3"TFf&
+LBQp[E'p*Fb"dD'Pc)'&`F'aTBf&dD@pZ)'KTCfJYE'9fC@`JCACPER3JBAGKFQ8
+J+'&MBf9`G(-JEh"PEL"KF("XD@0KG'P[EL`JEh"PEL"NEf0eE@9ZG#`JF(*TER3
+JC'pMG@ePER3X)'&ZC#"aG@Pd+6m!!"KcG@GRCA0dC@3JF'&bG'PdD@pZ)(0THQ8
+!Fh"bG'a[EQGDG'KP)'ePE@pbH5"cDATP)(4SBA3JG'KP)'4PGQ9XEh"PFL"bC@0
+[E@ePEQ4c)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(0SEh9XC#"LC5"XBA9ZBfKPC#"
+hDA4S!*!&%@&`F'aTBf&dD@pZ)'CTE'9cBA"`CKCPGQ9bH5"KF("XD@0KG'P[EL"
+QD@aP!!!"!!"M3#-KG(P`C3!!!!%!!"0KF("XD@0KG'P[EL"`FQpMCA0cF'0KF#Y
+")("bEf0PFh-JE'&eEQ0SC@3JCR*[E5"KEL"KF("XD@0KG'P[EL"QD@aP!!%3BA"
+`E'PMBA4TEfiJCQPXC3"KF("QBA"`CMPdD'8JBA"`E'PMBA4TEfiJCQPXC5"QFQp
+Y)(GSD@0S)(4SDA-JF(*[Bf9cFb"hBA-JE'&eEQ0SC@3!N!39BA"`E'PMBA4TEfi
+JF(*[Bf9cFf9cF'0KF"PPGQ9bH5"KF("XD@0KG'P[EL"`FQpMCA0c!!%!!'0!)b&
+dHA"P!!!!!3!!#@0[ER4KD@jPFQ0dER)K3@iJDA4PE5"dD'&d)'0[ER4KD@jc)'p
+dD'9b)'PdC@ec!!J6BfpYF'aPG'9XH5"PH("KEQ4PC("PH'0LEfpX2NPc)(4SC5"
+MEfjdB@PZCA)JB@jN)'&XE#"[CL"TG(-JBfKTE'4bC@iJEh"PEL"TEL"[GA4XD@j
+P)(CTCAFr!"!!%'0[ER4KD@jPFL"hD@jNEhF!BhGZC'pLDL!KG'KP)'eKD@iJGfP
+ZC'ph)'C[FL"dD'8JBfpZG'&TEQ9b!!!2C@jdDA*P)'0[ER4PER4cC@0dFfpLDL"
+-G'KP)'9ZG'PbC5"MEfjdC@jdFb"[CL"dD'8JBfpZG'&TEQ9b,#"TEQ0XG@4TEQF
+JG'KP)'0[ER4PER4c)'pQ)'PdFb"MD'PXC(*PEJ!!!!TPH("KEQ4KBQaP!("PH'&
+LEfpX28Pc)(4SC5"MEfjdB@PZCA)JBf&`B@*XC5"[CL"LC@PZCb"PH("KEQ4PC#"
+TER4[)'peG'aTEQ8JGQPPGcm!!!KPH("KEQ4PC!"`CAK`BQp[E#C*Fb"dD'8JBfp
+ZG'&TEQ9b)'p`C@iJD@iJEh9dE'PZC5"fD@9h2`!3!"*`FQ9fD@peFb"XDA0d)(C
+TCAF!FhCPGfa[EQGfG'KP)'aKFh3JEQpZ,@PMEfiJGQPPGb!SBRNJEQ&YC5`JBRN
+JC'&dC5`JCA4M,LNJFf9XC@0dC@3JCQpb)(4SC5"MEfjdB@PZCA)J+'C[FQG[G(4
+PEL"KFb"cEfpZ)'&c)(4SC5"hD@jNEhFJDA-JBfa[Ff9N+3!!!!PcC@aPBh4TEfj
+cC@aPEf*U)#&dD'8JFf9XC@0dD@pZ)(CTFfPLE'8JG'mJG'KP)(9cCA)3!!4fD@9
+h!("fCAGXEfjR4A4SC5"fD@9h)(0PE'9MG'9N)'C[FL"dD'8JBfpZG'&TEQ9b)#K
+LH5"TBfpZ,#"LH5"ZB@eP,#"LH5"NBA4P,#"PG'-Z+4!!!!pNFh9d!!*TEQ4iEQ&
+YC@&XD@%!!QPZC(KZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B
+!!QPZC(KZB@ePC'&QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(K
+ZB@ePBfC[E!!#D@jNH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfp
+LDJ!#D@jNH'jKE@9cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@j
+NH'jKE@8+BfpZG'&TEQ9bF`"MG'jb$f9fCA*j)'0[ER4KD@jPFJ!"!!"M3#-KG(P
+`C3!!!!%!!""MEfjdB@PZCA)JGfPZC'ph!'0hEQ3F35"hD@jNEhFJG'KKG#"MEfj
+dB@PZFb"TG'9YF`!!"`PMEfjdB@PZCA*MG'jbEf*U)#KdD'8JBfpZG'&TEQ9b)(4
+SDA-JGfPZC'ph)'Pc)'p`C@jPC#"QFQpY!!!!"'4TFfX!Bf4TFfpLDL"!G'KP)'4
+TFfXJEfiJGfKTBfJJG'KP)'PdC@dJG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQp
+Y)'Pc)(0dEh*PC!!!!!CQEfaNCA)!BfC[E'pLDL!PG'KP)'C[E'4PFL"dD'Pc)(G
+TEQ4[Gb"TFb"[F'9ZC@3JCR*[E3!!"'PdC@d!BfpLDQpLDL!MG'KP)'PdC@dJG'K
+TFb"hD@jNEhFJDA-JEh"PEQ9N)'CbEfd!!"*`FQ9fD@peFb"XDA0d)(CTCAF!FhC
+PGfa[EQGcG'KP)'aKFh3JEQpZ,@PMEfiJGQPPGb!SBRNJEQ&YC5`JBRNJC'&dC5`
+JCA4M,LNJFf9XC@0dC@3JCQpb)(4SC5"hD@jNEhFJ+'C[FQG[G(4PEL"KFb"cEfp
+Z)'&c)(4SC5"hD@jNEhFJDA-JBfa[Ff9N+3!!#A0PE'9MG'P[ER0PE'9[BQSJ)A4
+SC5"cC@aPBh4TEfiJGQPcD@*XC5"dEb"dD'8JGA0PFK!!"(CTCAF!F(CPGfa[EQG
+#G'KP)(CTCAFJFf9XC@0dC@3JCQpb)(4SC5"hD@jNEhFJ+'*j)'PMEfiX)'*j)'j
+KE@8X)'*j)'4KG'8X)'9dBbiT!"!!!!pNFh9d!!*TEQ4iEQ&YC@&XD@%!!QPZC(K
+ZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B!!QPZC(KZB@ePC'&
+QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(KZB@ePBfC[E!!#D@j
+NH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfpLDJ!#D@jNH'jKE@9
+cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@jNH'jKE@84BfpZG'&
+TEQ9b)(GTEQ4[Gh0MGfjN&Q9fCA*j)'0[ER4KD@jPFL"hD@jNEhF!!!%!!'0!)b&
+dHA"P!!!!!3!!$@0[ER4PER3JFh"KBf9NGfjN@%&XE#"hD@jNEhGc,#"TEQ0XG@4
+TEQFJG'KP)'4PFfYdEh!JGfPZC'ph)#M59fPZC'phdb"NEf9c)'j[G#"TEQ0XG@4
+P)(4SC5"NCA0VG'p`)(GTEQ4[GbN!N!81BfpZG'9ZG#"cF'&MCA-!C(GZC"0&GQ9
+bH5"MEfjdC@jd)(0`B@0P!!%!!'0!)b&dHA"P!!!!!3!!$@0[ER4bEf`JF'&ZC@a
+MBf4f$d%JBfpZG(*[E#"`B@jPE!!0&Q0KE'0eE'&dC5"QEfaNCA)JFfPkCA-!FfC
+cHQ*[Efa*+&CTCAGc+5""FQ8JCQpXC'9b)(0THQ9c)'0KE'0eE'&dC@3JB@jN)'4
+TFh"XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2a!!$f0[E@ePER3JD'9KC'P
+ZCh0MEfeLEfpX0LK@D@9hFbNJ3A*P)'0[E@ePER4c)'4TFh"XBAPPC#"TEL"'D@j
+NCA)JE'PcG#"hD@jNEhGc2`!3!!aNBA4P)'KPB@4TEQF!Ff4KG'*[Efa!+&CTCAG
+c+5""FQ8JE@pND@CTBf&dD@pZ)'4KG'9c)'4TFh"XBAPPC#"TEL"'D@jNCA)JE'P
+cG#"hD@jNEhGc2`!3!"KNDA0V)'PZCQpbE@&dD@pZ)'KPB@4TEQF!Ff4TEQ*[Efa
+*+&CTCAGc+5"*Fb"TEQC[FQeKG'P[EL"KBQpeG#"dD'8JGQpXG@eP)'4TFh"XBAP
+PC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2a!!#@PMEfiJFfPkC@afDA0XEfjR1LK
+@D@9hFbNJG'KP)(0THQ8JEfBJD@0[ER-JC'PcF'aKH@9N)'PZ)%CTEQ4PFL"XDA0
+d)(GTEQ4[Gh-!%!!-DfPZC#"SC@&ND@jR!(0VEQ4LEfpX2#K@D@9hFbNJ3A*P)'4
+[Bh9YC@jd)'YTEQ4c)'4TFh"XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2`!
+3!!eXB@*PE#"SC@&ND@jRFfaLE'*[Ef`d+&CTCAGc+5""FQ8JE'&LC@ac)'4TFh"
+XBAPPC#"TEL"'D@jNCA)JE'PcG#"hD@jNEhGc2`!3!!acDATP)'KPB@4TEQF!Fh0
+THQ*[Ef`h+&CTCAGc+5""FQ8JCQPXC5"cDATPFb"NDA0`E'&jC@3JD@iJ4QPZC'9
+b)'aTFh3JGfPZC'phFa!!$(0ZBA!JG'mJCh*TC!"QCh*NBQp[E%mS9QPPGh-T)%&
+bC5"TG'9YFb"KE(GKHA-JFfjKF("PC#"dEb"dD'8JEQ9KFQ9cG#"RFQPN)("[D@j
+d)(GSC@iJG'KPH5"KFQ8JE@pfC@3r%!!1Fh4KCfGPFQ9N)'GbD@3!CR0dCf*[Ef`
+K+&CTCAGc+5""FQ8JCh*TC#"XD@jPFb"cG'&RCf9bC@3r%!!2GQ9bFfP[EL"SC@&
+ND@jRFhCbFf*[Ef`l+&CTCAGc+5""FQ8JCQPXC5"fCA*cD@pZFb"NDA0`E'&jC@3
+JD@iJ4QPZC'9b)'aTFh3JGfPZC'phFcm3!!PfD@9h)'C[ER4fCQjdE'pZCbmS9QP
+PGh-T)(4SC5"TC#"[CL"dD'8JCQpZG#"eFf9N)'PZ)%CTEQ4PFL"fD@9hFa!!$RC
+TCAFJCQpZG#"cDATP!(CQFhTXEfjR-5K@D@9hFbNJG'KP)(0THQ8JEfBJG'KP)'C
+[ER3JGA0PC#"TEL"'D@jNCA)JGQPPGh-3!!!!$Q0[ER4bEf`JF'&ZC@ac!'0MC(B
+6CACPFRNJBfpZG(*[E#"`B@jPE!!"!!"M3#-KG(P`C3!!!!%!!"0NCA0V)'&MBf9
+cFfpbH5"QD@aPC'&QD49")'4PFfXJB@0MCA0cEh*j)'CTE'8!N!38C'9cDb"KBf0
+PFh0[FRNJCQPXCA-!C'&QD4PPGQ9bH5"NCA0V)'&MBf9cFfpbH5"QD@aP!!%!!'0
+!)b&dHA"P!!!!!3!!$Q4PFfYdEh!YEf*UC@0d!'0NFfXc4'9cDh4[F#e[BQTPBh3
+JDA-JG'KP)'0XBA0c)'pQ)(4SC5$5C'9cDh4[F0-JEf*UC@0d!!)-Fh4KFR4eF#"
+NDA0V!(0NFfY[BQSJ%(4SC5"cG'&bG(9`)'4TFfX!!!!&G(*KFfKdFR0SEf*U)!P
+dD'8JG(*KFfJ!!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&YC@&`F'B!!QP
+ZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN!!QPZC(KZB@e
+PC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!QPZC(KZB@ePCQjdCJ!
+#D@jNH'jKE@9QFh9d!!*TEQ4iEQ&YC@0[BQS!!QPZC(KZB@ePFf0dFJ!#D@jNH'j
+KE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@eP"'4TFfX!Bf4TF`C")'4TFfX
+!!!8)Bf&`B@0TG(N!Bf&`B@a[EQFdG'KP)(4[G'&X)'jeE@*PFL"[CL"LHA4PFb!
+SCR*PC5"[FL"eFf9N+5"[EL"dD'8JC'PcD`!!!!PPDQ9MG'&LE'9TFf9UBQp[E$G
+$B@iJG'KP)'ePC'PK)'0KEL"LC5"PDQ9MG'9N)#KQE'p`F'PPFb`J3d3RFb`JFhP
+aG@9cG#Nr!!!+CR*PC5"cF'&MC3"QFR0`E'pZCbPdD'8JER9YBQ9b)'pQ)'CbC@8
+JBRPdCA-JE'9QG#"[EL"dD'8JC'PcD`!!$'a[Bf&X)(C[E(9YC3"TFh*fBQp[E$Y
+*Fb"dD'8JE@9ND@%JDA-JB5"XEf0KE#"fEfaeE@8J+(*KG'KPFL"dD'&Z)'%JCQP
+XC5"cCA*fCA)T2`!!"h0dBA*dGA"TFh4NBQp[E"Y*Fb"dD'Pc)'4TFfXJG'KP)'*
+[Eh3JC'PcDcm!!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&YC@&`F'B!!QP
+ZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN!!QPZC(KZB@e
+PC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!fPZC(K*4#!JEQ&YC@C
+ZG'B!!QPZC(KZB@ePCR0eG!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QP
+ZC(KZB@ePFfjNCJ!#D@jNH'jKE@9cG'0c!!*TEQ4iEQ&YC39NDA0VFf0NDA-+CAC
+PFRNJC'PcD`!!!3!!Bd!M)A4jF'8!!!!"!!!0C'pMG@ePER3JCQPXC@4[BfB235"
+NEf0eE@9ZG#"QD@aP!*!%$Q4[Bh9YC@jd)'CTE'9c!'4[BfB6CACPFRNJC'pMG@e
+PER3JCQPXC3!"!!"M3#-KG(P`C3!!!!%!!!4QD@aP!'CTE'8'35"QD@aP!!!'$'0
+bC@&dEh)JG(P`C3"QBh*dG(P`C6adD'8J6e08HA"P)'PNC@jdD@CjD@jR)(4SC5"
+KF("XD@0KG'P[EL"dD'&d)'0bC@&dC@3JG'KP)'PdC@d!%!!*CQPXC5"dHA"PCQP
+dF(4jF'8pG'KP)%p69(P`C5"TC'9ZG'PQH@PZCb"dD'8JG(P`C5"[CL"NBA4K)'0
+[ER4KD@jPC#"TEL"dD'8JDA4PE4!!"Qa[BfYPC!"TFfaVBQp[E"0*Fb"dD'8JCQP
+XC5"XEf0VC@3r%!!2F(*[C(9MG#"fCA*cD@pZGQ9b-QPdH(4)G'KP)(CPFR0TEfi
+JEfBJG'KP)("bEf4eBh3J+(CTFfPLE'8JBA3JG'KP)(4[F#"[CL"dD'8JdNGPG#"
+*EQC[db"ND@&XEfFT!!!!#R0dBA4TEfjPFRN!F(0`C'*[Ef`G5A-JG'KP)'PdC@d
+JB5"cG'&dD@pZCA*j)("KC$m3!!GfCA*cD@pZGQ9bFfPdH(4)G'KP)(CPFR0TEfi
+JEfBJG'KP)'CTE'8J+(CTFfPLE'8JBA3JG'KP)'*[G(4[E5"[CL"dD'8JdNGPG#"
+*EQC[db"ND@&XEfFT!*!&"@CTE'9cCQPXC3TPGQ9bH5"QD@aP!!!"!!"M3#-KG(P
+`C3!!!!%!!!CQEfaNCA)!BfC[E!K")'C[E'4PFJ#3"!pNFh9d!!*TEQ4iEQ&YC@&
+XD@%!!QPZC(KZB@ePBA"`CJ!#D@jNH'jKE@9MG'jb!!*TEQ4iEQ&YC@0MC(B!!QP
+ZC(KZB@ePC'&QD3!#D@jNH'jKE@9NEf0Q!!*TEQ4iEQ&YC@CTE'8!!QPZC(KZB@e
+PBfC[E!!#D@jNH'jKE@9QER4Q!!*TEQ4iEQ&YC@CcGA3!!QPZC(KZB@ePBfpLDJ!
+#D@jNH'jKE@9cBh4b!!*TEQ4iEQ&YCA0ZC'B!!QPZC(KZB@ePFh4MF`!#D@jNH'j
+KE@8(CQpXC'9bFf0QEf`-CACPFRNJCQpXC'9b!!!"!!"M3#-KG(P`C3!!!!%!!!P
+QEfjd)'CTE'9QER4Q#d%JCQpZG#"QD@aP!*!%#QC[ER3JCQPXCA-!CQjdCJpPGQ9
+bH5"QEfjd)'CTE'8!!3!!Bd!M)A4jF'8!!!!"!!!0CQpZG#"cG@PdBf&cC@CcGA3
+235"QEfjd)(0eDA4MBA0P!!!!!@0[BQS!!QPZC(KZB@eP$QC[ER3JFh9TG'0KFf9
+c!'CcGA36CACPFRNJCQpZG#"cG@PdBf&cC3!"!!"M3#-KG(P`C3!!!!%!!!9RFQp
+eF(0RFR!Y35"(FQpeF#"TEL"dD'8J9A0PFR-JB@jN)%GbEh9`Fb"MEfjdFQpX)("
+KEQ9X!!8'BQpeEQ4c!("LEQ4aC(*d)h4SC5"LEh9ZC'PZCb"bC@0dB@jRE'8JEfB
+JG'KP)'GbEh9`%!!%D@0[EJ"TD@eRD@CKE4adD'8JD@0[EL"LDA4YBA!JEfBJG'K
+P)'GbEh9`!"!!#faKBQ9X)'PZC'9iE'&LD@a[EQF@G'KP)'aKBQ9X)'pQ)(4SC5"
+RFQpeF!!3!!4ZB@eP!("ZB@eTG(Kd&A4SC5"ZB@eP)'pQ)(4SC5"RFQpeF"!!#("
+[FfPdD@pZ!("[Ffj44("d-R4SC5"`Eh0TG'P[EL"[CL"dD'8JCh*[GA!JGfPdD'P
+Z)'PdFb"`BA*PER3JGfPZC'ph!"!!!!!'Ch*[GA"c!(0RFR!,CACPFRNJCh*[GA!
+!!3!!Bd!M)A4jF'8!!!!"!!!5D@jQEh*YBA4TEfiJGfPZC'ph!'PhEQ3Y3@iJD@j
+QEh*YBA4TEfiJGfPZC'ph)#K[F'9ZC@3JBRNJdNGPG#"*EQC[bG-T!!m(BfpYE@9
+ZG'0[EA4TG(Kd#h4SC5"MEfeYC@jd%!!0Bh*PBA4TEfiJC'&dC@0bG'4XC(3J*R4
+SC5"NBA4P)'pZ)(GSD@0S)(4SC5"TG'9Y)(GKFb"MFQ9KG'9N!!!!"'PMEfi!D@P
+YCfPQB@dEG'KP)'PMEfiJBQPdE@&`)'pQ)(4SC5"TG'9Y%!!%DA4PE3"MEf*UEf*
+U)#4dD'8JDA4PE5"dD'Pc)(GTEQ4[Gb"hBA-JEh"PEQ9N)'CbEfd!!!!'E'pMDf9
+N!'PcE'YLEfpX%dPc)(4SC5"TG'9Y)'a[BfYPC$m3!"CYD@jTEA9Y)("KFR4TG'P
+[EL"cDATP!'e`FR4XEfjR5h4SC5"cE@&XE'9cG#"YC@e[FRNJFfPkC5"dD'&d)(4
+SC5"KF("XD@0KG'P[EL"MB@iJF'pcFfPLE(NJBQ8JE'&eEQ0SC@3JGfPdD"!!%@e
+[C'PQD@0KG'P[EL"NBA4PE@pNC'aNG#!XG'KP)'4KG'8JEfiJGfKTBfJJG'KP)'P
+dC@dJGf&c)'aKFh3JE@pND@CTC@3!!!!1F'&bG'PdD@pZ)(0THQ8!BA"`G'a[EQF
+kG'KP)'ePE@pbH5"cDATP)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(GTE'`JBQ8JE'&
+eEQ0SC@3JGfPdD!!3!!e`D(PcD@0KE#"cDATPF'KjFfa[EQFTG'KP)'&MG(9KE#"
+cF'&MC5"eFf9N)'*j)(4SC5"TG'9Y)'pZ)'4TFfX!!!p`FQpNG@0d)(CPFR0TEfj
+fCA)bDA4iG%KdD'8JGQ9bFfP[EL"[CL"dD'8JF(*[C(9MG#!SGQPcD@*XC5"KG#"
+dD'8JG'p`)'pQ)(4SC5$54f9d)%PZCQr6)'4TB@a[CbN!!!!%FfPkC3"`G(0kE'p
+ZCaadD'8JE'pRD@0KE#"cDATP)'pQ)(4SC5"TG'9Y!!!!#R0dBA4TEfjPFRN!F(0
+`C'*[Ef`G5A-JG'KP)'PdC@dJB5"cG'&dD@pZCA*j)("KC$m3!"KcG@GRCA0dC@3
+JF'&bG'PdD@pZ)(0THQ8!Fh"bG'a[EQGDG'KP)'ePE@pbH5"cDATP)(4SBA3JG'K
+P)'4PGQ9XEh"PFL"bC@0[E@ePEQ4c)(4SBA3JG'KP)'&`F'aTBf&dD@pZ)(0SEh9
+XC#"LC5"XBA9ZBfKPC#"hDA4S!!!!"hCPFR0TEfjfCA*cDA4iG%KdD'8JGQ9bFfP
+[EL"[CL"dD'8JCQPXC5!SGQPcD@*XC5"KG#"dD'8JBQpdG'pY)'pQ)(4SC5$54f9
+d)%PZCQr6)'4TB@a[CbN!!!!8Gf&bEL"LC@C[FQ8JC@e`G(PTEQF!Gf&bEQ*[Ef`
+f5A-JB5"ND@&XEfFJC'PcF'aKH@9N)(GSC@iJdN9YF(4j)(4bBA0SbG-JDA-JFf9
+XC@0dC@3r!"!!!!!6D@jQEh*YBA4TEfiJGfPZC'phFfPhEQ3BCACPFRNJD@jQEh*
+YBA4TEfiJGfPZC'ph!!!"!!"M3#-KG(P`C3!!!!%!!!4TG'9Y!'0[BQS(3@iJDA4
+PE3!6"Q*[G@jNF`"`BQjNF@4bG#*dD'8JBQpeEQ4TEQFJFQ9MG'&ZCfaP)'pQ)(4
+SC5"TG'9Y!"!!"f0[E@ePER4MEfedDA4iG$TdD'8JBfpYE@9ZG#"NDA0`E'&jC@3
+JD@iJG'KP)0*(CA3J5@jQEp-JGfPZC'ph)'pQ)(4SC5"TG'9Y!"!!#@0[ER4KD@j
+PFQ0dER*[BQSJ'R4SC5"MEfjdB@PZCA)JEfBJG'KTFb"TG'9Y!!!!$@0[ER4PER3
+JFh"KBf9NGfjNC(GZC$&dD'8JGfPZC'ph)(4SBA3JGfpeE'3JEh"PEL"TCL"dD'8
+JDA4PE5"hBA-JEh"PEQ9N!!!0Bh*PBA4TEfiJC'&dC@0bG'4XC(3J*R4SC5"NBA4
+P)'pZ)(GSD@0S)(4SC5"TG'9Y)(GKFb"MFQ9KG'9N!!!!"'4TFfX!Bf4TFfpLDL!
+NG'KP)'4TFfXJEfiJGfKTBfJJG'KP)'PdC@dJDA-JFh4[FQ9N!!!!"QC[E'4PFJ"
+MCQpXEf*U)#CdD'8JCQpXC'9b)'PZ)(GSD@0S)(4SC5"TG'9Y)'Pc)(0dEh*PC!!
+!!!4TBfpZ!'PTE@GTCQ&Y'h4SC5"TBfpZ)'*TG'eKF#"[CL"dD'8JDA4PE4!!!QP
+N!%P%)#"XEfjR(Q&Z)'PN)(4SBA3JD@4PER4TCQPPFb"dD'8JDA4PE3!!!"*TEQC
+[FQeKG'P[EL"hD@jNEhF!DAGZC'pLDL!MG'KP)'PZCQpbE@&dD@pZ)(GTEQ4[Gb"
+QEh)JG'KP)'PdC@d!!!4VD@jN!'YTEQ4TG(Kd&(4SC5"VD@jN)'pQ)(4SC5"TG'9
+Y!!!!#faKBQ9X)'PZC'9iE'&LD@a[EQF9G'KP)'aKBQ9X)'pQ)(4SC5"TG'9Y%!!
+4E@pND@CTBf&dD@pZ)'4KG'9YEf4NE'4d)#adD'8JC'&dC5"[EL"hD'PMD#"dD'8
+JDA4PE5"hBA-JE'&cG#"YEf4TCQPPC!!!!!4ZB@eP!("ZB@eTG(Kd&(4SC5"ZB@e
+P)'pQ)(4SC5"TG'9Y!"!!$A"SHA0TBf&X)(0THQ9`D(PcE'pZCbPdD'8JB@0dG@&
+X)(0`B@0P)(9cC@3JBRNJG'KP)'PdC@dJEfiJC'PcD`!!#("[FfPdD@pZ!("[Ffj
+44("d-A4SC5"`Eh0TG'P[EL"[CL"dD'8JDA4PE5"hDA4SD@iJDA4c)("KFQ9ZG#"
+hD@jNEhF3!!KcC@aPBh4PC!"TFh0XBQp[E"9*Fb"dD'8JDA4PE5"cC@aPBh4PC$m
+3!!4cDATP!("dFhTXEfjR((4SC5"XEfGTBf&X)(0THQ8JEfBJG'KP)'PdC@d!!!!
+'GfPZC'ph!'0hD@jMGfPZ-A4SC5"hD@jNEhFJG'KKG#"hEh9XC#"[F'9Z)'PQ)(4
+SC5"TG'9Y)(GKFb"[F'9ZC@3!N!3&DA4PEA0MEf*U#Q9fCA*j)'PdC@d!!!%!!'0
+!)b&dHA"P!!!!!3!!"h"bEf0PFh0`FQ0c)d%JF(*[Bf9cFb"bG@jZD@jR)'pZ)(4
+SDA-J6@&MD@jdEh0S!!S-Bh*PBA4[FL"dHA"P!'CMFR4dHA"P)(4SC5"MFQ9KG'p
+b)(4jF'8JEfBJG'KTFb"`FQpMCA0c!!!!"'CTE'8!CQPXC@pLDL!MG'KP)'CTE'8
+JG'KKG#"XBA9ZBfKPC#"dD'Pc)("bEf0PFh-!!!PQD@aP)(4jF'9QDA4`G(P`C64
+dD'8JCQPXC5"dHA"P)'pQ)(4SC5"QD@aP)(4SBA3JE'&eEQ0SC@3JG'KTFb"`FQp
+MCA0c!!!!#@CbEfjdE@pcG("TFfCLEfpX)NPc)(4SDA-JG'KP)'CbEfjdE@pcG#"
+KF("XD@0KG'P[EMm!%!!%EQ&YC3"`EQ&YDA4iG"GdD'8JEQ&YC5"[CL"dD'8JF(*
+[Bf9cF`!!$R"KFR4TG'P[EL"cDATP!'&`F(4XEfjR3A4SC5"cDATP)'pQ)(4SC5"
+`BA*dDA4TEfiJG'KKG#"dD'Pc)'&`F'aTBf&dD@pZ)(GKFb"XBA9ZBfKPC#"hDA4
+S!!!8F'&bG'PdD@pZ)(0`B@0P)(9cC@3!F(9cC'a[EQFdG'KP)'jeE@*PFL"[CL"
+LHA4PFb"MGA*bC@jdE(NJGA0PC#"TEL"dD'Pc)("KFR4TG'P[EJ!!!!ebC@e[G'8
+JCACPER4cFQ9fG'*[Ef`S9fPXE#"dD'Pc)("bEf0PFh-JB@0MCA"dFb"bC@e[G'8
+JCACPER4c2`!!!!TcBh*TF(4KBQaP!'PcB@*LEfpXDdPc)(4SDA-JF(*[Bf9cFb"
+SD@GS,@aPGQ9X)'9fC@jd)'&hBA*P)#KKBf0PF(4c)'p`C@iJBA"`E'PMBA4TEfi
+X)'p`C@iJC'pMG@ePER3X)("bD@jd)'4[Bh9YC@jd,#"KEQ3JFA9TG#Nr!!!(GQP
+cD@*XCA"fDA0LEfpX(dPc)(4SDA-JF(*[Bf9cFbFJE'&jCA)JGQPcD@*XC6m3!!!
+!#A"bEf0PFh0PFh"bBh-0CACPFRNJF(*[Bf9cF`!"!!"M3#-KG(P`C3!!!!%!!"*
+cD'&bB@*XC5"MEfjdB@PZCA)!Ff0dFM*")'0[ER4KD@jPFL"dD'&d)'eKH5"LC5"
+cD'&bC@3J+'4TFfYc)'&ZC#"QEfaNCA*c+3!!#`KPH("[FR4PC!"cCAK`BQp[E$9
+*Fb"dD'Pc)'C[E'4PFL"K)(0SBA*P)("[D@jd)'pb)'PZFfPNC5"K)(0SBA*P)("
+[D@jd2`!!"@GbEh9`FfGbF'PdH(3hG'KP)(9cCA)JEh)JCh*[GA!JG'KKG#"SBA-
+JFh"PBfPKE#"KBf0PFh-JG'mJG'KP)'C[E'4PFK!!%'GbEh9`)("bDACTE'9RCA-
+!Ch"`FR"bDABrG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-
+JF(*TGQPXC@GPFb"QEh)JG'KP)'GbEh9`%!!3Ch9PFh3JF(*TGQPXC@GPF`"RFh4
+`F(*TGMjdD'8JFf9P)'C[E'4PFR-[Ff9P)'CTE'9c,feKDf8JBfKKEQGPFb"`FQP
+fD@aPCf9c)'C[FL"PGQ9bH@pZC3!3!"4TEQKPFQPdC@3JF(*TGQPXC@GPF`"TF(*
+fBQp[E&&"FQ8JG'KP)("bDACTE'9RCA-JEfBJG'KTFb"TG'9Y)'&XGf&jFb"dD'8
+JFf&YC5"KFb"dD'8JBfpZG'&TEQ9b)'Pd)'Pc)(0dEh*PC#"TEMm3!!GYEh9ZG'9
+NFfe[G@*[Ef`d5A-JG'KTFb"QEfaNCA)JE@peER4PC#"[EL"KEQpdD'9b)'eKBfK
+TEQ8RFb"NCA0VG'p`2`!!!!9[GfjPFR0[GfjTG(Kd(R4SC5"eFf9b)(4SBA3JEhG
+ZFb"dD'Pc)'C[E'4PFJ!3!""[GfjPFL"`FQPfD@aPCf9c!'phER*`FQPf2h4SC5"
+cC@8JCQpXC'9bFbpcC@8JCQPXCA-[E@&VC5"MD'&ZCf9c)("bDACTE'9RCA-JCQp
+b)(4SC5"[GfjPFK!!#A"bEh4PBh4PC(0`FQpLEfpX2%Pc)'0[ER4KD@jPFL"`FQp
+dC@0dC@3JCR*[E5"LC@PZCb"YEhCPC#`JFQ9ZB@ePC#"[FL"NC@aPG'9N2`!3!!C
+cD'&bC@3!FfKKFQ*[Ef`E5A-JBfpZG'&TEQ9b)'%JFfKKFQ8JF'pTER3r%!!1FfK
+KFQPZCb"hD@jNEhF!FhGZC'pLDL!NG'KP)(0SBA*TEQFJGfPZC'ph)'C[FL"dD'8
+JBfpZG'&TEQ9b!*!%$f4cGA3!!QPZC(KZB@ePB@aTB3!#D@jNH'jKE@9KF("Q!!*
+TEQ4iEQ&YC@0dER)!!QPZC(KZB@ePBf0NGJ!#D@jNH'jKE@9NB@CT!!*TEQ4iEQ&
+YC@4[BfB!!QPZC(KZB@ePCQPXC3!#D@jNH'jKE@9MCQpX!!*TEQ4iEQ&YC@CZG'B
+!!QPZC(KZB@ePCR0eG!!#D@jNH'jKE@9MEf*U!!*TEQ4iEQ&YCA0MG()!!QPZC(K
+ZB@ePFfjNCJ!#D@jNH'jKE@9cG'0c!!*TEQ4iEQ&YC40cD'&bB@*XC5"MEfjdB@P
+ZCA*cFf0dFKKPGQ9bH5"cD'&bB@*XC5"MEfjdB@PZCA)!!!%!!'0!)b&dHA"P!!!
+!!3!!%R0SBA*TEQFJF(*TGQPXC@GPF`"`FQPf'd%JFf9d)'pQ)(0SBA*TEQFJF(*
+[F'9bG'PPF`!$$'eKDf8JBfKKEQGPF`"`FRChBQp[E"T`FQPfD@aPCf9c)(4[)'e
+KDf8JBfKKEQGPF`!3!!PcC@8JCQPXCA0`FRCbBQp[E"G`FQPfD@aPCf9c)(4[)(0
+PC5"QD@aPFa!!#h0PC5"QEfaNCA*cF(*fFf*[Ef`CF(*TGQPXC@GPFb"dEb"cC@8
+JCQpXC'9bFa!!!!!1FfKKFQPZCb"hD@jNEhF!FhGZC#G")(0SBA*TEQFJGfPZC'p
+h)#K[F'9ZC@3JBRNJdP0SBA*TEQI*dbN!$JPMEfjdB@PZCA*MG'jbEf*U)#jdD'8
+JBfpZG'&TEQ9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!!#'9
+iF'pbG'9N!(0PH("LEfpX1%Pc)(4SDA-JBfpZG'&TEQ9b)'%JFfKKFQ8JF'pTER3
+JEh)JD@jcD@4P)'%JFfKKFQ8JF'pTER3r!!!!"QC[E'4PFJ"MCQpXEf*U)#YdD'8
+JCQpXC'9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!&Ch*[GA"
+cCh*`DA4iG$TdD'8JGA0PFL"[FL"RFQpeF#"dD'&d)'KKFb"cF'9MD@&X)'&MBf9
+cFb"dEb"dD'8JBfpZG'&TEQ9b!"!!%'GbEh9`)("bDACTE'9RCA-!Ch"`FR"bDAB
+rG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-JF(*TGQPXC@G
+PFb"QEh)JG'KP)'GbEh9`%!!3Ch9PFh3JF(*TGQPXC@GPF`"RFh4`F(*TGMjdD'8
+JFf9P)'C[E'4PFR-[Ff9P)'CTE'9c,feKDf8JBfKKEQGPFb"`FQPfD@aPCf9c)'C
+[FL"PGQ9bH@pZC3!3!"4TEQKPFQPdC@3JF(*TGQPXC@GPF`"TF(*fBQp[E&&"FQ8
+JG'KP)("bDACTE'9RCA-JEfBJG'KTFb"TG'9Y)'&XGf&jFb"dD'8JFf&YC5"KFb"
+dD'8JBfpZG'&TEQ9b)'Pd)'Pc)(0dEh*PC#"TEMm3!!4TG'9Y!'0[BQT[BQSJ+A4
+SC5"TG'9Y)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!(E@peER4
+PC(0YEh9LEfpX0dPc)(4SDA-JBfpZG'&TEQ9b)'e[G@jdC@3JEfiJB@j[G'KPFL"
+YB@0SD@jP*h-JC'9cDh4[F$m!!!9[GfjPFR0[GfjTG(Kd)(4SC5"eFf9b)(4SBA3
+JEhGZFb"dD'8JBfpZG'&TEQ9b!"!!%'phEQ9b)("bDACTE'9RCA-!EhGZFR"bDAB
+rG'KP)(0PC5"QEfaNCA*c,h0PC5"QD@aPFbpYB@YP)'0SB@jRCA-JF(*TGQPXC@G
+PFb"QEh)JG'KP)'phEQ9b%!!*F(*[G'9MG'9NFh"bEf*[Ef`m5A-JBfpZG'&TEQ9
+b)("bEh4PBh4PC#"QFQpY)'*PD@jR)'e[GQ9N,#"bC@jKE@9N)'pb)'4PE'9dC@3
+r!"!!%R0SBA*KBQaP)'0[ER4KD@jPFJ"cBh4bEf*U)$GdD'8JFfKKFQ&LE'8JBfp
+ZG'&TEQ9b)(4SBA3JG'KTFb"hD@jNEhFJGf&c)'p`C@jPC#"QFQpY!!!'FfKKFQ9
+N!(0SBA*LEfpX'dPc)'0[ER4KD@jPFL"K)(0SBA*P)("[D@jd2a!!!!!2FfKKFQP
+ZCb"hD@jNEhGcFhGZC"4PGQ9bH5"cD'&bD@jR)(GTEQ4[G`!!!3!!Bd!M)A4jF'8
+!!!!"!!!+FfpeEQ3JCQPXC3"cEQ4Q)94SDA-JBfaKFh-JFQ9`FQ9cC@jdFb"cEh9
+ZC#"QD@aPF`#3"!YcEh9ZC#"QD@aPFh0ZC'B3CACPFRNJFfpeEQ3JCQPXC3!!!3!
+!Bd!M)A4jF'8!!!!"!!!0Fh4KG(9c)(GTEQ4[Gh&hEQ4A9'KPFf8JGfPZC'phFb"
+KFQ8JF(*[Ch*PFh-JC'PKE'pRFb!SBfp`H5"hD@jNEhFX)(*PBR9TE'3JC'9cDh4
+[F#"NBA4KBQ&cC5`JC@e`G(NJG(*KFfJT!*!%$R0dBA4eFb"hD@jNEhGc!(&hEQ3
+6CACPFRNJFh4KG(9c)(GTEQ4[G`!"!!"M3#-KG(P`C3!!!!%!!!KcG@PdBf&cC3"
+cG'0c)8%JCQpZG#"[FL"NCA0V)'&MBf9cFfpbH5"cG@PdBf&cC3!!!!&MEf*U!!*
+TEQ4iEQ&YC3PcG@PdBf&cCA0cG'0c$Q9fCA*j)(0eDA4MBA0P!!!"!!"M3#-KG(P
+`C3!!!!%!!!adFQ&cD#e[BQTPBh3!Bh4bFbp8FQ&cD#e[BQTPBh3JDA-JG'KP)'0
+XBA0c)'pQ)(4SC5$5G(*KFfM6)'pLDQ9MG!!"&(GKFQiJBQ9QEh*P)'9YF(4jD@j
+R!(GKFQjLEfpX0NPc)'%JC'PKE'pR)'4TFh"XBAPPC#"hD'9Z)0*&EA"dH5"dFQ&
+cD-R6)'Pc)(0PE'9MG'9N2`!3!!!2C(0eG!!#D@jNH'jKE@9KE'PK!!*TEQ4iEQ&
+YC@&`F'B!!QPZC(KZB@ePBh4ZFJ!#D@jNH'jKE@9MBf4f!!*TEQ4iEQ&YC@4KCQN
+!!QPZC(KZB@ePC'pMCJ!#D@jNH'jKE@9QD@aP!!*TEQ4iEQ&YC@0QEf`!!QPZC(K
+ZB@ePCQjdCJ!#D@jNH'jKE@9QFh9d!!*TEQ4iEQ&YC@0[BQS!!QPZC(KZB@ePFf0
+dFJ!#D@jNH'jKE@9cEQ4Q!!*TEQ4iEQ&YCA0dBh-!!QPZC(KZB@eP"(9cCA)!Bh9
+cC5a")&9cCA)JD@iJG'KP)&9cCA*c)'&ZC#"(FQpeF(-JBfpZG(*[E#"`B@jPE!!
+!"3CLEh9ZC(-!F'*ZC(&NFR3LG'KP)'*[G@jND@jR)(*PBh4KEQGXC5"[CL"dD'8
+JGA0PFJ!3!!4TBfpZ!'PTE@GTCQ&Y'h4SC5"TBfpZ)'*TG'eKF#"[CL"dD'8JGA0
+PFK!!#faKBQ9X)'PZC'9iE'&LD@a[EQF9G'KP)'aKBQ9X)'pQ)(4SC5"eFf9b%!!
+%EQ&YC3"`EQ&YDA4iG"4dD'8JEQ&YC5"[CL"dD'8JGA0PFJ!3!!K`Eh0TG'P[EJ"
+`Eh0Z884`G$&dD'8JF'pcDA4TEfiJEfBJG'KP)(9cCA)JGfPdD'PZ)'PdFb"`BA*
+PER3JGfPZC'ph%!!!!!9eFf9bFf0eFf8+CACPFRNJGA0PFJ!!!3!!Bd!M)A4jF'8
+!!!!"!!!'GfPZC'ph!'0hD@i)35"hD@jNEhF!N!8(GfPZC'phFf0hD@i-CACPFRN
+JGfPZC'ph!!!"!!"M3#-KG(P`C3!!!!%!N!8#GRGLH3!%#@0[EQCXD@0dFf0QE'-
+!!!jPH'PcG'PZCb"TG'9YF`"PH(0T!!!+FfeKE'`JD@0[EJ"cE@PM!!!$B@aXDhP
+KE!!!Ch0PEJ!)!d039A"bEf-!!!0'8&9QF(8J!!!$68e9E@ee)!!!#'KKFQ4hBA*
+P!'KNGh)!!""[F'9bBA4TEQFJFhPcG'9Y!'pc)#!!!!acEh9ZC#"cHA0dC@d!Ffj
+N)!!!%'ePE@pbH5"KGQ&TE'&LE'8!E(*KE3!!%'ePE@pbH5"TER0dB@aXC@3!FQ&
+Y)!#3"3%!!!!"!!!!BVS!!''k!!!"#3$%HY344!!!!"`!qJ!+3Nj%6!!!!&T*3di
+M!!!!CP0*@N8!!!"b4P*&4J!!!(jTBh-M!!!!LQPME$J!!!#@D@0X0!!!!+*TBh-
+i!!!!VQPMFc3!!!#kB@9dC3!!!-C3@94R!!!!dJ#!rrm!!!%G!-4jV!%Xrrm!N!A
+%H'$rN!3!!!%%!-4hV!#!rrm!!!%5!-4iC!%Xrrm!!!%p!-4i&!%Xrrm!!!'"!-4
+i'!%Xrrm!!!@&!-4i)!%Xrrm!!!H*!-4i%!%Xrrm!!!L0!-4i(!!!rrm!!!N4!*!
++BE8!a'5-$NphEQ9b)(*PFfpeFQ0P6M`:
diff --git a/Mac/Lib/test/tae.py b/Mac/Lib/test/tae.py
new file mode 100644
index 0000000..73c36b9
--- /dev/null
+++ b/Mac/Lib/test/tae.py
@@ -0,0 +1,112 @@
+# The oldest AppleEvent test program.
+# Its function has been overtaken by echo.py and tell.py.
+
+import AE
+from AppleEvents import *
+import Evt
+from Events import *
+import struct
+import aetools
+import macfs
+import sys
+import MacOS
+
+MacOS.EnableAppswitch(0)
+
+def aehandler(request, reply):
+	tosend = []
+	print 'request:', aetools.unpackevent(request)
+	param = request.AEGetParamDesc(keyDirectObject, typeWildCard)
+	if param.type == typeAEList:
+		n = param.AECountItems()
+		print 'List has', n, 'items'
+		for i in range(1, 1+n):
+			type, item = param.AEGetNthDesc(i, typeFSS)
+			data = item.data
+			print 'item', i, ':', type, item.type, len(data), 'bytes'
+			vol, dir, fnlen = struct.unpack('hlb', data[:7])
+			filename = data[7:7+fnlen]
+			print 'vol:', vol, '; dir:', dir, '; filename:', `filename`
+			print 'full path:', macfs.FSSpec((vol,dir,filename)).as_pathname()
+			tosend.append(item)
+	else:
+		pass
+		print 'param:', (param.type, param.data[:20]), param.data[20:] and '...'
+	if tosend:
+		passtothink(tosend)
+
+
+def passtothink(list):
+	target = AE.AECreateDesc(typeApplSignature, 'KAHL')
+	event = AE.AECreateAppleEvent(kCoreEventClass,
+	                              kAEOpenDocuments,
+	                              target,
+	                              kAutoGenerateReturnID,
+	                              kAnyTransactionID)
+	aetools.packevent(event, {keyDirectObject: list})
+	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
+	                     kAENormalPriority,
+	                     kAEDefaultTimeout)
+	#print "Reply:", aetools.unpackevent(reply)
+	return
+	event = AE.AECreateAppleEvent(kCoreEventClass,
+	                              kAEOpenApplication,
+	                              target,
+	                              kAutoGenerateReturnID,
+	                              kAnyTransactionID)
+	reply = event.AESend(kAENoReply | kAEAlwaysInteract | kAECanSwitchLayer,
+	                     kAENormalPriority,
+	                     kAEDefaultTimeout)
+
+def unihandler(req, rep):
+	print 'unihandler'
+	aehandler(req, rep)
+
+quit = 0
+def quithandler(req, rep):
+	global quit
+	quit = 1
+
+def corehandler(req, rep):
+	print 'core event!'
+	parameters, attributes = aetools.unpackevent(req)
+	print "event class =", attributes['evcl']
+	print "event id =", attributes['evid']
+	print 'parameters:', parameters
+	# echo the arguments, to see how Script Editor formats them
+	aetools.packevent(rep, parameters)
+
+def wildhandler(req, rep):
+	print 'wildcard event!'
+	parameters, attributes = aetools.unpackevent(req)
+	print "event class =", attributes['evcl']
+	print "event id =", attributes['evid']
+	print 'parameters:', parameters
+
+AE.AEInstallEventHandler(typeAppleEvent, kAEOpenApplication, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEOpenDocuments, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEPrintDocuments, aehandler)
+AE.AEInstallEventHandler(typeAppleEvent, kAEQuitApplication, quithandler)
+AE.AEInstallEventHandler(typeAppleEvent, typeWildCard, unihandler)
+AE.AEInstallEventHandler('core', typeWildCard, corehandler)
+#AE.AEInstallEventHandler(typeWildCard, typeWildCard, wildhandler)
+
+
+def main():
+	global quit
+	quit = 0
+	while not quit:
+		ok, e = Evt.WaitNextEvent(-1, 60)
+		if ok:
+			print 'Event:', e
+			if e[0] == 23: # kHighLevelEvent
+				AE.AEProcessAppleEvent(e)
+			elif e[0] == keyDown and chr(e[1]&0xff) == '.' and e[4]&cmdKey:
+				raise KeyboardInterrupt, "Command-Period"
+			else:
+				MacOS.HandleEvent(e)
+
+if __name__ == '__main__':
+	main()
+
+print "This module is obsolete -- use echo.py or tell.py ..."
diff --git a/Mac/Lib/test/tell.py b/Mac/Lib/test/tell.py
new file mode 100644
index 0000000..74e0ca0
--- /dev/null
+++ b/Mac/Lib/test/tell.py
@@ -0,0 +1,63 @@
+# (Slightly less) primitive operations for sending Apple Events to applications.
+# This could be the basis of a Script Editor like application.
+
+from AE import *
+from AppleEvents import *
+import aetools
+import types
+
+class TalkTo:
+	def __init__(self, signature):
+		"""Create a communication channel with a particular application.
+		
+		For now, the application must be given by its 4-character signature
+		(because I don't know yet how to do other target types).
+		"""
+		if type(signature) != types.StringType or len(signature) != 4:
+			raise TypeError, "signature should be 4-char string"
+		self.target = AECreateDesc(typeApplSignature, signature)
+		self.send_flags = kAEWaitReply
+		self.send_priority = kAENormalPriority
+		self.send_timeout = kAEDefaultTimeout
+	def newevent(self, code, subcode, parameters = {}, attributes = {}):
+		event = AECreateAppleEvent(code, subcode, self.target,
+		                      kAutoGenerateReturnID, kAnyTransactionID)
+		aetools.packevent(event, parameters, attributes)
+		return event
+	def sendevent(self, event):
+		reply = event.AESend(self.send_flags, self.send_priority,
+		                          self.send_timeout)
+		parameters, attributes = aetools.unpackevent(reply)
+		return reply, parameters, attributes
+		
+	def send(self, code, subcode, parameters = {}, attributes = {}):
+		return self.sendevent(self.newevent(code, subcode, parameters, attributes))
+	
+	def activate(self):
+		# Send undocumented but easily reverse engineered 'activate' command
+		self.send('misc', 'actv')
+
+
+# This object is equivalent to "selection" in AppleScript
+# (in the core suite, if that makes a difference):
+get_selection = aetools.Property('sele', None)
+
+# Test program.  You can make it do what you want by passing parameters.
+# The default gets the selection from Quill (Scriptable Text Editor).
+
+def test(app = 'quil', suite = 'core', id = 'getd', arg = get_selection):
+	t = TalkTo(app)
+	t.activate()
+	if arg:
+		dict = {'----': arg}
+	else:
+		dict = {}
+	reply, parameters, attributes = t.send(suite, id, dict)
+	print reply, parameters
+	if parameters.has_key('----'): print "returns:", str(parameters['----'])
+	
+
+test()
+# So we can see it:
+import sys
+sys.exit(1)
