Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » enerated impl. class inheriting from wrong parent?
enerated impl. class inheriting from wrong parent? [message #383451] Tue, 30 March 2004 01:34 Go to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
<note>
I've just upgraded to M8 by doing a fresh install, so this may have something to
do with the way I've imported my old project into the new workspace. At the same
time I've upgraded to the latest I-build (emf-xsd-sdo-SDK-I200403250631.zip) of EMF.
</note>

I've got a project, Foo with a modeled interface MyFoo.
EMF generates for me MyFooImpl, now this is set to extend EObjectImpl and
implement MyFoo.

In another project, Bar, I've got a modeled interface MyBar extends MyFoo.
When I generate the model code for this I get:

public class MyBarImpl extends EObjectImpl implements MyBar { ... }

when I was previously (with my M7 install) getting

public class MyBarImpl extends MyFooImpl implements MyBar { ... }

which is no good at all! Since I want the methods from MyFooImpl to be
inherited, not just the interface.

I can't see anything different in either the ecore models or the genmodels
between the old (M7) and the new (M8) versions.

Any ideas what I could be doing wrong?

Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383452 is a reply to message #383451] Tue, 30 March 2004 04:57 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
"Generated impl." that subject should read . . .

Anyway, comparing the new version with what was in my old workspace, the
difference seems to be that now when I do a "Generate Model Code" the annotated
Java model is changed from:

/** @model */
public interface MyBar extends MyFoo { ... }

to this:

/** @model */
public interface MyBar extends EObject, MyFoo { ... }

so I can understand why the ...Impl classes are generated the way they are. My
question now becomes:

Why is the generator adding an explicit EObject extension to the interface,
given that MyFoo already extends EObject?

Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383454 is a reply to message #383452] Tue, 30 March 2004 11:48 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Ian,

Nothing has changed in the Java to Ecore conversion code recently and the interface
extending EObject is normal behaviour that the generator has always had. EObject
is recognized as special and should not be the cause of your problem. It sounds
like maybe the genmodel for MyFoo was not properly visible/available when MyBar was
being processed. Is it possible that your MyBar project ended up defining an
external interface for MyFoo locally rather than finding MyFoo in MyFoo's
..genmodel? That would certainly explain the results...


Ian Phillips wrote:

> "Generated impl." that subject should read . . .
>
> Anyway, comparing the new version with what was in my old workspace, the
> difference seems to be that now when I do a "Generate Model Code" the annotated
> Java model is changed from:
>
> /** @model */
> public interface MyBar extends MyFoo { ... }
>
> to this:
>
> /** @model */
> public interface MyBar extends EObject, MyFoo { ... }
>
> so I can understand why the ...Impl classes are generated the way they are. My
> question now becomes:
>
> Why is the generator adding an explicit EObject extension to the interface,
> given that MyFoo already extends EObject?
>
> Ian.
>
> --
> #ifndef __COMMON_SENSE__ | Ian Phillips
> #include <std_disclaimer> | TIBCO Software Inc.
> #endif | www.tibco.com


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: enerated impl. class inheriting from wrong parent? [message #383458 is a reply to message #383454] Tue, 30 March 2004 13:42 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
Ed,

> Nothing has changed in the Java to Ecore conversion code recently and the interface
> extending EObject is normal behaviour that the generator has always had. EObject
> is recognized as special and should not be the cause of your problem. It sounds
> like maybe the genmodel for MyFoo was not properly visible/available when MyBar was
> being processed. Is it possible that your MyBar project ended up defining an
> external interface for MyFoo locally rather than finding MyFoo in MyFoo's
> ..genmodel? That would certainly explain the results...

If I clear out everything from project Bar and then reload the genmodel and
rebuild it I can see that it is creating it's own MyFooImpl classes (no
interface though), so you're right as to what is happening. But Foo should be
visible, I have it in my plugin.xml file as a dependency (and the ...emf.ecore
and ...runtime.compailibility plugins which are required are available via being
re-exported from Foo, so it's picking bits up).

I've tried removing everything from Bar that's generated, cleaning up the Java
interfaces*, and then re-creating everything (genmodel, ecore, etc.) but I get
the same results. Is there any reason that the genmodel from Foo wouldn't be
visible to Bar?

*One other thing I've noticed is that when I generate the model code, it rewrites

public interface MyBar extends MyFoo { ... }

to

public interface MyBar extends EObject, MyFoo { ... }

which doesn't seem right. Again, it seems to me that this is part of the issue,
but I can't see why it is happening. :-(

Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383460 is a reply to message #383458] Tue, 30 March 2004 14:13 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
Ian,

Is MyFoo's project listed as a project dependency for MyBar's project? You can turn off
the extends EObject behaviour of the interface by setting the GenModel's "Root Extends
Interface" property to a null string.


Ian Phillips wrote:

> Ed,
>
> > Nothing has changed in the Java to Ecore conversion code recently and the interface
> > extending EObject is normal behaviour that the generator has always had. EObject
> > is recognized as special and should not be the cause of your problem. It sounds
> > like maybe the genmodel for MyFoo was not properly visible/available when MyBar was
> > being processed. Is it possible that your MyBar project ended up defining an
> > external interface for MyFoo locally rather than finding MyFoo in MyFoo's
> > ..genmodel? That would certainly explain the results...
>
> If I clear out everything from project Bar and then reload the genmodel and
> rebuild it I can see that it is creating it's own MyFooImpl classes (no
> interface though), so you're right as to what is happening. But Foo should be
> visible, I have it in my plugin.xml file as a dependency (and the ...emf.ecore
> and ...runtime.compailibility plugins which are required are available via being
> re-exported from Foo, so it's picking bits up).
>
> I've tried removing everything from Bar that's generated, cleaning up the Java
> interfaces*, and then re-creating everything (genmodel, ecore, etc.) but I get
> the same results. Is there any reason that the genmodel from Foo wouldn't be
> visible to Bar?
>
> *One other thing I've noticed is that when I generate the model code, it rewrites
>
> public interface MyBar extends MyFoo { ... }
>
> to
>
> public interface MyBar extends EObject, MyFoo { ... }
>
> which doesn't seem right. Again, it seems to me that this is part of the issue,
> but I can't see why it is happening. :-(
>
> Ian.
>
> --
> #ifndef __COMMON_SENSE__ | Ian Phillips
> #include <std_disclaimer> | TIBCO Software Inc.
> #endif | www.tibco.com


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: enerated impl. class inheriting from wrong parent? [message #383461 is a reply to message #383460] Tue, 30 March 2004 14:29 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
Ed,

> Is MyFoo's project listed as a project dependency for MyBar's project? You can turn off
> the extends EObject behaviour of the interface by setting the GenModel's "Root Extends
> Interface" property to a null string.

Yes, that helped. I think I'm almost there! It's now no longer rewriting the
MyBar interfaces. It still seems to want to generate it's own MyFooImpl classes
in the Bar project however. It's an easy enough work-around, simply delete the
spurious classes and then a quick "ctrl-1" to correct the imports and it's OK.

Now when I regenerate the model code it seems to be OK. I'm guessing that I've
still got something set up incorrectly somewhere, otherwise why that extra step,
but it seems to be working for now.

Thanks for all your help!

Cheers,
Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383463 is a reply to message #383461] Tue, 30 March 2004 16:04 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: ekkehard.gentz-software.de

hi ian,
if I understand you right:
project X references packages from project Y.
if you generate X from genmodel, then these Y-packages will generated
in X, too.
I had the same effect. for me it happens using Omondo for the emf
classdiagram
and inserting the packages there.
then omondo generates the genmodel.
ed helps me there and explained, that for those packages an entry
usedGenPackages... must exist in the X genmodel which refers to Y genmodel.
omondo generated the complete package-info imto my X genmodel, so the emf
generator
generates these packages into X.
perhaps the same reason for you ?
regards
ekkehard
"Ian Phillips" <ianp@ianp.org> schrieb im Newsbeitrag
news:c4c02t$mu4$1@eclipse.org...
> Ed,
>
> > Is MyFoo's project listed as a project dependency for MyBar's project?
You can turn off
> > the extends EObject behaviour of the interface by setting the GenModel's
"Root Extends
> > Interface" property to a null string.
>
> Yes, that helped. I think I'm almost there! It's now no longer rewriting
the
> MyBar interfaces. It still seems to want to generate it's own MyFooImpl
classes
> in the Bar project however. It's an easy enough work-around, simply delete
the
> spurious classes and then a quick "ctrl-1" to correct the imports and it's
OK.
>
> Now when I regenerate the model code it seems to be OK. I'm guessing that
I've
> still got something set up incorrectly somewhere, otherwise why that extra
step,
> but it seems to be working for now.
>
> Thanks for all your help!
>
> Cheers,
> Ian.
>
> --
> #ifndef __COMMON_SENSE__ | Ian Phillips
> #include <std_disclaimer> | TIBCO Software Inc.
> #endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383464 is a reply to message #383463] Tue, 30 March 2004 17:02 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
Hi Ekkhard,

I see what you mean.

My problem here is that Eclipse won't let me add project Y as a requirement,
since it's doing all of this via the plugin.xml file, and not the "standard"
project dependency mechanism. This means that when I create my genmodel I have
no way of adding the project reference to it.

I'm going to try and find the relevant XML and then just add it by hand, instead
of using the generator editor. If this does turn out to be the case this seems
like a bug.

Of course, it could still be me doing something wrong!

Ian.


ekkehard wrote:
> hi ian,
> if I understand you right:
> project X references packages from project Y.
> if you generate X from genmodel, then these Y-packages will generated
> in X, too.
> I had the same effect. for me it happens using Omondo for the emf
> classdiagram
> and inserting the packages there.
> then omondo generates the genmodel.
> ed helps me there and explained, that for those packages an entry
> usedGenPackages... must exist in the X genmodel which refers to Y genmodel.
> omondo generated the complete package-info imto my X genmodel, so the emf
> generator
> generates these packages into X.
> perhaps the same reason for you ?
> regards
> ekkehard
> "Ian Phillips" <ianp@ianp.org> schrieb im Newsbeitrag
> news:c4c02t$mu4$1@eclipse.org...
>
>>Ed,
>>
>>
>>>Is MyFoo's project listed as a project dependency for MyBar's project?
>
> You can turn off
>
>>>the extends EObject behaviour of the interface by setting the GenModel's
>
> "Root Extends
>
>>>Interface" property to a null string.
>>
>>Yes, that helped. I think I'm almost there! It's now no longer rewriting
>
> the
>
>>MyBar interfaces. It still seems to want to generate it's own MyFooImpl
>
> classes
>
>>in the Bar project however. It's an easy enough work-around, simply delete
>
> the
>
>>spurious classes and then a quick "ctrl-1" to correct the imports and it's
>
> OK.
>
>>Now when I regenerate the model code it seems to be OK. I'm guessing that
>
> I've
>
>>still got something set up incorrectly somewhere, otherwise why that extra
>
> step,
>
>>but it seems to be working for now.
>>
>>Thanks for all your help!
>>
>>Cheers,
>>Ian.
>>
>>--
>>#ifndef __COMMON_SENSE__ | Ian Phillips
>>#include <std_disclaimer> | TIBCO Software Inc.
>>#endif | www.tibco.com
>
>
>
>


--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: enerated impl. class inheriting from wrong parent? [message #383465 is a reply to message #383464] Tue, 30 March 2004 17:23 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
Hi Ekkhard,

I found your earlier thread, it helped me to understand what _should_ be
happening. Now I just need to work out why EMF is doing the wrong thing!

My guess is a problem with the way the "standard" plugin dependencies interact
with those listed in "plugin.xml" but I'll keep looking...

Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Re: Generated impl. class inheriting from wrong parent? [message #383592 is a reply to message #383465] Tue, 30 March 2004 19:43 Go to previous messageGo to next message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
This is a multi-part message in MIME format.
--------------060006040103080504010709
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

I'm trying to narrow down what (if anything) I'm doing wrong. So, starting with
a fresh install of eclipse from these versions:

eclipse-SDK-I20040326-linux-gtk.zip
emf-xsd-sdo-SDK-I200403250631.zip

and a new, empty workspace, I followed these steps:

1. create new EMFProject FooProject
create as empty project
2. create package foo
3. create interface IFoo
add @model tag to interface
add single attribute as: public String getValue();
add @model tag to attribute
4. create EMFModel foo.genmodel
load from annotated Java
select package foo
5. add model plug-in class: foo.fooPlugin
6. run "Generate Model Code"
7. create new EMFProject BarProject
create as empty project
8. open BarProject properties
add dependency on FooProject
9. create package bar
10. create interface IBar extends IFoo
add @model tag to interface
add single attribute as: public String getDrink()
/* well, it is a Bar after all... */
add @model tag to attribute
11. create EMFModel bar.genmodel
load from annotated Java
select package bar
NOTE: at no point do I get the option to select or reference package foo
12. add model plug-in class: bar.barPlugin
13. run "Generate Model Code"



as before, it creates a bunch o incorrect classes in BarProject. The actual
results are attached. You could tell it was going to go wrong when it got
to step 13 couldn't you?



Should I file this as a bug? As it seems that I'm doing the simplest possib;e
thing with the new build and it isn't working.

Cheers,
Ian.

--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com


--------------060006040103080504010709
Content-Type: application/gzip;
name="BarProject.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="BarProject.tar.gz"

H4sICGvMaUACA0JhclByb2plY3QudGFyAO19a3MbR5JgQaIsEqZelC3bsi23 INkEJBIvvub4
0lAk6MEOTXlJymF540LXBJpkr0E0rrspiutQ3M+5iPs0sxMx2r2Ju7nP90Pu Z1xcZr26+gU0
RBCkdECERKC7KisrKytflVX1VLd/tK1/NmpugZzVpwifuZkZ9nd22veXf0ip WJwqT03PFstT
pFiaKpbKRJshffgcOa5uaxox9WarXblO70VHxN/35PPUG/9W42jfbOZbttUy bNc0nF6O/+z0
dNz4l8pTM4Hxn50uzxGtOBj/M/8UHj1Ka4+0xZrVOrHN/QN3mf4s+H7jo4fV +kP4W0inH2hL
PfgAmB1Lq1l1Q6sbr4wGMt08PNS0NUvbfLaj1Q705r6huQeG5rGktmu4x4bR hMemozXMpqHp
zToWolUz3377rVbZXNOerWs7Wyub2xsrO5U17cetZz9WtnaqlW0NCmRovTyt 8IP+K0DQmsax
aOREa+qHxoSmt1oGQrYoBvjV2qNf98wGa5QhSMHgc9oVKH7kMKRVmPleEa13 xE9CqZ5hzUTL
JhBWW9J2Yb79AMRqpIE8r8y6YfMXx8fHeeO1fthqGHnL3k+nyeDTR/mPkh+/ nIn+byP/izOz
JSH/Z0oleF6anp6dGsj/fnwWn7w+bGivDNsxreZSppQvZkDYgSwzm/tLmec7 65O/yzxZTi9y
3lgznJpttlwovJweWURRueyx0GKBPoAXNevw0Gi6y6hI2Dd4yGE4+L2g/tg9 Mhv17ZZRgx/8
1ypUAyGLD3gzIBHyRq1hthwj/891N1+zbPiiv9JpecOWjUMF3d4/wlYd9rPg +71YCLTAH3AE
oDX3yDZYUfY9vm32Hpum5RCWrC776CPaxZ3/jl07Gx+gC/t/Zq48i/b/7MD+ P5fxB91cOM/x
5/b/NHDCYPzPafyPXLNRON/xn5kqD+b/uY4/PN8+Nt3aAVVzZ2r/zcHA+8e/ DOWLA/vvYvr/
Lb32qw6OObBKHlllIZ02D1uW7dInj7yfe5aVr65blvdENaOMwz34jnZUZbWh O85Ch0LPdpFJ
AZbA+P7kpLZrgFs5CR63PVm3atrkJMV+B7zvxd1lxr9g3C0DKjb1yQ/R7Rx3 NLN5YNimqzdr
hnZgGrZu1w7ASYe6VVdzjlqIiMO8er3R0H77fcNs/qo9qFsMpia+ZC2KVe4N VgXf32y+sn5l
7v8ixgOWa7pj/Pzzz0hP+KUdGu6BVafoGDrAqWHPRWCBIjeBkJAlXTDANWjk gL7Ta+6R3vCX
Z21jeYxGgK1ZMww027WjFn0f2UksftSEYcOoh9WcbB5B/8BcPWq4munANzBe m0adonF8YAKO
JiMEL8PbdphskANhNOuhYfi9YzAuQRnDmIY+3jeagIxr1Bk7He02zBrvmZQ6 2m9pDT50rPHD
BrUGNDPqjFBaS4Bk72P5QXkdxpK9VFGiTwr0L5DUBQpDizAgLiDpdYThwH8A UwaQXbUNgObA
wMAoOGwIgpQ7O7QZRSUtszlOTfyYe1pWxV1bWtKQB9Qy+PGXUXqeN6qb2zsr m6uVBVnhTZr9
HyIDTB4neia0mQKcP62mwdnRYbyqKby6oJmudmIajTpyp+7yx70hK2uVB/ts xw1NFDFLtN0T
QC2yfyg38skGikk2T6ZwUYft86/q4DBpSV+yb0tKwbxBn2VzC74Bl4XhvdV0 dROwAa6AoVeH
OcgCjFPV2vuGS7+YeyBOqmvZXLAKfpAQKr9Un65szUeUw08Vymkm/rekZfFH zuvLQmQNThs+
EEu0NayYRSi56DpIAlFBcLsfAGipdwZQN/Z0+LYKcLLKkEVD4qzFmThU5E3o CYc+L2omau1N
OvwtSf3wDN7iE9CvAcyma9gtgEiVlKeLND0k8sYXjcNlHKDFAnwZTzpBdzC8 b2IkGMM2OoZO
pDBA+i+IguwhohHWZ8cmfAdMD80mzL1Y6RsrB1q6rR+KrmFtUMswBWIkuSo2 ekoqqkcfeCZH
O/soFxIjua6EkJxOdGZaIenD++gNwZmxDEzJAcu8K6n6zjIoQPG/82QZjv1F 4poJbffIZWuV
3IwG9clIBl04OdZPLjBfRdOzK9bqzgBSVJOwgZKx0xut4AUsBquGPYr/rNT1 FnDMOvieln1y
ijhQp/jPTGk6EP8pzUyVBvGfDz7+g2uDVjPftFxz7yTP+W0hWelN/GNi8WTl Ucbn/SxdhUcd
g1Pdx514IxpvJRyAEoEmnv5Apa/OK3FnksYPugocnUUsxk8uzXjtAmxHC1Mx ebgm/77Fa8TA
7HEx2JfAjZ/C5xfAEYbZ8QHwn2EzS4ZTAi0avdUCjPXdhiE53D1pGf4IZS9M MTYtXPvIEDPC
VJtAXAyTo+iFeYWoAtTMwOBy88I/gboIDvWGIu0ZYdeyGgZi7XBGWLfsHQCW jTWOkDl41zoE
d4SFCBRdiIgWKIAEzaAHEeEoBVZW+g8cMRmNwsBRhSMSjjstxEcr9vSGY8R5 DTvS8KWkBYDG
Pp3FPGevrSh1+iOIvIA27TH/viT7iUmC0YHa7n3zAO1Yx6ueNMnGRom6d+qi 24Ky79BWMrs/
skVevGOjb9qKfCni+YTlwoZ6WJxresMtzIvjrpsivYBhKQ6RDlw32LWXJ8Iw YbQTRBOGFMcr
wtfK8qI5hYfz0gOUs57Xl9M1luKU69VuwRh4AplZH+N8zQ1tFsrvvuDYm+78 e85h7fx8zbHY
QsIx2i1NsLIcswESfb8JViCdDo4MBZgu6BZobO+oQRf9WBmdufWgGJq+pTca HKjpOO9xLZEt
KjqU87oIACgMoVDP75ULWr0LN/jkRHfRm3caV+EcaL4I1mBco8ZV0OqdxlWV yb0aV6ZuGe2x
z70etB7RrgsyBRVJsoCT30xPfyDxH/j3I9sKdPrUnyTxn+lSMP+nNFeaGuR/ X/z4T3TwhMZN
bFzEPzTyVcZKIgXa6hyvqfywzup0LInRp/yW4VhHds3YsEAWU/C8SztK1L0G YsbWQRmYzf2G
4YK4EWIMN6PwAAXj+Q4xnvgIS2QoZc9syrQdOa9kIEV2NRw/+aNhtMA7A1rL GL/AvQ8hCB4/
Ydh7eIvAgbZEBa58gYb3RemAbb7CNRjeg6pfybQEY0WqOp41xdzdPlBZoZ+i b5yjFmggpG+A
tbV/+o/ab28SLdV7fB4MZ1XYNPK4vbf5MuGGE6rjYF/Bk2C0CbyIUs1iVD9E ukTzsaRO9+TY
8bIJAxZYgBKLu8usDQxg90/mMFkZ6K8UmAw3n9D09S82nJtX37ftRMeO+Jz5 ulRs3CqWW30E
PX0cFU0IhRgKQfw0yIY0qdJ2KHWLyhDlPRd5kl4FmBaHxuEuD5hy2kcQixb2 B28Y8Zdo6DMc
Qn4zWH99z+1/FAvnvv+jODvY/3Ge4++tF6EYOp0n2N7/K03NFOeC+z/mZgfr /+/B+r/pW0Hn
68s8HLIQeCxXe5THGHV8hw0jK65rm7tHrrHQi50l3qpw23I0gaCiTIpEOQEr zRgzizmdaGQx
iNzK6trDlIv1CmaevaQ+lHioxcOe5xk6ZTxjHTOtZfI6i6udAxLAaB2QaJMV EDV6E2CA75uO
a9hGne7cEXB4yLs9++W3aGX7RAs9eYP7DKgp6d/yImbi862q9kpvHCk+a2t5 03KNeX4wiW1j
DP5YP8Gwds3zdQUA09FembpiCQo4YmGbp5+IfVBm08R1YdPN5t5M8G1CesOx NLA69yz70JER
dShj6g3zX3ysz5udwHV525f6KcknikhAe3Q/iN4A5OuYiQIFe7SEixH2hEMT Wm3x5tEDY3P7
JQyEP02S0SghY/rncERMgDcxoXlC1kvmiI0LnH2QxctTqEJ/YfSWxMJ9zIzy Zgp8xc1rkk8M
xgn+icWDdaZkK7ZTjtZky0wnmoXZGI521LKaYt8arizjGT5OXtO2qfAT9dlz o1nDE4V0GzoC
/XD2TLajB7fusAxZmBec8wEqPA3WdwWf4rlEe7hYVLdohnDzBCrDFwOoAK3v KJDqQDsjboJg
b2iabkQLdRNnceNkAkpo6Hw2GobEiG8UNB1vcpmuYzT2VJHwbM9XhFHedfwt Ik0m6IqWbJnS
U8A50F8ZWtNytRMDdDgexaRMWyanTNsTSYy+bBsVkzyClWjzXl1KJsNrFKu5 bM1N8AbyieYe
W8B3RsuZl9xguPokE8hstdFhXAFd8AscBpRjIUYMxkoiZBtqaxMYtUGR35QQ xp2o1g5BsNrG
HvrSco0Oxtqh2kJvUtZUx6HafIXBLCkRPeaga4pIXH1vj2ZmA2dL5OkyJpJf 4sulIR0FBfHe
ycVoqcYoyCcobihDm0IRc1L0MXziCyaJBymmCpOmgXQnIXRyMlvBq5ELSfC8 EJeYkpRVk+JY
R9VASaGgPdvFzXKop7jWVHk2kNIIn4AVBuOuYL+kYobvc9kO6AmcfClYAtwT LWnteZFl5NMu
ak8Vwc0SwpLTICQ7fHW3YaJqpXlRMzx3ZGEfrfIxHLYQBl4G4BbKdtcICNMY 0G34UgHvhW5V
z6V/CpZNAW6fwmjSvK+IWK9nSp8DdtINExi+XLPBPozCM+sVznk407zAbWC5 GhTSG+sGOzqJ
JQxmi7lzpThmv0VRXPoN/cfOs/sQQ+9XJMW91zkks8jW5qIkex72omcornIl 3MlSZM5WtIJX
NHvAxvIsxf0jHaQTPcaRGy5CtaJFB9rV9HQxbtVCc4gaK31Y8HhlmXUtRtKF lBwnmNByyv5u
hZZh4c0XNmmQgHqydW6g7fG55sFRnXKeFMPSd3EDt5JZyd/J+Zz1ak5oWPbl y7Wt6uYffQpG
dbb9wNefPTtfVqwq9mU8Owodw5aI23i10qr2uJZzp2KvMia9+NzZRllGmmGc jlFc6idzmFO9
9/4wB3q/hosnhIJFs/JDReFEfO78CJa3+ZpaOz9uVdarPwcLgA2UjbbuVup1 5lljhj5NG+fz
JGJSMFWFhTEDH1WUXq9n0XbPS2WRi+2ROv/EzFvQAIKG58PSAWYv6aKigY6x hwOA4ZPFP9N0
O19j3zP4IzOh3a9uv1x5ur2ztbK6w35VN3cqW+srqyrZKEBv+gZ094RGgx/C XOIaGpxZfJWp
YyFoCQNmE1pxQiuxdugRstXKJm/2p2cbKzvVjQqguf1y9Q8rm99XVp7iT3z5 fHO7srPj/a6u
0WLPN6v/+Jw/WqtsVX+qrPlEiEIGKU2gInz3yAA/MhRYPBUipKPNUwwCIk5k Hijcw5c4Wfaf
Yk6nP7j1P2SJ06/8JNz/WZwO5v/NlmYH6z/v6fpP54WeJDs7mdrrzdlhIRcj 2VqPikivFnx4
PjzdYL+4y3c07C7LTfZt1n8WW3KX6Z7VaFjHGGEU2oQFr0TDRn2e1jhq0Cqa ttgwl5UdFbR/
Yoo/ABlPhT/NxaffWDL+YgFqMXbggBYLLcEP7VajBGS5DoWCObgGRXd1RO4b FRniNIAoyCc2
DkhswQQJ4Duu6UKr9TAE5rUXazhpv7fAjrM7bUdl6ZRMm2rURn5ZWausrzzf 2Ildg1L20X4w
5OAUoLYEdNxPiT6tBQpcBKtGLLf01y0RCHE3ydimPMM3UIbd+6j9vHkZKOp/ aIKPqcKNIZTp
ePcfM+rIOAIvjmfTOKa/VTT5K6tRX+OcqWBMz+Lij0Vl/yFrhqoutoz/fGTC DACnwJc8xwqd
0PTekH6h7sSEpj7Og6k8ETxNjTvYExLVCYZa7hzGne/XNL433GxYz2oG/zIh HW40thuvfPuR
xUFzxpqBi2P1EJjqWlYACh05F3XcHCfQfNzmUY9L2+w9NtZOmvqhWcOeed0Q 6J8THxvbnejM
BwQY7CfUF+dDZznd+HzLSXQWYsYkaiDECGz7RiAAqv9D8LzptB+Ec6a5X5++ E8VZFyVe/ae0
kBZG1dm+iMTmMiJoxDErTnvCVcV9/nteu+8vmQf1oDecLBPbCYQQI8M5DghX jq4lgkGB+B8M
1I+29foEzwTluFMrKu/VUGIv7NHToz1cNJcnaaJSVN9kgxAUSvHzXtktTdmM xkg5r2ViywRp
7X87nhv3vVOO6fR1QdkAKkzH9zrhvU3+r3K+z1nm/xanit79P+L8r+Lg/rf3 M/7zqMenvScI
0/hP8+pFSq5yctepUnLVE7JkSq760J+SK9Z2f4tPRK2HMlH7ei6Vgvt5O8x8 vV6cV0MplBXO
M/0TaRkkPMg6+hDr0Mk6wRNnxGnNIXvBPbCtY6rgqg08pqixwm+kqryuGXS7 WDZDQz3skIyM
9ljzUKWLXzl4lBnHVUOaH4bRIFw+lr3I5Dof53V240CDeSpdFHrKaCA/6JtS QYZdFqJSWs4l
tUJkVrHUCu+4qsjUCpFh5jvZ6kzQrhst26j5wmtd5s3hbtH43sSfDCdXupRp P9jd9//H/j8R
se/D+l9pam4utP43NbD/3vv1v3e9CCiJ0cf0/lmtytHzqLpaleu4MqbvOnga hiuWyMSKmLQL
vR75VsnwjKzf+rskwlH7YJZEaHKO33XnXRxoswj5r+wu6s0BUB3kf7lYKgXl f3lqkP/xvp7/
pAh0uRU4+enZXZyarWwr8B2OjdczBMTtGZ2UTXc/gAduqO570NOPTnKIP4qm Dx69im34UCem
YoPu/kLsyTrsgMDQSY/vdvNPoiN1umsxhgghn3Wh7dlBgu/59YBit5t3/HPP Dw1K3mL8MMc4
tQvpgG830IQD/e/pf2FH9UX/z5XKM6HzH+dmBvr//df/Z3VQR2JrIryLPGBN 1Nh9iKDEajXD
cSzb21uEGzjkhiPXAjejZRsOeGXh1ErvTo4JmTSpvOFJmqipOpQ0mkeHwRcY 9acv6zoghHsV
IhIzk5gzQtQnM2eE5gieJRJtzgiuaOqHZ3p0Il+HpltBwGLJQNcy0VmTKkZO Czv1fKvaF9To
bgFE7sB1W/OFAkpVxsOJUe0bGcWumfa0jDdW+3Cti8qLirGqGqrqUVVsl3h0 P5QprZl1OdPH
Q6nRIjoTOJ2czdzeZdOGGox+6+/hAxnT6EA4mM4a7q8DYpWi6QHSBo8AhLF0 ZKqMl1LOh5hS
yH/RYC/pkCx7WPTl5XplZef5VuXl6rPnm5g2XTzlSIvFqcD9Amc30iJrJOlI U9ckyUg/XdmK
p4dQQSoteLSTp4yLcGevs8a7GF8v4wo6EjHaj+N61yUfSxfxnPgY+xnk48ju 4rRt55OqXI7D
2tu7MxI7qjFotLvPNuFdFcETEBa6Ige9PkUeUhAkS+y+l7MnUAAxf/sxlIra eSF2ZCQSEvHn
NSycgslOe5FHT5gs5gbc0MUZbLVH2DCUt5YyolRGS86MfEmhHdnE2Wn02J6a cpyBaN5pc/1Y
L66uf8f2O4cMA2dPeLEkES8dhFXe5/gP3Vneo6s/ksR/4Hsw/jNbnBrEf/ry iYzmJF6wD16O
ygRsdEiBWiKB1e6JmPVtASfBPrOFYN1tw2VyLnK/ZGfl32v7l50Tz5ARVxX5 UQuo/wgEEm+9
ZLSK3PL2im+a8Z/QHp7/bGx7yWOd8n9K3vyfmSvP4vnf0zCDBvO/D5/FJ68P G9orw3ZMq7mU
KeWLGWDlmlUHllnKrGyvVquZJ8vpRcoU8zIG+PrQnJeVylCJ8h2Aajrz8G5J hL6Oj4/z1uF+
HuRH4ecfqhlRxPEXOZ6iJcrADFBsY7t2YBzqk8JQUYFTPHx1hVhCACCaEEi5 UKHRNhpGW6Jx
LQqiiYfBLEWE5eANO0eGFcbJu2h4GcKOBgjPY+R1KcMJQV+KBujxK5rhHQ+z lHnAkkwyTA4s
GuFTzsIwpX0u4LLTVjRjRy21prs6PtAS0QDw4Oe3ZAq0WwW1X113lJrJPvt5 k77wbGix8L6U
wTN+sFFo0sc8ywP78CLbf3nQKVT99k3+z5TV+x9K1P6bGdh/F0r+C6aY/95o /kC96FOqgK4E
uQJaINK5qsA0wxzcNXp+MnisS5mCn+sZeKNuutFl8viKFqSFLLtNMcv2ILJL rul1OdW1pYxX
kmO0KbWTWpRHJXAmygvCWMOh9zwVihasyAJedyw7ogpdwmSHC/BqohjTe3gq srnPSLfMDPHF
gu8hloJh+FEcTNziqpNpQeX0MNakwfSQUIVQc5Ufh0bfKMjxktQDzYjblrCC 1Jm0BP8V1pta
EEiBadACb7rgtd0FMqjWuO5Ueo16LTQp3j/VpswEflEVTLMet9Ex/78UvP9z pjg1sP8vgPx/
vrM++Tsq/59wEesVnYKi8CaN3m+6+zQSdJHTi4znmHEO0hBXob9lz1A4Mklm 4oGRqvRkPi7D
A18B0kL9CIk46UHjTzx4NX4OqV/EPvRftwbiB2e8zc5xEeKCR0MYhkuZ2FtP 8UhqALNrNkz3
BAj6Gqt5FnEnWDLCElV1seAhRVFkbXKoDXPX1u0Tbq/zdwVPmDJ4/PUjTzLy erwBAZK6Bxiy
oaRuWWbTjcE0LyMRL3lISch7EWES6fpHthmdGyFL+AbICytnNOHBCIyQg7jY gq8DY/508l8w
S8/b6O7+N3hemp6eG9z/dl7jj2sA5zz+M+Xp8mD8z3H88WrtwvmN/2y5NDcY //Mef3i3Utdb
riH3g1HN3Gv7vzxTLvvHv1yeLU4P7P9+fP73//3v/xP+5Ml4ityNH/mrJJUi MzS8wiw/GmZh
5/YW2Lm9bN+4vxra1FfJ5RQZZQEOZsilyM0N/0aDhRT5mJbYpud0pMgnGyou 7CkU+mgRszuX
U+RyNvdTigytQp0UuYGL1YWG3twvVGzbsq+S0RT5r8+b/Ky+Or0hxmzwK+Bt axfsfGdeS49g
6pi35KnV9CaerbFriFP+6ukRuj4ZfqFl8aYu/1kcGDbPKTdT8JPclW1KPI0F N6vhASM0NWWY
XE+RT7MbXh9YuH4h99MoGSE30+QauQV93DCbxiZNc9vRoQMpMoY3ojd+0m0T f/OHQ7g9KEW+
2ogfSiDjTdPhP9YtumARwIAv6+Z+SZH77ckIVBwmX8DAsE4iViEwKXKNpZ9w PFLkH7Mb7VmJ
HYFp2Au5DgU5SGQNmMb7BmCQGHaK3PJ2f0ncctnkbYr6MI6y/if8egvWefk4 vU3Pkl83cZTu
hCUrzbe4Ty6RIZiNl8gouUI+gm9D5CoZhr8fkRQwQxr+/xh+TZPL8I2Q9N/I tRdjN96Ssb/T
Wrd5SQKlPoH/R1kp8im5A39T5DPyOYewDBAuSQh3YyHcYaU4BPz2JfkK3qfI 1+TeqWF9QzQK
6z7JRPbsbuKePTg1hIenhvAtLfXde+//hSXvO+r9pPq/7Lv/GfV/qTTI/+mz /n8Isjs88lTv
3wyK9IQqPam2TqfI/+mNtt4JK9gsSvcc6uqjZt3YAy3qZcCjxtZkX/ui7Efj lf1Vcj0NouVG
t8o+xlYarlvCmpoK60QaciuIBK5clNb+Tx1V/ynpPUw+A8UILzgaKfJNBzyh V7QdgJEi97Ib
Il0xugNJbJevFdsl7cEDTcDPcluF9gLq+7onGH1qO6Wo7RRV3Ki0fQrl4xdj 196Sm0yh3FIU
ypiiUG5T9ZKiioVBUFQsQPg8FoJQsQwCfvuC3KUqlqntMKx7XcDy1PWdHsBi eGVo+QeDQOzF
0v/e7VJnv/5XnJubCsR/5kqlgf7vr/4HJ25YjHwbrf91WwF9lVwBMIvwOqni /y9n66aHFTc9
yEpmJTONLA2VONV8ndxA1XwzsWoeFrm6oJ6zuTBQKOHIEj7lMiLT7z9KUb2S ohrlMmgTT6M8
gt9E1Si3mNwdk3L3MnVXQOoOAQagSfDvHXKDu4H45vN281+9i/fUUqBj/tf0 bMD+L5ZnBuf/
9Xf+F8Gu8Y98GylwL0YKyJogBq7QPfr+iJDk/murFk0idelVDiAooOlhlAdX +fb5FLkVWiEe
Jtdgsnh71mEuyA3hkQ7IEG6qBCujirMFOjMW3mRJ5xGWfLqyBUafsgUVi4c2 asZLt8/Uo9OV
PbxX0cQcwhoAEERBAMlRtKrS5B65P0puklsjaAwlljJX+T6+FNEiolZ8TNjR GkBy36a/FHkY
X8U7toO3AdKVAfD2ffl644UWfbLsRuAoGUWijYBl6smzSyBcvwD71/t9HX7f CLy/Se3KL0DK
3ZbPP4Hfnyq/78DvzwK/Pw/8/sJX/wq0chfs4xRYyIQ8ptKTkKv/RjJ/IQ// TAt9S01WNGHn
AfUvaYyHidZxkqV/cyCS8e9j/nuCTFK+ytOShffO/otLi3knbdBJ/heD9l95 qjQ7kP/9lf93
gf/bjTzVBvmYyHjlh3VeqcJesl9UV0jjquCPQlBRI3iuyiqsGU7NNlsgSxak aKU+dRrExjCI
IB+G1IAcZgf3PAT9dZ8FBOJ6QC25UXINLbnr3QZZ7rUHDYKvLnGH6d9NT4PR BdkIlZkpMlpt
Ng2bp6nCe3/TMvpAqD99hdp/V+HXOjynXvejx2/JyKN/IzeYMLsJ/1+n9uNz KP0C5OAvVK4K
H32MWo74De3GFJWZWO8zajGm6ROUxiMD5/nD9f+pIXOe+R/FqUH+x3mPf+AO oHd2BDut/8yW
gus/5dLg/uc+6/9/CLgwvgwOUP3j0b4CLV4Jpntc9/sF1B+MWg3CRY9h1O3p bvXxFxsxyOK6
E1uCT5En2fZOUa7jcsNX7epfJWOAduAuGdq/6igqz49Bk94B7e5lGYAy504T XWUYBZX6BToW
YHxlPC857oqYq+SrFLkT9KbZXWlXyT1wX5UrZIaJ1m6pKYMh+AfMvcPU+Jg4 1Sj4Pt9hP8aB
rOyqNLBuoqBuROMFEMA3wsYep8iXbe6vGSaTYMyJq9ZGwWf6DmsV0+RrxPMj tjUHDbEOfu6t
0B32V8lMmswijw2ZdBBub4TKLEj/Vq5oRnjrQGLlwhcYtHgf2nPwF8kSjvFy RIDl98Ad3u0s
8GNNXvbSIbgxStZIZYSskPWA+Xg76ua2+0ok8YpvbWqKWo3w9NFb8vGfee6J 8HbvQaVvyDW5
NHUFA6HU0ERXnAH4DZ5i2SeP/x2X8/4bCpXPFAEz9uiv5Ms//Y18/eJv5JsX Y/ffkodQMpsi
fyUTY3n476+k9JaU/y6bZrbpOEyNLAz9I9o8s02f8Obx2xSZppjDBOKIPBX2 7t/I7Iu3ZG7j
8Z8C3ZmGXs8o8NIc3jD8+h35DxTePFng8MqcMsPQgSf/i6x40FiEdVkhzDCH NAJYLECpVYol
QnnI4wlD/0q+D0L4A4VwiRL0D/Rb9aLpf/VgxbPT/1PB+G+5OD010P991f+T 7UKYnfS/r/Dl
CEEH+j+NsreSVIqnzXXLEqWHTacKtgMKxdQvMDtNh92IB7+vsVcmaJN/wd9J c05upYjVv6Un
THxID5Pb7VaYPkXX+87p7CBlHBbaRZ2T5Ubcu5AR5k+ZOcW7smo1XbwoByhh Sj4Ivftj51SW
LoYxF6FyVUEZULmoH1kW5yVQCcNU8aRppiEqA/b3Gv07TAPfN6h+9aWNjL0Y ++Qt+ezvcuGO
KZBroPy8tBEMYqPS+QrUJoOgLBMChG9iITAVpAHOUS1/k7BlTOZ4cEoID0+N A9irp4QwHjMC
ySFkYyA8SgzhMS01cb76X94Bd8ol4M7nPwXj/8W5Ummg//ud/3ErNPJU83/X TvN7t5b5g/0d
1O/wRcj8SMer4ytkNA2i9Fq36lj1LDkNQWWNqleXJVKlSdTzpwE1dM13Z+OQ ty6Af711AUUk
jbwY+/gtuc5E0g0lZ++mIpJu0aySIZq7FwXhTkII/ryTwefix39FbOSM5f9U qRiS/7Ozg/hv
f+V/KTpylopWC5d92YLg3V2nOTMvK2uV9ZXnGzsxaT9X6swzSKomQP4+T5aF fmAatm7XDk7k
ae+Ya+5dPe1oZrNmNR3TQZcApOeNeOEPEgtDQ2OnEf5eWPFshP/dLnMMh5vG Mf86ZHyP++Ti
g+OhswoXfonMrx8WJzGlyKPksECH8N4xb37I2O4WnYitij+xLvJ0sshdiB8Z z5sONjXZRVMI
+COj6mx3XfEXJZwd0tRCsgZcxUvgvDFXcYi7iiO4OAL6NEXjhormvf5i7OZb cvvvPItJaF4N
cz2l5r1Dde4Qj5KGIXyZEEKKO5WngXCPhoxHiW/XQFsIIkp7hweUcT1gmEZl mas6SmOol6mT
2wmWxkopsJizit8egtN4Cb5/B65f76BmSY5CfURzyk7XbwaVpZX1Clb+1CNa oKWKAyPqw7P/
lDuAzzz/uzg7NxO0/6YG+z/7bP99GbFq33X+t7reH7l86YVxE+VR+/IKvI0a GC5P48EIN2gC
ASZNJz8iIX45PuEScCjFWd3Dr6Q4p3iKM9u84e3eL1CRDE4y7i9/S27+hYyx hdfbcqXyrtwr
x9KM6RbzoRTPwUvxoO3ds5v/Xg5iDzaBdYr/zU1Nh/Z/lAfxv/7O/2w4uxam v9Yp4Ze5gt5M
v+HPk0Wzmx3QlyCFNk4kyFk/irP+ErlGU4Jx1iffK/04piN02/QW+CM4pbGi i37n7RQpZf9p
o4s6PLn4U0xmuiM9ws8xuYP2NlAcs6FzXcGXkg4E9YgEy/zJTnTtJkUaoG+f NMGDBpe1y8zk
Dvnj34Zzl0vywJMv+M7pNBeZV+JE5iUQmdf/Qm4ykXlLisyv6EkcY3I1a1RW nqNmOLhSjy7/
D4LLaMGqk9BWXtmBPQJS9iMuZ+9yIHmeDTL0r+SrPxH/HuffKXWHeN0R5YAU JQckVHdVojxM
91dfojW+lVk5fyFf/TlQ5aGscp+Hd8Um6oeEJWh/B7/GkyVoR8v/3t4B0v39 H7PlucH5X335
DO7/GNz/Mbj/Y+D/B+R/T+8AeYf7P+ZmBvb/hZL/g/s/Bvd/DO7/+KDv/2Ch npbuHvS4jU7x
3+npmdD9H4P7/y6C/Pfu/5C8sZwe8X6AJLFPtF/NZn0pQ+UjPmRfCxEFWUSD lfmHrcrL7a3V
DK/9CmWH92aj+jQSAitcs5qisHoZRasuruFgF2TUmVhz2kCyjtzWkSuAcQuI Ga1Kjwdm4uAz
+Aw+g8/g84F9/h+EqFHHABgBAA==
--------------060006040103080504010709
Content-Type: application/gzip;
name="FooProject.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="FooProject.tar.gz"

H4sICGPMaUACA0Zvb1Byb2plY3QudGFyAOw9a3MbR3LLnGOdYdXdJZUPedxj BNkRYINYgM8r
EqDMI0EfKhSlEKBKVamUagkMyD0Du8jughTj4h/Lh/yA/KhUuue1sy88JBCQ FMBlEdjpmenp
6enp7unpPXHdV577F9oJTOOhPhX47G5v8787W5G/4mNUK5XNjc2t7crWrlGp blY2dwyybSzg
M/IDyyPEsC1nOA5uUrkciPz7iXxOwvkf9kdXtlMeeu6QeoFN/XnO/87WVtb8 Vzc2t2Pzv7O1
vWmQymr+H/xjfvddjnxHah13eOfZV9fBAftpRn7jo2+a3W/gr5nLPSX1OXyg mbZLOm6Xki69
oX1kuj14SMixS85etknn2nKuKAmuKQlZklzS4JZSBx7bPunbDiWW00UgVjX/ 7bffksbZMXl5
Qtrnh2et08N245i8On/5qnHebjZaBADyrF6ZVXhh/QQtEIfeyk7uiGMNaIlY wyHFll2GAX51
e+xrz+7zTjmCrBl8zoYC4COfI623WZ4X0eZH/GkoNTesuWg5A8KSOum5LnkB xOrngDw3dpd6
ouD29rZM31mDYZ+WXe8qlzNWnwXKf5T8+OVB9v8x8r+yvVOV8n9raxdEaBX2 gZ2V/F/Ep/b8
3aBPbqjn265Tz1fLlTwIO5BltnNVz1+0T9b/mH9+kKsJ3jimfsezhwEAH+S+ qqGoPAhZqGay
B1DQcQcD6gQHuJHwb/BQtOHjd1P/cTmy+93WkHbgh/h1BNVAyOID0Q1IhDLt 9O2hT8t/6Qbl
juvBF+vGYvDUU51DBcu7GmGvPv9pRn7XzFgP4oFAAHoLRh7loPx7dt+8HLtm cNiWqq7GGCHa
x7v+fa/zMDbADPr/1u52FfX/nY2V/r+M+Ye9uXxFnQFuz4uS/9WtLd3+Q/m/ U61ureT/8uX/
Yeuo2WTyXzLF3o/UYcobeTew91S9DaiXA0UYnvYdfw/K6vnrIBjumSZqde7g CjU6882LZl6A
UJShESApYBGQDnrmRqWyYTYQTG9aIjK5qsQ0T1iFY9sDLne9u3rejHI9b552 7SAdpoxFDJAB
ud4YMNcLW2TdvmKqb/O4ng8hBUao9tbzsOTyOuhR3/J99rgM//NnvONEudSf EbChAMLhuF5K
FerDRmjhZiSrSbA82Hqk1gOC21ecdAc/MMRqZuQhQsE0vLI6P1lXYJNBmz37 HRsgIIoTJop4
l+zJU5O1zmsyfKAiK9GQE5BmE1vi4LzCCeWbKq8hftXz7Nde4zAIPPtyFFAS b8S8sfojmjdF
12bYNxuEqY0C9+sEkx989iZIUv6by9z/hf9na6taWe3/S5r/UWD3zeXO//bm zvZq/pc5//C8
dWsHnWtm5jyo/gfKXsz/uwESoLLS/z5O/++Qb5hsr0VW2c/l7MHQ9QL25Lvw p240g1LGN+Zy
g23A+xOAXl4iS0JbEr8n6+vkkoKSsj7yqbfedTtkfZ3h2r6mpHZ5wLkVTPkD wMNjHli2lz/z
ie1cU88OLKdDybVNPcvrXN+VsW4zIP5oiIj43Idr9fvk5x/6tvMTedoVK4DI LwWXYVW8x6qB
C+3euD9xZ28Nvb8HHcunb968QerBLzKgwbXbZehQC9rp4MilG5khV8KWkAED ULcJdHLNyqxO
MLL6UXjeN8Kj7xk0vw6lqKST0ZCVpw4SwUcOTBL6uF1n3RnB+ECPGvUDYvvw DfQoh3YZGrfX
NuBoc0IIGNG3zyWBmgjqdBPT8INPOU+gROEswh6DTgXIBLTLmWd02bc7YmRK xpCfmX7G5ho/
fFI7QDPa5YQiQ9kkL8/kB604iSUv1FFiT0z2F0gaAIWhRx/V4w4JByLUc/4D mDKG7JEHCiko
p5YDs+DzKYhT7uHQ5hRVtCwUBTXxY/dIQced1OsEeUCHCS0VCaONvEybZ632 4dlRY19VuM/x
fxNkgMXjp6+EMUtA8KfrUMGOPudVovHqPrEDcmfTfhe50wrE4/mQlfcqjnY8 P0gsFLlKyOUd
oJY6PpQb5ekmiku2UKYIUYf9i6/65HBpyQr5t7oGWOa2U6G4H5lwBQzlLph6 NmADXAFTr09z
nAU4p+q1r2jAvtg9ECfN40IxXgU/SAidX5onL1/upcDhBy0yYuM/dVLAH8Vw LPupNQRtxETU
WW9YsYCtFNPrIAlkBcntqoEu7Vnw7QjaKWgUT29JcIbgwQTIfeKJaH1P1pyq t/tc8ts09ZML
8Fysn6gAt52AemCiB2yPCbcSYiUk1rMaHRwgfWsmfHk27fpq41msjcd2A+la UGsZ6b8vAflD
RCO5Hd3a8B0wHdgOLJ1M4Zm5jIeWZw3k0LA27KrAwRmCWF/1cyUV2wafhhrD OPWmmJACxZlk
iFoNbGG5CeEhxhhOwUOxjMD+Y+KaErkcBTxKQKg0IMo4yWAId7fW3UfMV+n0 nIm1ZtuMNDkj
96Pp2OmemKGpuDqv/yz8f9L+P+xaQ+DbE4u5uj/ADzDJ/t/c2YnZ/9Wd6u7K /v/M7H+MBHCd
suMGdu+uLLhrfzroM/xjI/h08LivlKMM3IRHE50Ts/sdRCdE9JJ0QEhHgzis YRLfEpWEMcHs
x5kcBw9hi0fJRei7ANr2SZKK05vr5U/NXpcT0xNCbyGGe5TCyzPgpTJ4ew38 Rz2uPQlKoBZl
DYeAsXXZp4rDg7shjXqo5qH+8WUReCMqV4Std4G4UFugGLr5pGAC1OzY5AqV JrqAZnAOzIci
4xnh0nX7FLH2BSOcuF4bGitkKmTIHGJoE4x7qZUCRfdTzE2tIUkzGEGKO0Jr q6BsFoGY8kag
46AhEEn6Hfazzd2e1fdplqXSVso2Iy00SK/YKhYRumNFqb8YQRQ6NNmIxfe6 GieGBKc76mY3
7mK04wNvhtKkkOlmeF/9P7VHAT6x0/uxYliJXbGIhABglpaYyfnMILfmhAmn SRRgIoZDqiE3
C3bj17hUFjjtJNGkciPwSrG5CgK0qPFVWVmCaiWK+moJZVKccaI+LJiDUEhy jeCZOAdBPYLx
YMTjcT+bnS84bJy9T3yXO3dvUZdwQPPx7T5I2SsHNDO2HHzlErADkPfQWW/U ZwcxHMbi5j0I
aydyHMKcBB0L1yKe7/CDHp9x3gyOAI0hNOpFrXNJq/fhhsjanc2Lkz2vXFRy 2uOY5z1pc6Ld
DGSKC5zpHBRRFWvlqBhn/2vK44ef/U9h/29vVTdi8R+7G9ur+M+P3/6faE6r yLz9eQQFhAbd
1Na5qJJtlXf4CRnIzk6H+r7r+SEcDSyxKzIt06MieJJ1Peqzfgip9e2D0Eov 1Uz4HSvp8YBF
3FsnQFJnNIgX4Hk/K+xagBDaFwqgZgo0pnIFSOmX6Qpgfmowb/QTPeUHkORP t/4lV+AdjIdU
tlvAUM4VoWeHLxpg6LLo2f3cJIz8IQ7q4ry5ENRab6EnRE5EKJsqLHVqVBdG xtbbV+eNk+ab
8bT0AbhPAzfpMFmAo0fnRenM4NcIuZsvLEfnVNl27ADtkLRxaEua2F210nVV lzWJuhjzdMV0
Xr5y5zNYuTAjHaaXRkf4FHR8ZhlOOuSB5UzwPB6IVUmnhxRMOi1wyCA5X2Pk NMpNfgpFLCnK
H2aqyQ+u16Vexgjevn19eHrRyB4IiM1LUBGBKf3AG3VgUFZfjk55TtXwwnPb eU7ojEM6aRy2
L84bb49eXpy1YWTV/dzY41mdd3Gy5mulTa2/Z6Ax7jh8SqtIRLgo7t6fiRzM UFcXAeJkwTXD
OJrRR/D2YggUQyzafwalFLraGmenv9Mufe1OhKjyVrQ3nqrSt8kM8Y4wK3l4 IZf7/hgv6jwi
sN6z/+ytQx5nABnCX4wMwjSUByQr+0/Yf+rW0ZzMv0n2H5h/mwn7r7q9sv8+ UfuPGWsehnWC
DtvkrCSvQLuTT3AbL054nYmQePpcPqe+O/I69NTtWLx5MaS2FvvTAasNNYJQ j5WSGZNRiCNL
zvMT7MpsQyvVourZjgrkVusqNKnkUJM21b9QOiSAc+cnFWkkcV/AoaQ4UeXY h3hr2je68VRB
2q6yrAF49g1GgokRNKOuy6FkrFQHamSjWQCVNfppXkx/NKReAekbY23yb/9O fr6fKvoz215r
8GUUcvt89+9kx1M6eeNjhe2a0yZWkObwlbP6OdIlnY8VdWYnRzu8XxLz68co gd4z1hIagYuT
OVxWxsarBCbHLSI0I+PLDPAo6+VjBzFxIJGjxK7a2MRZi0r1oTwkOkelE0Ij hkaQKA0KiZ1U
6zsRzM9kiFYuRJ6ilwnLYkCZzczYk9M+hVgMOHp0zIlfZ8EQyaCS+9Xhyqd/ /vPhMZ8z6P8b
lWo1rv9vbqzuf34G5z+Cj2Y5sZkhjlI4CBLhknhJwLr0UfkMHjZ2MnJgEg+c lKNPPzDJVkUW
EHuoY5tU6pXTWYv5HOc44mEHifiR97tMNJVKNVuPGURg7tIw9mKSa0zyvbgw zO8D6gGBc1ca
p+9x8skJd3+pqLzQ/bUKiVjt/9H9HxfDvFx/0+z/ld1k/t9V/q8FfWbZzeOX I3hyqPT9kAlX
tROKmNLERihbSFqD4oA6PAfZj9dtUZG0geV4kpvn9Ac/8z7R5PYgR0YGukVR ix39pCCgDnni
hz/p8v3GtbvEl9CCZKxPJuBz77f+cfdfev6f7eoq/8+S5D+b/6j292HbwQT5 v1nZqcbv/8Fn
Jf8//vt/duRO3UPk/xkLxuyURvR+32RD89DJ8Hzyc6CoDVp+j0MfdaNOvzMX twrZQ4WHDp7c
JkN/ZncZ1mJ4Uy1iECbOLDKPJh4OJ6lZcDOuIEJI+E2kCIIiuwmdMrVJelqT xF2b+H0XmQAk
cWcmuPbcW6YSNPt4cal/KDJSN951KHMXF/LsEiU3ZPPkexKiinlCgdzfk/wz PNB03AAMYNjm
YfPvqFHki5Mv+D3cPCRsaY2eKphOpH5hVBDPdAIK6iLU4hkp21ROuY0TFhcj d90eBO0uhh13
InFl05yjRAc0ZjTZd0XvYz4CFqC4Mpk/d/tf6n96UO0D6n/Vje3NRP6HytbK /v8k9b9QWuzH
HqvbG9rj5skSL5FMoVpqS2BOqqV2IeWDVEsNs8QNjRTVMvPuxgOG4AhlDPdz lbyO382bISFD
GuFKsHVd2X6AsdUsaaZsR/h+xs98+ZxVBj078eSeO9hpPNukZHm81sHcK6G2 PTw4cwO6J94A
5WFeeHJr3eF9oU4YVCQbAO3txra0I3fZjox7FUdZMgUp3mUg/ELDfUlk6LT6 vktA3e653sBX
F2IBxgaN8D8jXCe6LWFKBC+S6UuRT4KohnosFaPVB+S7eJYFgHO88DDl1CSC okMWfiru10Rd
ZpxGUzJmdPmkGDKii5Jm8oS60UKtnGg0W5giognjhdmry5wJGSsqXCnwlVuP gk9EWHXqFTlb
sRVPUstq8lvid8TFRBg+GQ1dR6aMxQQC+LI0v0xIi8kdWZ8/p04HX91meTAQ GIcP5go7ysKs
mTwhGqwLwfnQKjyN1w8kn+IL4PBdBKTrsoRwzh1UxotMQAXova211AXa0awF gqNhzuqUHrrs
7Q79uxJAEPTqgsWmMBI5em0/XFx24NN+TxcJL3sREE75wI/2iDQpsQvpqmdG T9nOtXVDma13
RwMYNXX0ZcvllO2FIonTl2cw5ZJH2QvYfViXkYmGnWK1gF+Zl7yBfEKCWxf4 jg79PcUNNLDW
uUCW1yIZV8AQogKHNyqwkDMGc6UQwitHYW8lPAxHke+oFp75ab0NQLB6tIdB S+oyCcy1z3YL
y2Gsqc9D07nBqEElEUPmYCkBmCHd67FEfMDZCnl2+QDJr/AV0pDNgob4/ORi ulTjFBQLFHO5
4nYevxIS4pMNOKPByKVpLNOMFDrFNDM4IcHLUlyiA6Og25h8oHpEmmmSl5d4 Cxf3KbFr6jwb
u2QYOdhmug7Mu4Z9XccMy4uFCehJnCLZb2Rzz8m0tfdkgpfI7qKPVBPcPBfP 9DRIyI5I3RYs
VFLd0yJiYmsnF3qiNFqVMzhsP9n4BjTuomwPaEyYZjQ9hi+15sNwB91EWLgb MXb1LOklCbXY
JWCXeZkrxTcVAhdDnFlKppa6GSlfp8NzNRUqxaX42zJuZqX720Qx87dJd5RY rIVlaGShKnYk
trlJupi6HJiyheo3qaNaTKiLXY0sWP/sjbRCNZCbF+pMsH/Z4W6HuW9R4WDq wAKOBthBdIYs
SWwjgmByH9GSl2u0TIpHcUejI94dJV77CyqQvOYbtqNbnCJrDM9Nhm58zeMs ytSKKYQ1S/q9
4+UyWFPTy7KZTMpmfodljDWotNGQFwXPaXoeZ72Pn+fGbDKp6ougYxrvRcmc 5L+wPOoeQKtR
nNGwrBQaf+Fz/xV7O1ohTLUQBwDdoZCuFR12u9wixaQfLAeJ4P4sxPTFIZfF PrGgGXwPNZsn
XsiCVSjahSEFoBmxTKLLAMxvnrCE5NmL2UrkSbP19vBPrfb54VGb/2qetRvn J4dH+uhZg+Ha
im1dpcib4uQGBbYcFuX5e9tKzF9UIpUSqfJ+2Kuqm40z0e3rl6eH7eZpA9Bs vT368+HZj43D
P+FPLLw4azXa7fB385iBXZw1//VCPDpunDdfN46LqZLGEzePYuJCXkjS5ixy WKIpf7lP1/8v
D+jmEQg4If5jdzue/7m6u1tdxf9/qv7/2R39abme+a4yn2iShOY7nfdfR4Qf AUxRiQckzOvE
QIS4y6QsPLhd5mQZf4BQG6prFT2333dv0U+mUqIwF4zsmHb3kjmtsnLiZEZU pmSlMoeSfcYd
Z6gAgVi8aPwcgwUZpF6mkJkKU0NBtXjKBw8CnTZ+Mz03TCKlNb+ALQI7mSr6 tnHcODm8OG1n
HqZoubg/G3Looa0w8Cgl9hejlktcwtCV5QZAKYRk0FOL8YxIwjxdnEdZS7az aA9AIsI7iTKb
78VjlhpW7dBb9ltHUxS5/e5rwZkaxixAWzyWlaMv6qL6BnNO/2NkwwooFIuR 6DEOdMcSAiR2
pAL6tEtEf1wGpbcUD10TdmxJoVoSYeJLmHcRsUd/pEEhuTMT+XbnkrKAUQ/v 39DUcL5jiqc8
3UQzzeOCbGiq2D5BoL2sZNfxewip+cvp8Z1jDewOjiwchkR/SXxMW5PoLCYk jcEXR2e13MR6
Kyp09jPmJG0i5Ay0IjMQa2rxU3Dh+OMnYck0j+6n70VxPkSF1+IpLaUFbfqt j5HYQkbElTiu
xZHnYqt4In7vkSdRyDJsD1bfL9zE1kSmEOJkWOKEiM0xcKVbJ+aQg4l65bnv 7jD4WuDOtKhy
WENzy/BHfxr18PRXvc4RN0W9pBBvIRJezN4Zag3xCK2QJ5yUeySfCROndbT0 WfFZMnhZgOhD
0BKRqyyfH7P/h1uz877/Nfb+5+6W9P9s7W5X8f7X1ur934v51J6/G/TJDfV8 0B3r+Wq5kof1
3nHx1dL1/GHrqNnMPz/I1RhT7KlD8XcDe09V2oBKjM2hKcffg7K6TH18e3tb dgdXZde7Mt+8
aOYliB8Fud1kEBuVShXATltgvQ6sdXkarzfO8IjUlY4YbIAOetjIhtlg2ZZZ GuU6y2vMmnDQ
115PScsMJdxNz4FRwtVoeEPEJ4DwHjrh63lBCFYoO2BucS4WazR5zJqsrbzi sgXu7ya0rUMd
W4GFD8hUo31qmsKDnjfZAEx9BDCFZnQOD3Kx9S8SFQGd58xjE9Z/dbMaz/+4 XVnl//8Y1v9F
+2T9j2z9PxeMF4JuAiiU5FBFyM3uRkY9IlfjPMcXJywEzEL+LX+GB2p81dp4 HpcPGZU/FXhg
ESAtJZBIDuOth62JJ2F7HXEyjEu9rHLwfRNNtwXLGdeQx61yXyxu4f/lGNbz mVkvMVIGmrm0
+3ZwBwR9h9XqeTxU5ItzfFvKp5xWtWaGSDEUeZ+i1b596VnenRAroszMy9Rl Nd6eKP5OIWOK
eqID2SSTg+iUZaQeurYTZGBaVrrgW3FAIAWiPC+QqtLIs9Nz4yuIyASF+nWe SLkmMUIOEmIL
vq4u83yY/ieZZe59zHT/fxtEaHVrG7aE1f3/5cw/rjpYzewAaiH7Pyr74f6P 879bWZ3/flz6
v2SIvR+p84IdTX6gCTCTIq81LRGZXFVimudnqccsrN/17up5M2r18uZp1w7S YcpYxAAZkOuN
AXO9sEX+2ku2PTWP67oGw4vOlHWigzKlvR5VTnjHiXKp2yBgQwGEw3G9lCrs FUb8qEBUk2Dc
7sFgffuKk+6AJ+ipmZGHCAXT8ErGyw+F6YRWUCSqh3dJuXUi9QGoeSTClFiJ hpyANDV7ildQ
lhSDEL+S1hSJN2Jyu0ppOWHfXJPQRoEGUoLJD3L/D/d/jAFa8v6/vbG7s9r/ lzj/mFrfXN78
72xsr/S/pc+/elUxj/98KP1vY3N7Mzr/G1X4b6X/LeLzP//7X/8Nf8pGfc34 2+TMPzLW1ozf
YAyo2becK5OfFT8yfrFmPNbf6g1Ap9F3h+6vGV/WMAT4YM34RaH4es344ggq PDYeGb/MGV8Y
ucfGXxtffmX8lfF4zfhVtO4j41drxlcqSuWx8RuE/LXxN2vGr09th56xt321 8b3rgDW+GaD/
2vJs/C0efoGBEWvG350mhwSI/VK+OnnN2CycMqWRK5BMeWQKhClTUBVP46OH Bn43ts4j4x9g
8FyxWTNIoZjVBQ9efGz8k/Hbr41/NH63Zvx2HOQj4w9rRo6FuFtABW/NeJLd tsD1sfHEyH9t
EOMp0C6W9ohNTPOx8a3xzwjxDAgj838+MorwS76DfM34feFUFqVR5LHxvVHK wVyurxlfa28T
f2yYxt/j8wogHlzLl/euGX+YgDZMP4ILEv5+PAFhum2GZS5EEiaAn8Uhg6TM 4JeuwOT/2rv2
vzauK39GCEsajXiIl3nY5iGwkDAGBMg22I6NIcbBdmLsEEha18EkIXHBATtN t9luH9m2u23T
btvtLtvX9ocmn+3mBwyxCB9/9lP389nd/Ft7zr137twZzWgk7JDdrZRYzIzm nvs+53vOPfce
fZZ5c08t07Cpslge83vuwKIHcXrgaKfRildBvMYRjN8RvHsW/2r4tza1A9Et iH0GkS2Ib0Ps
AT4MQB1+xxmBFH6nQYc+HMr9UI9PDJ4QGqCRZdAEBwXR/8KUlfh3Nr0LhzW4 3LcLCQ2Q+odw
Gq+TGvyRTd1+ZRrXpR9D6krqWA76TwWbg5+BnkrnYJCuN9mV+JbF6mFZncC6 nMT7U1iwcRiE
0/jkDFyAs1izc3AZr6iow7w4oqh0NQQZ1g4z+NsIUhzEX0YhCxWYvhr/nWTt hGNCVGkU/wYo
b80qwQHWALMsh0b+q8whgCXKsrY9LpvFm8arnjQyjMYYuxsvG/tKl//2uNl7 xAG+5z9a679C
/g+Njpbl//7K//MatHj3PMMBI04uzP32j3O/fb5vxJ6M1lSKBAtR9oYplj0E tzuiiIBOiAJx
RJt3DRKDDFUcSc54vzPW+yJRq9EJazCkQvikTiKVBhek0mRHKs305kFoKRWp tBUqFjbY8rq4
mVpdozVhDRqS+XKtd8Efm3SWhk0S0B2FLujxxSYol6LKaXgadHoTN7vdQMGY jkIv9CkS2VVe
x/jmK9EwGryQj9vso5H7xC6tjfX6vChIjnng36EnhosGCUkdZdGoBt1FlSUE J7A9kC9he2pQ
dE01qLWOYJQt1ZssvgXqxY5YXnJJwoaRGvPFAlUZ5/j0CoJSYV+T0CmgQCcC ToB3JNB1/I7i
3U0GFQAOIYSKpR5B9TxexB9C/RY0MjjVug2NHE614fdhJAI4YIKIUCrhIsTw bw2OokZEG21w
DA5JaHUI3z3CoFU7FoZntoJUCCWk0kj9Q6gMfpz+M3RtQCvCp65dQsC7BGHN HyvwP5lzI0NB
HDFFEFPUIKJIIlo6JLFHSuRIV/2IXAh7DCA24nlPiLyrU59APeWXg+xjOLkp M+BgZkEhWC0J
ViOYGWMExxGkcYJ9AnyagMiisaw0Q0A2w5kiUt53SRlAOEjfzyAkBNZv1axM 8TJ6+gvDf4nB
PSFAv/W/UTX+E8N/mYGBMv7bX/x31Bc9aR4SsoJkFYKYxIAvjInMfn0F9fp7 y4sKlvODZALn
cdBnoAiJMrQnUVlVqVjr8Eyhio6VYvjwAc2NTyqSDcSSzTo0EaC0TBaqmUM1 t+zVnOUq9g2U
myzrjmLMNXuBCAOmdaWmhkEEjcl2gAr8F0YZi1SZxOVyU2cAIf0QqjkaqGHC iH65yCBErRRc
OoqmOiby6qFBUBkX1oMwSt/qHLRuShpc8F1i6bnYDYv0dNWGApGEJYlCV0qd TkqXPSl1sZQJ
9n439AhhGvhChakH/1ePiHoi239R/h8Zx/rPEF6X+f/+8v9jLrqtp+3/cGG9 LgSVGlSy01Ds
6hz3TyZ1bmKVOXfzDUjI2jHrMOjIAcSpGjif8zwEwxAj+7c8SEXVvF1tCkHa kYOzd5o4CmFf
ZYcOFozdTU2eu37j2uTNias3rlyn97DS4XGsWp6hQYMmj+OxQ9BKNmhMgVSR tzsKYpAuoiMD
OEIrGbUkszqKllkhsUW3CGUdm9V2yIoGCe8k1qnKPJl1xpatDpbstnH4aoVB UPce0BgvRyGF
PLxZsZAHUOFoBkO5r8L7asfvNYxnNjNuaT6vx/sGx32jct+E+YVJPOKTFnyS ZtwXIPQptG9D
JxcSXVJInMKitQrmC0GNM2D8exSVOPrbi0obMKM1vdH3F47/vdyiPxf8P5B1 rv9mhobL/H9/
+X+LwP9ePc+kQb8Hap28PCUS2SJ0c93AxPnH7diUsSFzzOUFtx5T7LuIDQnx h5FR2UoYIoER
vrW4uLTOlI8OjtW9asCsuwbEdGQ5e9QZPEkje7SibWvQV0pNnWuQMhM30Iy/ 27OWhjZgONXC
0VMSN6d3IJL6VMXNVQxj38C355GbLiiIVZeIVRfoOcDW0wJsgdJErMSzI2Xj yf9f/q8cfP65
4/+B0eyIE/8Pl/2/95n/t1r4X13zKw3/y5SVHtjcgpNFYWzbMqIhZYmBDEzX IQbVcpGueNcg
3TLIIG8VSFcYU2K22E+uYN4FCKs2DgUIawIIk0EjrKx4HBcqf/QRxOZ3oGYb 4pa7CAerLfi3
jnk1cLDKfBqCmuDBRJh+adkH/PcUpr8v/stmnOv/A0PZ8v7P/Z3/yXx0hdO/ 3Q/wMXYQtmZ6
tR0n0Zo936BXBITyYgly1hs06wMQk6bf6qJnfdqjIsxyax7pSQlxJoegToPB 5MszJaQR4LKB
gGqjRI0HKfQaq63jdULDvSXRl5wOGXVEkuVWAb92LQUi2430JSFTH/2hOx+7 DspF4maxSKzL
RWIPlhlAllm1DTWcZdZKltmGfxuYGTUgHPbMxFl8QqaBSKriP6B+B5qcSY9h Xv0sKbcfkwPH
AcFnWwSRfrFkGtyCtk2Znlt8TyhpgyJthK0/87QJYZlwSzshixyGI9DOsDVA t8itMrUNbQ8c
SRIySYdwdOsUto6EAOg9eHe0OIDuwf+tU3+fAo/xw3+ZoazD/z87OJop8/99 5f8xm/evJ/Lz
8y5C4Bc2D0vToD7Z62b9Da/LN2xeTOIFYkI2xhNhw9EBr3DIB7kvLiGjCFub 4fONXE7KnyfC
f081Bvxe9v9ksuX9P190/ztigO5ZHPjw/9HMkFP/HxocHCnz/33l/78vtLyF 4uCoO+Nnr0/a
Xq5wWUlEsaBbUQWK2NERNkMlIRBaQPYuY4OgmmKL1YAigA1MQre1iiwxCalo 1l3BYA7EzNG3
aG1C2rTdFikPulhSWnzsIQY5GkSglTZ8jLiIxJnCBhemfTRBO2kfHVJT6DJQ HLKadTPdia6O
St2kecaju8cKrWV6DgRzDCTMIFkhWlJWNEM/Z2CZcIx2DQ1EcEwOYj8xF9ge N19nN0/bDAxH
MeFIEUvUWWqxWtIATiIMcQ1eY8AYf2Mcm8sz1IgBZ/hbZ3Fs2gJZ7c/qrY9f 9pQGje7hnzTo
9lFCJ2ewR7BZL8J0FJ6FS6hA+r4eghmCddMe/XMlCpfhqotlwVmzELxQ5Mp0 nUtQqILu59as
uwEvUs/Nob6oBgoiRXna1zV+HhYo8cs4n52RhCj7wsmnacp+Cb5MFG6aDhCo U4dEMBkvaGzA
ItymRPhGVAkwY8Dr/PkbHF+zuDIGvMkfvmVADKqIAXyV43x2nH8YcGBWO3hm CN7GUry2usZL
0e1Wijw+a8A63NNhDe7jzLN+vLLKfr6w9NrU6v2V25Nra2Rd+Rp2mfXO9TfW Vr9GbDUE2ME6
9uXlpfV1Nntc1QcDvgHv6fBX8Nc0gbF278LfMFcPqs+3Sc7IQDYaLPr0Ql5F 8vNbWPAdCN+F
96mR/9aACzBJV9/H8aQehIFz2YuG8hZS+jv4e+qkH+L48X8/BD/mDSbO/dOg y3vMm4cJYiY/
gZ9G4QP4Bw0q2fkYYfg5iix7uB4Nfpn0Zz4FG4ZvSnCRZXlPpqcX+KcIfmfA P8IvqY3/Ccts
j8ijwWnXwepO0wzvIy1tSHoD/oVI/wrZk2NgXFm9x4fwu4tLd7k96zcOLbXO gZeVHaSkr1bi
Fbdt6UJbJVuPLvRV/FsTpjkq3evD+B/5xWjM3NMrbEiVFdtQzy1CDdKARdst m8UyLV+qNZPN
QgVL2JyKN2/BkR3oTGkPIZGqeAg99JW0SPH9DYNYtiNYivehDn4FB2GIkeW2 rWbhJBMROzsp
gx8I49qlLajfgNotGIo378JoAB7DgU3r7s9wYgNqrPuPQOemvFOPIfBcEOuU ysFp/PdMalOW
qIVp+degHtn0OMzBM/AKTrCbKI1uyVKNY1nPCded8zAhSnVc2s8+gYRFkNvP 3lSqVCn9fnDm
isSnRZXqKPEuPIfMeReepxpdc5JaV0jVSVKzcF2QGhLlCGPNXnpsep1a6d9T 0odl+jHZfQui
+9qxKD0bEHyQClLHpSpy8Ap1I5UQr7/i7MUPkNpPcDT9DO9/jv35CyWfdpnP GZnPf7JxB7CG
BJNmPslU/NUcvMa+l3H85OAOy3ALVuY/g7a5+N1P4Z35bVj5CKofwbsLN3Pw zR341p/i36nA
Mn1vLoWV/gEm+NEu/Ayz+YVWEazg/+fgn+cYwV/PPcB8+3DUnYDfihrwncl/ wBp8iDX4N2zX
P+LI+3esxSbMwAPsvk/gbXio1GhN1uh3rB3+tWzWeSr6v4wB9oSGYB/9f2Qo M+pc/8uOlP2/
9lf/R+BWm9fzTPPvKaT5W5Ga+EqgZUJGlb/Kfoa9hy8wByHe2rnQZmOlaucG sje2VSROGj6j
US+137qZvMqOEWhTgugUpbPlWTpafLySVU3f1A7ZVosoPut4StbzBtfQMqxd FwxyeSXc0Iuc
t1DXOoPNhCCtwfNeqHCa4lOv3LpjbgmZns7X/1yU+Bepl47RwRj9zPmbbX/J 8xX02vS6aDn2
DcAgVYq265rxPvDSjHeD/U4BZzQ464lq84PELbhulmktECtCg2Ml0KezV07A SSr2KYOW74Sp
IaoEkiHjQlYYF8LmyXcapIrPBZtVhKDhprQgRYQprSHc+s22QMSHXgieZYfJ UHGnlWrMUjWe
gyl6PuN1HgsPklJiA2IpYrYIJAa8AM9TPteIJIuBUSLJBUrIYm14bbE34EWY 0xGFvqTkzrIy
ELDdECaBsBkDgvpNhLow4Mt86t0k1T9BvAk1/kZnO/JYFiFYpLmBrXmbdP2I DFgRBqR5gEeh
wCnso5+rJJH5LMObRPAtHMfJiYLvfZXeW6GvW8phOge9kjiUoZg9gKilBtFu Y64GBYkrMx0m
DOSTq7FlO6noaNtQxXFttVR06BidDubBGmAEamWyMwK0G6kdBO5bUPUQGqzU 3N91HFMMY4rT
jALHjgbiyCaxbt8saGUEao+gxrRL5yVsSkIctk8qBCKCgMbW3zkBVf1ocCa+ oiSulIlpOwJP
vI7NQaXtpsSXacNbAwLp1AY0ph5B33wqWNFHv+zA8RxkrCpy4D+H3y9hY81j 0yxgeV5mmbVz
giIzuhpmGzAq8ZcRvKKmG2UH7hhMP6pg7yfoyKAxftbQQQUy1JGqtplKt6G2 tulo4kV8cwkO
wetKvgmZbwJVtfPCh2ECNS7KdxKmRL7viHyTSr5ttnz7HsPFHFx6kEr35eCy s+53Me81zJPO
HriPQu4dpQxJWYakLEMSW+EKK8NVeF7WnTtN9yhlaLWVAYcWL0IOZp0l+CaW 4FuoqHwbc/0u
tvL7rATcsbpHlqBHlEBDNfGGyPc7It8pJd8xNV/M9jOIU8f/N4SCH0FzxUfQ gA/pSQ7mNyCE
D4LBjyn9Kx87euVHWK4PUH3+qVKeKVmeKVmeL8kR/B6mo7eGsa+/soH66w68 uvkIbtPhDK/u
wGsz6fgbqA/OpXn+eFHTm4PVOcz9rjUmuAK/gRTJlPBrbJnfYKv/FufH75SS DIuSHMTefht7
kEqyzmjcK+tnX/D6r+KA+7mt/w6NDmbz1n+zg2X9b1/1v0uFXK/91n+dxz3l rX9W+p0GWep+
HPvqpZI/YUluFi6Ecbn61uu7rd1nbS3ufahiPTREoY58Qb0dzsXu/gApjZ0W rpq+c2fp9Vt3
zq29fp9cJRWTc1sBtIj6ZJTF/mXRM46God17CSkEnTpy4y6ugvKFHo/FFnY4 ZB2tG+8VcvZC
ijJD5bH1aPvyejtqcO23KN7d8m1eWNZyYbZcbIJmWgLuoVQDOqKJLuXIKl/P ATcrxoiO+EaX
50S6K/9FOf/v4YircThNfXzGxVjwDF+/kfT0C0t315YWuZ+DjxnhAkxGUHJP uaxCqFzbAb/5
8UvW/tyMhKo7EH0gnec43D6MiY5ATIGrVUyua2Jhggh8gy1sAJxN79JZaAy6 NCkMJp6i0xYe
waH5R3BkPt6xA4k0O8QyB33xfvzKweAODP1JZs0hy1GcGkns+hTLngOFsyJ7 usogbKCSc9RO
BTlv7nd7BKPzO5CdSW86qkOgd0Shpwt6BIDpzEqix49Zijhs92cfwzmLGsfx Z5SGCQtKESzF
GL41wUoZsfv+PuukcJFR4O7KF9nV9P8S+f90YwCWHv9vNJMp7//Yl085/l85 /p+Y/xzg3711
742nPMb85v+wev6riP83NFqe/1/8/Lfi/8mxcUaPWDeITte+3v7W8srt050s Pg495JfHXV7k
fhb8nUvXJm/OXpvoFKnfubXW2b62unrP9uu1q1evm0Tp0cz0eVfCnMbi6or5 shqj7u5tMzqf
WAfh+5PWC1BavX/v7v17JjEhGOn98eNKQ5StB+VP+VP+lD/lT/lT/pQ/5U/5 U/78X/r8D5E8
k00AGAEA
--------------060006040103080504010709--
Re: Generated impl. class inheriting from wrong parent? [message #383595 is a reply to message #383592] Tue, 30 March 2004 20:14 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33140
Registered: July 2009
Senior Member
--------------91A87A86F393D2A9B658D17A
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Ian,

I don't see the results that would indicate that step 8 was actually done:

[Image]

I.e., the .project file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BarProject</name>
<comment></comment>
<projects>
</projects>

not like this:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BarProject2</name>
<comment></comment>
<projects>
<project>FooProject</project>
</projects>

Note that plugin.xmls are not regenerated once they exist, and that once you have a
BarPackage interface with @model information in it, anything bogus that you don't
want won't go away unless you remove it from here or remove the whole file.


Ian Phillips wrote:

> I'm trying to narrow down what (if anything) I'm doing wrong. So, starting with
> a fresh install of eclipse from these versions:
>
> eclipse-SDK-I20040326-linux-gtk.zip
> emf-xsd-sdo-SDK-I200403250631.zip
>
> and a new, empty workspace, I followed these steps:
>
> 1. create new EMFProject FooProject
> create as empty project
> 2. create package foo
> 3. create interface IFoo
> add @model tag to interface
> add single attribute as: public String getValue();
> add @model tag to attribute
> 4. create EMFModel foo.genmodel
> load from annotated Java
> select package foo
> 5. add model plug-in class: foo.fooPlugin
> 6. run "Generate Model Code"
> 7. create new EMFProject BarProject
> create as empty project
> 8. open BarProject properties
> add dependency on FooProject
> 9. create package bar
> 10. create interface IBar extends IFoo
> add @model tag to interface
> add single attribute as: public String getDrink()
> /* well, it is a Bar after all... */
> add @model tag to attribute
> 11. create EMFModel bar.genmodel
> load from annotated Java
> select package bar
> NOTE: at no point do I get the option to select or reference package foo
> 12. add model plug-in class: bar.barPlugin
> 13. run "Generate Model Code"
>
>
>
> as before, it creates a bunch o incorrect classes in BarProject. The actual
> results are attached. You could tell it was going to go wrong when it got
> to step 13 couldn't you?
>
>
>
> Should I file this as a bug? As it seems that I'm doing the simplest possib;e
> thing with the new build and it isn't working.
>
> Cheers,
> Ian.
>
> --
> #ifndef __COMMON_SENSE__ | Ian Phillips
> #include <std_disclaimer> | TIBCO Software Inc.
> #endif | www.tibco.com
>
> ------------------------------------------------------------ ------------
> Name: BarProject.tar.gz
> BarProject.tar.gz Type: Unix Tape Archive (application/x-tar)
> Encoding: base64
>
> Name: FooProject.tar.gz
> FooProject.tar.gz Type: Unix Tape Archive (application/x-tar)
> Encoding: base64

--------------91A87A86F393D2A9B658D17A
Content-Type: multipart/related;
boundary="------------C976B59B7753A93303C598E2"


--------------C976B59B7753A93303C598E2
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Ian,
<p>I don't see the results that would indicate that step 8 was actually
done:
<blockquote><img SRC="cid:part1.4069D50E.1A291CA1@ca.ibm.com" height=281 width=635></blockquote>
I.e., the .project file looks like this:
<blockquote>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;projectDescription>
<br>&nbsp; &lt;name>BarProject&lt;/name>
<br>&nbsp; &lt;comment>&lt;/comment>
<br>&nbsp; &lt;projects>
<br>&nbsp; &lt;/projects></blockquote>
not like this:
<blockquote>&lt;?xml version="1.0" encoding="UTF-8"?>
<br>&lt;projectDescription>
<br>&nbsp; &lt;name>BarProject2&lt;/name>
<br>&nbsp; &lt;comment>&lt;/comment>
<br>&nbsp; &lt;projects>
<br>&nbsp;&nbsp;&nbsp; &lt;project><b>FooProject</b>&lt;/project>
<br>&nbsp; &lt;/projects></blockquote>
Note that plugin.xmls are not regenerated once they exist, and that once
you have a BarPackage interface with @model information in it, anything
bogus that you don't want won't go away unless you remove it from here
or remove the whole file.
<br>&nbsp;
<p>Ian Phillips wrote:
<blockquote TYPE=CITE>I'm trying to narrow down what (if anything) I'm
doing wrong. So, starting with
<br>a fresh install of eclipse from these versions:
<p>eclipse-SDK-I20040326-linux-gtk.zip
<br>emf-xsd-sdo-SDK-I200403250631.zip
<p>and a new, empty workspace, I followed these steps:
<p>&nbsp; 1. create new EMFProject FooProject
<br>&nbsp;&nbsp;&nbsp;&nbsp; create as empty project
<br>&nbsp; 2. create package foo
<br>&nbsp; 3. create interface IFoo
<br>&nbsp;&nbsp;&nbsp;&nbsp; add @model tag to interface
<br>&nbsp;&nbsp;&nbsp;&nbsp; add single attribute as: public String getValue();
<br>&nbsp;&nbsp;&nbsp;&nbsp; add @model tag to attribute
<br>&nbsp; 4. create EMFModel foo.genmodel
<br>&nbsp;&nbsp;&nbsp;&nbsp; load from annotated Java
<br>&nbsp;&nbsp;&nbsp;&nbsp; select package foo
<br>&nbsp; 5. add model plug-in class: foo.fooPlugin
<br>&nbsp; 6. run "Generate Model Code"
<br>&nbsp; 7. create new EMFProject BarProject
<br>&nbsp;&nbsp;&nbsp;&nbsp; create as empty project
<br>&nbsp; 8. open BarProject properties
<br>&nbsp;&nbsp;&nbsp;&nbsp; add dependency on FooProject
<br>&nbsp; 9. create package bar
<br>10. create interface IBar extends IFoo
<br>&nbsp;&nbsp;&nbsp;&nbsp; add @model tag to interface
<br>&nbsp;&nbsp;&nbsp;&nbsp; add single attribute as: public String getDrink()
<br>&nbsp;&nbsp;&nbsp;&nbsp; /* well, it is a Bar after all... */
<br>&nbsp;&nbsp;&nbsp;&nbsp; add @model tag to attribute
<br>11. create EMFModel bar.genmodel
<br>&nbsp;&nbsp;&nbsp;&nbsp; load from annotated Java
<br>&nbsp;&nbsp;&nbsp;&nbsp; select package bar
<br>&nbsp;&nbsp;&nbsp;&nbsp; NOTE: at no point do I get the option to select
or reference package foo
<br>12. add model plug-in class: bar.barPlugin
<br>13. run "Generate Model Code"
<br>&nbsp;
<br>&nbsp;
<p>as before, it creates a bunch o incorrect classes in BarProject. The
actual
<br>results are attached. You could tell it was going to go wrong when
it got
<br>to step 13 couldn't you?
<br>&nbsp;
<br>&nbsp;
<p>Should I file this as a bug? As it seems that I'm doing the simplest
possib;e
<br>thing with the new build and it isn't working.
<p>Cheers,
<br>Ian.
<p>--
<br>#ifndef&nbsp; __COMMON_SENSE__ | Ian Phillips
<br>#include &lt;std_disclaimer> | TIBCO Software Inc.
<br> #endif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& ;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& ;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& ;nbsp;&nbsp;
| www.tibco.com
<p>&nbsp; ------------------------------------------------------------ ------------
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Name: BarProject.tar.gz
<br>&nbsp;&nbsp; BarProject.tar.gz&nbsp;&nbsp;&nbsp; Type: Unix Tape Archive
(application/x-tar)
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Encoding: base64
<p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Name: FooProject.tar.gz
<br>&nbsp;&nbsp; FooProject.tar.gz&nbsp;&nbsp;&nbsp; Type: Unix Tape Archive
(application/x-tar)
<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
Encoding: base64</blockquote>
</html>

--------------C976B59B7753A93303C598E2
Content-Type: image/jpeg
Content-ID: <part1.4069D50E.1A291CA1@ca.ibm.com>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\nsmailL5.jpeg"

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCws MGJGSjpQdGZ6
eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAq MF40NF7GhHCE
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbG xsbGxsb/wAAR
CAEZAnsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcI CQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS 0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW 19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcI CQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0 dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCm0Rmv5IwyrulbLN2GabLB tJ2MGHrt61L5
3k3k+77rSNuPoM9aa93tH3gx9ia6L6CRHBbNcswDImyMuxbOMD6CiWzmjYAK ZAyqwZASCG6V
Ja3gheWRwSZIWQcZ5PTOe3FOj1GRbe4DO4lcIEZOAoB6cdPwpakuxV8mXyvN 8p/L/v7Tj86d
JbzRLukhkQZxllIq59vi8rO1/M+zeRtwMfXP9MVYu76GG6nMZMpkeNuMbRtw eDzmi7CxmG2n
VlUwSBm+6ChyfpTxZzG2M4UlQ2CMHI4zn6Yq6upRrdLJvkMXmM/liJV6gjqD yeaq/ahLZPDM
0hfzPMD/AHs8Ywcmi7FoMa0mErRpG8hTGdqNxn6jNMWGV0LrG7IvVgpIFaMu pxSNJt3x5kEi
sY1c8KB0J46daiN7G9rJHMDMxLFCYwpUk5zkH8cY9qLsehBHbbrN7lmIVW2g Kuecd/QdKaba
dWVTDIGboCpyalgu1itY49pLpOJfYgDpVqPUYIpQQJGUzNKcgAjIIx1560XY aFG3t3nnWFcK
zDI3cds057WRRGUxKJc7SgJzjrxjNOs7ryr5LiYu+M5PUnjHepjeQMYhIryl EZfMdQTk9Dgn
nHue9DvcRV8ibcV8p8rgEbTxnpUxsZBHuDoT5fm7QTnb69MVYl1FDC6xGRXM aIGAC8gnPQ8d
ahnvS8caRZUCIRv8oycdeeuKLsehB5Eu8J5T7jxjac+tOW3kJkBRlMYy2VPH 6cfjVqTUFku5
nPmeVJGUAPVcgc4z6inJcxv5pztVLXygWwCx+lF2BRaKREDtG6qejEEA1LHZ TuWHlspClsMp
Gcen51Zl1ANIZELDJVmj2LzjH8XX9KjFzCtxM4MhWZXU5UArn8ef0ouxaEcV o8pChkEhyBGT
83H8vxxUFWklgS3MaNIrNkO+wEkdh1496q0IApaSlpgLRRRQIWiiigBaKKKA FpaSloAKWkpa
AClpKWgApaSloAWiiigBaKKKQC0UUUALS0lLQAUtJS0AFLSUtAC0UUUAFLSU tAC0UUUALRRR
QAtLSUtABS0lLSAKWkpaAClpKWgBaKKKAFooooAWlpKWgCQBQq/KDke9Hy/3 B+tQzXMUYCea
gcDo3bmmLdxAHfPEfTbn+tZNu5okrDWuXS2idIBNJI7KF3be7f0FJHdTmaNJ rERK5I3ebu5w
T0H0qHzkEFvtkj3xuzFWbHB3DsD6043QkliLtCqoxY7XJP3SP7o9aV2OyLdq /mQF3AJ3EfTk
1F9vg+75Tedu2+T/AB5/PpjnPSktZoorMGR1Xcxxk9eTVf8Ac7/O+2f6Rn7+ Dt2/3dvp+uea
bbEki4rlrqRMAKoXAHvmksv+PZfq38zTLeRZLqZkYMMLyPxp9l/x7L9W/maT GhrWFszsxjOW
OT8x6/nSf2fa/wDPM/8Afbf41aqKS5hjba8gU+ho5mBEdNtD1iz/AMCP+NJ/ Ztp/zy/8eP8A
jUn2y3/56rR9st/+eq0czCyGf2baf88v/Hj/AI0f2baf88v/AB4/40/7Zb/8 9Vo+2W//AD1W
jmYWQz+zrT/nl/48f8aP7OtP+eX/AI8f8af9st/+eq0fbLf/AJ6rRdhZDP7O tf8Anl/48f8A
Gj+zrX/nl/48f8af9st/+eq0fbLf/nqtF2FkM/s+1/55f+PH/Gl/s+1/55f+ PH/GnfbLf/nq
tH2y3/56rRdhZDf7Ptf+eX/jx/xo/s+1/wCeX/jx/wAad9st/wDnqtH2y3/5 6rRdhZDfsFr/
AM8v/Hj/AI0fYLb/AJ5f+PH/ABp32y3/AOeq0fbLf/nqtF2FkN+wW3/PL/x4 0fYLb/nn/wCP
GnfbLf8A56rR9st/+eq0XYWQn2G2/wCef/jxo+w23/PP/wAeNL9st/8AnqtH 2y3/AOeq0XYW
Qn2G2/55/wDjxo+w2/8Azz/8eNL9st/+eq0fbLf/AJ6rRdhZCfYbf/nn/wCP Gj7Fb/8APP8A
8eNTI6yIHQ5U8A06i7CyK/2K3/55/wDjxpfsVv8A88/1NT0dTgAn6DNF2FkQ fYrf/nn+po+x
2/8Azz/U1Pg/3W/75NGD/db/AL5NF2FkQfY4P+ef6mj7HB/zz/U1Pg/3W/75 NGD/AHW/75NF
2FkQfZIP7n6mj7JB/c/U1Pg/3W/75NGD/db/AL5NF2FkQ/ZIP7n6mj7JB/c/ U1Ng/wB1v++T
Rg/3W/75NF2FkQ/ZIP7n6mj7LD/c/U1Ng/3W/wC+TRg/3W/75NF2FkQ/ZYf7 n6mj7LD/AHP1
NTYP91v++TRg/wB1v++TRdhZEP2WH+5+ppfs0P8Ac/U1Lg/3W/75NGD/AHW/ 75NF2FkRfZof
7n6mj7NF/c/U1Lg/3W/75NGD/db/AL5NF2FkRfZov7n6mj7PF/c/U1Lg/wB1 v++TRg/3W/75
NF2FkRfZ4v7v6mj7PF/d/U1Lg/3W/wC+TRg/3W/75NF2FkR/Z4v7v6mjyIv7 v6mpMH+63/fJ
owf7rf8AfJouwsiPyI/7v6mjyI/7v6mpMH+63/fJowf7rf8AfJouwsiPyI/7 v60eTH/d/WpM
H+63/fJowf7rf98mi7CyI/Jj/u/rS+TH/d/Wn4P91v8Avk0YP91v++TRdhZD PJj/ALv60eUn
939afg/3W/75NGD/AHW/75NF2FkM8pP7v60eUnp+tPwf7rf98mjB/ut/3yaL sLIZ5Sen60eW
np+tPwf7rf8AfJowf7rf98mi7CyG+WnpR5a+lOwf7rf98mjB/ut/3yaLsLIb 5a+lHlr6U7B/
ut/3yaMH+63/AHyaLsLIbsX0o2L6U7B/ut/3yaMH+63/AHyaLsLIbsX0pdq+ lLg/3W/75NGD
/db/AL5NF2FkJtHpRtHpS4P91v8Avk0YP91v++TRdhZCbR6UYFLg/wB1v++T Rg/3W/75NF2F
kJgUYFLg/wB1v++TRg/3W/75NF2FkJgUYFLg/wB1v++TRg/3W/75NF2FkJgU YFL+Yx6iii7C
yEwKhsv+PZfq38zU9QWX/Hsv1b+ZpAT0ln/x+XP0T+tLSWf/AB+XP0T+tAF2 imOAxUEZGecj
2NLsUHIUZ9cf59T+dMCuLza8qzJtCyeWuzLljt3dAOOP60n2xWuQisBEE3sx Q/7XU9Fxt7/T
tSrauLgytKpHm+YAEx/AVxnPpikWxAFwrOSs6lTgYIBZj/7P+lAE8U6TZ2bg R1DKVP5GpKhh
hdZHlldXdgF+VdowM44yfU1NQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAV5uv4/wBB
UdSTdfx/oKjpDCpbf77/AEH9aiqW3++/0H9aAGwX9tcMixSElwSuUKhsdcEj mrNY1vpcg0wC
bebhIpFjjJXCls+nr7nvTv7PeOOx/cGVEBM8RYNltgAPzHHGP8KYjVZwrqpD ZbOMKSPxPb8a
dWB9lnR9PgyBdLDKCwOSgIO3JHYZx/KnLpswsZUijmjnaEIcsgRiCMj5eSeo yfXmgDZeeOOa
OJmw8udgx1xyabPdRW7okhbdJnaqoWJx16CqE9mHmtpEsAIo2ffDhMnIGDjO O3rU1/bTz3to
8LFBGJMyDB2kjjg9aALkMsc8SyxMGRhkEVG90q3S2wR3kZd524wq5xk5P8qz GsJ/s9nEYWCQ
FhIisrbiRwwDcdc9eRmnR6fKJwY1kULaNHG8rAsj5OOR04PbtQBsUVgHTJv7 PkjjhmEzRKpB
MYQkMD2PJ68mrF5ppa5XEcj23lMu1WVmDFsk/P656jnigDXorDn064YXjpEx lYQ+S7su/IAz
zng8VYS0lD3e6HM0ruYrjI+QFcAZzuGOnAoA1KKxIdOdbSRPLuo5HhCNtMYU nI7AjPfr2zV/
S4ZYLUrOkaNvJGxQuR2JA4z9PagC5RRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFACZpMn1H5Up+o/Kmn8KADJ9aMn+9Rn3FJ+I/KmAbj /eo3N/e/z+VB
+o/KkP4fl/8AWoEG4/3x+VJvb++PyoJ/2h+VJn3X8qAF3t/fH5Ubm/vj8qTP uv5UZ91/KgAL
t/fH5f8A1qN7f3x+VJn/AGl/L/61Gf8AaX/vn/61MBjffb8P5CkpW++34fyF JUFBUFl/x7L9
W/manqCy/wCPZfq38zQBPSWf/H5c/RP60tJZ/wDH5c/RP60CLbfeT6/0NOpj gMVBGRnnI9jS
7FByFGfXH+fU/nTAppqKmRw4jCoXB2vuZQueWXHA4/UetSXt4LeNwpUyKhYB s/3WI/8AQTTD
YGRWjllBiLOwCrhgW3d8n+8e3pTZtPkuC7SzpuZdvyxkADa49T/f/SgCWW9R Jo0B4LkOxU7Q
ArE/N06j+dON7bgAszKSdoVkYEnBI4Izzg49elRSWBk/dtKPI3O20L82WDA8 5x/Ee1LDYiN0
f90pV92IoggPysPX/a/SgCwk6PIyLuJXqdp2/n0qSq8NsY7h5dygNn5EUqDk 9SMnJ9+P8LFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFebr+P8AQVHUk3X8f6Co6QwqSE7W YkHBA6An1qOi
gCz5i+jf98mjzF9G/wC+TVaigRZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHm L6N/3yarUUAW
fMX0b/vk0eYvo3/fJqtRQBZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHmL6N/ 3yarUUAWfMX0
b/vk0eYvo3/fJqtRQBZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHmL6N/3yar UUAWfMX0b/vk
0eYvo3/fJqtRQBZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHmL6N/3yarUUAW fMX0b/vk0eYv
o3/fJqtRQBZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHmL6N/3yarUUAWfMX0 b/vk0eYvo3/f
JqtRQBZ8xfRv++TR5i+jf98mq1FAFnzF9G/75NHmL6N/3yarUUAWfMX0b/vk 0eYvo3/fBqtR
RcCz5i+jf98Gjev91v8Avg/4VWoouBY3r6N/3waN6+jf98H/AAqvRRcCxuT0 b/vg/wCFJuT0
b/vg/wCFQUU7gWNyHs3/AHwf8KTcno3/AHwf8KgoouBPlPRv++D/AIUZT0b/ AL4/+tUFFFwJ
8p6N/wB8f/Woyno3/fH/ANaoKKLgK/8ArGODg9MjHakoopDCoLL/AI9l+rfz NT1BZf8AHsv1
b+ZoAnpLP/j8ufon9aWks/8Aj8ufon9aBFtvvJ9f6GnUxwGKgjIzzkexpdig 5CjPrj/Pqfzp
gRNOyXPlvGNhRnDKSScYzxj396dHcRSsFVjuIJ2lSCMYzkHp1H51FLavOzNJ KvQqgVMDBIOG
55+6B24z61GunL5DxsYxuk34jTaoGApAGe4yPxoAsC6iPl4LYkAKtsO056c4 wPpUNzfeRcGL
bGcIGwZMM2SeFGOTx+oonsfNuBLuj++rZaPcwwRwpzwOP1PrTri1eaSQiVVS WMRuCmTjnoc8
fe9DQA+W7ijhMm4YywGc4yoOR0/2TUEl/wCXaTORmVPMwqoWHysQM46dO+O9 E1g8qmMTKIsu
wGzLAsGB5z/tHtQ9g5SZY5lXzgyuWTPBZjxyP7xoAnmmkSaOKKNHZ1ZvmcqA AR7H1oS7idYm
+dRKoZSVOOegJ6A/jRNaxzzRvKiOqKw2soIySOf0/Wop7HzbgS7o/vq2Wj3M MEcKc8Dj9T60
ANj1FX8hvLkCyxliBGxII29OOR8x56VdVg6hlIZSMgg8EVXgtTC0WZAyxIY1 G3B2nbjPPX5f
1qW3i8i3iizu8tAucYzgYoAkooooAKKKKACiiigAooooArzdfx/oKjqSbr+P 9BUdIYUUUUAQ
Q3SSBSVaMOu5N+PmHHofcfnUgmiLKokQswyo3DJHqKrLYqLWOMgM4CBtzFhg EEgZ6A4/lT3g
kMjAbdjyLITnkYxxjv8Ad9e9AEi3EJCnzEG8kLlh83OOPWkluoYshpFypG4b hkZIGT7ciqot
HkDNjiTcCGdlwCzEEgdeG6HFTGCXY0YCbd/mK245J3bsEY49M0ATiaIsqiRC zDKjcMkeopGu
IUZlaWNSoywLAY+v5io0ilFz5nCK3LgOW3HGOhHH1Hp+R5DefvyMebv/AA2b f50ATGWMSCMu
ocjIXPJ/CgOrbcMDuGRg9R6/qKpC0mCwoWDBPL58xgBtxkbcYPQ8n19qntot rOxBABKoG/hX
P+P6BaAJTNEoYmRAF6ksOOcfzBpn2lTcJEpQ7l3ZLdQc4wO/SomtD5QAxuEr ScMV3Zz3HI4I
/LFCWZEcyEhRLHs4JbByxPXr97/9VAE4uIWTessZXOMhhjpn+VDzxxypG7BS 4O3JxnGOPrzV
dLRjKjuqja4JBkZ+gbHJ9zU8iMZ45EwdoKkE44JHP6dKAHpLG7MqOrFThgDn H1pklxFGJMuC
0almQEbsD2qO3gkjaPftxFH5akHO7pyfTp79aZJaSSIYiVCbnYNnJ+YNxj/g Xr2oAlW7haby
/MjwVBU7x82SRgflUhmiDMpkQMoyw3DIHqagkgllWfcEVpYtgAYkA/N3x7io pLF2EqjHzbyr
GRurZ/h6Dr15/WgC60saoXZ1CA4LE8DnH86QTRMFIkQhuhDDnnH8yKjukIt1 WJASrphRwOGH
5CmR27fahPIEz8xwDnaSFHBx6KfzoAla4hVZG8xD5f3gGHB9D6fjTxLGZDGH UuBkrnkfhVJ7
eUWxQgHZA0KbSSWzgZPHHQevX2pWsWYyKSNrFyG3scbs/wAPQdev+NAFgXcB dFEqHfnBDDGR
jj68ipEljdmVHVipwwBzj61FtmaWOVljBUFSocng45zjrx0/Wi1ikiUqxAQA BEDbtv4kA/hQ
A5LiFyqiRN7AHZuBPTPamz3ccJkUkb0j3hScbuvT8qihtJI7fyyVzvjbg/3Q uf8A0E0+4gkk
M2zbiWLYcnGOuPr1oAlFxCYzIJYygOC24YH407eu0NuG04wc8HPSq1xavLP5 ikcBcDcVzjd3
HT736U/7ORaeWuA4O8ckjdncMk8nnr/SgCYyxgEl1wAT19Ov5UgmiYKRIhDd CGHPOP5kVWNk
QflckKAV3HqcgnP12jn1JNOjt2+1CeQJn5jgHO0kKODj0U/nQBJHcRtAsrsq AorkFvu56U5b
iFnCLLGXIyFDDJ4z/KqqWkkUEaKFYqAc7ypVgMZBwcj2P8uAqQzs8iPgr5iM ZDwWICngYxyR
60AWhNEd+JEOz7+GHy/X0pPtEOEPmx4c4X5h8309aqfZJjIGZgSo6mRjuO5T 0xhc7e3rT5ra
SZy7KuXQIyiVgByfTG7r0OKALlFNXdlt2MZ+XHpgdfxzTqACiiigAooooAKK KKACiiigAooo
oAKKKKACiiigAooooAKKKKACoLL/AI9l+rfzNT1BZf8AHsv1b+ZoAnpLP/j8 ufon9aWks/8A
j8ufon9aBFtvvJ9f6GnUxwGKgjIzzkexpdig5CjPrj/PqfzpgRNOyXPlvGNh RnDKSScYzxj3
96dHcRSsFVjuIJ2lSCMYzkHp1H51FLavOzNJKvQqgVMDBIOG55+6B24z61Gu nL5DxsYxuk34
jTaoGApAGe4yPxoAsC6iPl4LYkAKtsO056c4wPpRJM4k8qFFdwAzbm2gA5xz g+h/L6ZhnsfN
uBLuj++rZaPcwwRwpzwOP1PrU0kLmTzYXVHICtuXcCBnHGR6n8/pgAPtKBxG 5w/AOASoJ7bs
Y/P1HrTY723k27Wb5sYJRh16dR37evamm1dnJaVdrusjgJyWXHQ54Hyjjnvz TUsdqIvmZ2pE
udv9xs/rQA9b6F0VkY/MVxvVlyCQMjI56j8x0pLe9SSKEucO6KThTtBIBxno OvQnuPWoYLGU
29uJ5FDRIgCqvTBUkHk5+6Bnilh0xYnjOY22hcs0QLZUAcHsOB29eaALcE8d xGJIW3Iehx1q
So7eLyLeKLO7y0C5xjOBipKACiiigAooooAKKKKACiiigCvN1/H+gqOpJuv4 /wBBUdIYUUUU
AVBcOLa0kOWLjLhRy3yE8fiKQ3zBVAjVnYnhSzYxjOcLkHnpiphbRKeA3TAG 84X6DPH4UfZo
toGGBBzuDkN+ec9h+Q9KAGyzSbbdolwZG5V/l42k4PBx0qD7TJFBIzjK7pQj BvmyCx6EccD3
7VcaFGQIVwq/d2nGPpjpTWt4nTYyZXLHGT1Oc/zNACRTmSd4yoXbnAJwxwcZ xjp75pi3R3Zk
RUjLsgbf/dzyeOB8p71MsSK5cZLHuWJx9M9PwqOO0jXcWy5ZmOGJI5J7dO+K AI0vWc+X5WJS
QACSByCepAP8J7en4N+3tnHkFmGdwXLdGI4wP9k9cVK1om1thIc4+ZmZiMfj nueh70JZxrGq
tliM5O4jdkk4PPI5PXNADpHkF1EiAFWViwJx0K89PekguDKyZQKJE3oQ2eOO vHB5HrUrxq7K
xByp4IJH+R7U2OCOJsoCDjAyScD0HoPpQBA94wZ1Ea5DBQrOVY5YLnGOnPXm h71kPl+VmUEg
gEkcAHqAT/EO3r+MktokgPLAlgSSxOMEHA546dqX7NFtAwwIOdwchvzznsPy HpQBE905hldI
yqxoS244YHbu6YI7iiGV1LSSDKtKU3bycDcQOOg5wOPXJqVrWFsjaQCu0qrE AjGOg46UrwK0
LRL8qsSW75BOWH48/nQAguM26y7eHYAc9QWwD+RzVaW8MiKIh8xYEfNjjcmO 3cMD+NXXRZEZ
HGVYEEe1I0KOxZlyTtzz6HI/WgCBrplUjywZVbaVBJ7A5GFJ7jtS2s7zvI2B 5WQVJPIyqnGP
x9aka3jcliCGJySrEHoB1H0H5UscEcRHlgrhQuMnGB7evHWgCvcXbrDIyqFG HVGzk7lB6jHT
5T39KGnmimld0UqkSs6hzxy3Tjk4HtU/2eLcWKZzngkleevHT1/M0fZ49rKQ SHXY25iSRz3P
1NAEDXxUyEQsUQNzg9Vz1OMY49T2qaSV44A/ljeWAClvUgDJ/GhrWFi25SQw ORuOOeuB0B68
+5p08Qmi2EkDcpyPYg/0oAiW5dpxD5Q35O7DcDG0+nPDfn+dMe8fyGcRgboj ImH52jHXjg8j
1qwkEcbBlB3AEZJJJzjqT16D8qY1pGY3RcrvXbyScKeoHp+Ht6UARm+w0hMT +Wm75gD/AA5z
2x2Pf0p3mXH2iJCkYDKxYByeAV5zjryeKk+zxbixTOc8Ekrz146ev5mgW8Y2 /fJU5BLsT9M5
6cdOlACW05n3ZULjHy5+Yf7wxxUJv8MR5RbJGwqT8w3AdSAO46ZHvVmOJIs7 c5PUsxY/maYL
SEMG2njoCxwOQeBnA5A/KgCP7W3n+V5JOCFYrk4JA9sY57kfSny3JjkkBjJS OPzGYHtzxj14
/wA93mCNpN5BznOMnBPqR0J/wFOMaFmJUEsoVs9xzx+poApPcSzBEERQl8H5 mQMNrHrgHt2F
Pa+KmQiFiiBucHquepxjHHqe1TrbxoQwBLA5BZiT0I6n6n86RrWFi25SQwOR uOOeuB0B68+5
oAilvHjcL5DFtu5gMkgEnHQEZ49h70G8KKzyRgR7nUFWyTtz2x/snvU8kEcr ZcEnGDgkZHof
UfWgwRFQpQEBi2D6nOf5mgCGW5li2q0IMjZIClmGBj0XPf0pstxJIoMaFFEk YYs2GGSpxjHo
cdfWpvs0e0D95weD5jZ/POce1BtYSwO0jBBAViBx04HHYflQBFLNJFcSsFDR pErMC2MctnAx
yePapVuN0oj2/PuYMM9AO/6r+ftSyW8cj73BJIwcMQCPQjoeppyR7ZZJCcls AewHb8yT+NAF
WaWfMwXG1ZUVTuwednHTpyeac96yHy/KzKCQQCSOAD1AJ/iHb1/GdoI2csQc kgnk4JBBBx68
Cka3jcliCGJySrEHoB1H0H5UAI87BISkeWlOArnbjgnng+lRC9PzkxHbGhZy G6YLAgevK/8A
6qllt1kES5KLG2QFJHYjHHTrTlgiUMAgwy7TnnI56/mfzoAhe4kU7WQKwZM7 XyMM2O49un60
2O+Lru8lgGA2EggHJAGSR7jpnvUxtkwApP3lYliWJwcgZJ9f6+tAtYQCNpwR gZY/L9PTt09B
6UANjknN0UZUChFJAbOCS3TjnoPSrFRrAisrDdlRjJcnP155696ciLGiogwq gAD2oAdRRRQA
UUUUAFFFFABUFl/x7L9W/manqCy/49l+rfzNAE9JZ/8AH5c/RP60tJZ/8flz 9E/rQItt95Pr
/Q06mOAxUEZGecj2NLsUHIUZ9cf59T+dMCJp2S58t4xsKM4ZSSTjGeMe/vTo 7iKVgqsdxBO0
qQRjGcg9Oo/OopbV52ZpJV6FUCpgYJBw3PP3QO3GfWo105fIeNjGN0m/EabV AwFIAz3GR+NA
FgXUR8vBbEgBVth2nPTnGB9Ki+3R+eqgny9jMWKNycqBtPfOe2e1JPY+bcCX dH99Wy0e5hgj
hTngcfqfWmiwfEamZdsKbYxs5GCpGeefujpj8KAJ/tcO0HLkk42iNiw+q4yO o7dx609pcXCR
Y+8jNnPTBA/rUAtJFk85Zk88k7iUO3BCjgZz/CO/r+Ek0MjzRyxSIjIrL8yF gQSPcelAC/ao
Q5UvjGcsQQvHX5unHP5H0o+0x+Xv2y4zjHkvn8sZ/GoXsfMDRvJ+5JdgAuGB YHPP/Aj29PxW
a1knVfNeF2UnhoSUwcfw7uvHXPc0AKL5GeRQOFdVDc7WDbecgY/i6U43tuFL bmwMY+RvmyQP
l4+bkjpnqKiisDFEsQlBQGNjleSy7ffoQvSgWBxErSgrCFWPC4O0Mp555Pyj njvQBailSVdy
E8HBBBBB9weRT6jii8t5mznzH3Yx0+UD+lSUAFFFFABRRRQAUUUUAV5uv4/0 FR1JN1/H+gqO
kMKKKKACiqkd6NiPOqxLIgdSGzxkDngY+8Km+0R7guTk46qcDPQE9j7H1oAl oqBbuIqCSRkn
op4AJGTxx07+holu0jBIDNtYA4U45IHBxyeelAE9FRvPHGis5Khzhcg5JxnG PWmS3ccaSEZY
opPQgEgdAemeP50AT0VAtyiovmsdxGSRGy4GepHYfX0pftUOGwxO1tpAUk55 49zx/WgCaioT
dwg43HpknacKORyccdD19KU3EYLDJ+Xqdpx6YB6E54wKAJaKh+0xbQcsSTja EJb8sZ7j8x60
TTFJ4o1/jySdpboRxx069aAJqKh+1wAFi+1RjkggHnGQe45HI9aS4uRDHGwC 4dsZkbYBwTzx
7UAT0VCtynlK7gqGzyASBjvnHTvk9qa90CVWACRi5Q5JUAgEnnHt/KgCxRUE d3E3yswVwCWH
pgkE59Mg8/T1pTdR4BGcllXDKwIyfp/9agCaioRdQkE7jgDIyp+b6evbp6j1 pBdK0pRUkJ2B
h8pGevHPTp3oAnoqFJyCwmUKVKjKncMngDOBz/iKmoAKKKKACiiigAooooAK KKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKgsv+PZfq 38zU9QWX/Hsv
1b+ZoAnpLP8A4/Ln6J/WlpLP/j8ufon9aBFtvvJ9f6GnUxwGKgjIzzkexpdi g5CjPrj/AD6n
86YETTslz5bxjYUZwykknGM8Y9/enR3EUrBVY7iCdpUgjGM5B6dR+dRS2rzs zSSr0KoFTAwS
DhuefugduM+tRrpy+Q8bGMbpN+I02qBgKQBnuMj8aALAuoj5eC2JACrbDtOe nOMD6U24mmil
iWOKNxIdoLSFcHBPoewqOex824Eu6P76tlo9zDBHCnPA4/U+tWJYvMeFs48t 92MdflI/rQAj
XESSFHYoQM5ZSF6Z6ng8fyNRG9XzUHzLGUYncjKcgqAAD1+9Ub6fuuPN3RHl jl4sscgjBOeR
z09ABSpp4DIzSncgbbtGAhO3G3JOANvTpye3FAE11NJAitHGjgsFO5yuCSAO x9acZ1RkSXKu
wHQEqD6bsY60SxGWFUZhuDIxIHBIIPT8KgnsfNuBLuj++rZaPcwwRwpzwOP1 PrQBIL23JI3N
03A7GwwyBwcc9R065qaNxIgZQwB/vKVP5Gs9LSZmEbLH5MUZjTzYw24ZXGQG 54X2+lXoIjDC
qF2cjqzEn+dAElFFFABRRRQAUUUUAFFFFAFebr+P9BUdSTdfx/oKjpDCiiig CtHZxx26RIFU
goWYLjdtIPP5frTmty0jEOAjOrsNvORjGDnpwO3rSw/ap4hIgh2kkDJOeDj0 p/k3vpb/APfR
/wAKBFQWO/53Ee5ich0DFQWJGOwPze4qY27bWQSDZu3qNvIbdu5OeRmpfJvf S3/76P8AhR5N
76W//fR/woARoy5iLMMxtuOB14I/DrVdrBWMmDGN4b5vLG7LZ6n059u1WRHd kkD7OSDg4Y8f
pR5N76W//fR/woAhuLRZpd58skqFO+MNgc9PQ8+/ah7QPCEJViJGcb1yOSeo /GpvJvfS3/76
P+FHk3vpb/8AfR/woAgFmBFKgYDzI9nypgD73Qf8C/Sla1LRvEXUxs24Apk5 3bueeRntU3k3
vpb/APfR/wAKPJvfS3/76P8AhQBXNl8gVTGhySWSPaRnH3SDx09/y4qwY8zp Jn7qsuPqR/hR
5N76W/8A30f8KPJvfS3/AO+j/hQBXFmcRgyAiIAJhewKnnnk/KPSpp4mk8so 4VkbcNy5HQj1
HrTvJvfS3/76P+FHk3vpb/8AfR/woAqy2HmRld6EsDkvHuwSSSV546+/QelS m0VlRXw6rI0h
DLkHO7j/AMe/SpfJvfS3/wC+j/hR5N76W/8A30f8KAGNbK3mDOEkjEe1RjAG en51G8EjHczB
3ZkyVG0AK271Pv8ApU/k3vpb/wDfR/wo8m99Lf8A76P+FAFaOwWNcKYxgDaV jAPBBG49+g9O
/wCEphl3FxKodk2sQnpnBAz7+9SeTe+lv/30f8KPJvfS3/76P+FADIopUj2e YgwQQVQjvk5y
TnPrU1M8m99Lf/vo/wCFHk3vpb/99H/CgB9FM8m99Lf/AL6P+FHk3vpb/wDf R/woAfRTPJvf
S3/76P8AhR5N76W//fR/woAfRTPJvfS3/wC+j/hR5N76W/8A30f8KAH0Uzyb 30t/++j/AIUe
Te+lv/30f8KAH0Uzyb30t/8Avo/4UeTe+lv/AN9H/CgB9FM8m99Lf/vo/wCF Hk3vpb/99H/C
gB9FM8m99Lf/AL6P+FHk3vpb/wDfR/woAfRTPJvfS3/76P8AhR5N76W//fR/ woAfRTPJvfS3
/wC+j/hR5N76W/8A30f8KAH0Uzyb30t/++j/AIUeTe+lv/30f8KAH0Uzyb30 t/8Avo/4UeTe
+lv/AN9H/CgB9FM8m99Lf/vo/wCFHk3vpb/99H/CgB9FM8m99Lf/AL6P+FI0 d4vaD/vo/wCF
AySiodt36W//AH2aWFpGklSXYCig/Ic9aAJaKKKACoLL/j2X6t/M1PUFl/x7 L9W/maAJ6Sz/
AOPy5+if1paSz/4/Ln6J/WgRbb7yfX+hqK+/48bj/rk38qmZQwwwB+oqveoo srghRny25x7H
/E/nVLcDm/sYbCROzS7UYqVAHzYwAc/7Q9KjFrMSRtGQcYLAEn0A7n2HNP8A tsnnQsSxjiKE
R7uPlAH9P1pILkRKm5CxjfehDY5468cjgelb6mYn2WQhCNuGXdlmUDqe+fbp 16+lLFaSPIiv
iMM4T5iAeuPu9Tz/ACqVLwRRJGrSYCDcY32HOWPXHT5vzFR/awWSQofNjbKn dx97dyDyeSe9
GoaDI4N05jdwoCliVw3QE8YOD09aVrYll8o7lddwLYXAyRzzgcj19KSOYQzm SJWUbSFy3IyC
M5x71Il64kMjby7Lsd1faxHGOex4/EfnRqAn2RltyxUmQvsVQw9ug/izntTR aTEkKqsAMkq4
IA4zyDjuKc94xeNwp3RybwXYtnhcZ/75/wD1Ust4ZEdP3rBl25kkLEcg/wDs tGoaEa2szBdq
gliABuGeemR1A5HJ9RR9ll3AYUgjO4OpUfjnA6j8x61OmoMoiyJDsK/L5h2Y XHQevHv3qKK5
CQeSyFkJbdhsHnaeOPVRRqGgz7NLsLYUgZ6MMkDqQO468j0NS20LxX1tv2gm VeAwJHI6jt+N
H2wi38pfNCgFVAkIXBJ6gdTz7duKkiuBPfWuFbiVcs5DMeR1OBmjUDqaKKK5 zQKKKKACiiig
CvN1/H+gqOpJuv4/0FR0hhRRRQBRmL/2bZokskfmXOwsjYOCWq1/ZX/T/ff9 /v8A61V3iml0
20a3i8xorjzCu4DIBbuasfa9R/6Bf/kwtMRBYT3J02zbzAfMZld3yzZycY/I 9fap/tCR5Md3
ExKkAM2Rnt34qO2s7lNIghAWOeNi2GPHU9xn1qJtNvG7w/8Afbf4UKN3e4m2 i/ZSLI07qy5d
w20MCVG0DnBPoaL26e1AbyldCG534OQrN0x/s+tLBafZ7Zo4nxKw5kIzz649 B6Ul1avdBleV
QmDtATkEqV5Oeep7Cm9xjDeyfZZZ0S3kWMEny5ywwBk87evT86HvZEnEDJbr IVBw05GSSQAP
l56frUrwzS280U0sZ8xCoKRkYyMepzRJDN9oaWGWNdyKpDxluhJ9R60gD7bb 5ILMNpIJKNjg
4JzjoO56Con1FU84bCxjRnG3JBwWGCccfd/XvSvY7kdfMxuSVc7f77Z/Sj7D xKvmfLMGWQbe
cEsRj0+8fX8KAJTdwqAWLjIycxsNo9W4+UcHk46UfbIMMQ5ba2whVJO7njAH J4P4c9KhmsDO
4klMLuV2sWhzwCfu5Jwee+e1Pe0Jt/LDRk+YzhnQnGSTxgjBGeuaALKsGUMM 4IzyMH8qWmxp
5capuZtoA3Mck+5p1ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFN0/D+oqWq9352FEIQ9c7zj0oAz o76R7wxm1mWE
8LIUPX39v8/SeH/j6uf91KNt36W//fZpLYOLi48zbu2rnacjqaQE9FFFAwqC y/49l+rfzNT1
BZf8ey/Vv5mgCeks/wDj8ufon9aWks/+Py5+if1oEXaKKKYBRRRQAUUUUAFF FFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFAFebr+P9BUdSTdfx/oKjpDCiiigCm8s0Wm2i28 vltLceWW2g4B
LdjVj7JqP/QU/wDJdaqzB/7Ns3SKSTy7neVRcnALVa/tX/pwvv8Avz/9emIj sr25ksLV2USP
MWUyE4wcnHAHP/1qtbp4skkSfKcKSASewBxVKzhuE0a2CQnzY3LbG4PU+uPW q7WN0elmfzT/
ABoUbu9xN2NNJvKSecxyFXlXau3BOQq9DjHPrUou4ghaVhDtbawkYDBxnGc4 6c1VTTfLsmjA
jeV2RnDcKQGB29OnXt3p32SZUwgRVLE+SkrIq8AcMBnsTjH8XtTe4yzNcxwq ed7Ahdikbskg
dz/tD86I7mN8hj5bg7SjkZB49/8AaXp6iqkOnMlq0TFN7NFllJBwoXPPX+E4 +tWFtES5ikUA
hFfliWbcdvOT7AikA9rqBUlbzYz5X3gHHB9Dzx+NPE0ZlMQkQyKMlAwyB9Ko SWsy2hjIU+Xb
tBHtJJfOACeOOg9evXilbTmcyISArGQhzIxwWz/B0GN3X/HgAsi+tjJGizRt 5mdrBgQSMcfX
kcVYqtsnaaOZkjDKGQqHJG0lTnOOvHT9as0AFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVFN0/ D+oqWopun4f1
FAEFQw/8fVz/ALqVNUMP/H1c/wC6lIZNRRRQAVBZf8ey/Vv5mp6gsv8Aj2X6 t/M0AT0ln/x+
XP0T+tLSWf8Ax+XP0T+tAi7RRRTAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAo
oooArzdfx/oKjqSbr+P9BUdIYUUUUAVftM1tptt9nEZeWfyxvzjkt6VN/wAT j/px/wDH6p3L
rFptjI5wqXYYn0ALVc/tvTv+fj/xxv8ACmIS01F5bO3kkhLSTbgNgwoIOBkk 8Z/xqx50se4y
R7lClvkHPHbGeazrEuuh2jpG0hSQttUZPVqhZrk8hLvPX7r0KLb0E3Y2LWTz WndX3oZPkIOR
javT8c1YrPjtbgWbea7PI5UmMvkbQcleTjJGR6dvemy2zOp8u02bo9sQ+UeQ 2T83XjqDlcni
m9xmlRWW9i+2QrCu9hMwIxneWyhz64zg9qsXsUtxHt2NsWTJClSZF2+jcdT0 Ppn0pAXKKzxb
OIo1ETEKPnDOMuuThOOOPTp26Emobu1uJZZWSJt7h1LLsCspUhRn7x/h68Z/ CgDWpjyBHjUg
5kbaMeuCf6VmXlqYoLh44lRRvxtwMR+UePpu5x6806S0lc5t4fsy9lyF2tsc bvlJ/vKPXj2o
A1KRmCjJz1A4GapWcL26uUikAYqNjlF78nCjHQ/U4x6VG1rKZ3ZYuDIrF5Au 8/Op4IP3cA8H
np+ABpUyWQRIGYEgsq8epIA/nWdBYvEkW2FVZEh5GBht37z8xjPrUdpbs9tb NDb+UAkZc/KP
MO5Du4POAG6880AbFFZ+nWskEm5xIG2YdiUw7cc8DJ78tzz7mtCgAooooAKK KKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACopun 4f1FS1FN0/D+
ooAgqGH/AI+rn/dSpqhh/wCPq5/3UpDJqKKKACoLL/j2X6t/M1PUFl/x7L9W /maAJ6Sz/wCP
y5+if1paSz/4/Ln6J/WgRdooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUU
UUAV5uv4/wBBUdSTdfx/oKjpDCiiigCul21ppsDJF5rSSmMLu28knvUn2vUf +gX/AOTC1UnY
Jp9gzEKouwSSeANzVp/b7P8A5+4P+/gpiIbbU45raGV1KPNu2xjLE4OOuPp+ dTC52hjMhRQp
bcASMDr2rMs5Fh0Ozlf7qSEn82qF9RfOftWT/wAB/wAKFGTegm0jbhdmluAx yEkAX2G1T/Mm
pqzbeO5SwYtlQSuI0UKVTPzdAOSM+/40S7tp8r7Tjy/3H3/v5Od2f+A/e4/W m9xmlRWW6XAW
RlM+7Ezj5m+8G+Tj6E8dD71YvWlePbH5iKsmHYKxyNucjaQTyQOPftmkBcor PAmEUYLTsMfv
CFIOzJxgZJz+uM55xUN21z5spi81WIddiq54CnaQ2dvJCngZ5x60Aa1NZ1Rk Vjgudq+5wT/I
Gsy6E0EU7RtMApZQSzHC+UWzz/td+vb2olWYsDaCYqpynmBsh9kn97nH3fb9 aANWkZgoyxAG
QOT3PSqVmXjVyzSyoSoAMbDBJwT8xJ7jPb9ajbzvPfb5r/vFy/zqAN6/LtPB 4z8w7DnryAaV
Nd1jUM5wCQv4k4H6ms2BLhEiOZ9wSEnczHlmw+c+3bt14qODfLb25j89wRG0 pfcctvQ5G723
dOP0oA2KKzbI3Ee+SZpZCsZMiCNvvegycHv90Y/SnSC4OoE+ZIBvXYAjEFcD POdv97qM+nag
C68saOqOwVmGRnvyB/Mj86crB1DKQykZBB4IrJVZTLAwFx5wUCYkPgHfHnGe McN04x7Vd01P
Ks44yJAyAK4fPDADOM9vpxQBaooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiig
AooooAKKKKACiiigAooooAKim6fh/UVLUU3T8P6igCCoYf8Aj6uf91KmqGH/ AI+rn/dSkMmo
oooAKgsv+PZfq38zU9QWX/Hsv1b+ZoAnpLP/AI/Ln6J/WlpLP/j8ufon9aBF 2iiimAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBXm6/j/AEFR1JN1/H+g qOkMKKKKAKwm
gh0uE3MBnVpSqoEDHdlscGmedZ/9AWf/AMBRTZf+PLT/APr8H/oTVtUxFO1v LQ2kUke2GN92
xCAp4POAP6VKt1GSQx2YG7LEYx9Qay7AomkWMr4G2Q/NjkDLf4CiTUJiCG8s g8FSvUe/NFpN
6Culua0UheSZSBiNwox/ug/1qWsy2lnWxeUqEVmXD8k4JAZyST0HQn09KWW5 ZFPl3e/bHuiP
ynz2yfl6c9AMLg803uM0qKy3uLhVkcTMcCZwpVcfI2AOnQ5578dRVi9uGWPE LqpEmyR2O0J8
uepBA7dj1pAXKKzxcS+VGWmX5h87KuQi5OHzgdfXGO44BqG7vpY5ZfLlUcOB GzAsuFJ3bcZ6
juTwenPABqsodSrAMpGCCOCKCwBAJALHAyeprMuLi4gSbEzMULINyr/zyL54 HXPHpjt3ps1w
+9TBL9qCEsjcHLeXJ8vy49Bx15oA1qKo2dw21zNPHKgKhWRt/JOMZCgen589 qie4czOhkD4l
QYTayKPMUAHjIb6++PYA06b8kSAfKijCgdAOwFZsFxcbInaZnykLkFV53tgj gdscfrmo0uGm
gg/0jz9/ltJ939229OOBxnJ6+lAGxRWbZXcp3yXEse1Yy8ig7jGfTAUY78Ek 8exp0lxONQMY
kjVQ6hYy3LqQMnbtJPU85A456GgC/uAYLkbiMgZ5I/yRS1jGcyTW7tOJJSo3 xkKfKJkjyMYy
O/XnipLeXy7W2je7MaBMO52gowC/JyMDqeDzxQBq0VTsJZ5jI8zbcbR5e3G0 lFJ9+pP69e1y
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAqKbp+H
9RUtRTdPw/qKAIKhh/4+rn/dSpqhh/4+rn/dSkMmooooAKgsv+PZfq38zU9Q WX/Hsv1b+ZoA
npLP/j8ufon9aWks/wDj8ufon9aBF2iiimAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQBXm6/j/QVHUk3X8f6Co6QwooooAqn7F/ZMX2//AFXmNjr1y3p+ NVf+Kd/z5lTS
/wDHlp//AF+D/wBCapYbi+vZo4vKNsIWBuGP8RBztX2PH5/mxFq1SyfT1EKq 1ryQHBI6nPX3
zQlvYyNtW2hzjODEB/MVnWMcZ0qwlkAykjDJ6AEnP8hT5b1WUhraPaQVPzdj x6cUe9eyFddT
Vjk3vKuMeW23r14B/rUlZKSyS2MrKrgvLGN5kwXO5QeQBjjAyPerKefGyQKE jdwz5Z2mGBtH
fB7/AKe9NqzGXaKoRXskqLMFRY90alCCSSwU5z7bvTt78QW0lxHaQzIsnzIg bzpNwdmZQCOT
jq3p1HBpAa1FUzcTK7EmMrHIkTDacsW28g54+9056dari9uVDKkav5W5nPQH 52HVm+X7vv8A
pQBpSIssbRuMq4KkeoNOqhNLPJA0iOiL5wRRtOQRIFyTnkHB4461eXIUbiC2 OSBgE0ALRRRQ
AU2NFijWNBhUAUD0Ap1FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABUU3T8P6ipaim6fh/UUAQVDD/x9XP8A upU1Qw/8fVz/
ALqUhk1FFFABUFl/x7L9W/manqCy/wCPZfq38zQBPSWf/H5c/RP60tJZ/wDH 5c/RP60CLtFF
FMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCvN1/H+gqO pJuv4/0FR0hh
RRRQBWEME2lwi5nMCrKWVw4U7stjk0zybP8A6DU//gUKZOofT7BWAZTdgEEc EbmrT+wWf/Pp
B/37FMRHb2dqdPjgRvOgUkq273PcUxNPsJM7Bvx1xMx/rVPT03aVYEu4BdkK hiAwJPX16frU
sl5Cc4jmUlSu4MMgHuOaLyTshadTRTy33RBBtiYLjHAIAIx+Yp0sMcy7ZY0k UHOGUEZrOiuP
MgkdS4YzxbmxtByyjA5PYDP1p1ndylWkdd0TPGMl/mBZE7Yx1Pt1PFN6MZfM MZlEpjQyKMBy
oyB9aXy02BNi7VxhccDHSqgvnNrFMIQGlAZY9xJ246/Kp/yR06UJfmSKSZYS IYwpLFucEKxO
PYEn8BjOeEBaMMZlEpjQyKMByoyB9aYtrCFQMiuUJYM4BIJOSfbnninQy+bv IGFVyoOfvY4P
65H4VJQBGYIS7uYoyzjazbRlh6H1p6qEUKoCqBgADgClooAKKKKACiiigAoo ooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAqKbp+H
9RUtRTdPw/qKAIKhh/4+rn/dSpqhh/4+rn/dSkMmooooAKgsv+PZfq38zU9Q WX/Hsv1b+ZoA
npLP/j8ufon9aWks/wDj8ufon9aBF2iiimAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUA
FFFFABRRRQBXm6/j/QVHUk3X8f6Co6QwooooArpaNd6bAqS+U0cpkDbd3IJ7 VJ9k1H/oKf8A
kutU7lFl02xjcZV7sKR6glquf2Jp3/Pv/wCPt/jTEOi01U06O0eViEJO9Rg9 Sff1ph0eI9Z5
/wA1/wAKrad5g0qx2SlEZmRlAHOSe/bofzqc3FvGW8mV42IK5EfAPqRjsaOZ p2QrLqXEigMf
kIo2xMPlGeCMMP6GkSyt42BRWGMfLvYrwABxnHYflVaK53RyvG43tNGWABwA Sq4yQM8A/nTr
W+aTc0iuY2ZArgAAblXAxnPU+/XrTe4yybWIxxphlEY2qVcqQPTIOew/Khbd YoHjt/3RYYDf
ewQAAefYCojqEYtUuCjhHI27iqk5Ge5H+fbmlW/icMyLIUTbl9uAAQCDz7Nk +mDntlAWI0WK
NY0GFQBQPQCnUyOQSF9oOEbbnsT3x/L6g1Vj1S3l3bCScAqAQS2SAOh45I64 6/WgC7RWa1/K
skgMbZ8wBY2Azj92OoOP4z+fbFaKklQSpUkdD1FAC0UUUAFFFFABRRRQAUUU UAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB UU3T8P6ipaim
6fh/UUAQVDD/AMfVz/upU1Qw/wDH1c/7qUhk1FFFABUFl/x7L9W/manqCy/4 9l+rfzNAE9JZ
/wDH5c/RP60tJZ/8flz9E/rQIu0UUUwCiiigAooooAKKKKACiiigAooooAKK KKACiiigAooo
oAKKKKAK83X8f6Co6km6/j/QVHSGFFFFAFX7NNc6bbfZzGHin8wb844LelTf 8Tj/AKcf/H6q
zF/7Ns0SWSPzLnYWRsHBLVa/sr/p/vv+/wB/9amISDT5U0uK2MoSWNi29Rkd T9PWojpEp4+1
Jj/rl/8AZUlhPcnTbNvMB8xmV3fLNnJxj8j19qn+0JHkx3cTEqQAzZGe3fij ncXZCsmTx2sK
weQh4R1ZiDyWBB5/IfhTYrBIsKJZDGCp2HGCVAAPTP8ACO9Rx3ACzSoUJeZP l3BioO1ecH2N
Ptr9ZWYPxkrtIVtvKqfvYx1Pt24pvcZJ9kVY4VjkkQxJsVxgnHHHIx2HbtSJ aCC1kihw5ZcA
S8gkKFGfbgZpy3cLwiZC7xk4BSNmzx7D/PSgXluWKrIGIKg4BI+bGOffI/X0 NIByQCNIkVnx
Gc9fvnBzu9eufrUYslEfl+bIUUAIMjCYIIxxzjA656e5zOrq7OqnJQ7W9jgH +RFRC8gIJ3nA
GRlSNw/2ePm6jpnqPWgCMWCFmd5ZHcknccZB+XB4GONgq0oIUAsWIHU9TVE6 kA0mUJUOFA2s
Gx8g6Y/2/wCVWftUW8LlgTjqhABPQE44PTg88igCaio4J47iMSQtuQ9DjrUl ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAVFN0/D+oqWopun4f1FAEFQw/8fVz/ALqVNUMP/H1c/wC6lIZNRRRQAVWs w/2cYZQMt1Hu
ferNMsIY2tFLBskt0Yj+I0APpLP/AI/Ln6J/WlpLP/j8ufon9aBF2iiimAUU UUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBXm6/j/AEFR1JN1/H+gqOkMKKKK AKbxTS6baNbx
eY0Vx5hXcBkAt3NWPteo/wDQL/8AJham03/jyT6t/wChGrVMRl21ncppEEIC xzxsWwx46nuM
+tRNpt43eH/vtv8ACtmiqUrCaTKkdgsduIw3zb1dnI6kMD+A4pkNg8SiMzKY soxGzDEqFA5z
/sjtU9v/AK66/wCuo/8AQFqelLcZTaxzbwRbo28lAuJI9yngc4z14/U0RWf2 eymix5+5Mbfu
7sIFxntnH61copAQxQtFHEgk+6Sznb98nOfpyc1Wi0xYk2qY12gbGWIA8EEb j36Dpjv7Yv0U
AUfsDtI0skylyd3ypgZ+THGf9gfn2qQ2rs5LSrtd1kcBOSy46HPA+Ucc9+at UUAR28XkW8UW
d3loFzjGcDFSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABUU3T8P6ipao6p/qk/3qAHVDD/x9XP+ 6lUas6f9+f8A
3V/maQFuiiigYU3Tz/oa/Vv/AEI06o7D/j0X6t/6EaBH/9k=
--------------C976B59B7753A93303C598E2--

--------------91A87A86F393D2A9B658D17A--


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Generated impl. class inheriting from wrong parent? [message #383597 is a reply to message #383595] Tue, 30 March 2004 20:56 Go to previous message
Ian Phillips is currently offline Ian PhillipsFriend
Messages: 79
Registered: July 2009
Member
Arhh! I've realized what I was doing wrong. I was only adding the project to the
"build path" and not adding it as a "project reference" as well.

Again, thanks for taking the time to help me out! If you're ever in London let
me buy you a beer!

Cheers,
Ian.

Ed Merks wrote:
> Ian,
>
> I don't see the results that would indicate that step 8 was actually done:
>
> I.e., the .project file looks like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <projectDescription>
> <name>BarProject</name>
> <comment></comment>
> <projects>
> </projects>
>
> not like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <projectDescription>
> <name>BarProject2</name>
> <comment></comment>
> <projects>
> <project>*FooProject*</project>
> </projects>
>
> Note that plugin.xmls are not regenerated once they exist, and that once
> you have a BarPackage interface with @model information in it, anything
> bogus that you don't want won't go away unless you remove it from here
> or remove the whole file.
>
>
> Ian Phillips wrote:
>
>> I'm trying to narrow down what (if anything) I'm doing wrong. So,
>> starting with
>> a fresh install of eclipse from these versions:
>>
>> eclipse-SDK-I20040326-linux-gtk.zip
>> emf-xsd-sdo-SDK-I200403250631.zip
>>
>> and a new, empty workspace, I followed these steps:
>>
>> 1. create new EMFProject FooProject
>> create as empty project
>> 2. create package foo
>> 3. create interface IFoo
>> add @model tag to interface
>> add single attribute as: public String getValue();
>> add @model tag to attribute
>> 4. create EMFModel foo.genmodel
>> load from annotated Java
>> select package foo
>> 5. add model plug-in class: foo.fooPlugin
>> 6. run "Generate Model Code"
>> 7. create new EMFProject BarProject
>> create as empty project
>> 8. open BarProject properties
>> add dependency on FooProject
>> 9. create package bar
>> 10. create interface IBar extends IFoo
>> add @model tag to interface
>> add single attribute as: public String getDrink()
>> /* well, it is a Bar after all... */
>> add @model tag to attribute
>> 11. create EMFModel bar.genmodel
>> load from annotated Java
>> select package bar
>> NOTE: at no point do I get the option to select or reference
>> package foo
>> 12. add model plug-in class: bar.barPlugin
>> 13. run "Generate Model Code"
>>
>>
>>
>> as before, it creates a bunch o incorrect classes in BarProject. The
>> actual
>> results are attached. You could tell it was going to go wrong when it got
>> to step 13 couldn't you?
>>
>>
>>
>> Should I file this as a bug? As it seems that I'm doing the simplest
>> possib;e
>> thing with the new build and it isn't working.
>>
>> Cheers,
>> Ian.
>>
>> --
>> #ifndef __COMMON_SENSE__ | Ian Phillips
>> #include <std_disclaimer> | TIBCO Software Inc.
>> #endif | www.tibco.com
>>
>>
>> ------------------------------------------------------------ ------------
>> Name: BarProject.tar.gz
>> BarProject.tar.gz Type: Unix Tape Archive (application/x-tar)
>> Encoding: base64
>>
>> Name: FooProject.tar.gz
>> FooProject.tar.gz Type: Unix Tape Archive (application/x-tar)
>> Encoding: base64
>>


--
#ifndef __COMMON_SENSE__ | Ian Phillips
#include <std_disclaimer> | TIBCO Software Inc.
#endif | www.tibco.com
Previous Topic:Implementation of operation in annotated Java?
Next Topic:How's jet dependent on this?
Goto Forum:
  


Current Time: Wed Apr 24 13:37:40 GMT 2024

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

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

Back to the top