Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » M2M (model-to-model transformation) » QVT XSD
QVT XSD [message #83849] Fri, 06 June 2008 21:41 Go to next message
Eclipse UserFriend
Originally posted by: min.kong.morganstanley.com

Hi,

1. QVT -

Executing the following .qvto :

modeltype INTEROP uses "http://ms.com/interop";
modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";

transformation interop2xsd(in interop: INTEROP , out XSD);

main(in interopModel: INTEROP::InteropSchema, out xsd: XSD::XSDSchema)
{
xsd:= interopModel.map interop2Xsd();
}

mapping INTEROP::InteropSchema::interop2Xsd() : XSD::XSDSchema {
targetNamespace := 'DUMMY';
}

with OUT target file specifies as <something>.xsd, produces:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="DUMMY"/>

which does not look like a valid xsd schema root element.

2. Java-

On the other hand, running the following Java code:

class Schema {

private XSDFactory _xsdFactory;
private XSDSchema _schema;
private ByteArrayOutputStream _outputStream = new ByteArrayOutputStream();

private Schema() {
_xsdFactory = XSDFactory.eINSTANCE;
initSchema();
}
private void initSchema() {
_schema = _xsdFactory.createXSDSchema();
_schema.setTargetNamespace("DUMMY");

_schema.setSchemaForSchemaQNamePrefix("xsd");
Map<String, String> qNamePrefixToNamespaceMap
=_schema.getQNamePrefixToNamespaceMap();
qNamePrefixToNamespaceMap.put("tns", _schema.getTargetNamespace());

qNamePrefixToNamespaceMap.put(_schema.getSchemaForSchemaQNam ePrefix(),
XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);

_schema.updateElement();

}
private String serialize() {
XSDResourceImpl.serialize(_outputStream, _schema.getDocument());
return _outputStream.toString();
}

public static void main(String [ ] args) {
Schema schema = new Schema();
System.out.println(schema.serialize());
}
}

produces, in stdout:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:tns="DUMMY"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="DUMMY"/>

which looks like a valid xsd schema document root.


3. Question: how would one achieve the equivalence of 2. above,
with a QVT transform? I.e., how would one re-write the .qvto in 1. to get
the output produced in 2. ?


Thanks.

-Min
Re: QVT XSD [message #83879 is a reply to message #83849] Sat, 07 June 2008 14:42 Go to previous messageGo to next message
Sergey Boyko is currently offline Sergey BoykoFriend
Messages: 171
Registered: July 2009
Senior Member
Hi Min,

I'm not quite familiar with XSDResourceImpl but seems that your case
somehow depends on ones behavior. Namely on
XSDResourceImpl.serialize(..) impl.

For your case just try to specify output URI with file extension differ
from ".xsd" (for example ".xsde"). That way I've got the following output:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:XSDSchema xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsd="http://www.eclipse.org/xsd/2002/XSD" argetNamespace="DUMMY"/>


Regards,
Sergey.

Min wrote:
> Hi,
>
> 1. QVT -
>
> Executing the following .qvto :
>
> modeltype INTEROP uses "http://ms.com/interop";
> modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";
>
> transformation interop2xsd(in interop: INTEROP , out XSD);
>
> main(in interopModel: INTEROP::InteropSchema, out xsd: XSD::XSDSchema) {
> xsd:= interopModel.map interop2Xsd();
> }
>
> mapping INTEROP::InteropSchema::interop2Xsd() : XSD::XSDSchema {
> targetNamespace := 'DUMMY';
> }
>
> with OUT target file specifies as <something>.xsd, produces:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <schema targetNamespace="DUMMY"/>
>
> which does not look like a valid xsd schema root element.
>
> 2. Java-
> On the other hand, running the following Java code:
>
> class Schema {
>
> private XSDFactory _xsdFactory;
> private XSDSchema _schema;
> private ByteArrayOutputStream _outputStream = new
> ByteArrayOutputStream();
>
> private Schema() {
> _xsdFactory = XSDFactory.eINSTANCE;
> initSchema();
> }
> private void initSchema() {
> _schema = _xsdFactory.createXSDSchema();
> _schema.setTargetNamespace("DUMMY");
>
> _schema.setSchemaForSchemaQNamePrefix("xsd");
> Map<String, String> qNamePrefixToNamespaceMap
> =_schema.getQNamePrefixToNamespaceMap();
> qNamePrefixToNamespaceMap.put("tns", _schema.getTargetNamespace());
>
> qNamePrefixToNamespaceMap.put(_schema.getSchemaForSchemaQNam ePrefix(),
> XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
>
> _schema.updateElement();
>
> }
> private String serialize() {
> XSDResourceImpl.serialize(_outputStream, _schema.getDocument());
> return _outputStream.toString();
> }
>
> public static void main(String [ ] args) {
> Schema schema = new Schema();
> System.out.println(schema.serialize());
> }
> }
>
> produces, in stdout:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema xmlns:tns="DUMMY"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="DUMMY"/>
>
> which looks like a valid xsd schema document root.
>
>
> 3. Question: how would one achieve the equivalence of 2. above,
> with a QVT transform? I.e., how would one re-write the .qvto in 1. to
> get the output produced in 2. ?
>
>
> Thanks.
>
> -Min
>
>
>
>
>
Re: QVT XSD [message #83894 is a reply to message #83879] Sat, 07 June 2008 16:30 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------090508080701070908050103
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Sergey,

Just note that XSD wasn't designed to serialize as XMI:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=166638


It's there some way to accomplish what's done like this with the Java
APIs can be expressed in QVT?

http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema()
< http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema%28%29>


Sergey Boyko wrote:
> Hi Min,
>
> I'm not quite familiar with XSDResourceImpl but seems that your case
> somehow depends on ones behavior. Namely on
> XSDResourceImpl.serialize(..) impl.
>
> For your case just try to specify output URI with file extension
> differ from ".xsd" (for example ".xsde"). That way I've got the
> following output:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:XSDSchema xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
> xmlns:xsd="http://www.eclipse.org/xsd/2002/XSD" argetNamespace="DUMMY"/>
>
>
> Regards,
> Sergey.
>
> Min wrote:
>> Hi,
>>
>> 1. QVT -
>>
>> Executing the following .qvto :
>>
>> modeltype INTEROP uses "http://ms.com/interop";
>> modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";
>>
>> transformation interop2xsd(in interop: INTEROP , out XSD);
>> main(in interopModel: INTEROP::InteropSchema, out xsd:
>> XSD::XSDSchema) {
>> xsd:= interopModel.map interop2Xsd();
>> }
>>
>> mapping INTEROP::InteropSchema::interop2Xsd() : XSD::XSDSchema {
>> targetNamespace := 'DUMMY';
>> }
>>
>> with OUT target file specifies as <something>.xsd, produces:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <schema targetNamespace="DUMMY"/>
>>
>> which does not look like a valid xsd schema root element.
>>
>> 2. Java-
>> On the other hand, running the following Java code:
>>
>> class Schema {
>>
>> private XSDFactory _xsdFactory;
>> private XSDSchema _schema;
>> private ByteArrayOutputStream _outputStream = new
>> ByteArrayOutputStream();
>> private Schema() {
>> _xsdFactory = XSDFactory.eINSTANCE;
>> initSchema(); }
>> private void initSchema() {
>> _schema = _xsdFactory.createXSDSchema();
>> _schema.setTargetNamespace("DUMMY");
>> _schema.setSchemaForSchemaQNamePrefix("xsd");
>> Map<String, String> qNamePrefixToNamespaceMap
>> =_schema.getQNamePrefixToNamespaceMap();
>> qNamePrefixToNamespaceMap.put("tns",
>> _schema.getTargetNamespace());
>>
>> qNamePrefixToNamespaceMap.put(_schema.getSchemaForSchemaQNam ePrefix(),
>> XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
>> _schema.updateElement();
>> }
>> private String serialize() {
>> XSDResourceImpl.serialize(_outputStream, _schema.getDocument());
>> return _outputStream.toString();
>> }
>> public static void main(String [ ] args) {
>> Schema schema = new Schema();
>> System.out.println(schema.serialize());
>> }
>> }
>>
>> produces, in stdout:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <xsd:schema xmlns:tns="DUMMY"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="DUMMY"/>
>>
>> which looks like a valid xsd schema document root.
>>
>>
>> 3. Question: how would one achieve the equivalence of 2. above,
>> with a QVT transform? I.e., how would one re-write the .qvto in 1. to
>> get the output produced in 2. ?
>>
>>
>> Thanks.
>>
>> -Min
>>
>>
>>
>>
>>


--------------090508080701070908050103
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-15"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Sergey,<br>
<br>
Just note that XSD wasn't designed to serialize as XMI:<br>
<blockquote>
Re: QVT XSD [message #83926 is a reply to message #83894] Mon, 09 June 2008 08:12 Go to previous messageGo to next message
Sergey Boyko is currently offline Sergey BoykoFriend
Messages: 171
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------040602030304050707040008
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

Ed, thank you for pointing about XSD serialization issues.

So for XSDSchema initialization QVT script intends to use custom
library. Short howto about these libraries was answered in thread
"[QVTO] Adding custom operations for primitive data types" some time ago.

I've attached modified 'org.eclipse.m2m.qvt.oml.ocl.emf.libraries'
plugin that provides easy XSDUtil functionality.
Original qvto script (that produced same output as java-code) is changed
to the follow:

modeltype ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore');
modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";

transformation interop2xsd(in interop: ecore , out XSD);

import library org.eclipse.m2m.qvt.oml.ocl.emf.libraries.XSDUtil;

main(in interopModel: EClass, out xsd: XSD::XSDSchema) {
xsd:= interopModel.map interop2Xsd();
}

mapping EClass::interop2Xsd() : XSD::XSDSchema {
init {
var schemaTargetNamespace := 'DUMMY';
var schemaTargetPrefix := 'tns';

var schemaForSchemaNamespace := 'http://www.w3.org/2001/XMLSchema';
var schemaForSchemaPrefix := 'xsd';

result := object xsd::XSDSchema {
targetNamespace:= schemaTargetNamespace;
};

result := result.setSchemaForSchemaQNamePrefix(schemaForSchemaPrefix);
result :=
result.putIntoQNamePrefixToNamespaceMap(schemaForSchemaPrefi x,
schemaForSchemaNamespace);
result := result.putIntoQNamePrefixToNamespaceMap(schemaTargetPrefix,
schemaTargetNamespace);

}
}




Regards,
Sergey.


Ed Merks wrote:
> Sergey,
>
> Just note that XSD wasn't designed to serialize as XMI:
>
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=166638
>
>
> It's there some way to accomplish what's done like this with the Java
> APIs can be expressed in QVT?
>
> http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema()
> < http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema%28%29>
>
>
> Sergey Boyko wrote:
>> Hi Min,
>>
>> I'm not quite familiar with XSDResourceImpl but seems that your case
>> somehow depends on ones behavior. Namely on
>> XSDResourceImpl.serialize(..) impl.
>>
>> For your case just try to specify output URI with file extension
>> differ from ".xsd" (for example ".xsde"). That way I've got the
>> following output:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <xsd:XSDSchema xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:xsd="http://www.eclipse.org/xsd/2002/XSD" argetNamespace="DUMMY"/>
>>
>>
>> Regards,
>> Sergey.
>>
>> Min wrote:
>>> Hi,
>>>
>>> 1. QVT -
>>>
>>> Executing the following .qvto :
>>>
>>> modeltype INTEROP uses "http://ms.com/interop";
>>> modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";
>>>
>>> transformation interop2xsd(in interop: INTEROP , out XSD);
>>> main(in interopModel: INTEROP::InteropSchema, out xsd:
>>> XSD::XSDSchema) {
>>> xsd:= interopModel.map interop2Xsd();
>>> }
>>>
>>> mapping INTEROP::InteropSchema::interop2Xsd() : XSD::XSDSchema {
>>> targetNamespace := 'DUMMY';
>>> }
>>>
>>> with OUT target file specifies as <something>.xsd, produces:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <schema targetNamespace="DUMMY"/>
>>>
>>> which does not look like a valid xsd schema root element.
>>>
>>> 2. Java-
>>> On the other hand, running the following Java code:
>>>
>>> class Schema {
>>>
>>> private XSDFactory _xsdFactory;
>>> private XSDSchema _schema;
>>> private ByteArrayOutputStream _outputStream = new
>>> ByteArrayOutputStream();
>>> private Schema() {
>>> _xsdFactory = XSDFactory.eINSTANCE;
>>> initSchema(); }
>>> private void initSchema() {
>>> _schema = _xsdFactory.createXSDSchema();
>>> _schema.setTargetNamespace("DUMMY");
>>> _schema.setSchemaForSchemaQNamePrefix("xsd");
>>> Map<String, String> qNamePrefixToNamespaceMap
>>> =_schema.getQNamePrefixToNamespaceMap();
>>> qNamePrefixToNamespaceMap.put("tns",
>>> _schema.getTargetNamespace());
>>>
>>> qNamePrefixToNamespaceMap.put(_schema.getSchemaForSchemaQNam ePrefix(),
>>> XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
>>> _schema.updateElement();
>>> }
>>> private String serialize() {
>>> XSDResourceImpl.serialize(_outputStream, _schema.getDocument());
>>> return _outputStream.toString();
>>> }
>>> public static void main(String [ ] args) {
>>> Schema schema = new Schema();
>>> System.out.println(schema.serialize());
>>> }
>>> }
>>>
>>> produces, in stdout:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <xsd:schema xmlns:tns="DUMMY"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="DUMMY"/>
>>>
>>> which looks like a valid xsd schema document root.
>>>
>>>
>>> 3. Question: how would one achieve the equivalence of 2. above,
>>> with a QVT transform? I.e., how would one re-write the .qvto in 1. to
>>> get the output produced in 2. ?
>>>
>>>
>>> Thanks.
>>>
>>> -Min
>>>
>>>
>>>
>>>
>>>
>


--------------040602030304050707040008
Content-Type: application/octet-stream;
name=" org.eclipse.m2m.qvt.oml.ocl.emf.libraries_1.0.0.200806091156 .jar "
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*0=" org.eclipse.m2m.qvt.oml.ocl.emf.libraries_1.0.0.200806091156 ";
filename*1=".jar"

UEsDBAoAAAAAAA5fyTgAAAAAAAAAAAAAAAAJAAQATUVUQS1JTkYv/soAAFBL AwQKAAAACAAN
X8k43DMrMQUBAAD9AQAAFAAAAE1FVEEtSU5GL01BTklGRVNULk1GlZFNa8Mw DEDvgfyHUOhh
0AgnsLK19LDBbu0oG/Syk+OoQcwfqeyEbr9+SbNlzW3DGCwLPT/JO2npiD6k B2RPzq6SDEQc
PTa21Jg+S4OrZF7rpiLbB2PmQQVqZXC8ShxXgEpT7RFMbuDUBnBGg1Ma0BxB U8GSCT1sf077
OEouzJF3QFv2sHnNrqUSefLa7ttylMzH1NYpqelThst9PaW+fpjCaVJDH38W XXuylcbQWXbQ
TeCmU3k6145DupfqXVb/ocXRC54aYkwHq2mpcozAjQ1kcHGdOPtyErvOpkf3 Beti6K8d5rGZ
vWWQg1h0G8TN7Gqqv5/arVyIO7EU91l2u4yjOPoCUEsDBAoAAAAAAA5fyTgA AAAAAAAAAAAA
AAAEAAAAb3JnL1BLAwQKAAAAAAAOX8k4AAAAAAAAAAAAAAAADAAAAG9yZy9l Y2xpcHNlL1BL
AwQKAAAAAAAOX8k4AAAAAAAAAAAAAAAAEAAAAG9yZy9lY2xpcHNlL20ybS9Q SwMECgAAAAAA
Dl/JOAAAAAAAAAAAAAAAABQAAABvcmcvZWNsaXBzZS9tMm0vcXZ0L1BLAwQK AAAAAAAOX8k4
AAAAAAAAAAAAAAAAGAAAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL1BLAwQK AAAAAAAOX8k4
AAAAAAAAAAAAAAAAHAAAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9Q SwMECgAAAAAA
Dl/JOAAAAAAAAAAAAAAAACAAAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9v Y2wvZW1mL1BL
AwQKAAAAAAAOX8k4AAAAAAAAAAAAAAAAKgAAAG9yZy9lY2xpcHNlL20ybS9x dnQvb21sL29j
bC9lbWYvbGlicmFyaWVzL1BLAwQKAAAAAAAOX8k4AAAAAAAAAAAAAAAABAAA AHNyYy9QSwME
CgAAAAAA5FslNwAAAAAAAAAAAAAAAAgAAABzcmMvb3JnL1BLAwQKAAAAAAAO X8k4AAAAAAAA
AAAAAAAAEAAAAHNyYy9vcmcvZWNsaXBzZS9QSwMECgAAAAAA51slNwAAAAAA AAAAAAAAABQA
AABzcmMvb3JnL2VjbGlwc2UvbTJtL1BLAwQKAAAAAADkWyU3AAAAAAAAAAAA AAAAGAAAAHNy
Yy9vcmcvZWNsaXBzZS9tMm0vcXZ0L1BLAwQKAAAAAADkWyU3AAAAAAAAAAAA AAAAHAAAAHNy
Yy9vcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9QSwMECgAAAAAADl/JOAAAAAAA AAAAAAAAACAA
AABzcmMvb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL1BLAwQKAAAAAADj WyU3AAAAAAAA
AAAAAAAAJAAAAHNyYy9vcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1m L1BLAwQKAAAA
AAAOX8k4AAAAAAAAAAAAAAAALgAAAHNyYy9vcmcvZWNsaXBzZS9tMm0vcXZ0 L29tbC9vY2wv
ZW1mL2xpYnJhcmllcy9QSwMECgAAAAgADl/JOAui6es7AAAAOwAAAAgAAAAu b3B0aW9uc8sv
StdLTc7JLChO1cs1ytUrLCvRy8/N0ctPztFLzU3Ty8lMKkosykwt1s/JT89J LUvNUbBVCAbS
RakAUEsDBAoAAAAIAA5fyTgnOt3nwwIAALQFAAAKAAAAYWJvdXQuaHRtbI1U XW/aQBB8LhL/
YeuHfkiYC0GpQgNIKSFqqjRBCenH42Ev+JrznXN3xvDvu2cbSBpShRc43+7s 7MyY/tuz69H0
92QMiUslTO6+XF6MIAgZ+9kdMXY2PYNfX6ffL6HTPoBbZ0TkGBtfBc0G0CdI nMs+M1YURbvo
trVZsOkNW3moju+tf4a2bGzHLg6GzUa/HLVKpbKDPQidXq9XNVbFyGP/naLj 4KtDfMjFchCM
tHKoXDhdZxhAVJ0GgcOVY777BKKEG4tucHF7HR4fH/XCTsA8lBNO4vB0pnPX Z9WBnrLNpJmO
1yC5WgyC8VV4d1vROKwaYJoIC/Vs6jmkS6D7bPgtVwhHLTg8OPjUZ9nwje/q Di9FhMoilXap
tKycJgjjSIrMIpzrXMXcCa0g5fdogS+5kHwmEbiUm7VAKHB+cCbzRUiHD+8e cu1Oah7V4WMb
4E5JtBa0S9AUgvCbDaFiEXGHMcxQ6qJFQLhZADyk0UsR07XTsNY5EB80ZZFD kxIhFXsasfAk
CXru75qNzQKTfCZFBPWa8AON9cv4vNQkx5PLHcFTwsrWNQrQlaew27nZ4A76 ZLTB+ZNwYDWu
TIjEBZcMMxkuOwftKimvLu0zPmw3G+faQJabTFu0j9i0oKI6MXpheFodoBBk RYpcPdau7U2u
Hb2Yl9LFIgalHRiMUCyxsmwjdSzosZNrmBudVvOeZeCZOc3GDIVaEGIs/Fs0 y0sj1+RK6TFk
3Lj1RumbXZU2tealf7GYz9F4zL2epnxNwmcZkatCYCAnXiQLV+TV7A8Rp/oY qxzuJAAYJRjd
l8+eDH9vQdaJcAlZWnC/yzZqhXDJP0AkodJg8yjZduKKAG2rfAk4MXg2ZU/g X8j7f6JchtA6
b/FWAr+2JRki3Lc2aUVAJdXHRaQijSS5HBeKxr8iyS/ltgzpNl/M/yNVf1EU 4OFfUEsDBAoA
AAAIAA5fyThWgtLXZgMAACUHAABIAAAAb3JnL2VjbGlwc2UvbTJtL3F2dC9v bWwvb2NsL2Vt
Zi9saWJyYXJpZXMvRW1mVG9vbHNMaWJyYXJ5JE1ldGFpbmZvLmNsYXNzpVRt b9NWFH5u82In
mAJpC6ODdQXWpkBrKFDatAOc1C0pJukar1K0D5Gb3GZmjt3ZTqX+K14kmDax L/u2HzVxrpOs
bRKkIhTpnuN7n/Oc9/z7359/A7iPHQkjDHnPb6q87tgHAVdbiy3198NQ9VqO 6tUdlbf2Vcfe
8y3f5oGqt/ZNz3MCI7o5uvWSh5bt7nsS4gwXX1mHlupYblMt773i9ZBhYlM3 a+uaqZnVbb1W
LFVMrVTQGcZ+MY7BldC33eYqw7kIrZta0agwpLVKTS/nt/SCySCvUXyuHT5h iGXndhniBa/B
JZw/5bbDJOECw5X+23zbdhrcT+ESxiRkGFbOnrbR07addtN2FYxjgpIoF4ya UczvaDvV2rZW
eKFtUmqZwczSUHBFwTe4yiAdWk6bl/cZZrJGf8FW54YZj+JbBddwnSG51q3B RHYQOLcrY4ph
JJcTJtMKbuAmmVgHB9xtMMwPMxm46lZpVcYPFGu57ux6dkPwzSrIYo4aEXod JMN4dki4Mu6Q
086HjHlqD697Ps/l9HUrtMyjA54Cg6oggaSM+1Sv3rvmul5ohbbnCsQDBZJA PCI2CkNzj2Q8
ZhjtoTsFE8gVBTKSDBcM2+WldmuP+6a153DRCq9uObvUOfEdXaYRw4+immka ofBXO2BYN75+
/ml4x5o87KVYdIPQcusUwsqQqg/pw9B1SLjBzztFBqXRpS1ZLaJMC0fCr0PB b2VPRS+ijSqk
nijnmR3GA+7QYN48AyWt4W/8iCFlBXpv2WeHDfRQR5lBIOVV8dp+nW/YonXj fZVeEAZUiqLr
cr/gWEHAAwnbX7TFfZQ0y732YZrmKEZ/iTFMisEkbVKMXyTlSCZIppAm3Dn6 +ie6AwLpI5Rq
7C+MVt/i4h+4/AGTme/e4/vMLTreY6ZSjWduV6oJcSQzdyvvsJCMTDL3Tjy9 w2Lic0QPj4mW
CLj8htyOIEfnEs7TOU2h0KbT7x7pDzCDFcziCW3rBulF3EEZd+FgHh7pPqaw GjGAUrn2f0Iq
SSbSvP0Ba8cuktFlx0TpAIj6KckUnkHrGi+TFITxt1h43We7GNle7rwjj4mo bnEUSKPxwTr0
QZbFfpalUywb2OyyPO+yFLHVZVnoJkIsy/0suRN5CJYX0bsRnS9RIpmOrMv4 CalPUEsDBAoA
AAAIAA5fyTjvxMJrEwcAAEsQAAA/AAAAb3JnL2VjbGlwc2UvbTJtL3F2dC9v bWwvb2NsL2Vt
Zi9saWJyYXJpZXMvRW1mVG9vbHNMaWJyYXJ5LmNsYXNznVdbcFvFGf7WlizZ PnHIzWCHixLS
IEd2BISSxnaTOEJJFGTHtRSTQCA5ltfyiY/OcY6OnLjQFEovBHqnt9CWaacP DMOLMTNOoVMm
mc7QoTy1j33oTKdPDE+d6VMfmH57dLEsyRZFD/r//ffb/7b/v7vnL5++9z6A h/B6AC0Ch2wn
G5UZ05jPy2ju4Vz08oIbtXNm1M6YUZmbiZrGlKM7hsxH47mZtG2b+aQnWQzA J3DHJX1Bj5q6
lY2enrokM67ApvjoePrchVhyJJWKpwS2PpVcBcVMPZ8fqoBOHzsVj6UJ2lYN KmpSqBPxdDo+
cWF8In48cZaqqkAp1zGsrALFbCvv6pY7qZsFGcQmgdaspCPBYYZlGe5hCsJ9 kwK+mD0tA9gq
sLnGo3YIbNfgR5viujUEECQqaVhyrJCbkk5anzKlcsDO6OYk86HGJWHbsGel A63YqaEHm2nJ
nTXyAkPJz51dBraNUTymu3p6cV4mvBAztHYiXJ+EeknfGsvKkszYjozGywqH 2rEL9wewW+CB
daDjemZOz8o9EzJr5F1nUcMefIFpTYyl0iNjsbjAulZqlw510toDGsLoE+hk XGWEwCMN4mmm
d0jlOqKhHwP0h+q8TWTGwn11tdbBDY1qeBAPsVQIHZXurD09pudoe29D23Wi DmzBAQ2P4IsC
7RUVAkcbLK8v9mqFjpwxWdrRogYqPohDAXxJ4K71MBoGwVpoM6wFe44uHwrX N0qD3umrFwXw
ZYH7mpRFB45gJICjAg9+9tJN2tmsdDQcQ6yYoKJA4O7yfhRcw4yalDJFJTgL 8AjiGo7jBMNL
xSfjE6yonkZ4uSBNup8QuLM238cKhjktnSAeFzg5IfMF0w3ZMyHdCumZjMzn bSeU8/IYkldl
hmptK2TkQ5btKoxR6iq1pJKCwVAHTmJUdfKYwI5GJTKpEOMavoIJ+q7Pz0uL 5TDQYGvqq6nk
8ZBSkdZwBjyYgq5dnOQpFG5YgGfxZADnynXSIJ0ansJ5HnSUCuwPr5vGRtEE 8YzAcPxqRs57
Cboya5gyZNr2HOdDM8xhg3wqcVXZnMRFlQ+9Jg3rNtVqGs4io5xnAmP/j9tV kvSsY19RZ7EX
y4zAwdpYSpvPaDYMI4BZgZ1VprjKMdzFiroALrGHVgFjdqqQmS12ahXIFNi9 CkqYpszq5oiT
LeSk5VbhLIFQPc7zsAo1LxCpPx4SPBAyukKkdUedqOUFAn4rf2aC3aJNl+Iq nnY+OT7H4gg1
O1xZ0rnSCde7/tlFlOP129pruXJ3C1q8J7lBLonZlWySSmL2JJtnkrDdDWBr E0nQQINw1s3j
UCmBbiWBHepClq5umLxrEuH18jhi8XjxNDa8mOtEnXgR3wrgm8xHU40anse3 mZRw/RWZsXM5
2yo2T3xUn6fel/ByANe55c2wGjbhlZr7cKOb5HtrXn7ls8uXlya77/7PkBie VHNykbeFno+X
H44HGlpfR1fFlZ+wzDbEcN9SdsHJyOOGeq1tr3lo7Vc2udUJy5KOd2PLfAA3 BO7duE14apdf
NwH8SuDY537q7RlVNWXN2FRZZvlcYor4Tm9Fr3qWkutVj1KPtkM9ajrJt0Dj XBBd2EzJHZQc
JFW/za1/xJZ3sI2k9R3seNsD38n/Lk/tESobIX8P7vJmwGU9FSVRUqXGv+8m eleXtnnC4hKt
CMDdHKvF9+K+4uKW5aK/Ihj5AIH+P8MvlpYRiryLvS0YG/DGAyvYt6//JvYv Y9sKHh709fgG
lrFjBY8O+nv8H6Czx38bwzfQ3uO/heGl3+PwMh77A06e23rqJpI9fi5fwekV pFbwxBv4zaCv
CvE0Ef0ruMDZHt8Kpt7A803mL66Zl3XzR5vMhzacF0vcrV7ejwaySGDGo2p8 nZwaK6rGb2LO
Gyuqxh8i540VVeOPYXtjRYv78Tc+ScEHVBAnaCOB7TjFvXmc6DHux2nsJY1g HI/yYo5hgog0
pWd4407iImmGYwNP0N5ZXMY5fBVP4hrpC6QvUnad1/IrOI8f4Wm8hmfwOulv SX9H2Zu4gLeo
5W3oeA9TeJ/0NumfKPuQmj/CNP4Kib/T43+Q/pP0X5R9zOg/wSz+Tcv/xSV8 CkMI3qqtvHrb
YHq1Na9qWwRLtaW4y17FK84h18JI/4M8XPUVgMMoYAE+RnkAV3CV1TeHnVhk ND56r7hnyb3l
cc+R+8jjvkbuE4+7Rq5FfR+Uij9OraohtnjbqXE7I8XtXKpphHnP2e4iuOws ua97zgqe1C+U
VJ4nRnVdd8Qrf/bCNwT638V3WnAL312q6U2XDhVo44qnP1RcWdHfje/jB579 bvzQS4bgBv24
ZOkUqfKnK3Ibr95AMHILry6JWgvPsvufYwtfq4qgq2Khixauenp+6q37GX5O upXcLvwCr/ET
+Zec/TXa/wdQSwMECgAAAAgADl/JOKF6EjTSAwAAoAgAAFAAAABvcmcvZWNs aXBzZS9tMm0v
cXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9MaWJyYXJpZXNQbHVnaW4kUGx1 Z2luTG9nSGFu
ZGxlci5jbGFzc61V61YbVRjdJyEZCNOCFa1IEapQQ7Cd2tbaNkAFDCU4pjVB Ktaqk+EQRicZ
nAuVV/BB6m9dCqt2LR/Ad+irdLnPTKiUS35Qf+TcZp99zre/b5/88/yvvwF8 CFtDSmDJ8xuG
tF1nM5BG80rT+GkrNLyma3i2a8jmuuE6dd/yHRkY5t7onhs1nNZY0pleY9Fq rbnS19AlMPKD
tWUZUei4hus1+L1h1EJfWs02SCAbbjjB2GWBonnis4ukmXJaTjgjMJN/BZ6J FYGueW9N9kCg
V0cG2RzSOKVDw2mBdF4B+kynJStRsy79ZavuSoEzpmdb7gqZ1Ly92KUCEzBP fp1DkjJObTOq
u06wITCaNw+LS2xV2p6/xlByeBNvaTgrMNQBqGMQbwt0N2Royi3pEp2fOIpZ fSz24Bze0TAs
cPYYiI4RjDIftdJKqVoSGOzI9a6O9xRcuz9brZQrdzSMCwzHOxzPmNsO5azv W9t3o3AzCpPK
yWEMp3LMT17HBArMRyDD/QCe2ZaGFPs/xJqk8YGO1zGgRpd0GCqvGdv1Apmj C65quCJw88Qp
03ENHzF6pabXEDhPLfeTUXFp+FErdJrSKBNS1PAxbXIsphZaYRSoq93UcQus gB5yz0WqHqhU
m94LGo6x7ltN+cjzfzSSz8VeTOO2Bppi8FiQjk8wSw1JWttu1j3XsStECAzs VYFrJaZl4opK
+3kdn6ot3aGXrKo6W9BxB4vJ5ZY3fO9RixXyEkO8qpxBkutYUo76TLm1fPiU I5aOJJpY6cXn
uKuhQiU6qqzjHr6gf12Vk/F8h5QkescPQdaPDULujkajEgHr2XfCbQFRFtC9 l4pxxOxYztyf
WXcj5ehc6WdbboaO1wo0PNizbSKDtCN1wguEwC+v8tD9n4+ScpXAtyqj3Qyi 5kW+LRccVZ8D
BzZfUhFRoXKrJf151woCySey/yAlRkmY5t+S6O9XbzBHGaQUP9d7OLvGWYp9 rjD5J5td6L9x
lkIf2ywxwA30s9XjcQ6v4YxiU75vMzwjVxf7h+npyR288TuGHqNbm/4Vfcn0 /GNkMtNPMba6
iwuVwsUdvF+Y3MUkz7pY+AO5HVx+iuur55LxjSeY4o2JmuP20i7KT2Cm8N+l ZuJ2irNpXmqG
F7qNIVpvGPMYp58KKPEpWsBV2ugWFmGijGX29zn/BktxMIXkwu1g1KiKGsNJ 4QGxX7IfZ9gr
3JPm6lc43Q51Mg6dv4MaVfZpJF5oxBeRqFWOuzj7ujNF9TAFFzTeOTn7AtEq kVkl3sOjk5SK
f9/F7few4oTRSXzy6kj9C1BLAwQKAAAACAAOX8k4dSZZoe4EAABFCgAAPwAA AG9yZy9lY2xp
cHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVzL0xpYnJhcmllc1Bs dWdpbi5jbGFz
c6VWa1cTVxTdl4cDYRSKWoX6jIghYMZ3a2NtAYOiI6GAKPZBJ8kljk5m4mSC 2tp3+6X/oP/C
2q6Ada1+7If+qK7uOxMehUDXorAWd+6555y7z9nnnMtff//+B4Cz+FFDk8Bl zy8aMu/Y5Yo0
SudKxuPFwPBKjuHlHUOWFgzHzvmWb8uKYa58TTrVou1qaBE4ut487/nS8Ktu YJekESkJ7M2O
mvPm+MjU8NTc/OTw6K3h6xmBbvOhtWgZjuUWjenAt91iWqDTzF43M7MZcz47 OTOenRDYPeq5
lcByg1nLqco2xATaDccrOnJROgJtV3izawdXBZoTA7MCLaNeQbajE29o6BK4 uB5dGFAI0XYD
6buWYxDaNL0XLL8QBfdsvFR2dHRjL++uBAUGP2nlH1lFKXDMXO9NpSbylqlr pDuwHwc0vClw
ZHtNHQfRI6AVZTBhleh6X2Jgcz7aIfCWjlbsUpmxXTlRLeWkP2PlHKkS6OUt Z5Z8qH1duOtK
mI0YmnFMxxHozEjwwK4IpM0d80xiWsmBHwicTIRuvErRNhZ8Qn/i+Y+Mkapb cCSZCuTTIK1o
iGWe5mU5sEmehlOsgbXgVk8UyAEdJ9CnYVDgwMb4R6q2U5B+jFk4rSMFg9Qz YdFlAoeZsi2x
kIqzOK/hnEDPlko6LigWOul0+lkp5zl2XrERwyW8o+Ftga6NkHRcxrvkbVEV Y3ZBoD+xjrZs
7qHMM/7NTMaQxBXFx3sC+xObzwdmlcb7Oj7AMEm0ymXpFhh2I9VNonqewktG dVxTMbUFXnQY
wxhuaLgucHybRrWCBc8v6RjHTYE9zMc1masWsyFNG4LcEka6DSbrlbek6rek WGUpVlmKVZZi
lcUwgUkNWYGDoXE1sB3VyyyxomFylb6ODzEV8RwJBFJb397AAZtmBrMa7qwU 1L911NTQcRf3
mOVpDpopTqKeRs6UYlqV3n0dH+FjgY4IkhnNnbEGoLZ00xBt/YIJfKpjHp+R sgoviLwfSmzt
i7HlBG7uuJn7ooWh3LBUE7C/LBRUbbKnfkr8jymxc9NNmMKGmAD77QFsThOr UKifcLQ2Ss6a
HbszHw0igfh/DyuWu1NndaVhLsHV4akuaqGk1IbHAlDiio4AVVaOfFy1nMqG Vl7p/vtK9YmO
p8pDR+DdYTP7o1aFc2UGn+v4As85T8uWX5HbdngD8jV8xaDWDMYdRxYtZ9gv VkvSDVYnK/3X
38fmguSUik17VT8vx2w1N/dtSH5K+RPQx12XOB2rUpEMrWsjJTjOZmjm/w1N 6FFPEr96oXFl
5YbSdrTwqwM6JbspOcNV/egvsecV9gn8it5fQs1DUPls4t9D1O/F4VAK6h9Z tTa4KvvW5BKO
rpntCoWRiR4pEFg8NOZDQq2T/G7hrj908xvPFeix5OASEq+RnEvWMPQKZwSW cXEJ6e72Gq7W
MLKMzO3uW8u4nRx6ieklzNXwSbh/DWsuKZaQr2FhDcel0Huc3k8w8BPc9fFJ P0lcCkU/BnCK
D1A/H5gEn4wBjHDNcD4r3MciRHXc6ushHhFxH/cOI2ziL0dOPRHPuVP68cE/ 0TlYQ6m7XIP/
M1qHXqhdDYvm4DKevbg79IIWvUzhUXxZR9kb0nQaXXw9u0lIL87x9DwRXFiH JL6KJI6v6xmO
4xvcC5F8G8b8Hb4PSRMcFgI/oOkfUEsDBAoAAAAIAA5fyTibdKIjIwIAAMkD AAA2AAAAb3Jn
L2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvTG9nZ2Vy LmNsYXNzlVJd
bxJBFD1T2l0WlrZSLR/9RKtCqzst+qSNSdMAabJCAgYfzYIjbjOwuiz8LoUH jQ++mvijjHd2
19ZEMXE32XvP3DNnzr2z3398+QrgBI91LDEce/6Ai750340FH1aH/P004N5Q cq8vuRi+4dLt
+Y7vijG3vcFA+DqWGdYvnanDpTMa8FbvUvQDhkSrXmco2GFlEriSS+K7xLDF VMinDFqn1q21
awz6y7N286LZYFi+aNZbDGm71WjU2q+aZ8+pnLWv1TuBTxK0OXPujcaBMwq6 jpyIJFYZtsi6
FVu3yLpF1i2ybpF1BsOb+JFjhuLfXIU1Uk6eksTIDZ5RD+VKl0yde6+FgVvI 6dhkyC3oyMQK
NANEUNyiCT2CRQV3TCQjuKPgvgkjgvsMa7Y7Es3JsCf8F05PCtWx13dkl8as cLyonYauUkjg
nokDZMlZ8NYdM1Tt/700atMYiODXPLbLlcUTUS4fmFjDegoWjnVwhvwitokK This8p939o8j
GFIdup6+qLuq03S0bCk+SnR8gn5QDQU1YMoKarJhTMbRiGMKaWKblC8hQ4g8 U54g3g1kqbJB
6IKiegoz3JwjP0Nhjq0ZtufYnWFvjtLHcPtt+m7SgaDb0igzkSOJPL0buBMy QEIHV7KcohJe
OfyEu9cSWrgYbTEjAu6jTNGgSR3Gm5/EnrIzHH1DOpv5jIdzHBH6cKW0Gk5h lxT3KC/9ZqIa
Zo9+AlBLAwQKAAAACAAOX8k4Ssa6KQoFAACXDAAARgAAAG9yZy9lY2xpcHNl L20ybS9xdnQv
b21sL29jbC9lbWYvbGlicmFyaWVzL1N0cmluZ0xpYnJhcnkkTWV0YWluZm8u Y2xhc3OlVFlv
G1UU/m7ieMu0TZNutNAlTcnSxUna0IakpE7qtKaTOPU4SUNpzcS5TqaMZ9yZ SRtALFIlFiGx
CJ544g8gFSoBQiwST4gH/gAST4gH/gASD4gzMzduMh6XArLk851z7/nud849 d37866tvAQzg
RgxNDOdMaznFS7pWtXmqMlhJ3bzlpMyKnjJLeopXyildW7RUS+N2SnEszViW Pf+FrinuqJpR
NmOIMLTdUG+pKV01llO5xRu85DC0KoV0vqAU57OFiwwdV+X7W3yiEYb2DXuK uclJJVNgSGSm
z6+nxbPT5zNXaIn2rsPiZD435TkMW+S0Uije37R7k79xZ6SQz06RqnxmRk5P ZIppWWaICY+I
CrminJvP5IsTaUX4szMzNT+mzMjZQnGghgZJ3Ci1zdCcpxiae3rn6IwJc4nH sGdTP/xik9iL
R2PYx3D6PzZcwmPYT4eqpRK37a5+hh09vfVNjeMgQ9R34ugkveOmqXPVSICh S0ILonE8TuGs
4fBlbrnhHgkxRF3UJyHuo2MSEj46ISHpo34JrT4alCD56JSELT56QsJWH52R sM1HT0po89Go
hO3u0dSsNoXfXOVGiff4Mnvd9XMS2v2d4xI6EGXYJmsGn16tLHKroC7qnEZA NkuqPkfNcX0R
jI56d5BEMy5IyGAn3YOzotlEJP/f2aYRTdqOajn2vOasMAz31De8PtIbOusR m+tlt4aQtWjV
4mVtjUF+qAM2RMQtNjgz6phlm9Nj7AhJoVnixpKoLGqvlj0FMc1Y4ms5Utps Oxa9xrJlVrJu
jB6PrtpOdn09QqdUGLpDJIerSVq8qqslntZ1hkv/ttIHUkctKmmtShLFGRVu UNkx4ZHY2yuq
4xqv2lbHlM3b3JpQbe55s9XqutdiV3WNtrZ4lGR1reL6ScVctUp8UvMmcdO8 nHAVMUhZwyAW
apLNafzi61OEQzTVzfTN3UofAXp/hPa6D86zcWETwiaFbRVWEnaLsFuF3SZs m7DbhW0XtsOz
bcS/Azvp/F1AUx4RioHlo99g90Lzl3hEWYi0H1AWWtoPKfdwOFYXPqIsRL21 7vCU3vrwEQof
bcDkrh0PT0k9IGWgZfPaPZys333A3e2uDT1g7XQd03BdZKRe4FkKjzUQ6K6l P6W2NmGC/n/D
MP13UvcP0911Ufc7sRt99PE+SpFj6Cd8kn7DOIUxDOEC4acxghmMYg5ncZ2w SkzLOI8Kfc5e
JPwyZNzBFN7CNN4n/CEK+Aiz+JgyPiF8F9fwOWV+jSK+I/w9OH5AGT8Ry8+E f4GBX2Hid1Tx
B+E/cYsBt1kUayxBWMIrrB2vsj14je0jvB+vsy68wfrwJhskPIR32AjeZWm8 x6YJX8ZBUudW
TMPkfnL9+UKKLBGjpe8LTN5vSdQL+imSvwEXkSWboNIvieQzZF3CyGc4fDeQ 2+3l7vLXqQFT
7hgTmibEPJacYBkXT41YuoMs/R7LQX+9jsVFM7hMGQnkw1T1BvnONFClCFWF MJajQZZzDVhm
aywhtR0PsmQb1DZbq21O1DYfpioV5Lv8D6rmw1QNBFmeeWhVV7Ag+E6IISK+ k0G+xQ0ztM6X
oFOu1msZCuY+30DLszUt1wi5Wq6H8Z0O8tkN+Io1vucEnxpW23CQ76XQ2hbD ckeCuXdCc0th
Nz0WzH27wU0viZsuhd10OsjyQYNuLNW6wb2bbqLPkpu5jBWySa+mvdCQ+BtQ SwMECgAAAAgA
Dl/JOG90DzYDBgAAqA8AAD0AAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9v Y2wvZW1mL2xp
YnJhcmllcy9TdHJpbmdMaWJyYXJ5LmNsYXNzrZZdTBxVFMf/l6+BZWwplFaK aLG0XQp026r9
VgsUcNstW4HSQmtxWGZh2tmZ7cws0Pr9/f35ZKLxQeODxgfaJkDapMYHW2M0 Pmh80Pig8UHj
g8YHjUljPHf2MizLUKD6wM6dO/ec3/mfc+69fPbPhUsANuN1CTkM20xrMKTG dC1pq6HElkTo
1LATMhN6yIzpITURD+lav6VYmmqHOh1LMwYj7vtpCXkMJSeUYSWkK8ZgKNp/ Qo05DEvD7Xtb
jvS1R7v6WqOH2vcylEWmV4UNRx1UrV0MSzq7OsLtbX3N0fauliNdDKUZy9Ik WlW4myIzNOcu
htxgbTdDXrM5oEq4gWHZLK8ByFgqowTLGAp2C7O8YLi2uwgUhox8FEgoZ1iZ TWpKafqAahVh
JSok3MiwY+FZiUyNDuqpQc2QsQqFRIs2R/oi4aaOxo6evoONzfsb21oCuAk3 S6iakbd0ADJu
wWoGaVjRU2o0zrAuGMnO7a7a2RkKYDlu5ZLXMJQHZ3+v7S7EWkrjzp3pCb5+ vYwgailFSjKp
GgMMDX6Gs6ZEjlxknYx6NJBfx0x/ZFge9AmP5z0kQ+IZWRrRDLU9lehXrS6l X1d5xc2YondT
8vi7OxlALm7jegJUOWdIs6kUkevsUGqfgO0olmMf1pwhcuQj89rCm0xTVxWD ZOzALgk7ZzSd
+ChjN+5kyG9tjHS2zGz2KXNe97tlbMWeOYrUGyBAE++BZoYVwV6/GCgftqpT ZxQkLTWujTJE
FqTHZ/P5ued75x4ZYeyjqmqG080b0d10YR5+hId/gAc3mxCu7aXOdcx43Fbp ACiknnIzzu3u
lRHlsgvsVNwNWtKMAXWUd/jiyzEVP3fcLaMTh+fIZ5gCtx3rf0pRJvYoxx6b Kw/ELYpbZiLM
NTIU64rthNN6ufH9Mo7jMB/189Ex3uKWlsja7HNuQDeAuIwY33kBS03qSkxt 1HWGfYuVeW3G
CRmDOMmwfdEV8s7tAotSNpqkHIg4E6pBvSGJN05JyjjFKbKYa9Usm5bkjQwp 7sPds8WOGTFH
VKtZsV2jYRkOl0/zh+j08uZPyxjh8/l2UtfIfOtiQk85mk7HuO246h+ScQYP M6z3K8pRv4w9
isclPDZ1qrveGi1LOW3LeAJP8oPW5t4Z1gYz7Wee6tNBkAo3ewzh/9i+M4U9 y4U9xxD07V0f
ZRSIriV4OguVWEy17ZpN1HidZsri1XJP8BkH7kbugQoaNgyqDDW/rdoSXmXY c50neM0B1VE0
I25SBFNDVNOdkkv/wOTQRUsXOo1W8QuGnsvotwgB+l5MbxF3FVBzEXJPzgSW nEfpRSzvOYcV
k6icQHVpzTjWjWPDeWw86/rbRL9LXKs3yMNVrKGbbrP7BeSzxPMcoiejZ/6G CWyZNi1wJ9Mm
cnoBbscdrvFWbBPGR2k1R5TXXYZUfwXSOWwfq6sfx12TaBzLiuNNUvQWOXvb dbo6bSic8tFe
+s7cUQuNclxQqwAlaHUePasIVFxPsAYP1jCOtnHs9wG+Q7B3Sep7LnBD2oEH rPKAVQLIR+2k
PJdmo/NrPOiDfJ8cfUDYD+fV2CE0dqJLgPooQL6+YhpUOsbrzWGHqObZsDFy cZZg5zNgFR6s
woNV4IgH6xGwU1RPno/qmQmdAqaT2usDnSDgJCX1QkZSqz1otQetFlA+uk8k 9fjCtPb5YC+R
s48I/fGCtR5fnFbFB/oJAS+T1k+vQ2sMAwLfRk/+rbjuCvLrxurGoWaDPifX X5Dhly5oRXq5
ByoWIEY32ZBwqooNUZ6hiTvnarRs91+Rjq9p/E2GDv+u1IWOctpxha4OY0FI Mxv5LSG/o/H3
8yItD2kLpOOfOsZTl8oG/UCuf6TU/TRP6kau4XQ02+nP5PQXcvrrPE7P4AHh tEecEmWioblj
auUHJ/FItvPfyPh3On//yGjlMs95mZeaMjwlWvkMnhaYk6IGlZk1YN4p+IwP 7k+qxF80/juj
EpUertLDVQocHz3Pm7ikEC+gQYBr3DVA3jlsnCakb4mr3sWSgxfd35fwMj35 FfMK/b2Gon8B
UEsDBAoAAAAIAA5fyThZd881rgIAAH4FAABAAAAAb3JnL2VjbGlwc2UvbTJt L3F2dC9vbWwv
b2NsL2VtZi9saWJyYXJpZXMvWFNEVXRpbCRNZXRhaW5mby5jbGFzc52TW08T URDH/6ct24sr
YEFELgoKSquwlhcMEBNaWmjSlsouhMaHZlsOZcle6u6W4Hfww3h5MDHRD+CH Ms7uFpBSjdiH
zpxzZn7zPzNnf/z8+h1ABstRhBhWLbsl8aautR0uGcuG9PbUlSxDl6ymLnHj SNK1hq3aGnek
A3lzz9X0uTJ3Vc08sqKIMAyfqKeqpKtmS9ppnPCmyzAl55W6nNvOlzfqhZ3d c7e6my8UDxhG
3pQuc2TX1szWGoNY3VPqxYqyUy9vVAm7RYzsXrGkFCt1pVbNM8TWSaWpua8Y wgupfYZIzjrk
Udy+IiIAxjDEMHjmHK6ukmq5ecwNNYY7DEJwHgfpEDEAwfPuiohCiOEeab/I 0Yy2zpV3bb7J
j7yymmV6sfdFxCAwDJU0k1c6RoPbitrQOUOyZDVVfZ965a27m8K6LzmBMB6I mEKCZLvHmsOw
Xvr/zlO/ph3uBvcqWHbgvK6oBq/aJPeMIbtwhU/Xki46sXZ9AKm+QxEcP55h 8i8wCmt3iyb7
QWbaHbdoutZv8hTL85222uRltc2g3Ezsv8qPm+dVGGZb3CVmtqPprmb2my5N xotnSMhWx27y
guYNUOz2fsnj07JomtzO6arjcCeKFwyZG4+RnvL5IDFLTypMn2MYE95rJG/C e4u+jfl2gGwc
CYq7Rav3iMD7bQvfINbCyUG5FkkOy7UB8j4jGe3dpT/BPxq9ljBGu+MfiRWi WkCaagDzVPMJ
RsiOIUXvNY0lshksYoW8TbJbmMOknwXSNHWhTCLLPL3pL5i+xAr+ZpAiBgF4 iBmycbr8o27y
S7IeMPIJyQ89uSt+7lhwjsfEgu/Nk1CaMZ5ioUvJdptJlNFeSs6nzATn1yie lyIvRLx0P1Xj
vbzSH1Q983khPPfjF6lp8FvEqEEZxH8BUEsDBAoAAAAIAA5fyThVLTBZqAIA ADcGAAA3AAAA
b3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvWFNE VXRpbC5jbGFz
c61VW08TURD+pi0tlC2UtgjKtYraUmAFvMWqD0JIMAU1RcTEl205lEP2Une3 BP8VPpn64KMm
/ijj7HapYCvaxCY9M+ecme+bmTPTfv/x+QuAZTyIIURYtuyaKqq6rDtCNVYM 9f2xq1qGrlpV
XRXGgarLiq3ZUjjqXnn9tSv1GCKE5JF2rKm6ZtbUF5UjUXUJ0cfSlO5TQjiX 3yVE1qx9EUcY
Awr6ECUMl6QpthtGRdg7WkUXhFTJqmr6LqN7++Aw4h5Kh7Ba6jmwImHKEW65 eigMbcOyW8qr
bc0QL21xIE8Iz3MXYE+cfc+5ZVgs/cqp7NrSrBXzl1gPYgTpGFKEq380UjCE DGE01wWaSxR1
fCvCxCU8bFYPok91whBm6w1303Stc3nuWJ7u1LWq2NLqhHe9Zd17HSYVTGGa MFkT7iVxjOTy
LewGv5bKR+w8i+sxZAmJCxcKbmCOO4lzIzw8X75WtxU7T/KdR4QB8ywAQpaD 47CfNaTuSrMs
jTr33Ie6WOdQuXGlZRL2/kd/dEH2q5RXMI8CP2Oto0m5c3N/K/KigiWo3Cy2 cCz9WHTP4Em3
XvvnMHn8vIoR4mWrYVfFhvRGUgkGbMlD5u2maQp7TdccRzgx3CM86nlW57aE q0nzwCL0n6nI
gp8c3ifCGv9o8BrjncqSWPbNf0L/R1ZCiPMa9Q8VDPqrb8AywZJ47oYD5zJb e6CJwlfECwtN
JEMonLZBhvzLYWZMMlDaB5ttOQRgnjaKKz5BAmMYZ08eelwLCPbZOsIywwQj hSYmCAuLTcyE
8aaDZ4wtx5FiX49nvuXX5sm0eTIBj6fdZC3Mp7dwO2B8G6SULnxDH50yZ445 m1gI4XfCaaaY
4UplzyWWbhOm24Rp3PEJQ/zH4CGsYJVlnO/u8vc+Bn4CUEsDBAoAAAAIAA5f yThLB/JgLgEA
AHQCAAARAAAAcGx1Z2luLnByb3BlcnRpZXOtUU1Lw0AQvRf6HwZ6UbBJ6kUQ PNRSQaha0D8w
SabZwf1idpPQf+9ugvbmqQt72Nn33rx5s1pd9SwXK9g5fxbuVISb5hbuq+oB np1otC18ulMc
UShhxDvByM5mSr5brWGiBRAKJAO1BXwpDuDFdYIGskJUBNg0zni0Z7YdGIwk jDpkjSxtsE2Q
AVljrQl625JMtIQzAdxpeuwbzT4QHPtacwMHbsim57Apqiw0Km7UXyOmkEjJ ScshCtd99n03
+UnFSy+Mmati9I9lOY5jQXOXwklXaupQl+T1ethUhYpGZzDAHJmddZ2Ex7kM /4YGa2DLMc0N
2+Pr7MR4TYZs/E312ptNaxg4hfmOhp72l8nSj+47tlP9wLWg5MBOTuBjd4DR yXde1MhRwf7t
Zbn4AVBLAwQKAAAACAAOX8k4p9hcMBgBAAB0AwAACgAAAHBsdWdpbi54bWyt kztPwzAUhXck
/oPlHTuEBSGnWSgTTG0l1uC44Up+BNtpwr/Hbto8UEGtwJN9ffxdnyNdlndK op2wDozO8C1J
MBKamxJ0leHN+unmHueL6yuWCy6hdmLU3gXt/qqWTQU67BBCTHRe6CjYH/tV G9A+w8ZW5EAh
KlXkY+eJUZIYLomEN1tYEA4vjg9ZX/ucgMLisnDud5ZQ25FHVt4GL889C89h UGa4v3eY/nfj
pdqujZHu59ZR76NkNB3bg34RvlCmFBI1FjL87n39QGnbtkPr8A0antM0SVK6 5MaKiYEIMY3/
I4XRQw7HyslcLo7ldfW48SDnccQ0LkdMDJ8dWufK3m6AzCI7P7HTiG9xMTpM QiiEKaHDmHwB
UEsDBAoAAAAIABUF/jbC9i1j5QQAAJgTAABCAAAAc3JjL29yZy9lY2xpcHNl L20ybS9xdnQv
b21sL29jbC9lbWYvbGlicmFyaWVzL0VtZlRvb2xzTGlicmFyeS5qYXZh5Vdb b9s2FH52gPwH
wuiD0jhyUmAYYCMPiqsF7hzHsLRiwVAYjEzLbCjRpWi7Rpv/vkNS11i2ky7Y gJUPuvFcvu+c
Q/Ko/fZ1x/EReot6fLERNJxLZAUn6N35+a/oiguG4yny+EyusSAgIxZcYEl5 rHX0xWEMacUE
CZIQsSJTG/lzmqCF4KHAEVI25JwgHAQ8WuB4Q+MQRVgSQTFLtBFlPcJTkFlh yvA9I2gZT4nQ
eiAYJYjP9IsbMLpICBot7xkN0IAGJIbX1YV9ri2t5zSY564oSUALsExpIgW9 XyrsLY0IPhbO
sNTKcykXnXZ7vV7bxPixuQjbjISYtcmCna0uzu25jFhBv8djY5iLpKO/qLEv dOgM0ZhK4I6c
Ud9giRaMRCSWeWxfd7SPj9ppmgWBwE8RwPiwZOjioqVy/YuaA6EFDh5wSBCQ zgMQvYvsLytp
84jZPGA2iWY2o/cCCwhu9/jo+AjQcyHRZwinDaxDW5AZI4G0+/GKB5qSj0VI pPs1IAv12t2j
dEPknE/LhstolHcScEFs14ljbgLWPST6HkvsbxbkoODt/WfAcFBsZOL0XDl7 TEJVf5t6BRVV
CegS24k3u2EWYiNBIyigFXmO8EdOp6kcJNismoDhJEFuNPM5Z8lAZ3ODvikJ Vb2pVKKimwlD
WjCNZ1xJKZmGuWlxQVdQVJn8jMZQ2h6sijj86xO6dv3Je8d3/LuRO+kPPd8Z 9lx0iWKyLoS+
FdYag6y4RmwZ0ti+7Q0mg/7V2BnfTUZO73fn2kWnqNnpNOGWsbO9/vB64Pq3 w8nQuXFbqN1+
M7wdng0H3tnFm5L1Suxszx+DXqqyZ6qpE9rp5JXU3OXgsVs8vyhEru/0B96+ wOQgispvvi5R
VOaBXk7E8Sbu7dUHt+e/WoLTJfHs/OZBMkt5b55KtCoVn6OGPStLeD+GyTgg lplEcfLHuN8q
LGQjnZ6makMckZMyezUEkUsR16+MUvk81iZgN1K1QllilcoDJYTNWhmmB7Kp QGmUcZjy+0Hv
OEnDbZmb9lvrq6iQcn1t+XrMt6K6euupHQncujcj/27SGzie52Yrx8ydf+ru tWBg5iYMosxE
OnnIRhpViJ7vjiejsftb/0+w0IRUNLtPy66ysea7yOECO1hPdIYsLYouAf0S mrHv3yvS2fdd
Vajm6tOeHV+IjB5CYJadYnZWq7Y601MhA+KkW0VmNH8UgDSHUlnHdAcoMrdL DU3B0Gm3TtSj
EbG2l6Ya+bwKjVWJaqtaT2UqaqSVDT3ukknwbCDYFHqcB6KJtqrV9NSAikem XaQq/ULT7EOX
m1fHVsBKQbNKUsbEE2+P1dcBD0MiVHjME4SK8dBKP3vuR3fs1uxmajTHBiJA w7HqrEmScJGl
gHwlge6qVUMN+46SycigMpsO2rkX143TlFYpueWAPiJoLKHRtzxwL6jc5L0l 2o7bPyFf2IU/
C/hTYJw/qAU5gxDUhEN9Ptwk1BMuV2MLaNTRHXJvGcxNCf8klPtM/385Ilyq X6R/i3Va2MD7
vyKs3f4EdHf9Jf7vGBeP20ffVseTHvzVA6vUDci6bqDo6Eo9yWlFvvCnbpW+ pHD5ol6yoU42
Nbt10jca20QbqedsKuV0ou3bJd/6MLeUoz2Q077zQAdaICyfs0ZyG6yVzyiV HbCfpg4ufwNQ
SwMECgAAAAgAFQX+NlkMSgAvBAAA+AsAAEIAAABzcmMvb3JnL2VjbGlwc2Uv bTJtL3F2dC9v
bWwvb2NsL2VtZi9saWJyYXJpZXMvTGlicmFyaWVzUGx1Z2luLmphdmGtVl1v 4jgUfV4k/sNV
NQ/JLDV0XlYaVGkpi7poWEDQ3dU+VSYxwTtOnLEdGDTT/77XdgIJzXb6UKsi mNx77vG5H27/
/duubgfew1jmR8WTnYEgCuHDYPAL3EklaBbDWm7NgSqGNiqXihouM+fjPkZC gHPUoJhmas9i
Ag87riFXMlE0BYthdgxoFMk0p9mRZwmk1DDFqdAOxKKnNEabPeWCbgSDIouZ cn5omGqQW7eZ
RILnmsGy2AgewYxHLMPt/oYMHNJhx6PdKRRnGr2QS8y1UXxTWO49xwh/PAej xjnvjMk/9vuH
w4EwH4dIlfQFS6jos1xc728GZGdScT7+WGYeWCr90f1i10vSwTXwjBs8O4yW U88lzQVLWWZO
2r7t6nc7OY0+04QBnud0tvRDSr7sDZGpIDIShKVbIvhGUYW6DbudbgeJSWXg X1SKcEnujoaN
lKLHRWHywqyNYjQdNs1QYkGETBLMMpmxPRMvGshkxSKp4peMfJzfUSnBVJ1X /TAIwogqMsNT
RqZrlLLQwx9bLgU1W6nSV5kWSOcVhi8Fdzo7a55hYWdUkMV4hh5ZTFU8c+of p1gPTXepE062
2E3sINVncldYLWztsa/GKZL7fogE1RpmVRI9ZUAjlsUayu23bucn/CtdtK26 CLYcuQBKbbsT
KT3Opner0eqfx+Vo/Gl0P4FbaCdKtImxapa+wEjCzBxpBqGjZZshV3yP3d4a aLa4n03+mswe
F8uH6WKOQa76mHZh6+ZqCP3+u/lifj2fra9v3lV4vy72TCkes/MZ9pLHFl+Z oCENRP4Z4hRQ
8qBh8jViuevCbx7MLl3kTBHvXjkMz69LqkjLlXO5vYWqdOyRf2ObIlk45AC3 nkQQnkGqZY3X
x3QjkbbX6bnNz5ey1Nm09lCC/BHYfwvKHxDkfrJ6nI/+mIRE41vLPngezjv6 t81D9sBtyBq5
rCbhG9CgcVz2cQuRjB3KEkXXyuwU9emynhy3BvsqU3ZTcoeYbcN6svkWAmcA t7eQFXh7ff/u
PQh6p0FI2JcC76Xg6ipEx8sSrPNVzBQqsxFqwjydv5ZhmuhG/pljuY2p9j1S GRt1rNOs4fsc
5FShh4Oquz1BRA3eeMFUuGtqpJLC3iTnQucs/B/gVuLloym1HyuXuTnNlcaA tsHOqPVmbXSr
+653wekGQFb28YwszknQeGzFzRHFLEc7WXwaXthhYj2Eq0FXEKFNcqOGL9Ht akGfrFaL1UWA
J2AC/9X4QZy/R6v5dH7/2kCl+WWouoR2td68IOubW9c/rYaNQvNETON9HeiZ rZuOVbrKJLXa
REJeFLVdvkGx8nFQtDS9XZa41yOoJOpBbYw+H5o9GPTasapVPxI2nR8N1vGc uwd7J2Q4YcJm
G7yiereiQDEaSX6dY6lRdR+tWVTY47beS+eO7Hbw4z9QSwMECgAAAAgAFQX+ NvFmb2IQAgAA
GAUAADkAAABzcmMvb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9s aWJyYXJpZXMv
TG9nZ2VyLmphdmGtU01v2kAQvSPxH0ZRDhCFNURqKwVxoBEgJGoiqNpjtdiL ve1+uLtroyjq
f+/s2jFEbeCSsWTPeN+bjzd2dPO+1u3ADTzo4snwLHfQS/pwNxx+gs/aCKpS 2Oq9O1DDEGMK
bajjWgVOuE2FgEC0YJhlpmIpga85t1AYnRkqwedwOQOaJFoWVD1xlYGkjhlO hQ1JfHZJU8RU
lAu6EwxKlTITeAiUFvQ+BLNE8MIyeCx3giew4glTGFYjMgyZDjlP8rYUZxZZ 2EvKrTN8V/re
b0NH+PJYjLpAzp0r7qPocDgQVtch2mSRYBkVESvEoBoNSe6kOI7/oFWdWBt7 H954OycdDIAr
7nB2mD4u615kIZhkyrXavq9F3U7UrNkwFD4FbGNaGPh461f9wR8hpqDJL5ox wJnb+eWdJL8r
R7QURCeCMLkngu8MNajtuNvpdrB5bRz8RDUJ6iuI0FmGKyYrVjERIEW9rERQ a2GFx7jZZyyK
Vt8bgPUCJLDnCsUJdFjP5zCpfYL++BJ+O/s228xaSh1eZH2fbuJlvGhpTXyR t4zn65bkg4Zx
frItfjH4C6zWi8Vs8yOefvH9Xp1R/WoMUXQdr+NBvNoORtdNasMrXOZL7v8s oFZal6b2wi7+
bepNYsZc7fX6L+vyxvfQa3PCZAKqFOIVwtsJ4s0K5FjhRIz+iYh/jq5hrjTq 1TQNwl/4+AtQ
SwMECgAAAAgAIIt6ODIMKp31BQAAdSEAAEAAAABzcmMvb3JnL2VjbGlwc2Uv bTJtL3F2dC9v
bWwvb2NsL2VtZi9saWJyYXJpZXMvU3RyaW5nTGlicmFyeS5qYXZh1Vldb9s2 FH12gPwHIuhD
0jpykmEYlrQDXNfpvKm2Ybtrh6IwGJmyuVGiStF2grb/fZcU9WFbsuWPdK0e HFO6l/ecw0NJ
N649PexxfISeogYPHgQdTyQ6dc7Q1cXFL+glFwz7I9TnrpxjQSBGBFxgSbmv c/RHnTGkE0Mk
SEjEjIwsNJjQEAWCjwX2kJpDTgjCjsO9APsP1B8jD0siKGahnkTN7uERxMww ZfiOETT1R0To
PAj0QsRdPWg6jAYhQd3pHaMOsqlDfBjOLq0LPdN8Qp1JUoqSELIAy4iGUtC7 qcJe1YjgZFoM
S508kTK4rtXm87lFojoWF+MaI2PMaiRg57PLC2siPZbSb3A/mpiL8FqfUcc6 6dA5oj6VwB3V
u60Iixcw4hFfJtoe9qgdH9XMMgsCwo8QwPhj6qOrX6tqrX9W1yAowM6/eEwQ kE4E8K4869NM
WtxjFneYRTzXYvROYAHi3hwfHR8Bei4k+gfktEBgZtWFwA/q2soVG5ZB5wTR 8jkMhyHqg4L+
2NaTPqDPAAaO6LOm7amOp+gNkZj6Lkcuj4zhg1wzMA6REz4KUTjhUzZCd9pp JAypWlk5EXyq
o0OlrpPMFmeBr6jvg9UiLM8dPiK/xaWe1/QQzamcRJNgDz7oGEpPBUkmw740 mRGXDx/jTEEg
0EfyISAW6ukByI+VQjFgBywE1cJktlDPAamB2lHGFQpop2FHMKlLSeS3KCMF oib+cPFRD8+1
O8m9zCQtRfpJZBIBeATUDbgP6kgeKX0O/HlAjIMDDPuawL5cLuw/u/yop+ul tHOK16IvxgTR
whj9k0X+rGyCzBEIOgPfxqEu9WH3xFKj/qDeG/SH71qD39EL5JN5eulzOkel P+i12q+HjU57
0Hw/qKZX4uMkSjupopOXnDOC/RP09QbVak/anfZ52+6fXz7Jjq6eLGBcYJMg gLGQ4Tsw0Gl0
DoWEuVUTAMyIS+/PskDVYWyTYXaTBnzdSZph5/a23xwcSqEWOGtMxBZiZUc/ HUy6HJQGGpjX
DYksoa2RZjeJm+1X36v3CGzhQvnCqbvGeQmr3URptV8134Osh3bb/ppQeK+4 77j5kkhRpEdM
aD85hre9zhs9eIRtWFKjrbfhBsXWbEBXcK+lsjepmuqym752vT8Yfr+egyeb bO3muwVmBxDn
h3RgCf32cWGBQLupDcq9OYi0KyKWEAr+elmFihgrkLvR6zW7dr3RHNZt+1AG Wvl2aPvAizTD
DoFONdc9AlxyH+RgTK7rdNWfFemZUWUvWX80SXP1nE+wTAfw+rFBtUXF4q+l 91tnaHfeNXvD
Rr2/u36VYqGUGpU1Ukhu8zkRDRySla1XWWK8APbGXP9q/m7B+G23uw/jyl50 3wZBebop0gzd
uML61qVrtwbDyxyClXx2lUVqyvzk05T4iU3PNN31z3KzEusUCANGZfGdJFWi EncaEZPV9S6t
wtU+KmQe0FsLsnxj2F+eavJcZtSjskitq/zdkdxSc1WLZ46e5e3OYHjbedt+ ZcQzV0/PL89u
kmkiDqbl2qFZpy46VTHoBRSZMoa+fDFh8Zmiu5+pad3W7X7BPXApcobZlMAr kKpnZaAaWGc3
yxrtQK6a7Z5X2ufNbNUZk/mtBajGhS3qy79U6OnZRlG2bZHzFIjCHpluAtSA KiIWL982fW4u
KSk2MVraZms5ZTeg5hPjU1j25FLd8Kq/gZ4aJonfinM1LVnGrsk9c8tO8v9Y 2SzGMqtbprv7
UVZ4ifuWq2wIr+3ilqkW0VAxa7FrvLrUBjjl2qdN3VLeEkWpi2eS7MMQzICP gWYRlmK+Q5eT
x1ZlLIzVj0qHJHlLRShPI2AaUcpO/cm12prmRUVXCu1Wid/X1FlTqGIqVRYs lilRClFxf3Ew
RGmJIgeoXypLvennYkrMvRPI6PdTC4cKhHnZ0UiiqutELAM77w28HAt1Quc8 Aq1qNHPBbTJD
tLhdQovNELz22/EP1V02HVPf6jTsod162av3/h52640/66+b6Bk6ub423dLK f9yiugDgP1BL
AwQKAAAACAAjXMk45jayXJYCAAAUCgAAOgAAAHNyYy9vcmcvZWNsaXBzZS9t Mm0vcXZ0L29t
bC9vY2wvZW1mL2xpYnJhcmllcy9YU0RVdGlsLmphdmGtVF1v2jAUfQ4S/+EO 8QBVCW03aVJR
H6CFLVKhrAlSp2mK3NRQa46dOQ5tVfHfZychDTQNYW2UKI7v1zkn17d78LFX vQYHcM6DJ0EW
9xJaXhtOjo6+woALitgd2HwuH5DAykcEXCBJONMxaRyTgtxGkovwNN7RV1ko dIAwIgmi0J9a
oN2IH1DsYyaz3B97deu1AHl/0AIDFwsTe5QEITb9E9/8u5Qm96nJPWpif25S ciuQIDjs1Wv1
mgLGhdwIegzvzBv7wvbusY96pS4xLecpwBd4HlPmLM4aRLeUeOBRFIagHGeS UHiu1wx1p7as
AoRYJqsRF8nixwT5eCpUzseWyqt0zHnHr0NI9m31a9gCgti3HZcwyBxaiRd8 OgMWUZoajGTX
LC+Y5uqBDlnVa91uFrjAMufpcL0Ole54jIJW2wwi2WooaRqHGq/qm1AiJkPT Pv8+HPfd0dW1
my5n15arOvBYVel2m5OrSWdyaXeOm4ZuLVVXvwSWkWApX6WqxlKonyprMcnf RraHhFubbJ2m
qrQVFFoXesndS5U2jAqcC1oOVFVlGkSESsKKPKpJoBG9Jnq2STSFqLfewK1F 2OovRV3gkNMl
LkQXF87RhZRvqMfF+hiNsUSEzXmCIxBkiSReu+R5/PoN9tBxX3fd9Ho4sm5A 8cEPL74JLUM3
7ulpppDq4UbioldbNtjs2vzXycbX52acfBUrtRv2dOa41sS5csf9aTHMUpQf gTf/9SVGXxX8
N6X5YGZdOtbEdX5Oh+/SuaBL/kv1GPZGM2V4yqdgAnb/4VtyclaZPYkotqdH qayDX85dCb2d
U3Fvhjtm47uZa3uWdNvFeC1R/rRUkmT3mNxDk9ywrMRc+5f+8e3zk1FSj7r/ AVBLAQIUAwoA
AAAAAA5fyTgAAAAAAAAAAAAAAAAJAAQAAAAAAAAAEADtQQAAAABNRVRBLUlO Ri/+ygAAUEsB
AhQDCgAAAAgADV/JONwzKzEFAQAA/QEAABQAAAAAAAAAAAAAAKSBKwAAAE1F VEEtSU5GL01B
TklGRVNULk1GUEsBAhQDCgAAAAAADl/JOAAAAAAAAAAAAAAAAAQAAAAAAAAA AAAQAO1BYgEA
AG9yZy9QSwECFAMKAAAAAAAOX8k4AAAAAAAAAAAAAAAADAAAAAAAAAAAABAA 7UGEAQAAb3Jn
L2VjbGlwc2UvUEsBAhQDCgAAAAAADl/JOAAAAAAAAAAAAAAAABAAAAAAAAAA AAAQAO1BrgEA
AG9yZy9lY2xpcHNlL20ybS9QSwECFAMKAAAAAAAOX8k4AAAAAAAAAAAAAAAA FAAAAAAAAAAA
ABAA7UHcAQAAb3JnL2VjbGlwc2UvbTJtL3F2dC9QSwECFAMKAAAAAAAOX8k4 AAAAAAAAAAAA
AAAAGAAAAAAAAAAAABAA7UEOAgAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwv UEsBAhQDCgAA
AAAADl/JOAAAAAAAAAAAAAAAABwAAAAAAAAAAAAQAO1BRAIAAG9yZy9lY2xp cHNlL20ybS9x
dnQvb21sL29jbC9QSwECFAMKAAAAAAAOX8k4AAAAAAAAAAAAAAAAIAAAAAAA AAAAABAA7UF+
AgAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9QSwECFAMKAAAA AAAOX8k4AAAA
AAAAAAAAAAAAKgAAAAAAAAAAABAA7UG8AgAAb3JnL2VjbGlwc2UvbTJtL3F2 dC9vbWwvb2Ns
L2VtZi9saWJyYXJpZXMvUEsBAhQDCgAAAAAADl/JOAAAAAAAAAAAAAAAAAQA AAAAAAAAAAAQ
AO1BBAMAAHNyYy9QSwECFAMKAAAAAADkWyU3AAAAAAAAAAAAAAAACAAAAAAA AAAAABAA7UEm
AwAAc3JjL29yZy9QSwECFAMKAAAAAAAOX8k4AAAAAAAAAAAAAAAAEAAAAAAA AAAAABAA7UFM
AwAAc3JjL29yZy9lY2xpcHNlL1BLAQIUAwoAAAAAAOdbJTcAAAAAAAAAAAAA AAAUAAAAAAAA
AAAAEADtQXoDAABzcmMvb3JnL2VjbGlwc2UvbTJtL1BLAQIUAwoAAAAAAORb JTcAAAAAAAAA
AAAAAAAYAAAAAAAAAAAAEADtQawDAABzcmMvb3JnL2VjbGlwc2UvbTJtL3F2 dC9QSwECFAMK
AAAAAADkWyU3AAAAAAAAAAAAAAAAHAAAAAAAAAAAABAA7UHiAwAAc3JjL29y Zy9lY2xpcHNl
L20ybS9xdnQvb21sL1BLAQIUAwoAAAAAAA5fyTgAAAAAAAAAAAAAAAAgAAAA AAAAAAAAEADt
QRwEAABzcmMvb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL1BLAQIUAwoA AAAAAONbJTcA
AAAAAAAAAAAAAAAkAAAAAAAAAAAAEADtQVoEAABzcmMvb3JnL2VjbGlwc2Uv bTJtL3F2dC9v
bWwvb2NsL2VtZi9QSwECFAMKAAAAAAAOX8k4AAAAAAAAAAAAAAAALgAAAAAA AAAAABAA7UGc
BAAAc3JjL29yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFy aWVzL1BLAQIU
AwoAAAAIAA5fyTgLounrOwAAADsAAAAIAAAAAAAAAAAAAACkgegEAAAub3B0 aW9uc1BLAQIU
AwoAAAAIAA5fyTgnOt3nwwIAALQFAAAKAAAAAAAAAAAAAACkgUkFAABhYm91 dC5odG1sUEsB
AhQDCgAAAAgADl/JOFaC0tdmAwAAJQcAAEgAAAAAAAAAAAAAAKSBNAgAAG9y Zy9lY2xpcHNl
L20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVzL0VtZlRvb2xzTGlicmFy eSRNZXRhaW5m
by5jbGFzc1BLAQIUAwoAAAAIAA5fyTjvxMJrEwcAAEsQAAA/AAAAAAAAAAAA AACkgQAMAABv
cmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9FbWZU b29sc0xpYnJh
cnkuY2xhc3NQSwECFAMKAAAACAAOX8k4oXoSNNIDAACgCAAAUAAAAAAAAAAA AAAApIFwEwAA
b3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvTGli cmFyaWVzUGx1
Z2luJFBsdWdpbkxvZ0hhbmRsZXIuY2xhc3NQSwECFAMKAAAACAAOX8k4dSZZ oe4EAABFCgAA
PwAAAAAAAAAAAAAApIGwFwAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2Ns L2VtZi9saWJy
YXJpZXMvTGlicmFyaWVzUGx1Z2luLmNsYXNzUEsBAhQDCgAAAAgADl/JOJt0 oiMjAgAAyQMA
ADYAAAAAAAAAAAAAAKSB+xwAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29j bC9lbWYvbGli
cmFyaWVzL0xvZ2dlci5jbGFzc1BLAQIUAwoAAAAIAA5fyThKxropCgUAAJcM AABGAAAAAAAA
AAAAAACkgXIfAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xp YnJhcmllcy9T
dHJpbmdMaWJyYXJ5JE1ldGFpbmZvLmNsYXNzUEsBAhQDCgAAAAgADl/JOG90 DzYDBgAAqA8A
AD0AAAAAAAAAAAAAAKSB4CQAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29j bC9lbWYvbGli
cmFyaWVzL1N0cmluZ0xpYnJhcnkuY2xhc3NQSwECFAMKAAAACAAOX8k4WXfP Na4CAAB+BQAA
QAAAAAAAAAAAAAAApIE+KwAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2Ns L2VtZi9saWJy
YXJpZXMvWFNEVXRpbCRNZXRhaW5mby5jbGFzc1BLAQIUAwoAAAAIAA5fyThV LTBZqAIAADcG
AAA3AAAAAAAAAAAAAACkgUouAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9v Y2wvZW1mL2xp
YnJhcmllcy9YU0RVdGlsLmNsYXNzUEsBAhQDCgAAAAgADl/JOEsH8mAuAQAA dAIAABEAAAAA
AAAAAAAAAKSBRzEAAHBsdWdpbi5wcm9wZXJ0aWVzUEsBAhQDCgAAAAgADl/J OKfYXDAYAQAA
dAMAAAoAAAAAAAAAAAAAAKSBpDIAAHBsdWdpbi54bWxQSwECFAMKAAAACAAV Bf42wvYtY+UE
AACYEwAAQgAAAAAAAAAAAAAApIHkMwAAc3JjL29yZy9lY2xpcHNlL20ybS9x dnQvb21sL29j
bC9lbWYvbGlicmFyaWVzL0VtZlRvb2xzTGlicmFyeS5qYXZhUEsBAhQDCgAA AAgAFQX+NlkM
SgAvBAAA+AsAAEIAAAAAAAAAAAAAAKSBKTkAAHNyYy9vcmcvZWNsaXBzZS9t Mm0vcXZ0L29t
bC9vY2wvZW1mL2xpYnJhcmllcy9MaWJyYXJpZXNQbHVnaW4uamF2YVBLAQIU AwoAAAAIABUF
/jbxZm9iEAIAABgFAAA5AAAAAAAAAAAAAACkgbg9AABzcmMvb3JnL2VjbGlw c2UvbTJtL3F2
dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvTG9nZ2VyLmphdmFQSwECFAMKAAAA CAAgi3o4Mgwq
nfUFAAB1IQAAQAAAAAAAAAAAAAAApIEfQAAAc3JjL29yZy9lY2xpcHNlL20y bS9xdnQvb21s
L29jbC9lbWYvbGlicmFyaWVzL1N0cmluZ0xpYnJhcnkuamF2YVBLAQIUAwoA AAAIACNcyTjm
NrJclgIAABQKAAA6AAAAAAAAAAAAAACkgXJGAABzcmMvb3JnL2VjbGlwc2Uv bTJtL3F2dC9v
bWwvb2NsL2VtZi9saWJyYXJpZXMvWFNEVXRpbC5qYXZhUEsFBgAAAAAlACUA +QsAAGBJAAAA
AA==
--------------040602030304050707040008--
Re: QVT XSD [message #84057 is a reply to message #83926] Mon, 09 June 2008 14:35 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: min.kong.morganstanley.com

Sergey,

I downloaded the modified jar, and was going to replace the original one
with it. But I have problem opening the jar with Winzip - "Cannot open
file: it does not appear to be a valid archive."

Subsequently, in my .qvto, the line:
"import library org.eclipse.m2m.qvt.oml.ocl.emf.libraries.XSDUtil;"
doesn't compile in Eclipse - "Library '..... XSDUtil' not found."

Could you upload the modified jar again please? Thanks.

-Min



>Sergey Boyko wrote:

> Hello,

> Ed, thank you for pointing about XSD serialization issues.

> So for XSDSchema initialization QVT script intends to use custom
> library. Short howto about these libraries was answered in thread
> "[QVTO] Adding custom operations for primitive data types" some time ago.

> I've attached modified 'org.eclipse.m2m.qvt.oml.ocl.emf.libraries'
> plugin that provides easy XSDUtil functionality.
> Original qvto script (that produced same output as java-code) is changed
> to the follow:

> modeltype ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore');
> modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";

> transformation interop2xsd(in interop: ecore , out XSD);

> import library org.eclipse.m2m.qvt.oml.ocl.emf.libraries.XSDUtil;

> main(in interopModel: EClass, out xsd: XSD::XSDSchema) {
> xsd:= interopModel.map interop2Xsd();
> }

> mapping EClass::interop2Xsd() : XSD::XSDSchema {
> init {
> var schemaTargetNamespace := 'DUMMY';
> var schemaTargetPrefix := 'tns';

> var schemaForSchemaNamespace := 'http://www.w3.org/2001/XMLSchema';
> var schemaForSchemaPrefix := 'xsd';

> result := object xsd::XSDSchema {
> targetNamespace:= schemaTargetNamespace;
> };

> result := result.setSchemaForSchemaQNamePrefix(schemaForSchemaPrefix);
> result :=
> result.putIntoQNamePrefixToNamespaceMap(schemaForSchemaPrefi x,
> schemaForSchemaNamespace);
> result := result.putIntoQNamePrefixToNamespaceMap(schemaTargetPrefix,
> schemaTargetNamespace);

> }
> }




> Regards,
> Sergey.


> Ed Merks wrote:
>> Sergey,
>>
>> Just note that XSD wasn't designed to serialize as XMI:
>>
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=166638
>>
>>
>> It's there some way to accomplish what's done like this with the Java
>> APIs can be expressed in QVT?
>>
>>
http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema()
>>
< http://download.eclipse.org/modeling/emf/emf/javadoc/xsd/2.4 .0/org/eclipse/xsd/util/XSDPrototypicalSchema.html#initializ ePrototypeSchema%28%29>
>>
>>
>> Sergey Boyko wrote:
>>> Hi Min,
>>>
>>> I'm not quite familiar with XSDResourceImpl but seems that your case
>>> somehow depends on ones behavior. Namely on
>>> XSDResourceImpl.serialize(..) impl.
>>>
>>> For your case just try to specify output URI with file extension
>>> differ from ".xsd" (for example ".xsde"). That way I've got the
>>> following output:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <xsd:XSDSchema xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
>>> xmlns:xsd="http://www.eclipse.org/xsd/2002/XSD" argetNamespace="DUMMY"/>
>>>
>>>
>>> Regards,
>>> Sergey.
>>>
>>> Min wrote:
>>>> Hi,
>>>>
>>>> 1. QVT -
>>>>
>>>> Executing the following .qvto :
>>>>
>>>> modeltype INTEROP uses "http://ms.com/interop";
>>>> modeltype XSD uses "http://www.eclipse.org/xsd/2002/XSD";
>>>>
>>>> transformation interop2xsd(in interop: INTEROP , out XSD);
>>>> main(in interopModel: INTEROP::InteropSchema, out xsd:
>>>> XSD::XSDSchema) {
>>>> xsd:= interopModel.map interop2Xsd();
>>>> }
>>>>
>>>> mapping INTEROP::InteropSchema::interop2Xsd() : XSD::XSDSchema {
>>>> targetNamespace := 'DUMMY';
>>>> }
>>>>
>>>> with OUT target file specifies as <something>.xsd, produces:
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <schema targetNamespace="DUMMY"/>
>>>>
>>>> which does not look like a valid xsd schema root element.
>>>>
>>>> 2. Java-
>>>> On the other hand, running the following Java code:
>>>>
>>>> class Schema {
>>>>
>>>> private XSDFactory _xsdFactory;
>>>> private XSDSchema _schema;
>>>> private ByteArrayOutputStream _outputStream = new
>>>> ByteArrayOutputStream();
>>>> private Schema() {
>>>> _xsdFactory = XSDFactory.eINSTANCE;
>>>> initSchema(); }
>>>> private void initSchema() {
>>>> _schema = _xsdFactory.createXSDSchema();
>>>> _schema.setTargetNamespace("DUMMY");
>>>> _schema.setSchemaForSchemaQNamePrefix("xsd");
>>>> Map<String, String> qNamePrefixToNamespaceMap
>>>> =_schema.getQNamePrefixToNamespaceMap();
>>>> qNamePrefixToNamespaceMap.put("tns",
>>>> _schema.getTargetNamespace());
>>>>
>>>> qNamePrefixToNamespaceMap.put(_schema.getSchemaForSchemaQNam ePrefix(),
>>>> XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
>>>> _schema.updateElement();
>>>> }
>>>> private String serialize() {
>>>> XSDResourceImpl.serialize(_outputStream, _schema.getDocument());
>>>> return _outputStream.toString();
>>>> }
>>>> public static void main(String [ ] args) {
>>>> Schema schema = new Schema();
>>>> System.out.println(schema.serialize());
>>>> }
>>>> }
>>>>
>>>> produces, in stdout:
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xsd:schema xmlns:tns="DUMMY"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="DUMMY"/>
>>>>
>>>> which looks like a valid xsd schema document root.
>>>>
>>>>
>>>> 3. Question: how would one achieve the equivalence of 2. above,
>>>> with a QVT transform? I.e., how would one re-write the .qvto in 1. to
>>>> get the output produced in 2. ?
>>>>
>>>>
>>>> Thanks.
>>>>
>>>> -Min
>>>>
>>>>
>>>>
>>>>
>>>>
>>
Re: QVT XSD [message #84150 is a reply to message #83926] Tue, 10 June 2008 14:07 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: David-392.Li.MorganStanley.com

Sergey,

Could you please upload again the jar, it seems corrupted because we can
not compile the rule you post.
Or maybe we need to do some extra step in order to make it work?

Thank,

David
Re: QVT XSD [message #84182 is a reply to message #84150] Tue, 10 June 2008 15:18 Go to previous message
Sergey Boyko is currently offline Sergey BoykoFriend
Messages: 171
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------030307080202020209010904
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hello David,

I've attached jar-ed plugin (prepared with Export/Deployable plug-ins
and fragments). To replace existing in target platform.

In case for some reason jared plugin doesn't work I attached zipped
plugin whole content. To be able to deploy it manually.

Regards,
Sergey.


David wrote:
> Sergey,
>
> Could you please upload again the jar, it seems corrupted because we can
> not compile the rule you post.
> Or maybe we need to do some extra step in order to make it work?
>
> Thank,
>
> David
>
>


--------------030307080202020209010904
Content-Type: application/x-zip-compressed;
name="org.eclipse.m2m.qvt.oml.ocl.emf.libraries.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="org.eclipse.m2m.qvt.oml.ocl.emf.libraries.zip"

UEsDBBQACAAIAFGZyjgAAAAAAAAAAAAAAAA0AAAAb3JnLmVjbGlwc2UubTJt LnF2dC5vbWwu
b2NsLmVtZi5saWJyYXJpZXMvLmNsYXNzcGF0aJ2PPQvCMBRFZwX/Q8huqptD axGpoEOVUmep
yaONxpeYD9F/b1WKLjq4vXs5nMuL0+tJkQtYJzUmdMxGlAByLSTWCd2Wi+GE ptNBP+aqcs5U
vmlD750Avb2Ro0SRUGc5JY/ydUbfSa6xI7WtGXAljQN2EJ6pKiBv2nW2KrLd fJ2Xs2WeFX/Y
jADGtQVm4RykBbFRoZbofql08Cb4zraX+ITj6PP7O1BLBwjVHJzSpQAAADMB AABQSwMEFAAI
AAgAUZnKOAAAAAAAAAAAAAAAADQAAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9t bC5vY2wuZW1m
LmxpYnJhcmllcy8uY3ZzaWdub3JlS8rM4+UCAFBLBwjAGsx0BwAAAAUAAABQ SwMEFAAIAAgA
UZnKOAAAAAAAAAAAAAAAADIAAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9tbC5v Y2wuZW1mLmxp
YnJhcmllcy8ub3B0aW9uc8svStdLTc7JLChO1cs1ytUrLCvRy8/N0ctPztFL zU3Ty8lMKkos
ykwt1s/JT89JLUvNUbBVCAbSRakAUEsHCAui6es7AAAAOwAAAFBLAwQUAAgA CABRmco4AAAA
AAAAAAAAAAAAMgAAAG9yZy5lY2xpcHNlLm0ybS5xdnQub21sLm9jbC5lbWYu bGlicmFyaWVz
Ly5wcm9qZWN0vZLNSgQxEITPCr7DMnc76slDdhZUvCnC6gNkM71jlvzZyQw+ vknMKMMoeJC9
dVWq+JokfPNu9GpECsrZdXMJF80KrXSdsv26eXm+P79uNu3ZKffkDijjHQZJ yseUTu4Jt8Jg
66gHlFr5gGCuDLyNEZzR4KQGNHvQakeCFAbOSj4XpTMGbWw5m6bsVkoogs3U blC623qUWVV5
m6rCdsX5YZdDF0E6SoMYRSkgfa+QGoL6IbND1WxucLag/InrO4QHYdUeQ7w5 LnYrX9GIf4FW
Z7ryxIsDYU1/igX+SQ+9so/lMNNL6LfC7HnsojPNmfj1F+b/7wNQSwcImezq WvUAAAC+AgAA
UEsDBBQACAAIAFGZyjgAAAAAAAAAAAAAAAA0AAAAb3JnLmVjbGlwc2UubTJt LnF2dC5vbWwu
b2NsLmVtZi5saWJyYXJpZXMvYWJvdXQuaHRtbI1UXW/aQBB8LhL/YeuHfkiY C0GpQgNIKSFq
qjRBCenH42Ev+JrznXN3xvDvu2cbSBpShRc43+7s7MyY/tuz69H092QMiUsl TO6+XF6MIAgZ
+9kdMXY2PYNfX6ffL6HTPoBbZ0TkGBtfBc0G0CdInMs+M1YURbvotrVZsOkN W3moju+tf4a2
bGzHLg6GzUa/HLVKpbKDPQidXq9XNVbFyGP/naLj4KtDfMjFchCMtHKoXDhd ZxhAVJ0GgcOV
Y777BKKEG4tucHF7HR4fH/XCTsA8lBNO4vB0pnPXZ9WBnrLNpJmO1yC5WgyC 8VV4d1vROKwa
YJoIC/Vs6jmkS6D7bPgtVwhHLTg8OPjUZ9nwje/qDi9FhMoilXaptKycJgjj SIrMIpzrXMXc
Ca0g5fdogS+5kHwmEbiUm7VAKHB+cCbzRUiHD+8ecu1Oah7V4WMb4E5JtBa0 S9AUgvCbDaFi
EXGHMcxQ6qJFQLhZADyk0UsR07XTsNY5EB80ZZFDkxIhFXsasfAkCXru75qN zQKTfCZFBPWa
8AON9cv4vNQkx5PLHcFTwsrWNQrQlaew27nZ4A76ZLTB+ZNwYDWuTIjEBZcM MxkuOwftKimv
Lu0zPmw3G+faQJabTFu0j9i0oKI6MXpheFodoBBkRYpcPdau7U2uHb2Yl9LF IgalHRiMUCyx
smwjdSzosZNrmBudVvOeZeCZOc3GDIVaEGIs/Fs0y0sj1+RK6TFk3Lj1Rumb XZU2tealf7GY
z9F4zL2epnxNwmcZkatCYCAnXiQLV+TV7A8Rp/oYqxzuJAAYJRjdl8+eDH9v QdaJcAlZWnC/
yzZqhXDJP0AkodJg8yjZduKKAG2rfAk4MXg2ZU/gX8j7f6JchtA6b/FWAr+2 JRki3Lc2aUVA
JdXHRaQijSS5HBeKxr8iyS/ltgzpNl/M/yNVf1EU4OFfUEsHCCc63efDAgAA tAUAAFBLAwQU
AAgACABRmco4AAAAAAAAAAAAAAAAOgAAAG9yZy5lY2xpcHNlLm0ybS5xdnQu b21sLm9jbC5l
bWYubGlicmFyaWVzL2J1aWxkLnByb3BlcnRpZXOtUU1LAzEQvRf6HwZ6UWh3 Wy9CwUOVCgWV
gj16yWbH3YF8Mcl27b93susHQvVkIJB5mffm5WU2+9c1nczgzocTU9MmuNCX cLVcXsOtZ6Nc
Dc/+NfWKUXo4eFaJvMuUvDfGwECLwBiRj1gXcGgpQmDfsLKQFVKLoLT2Nih3 IteAVQmZlIlZ
I0tbVUvLUZFRlUHoXI080KTPRvCvQ7HVhkJE2HeVIQ0PpNFJeVwVyyzUt6Tb r0GEUUjipKaY
mKou+54PfgT8nqVS5rYphXVZ9n1f4Dil8NyUBhtlSgxmcVwtizZZk5sBxsjc qOs5rkcY/gwN
FkCOkrwbNvvd6MQGgxZd+kz1v3+2IleQ06arJY4beNweNovd0305f5lO4Ocq fMgm4pmrYLpG
hN6s+f1SPjwgJ4n9nPYZTFW+Sx+ZyilIUYhFcVxOJ9F3rHEAImsB3gFQSwcI uSDVhFABAAD0
AgAAUEsDBBQACAAIAFGZyjgAAAAAAAAAAAAAAAA7AAAAb3JnLmVjbGlwc2Uu bTJtLnF2dC5v
bWwub2NsLmVtZi5saWJyYXJpZXMvcGx1Z2luLnByb3BlcnRpZXOtUU1Lw0AQ vRf6HwZ6UbBJ
6kUQPNRSQaha0D8wSabZwf1idpPQf+9ugvbmqQt72Nn33rx5s1pd9SwXK9g5 fxbuVISb5hbu
q+oBnp1otC18ulMcUShhxDvByM5mSr5brWGiBRAKJAO1BXwpDuDFdYIGskJU BNg0zni0Z7Yd
GIwkjDpkjSxtsE2QAVljrQl625JMtIQzAdxpeuwbzT4QHPtacwMHbsim57Ap qiw0Km7UXyOm
kEjJScshCtd99n03+UnFSy+Mmati9I9lOY5jQXOXwklXaupQl+T1ethUhYpG ZzDAHJmddZ2E
x7kM/4YGa2DLMc0N2+Pr7MR4TYZs/E312ptNaxg4hfmOhp72l8nSj+47tlP9 wLWg5MBOTuBj
d4DRyXde1MhRwf7tZbn4AVBLBwhLB/JgLgEAAHQCAABQSwMEFAAIAAgAUZnK OAAAAAAAAAAA
AAAAADQAAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJh cmllcy9wbHVn
aW4ueG1svZPPT8MgFIDvJv4PhLtQ68WYdr04T9tpa+K1tqySPKACXet/L4yt P8w0W2LkVB6P
7/V94SVZLwDtmTZcyRTfkwgjJktVcVmnON++3D3ibHF7k2SsBN4YNuY+uNzD UQNtzaX7Qggl
rLdM+oTDNqxGcWlTrHRNjhQiYkE+9pYoAUSVQIC/6UJzZvDidDEJsc8JyK0S CmN+ZzGxG3lk
Y7XrZRVYeA7jVYrDucH0rwsvxW6rFJifS/t861PGpn15LtfMFkJVDFCreYrf rW2eKO26bijt
foO66zSOopguS6XZpAEPUa39T0orIKYxce+H5uvVVCY92jxFztq9Wu7r5jm3 HOZSvdPrEZOG
L1bfmypIc5CZssuNnUd805XQYZ5cwM0aHYbtC1BLBwgH6RI0JAEAALoDAABQ SwMEFAAIAAgA
UZnKOAAAAAAAAAAAAAAAAD4AAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9tbC5v Y2wuZW1mLmxp
YnJhcmllcy9NRVRBLUlORi9NQU5JRkVTVC5NRpVQy2rDMBC8G/wPIdBDIV4S HxNyaKG3JIQU
eulJltdmqR72SjJpv75WnLpxTi0Cod3ZHc3MXhiq0PnsDdmRNevZCpZp8hxM qTDbX9ERzEfo
IDSuZw+NCjWZWIzI66curCI5TFiuAaWixiHoXEPbebBagZUKUFegqGDBhG7j yNQKff/N1nP4
5btV1p82CEUVId8MmNJyFMO2oxJ5ImdnZb/wJfyFY9CbJidsAzFmw9BUprSM wMF40rhIkwl2
duV9K2iVx+u+f3EYuTbFoKQbjGzn7yvIYbnIo5/HeZq8nBvLPjsK+SHq/2Q2 mnySnjrhYwp/
Xobdz+t4DeUbUEsHCGOOTg37AAAADQIAAFBLAwQUAAgACABRmco4AAAAAAAA AAAAAAAAbAAA
AG9yZy5lY2xpcHNlLm0ybS5xdnQub21sLm9jbC5lbWYubGlicmFyaWVzL3Ny Yy9vcmcvZWNs
aXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9FbWZUb29sc0xp YnJhcnkuamF2
YeVYbW/bNhD+7AD5D5yxD0rryEmAYYC9rFBdrXBnO4alFiuKwlBkWlZDiR4l 2TXa/PfdkXq1
ZTvpgm1Y9UFvvDs+z72IR7WfPe1xekKekR5fboTvLWKiuWfk6uLiZ/KSC+aE M2Lxebx2BAUZ
seTCiX0eSh15MhgjUjEigkZUrOhMJ/bCj8hScE84AUEb8YISx3V5sHTCjR96 JHBiKnyHRdII
Wg+cGcisHJ85t4ySJJxRIfVAMIgIn8sH02X+MqJknNwy3yUD36UhPK4u9Qtp ab3w3UU+lU8j
0AIsMz+KhX+bIPaWRAQvi8mcWCov4njZabfX67VO1Tw6F16bUc9hbbpk56vL C30RB6yg3+Oh
MsxF1JFv8DjkOnJO/NCPgTsxxn2FJVgyGtAwzn37tEf79KSdhllQcPyMAIw3 CSOXly2M9U84
BkJLx71zPEqAdO6A4CrQ/1zFOg+Yzl2m02CuM/9WOAKc2z09OT0B9FzE5BO4 UwfWni7onFE3
1vvhiruSku0Ij8bmZ5cu8bF7QGlI4wWflQ2X0eDsENqAhzrEkulvJ/3uXkHq ckF10whDrjx7
VPSVEzv2ZkmPCt7cfgKwR8XGyqEPldMn1MNE3RxTgErjiXBRQd08WAFTLdey aNyH53plDHYM
voh0I9zsd0ohNhZ+AHm9og8Rfsf92X65JGBXeNKHfEb34MtlUjOQvuqb4DIn iogZzG3OWTSQ
ubohX1ACazOVijAlMmFIOscP5xylUKahLlJc+CsomUx+7odQuBbUfOh9+Ehe m/b0lWEb9vux
Oe2PLNsY9UxyTUK6LoS+FNYag6x0xizx/FC/6Q2mg/7LiTF5Px0bvd+N1yZ5 TpqdThMumZN0
qz96PTDtm9F0ZAzNFmm3fxzdjM5HA+v88seS9UoIdMuegF6qcmCoKXOk08nT v7lvgvtucf8o
F5m20R9YhxyTgyjKtfm0REmZB3k8EcOamjcv35g9+8kCnFbWg+ObO0l9fw7G 6THxeTsc/Pcz
uAnF3ul8S35WKj4nBStSlvD9EAZDl2pqkIQRLCytwkJ2pMOzVG3kBPSs7Bw8 BI0TEdZ/GUrw
7h+JFL9QLNJK5UEiyuatDNMd3VSgNMo4VPl94+xOlKabpi5y3tq5igop19cj mb4NWF1IHurz
7VQ+RPo+XxPqKqSHS8MvL34FWOZwbL+f9gaGZZnZV0wOf7j42D1oRLksN6G8 k5lIB4/ZSD0A
7GxzMh1PzN/6f4CFJjir2d0uhcoil3/Rjyf70dz250STouQa0CfQ9n/9WpHO 3u+LDo7VRyPr
fwgd33nALGuD9CyIOnaPqZACcdatIlOa3wogVg1CWUf1oSRQl2sJDWHIsGtn eKtEtN3PBB75
OLpGq3i1Vc2nMhU80iqDli1hMcysIOg+dNN3VBJtVbNp2wD6I9MuQpW+8dPo w34qz44dh5Wc
ppWklImt2e6rjwPueVSge9QduIpxT0tfW+Y7c2LWfFnxaE4URIDmhLiHo1HE RRYC+pm6cv+G
Wzf4BqJMRoaU2XTI3vWh7nie0ioFt+zQewJbGNhSahZML/x4k+9iyK7f/g75 wi7sYWFPyji/
w4Kcgwtq3IGvjzds9YTL2dgCGnV0R9xK3IVK4e+Ecp/Jnb4hvAQ34/8U6zSx gfe/RVhO+x3Q
3fc/4n/HuLjdXfp2mp504a8uWKVuIK7rBoqOq9STPK/IF/PhpdKXFFM+qq9t 4MqGozsrfaOx
S7SRzpwNpZzOpH29NLdczDWc6ADktAc+0g0XCMvrrJLcBavlI6iyB3Zt6BSm rLPb0zJXAtdo
pG8h9ZwAf6uMnXiBbeQSroGDPz6hd54OYa8wvHllDix81HNp/NWy2202GvIP jTSq7q5lIuGt
VpmpnJ8ps5JS2qa8UJdOMYShuVmHVO4itZzRdqAaW42zMpsjSakj09QZGCee CPDc1TCDSX4o
ZVUjj9K2WBcH7/GU/UfDDiJt6bd+rancyl5q0LjqrvwFC3eahNOC5jORhBQo aarStcnGhIcx
LEmYq35kBst4A11KFWaaJxIaXnbYXRNNeuOsxigWwIUCcYA1kt7n6xp5FRpQ +gtQSwcIjGbj
phYGAACyGAAAUEsDBBQACAAIAFGZyjgAAAAAAAAAAAAAAABsAAAAb3JnLmVj bGlwc2UubTJt
LnF2dC5vbWwub2NsLmVtZi5saWJyYXJpZXMvc3JjL29yZy9lY2xpcHNlL20y bS9xdnQvb21s
L29jbC9lbWYvbGlicmFyaWVzL0xpYnJhcmllc1BsdWdpbi5qYXZhrVZdb+I4 FH1eJP7DVTUP
ySw1dF5WGlRpKYu6aFhA0N3VPlUmMcE7TpyxHRg00/++13YCCc12+lCrIpjc e+7xuR9u//3b
rm4H3sNY5kfFk52BIArhw2DwC9xJJWgWw1puzYEqhjYql4oaLjPn4z5GQoBz 1KCYZmrPYgIP
O64hVzJRNAWLYXYMaBTJNKfZkWcJpNQwxanQDsSipzRGmz3lgm4EgyKLmXJ+ aJhqkFu3mUSC
55rBstgIHsGMRyzD7f6GDBzSYcej3SkUZxq9kEvMtVF8U1juPccIfzwHo8Y5 74zJP/b7h8OB
MB+HSJX0BUuo6LNcXO9vBmRnUnE+/lhmHlgq/dH9YtdL0sE18IwbPDuMllPP Jc0FS1lmTtq+
7ep3OzmNPtOEAZ7ndLb0Q0q+7A2RqSAyEoSlWyL4RlGFug27nW4HiUll4F9U inBJ7o6GjZSi
x0Vh8sKsjWI0HTbNUGJBhEwSzDKZsT0TLxrIZMUiqeKXjHyc31EpwVSdV/0w CMKIKjLDU0am
a5Sy0MMfWy4FNVup0leZFkjnFYYvBXc6O2ueYWFnVJDFeIYeWUxVPHPqH6dY D013qRNOtthN
7CDVZ3JXWC1s7bGvximS+36IBNUaZlUSPWVAI5bFGsrtt27nJ/wrXbStugi2 HLkASm27Eyk9
zqZ3q9Hqn8flaPxpdD+BW2gnSrSJsWqWvsBIwswcaQaho2WbIVd8j93eGmi2 uJ9N/prMHhfL
h+lijkGu+ph2Yevmagj9/rv5Yn49n62vb95VeL8u9kwpHrPzGfaSxxZfmaAh DUT+GeIUUPKg
YfI1Yrnrwm8ezC5d5EwR7145DM+vS6pIy5Vzub2FqnTskX9jmyJZOOQAt55E EJ5BqmWN18d0
I5G21+m5zc+XstTZtPZQgvwR2H8Lyh8Q5H6yepyP/piERONbyz54Hs47+rfN Q/bAbcgauawm
4RvQoHFc9nELkYwdyhJF18rsFPXpsp4ctwb7KlN2U3KHmG3DerL5FgJnALe3 kBV4e33/7j0I
eqdBSNiXAu+l4OoqRMfLEqzzVcwUKrMRasI8nb+WYZroRv6ZY7mNqfY9Uhkb dazTrOH7HORU
oYeDqrs9QUQN3njBVLhraqSSwt4k50LnLPwf4Fbi5aMptR8rl7k5zZXGgLbB zqj1Zm10q/uu
d8HpBkBW9vGMLM5J0Hhsxc0RxSxHO1l8Gl7YYWI9hKtBVxChTXKjhi/R7WpB n6xWi9VFgCdg
Av/V+EGcv0er+XR+/9pApfllqLqEdrXevCDrm1vXP62GjULzREzjfR3oma2b jlW6yiS12kRC
XhS1Xb5BsfJxULQ0vV2WuNcjqCTqQW2MPh+aPRj02rGqVT8SNp0fDdbxnLsH eydkOGHCZhu8
onq3okAxGkl+nWOpUXUfrVlU2OO23kvnjux28OM/UEsHCFkMSgAvBAAA+AsA AFBLAwQUAAgA
CABRmco4AAAAAAAAAAAAAAAAYwAAAG9yZy5lY2xpcHNlLm0ybS5xdnQub21s Lm9jbC5lbWYu
bGlicmFyaWVzL3NyYy9vcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1m L2xpYnJhcmll
cy9Mb2dnZXIuamF2Ya1TTW/aQBC9I/EfRlEOEIU1RGorBXGgESAkaiKo2mO1 2Iu97X64u2uj
KOp/7+zaMURt4JKxZM9435uPN3Z0877W7cANPOjiyfAsd9BL+nA3HH6Cz9oI qlLY6r07UMMQ
YwptqONaBU64TYWAQLRgmGWmYimBrzm3UBidGSrB53A5A5okWhZUPXGVgaSO GU6FDUl8dklT
xFSUC7oTDEqVMhN4CJQW9D4Es0TwwjJ4LHeCJ7DiCVMYViMyDJkOOU/ythRn FlnYS8qtM3xX
+t5vQ0f48liMukDOnSvuo+hwOBBW1yHaZJFgGRURK8SgGg1J7qQ4jv+gVZ1Y G3sf3ng7Jx0M
gCvucHaYPi7rXmQhmGTKtdq+r0XdTtSs2TAUPgVsY1oY+HjrV/3BHyGmoMkv mjHAmdv55Z0k
vytHtBREJ4IwuSeC7ww1qO242+l2sHltHPxENQnqK4jQWYYrJitWMREgRb2s RFBrYYXHuNln
LIpW3xuA9QIksOcKxQl0WM/nMKl9gv74En47+zbbzFpKHV5kfZ9u4mW8aGlN fJG3jOfrluSD
hnF+si1+MfgLrNaLxWzzI55+8f1enVH9agxRdB2v40G82g5G101qwytc5kvu /yygVlqXpvbC
Lv5t6k1ixlzt9fov6/LG99Brc8JkAqoU4hXC2wnizQrkWOFEjP6JiH+OrmGu NOrVNA3CX/j4
C1BLBwjxZm9iEAIAABgFAABQSwMEFAAIAAgAUZnKOAAAAAAAAAAAAAAAAGoA AABvcmcuZWNs
aXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJhcmllcy9zcmMvb3JnL2Vj bGlwc2UvbTJt
L3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvU3RyaW5nTGlicmFyeS5qYXZh 1Vldb9s2FH12
gPwHIuhD0jpykmEYlrQDXNfpvKm2Ybtrh6IwGJmyuVGiStF2grb/fZcU9WFb suWPdK0eHFO6
l/ecw0NJN649PexxfISeogYPHgQdTyQ6dc7Q1cXFL+glFwz7I9TnrpxjQSBG BFxgSbmvc/RH
nTGkE0MkSEjEjIwsNJjQEAWCjwX2kJpDTgjCjsO9APsP1B8jD0siKGahnkTN 7uERxMwwZfiO
ETT1R0ToPAj0QsRdPWg6jAYhQd3pHaMOsqlDfBjOLq0LPdN8Qp1JUoqSELIA y4iGUtC7qcJe
1YjgZFoMS508kTK4rtXm87lFojoWF+MaI2PMaiRg57PLC2siPZbSb3A/mpiL 8FqfUcc66dA5
oj6VwB3Vu60Iixcw4hFfJtoe9qgdH9XMMgsCwo8QwPhj6qOrX6tqrX9W1yAo wM6/eEwQkE4E
8K4869NMWtxjFneYRTzXYvROYAHi3hwfHR8Bei4k+gfktEBgZtWFwA/q2soV G5ZB5wTR8jkM
hyHqg4L+2NaTPqDPAAaO6LOm7amOp+gNkZj6Lkcuj4zhg1wzMA6REz4KUTjh UzZCd9ppJAyp
Wlk5EXyqo0OlrpPMFmeBr6jvg9UiLM8dPiK/xaWe1/QQzamcRJNgDz7oGEpP BUkmw740mRGX
Dx/jTEEg0EfyISAW6ukByI+VQjFgBywE1cJktlDPAamB2lHGFQpop2FHMKlL SeS3KCMFoib+
cPFRD8+1O8m9zCQtRfpJZBIBeATUDbgP6kgeKX0O/HlAjIMDDPuawL5cLuw/ u/yop+ultHOK
16IvxgTRwhj9k0X+rGyCzBEIOgPfxqEu9WH3xFKj/qDeG/SH71qD39EL5JN5 eulzOkelP+i1
2q+HjU570Hw/qKZX4uMkSjupopOXnDOC/RP09QbVak/anfZ52+6fXz7Jjq6e LGBcYJMggLGQ
4Tsw0Gl0DoWEuVUTAMyIS+/PskDVYWyTYXaTBnzdSZph5/a23xwcSqEWOGtM xBZiZUc/HUy6
HJQGGpjXDYksoa2RZjeJm+1X36v3CGzhQvnCqbvGeQmr3URptV8134Osh3bb /ppQeK+477j5
kkhRpEdMaD85hre9zhs9eIRtWFKjrbfhBsXWbEBXcK+lsjepmuqym752vT8Y fr+egyebbO3m
uwVmBxDnh3RgCf32cWGBQLupDcq9OYi0KyKWEAr+elmFihgrkLvR6zW7dr3R HNZt+1AGWvl2
aPvAizTDDoFONdc9AlxyH+RgTK7rdNWfFemZUWUvWX80SXP1nE+wTAfw+rFB tUXF4q+l91tn
aHfeNXvDRr2/u36VYqGUGpU1Ukhu8zkRDRySla1XWWK8APbGXP9q/m7B+G23 uw/jyl503wZB
ebop0gzduML61qVrtwbDyxyClXx2lUVqyvzk05T4iU3PNN31z3KzEusUCANG ZfGdJFWiEnca
EZPV9S6twtU+KmQe0FsLsnxj2F+eavJcZtSjskitq/zdkdxSc1WLZ46e5e3O YHjbedt+ZcQz
V0/PL89ukmkiDqbl2qFZpy46VTHoBRSZMoa+fDFh8Zmiu5+pad3W7X7BPXAp cobZlMArkKpn
ZaAaWGc3yxrtQK6a7Z5X2ufNbNUZk/mtBajGhS3qy79U6OnZRlG2bZHzFIjC HpluAtSAKiIW
L982fW4uKSk2MVraZms5ZTeg5hPjU1j25FLd8Kq/gZ4aJonfinM1LVnGrsk9 c8tO8v9Y2SzG
Mqtbprv7UVZ4ifuWq2wIr+3ilqkW0VAxa7FrvLrUBjjl2qdN3VLeEkWpi2eS 7MMQzICPgWYR
lmK+Q5eTx1ZlLIzVj0qHJHlLRShPI2AaUcpO/cm12prmRUVXCu1Wid/X1FlT qGIqVRYslilR
ClFxf3EwRGmJIgeoXypLvennYkrMvRPI6PdTC4cKhHnZ0UiiqutELAM77w28 HAt1Quc8Aq1q
NHPBbTJDtLhdQovNELz22/EP1V02HVPf6jTsod162av3/h52640/66+b6Bk6 ub423dLKf9yi
ugDgP1BLBwgyDCqd9QUAAHUhAABQSwMEFAAIAAgAUZnKOAAAAAAAAAAAAAAA AGQAAABvcmcu
ZWNsaXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJhcmllcy9zcmMvb3Jn L2VjbGlwc2Uv
bTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvWFNEVXRpbC5qYXZhrVRd b9owFH0OEv/h
DvEAVQltN2lSUR+ghS1SoawJUqdpitzUUGuOnTkObVXx32cnIQ00DWFtlCiO 79c5J9e3e/Cx
V70GB3DOgydBFvcSWl4bTo6OvsKAC4rYHdh8Lh+QwMpHBFwgSTjTMWkck4Lc RpKL8DTe0VdZ
KHSAMCIJotCfWqDdiB9Q7GMms9wfe3XrtQB5f9ACAxcLE3uUBCE2/RPf/LuU JvepyT1qYn9u
UnIrkCA47NVr9ZoCxoXcCHoM78wb+8L27rGPeqUuMS3nKcAXeB5T5izOGkS3 lHjgURSGoBxn
klB4rtcMdae2rAKEWCarERfJ4scE+XgqVM7HlsqrdMx5x69DSPZt9WvYAoLY tx2XMMgcWokX
fDoDFlGaGoxk1ywvmObqgQ5Z1Wvdbha4wDLn6XC9DpXueIyCVtsMItlqKGka hxqv6ptQIiZD
0z7/Phz33dHVtZsuZ9eWqzrwWFXpdpuTq0lncml3jpuGbi1VV78ElpFgKV+l qsZSqJ8qazHJ
30a2h4Rbm2ydpqq0FRRaF3rJ3UuVNowKnAtaDlRVZRpEhErCijyqSaARvSZ6 tkk0hai33sCt
RdjqL0Vd4JDTJS5EFxfO0YWUb6jHxfoYjbFEhM15giMQZIkkXrvkefz6DfbQ cV933fR6OLJu
QPHBDy++CS1DN+7paaaQ6uFG4qJXWzbY7Nr818nG1+dmnHwVK7Ub9nTmuNbE uXLH/WkxzFKU
H4E3//UlRl8V/Del+WBmXTrWxHV+Tofv0rmgS/5L9Rj2RjNleMqnYAJ2/+Fb cnJWmT2JKLan
R6msg1/OXQm9nVNxb4Y7ZuO7mWt7lnTbxXgtUf60VJJk95jcQ5PcsKzEXPuX /vHt85NRUo+6
/wFQSwcI5jayXJYCAAAUCgAAUEsBAhQAFAAIAAgAUZnKONUcnNKlAAAAMwEA ADQAAAAAAAAA
AAAAAAAAAAAAAG9yZy5lY2xpcHNlLm0ybS5xdnQub21sLm9jbC5lbWYubGli cmFyaWVzLy5j
bGFzc3BhdGhQSwECFAAUAAgACABRmco4wBrMdAcAAAAFAAAANAAAAAAAAAAA AAAAAAAHAQAA
b3JnLmVjbGlwc2UubTJtLnF2dC5vbWwub2NsLmVtZi5saWJyYXJpZXMvLmN2 c2lnbm9yZVBL
AQIUABQACAAIAFGZyjgLounrOwAAADsAAAAyAAAAAAAAAAAAAAAAAHABAABv cmcuZWNsaXBz
ZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJhcmllcy8ub3B0aW9uc1BLAQIU ABQACAAIAFGZ
yjiZ7Opa9QAAAL4CAAAyAAAAAAAAAAAAAAAAAAsCAABvcmcuZWNsaXBzZS5t Mm0ucXZ0Lm9t
bC5vY2wuZW1mLmxpYnJhcmllcy8ucHJvamVjdFBLAQIUABQACAAIAFGZyjgn Ot3nwwIAALQF
AAA0AAAAAAAAAAAAAAAAAGADAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9tbC5v Y2wuZW1mLmxp
YnJhcmllcy9hYm91dC5odG1sUEsBAhQAFAAIAAgAUZnKOLkg1YRQAQAA9AIA ADoAAAAAAAAA
AAAAAAAAhQYAAG9yZy5lY2xpcHNlLm0ybS5xdnQub21sLm9jbC5lbWYubGli cmFyaWVzL2J1
aWxkLnByb3BlcnRpZXNQSwECFAAUAAgACABRmco4SwfyYC4BAAB0AgAAOwAA AAAAAAAAAAAA
AAA9CAAAb3JnLmVjbGlwc2UubTJtLnF2dC5vbWwub2NsLmVtZi5saWJyYXJp ZXMvcGx1Z2lu
LnByb3BlcnRpZXNQSwECFAAUAAgACABRmco4B+kSNCQBAAC6AwAANAAAAAAA AAAAAAAAAADU
CQAAb3JnLmVjbGlwc2UubTJtLnF2dC5vbWwub2NsLmVtZi5saWJyYXJpZXMv cGx1Z2luLnht
bFBLAQIUABQACAAIAFGZyjhjjk4N+wAAAA0CAAA+AAAAAAAAAAAAAAAAAFoL AABvcmcuZWNs
aXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJhcmllcy9NRVRBLUlORi9N QU5JRkVTVC5N
RlBLAQIUABQACAAIAFGZyjiMZuOmFgYAALIYAABsAAAAAAAAAAAAAAAAAMEM AABvcmcuZWNs
aXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1mLmxpYnJhcmllcy9zcmMvb3JnL2Vj bGlwc2UvbTJt
L3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvRW1mVG9vbHNMaWJyYXJ5Lmph dmFQSwECFAAU
AAgACABRmco4WQxKAC8EAAD4CwAAbAAAAAAAAAAAAAAAAABxEwAAb3JnLmVj bGlwc2UubTJt
LnF2dC5vbWwub2NsLmVtZi5saWJyYXJpZXMvc3JjL29yZy9lY2xpcHNlL20y bS9xdnQvb21s
L29jbC9lbWYvbGlicmFyaWVzL0xpYnJhcmllc1BsdWdpbi5qYXZhUEsBAhQA FAAIAAgAUZnK
OPFmb2IQAgAAGAUAAGMAAAAAAAAAAAAAAAAAOhgAAG9yZy5lY2xpcHNlLm0y bS5xdnQub21s
Lm9jbC5lbWYubGlicmFyaWVzL3NyYy9vcmcvZWNsaXBzZS9tMm0vcXZ0L29t bC9vY2wvZW1m
L2xpYnJhcmllcy9Mb2dnZXIuamF2YVBLAQIUABQACAAIAFGZyjgyDCqd9QUA AHUhAABqAAAA
AAAAAAAAAAAAANsaAABvcmcuZWNsaXBzZS5tMm0ucXZ0Lm9tbC5vY2wuZW1m LmxpYnJhcmll
cy9zcmMvb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJp ZXMvU3RyaW5n
TGlicmFyeS5qYXZhUEsBAhQAFAAIAAgAUZnKOOY2slyWAgAAFAoAAGQAAAAA AAAAAAAAAAAA
aCEAAG9yZy5lY2xpcHNlLm0ybS5xdnQub21sLm9jbC5lbWYubGlicmFyaWVz L3NyYy9vcmcv
ZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9YU0RVdGls LmphdmFQSwUG
AAAAAA4ADgB0BgAAkCQAAAAA
--------------030307080202020209010904
Content-Type: application/octet-stream;
name=" org.eclipse.m2m.qvt.oml.ocl.emf.libraries_1.0.0.200806101909 .jar "
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*0=" org.eclipse.m2m.qvt.oml.ocl.emf.libraries_1.0.0.200806101909 ";
filename*1=".jar"

UEsDBAoAAAAAACKZyjgAAAAAAAAAAAAAAAAJAAQATUVUQS1JTkYv/soAAFBL AwQKAAAACAAh
mco4UFf4UAsBAAASAgAAFAAAAE1FVEEtSU5GL01BTklGRVNULk1GlZE7a8Mw EIB3g/+DCWQo
xIfsoTQOGVrolpTQQpZOsnwxR/Vw9DBpf339aN14SxEC3R367jtpzzWd0Pn0 iNaR0UWSAYuj
p6AriekLV1gky0aGmnQfTJVH4anl3tgiMbYGFJIah6ByBefWg1ESjJCA6gSS SsstoYPd7+kQ
R8nAnHhH1FUPWzbWtFShnXXb/1hOkvlU2hnBJX1xP+SbOfXtU5VGkhjnuFl0 40jXEn1n2UG3
3oZO5fnSGOvTAxcfvP4PLY5e8RzIYjpaza8KYxFs0J4Urq4LF1fN4tDZKJlD UHKWH/r1lE05
Dt2Oj7RdvGeQA1t1G9jd4uqp/366WzljD+w+Y9mareMojr4BUEsDBAoAAAAA ACKZyjgAAAAA
AAAAAAAAAAAEAAAAb3JnL1BLAwQKAAAAAAAimco4AAAAAAAAAAAAAAAADAAA AG9yZy9lY2xp
cHNlL1BLAwQKAAAAAAAimco4AAAAAAAAAAAAAAAAEAAAAG9yZy9lY2xpcHNl L20ybS9QSwME
CgAAAAAAIpnKOAAAAAAAAAAAAAAAABQAAABvcmcvZWNsaXBzZS9tMm0vcXZ0 L1BLAwQKAAAA
AAAimco4AAAAAAAAAAAAAAAAGAAAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21s L1BLAwQKAAAA
AAAimco4AAAAAAAAAAAAAAAAHAAAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21s L29jbC9QSwME
CgAAAAAAIpnKOAAAAAAAAAAAAAAAACAAAABvcmcvZWNsaXBzZS9tMm0vcXZ0 L29tbC9vY2wv
ZW1mL1BLAwQKAAAAAAAimco4AAAAAAAAAAAAAAAAKgAAAG9yZy9lY2xpcHNl L20ybS9xdnQv
b21sL29jbC9lbWYvbGlicmFyaWVzL1BLAwQKAAAACAAimco4C6Lp6zsAAAA7 AAAACAAAAC5v
cHRpb25zyy9K10tNzsksKE7VyzXK1SssK9HLz83Ry0/O0UvNTdPLyUwqSizK TC3Wz8lPz0kt
S81RsFUIBtJFqQBQSwMECgAAAAgAIpnKOCc63efDAgAAtAUAAAoAAABhYm91 dC5odG1sjVRd
b9pAEHwuEv9h64d+SJgLQalCA0gpIWqqNEEJ6cfjYS/4mvOdc3fG8O+7ZxtI GlKFFzjf7uzs
zJj+27Pr0fT3ZAyJSyVM7r5cXowgCBn72R0xdjY9g19fp98vodM+gFtnROQY G18FzQbQJ0ic
yz4zVhRFu+i2tVmw6Q1beaiO761/hrZsbMcuDobNRr8ctUqlsoM9CJ1er1c1 VsXIY/+douPg
q0N8yMVyEIy0cqhcOF1nGEBUnQaBw5VjvvsEooQbi25wcXsdHh8f9cJOwDyU E07i8HSmc9dn
1YGess2kmY7XILlaDILxVXh3W9E4rBpgmggL9WzqOaRLoPts+C1XCEctODw4 +NRn2fCN7+oO
L0WEyiKVdqm0rJwmCONIiswinOtcxdwJrSDl92iBL7mQfCYRuJSbtUAocH5w JvNFSIcP7x5y
7U5qHtXhYxvgTkm0FrRL0BSC8JsNoWIRcYcxzFDqokVAuFkAPKTRSxHTtdOw 1jkQHzRlkUOT
EiEVexqx8CQJeu7vmo3NApN8JkUE9ZrwA431y/i81CTHk8sdwVPCytY1CtCV p7DbudngDvpk
tMH5k3BgNa5MiMQFlwwzGS47B+0qKa8u7TM+bDcb59pAlptMW7SP2LSgojox emF4Wh2gEGRF
ilw91q7tTa4dvZiX0sUiBqUdGIxQLLGybCN1LOixk2uYG51W855l4Jk5zcYM hVoQYiz8WzTL
SyPX5ErpMWTcuPVG6ZtdlTa15qV/sZjP0XjMvZ6mfE3CZxmRq0JgICdeJAtX 5NXsDxGn+hir
HO4kABglGN2Xz54Mf29B1olwCVlacL/LNmqFcMk/QCSh0mDzKNl24ooAbat8 CTgxeDZlT+Bf
yPt/olyG0Dpv8VYCv7YlGSLctzZpRUAl1cdFpCKNJLkcF4rGvyLJL+W2DOk2 X8z/I1V/URTg
4V9QSwMECgAAAAgAIpnKOBoxHLe0AwAAFggAAEgAAABvcmcvZWNsaXBzZS9t Mm0vcXZ0L29t
bC9vY2wvZW1mL2xpYnJhcmllcy9FbWZUb29sc0xpYnJhcnkkTWV0YWluZm8u Y2xhc3OlVetS
20YU/haMbyghMZC09JqGggkBJdBcbAiNbCtgImyKhVtPf3iEvbhKZYlKMlMe pD87075Bm8wk
nXTaB+hDdXpWsgd86Qyd/tmzOnu+71x39dffb/8EcB+1GMYYco7bknnDMk88 LrfX2vJ3p77s
tC3ZaVgybx/LlnnkGq7JPVltH+uOY3laoDmb3+O+YdrHTgwRhmsvjFNDtgy7 JZePXvCGzzC7
rer1gqIrem1frRdLFV0p5VWG6a+1c+OK75p2a4NhMrBWdaWoVRiSSqWulnO7 al5nmBFHh3va
AE98k8K2TX+LYTy9VGWI5J0mj+FqXzShgxiuMdwc1OY6ptXkbgIpzMQwzZC5 fDW03m7f6rRM
W8IsblBu5bxW14q5A+WgVt9X8s+VbYo0NZxwElfwjoR3MccQOzWsDi8fMyyk tcE6biyNAk/h
fQkf4EOG6Ga3BrPpYcOlahwfM4xlswLyiYTbmCeIcXLC7SbDyijIkKpbpY04 FijWcsOqOmZT
8KUlLOEONcJ3QktqVXpEuHHcJafhRxyr1B7ecFyezaoFwzf0sxOeAMM9CROI xrFG9eqdK7bt
+IZvOraw+ExCTFg8JDYKQ7HP4njMcLVnHRZMWGYlxIXlJkOi07ay2Z6TLQkJ RBmmNNPmpU77
iLu6cWRx0SOnYVhVaqn4DpRJjCMnyjxJs+V/Y3oMBe3/3xca9ukW93u5F23P N+wGhZAZ0Y4R
DRp5fSZs7/CgyCA1u7Qlo02USeFI+LUo+N10X/Qi2qB08oU6X9phxOMWTezt S1DS/fyWn1Er
DE/tPQ6LoyZ9pKPUsCEpKa/DttVfv8VR4zySM1lxOm6DPzNF52cGGrUqAFTJ om1zN28Znse9
GL78T6/DACXdkV73cYvGcJxe4AjmxMDTbk6MdSDjXZkIZJS+k5gkewlgLNAB P8f+wJXa+O+Y
qr3E9d9w8w3eS330GrdSn9LyGouVWiS1XKlNiCWaWqm8ghwNIKn7F45eYX3i 34genBM9IsNM
9LIeN8j6ya8U5Bg+p/UZrtO6QIEv0suTxj3ar2MZGdzFFlbofBlF0pbpd2Rh DQ7tXTzA93iI
H/AIP9L+J8zjacBINRB3MSwHZJKM5MSdN1DOXUYDZQiRQgPkUSCZgEoOQ/Bj koIw8hLyLwPY
zQB7IzzHNu0Q7HZoRzNMAe8Os6wPsjztY3kOrcuy12UpUdIhy2o3EWLJDLIU LuQhWPaDPL7A
wTD2ySB2pw+7E+Qxhkqw6jgkmQzQVXyFxD9QSwMECgAAAAgAIpnKOMaHJ6QT CQAAEBUAAD8A
AABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9F bWZUb29sc0xp
YnJhcnkuY2xhc3OdV2l0VGcZfr5kws1yCfuStMCUAg3ZhkJbJMFKCAMEZ5KY GShQWriZ3EyG
3Jk7nbkTiNYuYlXaqlC1CNXaRUXEJQQNm0WwSrW4tf7zh+d4/NXTX57jL3/0 +Hz3zkwmsyTY
5Jz5tnd9vvd9v/e++9HV6wDux98UlAlsMhNhjx4yIvGk7omuj3qeGLE8ZtTw mCHDo0cHPUak
P6ElInrS440OBk3TSPrsnVEFLoG5h7URzWNosbCnp/+wHrIEZnv9vcF9Bzt9 HYGANyAw/1Hf
JFGnoSWT7QJVgUg4plmphC6wqIBgc+PD7VlBPVt3eTuDFLQgl87RJql2eINB b9/B3j7v9q69
VJdDFLASkVhYEnWasaSlxaw9mpHSKzFHoDys09i5ZiqxO2qs9+uWFjUHdEPg bl8uJCkeyh+P
X55SVOVmnsQi1sMU0bB2j4CrkycKFgvMyXOjCgJLVVRglpzVq6hCNal8kZje nYr264mg1m/o
0mQzpBl7iLJcpzdnbba1VKMcK1QswwJqsoYiSYF238e+M9q/gH5v0ywtOBrX u2xQQtS2o6EQ
tsKdtVM0S016yEzoHm9GYHsVVuM+BWsE7itB2quFhrWwvqpPD0eSVmJURQPW Etau7kCwo7vT
K1BSSz5rew21NaloRotADf3KUAg8UMSfmeS2S6w9KtbhftpDcfYlErGGtQUR XM0L3aDiATzI
4CIp42fIHOjWotS9pqjugq1qLMJGFZ/AJqZDVoTAliLshSmUKzChDxpMBo8j gYLb8UkFmxl8
pWhUPIxPMcYisRFzmCZvaihMrSLZtrZwS0GHwIoZwqIanfAq2Caw7s5D12eG w3pCxXbscABy
NpigmftIWRHDY3CXEKXJGYCd6FKxC5+mewHvHm8fI6quGL0+wnxW4BdYko/3 1lTEGNATlegR
2NmnJ1OG5TYH3VrMrYVCejJpJtxRG0e3flQPUawZc0eS7phpSZpIOqskSxaC Nnc1fPiMzOQ+
lrxiIbJHUgRV7AaryiwtHtdjDIeWIldTGE1pi9uliL0q9mE/Q9gynUOBhQ1F A/AAHlfwWCZO
isCp4iAOsdBxV6C1oSSMxbypRL/AZu/RkB63AToyFDF0t2Gawzx3DxLDInjK 7Zyw8WFA4qHn
wVAyqSZhOICwNH5IoPP/MTtnJziUMI/IWmz7clhgY74v6cunN9O6oYCvyl05 qsiViFijWXEK
YsyhSYJuM5AKDTmZmkMUF1g5SdRlGHpYMzoS4VRUj1k5dEwRdyGdbWEOFR+/ psLy0MWCENIk
RVBLyIqaYRCoiCV393UJqANpv5xq59J7hxkc7pmKK0M6mq5w9aVrF6kSdr5N fcizr72gxmW+
abAkzT2+GaAkzSrfzEiSbGURsqlAkqiliDslcWxPA2hlAayWDzLbj4jBt6ar oRSOHTGWF1ti
0Ye5YKsGX8ZxBV8hHjNKVPFFPE9QGgqfyJAZjZoxJ3m8fi1OuS/iawq+yiuf iVbFHHw97z2c
7iU5OaWfzNQuV1I3BgXuvQNgWKmG9VG+FlrSm2lHNxTVXkJW1pRvM8ympWF8 8t7YOk7tozwz
9h3ZhtLulyrxHYHGuGYNRbV4m8ez2+876PcGO/w927y+gFy2RjOtaSu5ZN/x qorv4TWnRfE7
Peu6O1fr9LE1eAPfV/Amk7E0lYof4AzjlXp6jsT0AWmxfFayoTs7a1svPSDu cm2zyob3xyrm
Yp6Cn/ASimPJVGf/HdI9kWjc8PSlVwHd6uK6Guexoho/xwUFY0V6jNxoY2FS MY6LNCGU0DVL
tyvVg3fUBObJaZd6f6liApecpjJjloC/MDnzmfeXCq2sqxlxvIIruKbgaslW uYBFxa/wlmMU
v2cs1ipWjNUzJa2PvTKV/Ro3FdwoUg0KiFX8Bm8LKJGkNxq3Ru3vnP1SwO9k Qt+S3UtXkfxl
psbtKCin4aW7+EIgWAID9mx7RH74LMz7ZmmVmhiFXbGYnrCbXz2p4M8Cy6d/ cRipmQ8FBe8J
bP3YX02r5NdhJDZoUmRminsY4eX8kHahXn7hcaVwVYZKrvmdx3k9aqByf7a9 X8s9pgPnlfyf
jwU8WcjVRo7yb075W1h0EUs4lF9E3QWb6S7+1tpq/BTfw/lK3G2fgGzLskI8 HKWYisZLWD7J
OsvedFhUhwBuWi6ZV+Jeh7ls3LYforLpFpTmd1AhxsaxqukKGsvQ3WKvWybQ 2th8CevHsWQC
D7W56lwt46ibQFtbRV3FLdTUVdzEltOoqqu4gS1jl7F1HDuvwbdvfvcl9NZV kH0CgQk8MoFH
z+K1NlcOhUaK5gmEeFrnmsDgWTwzw/mhKeeRgvMtM5y7pz0XY7ypeuxEBMPo wqA9yvVxRO21
HOX6HEx7LUe5/gOesNdylOsPkLTXcnTu431+MAJB3v9u6niE6O/FUjbr9WxX l+MxrOHYhMfx
EDvXThwidz8vPUSqAa5C/O+nNTrtGaSOMD6LITzF8VmOx2zLIngBh3GSFGdg 4FWOr3N8k3vn
aPV5xHCB1l5FHNc53uT4NvekxbeRwHu09O+w8A+O/+T4L+59gBQ+xAj+jSP4 L47iIxwRAkdF
OUbELFogYyvOSGf8pGNLzlJOvHE2wlkZPf0P+Y8ylJv46TlKPhe93IDP4UlG 3zDR+Tw9cdF6
OXuas/P27BnObtuzZzn70J59gbMy+emdDn4vpcqEmGdfZy2vs8m5zrG8RHjK NnaxQ5wxlrNj
trGCTdBzaZEHSCOzbnGTHf7MhS8JNF/BC2W4gRNjebkpDTpGHc/Z8t0OZ1b+ YryEb9j6F+Ob
NhgC38LLaU27OEp7aptu4tRpVDbdwKkxka/hOLP/efK+mONBbVZDLTU8aXtw mtfuyB0ijYvj
0vmv+Jsv47sykRVxFtUtdOb1MuRrOMHfkwzMl2wNjQ5vVsNS/NDGqByLcNb2 oZLF7EfErpyB
zG4krfVE+iq2jeMciwl/x67h/L5L+GnjZfyM2fULH4vMPJpwWfD5uy4tdvDl uvwKfivxfeMi
zknOrIXL7dL6MhE+RW2nmS5n0IxX0MoA30Ltk5hswzu0TpbeRvyeYS2xfdeW cxt/5Difs9X4
E/4yqwp/5en7qPofUEsDBAoAAAAIACKZyjihehI00gMAAKAIAABQAAAAb3Jn L2VjbGlwc2Uv
bTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvTGlicmFyaWVzUGx1Z2lu JFBsdWdpbkxv
Z0hhbmRsZXIuY2xhc3OtVetWG1UY3SchGQjTghWtSBGqUEOwndrW2jZABQwl OKY1QSrWqpPh
EEYnGZwLlVfwQepvXQqrdi0fwHfoq3S5z0yolEt+UH/k3Gaffc63v2+f/PP8 r78BfAhbQ0pg
yfMbhrRdZzOQRvNK0/hpKzS8pmt4tmvI5rrhOnXf8h0ZGObe6J4bNZzWWNKZ XmPRaq250tfQ
JTDyg7VlGVHouIbrNfi9YdRCX1rNNkggG244wdhlgaJ54rOLpJlyWk44IzCT fwWeiRWBrnlv
TfZAoFdHBtkc0jilQ8NpgXReAfpMpyUrUbMu/WWr7kqBM6ZnW+4KmdS8vdil AhMwT36dQ5Iy
Tm0zqrtOsCEwmjcPi0tsVdqev8ZQcngTb2k4KzDUAahjEG8LdDdkaMot6RKd nziKWX0s9uAc
3tEwLHD2GIiOEYwyH7XSSqlaEhjsyPWujvcUXLs/W62UK3c0jAsMxzscz5jb DuWs71vbd6Nw
MwqTyslhDKdyzE9exwQKzEcgw/0AntmWhhT7P8SapPGBjtcxoEaXdBgqrxnb 9QKZowuuargi
cPPEKdNxDR8xeqWm1xA4Ty33k1FxafhRK3Sa0igTUtTwMW1yLKYWWmEUqKvd 1HELrIAecs9F
qh6oVJveCxqOse5bTfnI8380ks/FXkzjtgaaYvBYkI5PMEsNSVrbbtY917Er RAgM7FWBayWm
ZeKKSvt5HZ+qLd2hl6yqOlvQcQeLyeWWN3zvUYsV8hJDvKqcQZLrWFKO+ky5 tXz4lCOWjiSa
WOnF57iroUIlOqqs4x6+oH9dlZPxfIeUJHrHD0HWjw1C7o5GoxIB69l3wm0B URbQvZeKccTs
WM7cn1l3I+XoXOlnW26GjtcKNDzYs20ig7QjdcILhMAvr/LQ/Z+PknKVwLcq o90MouZFvi0X
HFWfAwc2X1IRUaFyqyX9edcKAsknsv8gJUZJmObfkujvV28wRxmkFD/Xezi7 xlmKfa4w+Seb
Xei/cZZCH9ssMcAN9LPV43EOr+GMYlO+bzM8I1cX+4fp6ckdvPE7hh6jW5v+ FX3J9PxjZDLT
TzG2uosLlcLFHbxfmNzFJM+6WPgDuR1cforrq+eS8Y0nmOKNiZrj9tIuyk9g pvDfpWbidoqz
aV5qhhe6jSFabxjzGKefCijxKVrAVdroFhZhooxl9vc5/wZLcTCF5MLtYNSo ihrDSeEBsV+y
H2fYK9yT5upXON0OdTIOnb+DGlX2aSReaMQXkahVjrs4+7ozRfUwBRc03jk5 +wLRKpFZJd7D
o5OUin/fxe33sOKE0Ul88upI/QtQSwMECgAAAAgAIpnKOHUmWaHuBAAARQoA AD8AAABvcmcv
ZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9MaWJyYXJp ZXNQbHVnaW4u
Y2xhc3OlVmtXE1cU3ZeHA2EUilqF+oyIIWDGd2tjbQGDoiOhgCj2QSfJJY5O ZuJkgtrad/ul
/6D/wtqugHWtfuyH/qiu7jsTHoVA16KwFnfuueecu8/Z55zLX3///geAs/hR Q5PAZc8vGjLv
2OWKNErnSsbjxcDwSo7h5R1DlhYMx875lm/LimGufE061aLtamgROLrePO/5 0vCrbmCXpBEp
CezNjprz5vjI1PDU3Pzk8Oit4esZgW7zobVoGY7lFo3pwLfdYlqg08xeNzOz GXM+Ozkznp0Q
2D3quZXAcoNZy6nKNsQE2g3HKzpyUToCbVd4s2sHVwWaEwOzAi2jXkG2oxNv aOgSuLgeXRhQ
CNF2A+m7lmMQ2jS9Fyy/EAX3bLxUdnR0Yy/vrgQFBj9p5R9ZRSlwzFzvTaUm 8papa6Q7sB8H
NLwpcGR7TR0H0SOgFWUwYZXoel9iYHM+2iHwlo5W7FKZsV05US3lpD9j5Ryp EujlLWeWfKh9
XbjrSpiNGJpxTMcR6MxI8MCuCKTNHfNMYlrJgR8InEyEbrxK0TYWfEJ/4vmP jJGqW3AkmQrk
0yCtaIhlnuZlObBJnoZTrIG14FZPFMgBHSfQp2FQ4MDG+EeqtlOQfoxZOK0j BYPUM2HRZQKH
mbItsZCKsziv4ZxAz5ZKOi4oFjrpdPpZKec5dl6xEcMlvKPhbYGujZB0XMa7 5G1RFWN2QaA/
sY62bO6hzDP+zUzGkMQVxcd7AvsTm88HZpXG+zo+wDBJtMpl6RYYdiPVTaJ6 nsJLRnVcUzG1
BV50GMMYbmi4LnB8m0a1ggXPL+kYx02BPczHNZmrFrMhTRuC3BJGug0m65W3 pOq3pFhlKVZZ
ilWWYpXFMIFJDVmBg6FxNbAd1csssaJhcpW+jg8xFfEcCQRSW9/ewAGbZgaz Gu6sFNS/ddTU
0HEX95jlaQ6aKU6inkbOlGJald59HR/hY4GOCJIZzZ2xBqC2dNMQbf2CCXyq Yx6fkbIKL4i8
H0ps7Yux5QRu7riZ+6KFodywVBOwvywUVG2yp35K/I8psXPTTZjChpgA++0B bE4Tq1Con3C0
NkrOmh27Mx8NIoH4fw8rlrtTZ3WlYS7B1eGpLmqhpNSGxwJQ4oqOAFVWjnxc tZzKhlZe6f77
SvWJjqfKQ0fg3WEz+6NWhXNlBp/r+ALPOU/Lll+R23Z4A/I1fMWg1gzGHUcW LWfYL1ZL0g1W
Jyv919/H5oLklIpNe1U/L8dsNTf3bUh+SvkT0Mddlzgdq1KRDK1rIyU4zmZo 5v8NTehRTxK/
eqFxZeWG0na08KsDOiW7KTnDVf3oL7HnFfYJ/IreX0LNQ1D5bOLfQ9TvxeFQ CuofWbU2uCr7
1uQSjq6Z7QqFkYkeKRBYPDTmQ0Ktk/xu4a4/dPMbzxXoseTgEhKvkZxL1jD0 CmcElnFxCenu
9hqu1jCyjMzt7lvLuJ0ceonpJczV8Em4fw1rLimWkK9hYQ3HpdB7nN5PMPAT 3PXxST9JXApF
PwZwig9QPx+YBJ+MAYxwzXA+K9zHIkR13OrrIR4RcR/3DiNs4i9HTj0Rz7lT +vHBP9E5WEOp
u1yD/zNah16oXQ2L5uAynr24O/SCFr1M4VF8WUfZG9J0Gl18PbtJSC/O8fQ8 EVxYhyS+iiSO
r+sZjuMb3AuRfBvG/B2+D0kTHBYCP6DpH1BLAwQKAAAACAAimco4m3SiIyMC AADJAwAANgAA
AG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVzL0xv Z2dlci5jbGFz
c5VSXW8SQRQ9U9pdFpa2Ui0f/USrQqs7LfqkjUnTAGmyQgIGH82CI24zsLos /C6FB40Pvpr4
o4x3dtfWRDFxN9l7z9wzZ869s99/fPkK4ASPdSwxHHv+gIu+dN+NBR9Wh/z9 NODeUHKvL7kY
vuHS7fmO74oxt73BQPg6lhnWL52pw6UzGvBW71L0A4ZEq15nKNhhZRK4kkvi u8SwxVTIpwxa
p9attWsM+suzdvOi2WBYvmjWWwxpu9Vo1NqvmmfPqZy1r9U7gU8StDlz7o3G gTMKuo6ciCRW
GbbIuhVbt8i6RdYtsm6RdQbDm/iRY4bi31yFNVJOnpLEyA2eUQ/lSpdMnXuv hYFbyOnYZMgt
6MjECjQDRFDcogk9gkUFd0wkI7ij4L4JI4L7DGu2OxLNybAn/BdOTwrVsdd3 ZJfGrHC8qJ2G
rlJI4J6JA2TJWfDWHTNU7f+9NGrTGIjg1zy2y5XFE1EuH5hYw3oKFo51cIb8 IraJCk4YrPKf
d/aPIxhSHbqevqi7qtN0tGwpPkp0fIJ+UA0FNWDKCmqyYUzG0YhjCmlim5Qv IUOIPFOeIN4N
ZKmyQeiConoKM9ycIz9DYY6tGbbn2J1hb47Sx3D7bfpu0oGg29IoM5EjiTy9 G7gTMkBCB1ey
nKISXjn8hLvXElq4GG0xIwLuo0zRoEkdxpufxJ6yMxx9Qzqb+YyHcxwR+nCl tBpOYZcU9ygv
/WaiGmaPfgJQSwMECgAAAAgAIpnKOErGuikKBQAAlwwAAEYAAABvcmcvZWNs aXBzZS9tMm0v
cXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9TdHJpbmdMaWJyYXJ5JE1ldGFp bmZvLmNsYXNz
pVRZbxtVFP5u4njLtE2TbrTQJU3J0sVJ2tCGpKRO6rSmkzj1OElDac3EuU6m jGfcmUkbQCxS
JRYhsQieeOIPIBUqAUIsEk+IB/4AEk+IB/4AEg+IMzM3bjIelwKy5POdc+/5 7nfOPXd+/Our
bwEM4EYMTQznTGs5xUu6VrV5qjJYSd285aTMip4yS3qKV8opXVu0VEvjdkpx LM1Ylj3/ha4p
7qiaUTZjiDC03VBvqSldNZZTucUbvOQwtCqFdL6gFOezhYsMHVfl+1t8ohGG 9g17irnJSSVT
YEhkps+vp8Wz0+czV2iJ9q7D4mQ+N+U5DFvktFIo3t+0e5O/cWekkM9Okap8 ZkZOT2SKaVlm
iAmPiAq5opybz+SLE2lF+LMzMzU/pszI2UJxoIYGSdwotc3QnKcYmnt65+iM CXOJx7BnUz/8
YpPYi0dj2Mdw+j82XMJj2E+HqqUSt+2ufoYdPb31TY3jIEPUd+LoJL3jpqlz 1UiAoUtCC6Jx
PE7hrOHwZW654R4JMURd1Cch7qNjEhI+OiEh6aN+Ca0+GpQg+eiUhC0+ekLC Vh+dkbDNR09K
aPPRqITt7tHUrDaF31zlRon3+DJ73fVzEtr9neMSOhBl2CZrBp9erSxyq6Au 6pxGQDZLqj5H
zXF9EYyOeneQRDMuSMhgJ92Ds6LZRCT/39mmEU3ajmo59rzmrDAM99Q3vD7S GzrrEZvrZbeG
kLVo1eJlbY1BfqgDNkTELTY4M+qYZZvTY+wISaFZ4saSqCxqr5Y9BTHNWOJr OVLabDsWvcay
ZVaybowej67aTnZ9PUKnVBi6QySHq0lavKqrJZ7WdYZL/7bSB1JHLSpprUoS xRkVblDZMeGR
2NsrquMar9pWx5TN29yaUG3uebPV6rrXYld1jba2eJRkda3i+knFXLVKfFLz JnHTvJxwFTFI
WcMgFmqSzWn84utThEM01c30zd1KHwF6f4T2ug/Os3FhE8ImhW0VVhJ2i7Bb hd0mbJuw24Vt
F7bDs23EvwM76fxdQFMeEYqB5aPfYPdC85d4RFmItB9QFlraDyn3cDhWFz6i LES9te7wlN76
8BEKH23A5K4dD09JPSBloGXz2j2crN99wN3trg09YO10HdNwXWSkXuBZCo81 EOiupT+ltjZh
gv5/wzD9d1L3D9PddVH3O7EbffTxPkqRY+gnfJJ+wziFMQzhAuGnMYIZjGIO Z3GdsEpMyziP
Cn3OXiT8MmTcwRTewjTeJ/whCvgIs/iYMj4hfBfX8Dllfo0iviP8PTh+QBk/ EcvPhH+BgV9h
4ndU8QfhP3GLAbdZFGssQVjCK6wdr7I9eI3tI7wfr7MuvMH68CYbJDyEd9gI 3mVpvMemCV/G
QVLnVkzD5H5y/flCiiwRo6XvC0zeb0nUC/opkr8BF5Elm6DSL4nkM2Rdwshn OHw3kNvt5e7y
16kBU+4YE5omxDyWnGAZF0+NWLqDLP0ey0F/vY7FRTO4TBkJ5MNU9Qb5zjRQ pQhVhTCWo0GW
cw1YZmssIbUdD7JkG9Q2W6ttTtQ2H6YqFeS7/A+q5sNUDQRZnnloVVewIPhO iCEivpNBvsUN
M7TOl6BTrtZrGQrmPt9Ay7M1LdcIuVquh/GdDvLZDfiKNb7nBJ8aVttwkO+l 0NoWw3JHgrl3
QnNLYTc9Fsx9u8FNL4mbLoXddDrI8kGDbizVusG9m26iz5KbuYwVskmvpr3Q kPgbUEsDBAoA
AAAIACKZyjhvdA82AwYAAKgPAAA9AAAAb3JnL2VjbGlwc2UvbTJtL3F2dC9v bWwvb2NsL2Vt
Zi9saWJyYXJpZXMvU3RyaW5nTGlicmFyeS5jbGFzc62WXUwcVRTH/5evgWVs KZRWimixtF0K
dNuq/VYLFHDbLVuB0kJrcVhmYdrZme3MLND6/f39+WSi8UHjg8YH2iZA2qTG B1tjND5ofND4
oPFB44PGB41JYzx39jIsy1Cg+sDOnTv3nN/5n3PuvXz2z4VLADbjdQk5DNtM azCkxnQtaauh
xJZE6NSwEzITesiM6SE1EQ/pWr+lWJpqhzodSzMGI+77aQl5DCUnlGElpCvG YCjaf0KNOQxL
w+17W470tUe7+lqjh9r3MpRFpleFDUcdVK1dDEs6uzrC7W19zdH2rpYjXQyl GcvSJFpVuJsi
MzTnLobcYG03Q16zOaBKuIFh2SyvAchYKqMEyxgKdguzvGC4trsIFIaMfBRI KGdYmU1qSmn6
gGoVYSUqJNzIsGPhWYlMjQ7qqUHNkLEKhUSLNkf6IuGmjsaOnr6Djc37G9ta ArgJN0uompG3
dAAybsFqBmlY0VNqNM6wLhjJzu2u2tkZCmA5buWS1zCUB2d/r+0uxFpK486d 6Qm+fr2MIGop
RUoyqRoDDA1+hrOmRI5cZJ2MejSQX8dMf2RYHvQJj+c9JEPiGVka0Qy1PZXo V60upV9XecXN
mKJ3U/L4uzsZQC5u43oCVDlnSLOpFJHr7FBqn4DtKJZjH9acIXLkI/PawptM U1cVg2TswC4J
O2c0nfgoYzfuZMhvbYx0tsxs9ilzXve7ZWzFnjmK1BsgQBPvgWaGFcFevxgo H7aqU2cUJC01
ro0yRBakx2fz+bnne+ceGWHso6pqhtPNG9HddGEefoSHf4AHN5sQru2lznXM eNxW6QAopJ5y
M87t7pUR5bIL7FTcDVrSjAF1lHf44ssxFT933C2jE4fnyGeYArcd639KUSb2 KMcemysPxC2K
W2YizDUyFOuK7YTTernx/TKO4zAf9fPRMd7ilpbI2uxzbkA3gLiMGN95AUtN 6kpMbdR1hn2L
lXltxgkZgzjJsH3RFfLO7QKLUjaapByIOBOqQb0hiTdOSco4xSmymGvVLJuW 5I0MKe7D3bPF
jhkxR1SrWbFdo2EZDpdP84fo9PLmT8sY4fP5dlLXyHzrYkJPOZpOx7jtuOof knEGDzOs9yvK
Ub+MPYrHJTw2daq73hotSzlty3gCT/KD1ubeGdYGM+1nnurTQZAKN3sM4f/Y vjOFPcuFPccQ
9O1dH2UUiK4leDoLlVhMte2aTdR4nWbK4tVyT/AZB+5G7oEKGjYMqgw1v63a El5l2HOdJ3jN
AdVRNCNuUgRTQ1TTnZJL/8Dk0EVLFzqNVvELhp7L6LcIAfpeTG8RdxVQcxFy T84ElpxH6UUs
7zmHFZOonEB1ac041o1jw3lsPOv620S/S1yrN8jDVayhm26z+wXks8TzHKIn o2f+hglsmTYt
cCfTJnJ6AW7HHa7xVmwTxkdpNUeU112GVH8F0jlsH6urH8ddk2gcy4rjTVL0 Fjl723W6Om0o
nPLRXvrO3FELjXJcUKsAJWh1Hj2rCFRcT7AGD9YwjrZx7PcBvkOwd0nqey5w Q9qBB6zygFUC
yEftpDyXZqPzazzog3yfHH1A2A/n1dghNHaiS4D6KEC+vmIaVDrG681hh6jm 2bAxcnGWYOcz
YBUerMKDVeCIB+sRsFNUT56P6pkJnQKmk9rrA50g4CQl9UJGUqs9aLUHrRZQ PrpPJPX4wrT2
+WAvkbOPCP3xgrUeX5xWxQf6CQEvk9ZPr0NrDAMC30ZP/q247gry68bqxqFm gz4n11+Q4Zcu
aEV6uQcqFiBGN9mQcKqKDVGeoYk752q0bPdfkY6vafxNhg7/rtSFjnLacYWu DmNBSDMb+S0h
v6Px9/MiLQ9pC6TjnzrGU5fKBv1Arn+k1P00T+pGruF0NNvpz+T0F3L66zxO z+AB4bRHnBJl
oqG5Y2rlByfxSLbz38j4dzp//8ho5TLPeZmXmjI8JVr5DJ4WmJOiBpWZNWDe KfiMD+5PqsRf
NP47oxKVHq7Sw1UKHB89z5u4pBAvoEGAa9w1QN45bJwmpG+Jq97FkoMX3d+X 8DI9+RXzCv29
hqJ/AVBLAwQKAAAACAAimco4WXfPNa4CAAB+BQAAQAAAAG9yZy9lY2xpcHNl L20ybS9xdnQv
b21sL29jbC9lbWYvbGlicmFyaWVzL1hTRFV0aWwkTWV0YWluZm8uY2xhc3Od k1tPE1EQx/+n
LduLK2BBRC4KCkqrsJYXDBATWlpo0pbKLoTGh2ZbDmXJXuruluB38MN4eTAx 0Q/ghzLO7haQ
Uo3Yh86cc2Z+8z8zZ3/8/PodQAbLUYQYVi27JfGmrrUdLhnLhvT21JUsQ5es pi5x40jStYat
2hp3pAN5c8/V9Lkyd1XNPLKiiDAMn6inqqSrZkvaaZzwpsswJeeVupzbzpc3 6oWd3XO3upsv
FA8YRt6ULnNk19bM1hqDWN1T6sWKslMvb1QJu0WM7F6xpBQrdaVWzTPE1kml qbmvGMILqX2G
SM465FHcviIiAMYwxDB45hyurpJquXnMDTWGOwxCcB4H6RAxAMHz7oqIQojh Hmm/yNGMts6V
d22+yY+8spplerH3RcQgMAyVNJNXOkaD24ra0DlDsmQ1VX2feuWtu5vCui85 gTAeiJhCgmS7
x5rDsF76/85Tv6Yd7gb3Klh24LyuqAav2iT3jCG7cIVP15IuOrF2fQCpvkMR HD+eYfIvMApr
d4sm+0Fm2h23aLrWb/IUy/OdttrkZbXNoNxM7L/Kj5vnVRhmW9wlZraj6a5m 9psuTcaLZ0jI
Vsdu8oLmDVDs9n7J49OyaJrczumq43AnihcMmRuPkZ7y+SAxS08qTJ9jGBPe ayRvwnuLvo35
doBsHAmKu0Wr94jA+20L3yDWwslBuRZJDsu1AfI+Ixnt3aU/wT8avZYwRrvj H4kVolpAmmoA
81TzCUbIjiFF7zWNJbIZLGKFvE2yW5jDpJ8F0jR1oUwiyzy96S+YvsQK/maQ IgYBeIgZsnG6
/KNu8kuyHjDyCckPPbkrfu5YcI7HxILvzZNQmjGeYqFLyXabSZTRXkrOp8wE 59conpciL0S8
dD9V47280h9UPfN5ITz34xepafBbxKhBGcR/AVBLAwQKAAAACAAimco4VS0w WagCAAA3BgAA
NwAAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVz L1hTRFV0aWwu
Y2xhc3OtVVtPE1EQ/qYtLZQtlLYIyrWK2lJgBbzFqg9CSDAFNUXExJdtOZRD 9lJ3twT/FT6Z
+uCjJv4o4+x2qWAr2sQmPTPnnJnvm5kz037/8fkLgGU8iCFEWLbsmiqquqw7 QjVWDPX9sata
hq5aVV0VxoGqy4qt2VI46l55/bUr9RgihOSRdqypumbW1BeVI1F1CdHH0pTu U0I4l98lRNas
fRFHGAMK+hAlDJekKbYbRkXYO1pFF4RUyapq+i6je/vgMOIeSoewWuo5sCJh yhFuuXooDG3D
slvKq23NEC9tcSBPCM9zF2BPnH3PuWVYLP3Kqeza0qwV85dYD2IE6RhShKt/ NFIwhAxhNNcF
mksUdXwrwsQlPGxWD6JPdcIQZusNd9N0rXN57lie7tS1qtjS6oR3vWXdex0m FUxhmjBZE+4l
cYzk8i3sBr+WykfsPIvrMWQJiQsXCm5gjjuJcyM8PF++VrcVO0/ynUeEAfMs AEKWg+OwnzWk
7kqzLI0699yHuljnULlxpWUS9v5Hf3RB9quUVzCPAj9jraNJuXNzfyvyooIl qNwstnAs/Vh0
z+BJt1775zB5/LyKEeJlq2FXxYb0RlIJBmzJQ+btpmkKe03XHEc4MdwjPOp5 Vue2hKtJ88Ai
9J+pyIKfHN4nwhr/aPAa453Kklj2zX9C/0dWQojzGvUPFQz6q2/AMsGSeO6G A+cyW3ugicJX
xAsLTSRDKJy2QYb8y2FmTDJQ2gebbTkEYJ42iis+QQJjGGdPHnpcCwj22TrC MsMEI4UmJggL
i03MhPGmg2eMLceRYl+PZ77l1+bJtHkyAY+n3WQtzKe3cDtgfBuklC58Qx+d MmeOOZtYCOF3
wmmmmOFKZc8llm4TptuEadzxCUP8x+AhrGCVZZzv7vL3PgZ+AlBLAwQKAAAA CAAimco4Swfy
YC4BAAB0AgAAEQAAAHBsdWdpbi5wcm9wZXJ0aWVzrVFNS8NAEL0X+h8GelGw SepFEDzUUkGo
WtA/MEmm2cH9YnaT0H/vboL25qkLe9jZ9968ebNaXfUsFyvYOX8W7lSEm+YW 7qvqAZ6daLQt
fLpTHFEoYcQ7wcjOZkq+W61hogUQCiQDtQV8KQ7gxXWCBrJCVATYNM54tGe2 HRiMJIw6ZI0s
bbBNkAFZY60JetuSTLSEMwHcaXrsG80+EBz7WnMDB27IpuewKaosNCpu1F8j ppBIyUnLIQrX
ffZ9N/lJxUsvjJmrYvSPZTmOY0Fzl8JJV2rqUJfk9XrYVIWKRmcwwByZnXWd hMe5DP+GBmtg
yzHNDdvj6+zEeE2GbPxN9dqbTWsYOIX5joae9pfJ0o/uO7ZT/cC1oOTATk7g Y3eA0cl3XtTI
UcH+7WW5+AFQSwMECgAAAAgAIpnKOAfpEjQkAQAAugMAAAoAAABwbHVnaW4u eG1svZPPT8Mg
FIDvJv4PhLtQ68WYdr04T9tpa+K1tqySPKACXet/L4ytP8w0W2LkVB6P7/V9 4SVZLwDtmTZc
yRTfkwgjJktVcVmnON++3D3ibHF7k2SsBN4YNuY+uNzDUQNtzaX7QgglrLdM +oTDNqxGcWlT
rHRNjhQiYkE+9pYoAUSVQIC/6UJzZvDidDEJsc8JyK0SCmN+ZzGxG3lkY7Xr ZRVYeA7jVYrD
ucH0rwsvxW6rFJifS/t861PGpn15LtfMFkJVDFCreYrfrW2eKO26bijtfoO6 6zSOopguS6XZ
pAEPUa39T0orIKYxce+H5uvVVCY92jxFztq9Wu7r5jm3HOZSvdPrEZOGL1bf mypIc5CZssuN
nUd805XQYZ5cwM0aHYbtC1BLAQIUAwoAAAAAACKZyjgAAAAAAAAAAAAAAAAJ AAQAAAAAAAAA
EADtQQAAAABNRVRBLUlORi/+ygAAUEsBAhQDCgAAAAgAIZnKOFBX+FALAQAA EgIAABQAAAAA
AAAAAAAAAKSBKwAAAE1FVEEtSU5GL01BTklGRVNULk1GUEsBAhQDCgAAAAAA IpnKOAAAAAAA
AAAAAAAAAAQAAAAAAAAAAAAQAO1BaAEAAG9yZy9QSwECFAMKAAAAAAAimco4 AAAAAAAAAAAA
AAAADAAAAAAAAAAAABAA7UGKAQAAb3JnL2VjbGlwc2UvUEsBAhQDCgAAAAAA IpnKOAAAAAAA
AAAAAAAAABAAAAAAAAAAAAAQAO1BtAEAAG9yZy9lY2xpcHNlL20ybS9QSwEC FAMKAAAAAAAi
mco4AAAAAAAAAAAAAAAAFAAAAAAAAAAAABAA7UHiAQAAb3JnL2VjbGlwc2Uv bTJtL3F2dC9Q
SwECFAMKAAAAAAAimco4AAAAAAAAAAAAAAAAGAAAAAAAAAAAABAA7UEUAgAA b3JnL2VjbGlw
c2UvbTJtL3F2dC9vbWwvUEsBAhQDCgAAAAAAIpnKOAAAAAAAAAAAAAAAABwA AAAAAAAAAAAQ
AO1BSgIAAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9QSwECFAMKAAAA AAAimco4AAAA
AAAAAAAAAAAAIAAAAAAAAAAAABAA7UGEAgAAb3JnL2VjbGlwc2UvbTJtL3F2 dC9vbWwvb2Ns
L2VtZi9QSwECFAMKAAAAAAAimco4AAAAAAAAAAAAAAAAKgAAAAAAAAAAABAA 7UHCAgAAb3Jn
L2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJyYXJpZXMvUEsBAhQD CgAAAAgAIpnK
OAui6es7AAAAOwAAAAgAAAAAAAAAAAAAAKSBCgMAAC5vcHRpb25zUEsBAhQD CgAAAAgAIpnK
OCc63efDAgAAtAUAAAoAAAAAAAAAAAAAAKSBawMAAGFib3V0Lmh0bWxQSwEC FAMKAAAACAAi
mco4GjEct7QDAAAWCAAASAAAAAAAAAAAAAAApIFWBgAAb3JnL2VjbGlwc2Uv bTJtL3F2dC9v
bWwvb2NsL2VtZi9saWJyYXJpZXMvRW1mVG9vbHNMaWJyYXJ5JE1ldGFpbmZv LmNsYXNzUEsB
AhQDCgAAAAgAIpnKOMaHJ6QTCQAAEBUAAD8AAAAAAAAAAAAAAKSBcAoAAG9y Zy9lY2xpcHNl
L20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVzL0VtZlRvb2xzTGlicmFy eS5jbGFzc1BL
AQIUAwoAAAAIACKZyjihehI00gMAAKAIAABQAAAAAAAAAAAAAACkgeATAABv cmcvZWNsaXBz
ZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJhcmllcy9MaWJyYXJpZXNQbHVn aW4kUGx1Z2lu
TG9nSGFuZGxlci5jbGFzc1BLAQIUAwoAAAAIACKZyjh1Jlmh7gQAAEUKAAA/ AAAAAAAAAAAA
AACkgSAYAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJh cmllcy9MaWJy
YXJpZXNQbHVnaW4uY2xhc3NQSwECFAMKAAAACAAimco4m3SiIyMCAADJAwAA NgAAAAAAAAAA
AAAApIFrHQAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJy YXJpZXMvTG9n
Z2VyLmNsYXNzUEsBAhQDCgAAAAgAIpnKOErGuikKBQAAlwwAAEYAAAAAAAAA AAAAAKSB4h8A
AG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGlicmFyaWVzL1N0 cmluZ0xpYnJh
cnkkTWV0YWluZm8uY2xhc3NQSwECFAMKAAAACAAimco4b3QPNgMGAACoDwAA PQAAAAAAAAAA
AAAApIFQJQAAb3JnL2VjbGlwc2UvbTJtL3F2dC9vbWwvb2NsL2VtZi9saWJy YXJpZXMvU3Ry
aW5nTGlicmFyeS5jbGFzc1BLAQIUAwoAAAAIACKZyjhZd881rgIAAH4FAABA AAAAAAAAAAAA
AACkga4rAABvcmcvZWNsaXBzZS9tMm0vcXZ0L29tbC9vY2wvZW1mL2xpYnJh cmllcy9YU0RV
dGlsJE1ldGFpbmZvLmNsYXNzUEsBAhQDCgAAAAgAIpnKOFUtMFmoAgAANwYA ADcAAAAAAAAA
AAAAAKSBui4AAG9yZy9lY2xpcHNlL20ybS9xdnQvb21sL29jbC9lbWYvbGli cmFyaWVzL1hT
RFV0aWwuY2xhc3NQSwECFAMKAAAACAAimco4SwfyYC4BAAB0AgAAEQAAAAAA AAAAAAAApIG3
MQAAcGx1Z2luLnByb3BlcnRpZXNQSwECFAMKAAAACAAimco4B+kSNCQBAAC6 AwAACgAAAAAA
AAAAAAAApIEUMwAAcGx1Z2luLnhtbFBLBQYAAAAAFwAXAGgHAABgNAAAAAA=
--------------030307080202020209010904--
Previous Topic:Problem with ATL - "The feature 'lass' is not a valid feature"
Next Topic:[ATL]Loading UML models
Goto Forum:
  


Current Time: Thu Apr 25 22:44:08 GMT 2024

Powered by FUDForum. Page generated in 0.03908 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top