Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Diagram partitioning -- Changes in one sub-diagram cause changes in another sub-diagram!?
Diagram partitioning -- Changes in one sub-diagram cause changes in another sub-diagram!? [message #498650] Tue, 17 November 2009 21:21 Go to next message
TL is currently offline TLFriend
Messages: 22
Registered: July 2009
Junior Member
This is a multi-part message in MIME format.
--------------020000060704040606070203
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit

I am working on partitioned diagrams and am experiencing unexpected
changes in one sub-diagram because of changes made in another
sub-diagram. These diagrams are not of the same type but contain some
duplicated information (nodes and corresponding semantic elements).
Could someone please give any guesses on what is going wrong? To
highlight the problem look at the following scenario:

I start with my main diagram that contains nodes and connections between
these nodes. This is documented in picture "step_1.jpg". Both nodes have
sub-diagrams, which are basically state diagrams (pages with #1 & #2).
An example of the sate diagram of the 'Evaporation' node is shown on
picture "step_2.jpg".

Then I add a sub-graph to the connection, which is shown on picture
"step_3.jpg". The new sub-diagram, which is showed on picture
"step_4.jpg", contains copies of the nodes and corresponding domain
elements of the state diagram of the 'Evaporation' node (shown in
"step_2.jpg"). I do this initialization programmatically. A sub question
arises: Why do I have to save the displayed diagram manually (the '*'
sign appear which denotes that the content is not saved). The code for
my initialization is show in [1] at the end of this mail.

After I save the diagram show on picture "step_4.jpg" this causes
changes to the diagram from which it was copied (it is shown on picture
"step_2.jpg"). This behavior is not expected especially because the both
semantic elements (the original and the copy) are contained in separate
containers (although they are linked through a hierarchy of containments).

The changes to the state diagram because saving the other diagram are
shown in picture "step_5.jpg". I debugged the program and it seems like
the semantic elements of the original diagram (shown on picture
"step_2.jpg") were deleted from the model when changes were made to the
previous diagram (show on picture "step_4.jpg"). When I save this
diagram, then I receive an "Unhandled event loop exception". The stack
trace of this exception can be seen at the end of the mail under [2]. If
I try to look at diagram #3 again I receive and never-ending loop of
warnings, that are depicted in "step_6.jpg".


As already said I cannot imagine why this is happening. I think that all
the 3 different diagram types share one EditingDomain because I used
diagram partitioning, although I did not explicitly share the
EditingDomain as documented in
http://wiki.eclipse.org/GMF_Tips#Sharing_single_EditingDomai n_instance_across_several_diagrams
.. Could this be a problem?
---------------
Tomaz
--------------
[1]

//this method is called only once in the get???SemanticChildren() method
of ???DiagramUpdater class
private static void addInitialDiagramElements(final View view) {

TransactionalEditingDomain myEditDomain =
TransactionUtil.getEditingDomain(view);
final VirtualDependence container = (VirtualDependence) view.getElement();
final Diagram sourceDiagram = findCorrespondingStateDiagam(view);

AbstractTransactionalCommand createModelInstances = new
AbstractTransactionalCommand(myEditDomain, "add Nodes", null) {

@Override
protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
IAdaptable info) throws ExecutionException {

for (Object child : sourceDiagram.getChildren())
{
if(child instanceof Node)
{
Node node = (Node) child;
//When using existing model element
State modelOfState = (State)node.getElement();

//making the copy
State mirrorState = (State) EcoreUtil.copy(modelOfState);
container.getStates().add(mirrorState);


Location locationOfOriginal = (Location)node.getLayoutConstraint();

node.eAdapters().add(new AdapterImpl(){
public void notifyChanged(Notification notification)
{
Object chagedFeature = notification.getFeature();


if(chagedFeature.equals(NotationPackage.eINSTANCE.getLocatio n()))
{
System.out.println("Location of original has changed!");
}
}
});


//create new
Node copiedNode = ViewService.createNode(view, mirrorState,
((IHintedType)
ProcGraphElementTypes.State_2001).getSemanticHint(),
ProcGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
copiedNode.setElement(mirrorState);
Location locationOfCopy = NotationFactory.eINSTANCE.createLocation();
locationOfCopy.setX(locationOfOriginal.getX());
locationOfCopy.setY(locationOfOriginal.getY());
copiedNode.setLayoutConstraint(locationOfCopy);
}
}


for (Transition currentTransition :
container.getSourceEntitiy().get(0).getTransitions()) {
//will do something in the future
}


return CommandResult.newOKCommandResult();
}
};


IStatus status;

try {
status =
OperationHistoryFactory.getOperationHistory().execute(create ModelInstances,
null, null);
} catch (ExecutionException e) {}

}




[2]

org.eclipse.swt.SWTException: Failed to execute runnable
(java.lang.NullPointerException)
at org.eclipse.swt.SWT.error(SWT.java:3777)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:136)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:3800)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3425)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.NullPointerException
at
si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDiagramUpdater$ 1$2.notifyChanged(ProcGraphDiagramUpdater.java:272)
at
org.eclipse.emf.common.notify.impl.BasicNotifierImpl$EAdapte rList.didRemove(BasicNotifierImpl.java:95)
at org.eclipse.emf.common.util.BasicEList.didClear(BasicEList.j ava:260)
at org.eclipse.emf.common.util.BasicEList.clear(BasicEList.java :1000)
at
org.eclipse.emf.common.notify.impl.BasicNotifierImpl$EAdapte rList.clear(BasicNotifierImpl.java:171)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.unloaded(Re sourceImpl.java:1511)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.doUnload(Re sourceImpl.java:1570)
at
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doUnload(XMLR esourceImpl.java:505)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.unload(Reso urceImpl.java:1585)
at
si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDocumentProvide r.handleElementChanged(ProcGraphDocumentProvider.java:732)
at
si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDocumentProvide r$ResourceSetInfo$SynchronizerDelegate$1.run(ProcGraphDocume ntProvider.java:1013)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:133)
.... 23 more

--------------020000060704040606070203
Content-Type: image/jpeg;
name="step_2.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="step_2.jpg"

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFk b2JlAGTAAAAA
Af/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQICAgIC
AgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMD AwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgA5AJ2AwERAAIRAQMR Af/EALAAAQEA
AgIDAQEAAAAAAAAAAAAHBggFCQIDBAEKAQEAAgMBAQAAAAAAAAAAAAAABQYD BAcBAhAAAAYC
AQADCwgHBgEJCQAAAAMEBQYHAQIIERcJIRITFBWV1RbWV5cxVZa2N3fXWJEi MtJTVhhBIzU2
txkzUWFxQyQ0JUUnUmKSRGV2hjhZEQEAAgICAgICAgEEAwEAAAAAAQIDBBEF EgYhEzEiQRQj
UZGhMmFxgTP/2gAMAwEAAhEDEQA/AP6z3cs14siORhbYr5W0W0rK1J4/vLFp BS9++hj9VDem
Pc3CeROWNzezt7dLlxp+2hZHd73bczvdOgVDucXbdh7Lo9Ro7+zoad9DdzZL YKa1rWvhy6NM
cTOzr7FYrFc+WZitazMzHM8Rwl9PJp63WZ9vPr4tjPGxhpWLzliIi9M9rcRi yY5mZmlPzM8R
zxHy0749clZrP189c16U58idfW4XR032LnUKnhTVJFdjKa0iU/gsvjtS0Unl MFmMkz4LZMaz
mLSkZeq7U0ro8UUw27k9y9R9oxY8+TZ7f0jYprYsmfL/AEsefW2djN9WOa01 8et9mG05MNct
Zx3tXn7aZOKWxZLd7D0vrmGb6WjljH2VdfDs4v8AHmpGbBm0sO545KWz7cYs uOuS0R455raa
zE/9q2r2CjpDnQA4NQ7LyZK0sRcYfFbW4schdlkzTqI1rGmBeyr4wjbYw7JV UhTTA58lyd/V
q24xC0rW0pOyLcLlaI8xuJXhKoJerTYlp2/V8ehU5/8AQ2cqq3n87XYhaaFo 5p1QcdLwY2Zu
K1mh04c/WqD8jkmyJQWyeKEq448FLTUn/hGzuFxAAAAAAAAAAABKqJt+Ncg6 Qpu/IYhfGyH3
fVVeW/FG2TpkCKSt8asqItEzYkMhRtTm9NaR8SNb0UWrKTLFactRrvqWcbpj G+wVUBDuOd6t
PJWoIHeEYhU5hsHtCDVrZFfbz3ELIdpNC7QqyDWgzPJLfDZpNPJPkn10MYl6 dx3Rq9HpmXbE
FKGzZvcl4XEAAAAAAAEWxJ/EpJLXFRvr44U7+qyTp7uqRna21nd9tUvhNtzC DHRe898sxptg
o/KNNnvMbFd9sGvV03M61Hxv05Cq7Gk747Lrck0SxWJE6qCujjommvR3qRMu r/R648Wi9yx0
jOVTQcvSKTStcozFKnZZpuWUnPovRdP33fa2x2Ox3vZa0/3uwpTHixdb9dce tubGHFWv26OT
JP8AixV5tbJe025mfz8X3qtTp97sMnVW18NcmLqL7VbzXYyTky4dH+5emTx3 MNcdckUyxF6U
v428K/VMTNq1WD2jLNU6RjmuNDXbaHxGcs0kT5QlpZjBpvs+FRaRHN6XcvZl e1WY2q1WpNiS
NMba6HFlk6neKpvj0XtvatnXydL7trRg9k1MWK9slbYrY9jDmnLXFmiMVrRj yTbBkjLj4isW
iMlIrXJGLHA99qdRjy13eiy/Z1ua14isxeLYr0is3pzeIm1Yi9Zpb5niZrbm a+Vs+6wc/wAf
H6cfvC+oA6wc/wAfH6cfvAIxZnKxtqCjLivufRSaM8cpSGXDYMjjRPqa6TF6 iFPp5U6HO8YI
a5ksjSjM9jcXw6MSda6IVWqVwTFOZbYswqSpQprBay94Qnq3FieYooJepI1F tb+ojihcqQsc
idWRrkhBkXkEkbdWWZNreS8NpZqgtxKblxGjglQr9VKJOHNdYOf4+P04/eAO sHP8fH6cfvAH
WDn+Pj9OP3gDrBz/AB8fpx+8AdYOf4+P04/eAOsHP8fH6cfvAHWDn+Pj9OP3 gDrBz/Hx+nH7
wCZT3kvH68lVKRF6Ielble9mutUxI9qIQHoWyQs9NW3eCldJTVbmhUI2QyKU 05pizEpSw/Li
oSl5J1J3OUEBTesHP8fH6cfvAIxcPKxtp9RWbWdFJpPZJb8zlVfQGLwb1N0d HiXxejLivvVo
OXTqZQeNNfrBHKUcWxCoVLyUurwtRaqjEqPdStShZ+sHP8fH6cfvAHWDn+Pj 9OP3gDrBz/Hx
+nH7wCM8ieXVfcX6NtTkHajv5PgVSQt6mb7qQsYkjq8eTE2ctcUjOJI9R9lc JpNHkxO0MaE5
am8ovC5Ml03xudqA1Mee2T4fo625MWrEJs+XVFOLL0Wyzk7jqx6chD3spVSK S8W2WMZlPuMx
bY5WTg3Yc4/63S1TGIujlMedUKxwTaJPGNw7GesHP8fH6cfvAOFaJ/Pno6cu LbDt3yLwV7Y2
RyLiSx6ltnZJkLA3OzTMOqlniprusgC13OWMxa9tVuarLk3Kc7I9UiVeqRB+ LZrLUklk1d2P
GIyi1bmWIPqppTyVHOyEiiTZdnEmIztv8hJ46y2BHG1sbnBagSq3lKWQ6IlB Cw4k0g80PsZZ
mQxm6EnL1S2OY17zfVcaWqXxsrTO2SzylmpWit0jqcrONDsqdj1yPTTBxhyg nJ26YLRpvoZp
qYXtrvpvrrvpvptjbTfTbGNtdtdtc5xtrtjPTjOO5nADyAdel13e80xWPFaW KbWlEjfuQqGE
pJKhzLqZYHmvnCcwBbLmuaNdckcbJQ7zKvk6xgdE6vvndsUEmlJSCjVO6g01 LzHrOm9x7T0P
D32Dvuyn2LP1GLYpi+rq4xWz5cNbRTi2hFq4/ttEfN+fH4nJE/s6Ppavru1s 9v8AdrYcev1d
qXiIrs3+zB/dw6mTyy/3K/XkpGel68YMlb8XiYpxWLbnwKRyF6TPzPMmQlgm 8HfCYrL0KJSm
WNBzsbGo7LEjkynp1zhtq3OjBKUR/gDTdzUZxhifYw/BWFBtl9S7jt+266+P 2LUjS9h1MsYd
nHW9b4/s+rFmi+K1L3/x5MebHeK2tNsdptjm1/D7L03t9PS1NmLdZm+/rctP PFaYmtvHytSa
3iYr+1bUtWZiOLREWiI58YzwWlFACHTy9Wmr6sg1oWDCpzGfXSc8c63UQQ7E LdppDZpyVt+t
aPjDNKTY9NHiDn+ps4tBHq/qGd7dkmiRIqNbjXHvSNVAVWMOy9/jUefXWMPk JdHpjaXZyhkn
URpXJYivcUCdYsjEhVQyQy6HqXxgUHbJFZjS7OjbuoK3ylVqSM6HbhzgAAAA AAAAAAlTvb8a
Zbvryg1SF8MmFlVVclvsTknTIN40kjVIS6iYZK0LssMcynQh8cHTkGymNxRK M9OanSrdjjiN
yyNFIVUBDpzerTC7frWj08KnMynFoQaeWQzaRbELIaWmF1fafHOr7BeX5wmE 0ifgvVn+pVrf
d06TRYrVsrM6apClDnq3NriFxAAABrlyh5W0hw7rxitG/JqxweHyK1anqBtc nyRxGNE7yW2p
2ywxGu2WTORRhr2Y4S1uSyUSM0tRuobYkwurlqSdoi30yEOgnaI1feNeEWHx Ura1eXqfe1bw
qta0cfHOh3YljOoadmwaRy2RWTPrwr2i2Jjmei5jf4g2KZYXLZVEpKhem5mO byHY9sDcasbI
hdyVrXtv1u8+sdd2rBonZECkPk52Z/L0LnLA3yeLPPkl+Qtb41+VGN0IP8XW pk6sjwneHFFm
a7aYDOAABgDQ2J16OURQ7c7VnZJQnRJSSttMZMaDUMdl2zCoL2L3S7sWNncx twl1L0K8k66p
+juZ3yHXL2oCR5d4yxR9gnkfgbm7VFeOxRsjnCeCJpNohktEqfVlAuVqUid4 d9j/AAbgQgzv
kw7DftuVrucWXptCZr62t7Pp7+5lxYtbHpbUT9lq0i3lm0beNZvMRa0xSZ8e eZiJ4/Cyet72
jodhq7PZ4L7PW4uz1MubHXHGXzxY7ZJyVmluK2i9ZmnF5ik+XFpiszLWHhVY cQirFa8AR4hs
cSWXyUoaWweOJJrAUzmhblHLCNPbFDGaFR95cDHA9nij0eYu8m5NQNejd3up hpRpZmPe/wCy
63tNGdfW2tfJnnc66YiMtLWvOLc1rW8a8+VuYra3PHxEc2iEh7V2d+19qntP PPsRGjTBfPau
T/Lkw9dTVyZptkiL+OXLjtek5YplvW9ZyUpebUr2Y87qPX8i+PyGpUsEY7Ma 3rkbwqkM6g0n
KjSuNSCpq55nUFZNyp5C1y88mPv7GmqeIvShW1nYP3dE5W6QkhSecWnMmlLd Vi/s/wC+I0jT
E15STGxRp7fOXWOQEGib7V8bJ5D8e697VXi/ZPD/AIzStrIkbVGLEY3zsvoF OqwruOyk8iHQ
+JPxsNdlUaZXFWnwErlHF209r1jcJhNCdTFd2FBuTlvVnwb8qVAxer/FauuQ /YKGcmeLPqlW
02kXFpg/qzNqC0VHqwllG8GknWX0ylwbTHiRaoQ5yIcJeQLLYfIeZ0pwaY+M 9LWUx8r4w0cf
Xtu4Y7nJKvuqCdipX9kx6HVRBrItPjHvatuxTizcymGpJQasgZstStxk20Ia XM8tSEOKgUB4
dkx4vnhT7G/cRlNq8liuP3CHmLZHZF15JdzpTU3Z8nx28IbQqO56O7PJjY6q saD3GgP3iKtH
LW1RaWFxjWoNlUjcshVeMvBq8Wns/wB3j0o4w+NON8f7eBN2Q/et+K0h5OzS gaH7L3iBXzPF
ofDeZjc5cfUc5qPmjAXAtWwW2kTlssfKla1mSlSBWyKDwVB2a94uzIa+3Bxw 8uShj/o0quqn
C7D+Kz5acL4rMfa9c1ptyLpQ3eo3xZVEBgzl2Y1uRuOyuFQvxGDPUPXbwxrQ KUSbZkIDY3kH
Xkur/s7pBQ9scdnyaw+O8/uP2IRVmyqkJLBLL49zftwWvNE8ZoBGpFZKSKMr Gy8Y0kPaEMdk
pcbhzLHX5oZtVROiB2Rs4YMn7P8AviUy6wpVVVJMfEqPr+OXaVx7hJEHZ9q+ KL+Ads8hqQ7O
ymqzURhFx5kdlRqkHyd2ZT9wzgx0q1Y9aJG2VK1S89O+vi5s2DnVvDuUL39V MYR2efVdwySz
minGyuzE8W4bsn9QLtCK15vxieWR1MQa6XrhFJ/K09vqlHrw8tmTU9LOpjxk xPhZH4gU5hpz
2jDBTMKry1agtXjFVUnnlycAX2uuBHDhwvHinbt38NrZkE75h+Qnyr6mvu4Y dMI6+WsnseuG
Fkj/AB3RWBo3u9aZh0dwva4vDjXQNxrO4NWMvo7q6kPGH13g035xdoVyXtyM U1W/Z22bf0ls
GzeVNnO3FS3FKfn63SXi+vgy/i/JVaGRLjM7Wc2mbRRqReLtieRJCg1x4d8c 7ikE3kzXNuLr
4s5w1jyN7MU23+0Ik73x7fZLWJNO8Euy4mfLKj5DeRdrvHK2RvltwqPTaNK9 I2xPsSk6ifbp
3F01bXF8VpA2q4tU3BOzQjXACbXk71VxQjW3AF2o/mNYVtXtXkYJn3MFvQcO 1tJwSfT6ZWGc
ouN8rKHwW222BaELXhmg8STLmhi2bWY5KjNC438rpnmXJaYuWt64qrtVeKVc Md+VjYNHVBN+
Kd5RpByEl6/jrKqttZcwXnbMH4/nvlS1vF5c0GrN331xZ09iElt6A5td3ZQm Drkrrs+eT7Lx
YhtKXlxofJxXxb5xyk8sgFYR7s57vu9JaFS9lv2efGSPSFgb+eZs54pIaqjM 1rC24/JlZHeT
w13Ij5zFuZHFruepCVp2lEwzTjjQPJuAQbkh2lu949jdLG6yDre4m3pyd4sx SpGns+nHkpWM
pQya71fM1n8BI6qtOyH9RBIxJYWdH50qlK12wS4SRQhCqXN2fPJ9FwS4hUnA +ND4kszj5wBi
bJSm3GiPdnORO6Q7QJ6hChfdsxti2uVJukgrVjdrYbIk9Msy4/vaKbHyJPKH hxcdlhcWV4Cq
z3s17TNi96SGE8cIMiuCawbtuLUYZg0n1AzTR15kWDzIIsHsqbr3mWHxE4pr xr6n5ZKDK/mq
hWW6VgkeHBFlexnLzk5wf0agAAA0HtaVasMukSbO+2vhZO4n9GuNs/KyRgvp z3uM9H/DAdKP
IVIdJ3ZO7r5fCpIgXKrDbYzHltgxc95quQsfKduma1a7Rd+d0jjC93qKsj1q jOSEb7q9ZFjG
v9woXmEQnrvY9Z1PW5tfc2teme+5vT4zkpFoi+3tTFbVm0Wrz9lL/MRFojyi ZniHT/WPYdLq
tHtceWmeu5s6NMVLVx2n7cd+t2tS2CLx8TWdjY1dm9LzGOa6drzM58Wvjydm LTd7FLHSGKmh
wZFBrLxnoyKuyaPypjmJbYvj0muhInSOq6OKVyJse1bLlIuUN++/h0OFmpRn Ttr323uHJrbX
sOfd1cuLLit1unSZx3reItTNvTxM1mYifG9Z8Z+Y5+Yc4/fHo1wZK3raNnNb 9omOYtTDHMRP
8c1mOfxPHw64eT9ALbl5Dze1jaiiE3MUQ3s7a6icvkCCDLXtJX0X5jXU+83Y K2q5Adq9tUNm
3GCxNmyWNmMFIppH3I9m2KcsbnohNNdrnJ+OlxHx2yYw5UX6+O7pDbtqzg7L tHipVjf2fEk0
5S8xH2mrniSqWTNoklFRRvpmzKi3ZT6qRvUqZmmuEqDZrRnsLEiOCSTum5Nc 9N8sSjuMevK3
rLL7QSqeN/htaKc/6ZL5Uc8u0NVyi0Sev6dwHq6MsTrKgvfPUL8qPSv1Ix5Q JI8ms3jIZbyO
4+8lZbWcnZGuqJc8y+OzHnfY3F2SVA3cKV1gVvcl58uuRNrxacz2zeTux8yq WKO8VeK3d405
0+6NE4aVxD2Y6GpXBEweLhEeQ6WIXbObEo2sKvry4uZ6ixe0rNmfIWCzHjPM Zo5V1bPGXnlB
KdqCxJMjs07kvB2WsTrdr+ulBU2j7HD488MaNnTr8pymPdYG8d903Zi/k1T8 zrKn3ZiRU7Yn
FCL0fNKLhvC2GwGueKUEn9crLer2yJvYDez8yIu56RxTYDdrG6yXJ4S5Q1wa GsxIeaukqVQE
1o3iBNaihtD7RijYhAZzWNRdlEYS6xLWtWN7il0xi+XAntLZMyvkfciDUkxt Ljs1srNP3pGf
4WyI+hStBih4LTFpCwyDk22qr95L3mS08V3WSXzK+AHGFppW25El4/ZkfBi3 ZVPuc2sbsVzn
jnZRk0gz1CpkubnNQ71ViWOZB8XyoQ+MnktnjQZTrQJsdwzvFk8RmXkhXrpe /aPWJY9Aomnj
7JVEwsnkFyzbpxxw5LSOO3VNIRUcmfYhx0iS6PFu6t3NmLC3SdO1J0mEhjro hDmKOp6yq/mc
EMv+lNuSl7tn9Mx0b5rmWOxaKagjVZUHREBt2HaW/Jntt5ZkFyy1a8n0m2jT LGVsTnXr5skk
StIRIpTsgDrtrqJVhyLldKV1WtJVHakwgVQ1dF+cl6Qt94tWrCOVclYudfZs WNY1g2jOK8se
aTCcZsuK0dYsoRlWq3sUqliQ1yyS3KV/lVKnCt8760u1Q68p70UV3LmRxcqi 5vobetCDsPDq
KUpM+OZ3C7kdC6UjTjLWZM1c+LJlaVcXXG0gZZcpcoeRMGpWtbU2ja1R09IG wyXjKnn9u1kv
aeJuvHDickt6uHya8ZMLKdgbOc6xHjlz/h9lWrI69442PKaukkSulTetbQp8 RZcFrpL2diUN
cjaTI2lK8ZDZyiuXXHvi/B3ei7x5E0DUExglu8gi49V8yvCq4+6wOlpDfdlS vjhGW+MHyzTa
IQ5r48vsXLjzLqUmKZmDCNEWnTFp9U5YaDcoOMdnWOknzTH+J+ssv93mHaGv 7pzFyr49J1Fi
VdyC41c4YHx7prewpFYzZyIXFwxNd9fQvDW8MSSOsmsawWlU7MzYgWGBzfI+ q+Rrpd9rXTG9
XuiJ2+M/KlonHKdiW8SKY49slJrOKl9wfj2+yi5Ykjbu0LdniAv+taOkoLkp 7pFmeVsK11aU
uqBnjh6UMU48MlH37y7itqca+KFb1rxzrSyOLUumDfEkHEx0rfaxavpntSUh E6RqeNNk2nVb
xY0Jmt31uZggpfvMGUw9qcjkaZFqhXbB6FXFu9ZpZjidLaLdcslrPNXSPmGz LI3wcinGa57E
YufPC65ZW+QON1IUyXZcldt1bRC01TSqu4h3mWjA4bI9t/LD27J14UadcXL0 Q1BfsRpWvYjB
n+3eOHaiVG/EJUsPLbJ80SnkVDG/gPXb+jZJzCSlusQ4eJ3uJVorcVZzTU7Q s1Q7pkyPUxlV
heHOseVTpQ3a0wqfuld2BL+UjPOyabKr2CKKpRTZ/feC9WUjo5YKl17WsTGm d1kUSSMBCF2W
ojki9kXuhqsxvdURDcHbF1jafxTP/g3/AHAGX1pyLMrJdLZMxxY1dbJ+2sTh cslWpa6sI5V7
gmij/Ke/jbBJmWYSOdSSYseiYwtTuiQJUCFKoTKdDNFiV1DH5NbrA/TiSPkU isjhTDI9SJY8
Mj85tb4QmtCUPEieLN9UHZuUmuThBV7soIcERjomQr8qlyvGEyRLhMiSh8Wl k+D31MLPO030
2130301M13031zjbXbXbXXGddtc46cZx3cZAXSpL2bUagqPPJ+CWk3boTb76 baFs++c9Odk+
O9xrqzbZ7u5GP+5Z6di8eLd9omDchKrSrkxKxEpTrEikvU1OqSnFqEx5W3d1 MJPJ23KNL2x8
mdc5xkB/J3MEudpdXsoeZfCJmZljoGVsT0msaIPjhDYxHK3nrBJq7V4dX1O9 xaQYWSRjTnNH
giyMYYM+G201Tt/jEF652nU9b6no9bsbmr/Zroa9bRGWn5rjwxxaPLms4/C9 ZrbiazPERxMz
HUMHsGni9Q7fp6Uz07Dc2s0TWMdojNFtnr8+DJa0fremvXU3IibT5Utu1+mt 65dq2L+kmh7C
aLSdbym7KsZFyN5tOL7mmRyTNEyZEzmVxzoQt6akMoYTTmh6wyu+p6Mw9Pt3 mxxG/cxnpxjN
184cvZ9pta98eTDm3cdotS1b1+NHTpMRaszW3FqTEzE/mOP4c3yTaNTWxXi1 bUw2ji0TE/8A
7ZrRPE/McxaJ+XW1Muz5Jsbl9YNr2Fxoqqdw+2ufzM92pI5lHqmk51mcKI72 TsPr2Pw6wUT2
aue5nVTFz9r1gc0cNcSFOEstY2+TFt2uiNM6ly7XQ6lOHnKxITRCq8KMfJjy 5w+dnJPSOd8n
ndMzWS8cKvo2puHrTzH4wSG4XSzF/JxM+XRK6duElW2QZlksDlai2tznR30K fpQcgDXLjBxM
ns3418FZYu4d9fk4kP8Asp3fRPL3wvGtw/pS410hAuz5crjqH1mtq0IjyIgn eu9M2bJ/IEDj
z2wOXr54XU/dzdntMlDOYhwg5iMH+3Urf6KnLbcHGqDdl9WLNZlNpez2Kila 0VUfUEVy7r2/
bxsdb/XT68+H62W9Q008+HV5JYW5srfsUvOdZWnVBqrUdN1TyxnFAVNTfH6j rtnFY0dT0T7R
LkdXEy4XXbWvMSVxztG+ydsq07Otuxaot+wpzOetqD0BasxbU90NcYmk3QbO 2UzSsc8PaJKG
1XNXhBzEuC3ORMvgVFTne0Ldg3OOsZnYdepez2rfjxa9FTfhFyeqTirXrhY+ VsT7RGwZypl6
2oyZO02E4LK8QTtqXuTeUQyMsZWIg3Fj3DaXcfORSi36L4xsbBD4FzGk6qGR 2j9KQrt8cOCR
3ZZu2qqhoIgWS6vWFiqqZ9pquPftIMvWtDIZY67aYrUxGm5z9qEr6lVNn87+ ZjxXPFXvrsjH
aN8NJMl5/eJ0Cy9VFQVvxf7N+xbsoj1+NsEjlqk61aaZ5VGPJEfijhFnj198 Qc1hDcufD0QS
pv7O64ohxcpOoSuJLHI7MI7MjjzQFAyuPLuPZSDs3e0CaGe63W+uVyh9kc9j sgrh8mNsWtDZ
E6Tql00zmz65V6evPTmrEEfy5BcZ/wAa7Djca5iuG1LsdM8kXdj7QyYF9rdJ 7yglKxpkq+3E
HIB744M0ht2vJa88rZix8b4VOoGyq4/O4sywOEJ6/wB3pjcVSiIQ3DoGqvFO q6E5Tc4IjcXE
jhdVVXcUqktXh1Mp8jhJfB+Q1Nm0KnoTti0ulgt7lxEuK66Wf7Vr6wb7qXfZ GQ6mTyP7rGR2
UN6Nt8muO4Su8+K99Qh5kVkW9xbnLxF7anPGZJzGgTRFezYi/GvlbyUmXayd m8/MLBR0Wqx4
glwXNBpc3a2cijLvybP3f21gkGpLs5N617kWysN/qj7O4md8jYtJ7f4kscA4 XksfMFwrrh/M
l1TKa8pEmwmPsv47EavsHj/UM9m/Hp/Y7At3jratpo2RqMlkSRPq9vkq/KCZ 7k6ow2p4d8yu
PcRpDizxtvzmfxyV81YxVVIUfdNZSflZTs2u9TyjZYjGIHY0EkJCaxX+QS61 TrYTLG9XoWYt
WL3fO+NdjjDMZ2DrJjXAS8Us44omtPCL1DtWm4Nx/jPMPlf5W4rIv6zrfgfa N9lReNiXv63x
S3nW/ba8txLjHZ048r2MxMMpXeP96ajw+OhqDIYNN+N19VLIrbvO5YZ1F13J 4MilnPt5mMi7
Njjzw35OWVpzm4UWRMqxqdxq99r21bbg3IOqmW4oPEVHKZXqvVNc7JZpC7Nh knlBqkM54PUq
ps28bc5ZcLuKtHVFV8a/r4O4baTJHQK+gYRf1kcVuyHq+v5TGnDiNYNowZ0g 01nFH2o0yZ/r
F5dTEZaeQM7iqRvZ6ttyCiuzRmDjeMGi054jzkvhE13jSVnSemuV8I7LlrhZ srYeK3aiV3Y1
hJOPvAvVJQTx4eW2rS6Ax2cGA+aOStKj2ONPa48k3bAzhh4Lc5mGjoFEq9j8 GricP8G7Dy1L
23mqCO2U0zjmRRvKmbWhz5uuaN8Pvqr/AFyvEjyPAJLOpqqc3F0tBljXkNCv VOe6JyZwuMHh
HaC0rRzZSkyqSc240Wdyq5+2bck04YraTpK049Vk+5UzOza8hsSNvbmuw+o/ 9UHWS8SLaYR+
TqZhXcP1LjKdGjlpieeNQdxlYtzSz1rXrSw1v1NsbXBom3M1QeIwtr6qmlEw N6ZurfyZW7zI
67bvUZGVo1+AYHFeyk+K94hUHpsFG7BnAAAxGN/4zYH/AN3IvqHCQEy6zLi/ LDbPmOU+xgB1
mXF+WG2fMcp9jADrMuL8sNs+Y5T7GAHWZcX5YbZ8xyn2MAOsy4vyw2z5jlPs YAdZlxflhtnz
HKfYwA6zLi/LDbPmOU+xgB1mXF+WG2fMcp9jADrMuL8sNs+Y5T7GAHWZcX5Y bZ8xyn2MAOsy
4vyw2z5jlPsYAdZlxflhtnzHKfYwA6zLi/LDbPmOU+xgB1mXF+WG2fMcp9jA DrMuL8sNs+Y5
T7GAHWZcX5YbZ8xyn2MAOsy4vyw2z5jlPsYAdZlxflhtnzHKfYwA6zLi/LDb PmOU+xgB1mXF
+WG2fMcp9jADrMuL8sNs+Y5T7GAHWZcX5YbZ8xyn2MAOsy4vyw2z5jlPsYAd ZlxflhtnzHKf
YwBq7YVfXTOJI4P+lI2q3aL1O6rCLeDStV4DbdOkT7a4P1YyMG9OEmM9Pea/ L0dHc6QGDdRt
1+5+0vh/LPRAB1G3X7n7S+H8s9EAHUbdfuftL4fyz0QAdRt1+5+0vh/LPRAB 1G3X7n7S+H8s
9EAHUbdfuftL4fyz0QAdRt1+5+0vh/LPRAB1G3X7n7S+H8s9EAHUbdfuftL4 fyz0QAdRt1+5
+0vh/LPRAB1G3X7n7S+H8s9EAHUbdfuftL4fyz0QAdRt1+5+0vh/LPRAB1G3 X7n7S+H8s9EA
HUbdfuftL4fyz0QAdRt1+5+0vh/LPRAB1G3X7n7S+H8s9EAHUbdfuftL4fyz 0QAdRt1+5+0v
h/LPRAB1G3X7n7S+H8s9EAHUbdfuftL4fyz0QAdRt1+5+0vh/LPRAB1G3X7n 7S+H8s9EAHUb
dfuftL4fyz0QAdRt1+5+0vh/LPRAB1G3X7n7S+H8s9EAPLWj7t02130qC1Nd 9dsba7awCW67
a7a56ddtdsNOM42xnHcyApkRbeU8K01IZq5tjxLBmm+7err2UrURmNTcmm64 IVsp2ibdTnbO
DDCPBG79PTnbOejIC/Nlk3sWk01eONVlK1/fb5MObItMW5JnTO2fB66JlUcd DtdtdOjvs5Nz
jOfkxj5AH39ZlxflhtnzHKfYwA6zLi/LDbPmOU+xgB1mXF+WG2fMcp9jADrM uL8sNs+Y5T7G
AHWZcX5YbZ8xyn2MAOsy4vyw2z5jlPsYAdZlxflhtnzHKfYwA6zLi/LDbPmO U+xgB1mXF+WG
2fMcp9jADrMuL8sNs+Y5T7GAHWZcX5YbZ8xyn2MAOsy4vyw2z5jlPsYAdZlx flhtnzHKfYwA
6zLi/LDbPmOU+xgB1mXF+WG2fMcp9jADrMuL8sNs+Y5T7GAHWZcX5YbZ8xyn 2MAOsy4vyw2z
5jlPsYAdZlxflhtnzHKfYwA6zLi/LDbPmOU+xgB1mXF+WG2fMcp9jADrMuL8 sNs+Y5T7GAHW
ZcX5YbZ8xyn2MAOsy4vyw2z5jlPsYA4htnFxN6yQK/6aLZO8uu5Lr4P1flJf ivgWFkZPAd/6
ob+H77yN4XvujTo8J3vR+r32wdvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAI9NGzWRWX
BY2uc5MjZj4NZj4oSRyXSqIbKnNpf6oQNqhWribyyrVeqNK/K9dCzDNisZP2 273vsa5wGtcq
tqh4jyagvGJykFl+tEzja9zPe+vy4NGuOyZTsSog8IdumdbEEPk5aULooTFm nkH67EISyyT/
ACmTsXljHE4pyeUeUTHxzHMx/M/nn4mY+OPnmZj4rbiawdRizdFn7i2zgrs4 s9K1wTfHGTJj
44zZYickXj6r31q1p9c2z1y5smLmmntTj2m6oop87Wf8brn9vhiQqP8AHpdV fJSgqP5FwU67
2mE39T9aXXDmuWXHayGVNsVtSFss6jzfJULPab60I5AjaH0ktaUlXLExanXf Uo87TGpmwHld
VcSmkTgs8Ou+DO9n3AppSlVDzcdrOzdcsqb6CkvIt1cImdC7TlSmMR9rhNeS 1KYbLiY0pMdY
osKJINTq2VS6g5Crqr410FeHIudHXe7Qmgafsu65i1xO47WXSpyitVwt6nUh b40heLTYmhZI
FjQxHFoilS5GmMU7aamnk6Z2M1CgM1dsro4yxCuabvjiaOSBMzM7w83tPj26 etx8VjUhNlkT
Kj1yPrujj6N3fVTEYW+pWV1y6sqwwtHu27t7gvDIOqKKfO1n/G65/b4BH2Zd VctmksgsDOu+
cu9YXAmpS6lDNcdrNLdTUqcKCjXItqcJYdNLTiqmTx90hNhxJKWbESZKpLdZ WjKOIKTpHpS1
BYOqKKfO1n/G65/b4A6oop87Wf8AG65/b4A6oop87Wf8brn9vgDqiinztZ/x uuf2+AOqKKfO
1n/G65/b4A6oop87Wf8AG65/b4A6oop87Wf8brn9vgDqiinztZ/xuuf2+AOq KKfO1n/G65/b
4A6oop87Wf8AG65/b4B5VEYp3hx5Clc5OOW2c2sxpVTu5uDy4+TGC05kyNCd S6uqlY5L9kTU
3kkamHmmG7aF477bOe6ApoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAkEtbEz3aUUZlhrgSjd6gupsVHNDu6x91 KTL5FSyU81sf
mFa2vjI4FlG5ySrRKE6tMZjUwkzQzXXbHtZmsxaOOYn+Y5/4n4n/ANSz62xk 1NnHtYopOXFe
t4i9KZKTNZiYi+PJW2PJXmP2petqWjmtqzWZh1CzDs0H0q8UFMxhwfFfGW0i 3Wy5zYrwgZnu
wYg4x5Vkp8hRcpXM5yJxfZQ5vzduyuDiWYvLSbuBmNFfiCndRs+cWn+1MxGW tq/rHxzxxxMc
WiYj9Z58ePH9YrxE/rdI7THuZJ952NimPvtTa1K01aRfHGScdMf1XxWx7WPN gwVprZoyxqxh
ppXnTwadMWHPWNLuor+Ds9bQyPQVgVyFczxpv0bkCuVSV8l78cTqYYbnZe/y Nc4uqvoMNzgo
vJmCEpONCE5ZKcoorTXveb2m1uOZ/wBIiI/2iIj/AIVHsewz9puX3tmuCue/ HMYcOHXxx41i
seOHBTHip8RHPhSvlbm1ubWmZ/mzZey4vZbxYkfrbRnjfJqpOwB4D8aeJvjV mw4/qy7RzjvX
XOHxuR194vYO9fwzkBRlgWFDfU62M+LKoz5ccPVqQpky1/8ACfLSbfzvgHIp tzF25Kzbj3X9
kIq07X+B8o4AskSOrJDO1NEyDsmePfDp0nNdKJSv1KjfVdy6iDHN3dsXL2Z4 NR1Xq8M6R0ek
cXROQaAH8A+brz/uB+K8e7AiNgcr+zA7RmtL98io+zUqDixyE59XT1SdTblx /wD6cl8O5NWV
X6p6X2b6qSzk343NI7HH3Xyg4oXV7knjobv8quLdrSZq5ttDtwZj/LSLcj+0 fquzIkS5Rnhf
cEqq+mmfs0eL1Jynk3UtV8yrBh1EuNwMdk1DIICwkylcQYxqX3MkUsknYkRs ekAa/wDaO8HL
5sigqSr7jDxOuBiaOPnCBshvAWOVNp2bkhv3iHyVRwtWyImTkBf/ADcmk7m1 Xx+ApodVxEYm
PHCcnTcl6YZQ5LX1QoSw1wAbQMPAORVl2gC+566491/H4lPu0/aeas3t6AI6 si3jtWSDsgeS
/E14YJqnLXx+x5BYEf5jyB3kzkl0a3BuP64S3tIuWL1cw0ZQ0gQdmjyHkkBp KuyOMEgpmUwm
P8PID2glzxO1alq6Vdo9ecC7Qvs3bhnvOGNWzQlzl3tP5BW1bcdLrlaKcWdt A7hRqbI03Y0G
769PidCHd9wwoFx44PfMCBMdex+puPizk+zSXidWsGJirFWcRppw4j8VEE1T VtXMNP0Y6rj7
zyjarGdFzTogajF0hXuT1unMy7eOqw3fAAAAAAAAAAGu9esU2UMr2vjs8LaS DLNujBbM8RRt
fmgjcq455pttpskWR5831Ub4zvvjZdtnvs9GmdNcdADOfC3K3/tIa1lemv7W 5LjJ4Idvrr8u
5SU1usErwm+P2S9lGuuM46MmdGe+1B68y5D/AI1U0txrr/xFcadofI0OmNf2 tsFGyBmfztc6
93XvG/bbPRnHRjPe42B1vQwjuPHrNGNsft5lEJmDCkL6O7nPlZexlMpuuuvd 22LU76646enO
OjPQGSsk7hEmzrrHJjFn7bbOca6Mz+1Oe+c67d5tr3iJWdvjbTf9XOOjpxt3 M90BlQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAACJzeOt
8ntqvW9yUPqYgqurZWamR6USaIrsnFyWmSNdDHOKO7K5HJc6Kds7Ebm7Eb74 1320ztppnUOd
6oop87Wf8brn9vgDqiinztZ/xuuf2+AOqKKfO1n/ABuuf2+AOqKKfO1n/G65 /b4A6oop87Wf
8brn9vgDqiinztZ/xuuf2+AOqKKfO1n/ABuuf2+AOqKKfO1n/G65/b4A6oop 87Wf8brn9vgD
qiinztZ/xuuf2+AOqKKfO1n/ABuuf2+AOqKKfO1n/G65/b4A6oop87Wf8brn 9vgDqiinztZ/
xuuf2+AOqKKfO1n/ABuuf2+AOqKKfO1n/G65/b4A6oop87Wf8brn9vgDqiin ztZ/xuuf2+Af
NSqQpBCFSAjdSYQhsW5UZO61asclu5KW4Z2QVuscnE9U4uCrbQvGTD1Bpp52 /TuZvtvnO2Qr
AAAAMbe4bD5NjbEkikbkGN8Yxvh7Ymt1xtjGveYxthelUd9jGnc7v9ncAYp1 PQUjutCN7i+c
fsYiEvlsUT6f83iDA9oG40vOcdOdNyd9M7YxnOuc4xnAPUOTo+6y2xN0+uP2 Ub2jh8kRY/8A
eyarjSd+22/6V/e/83T3QDxW5EH/AA3muJRpj9ktUwySGqM4/wDZNWpn6aEb 79Pd7/VIXju9
HedzpyD1rsZD/i1Umr8Y/a2hM2j73r0fJ06Yl5deG79Ge7nHe4z3vyYzt+qA dazMl7j7HLCj
m2P29nGBSVwRlf2Z8M7xlA/spGuNu5326nXXOfkznpx0hyLbataOx+EiGeRM xdnveltNfW5I
66Z26e9wa1KzyHEnbOdc46NysZ6cZx8uMgM8030M01ML213L31130302xtpv ptjG2u2u2uc6
7a7a56cZx3M4AeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAJg7fbPAfuwt3610iAp4AAAAAAAAAAAAAAAAAAAAAAANRoKsslsd16R slLCnj0osC68
RpvkUY3XIS5A029Yh7vHsuzS7MzklVujYRs4JDTcLcZ1Tq9PB64KL78LX63T po7klrZWsJ17
m7nAH1BJ0ummP+uPbHsuIyHXO2PlKSpV22u2ejGd8frgMzjkiapYyN8hZDTz 2tzK3NSGqkK1
tP30LONT753RuKdKrK6DSdsYztpjG+uMba5zrnXbIc2AAAAAAAAA49yaGp5I 8Vd2xvdU3d/7
O5Iky4j9bo6f7pUUaX3e9x09z+wBgW9N1njfcxviSCOnGbbGbqIeevhSnYzb OdsnZUxFYyn+
GztnOe/77vunOc9PTnIDx6tlaP8AwGyrKZMa/sFHvbbLic9Hd1LO2nrLKlxh X9m2dT9DdsZ/
bxno2wDyNbaDp8SnMRfStenoIkcHWJFxvR3dcZd49KkKInp+TOfJm/8AZnGM dGcbA8u2ug/x
Cvoy8l6/9dFp2bhYdj5c7eS5NGGFIm2/sxr5QNxnOOnO2vT0YB1mbpO4/V3Z rF0ft7aRgqXa
Yz8v6vV05TI0zGde7jo16f7M4xt+qA9hVx1hsZqSrmjMyKN9u8LSyk02IqzN +jpwWWkk5LQp
MNzr3ca40ztnGM56OjGQGfoXBA5kYVNq5G4Jts51woQqSVZGdsYxnOMHEbmF 5zjGcf2gPsAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMHb7Z4 D92Fu/WukQFP
AAAAAAAAAAAAAAAAAAAAAAABDoZHSJRXMgaTFBqFRtaNzLGt0T667K2Z5b7u nS1oeEmN/wBT
ZQ3LySzcabdOhuNc6b4zpttrkOPXvsxshrMhrKSVHn5pz4vZxyvReS06HJs7 lmQ5ocyNdVxe
k0JxhQWvT9+egZzyz86eGPJ0yFOislbl/THtm3aMPzMjJ1UxNTqSVujQk41T EKmbdPjVE7R7
PRroSqS9JWvcLM1KO13J0DMwAAAAAAAAAAAAAAAAHrNKKPL3KOLLOKMx3u5R umphe+v/ACb6
b4zrtj/pwAwBbUtYuB+VZ8CipS7OMa+UkDKha3TGuOno0w6NhSRw10xnPyYN 6OkB8fVY2pe6
xS2x49nHd1wlnT6+Jy8/JnwSCaHyluJ0zr0Y7zQnUvHR041xtnOcg9V7LQ/4 VaRDljX5NZtB
Wd123x8mcGGQ1dXuMbZ1+TOumMY37ve51/UAPHriQf8AGjteyUrX9o5ulD/F 1m3R3OkhrXxq
RpDNt893o3cCsaY7nfbZx3QdYD+i/wAcqqeoddf21bTtFZQhz0dzfJJTJJD3 8zXXPdx3zfpt
tjOOjGc99jUHXFX5Hcd3ZfFs4/4mZpGpPDCSujPRvndXKGdpRZKLz8pmpmxX RnG2Ns65xnIS
LkZf6WB1V62VvJoy9PCuRsDWgUoFzXIEepRxqhzWYOKTKFBe5CxuaTiM7Yzj bXBudtNtd8a7
YDgKQ5mQOzMI2KXZTQSZm4KJ1JWKcYjb0p206M+SXRRtr4kecbpnvUqrONv1 9NCzT9856A2c
kVhQGIKiUMsnEPjC5SnwrTo5FJWVlVHpcmGE4Ukp3JamONT5OJ30xvrjOvfa 5x09OMgMf67q
Y97tYfT6KelgDrupj3u1h9Pop6WAOu6mPe7WH0+inpYA67qY97tYfT6KelgD rupj3u1h9Pop
6WAOu6mPe7WH0+inpYA67qY97tYfT6KelgDrupj3u1h9Pop6WAOu6mPe7WH0 +inpYA67qY97
tYfT6KelgDrupj3u1h9Pop6WAOu6mPe7WH0+inpYA67qY97tYfT6KelgDrup j3u1h9Pop6WA
Ou6mPe7WH0+inpYA67qY97tYfT6KelgDrupj3u1h9Pop6WAOu6mPe7WH0+in pYBR0itKvSpl
yFSnWoVqclWjWJDi1KVWlUl6nJ1KZQTtuSenPJ3xvpvpnOu2ucZxnOMgPoAA AAAAAAAAAAAA
AAAAABMHb7Z4D92Fu/WukQFPAAAAAAAAAAAAAAAAAAAAAAABMKi/yo7fefd3 +s8+AU8Bj0ij
DVJk5BbhoeSrQm7Kmh4bz9kTyyrc6Z08canAr+9TG50z3pmme+JUF5yUdoYV ttpsGLkSd1ih
5LXP9yNkRxpaZrniUjxVmW7mbYLTpJOmxtsXGHo7fONMGZ28mqzc48FuSaZo k1CkgAAAAAAA
AAAAAAAAAAAAAAAAANBualYyWdFV6zwKFeUVi50kDg9vDawGGbJt0SRsIbiH V3QID90ZS7x8
/Onh99CzNic56enTADXaHcB7Id8EHylwbIsQYV/fkHrU6p1SH5zr3uxCdow9 Ny8nXHfdON1a
Tf8AZ7ndz3obb143R7jGrs4+y7WwoiUVrKoVy2ZTdYS0NjC3Hyi22lAyo9li 5bsnQ7uGNCkS
Xw5xpilVqQTjbbYssfVKXyWimOJtef4iOZ/2hu9d1vY9vuU67qdfPtdhk58M WGlsmS3jWbW8
aUi1reNazaeInisTM/ES1ai3aXsB98yF2l2Fsf4hyNrbIrV1lL424p9i5sxn mHuEskKHVu9Z
GeJ2Du8mokp6zTJaXRlSG7kI8qHDfTN9dbRGGkTOz5Tz+OJ/8RPPE8cfHH/a bcR+K+VhjqtH
c1sPr/WY75fcq7WaLzW2K+LPHExXBgyV2b481sc4Itrzhpa+9l3L4McTODWn a3A5jcgXSiuD
PKjlTVBkPmD1TnE+8OQNamuu6iQQCUule1BJ7GhpjlvG3poVvcPe1bQmydlA 4pTFKI3PgFJe
22puuC1ZrM1tExaJ4mJ/hWNnW2dLZyae5jvi28V7UvS9Zrel6zNbUvW0Ratq 2iYtWYiYmJiY
5aI8defEqn/Iemaqj3Ovs4O0PaLSkEvjc6jHBCBuMUsLjpFWCpbGspJyNste h508ykymn8za
Bs9dnELGWOJtpNYbJvq+aKCyGh48YG77lz14nNFWQ263C1vF6ysDiBZfPWIy X1Gsk3yvxOp+
OVPLLFtbyMRDjJAg9XY/eMWUeQlSQmSq/KneJW84xMr0Thj5naQ8JUtZzy5n i/I/FqprSQVK
zy2wJtH5xBoqRH78sJtqykLlY3aYRdjTTHjBb02cdk0bttnyvq96TN7mtSP5 qFpdFKMMgj/M
CorKVUUdALK9XOsrkBJaKcq9tKh7sh1ur52w8cbbvwypH2vp4irCwOM1gZr+ FJZ+lcJ5Htkb
zCSCtUKPf1oYXbQJ/XXaj8E7Zgh9m19efrBBTa/jtlxORa1lcTYlt2OyV4iM RTNvHsh5r5uW
8kbAZLNsKPQZ9icBKkkqjVjyBrhzs3IpS4o2g8NgOPfJ2ouUDPPHmpVdgf8A pfYG1W2FH7Sp
O7OP87h879RIJZxLE+1xf1e1lYCLx2v7NYXZKq2bPE1aNzK3JNM/WxqF/AAA AAAAAAAAAATC
kfsYqL7sID9VGkBTwAAAAAAAAAAAAAAAAAAATB2+2eA/dhbv1rpEBTwAAAAA AAAAAAAAAAAA
AAAAAATCov8AKjt9593f6zz4BTwAB6jyCFRByZUSUpTKCjCFCc8vQ4g8k3XO hpJxRmNizSjN
Ns4212xnGcZ6MgJt5KfYD/exklVI4dp3Tohsdg16jxOO7sZDViozXx5sJx3f JCkzpK0/VRna
aaFo9wzhkfWmRt5Toyril6I3cwrJmmDCzSFBG+S1KJalP0KVoHBGdjJZ6c/Q s8gzXOhmmu2M
4wHLAAAAAAAAAAAAAAAAAAAAAAAAAIC8yuBRy3J0insliDEhf6prFGUkl7wz NaR6Slya6CXR
KWneVJBLiRoSuL1UaYxvrjU7XG+OjfHSGj8O4v8AEOL8kpRa51iUY41P5Lb3 itqYUyuIKYhB
bPdTckTWSt8ZULMsaVEQjZEKhnL1yaUkWOa3JSdLhIh3znnLE05jn+xMz5W5 n5if/v5nmYt8
fMRX/W3No2O9wZeurnxRnr7blz7H9nanLmm2bDlraJ5tOafLJsf2NjHueWOK 3w4taKcXvuWz
7IcsSaY5QcWOS3Gj+oWsIP8A1Ecf7kov119Y4pJvU/rbrqRwD1p9XPW2P+sH q/6weN+I+Pof
G/A+C8YJ77wmuBVy1CaYsS3eMNwNXIWsIZIOPNgWA9vJ7fI4opeLPqyyKTsS upLRbnIk0taF
rRX7vZrvCp6uSG6Obcvfa3ZDDUOVaRAvbg6wFHZ4RN0qxfSj72jlYL6yiPZg creym49xpLXt
eN/VrSd9xzjvE4JbdgvOtxKZBbnICKR+gEqeYq06uMRCXdDfuyR2FmJXTd+D b+86Gpi6LisG
2P6rqwjXr3/tcf8AgHjEUePJX+2vzss3mr/ivWI1ePddHWL6tf8AdifVzxPy j/4p4XxEoHUN
TH9RXX7/AFXVh/8Av/8A1z+qfjEU/wD5Zf7aPVd5d6xP/wA18t+J/wD0fxD/ AM0AagXDxErq
EcZ+FrRCr+QXTYHZ58QKy49VnFq01oFFIretOruQnZsXpV9tuTJc/KalK/Q1 /FrA7PptXSyG
HTpocX6KvLihapK3OpCJQqDZ/s3pHOIrH+UlscuLGpCNWtyj5Pk3WVE2ZfWt fOMYisY4wcZO
M7O3yyCQ7lJzBhMXkDgp48qXEspotGZplTUuRrDj21cpVsLSHY/13Ux73aw+ n0U9LAHXdTHv
drD6fRT0sAdd1Me92sPp9FPSwB13Ux73aw+n0U9LAHXdTHvdrD6fRT0sAdd1 Me92sPp9FPSw
B13Ux73aw+n0U9LAHXdTHvdrD6fRT0sAdd1Me92sPp9FPSwB13Ux73aw+n0U 9LAP2ksZxTFR
4zjOM4rCA4zjPczjOIq09OM4/wCUBTgAAAAAAAAAAAAAAAAAAATB2+2eA/dh bv1rpEBTwAAA
AAAAAAAAAAAAAAAAAAAATCov8qO33n3d/rPPgFPAAAAAYO9xA3dwNksUWlx+ U76F4Vm5J2OZ
ZIURpjQlHKGwownx3wZWMaErC9i1yXGMY0M2K78kwPfH5eU5rDGF5Q7xyWpi dj1LCqP1UaK0
xe2pe7pHnLUskl/Zc776/wB8XoWcT3+uqklObnweAzEAAAAAAAAAAAAAAAAA AAAAAAEwaftn
n33YVF9a7uAU8AAAAAAAAAAAAAAAAAAAAAAAEwpH7GKi+7CA/VRpAU8AAAAA AAAAAAAAAAAA
AAEwdvtngP3YW79a6RAU8AAAAAAAAAAAAAAAAAAAAAAAEwqL/Kjt9593f6zz 4BTwAAAAABwU
gjbTJkeiN1T775Tnaq29clPNROjSv0120KcGhyS7lLG5cVrvtrgwrfXOdNtt NunTbbXIYhpI
neFb6Ip2fhew531KQ2EUnKSpicbZxoUnnCNPromY1WenGMOROujYfv09/qi2 2KKMCl4zjbGN
tc4zjOMZxnGenGcZ7uM4zjuZxnAD9AAAAAAAAAAAAAAAAAAABgzzY8QZVxjP s57O0gL6O+jU
aSK5LIi87dwvKpnZCVyxuI3zjP8AfKtSSNca7Z231112zgMLhDq5vFt2Gsc4 44xjbNdVKWkb
3ZU0qXE5FrJbn2LWqdGZe5okexxu++uCfDmGa66Yzv3u22dNQtoAAAAAAAAA AAAAAAAAAAAA
AAJhSP2MVF92EB+qjSAp4AAAAAAAAAAAAAAAAAAAJg7fbPAfuwt3610iAp4A AAAAAAAAAAAA
AAAAAAAAAAJhUX+VHb7z7u/1nnwCngAAAAAAA8d9NDdNyjdNDCzNNtDC99cb 6b6b4zrvpvpt
jOu2m2uejOM9zOAE0yxPUFzlRC0+7vF9c52VQHY4ko5sL6enY6CLVRhRCPTT H/lKkzRDnHRh
MYk73OhwZmwyFokqHygzq8KSdDjEqkrcs1Mtb1xPe+MNzogU6FLW1xTZ2xgw g/TQ3Tpx0693
ADmgAAAAAAAAAAAAABjEimcVieCMSB9QNqhX04Qt+5uTnZy2x33921s6XU91 dDs97no0Tkm7
56M9zuAMX9bJq/8A6sRg57ck3x+rILCUGR0jOmfkORxZIUvlKrfX+0lcU0Zz /Zv3O6H71euD
1+vO5m+SPTbumMbJsZCYpjOfl08nsqveQOCbbp6NiXF1XEba9GM6fL0hnDMw skcQltkfZ2xk
bis5yWhaUKZvSa7Z/a3wQkKKK7/bo7u3R05z8oDBmn7Z5992FRfWu7gFPAAA AAAAAAAAAAAA
AAAAAAAABMKR+xiovuwgP1UaQFPAAAAAAAAAAAAAAAAAAABMHb7Z4D92Fu/W ukQFPAAAAAAA
AAAAAAAAAAAAAAAABMKi/wAqO33n3d/rPPgFPAAAAAAAAAAGFv0QwtX+sUeX ZjktLJLJ8rEk
YUInhMR32SWyUNfhCC3tuLztnwe2dylaXvtvFjye/M78PFil+Va/EckiH1cl upRpujaYflS2
vadPjGT3GKu2xKbR5RFYzjJxedClqTvtfGCC9dy9jAzYAAAAAAAABxTy+ssd QmOb+7tjI2k5
xg1e7Lkrcj02zjOca7KVZpJON9sa56MdPTno7gDBesNe9fqQSGPsk13/AGHx 50NhcTx0/IZh
ye0mXxxTb4zjOhzc2LyN8fJuAeqc2f8A9aWzg5sR793eP14RvHycl5+VOtla 0xdKFW2Plwcg
3Z9v7O97ndDJ49CopFMn7x9iQN6pZ0ZXuWpWVDw57Y73oMdXpXsodnU7o1x+ uoON37mO73AG
UAAAAmDT9s8++7CovrXdwCngAAAAAAAAAAAAAAAAAAAAAAAmFI/YxUX3YQH6 qNICngAAAAAA
AAAAAAAAAAAAAmDt9s8B+7C3frXSICngAAAAAAAAAAAAAAAAAAAAAAAmFRf5 UdvvPu7/AFnn
wCngAAAAAAAAAAA4Z9YGmSINm15SYVJvClqSdtTDkytEsIznZM4Nq9KYStbX FJtnvilBBhZx
W3d12wAwrD29wToImKgx7iuue9TTrUgvRa0l9PRqVOkSQssgogvXu+WExZaT venxolLjTwxw
Ussws4ss4kzQ0o3TUwo0vbXcswvfXG2hhe+uc676b65xnGcZzjOMgPMAAeo8 8lMSYoUnFJyC
dNjDjzzNCiSi9MdO5hhhmddC9NcY6c5znGMYATfe0mRw22IhTc9WGpxtnTB0 USlGR7TfGc67
ZOmTme2xHoJ2x/elkrTlOuMZ70nbbo1yHj5NtCRd10fWeAN+/wAqCJEaSSR9 5n9nBknkbeUy
pN86dwwspmPzptnPg1Ge9xvsHKs1bxBmXFvGG3d4kBWM95JZMsWSWQld9nGd 8JHZ7PWqm0nf
OuP7lLkgjHe6410xjXXGAzoAAAAAAAEwaftnn33YVF9a7uAU8AAAAAAAAAAA AAAAAAAAAAAA
EwpH7GKi+7CA/VRpAU8AAAAAAAAAAAAAAAAAAAExl7NM/XOKS+INsYecs0Ym 0bcG6SSV1i+O
iUOsCc0q1GsbIhL/ABjKb1PMLMK3KJ/42u2N89GcAPzytc/8g1h8XZX+CIB5 Wuf+Qaw+Lsr/
AARAPK1z/wAg1h8XZX+CIB5Wuf8AkGsPi7K/wRAPK1z/AMg1h8XZX+CIB5Wu f+Qaw+Lsr/BE
A8rXP/INYfF2V/giAeVrn/kGsPi7K/wRAPK1z/yDWHxdlf4IgHla5/5BrD4u yv8ABEA8rXP/
ACDWHxdlf4IgHla5/wCQaw+Lsr/BEA8rXP8AyDWHxdlf4IgHla5/5BrD4uyv 8EQDytc/8g1h
8XZX+CIB5Wuf+Qaw+Lsr/BEA8rXP/INYfF2V/giAeVrn/kGsPi7K/wAEQHKV wwPMcjGyGQat
hTusk88kiwhmXKnNtSZmE6kktIRJnFa2MqpbhEme9CdzdkpHf76bZxpjHQAz sAAAAAAAAAAA
AB+ZxjOM4zjGcZx0Zxnu4zjPy4zj+3GQE1MjbvDTN10DJ0Vsu2+5zhXxp5SV H+vtnc5TC1Z+
2iaPr9s5zt4iZnRrU7/JlHvuYo2Dw63Igb/2Vv8ALby/6fqKok0MDoukzUp/ tSv7fonwXGt8
/LqY4mpU5mvRvoZtptptsDxm05F3ErexVy3b/wDzDyZpMJZsXnuZ1w0tKpJF 2dTjGenQ3Li7
F9P7ROcfKHtIqyOKDi1krPdrAcCt9TtD5qsLdG8k/TPfaHooumToYc3H6b93 UxO3lG4zjH63
6uOgKPppqXrrpprrppprjTTTTGNddNdcYxrrrrjGMa664x0YxjuYwA8gAAAA AAAAABMGn7Z5
992FRfWu7gFPAAAAAAAAAAAAAAAAAAAAAAABMKR+xiovuwgP1UaQFPAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Ewaftnn33YVF
9a7uAU8AAAAAAAAAAAAAAAAAAAAAAAEwpH7GKi+7CA/VRpAU8AAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATBp+2 effdhUX1ru4B
TwAAAAAAAAAAAAAAAAAAAAAAATCkfsYqL7sID9VGkBTwAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMGn7Z5992F RfWu7gFPAAAA
AAAAAAAAAAAAAAAAAAABMKR+xiovuwgP1UaQFPAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwaftnn33YVF9a7u AU8AAAAAAAAA
AAAAAAAAAAAAAAEwpH7GKi+7CA/VRpAU8AAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATp8r9Q5yZVK2idzGHOLgx MsecSo8ng6tG
uRR9wkLk1mGly6Fyg4lSQfKFeM7EmFa76ba421znXGQHy+oMr991n+aaY/CI A9QZX77rP800
x+EQB6gyv33Wf5ppj8IgD1Blfvus/wA00x+EQB6gyv33Wf5ppj8IgD1Blfvu s/zTTH4RAHqD
K/fdZ/mmmPwiAPUGV++6z/NNMfhEAeoMr991n+aaY/CIA9QZX77rP800x+EQ B6gyv33Wf5pp
j8IgD1Blfvus/wA00x+EQB6gyv33Wf5ppj8IgD1Blfvus/zTTH4RAHqDK/fd Z/mmmPwiAPUG
V++6z/NNMfhEAeoMr991n+aaY/CIA9QZX77rP800x+EQDMovHkUSjMdijaYp NboyxNEebzVu
5Rqw1Eyt6dtSmKzCSU5JinchNrkzbQvTXO+c5xrrjuYDnQAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA
AAAAAAAB/9k=
--------------020000060704040606070203
Content-Type: image/jpeg;
name="step_4.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="step_4.jpg"

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFk b2JlAGTAAAAA
Af/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQICAgIC
AgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMD AwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgBDQNHAwERAAIRAQMR Af/EALAAAQEA
AwEBAQEBAAAAAAAAAAAHBQYICQQCAQoBAQACAwEBAAAAAAAAAAAAAAAEBgID BQcBEAABBAED
AAUJCAAEAAoLAAAABAUGBwMBAggV1ReXCRITFFUWVld3GBGVNrbWN7fXIdKU GTFBIiQlNSZ2
OQpRIzOzdbWGJ2d4KREBAAICAgEDAwEFBwUAAAAAAAECAwQRBRIhEwYxQSJR YXGBIxSRobHB
MlIV0XKSFgf/2gAMAwEAAhEDEQA/AP8AWSqTroq4Q2PwlhZH2W2NKc8cyOUr kKqOaLVLbDJr
OVLtIJA1ROVuCrJtSRdRiT4MaHzOLco27MemDDt026V35B2/Y9ZfR1uq1sOz v725OCsZc1sG
OvjrbGza9r0wbFv9OvNYrGOebWjmYiJdHr9TW2a58u5lvi18GGMkzSkZLTzk x4oiKzkxx9ck
TMzb6RPpKPouUDClsWYV1LcLC1Lq6kHsjY6toU2h5FfSFWmwODBmk2yyqYqd Kohsma8mqlG/
NCh2bdyTdhWbt+1vzaLdtZ7X5zvfEu20NH5xq6elodjGSMexg277OPHek44i NiMmnq+1jvN/
H3Ym8UtH82tMflkpaM3wnYtoV3euyXzXvrY9nHSYw85cF7ZaeWOcOzsR7lL4 clb4Mnt5a2ra
s19yIpPU56QowBg3aTxpgXxhqfZCxsrpNnxRGIY2uzsgbl8ukqSNSGZqo9GE axRhUP74mh8R
dnbIkSbcqjY2tatVrs0wJs2/YGDXWdWrXNG6t3OwoM3WI8dDdEwJdLGBJNHT 2jabIfo90dFl
DhjfFvTzHTcvWovNYN3pSSKPGbF5WNsW7sAbwAAAAAAAAAAYOPSeNS5AodYp IWOTtaR8k8YV
OUedkD0gTSWEyV2hkzjyhY2qFKfC+RGYMC9pdEm7dooQOSLOlz7MefDk2bQz gGjxazq1nLs/
MMJsKDTB8ivnvadmi0sYJA7Rz0eaT2t1HTzc0uCtYz+YsSqpQwb/AEjZj8l6 jboh1+xS3q8W
EN4AAAAAABqLl/04/bo1l/6oQtCZ3fk2v/J6W6VWLEbK2b92nl+faN3Qy7e4 YdfNee+xPi11
yp8irDuCdSyyHuCRC251tjULbqqohciZ5S9LHyys7q3N+GGQmWrXfBBKuoyz 3XHGI81zPD6S
ow+c2IkiRQrUbcCTDkybKhTtvlfY9tvdf0XX6GXW0tmmDzz72XBa97a2vszM UpobFYrEbFaR
zlmbWrPpHMQtfUfHNft9nR63Fny/8tv1mcWOKYK1mfcy46093Pt69PO8458a zx5WtWlPK9oi
ftqa6I/aSfdhw+iN756DjfUaFMrcVTdIYmt1wZGmYRVY9McXeHJjVplqfz+x U2oF7eozbMal
Ni25U2RRE+I/OtP5NubvSbNK6vyXr8+THmwReclZrTJNIzYMk48U5cNpiImZ x4747zFclKxb
FfJD7joc/V4cG9jtOXq9nHW1Mnj4zE2rFppkrFrxS8faPK0Wj1raZi0Vsxen AAMG0yeNP6+T
tTFIWN6dIS+J4xM21pdkDiviMlVxqPTNLHpOjRqMyhgfFMPlzS7Y0ivbiUb2 10SKtNmuBTh3
7wwcCs6tbVacz9V9hQayGNP0D6Q8wKWMEwacHtVC4tZEY884x5wcUeL2jruc sj+g8rfp6Yyv
CFdi8tMrwZcgbwAAAAAAAAAwchk8aiKBO6yuQscYa1b5GIwlcpC7IGVApks2 krTDIZHk6xyU
Jk+Z8l0wf0DS1pNu7VQvcluBLg2ZM+bHs3BnAMHIZPGoigTusrkLHGGtW+Ri MJXKQuyBlQKZ
LNpK0wyGR5OsclCZPmfJdMH9A0taTbu1UL3JbgS4NmTPmx7NwIxJ41No1Hpn DJCxy6Hy5jaZ
PFJXGHZA/wAak8af0Cd1YpDHn1qUK2t6Y3prV4lKRWmy5U6lPl2ZMe/ds3aa 6hnAAADR4hZ1
a2D6J7BWFBpv6fBoRZyH2QljBJfTa1s3p/s3sJJ0M4LfSYNYPsm69Bu2zykD t0aq9Fy5fR83
kBnIxJ41No1HpnDJCxy6Hy5jaZPFJXGHZA/xqTxp/QJ3VikMefWpQra3pjem tXiUpFabLlTq
U+XZkx792zdprqGcAAa7I16tNja29vy+jOEgd8DOlWa7MeTaix7Ui13dFe3T NszYtFmJjalX
onl4s+LVbrh0y49cWuT7AwWzE/opYw15WsUiK1zkEdmU1cFUplzvFE3mYo5Q NjWKVTg1wmdu
b8/OqiaJ92TMp2bN+/an37smXfv100Kx3Hcdzrdvq9L0mprbO1sa2xntOfZv r0pXXvrY5iJx
6u1NrXnZiYia1iIpPrMzEOpp6mjk08u7v5suLFjy46RFMVck2nJXLbn8suKI iIxT95mZmPRG
av5TRCw3rO0ZejkGHbInKD4ndJjsluSt9jMLlkaX6uJY02zVFPS2KTBIt1xY sOLM25UyhTv1
SefxrPMp83Dj5xm6v5bi+G/MNfW0ey2sFMmtkw7NtnBlte16+zbJfW1px5re ETijxvTJz4Re
uWcePJYu4+E7nWa2XYw2nLOvNJy1/kzMY8mHHnx5sd8GfYxZcVseWtptTJ+M TE8TWLTXqU9D
UkAwaiTxpJJWmGKpCxppg/schk7FFFDsgwyV6jURXxhqlchaWLIo2ujixxh0 mzKmcVeHFvTo
lDuix5t+zeqwaZAwaGzq1dJo41u2WFBnGxGfpnpaBIZYwK5o1+zjTW79IekY sncMj4i6BY7k
iC1b53Bt9FSStnzZfJxuaLdnDeAAAAAAAAAADBxiTxqbRqPTOGSFjl0PlzG0 yeKSuMOyB/jU
njT+gTurFIY8+tShW1vTG9NavEpSK02XKnUp8uzJj37tm7TXUM4Bo8Cs6tbV acz9V9hQayGN
P0D6Q8wKWMEwacHtVC4tZEY884x5wcUeL2jrucsj+g8rfp6YyvCFdi8tMrwZ cgbwAAAaP2nV
r0/7K9oUG9qPbnsx9m/axg6f7SuzXtm7Peh+kOkfbnsf/wC1fRPm/T/Zr/pP zXoX/rwMFAL2
pC2JLYsMqy5KqsqYU++bYxbUUgFhxGZSWrpLvXvjVtj1isUdd3F0hL5udIw5 JtEjniSqNVDc
px+R5eDLpsCqgAMJJXrFHGB3fc2PJlxtSBQt3Y8Wzbv37/M49d23bt2b8uDb u+3d9n26eXt/
w/4wJzkliyCpkaxrbmh7sh+kMLhapzXOe9nxqnqcTGNxHch0kidieHVphbU6 OePJiS4EWTTX
Am25N+Heq35Mu/h/I+22el6v+s08NNjbts62CmO+ScVJts7OHWrNslceaa1p OWL2mMd54rMR
HMp3W6mLd2vZz3nHhjFlva0Vi8xGLFfLMRWbUiZmKcRzasczzy1WWcq5BXlp udRzdO0bJfHG
ZllcpZYk63E8ujdB5B51O3TljVSmioHCp1G8Dtj9DV6sr2uV4VOJQn2YMqtL mTban8h+Z978
L19XtPl/X6eLoc+1GC+XV3M21kxTNL29y2C2hrzbHXxjz8cnuRWfLHjyTxSb Xq/Df+S6/Hv9
ZmveuxXN7PnXBWMl9e2KMuK3t7Wa+HJEZsdq1zY6Ret62ifC0XWpHbergkSr 0D5quQLk2BYi
Wo3HRSkWJFOLbmTKkqnDl34VCZRh37d+zfs3a7d+3XTXTXXTU9D19jBtYKbW remTWyUi9L0m
LVvW0c1tW0cxatomJiYmYmJ5j0UnJjyYslsWWs1y1mYmJiYmJieJiYn1iYn0 mJ9YlqkG5MQe
z2vM+VrZ8VsNlT9B+feINM2aWteH2mh8ZsON+ecGBxcEmP2hgE1ZnxD9u/T0 tndkS3F5aZVg
yb9rBunaes9ZKv8AVZP84GFar0aXxdJGtkmLe8OUNesEbl7c1P6RwXRSRKo6 wS9MwSRIkVZl
DG9KIlK2t0xpVW3Fn3tzklU6bdcKjDv3hhYNyYg9nteZ8rWz4rYbKn6D8+8Q aZs0ta8PtND4
zYcb884MDi4JMftDAJqzPiH7d+npbO7IluLy0yrBk3hunaes9ZKv9Vk/zgO0 9Z6yVf6rJ/nA
dp6z1kq/1WT/ADgO09Z6yVf6rJ/nAdp6z1kq/wBVk/zgO09Z6yVf6rJ/nAdp 6z1kq/1WT/OA
7T1nrJV/qsn+cDCv96NMUQ4HSUTFvjbaqeo3G0zi/v6RnQqJFMpE1RCIMGBW 4qk6fM9SuWvi
JrbUu3drnXOKzAmwbd+bLj2bgzXaes9ZKv8AVZP84GFf70aYohwOkomLfG21 U9RuNpnF/f0j
OhUSKZSJqiEQYMCtxVJ0+Z6lctfETW2pdu7XOucVmBNg2782XHs3Ajd6NMyj rBL4hMW+VxKV
srVJIvKI2/pHyOySOviHA6Mj+wPbWqVNrwyvDaqxKEqpPlyYFGDJtyY927Zu 011DNdp6z1kq
/wBVk/zgO09Z6yVf6rJ/nAdp6z1kq/1WT/OBMcHLypVUddZemu6u1ESY6xYL te5RgsiMZo6z
0zK0MkdIvbjq943jc2t9YyRthrwoQP8Amy7GpZgalmTDn37E2fXYGarzkxB7 dh7PYdUWfFbP
gEh6Q6AnNeTNmmsPfOiXRaxuvQ8mjbi5Mrl0a9NilGo8zn3+ZVJ8mLf9mTZu 26BkFV+Ikb3k
YM7lIPTE6ViVr1uJmkymOs+KUubkyRfY/wAtTNuWKx9VJntoUIm7AtWp8y5Z t24MGzJlyY9m
4NJyzSunuSZW9M3ubTInLBJ3LBJ2BllESQyHMwu7Y1S5ajmSBtQQqwnaLyR2 Tp1+HPmd9UDh
kyYVOHbv1U49Q2tsl2REoxonpTgWN2ZRomQyPTJjxKtmTPk2bESWTIMKJIhQ 58+XL5jGsTbt
yRRm02+XjSZM+HBuCjgci8wrBnFXROu5xW6XarmzJPpLmY8e5qzPfmd++hLs xrnLa14ft9J3
MrXuzrdPObd6fH6P5ebZvxbd+zdwe2x3t2vUZMdZtbH2GS368R/x+9WZ/h5f 9fRN1rVjV26X
niLYKx+/+fhnj+PDyR4d2ktdHPmnK7BnrtK5tavEeQKMj7I1e94dXSW4+O0C e5ZHtVqZN9uJ
NAVcecmbTaq3eeQ9E7USnNkW7d3nOp80xUz/ABjtNSv5Tbp9ysRzzM/y80x/ 5V/L9JieY9Ji
HpHz/H1vWfIuj67qJpGho44x1mL+czijtN6+DNefKebbWC+Hb5r44sldiuXB SmC+Ksev/Ouy
JpTfCLmPb9bvPs5YlVcVeQtkQKQ9HNLx0DNINUcvk8WeeiX5C6Mbp0W+NeDP 6OtTKEmfzfkZ
sWTHu3bNZTyp5WWpyc5o8eXu60UAtKc8ppbVV43VxNras7Iq6qXhTbT+w+EL LvE+rydvLNx2
qum5o/XituzGhrxOhjipqjS+AY8SbRgySrJvk+UNGsbnVyHgLkubuHnJX/cT g7d0q6wG0fZq
irg7XL1x8A/Feuh14f8ATnD+uqpgz/7HTjizTkk6Bj6JBYeH2w80sdczY9ta TCGjxflmirLn
fJJvR3MSc+JBB3uDcY47abnWOLibdNlTdgrri/49fIbBxur1Fxhq+poNmnOa cVNGXdpQ7cKW
SrF7hiSqHHVsW7E2gKm8QK8XZ/l1SzvnXRzhSbNOeOS61eedM8g+K3JH6b4X cVa89HbK3SS9
kvCjjJxKrfpi5eKldRZGimFXPavH2kZ8Gx4UOL9G8cfDeOPXNy8ZHD+V86dO U05vCu6no5bG
6osCOJOK0fijiptLxRvEl4pwXmjY9rxXjk/QuNwanKT42Qx+kUrRsTnAGOFt 79JVkSfcmzZh
3BDmHxC+Xb9FLqeGTljBpqj4b0d4kd6oZjSEs46clK15TO3FKl/DLvWt4Vb1 zs3FOk2OUQZK
+ctpdGH/AErSKVS9YUCbAg6R3u7bmf1wejc85RWnUPF/xXIdmvv2tv3hjBuS Djx/sadNdQJb
ombTX/BDjfyf32RKoFD4TC6qlfZTavJ1Ay5M7VDW9lxNOrEmdE6leqzrXIJV CeTtmSnktQFN
UhzrfOUfG6VcjaURvvKOPIuI0+XzB8U8ZfEoue5eI6iwaVo6P0WnY2DZxXqx 3dEjYxIrHZ22
c58m98wJ3Zk3IQlUW51ch1cCh780cle0GUT6jq3m/PRm9mqKXf7SFlSvkpwy re2Yh0dEa6aX
Ghexyn7yuh/6P5A750vauxf053yKkUfl+J0C4v8AymRJuyaPLvFJ9nuJ8g+o Vbt8Rr2f4mwP
2ssqAfTFpWnHnt+sqnH7gtcHtPgtezV3psDhbMvzdnnQm3N0rDpvndg5yo3n JyWlnCScXJZ3
I98ZZhOXzgNWMataSO3GXjvQ/G1fMvDM4j8x7Tta0rmkvEu9I1WTHelmWm/x r0yQxGZtuWUS
CLxxhQR/e4dJYAlUQ8Sq8ZnF7Dk7zzog0buCsuKrtKeKXHyt5DxWn0L8RO/q 45keJVx+jrCz
OkjoFhuDkh28t3FmuW5Rsp7HW+R7VyXLnj7XHczs2pEIdxcTpVdFXyuoVfav 05V/I7xU/FZ4
+dinsLFGyKQ2KMd0eJvyJ7Rvav0dwtCQ3iqtCh+j/TenEML2Qt16P9ltz2m9 pVAdxc6rZf6o
ilK67Li+mqr59eOyEX1yf8itUf0+1ripe6J3Hpf7WXdF5zR0H9uLxg8OgvSE tZXNAp9rujkW
PC9r2pWmDw74/cwp7X9NX/BoRyX6QrtynMikVX8tHye8a6tqyJP9xeK340jv NuSN0cknDjDe
1JweDcgoXxrjkab12GuXuNLphIWRrYW5lyP2jmkBL/EqvF24iWzak950QbjF KKr4q8hZTxan
VbyHitJoXz3v6luRfOukVDCzTm+qBWRfkV0VF+NlWu6jZVEarvItV2dlW7mt uRPkaa2gOqrO
5aXiwUd6W7cqOyGUWFzi8QprY74uW1+K3E6ga1qzi3yps7jnAOLqa4rF4M8q ouunMvi7Q3SO
OsjpE10wkuONyty3ylOiZ9GlUGjcbeVvLvlXlpqZPHJuc1Mj5RXjx3opRCam rzjprFKVaZv4
KNUeJtKprTqi16RtWaZ5y8XYkco/rrM3iYsuCFv61PgbsTvibHpuD2o4d2/J eQfEbizfkzQs
bZMLv45Uhb8rbYwmXoo03yWyqzjEzfUMeRurm9OiRjSOj1lxpMSlYrUY0+3Z tyZsu/TXfuDo
0ABqKL8eST/ujCf/AJzYAHif4hV0W6wuN201HpG8wuqZ4/2F7UvLDh3tyiVS H6MoXq0VyvkC
vGpblbdJnbC1Ne9px49M67V8249uvpWVBkwc/wCK45xdt22S8TXHbs8d4n6R aY0uvpaefvFK
xNpj7cc25r6PWf8A5li6rL8q67e7K1Jv1+HBnpW9/GsTXtKRlyW4tW011tXJ sbkzFopSNacu
by18ealu2uHUrZ3yD8UmZrccSxTGKa5MM71gx48230F20tDj+9apdcuTHswq d2NukCbfv3Yt
2TZs35dce7XTJsybNsfexRb5F1uxET+PX9hSZ/SZz9dbj+MREvL8F5jR2cUz 9c+vaI/ZFNiO
f7ZRTxKr7vik5Khfaftp8r5rqTgD4i/NN3hjfFavkMauWd8R1/EZZW1eWgqn MBlcwQVU8J7T
fEj3ih7tE5EpTrNNUzwjz4cGbH2EZDpLydsyEXFNuON8c63zjnRdOWrbkHVc 7Jki4jV5Yc1n
bXx78PC+KipWwZlalHLOIyN8maDl5ZihG2scDYZE7MVaN+ZNm11a5MqeAlVc 86uQ8+ckLdzD
5K/7dkHceinWfWj7NUVT/ZHeuTgH4UN0NXD/AKc5gV1a0GYPbGccprjknQMg RL7Dzex/mkbr
hbGR0SZg5y42cyrii3A+i6wS8gWPjwniTHxGitfXjZ9vce+LdIQ+vI14THhx 2c50I/3hdfDr
mVGna1bPszki9SuMsGaJaPrw0R2QZ8L8ib4/0WuC4xbxEbisyNcebPsHlsx8 cLps61fCVb60
4YRhDx7Yo1ycpDlyg4ISHkBaEeht4QKyOTkwY08r5AWlFEj3DJa3tDSngOzB u03OzQ+LVgaN
c3iJ8lqe4JcQrly8mmNmunZwBifNyZyDkvZvGXjxBOYc7s2EKLMS0FU8DR8K 586chnyrXSLZ
Gh6h0BfadkTbHZhF8aiTLHaQYXlqCqz3lby7hcXvS0EPJucuXsjBvG45QxqC O1ecdN0LaU3h
UcyMFH0rx82ZW2kW2cLKOtyDz7FtsDOpe88/Vq2Jvyx+Tx3y3Pa4h2NzL5Rw 1g5CcZoYv8RR
j4W0XNqq5uOEps+PTDh63IJdd/Hm4uKFXN1XqJryjqy4oejfIWonU6TOjI2Y kTvscmzPjVa6
at2bFsDlWv8AmHyslMBc7A5I3m+cSI/LORvFOoL8kKiCUzXEa4BxqQeEXVHM Scrml2v2s5mi
r98snmrZbZXzjltzNMU6RO9omJpwtr6pTLdwZ2M8zLTf1ramuDml9NLGyQZ8 eeJM37Maglf+
5O7NnLLl7U0PXdnDhAF0t5V+2dBUrT0v9m+OOeAvUl7X/PMeZImkkOxtYQ7l /wA+7xrBFZUg
ifN32J5KM858UGMuvBXonisr7Lag41cTfEMsHi3e/ZpKqheOUqD26xcfqvn3 S79Jl8WkPtX5
xIj2sDs2t+EOjeSvMq4qJ5c0hVMd5AseFPFbV4W8bJjU3Iu3uPcBtDljhvqz Kpgs75LVHxri
/DpNZlxMaCNXQoxb5RErSrqJNc8gz4n1imdvjq9C/hw6zcq7i5DcYOJiWH82 mPlnMLgY/DYu
fkC+yeM8e5/GuFvLnTxGPDCx1nW8hinE+LceXSLMc+dLSsDMrh82eskmeU9d 78LQ6Nm9tfM6
kPfziRMrDcXjlVUdiWC+W0o40cjWmoI1aEyZoIyWHNo1J+LnGfkbqusFNVkP rms8z4ySW+3J
nR5WSNsafVibW/apwqHDascVoeZPN26lL9erhVdl8quyF8hXiN+FtGePfDT0 ygY39U1QK+Q/
AuzHq9+g7Br595KWB7PW5LZw0dLwaSs0Ww9nPoShHvUtsg3rgh0Q8SnkOt/2 6pM43nBmaUWL
BvC+hVu0pclq0VWkr5Qv/MXsCw2xyIoLi+2cTXG4LXgzK3cglqZPJI3b8FjT PNII9JssbWIo
44JJCGC3c5eQMpc+OUdiniCPma6b/qqlXDljQcYYeGLxJeAd32b4hfhYUFOK vj0GUUA82ZVz
5BY1yisyJJGS3FExd0ihr2ar9VTs2KFO4M7zV8SnkPUtucicVTXnBov5uDc4 4UwccLCtWin/
AJD0q/8AGbhFyeuCIciG/iOk4mx60IbBp/aHG1rkUYkkxtqwY1JIJNUCrWNp vaBtxx0Oqc1s
8h4rcsppuT3FePJCF4OVU94FLoPh2UVVVp2RFHbwpH7xGk1lRazagi/F1ZAe VWtiLscAYHlu
k8PhbfD8KXLnb08k2ZpfqHDvg4UhWtpOyKC2/wAXrxkFdy3wc/C0VyFr5UXC wciKBnPlTTkR
JGl/Z6Zk/Je8WNqg00fIumda2aM8UavYPHG33ZsbYnkeNid/D3E8Mb/w2PD1 /wD0d4m/wLAQ
O4gAGoyT/rmv/wDvct/Ic2A4P8QS47apJnRSymNqnHL89KXk2ZXJC1r3RwY2 hTKqF8+7INUG
/ZvbFe5fomR41e77d2Hcr08zrsUbsOTZxvam3zHRy8TGOOv3KWt/ti+x13M8 /SP9P1n0WT47
q9b2O3rdX2+b2Or2O106Zb+VaeGK05q5L+d4mlfClrW8rRNa8c2iaxMOWeDE wak8M5KsGebK
5e+SnljS8rbZG7KsLu7TqP7eZLPi3zta9taNMyr8km3SpGr2qcW3DhX6rNcy bZri03eRK+XY
42OsmvHN67vV24jn08N7Um315n8Zj15nn09fXl2vmWen/ufNMdMHh1Ovhvir NuMOSnT4sWTX
4yWvki2DJW+G1MlrZKXpamSfOLO/ud0ysOE8fkKqrLBfKrmEu5G8Kqgx2DGG aCP8ljEavbmd
QVKTxdHmyzYfP4HkfMkDn7lhSZXNlck6ZRl2ZvM7t+Pb9k9QXlYv5h8rIKjT J115vkmZrCfO
XUCmM6lkEplLm431fwa8VXi/4ek75PxRbF6zisUaHzXjHb0stmxHOco5NA2e WsGJzRNDFD0a
+OKAwbxzq5DtMrURauuSvbBx3TdrTVHOYfs1RUi9tKKbro8GOKW3zA7RK8rp h47uX0XtHMS9
UHTzawJ68ZfYbypk1PCiPvGTOEqqPl28VncXNXSpOVr5ykqedPnJ+VZORrI+ cXFmFbYcZ49+
AlSEDvuY29WVEOFF19VXE3ZyAlCqZP6WFOzFHIkyuLs+sMhVtG7BmDeaT592 ZYWHfB748QGq
qPouDWrf0HVeIBUFxcRrLjU/ncPqbgbalRUqu5M2pxPrriNJnyWoOUlmZMra x1NE5FlT1jhT
psyjVikzk+go3nJyWlnCScXJZ3I98ZZhOXzgNWMataSO3GXjvQ/G1fMvDM4j 8x7Tta0rmkvE
u9I1WTHelmWm/wAa9MkMRmbbllEgi8cYUEf3uHSWAMHUHNzl3drJlmm3lN0Y 3Q36NKNT46TS
cdLQqyzlPJrxeua3hoyfkdis+Q8ckbjPpy20/UccmUUdY+hh0AcZgj2OCmG7 o+szxfUOxbB5
ky5u4GzCQO/Jxjqy2Ks5jQ3j1Zt27d9IIJ3CePaDxd3ngbn5Cz+OTyIv1NxF 8sOm6skq5c9q
oqjh2kiRu6lsbUKRDohRBDk/MPlYol1hJqBvN85YQOmuOXiV2/xtlbTBKZsN B4gkloqkPDsd
alQyd9oqs4qzWKxwPkjyosKF48VPaQlQvcokkaHHMsdG531XBnVvMSUIH9VD oR4hnajwyVTm
im6yvE79J4bvf0/O03rXm/J55W/bPBqWZeEUY6JntC0oy+YlsNdXpH2z+jZF GqyQRDK2Bo3L
rm7Pa5pe45In8Rrsibq14Oya5uGdzewHGurf9wm6EEr5YM/s30XyQqewYvev spF6gq5V6ZTS
OJtMs7RvaJswYY/KYejbA3mzuWl4sFHelu3KjshlFhc4vEKa2O+LltfitxOo Gtas4t8qbO45
wDi6muKxeDPKqLrpzL4u0N0jjrI6RNdMJLjjcrct8pTomfRpVBKuM/iI3Fdz xFp67ctmPTkB
MrV8NRvjHhwxhDx70jUkpDlNxc8PqzeTFoR6vlMCduarwx1Mi5D2bNEj2nne VoYU8P2ZnXRW
ztTqlUh0b4VsquiCVr4ZdUTG1+0eD374ViK5kMVywWKRJgpn6emDgzBa3jdZ qGZPmnDn7VQb
kcpyTlZLH2TdLyVpTrmDBFWzLmYtQ6q5uXUpreyqLhs05VfQ1QU0g15SaX8n PTKBi/k2/A3+
iGqoaI9vOU1fWlSbb2nwuwp1IOiNGfbKXX2G9IbVmBA2vWBWHivxs5lXFFuB 9F1gl5AsfHhP
EmPiNFa+vGz7e498W6Qh9eRrwmPDjs5zoR/vC6+HXMqNO1q2fZnJF6lcZYM0 S0fXhojsgz4X
5E3x/otcFxi3iI3FZka482fYPLZj44XTZ1q+Eq31pwwjCHj2xRrk5SHLlBwQ kPIC0I9DbwgV
kcnJgxp5XyAtKKJHuGS1vaGlPAdmDdpudmh8WrA0a5vET5LU9wS4hXLl5NMb NdOzgDE+bkzk
HJezeMvHiCcw53ZsIUWYloKp4Gj4Vz505DPlWukWyND1DoC+07Im2OzCL41E mWO0gwvLUFVn
vK3l3C4veloIeTc5cvZGDeNxyhjUEdq846boW0pvCo5kYKPpXj5syttIts4W UdbkHn2LbYGd
S955+rVsTflj8njvlue1xCHeyf8A/UvpHsB5xf8AjifjD6vP/tT/AOED7U/t v9b3/wBdfhX9
l/8AsL/+OwPTfhVe3Eblnd8NtPj9cnHLBH6Q45T+nOMXGanLDrNbYbFxynEu oNZL7atqo4m7
qXSnWNe6UvCGyFwvRta10KYt2vtNrifX72VhYet4ADQbT/bqZf8AwFd/7sDg y2rOe2vDjcY1
g2u0ja7VrBxj7TuTK3Da6Pjfb8QVtLbqgQZMK5b6evw48XmcO/ZlyeX5OzXT drpqcD5Jivm0
MNKVm147Lr7REevPjv61v8k7r71pmva08V/ptiOf34Mkf5uKuFV4Sybc/YPa t1T93fpW/wAV
kUQX6Peu3NhiT4qsK+Y3Fq+ZGhAi2qY+hUtbs1O2xBl03aJsb56Vt1wt+XBt xXiJpNtekzzM
2n78zM2pT+7z5rHEREeMxPrEyu/zfX6zr/hPS6HWTTjyzbE2i/lfJOxp9VbL kt+U18abNNrT
rNK0rE6d8V/LYxZ726/qewNNlWVrs0Vaa6bIBDdumum//DXTbHW7T7dP8P8A g1+wonxDFOD4
n1eGY4mnXa1eP04w0jhSe1v7nabOTnny2Mk/23mXl7ylsKX8QdNrdxjseZ1l EYFxH54c0JBB
1Tg22iyXBbHHz6VN0cY7IebqaLJniCH2Ormb64zbLE3mLySUyF7cpAqd/aBx XOqixIDGvvLm
zIraEroa4eaL9RtPVbY1nxTPzIkqLjBCrAl8tbqS4PXDWNUTiUWNTSzjCldJ Sm5N2FmTIWaF
Mr45M8AQZcGbXVukCl1CcwTnzf04Xo2/lDyIycGogv6NdpnYaaP0zWW+srf3 cLPDatFu4v7H
blFAbOh7NhlM15D2s/6s72jWznLrGNMSVzxN7Q4pcwQXj/zYt2LcMKarJDer bRuGJsvGCMwW
3J5Z9G8d6misBjPhocEpu5Uu825bfFPlewuliWDY16O8kYGbLGNHlzbWN6y4 npIhZdG5YFjj
3iM3DYLDSFizblG2UNa07sjw0UMG4oRpDRrRGeQVRclUfDd9vKwWiMXBCLA5 DSVqwyS6rGja
V2ikpQNjYnhmPFrpucmx4Vqw0+0/EZ5GVjw54v2j9Rjc3W6n4WxzlpMXy/bA 480fDeUk1sCJ
5p+mpavIWj4jTVxu10rpyjmRqdYvCnmqn1CxSePY88hVub1idm0KLMuY/KmK MFxWGi5ITNfr
G4p4tnIePQxzg9C7ok2YfDo5T46lp2jNmRBTzfMVdOWjC5pj0m+ZQ75puqUs qHKxyNh8pw2r
w6p5V8vmFtvDj/Fc3PBBxMpyVVvy3XSWwY7JuLSRLKLdpS0eNdfNdfKJZyMr O14ujdYpkl8y
wODS3YkjntXoM2xRr9qHJi2hzdCebXJuSwxwmd8Xc9cZ2eVXrxurK5Xr2Oqa DMPCyOu/hkVx
ygmaxkcbqruXpYa8T/lxO0MJX5LPyyzAmTOyVnbMSB5zp1m4MzH+cFpPitAn s/l3koJoYog7
unGuXbK9quS/Xs5t3JXk/W0XWrIIvg62S8itJVStTVbJ9zDQ+aDuz9rZ+7Kz 5Uqd9i2xsCQc
oPEFu6ApJ8/xbmLmiN8t0w8Q2Or+HejVxtVp66rCh+NXOGY8cbj2QOSVU7cj EmSX60tXU11c
nmRLY4+bpHrvTJNrK5IEOELvffOC3af5NU/XsevZt2o4xYnFChJdW16WfRsN n3JXDcU/rmIT
W/63oWN8U09g2e2I49a+bHukMYseBxlumUPd8OsazIWNajew49b+XtvXhx34 0oo/zBbOTEqt
Bq4B25dbxKI5Rszj/E/k8h53+HnngEGdozxojNEOLAxzJxn02zK4vLnbLIHX BBtcTY5N25C8
ZlAe1vGO6J6qcuRlZT2wXmzs1B3q3VlHLGljZDGedzCOyHjzQV56rJwnreKQ GvMrwzyK5HFq
SZGdgZ8GrM3odqjFnXbVa9WHnzy+5Fr5JcC2vZ9yXy1k4Q7nj4czNSPFTYpp Niw8iaw23twv
sl2uTM1zeCPV/wAzyMVnyGXtujnDpC0RzFpBNqXMk3qED3vWhJYv4ll/q9eC 0iXXVFWyQTOH
eHpELWqa07HpqAv/ACHfOT/YzhtC86a49NvGRfaVixRpQXYrwYH1gtKGR9ql kOdMGSPqkbEu
TPoYXfzyvuQrqKZo5znf99q3ZW9TruSlMx9j4mOj3wst2wOb/hzU7MK+jcSU Ua7WBXzrDo1y
CsKMpWmzs8sc02Vv2ardVLm35lO4M1yz8Sy/64s29Oy+6orHcesO5exBhomc WPTT5ddSvlB8
RuQVmRS827jOl4yMdhxaKTOyaHbXyPvsqs6cR9+h8sSKNY+n6bb9jCHROTkF fEdtKR1ZJLgu
O/Ifj5ETXhotiGPsbrSx57FXXw4HrnNgsOOWJVMa45rYRyT0n63ZCWR2b5DF omhi2JNkzIME
g2ZZTqHEPhiSasa9UNczt2rr5jEBj/hkeGFI3eYXrbiu6qgbHJks64JFGLXb oJuvu5Utb10g
lrKgk0OXKI6xoKkbou/OSnFDkqnPkdQ9bOClpbpKn5QT/JNYhaGaw+SSOQ5r uqxPq10fdW5n
4yca4Dtl9KMu6T2PuZohF8UM2w91xazCXa5ZjGHrP6aj0zaMbSHo5VVtwljn 0pd5lK2RFG2y
vdyGdVkqxtb7IeRLFL8MvYY1WbFBXXNgbpGnY33YocVzqq3bMTAmy64cu/E1 vDwpTgtW24S+
T6LO8NlbItjbnXu1DBayS42tikPHZiiGGIMMlrN9grVmzt0cTvj7vTuKF1S7 t+J/TYtMOLfl
a2dnUqA1TtD0+zdpuzbN+zfsyYsmLLpszYc2HLs3Ys2DPhy7N+LPgzYt+uzf s36btm/Zrrt3
aa6a66AVSMXGg3xl+YnZVu348bC67WpVlVqtFKffogz7cDUrW482xfvwZd+u mNIs0yaZ9u7X
bhy7/O+azKAzM5nnHmxUrKlk0udtuscfPaRiXxp6tCCvbU9dCvUc3rEUgg6i OvuHzzHIlqXJ
j0Ueay4lG7Tft3f4fZoz62PYmlrzet8dvKtqXvjtW3jakzFsdq2jmtrVn14m JmJZRbiJrxWa
2jiYmItExzE+sWiY+sRP8ENSVZwaQYHVMhXTFEmfmhdHnxOktnkomwPLA6bN uNzY3XFhmezG
4tDjj2abc6bNpvw5tNNNN+3X7CHPU6tqXxWvszjyUmto/qdji1bek1tHu8TW Y9JifSfu2e/f
mLcY/KsxMfhT0mPpMfj6TH2l1T9QFQ++WD7pf+qTptJ9QFQ++WD7pf8AqkDR 5ZN+Ns5f6xk8
peMDo+U3OXCyK3XeamqL2cmjpWthVAuefRm7AkRvHn67tV/bvR1+NUk2+n+f 24tFOBPmwhvH
1AVD75YPul/6pAlVvvnHO740hikzsmzmVrb3xNIcCqoLf5HcfJLkXpEDm24k 66Z0HLa1mDmx
707tl3ZWtSvytuZRsw58mDdnTJ8mIM7W83421HC2avq+eMDHF2PpHMnT5sU1 fHZydnx2XSGT
ymUyeQ4HaUTSczSUOyx4f394WLnp/elypxcVSlapz58gbx9QFQ++WD7pf+qQ NHs6b8bbkrWw
qgsh4wSOu7Vg0sreex7zU1Z+noXOWBwjEpZulmHA1vjX0oxumfB6QiUp1eDz nl4cuPJt279A
3j6gKh98sH3S/wDVID6gKh98sH3S/wDVIEOubFxkvj2b9t7Rupj9lemOjOxn kPyz44+ldOdF
+m+0n082HV3tl5jofD6H0v6d0d5ef0XzPpKnzoVWMWxx8hMaj0MhjhHIjD4i xtMYikUjETcG
CNRiNMCBO1MUejzE1MSRrZWNla0mJMkSJsWJOmT4tmPHs27NummgYNvm/G1r sqWW+heMGCxJ
zBq9reUyHzU1y9KQuqn+zpPAmbonNgyMaLoF8uSSZ/SE6bCrVdJeQoy5sadL swAsie0FasLe
YFJ7BmTWxv3R3py6t5xdNNzTB0W7IXlN0NZFQO8GsSOedWN2PYo6OdUvpiTd lS5/OJs+bDkD
RqZxcZKH9pPYi0bqfParofpPtm5D8s+R3ovQfSnoXs39Q1h2j7G+f6YzemdE eg9I+Rg9K896
Mm80Fx+oCoffLB90v/VIHOVvxPh/fElQyS0ZhZz+nTMaaMOVft94cpIjSE0j WFe5r1ketDj5
DJ3HqLttjkex4UIntJKI67p35o36NrlsVN+zYm2h0b9QFQ++WD7pf+qQH1AV D75YPul/6pAf
UBUPvlg+6X/qkB9QFQ++WD7pf+qQH1AVD75YPul/6pA11LeNV45a9ue+WYNE KyORZAnz9GPe
vnFbc5zBQsxea0bNc2zzOF0wa+Vu26bd3nPs26667d2mgSWbMvECxHV8eJY9 yZZnkjugkL0i
bbAvmNsC5/bI62xJE+bovGpE0RrC74Y20JkeqnGk2Zt+HFppu3bvt111g5Ou 18l73m2evuXi
1opmzUrNorFItNaZK18vGta88c8RDZGW1eJ4pMxHETNKzPHMzxzMTPHMzPHP 1Zevt/FOrnNE
7w6QyFOrbGN7jbTjfZpdczbmZlkjszvr+jZGaaPMgaGbpl3j6POpyJcGLLm3 4NvlbtdPt01y
w6ODDkrlrbNa9K2rXzy5ckVrea2tFYyXtFfKa1meIiZ4jktkm0THFI8piZ4r WvMxExHMxETP
ETPHP6rL9QFQ++WD7pf+qSY1n1AVD75YPul/6pA0eJzfjbBn+zpPFnjA1vly TlvsiyF3mpqt
9o5o11rXtQIXn0ZxwK0bP5iu6qYG70dBjSpN3oHn92LVTnUZswbx9QFQ++WD 7pf+qQOcpDE+
H8utlPc0rmFnSeSpHyMSdLEJDeHKR6odNJYThafYyQp+MTlO1PG7C+RF5YED 41q9sU0UIJQi
wP2DfjecONftDo36gKh98sH3S/8AVID6gKh98sH3S/8AVIGjuE342ullRO31 zxgz2JBoNYVb
xaQ+amuLouF2q/1jJ56zdE4cGNjW9PPlNxvP6QoTZlaXo3yE+XDjUKtmcN4+ oCoffLB90v8A
1SA+oCoffLB90v8A1SBzlHonw/jtsqLs0mFnSmeavknk7Lts68OUlvQSCSWY YXZA9yGqaltS
dzKp6ffNY/IXNlRq4syM6hsjrqvZ0e9O1rlaTMHRv1AVD75YPul/6pA0esZv xtputa9qCt3j
BHK7qqDROt4FHvNTV46BhcGYG+MRZm6WfsDo+OnRbG14MHpC1SoV5/N+Xmy5 Mm7dv1CVW/Ge
Kl3yVDK5nbPIZldG9jTR7AlqDldzY4+RrIgSL3NyxKF0MoO2a1h7m+b1Dtl2 5XRSgyuWZPsw
4MmfdgTJ8eILjGLepKIxqPRRqnLqra4wxtMebVUncbEm0lUoGVAnbUaiQzOZ 6v8AMJc+Zk6b
buVujsvWuS9Rrvzqs+bPk35NwZz6gKh98sH3S/8AVIHOVQRPh/SMlXTOJTCz pLMFbGpjCWV3
deHKTkpJY3GnJe2Or9HoK+8ip3abpXjHLnRha1L6kYsrcnflDK15HDYp3tbf qmDo36gKh98s
H3S/9UgPqAqH3ywfdL/1SA+oCoffLB90v/VID6gKh98sH3S/9UgPqAqH3ywf dL/1SA+oCoff
LB90v/VIGuvd41Wsc4eoTyzBkwtcjVL1+/ox72eYSZIlKWzZl8ne2bd2X7Vz jh2eTs03bv8A
l+V9nk6btdA1Own/AIzWjnbVMvlD5kUtTRJI8lURuT27BM+Vgl+9kySVjcss FcY3keWh5yRx
DuzJlmufDrqm266bdP8AH7YufUxbF65bTlrkrS1YmmTJjnxv4zaszjtWZraa VmYnmPSGdbzW
PHis15ifyrW3rHPEx5RPExzPrH6p3HIRwtiSpOqYHSWItE75GZJuQZLN5DL2 Rc9Qx6TyOKrH
mPuMrVsT70E+JMapPjWp1GLZl2/b5P8Ajr9uiOr1ojxm2xNPKtvG2xntWbUt F6Tatsk1t42i
LR5RMRMcspzWmfLinlETET4UiYiY4niYrzHMek8OkvqAqH3ywfdL/wBUnRaj 6gKh98sH3S/9
UgaO4Tfja6WVE7fXPGDPYkGg1hVvFpD5qa4ui4Xar/WMnnrN0ThwY2Nb08+U 3G8/pChNmVpe
jfIT5cONQq2Zw3j6gKh98sH3S/8AVIEOubFxkvj2b9t7Rupj9lemOjOxnkPy z44+ldOdF+m+
0n082HV3tl5jofD6H0v6d0d5ef0XzPpKnzoVWMWxx8hMaj0MhjhHIjD4ixtM YikUjETcGCNR
iNMCBO1MUejzE1MSRrZWNla0mJMkSJsWJOmT4tmPHs27NummgZz6gKh98sH3 S/8AVIGj2FN+
NtqsDfGJ68YH5ja5zWNkIUPmpq1+YmlN2VE7frd59JZsDcsy+zliQZqcfR9+ TckWei+YVYs6
bJmw5A3j6gKh98sH3S/9UgPqAqH3ywfdL/1SBzlb8T4f3xJUMktGYWc/p0zG mjDlX7feHKSI
0hNI1hXua9ZHrQ4+Qydx6i7bY5HseFCJ7SSiOu6d+aN+ja5bFTfs2JtodG/U BUPvlg+6X/qk
DR4nN+NsGf7Ok8WeMDW+XJOW+yLIXeamq32jmjXWte1AhefRnHArRs/mK7qp gbvR0GNKk3eg
ef3YtVOdRmzBgrffOOd3xpDFJnZNnMrW3viaQ4FVQW/yO4+SXIvSIHNtxJ10 zoOW1rMHNj3p
3bLuytalflbcyjZhz5MG7OmT5MQKgfOOdIRpdFIZZNnPTW4PimQ51Vv2/wAj uQclxr1aBsbc
qdDM78ltlTBsY9idpxbsTWmX4m3Co35s+PBtzqVGTKFV+oCoffLB90v/AFSB zlIYnw/l1sp7
mlcws6TyVI+RiTpYhIbw5SPVDppLCcLT7GSFPxicp2p43YXyIvLAgfGtXtim ihBKEWB+wb8b
zhxr9odG/UBUPvlg+6X/AKpAfUBUPvlg+6X/AKpAfUBUPvlg+6X/AKpAfUBU Pvlg+6X/AKpA
fUBUPvlg+6X/AKpAfUBUPvlg+6X/AKpA1GfXZV71C5K0tkrwKXBwaFSVIn6O ecPns+TZ9mzZ
51Q24sGPytf+Pdu26af+kDzkkKVO/wCZTqpyr8PlPKN7Sq2p1c2RzRObU8p3 1ocW54ZViB1b
lzc6IsOfDmwZseTZkx6a6amnPgx7OP2svl4+VbR42tW0WpaL1tFqzFqzW1Ym JiYmJhlW00nm
OPpMesRMTExxMTE8xMTEzHq1JJCG1A+75QhfbGRSbIpWrd8iSW3aid93rHLb n2OKve74Zlsc
NylfsVZdM2TXJ5WXTJu03a6+Vr9saOuxVye7XLtxl5mfL+q2eeZ+vr7vPr92 U5eae3NcU4/0
9unHp9PTxbE1tiJlbG5mbMPoza0oEbY3p/O5s3o6JAnxpUmHzyjJlUZfNYMW 3b5W/fu37vs+
3drrr9upKwYcWtgpr4I8cOOsVrHrPFaxxEczzPpEff1Y3ta9pvb1tM8z++X3 m1iAapHYRF4m
7zx+YGz0B2s2Vo5vN1fpriq6blCCDQyt0jn5harUpm3zULr5oReYSbE6fd6J 57dj1z5c2XIG
1gRN5491pI7Ew2dIdtgvz4ndmF+Txt5ue5XSo8D5FcTd7MPOGh10+z0hido4 5s6R1QKNse0z
I39Lhd8W7Y6Y9ivaFsAAaoshEXXzmO2QrbPOzSJxSZwhgefTXHH6BF7Bd4G/ S9s6OxK9jSq6
XdqyY8vn82DIoT+heThyY9mZRtyhtYACJs3HutGWxM1p6bbBkEu1dn5+a9s7 ue5bIiUSfJLi
cUbq817XVgz6TV5Wzt0O8rmtMoj7U25kLK4K21NuwoFahNlC2AapA4RF6yg0 MreENnQkLr6K
R2ERBm9NcXLoiLxNoRsLA2dIu6te7L/QGlBhxefVZ8yjL5HlZMm/fru3ahPr IoCCWq+JJDJ3
67GtejacDNhT1vyW5G02x70adYuXY8yuMVBasGjS923ZnHJtyL86TIuy4duL FvzbsWDDsxhV
mFmRxxjZo835nZQgYWluZkKh+fnyVPmdG1o8KFNmeZPJ3F4ksjdsuHBt3KF7 irVLlmbXdlz5
smXfv37gywETrfj3WlVviuTxzbYL7JVLTnYcEhtS57lvF8Y2NcsQuDuzRJ2u qfT9fC2mRr2h
Bndk7RkRYXfM1oN63bn3IEeuALYAAAAAAAB+tm/fj113Y9+7Zu1279mu7Zu1 2667MuzdjybN
dduumuu3Jj367d2n/Brt1101/wAAPfSm6bqF0qGq3Nzqut3Fxca3g65wcF0H jCtauWq4w1qF
axYrUNeTOpVKc+TdvyZN+7dv3792uuuuuuuuoFI7DaU+D9W938T6oAdhtKfB +re7+J9UAOw2
lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7v4n1QA7D aU+D9W938T6o
AdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPq gB2G0p8H6t7v
4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u /ifVADsNpT4P
1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9UAOw2lPg /Vvd/E+qAHYb
Snwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W938T6oAdh tKfB+re7+J9U
AOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7v4n1 QA7DaU+D9W93
8T6oAdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3 fxPqgB2G0p8H
6t7v4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHYbSnw fq3u/ifVADsN
pT4P1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9UAOw 2lPg/Vvd/E+q
AHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W938T6 oAdhtKfB+re7
+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7 v4n1QA7DaU+D
9W938T6oAdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4 P1b3fxPqgB2G
0p8H6t7v4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9UAOw2lPg/Vvd/E+qAHY bSnwfq3u/ifV
ADsNpT4P1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W938T6oAdhtKfB+re7+J9 UAOw2lPg/Vvd
/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8H6t7v4n1QA7DaU+D9W9 38T6oAdhtKfB
+re7+J9UAOw2lPg/Vvd/E+qAHYbSnwfq3u/ifVADsNpT4P1b3fxPqgB2G0p8 H6t7v4n1
Re: Diagram partitioning -- Changes in one sub-diagram cause changes in another sub-diagram!? (solve [message #501091 is a reply to message #498650] Mon, 30 November 2009 22:31 Go to previous message
TL is currently offline TLFriend
Messages: 22
Registered: July 2009
Junior Member
Hi,

I found the problem. I had to share the editing domain explicitly.
Consider this thread closed.

Tomaz


T L pravi:
> I am working on partitioned diagrams and am experiencing unexpected
> changes in one sub-diagram because of changes made in another
> sub-diagram. These diagrams are not of the same type but contain some
> duplicated information (nodes and corresponding semantic elements).
> Could someone please give any guesses on what is going wrong? To
> highlight the problem look at the following scenario:
>
> I start with my main diagram that contains nodes and connections between
> these nodes. This is documented in picture "step_1.jpg". Both nodes have
> sub-diagrams, which are basically state diagrams (pages with #1 & #2).
> An example of the sate diagram of the 'Evaporation' node is shown on
> picture "step_2.jpg".
>
> Then I add a sub-graph to the connection, which is shown on picture
> "step_3.jpg". The new sub-diagram, which is showed on picture
> "step_4.jpg", contains copies of the nodes and corresponding domain
> elements of the state diagram of the 'Evaporation' node (shown in
> "step_2.jpg"). I do this initialization programmatically. A sub question
> arises: Why do I have to save the displayed diagram manually (the '*'
> sign appear which denotes that the content is not saved). The code for
> my initialization is show in [1] at the end of this mail.
>
> After I save the diagram show on picture "step_4.jpg" this causes
> changes to the diagram from which it was copied (it is shown on picture
> "step_2.jpg"). This behavior is not expected especially because the both
> semantic elements (the original and the copy) are contained in separate
> containers (although they are linked through a hierarchy of containments).
>
> The changes to the state diagram because saving the other diagram are
> shown in picture "step_5.jpg". I debugged the program and it seems like
> the semantic elements of the original diagram (shown on picture
> "step_2.jpg") were deleted from the model when changes were made to the
> previous diagram (show on picture "step_4.jpg"). When I save this
> diagram, then I receive an "Unhandled event loop exception". The stack
> trace of this exception can be seen at the end of the mail under [2]. If
> I try to look at diagram #3 again I receive and never-ending loop of
> warnings, that are depicted in "step_6.jpg".
>
>
> As already said I cannot imagine why this is happening. I think that all
> the 3 different diagram types share one EditingDomain because I used
> diagram partitioning, although I did not explicitly share the
> EditingDomain as documented in
> http://wiki.eclipse.org/GMF_Tips#Sharing_single_EditingDomai n_instance_across_several_diagrams
> . Could this be a problem?
> ---------------
> Tomaz
> --------------
> [1]
>
> //this method is called only once in the get???SemanticChildren() method
> of ???DiagramUpdater class
> private static void addInitialDiagramElements(final View view) {
>
> TransactionalEditingDomain myEditDomain =
> TransactionUtil.getEditingDomain(view);
> final VirtualDependence container = (VirtualDependence)
> view.getElement();
> final Diagram sourceDiagram = findCorrespondingStateDiagam(view);
>
> AbstractTransactionalCommand createModelInstances = new
> AbstractTransactionalCommand(myEditDomain, "add Nodes", null) {
>
> @Override
> protected CommandResult doExecuteWithResult(IProgressMonitor
> monitor,
> IAdaptable info) throws ExecutionException {
>
> for (Object child : sourceDiagram.getChildren())
> {
> if(child instanceof Node)
> {
> Node node = (Node) child;
> //When using existing model element
> State modelOfState = (State)node.getElement();
>
> //making the copy
> State mirrorState = (State)
> EcoreUtil.copy(modelOfState);
> container.getStates().add(mirrorState);
>
>
> Location locationOfOriginal =
> (Location)node.getLayoutConstraint();
>
> node.eAdapters().add(new AdapterImpl(){
> public void notifyChanged(Notification
> notification)
> {
> Object chagedFeature =
> notification.getFeature();
>
>
> if(chagedFeature.equals(NotationPackage.eINSTANCE.getLocatio n()))
> {
> System.out.println("Location of
> original has changed!");
> }
> }
> });
>
>
> //create new
> Node copiedNode = ViewService.createNode(view,
> mirrorState,
> ((IHintedType)
> ProcGraphElementTypes.State_2001).getSemanticHint(),
> ProcGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
> copiedNode.setElement(mirrorState);
> Location locationOfCopy =
> NotationFactory.eINSTANCE.createLocation();
> locationOfCopy.setX(locationOfOriginal.getX());
> locationOfCopy.setY(locationOfOriginal.getY());
> copiedNode.setLayoutConstraint(locationOfCopy);
> }
> }
>
>
> for (Transition currentTransition :
> container.getSourceEntitiy().get(0).getTransitions()) {
> //will do something in the future
> }
>
>
> return CommandResult.newOKCommandResult();
> }
> };
>
>
> IStatus status;
>
> try {
> status =
> OperationHistoryFactory.getOperationHistory().execute(create ModelInstances,
> null, null);
> } catch (ExecutionException e) {}
>
> }
>
>
>
>
> [2]
>
> org.eclipse.swt.SWTException: Failed to execute runnable
> (java.lang.NullPointerException)
> at org.eclipse.swt.SWT.error(SWT.java:3777)
> at org.eclipse.swt.SWT.error(SWT.java:3695)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:136)
>
> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:3800)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3425)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
> Caused by: java.lang.NullPointerException
> at
> si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDiagramUpdater$ 1$2.notifyChanged(ProcGraphDiagramUpdater.java:272)
>
> at
> org.eclipse.emf.common.notify.impl.BasicNotifierImpl$EAdapte rList.didRemove(BasicNotifierImpl.java:95)
>
> at org.eclipse.emf.common.util.BasicEList.didClear(BasicEList.j ava:260)
> at org.eclipse.emf.common.util.BasicEList.clear(BasicEList.java :1000)
> at
> org.eclipse.emf.common.notify.impl.BasicNotifierImpl$EAdapte rList.clear(BasicNotifierImpl.java:171)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.unloaded(Re sourceImpl.java:1511)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.doUnload(Re sourceImpl.java:1570)
>
> at
> org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doUnload(XMLR esourceImpl.java:505)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.unload(Reso urceImpl.java:1585)
>
> at
> si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDocumentProvide r.handleElementChanged(ProcGraphDocumentProvider.java:732)
>
> at
> si.ijs.dsc.procgraph.diagramDD.part.ProcGraphDocumentProvide r$ResourceSetInfo$SynchronizerDelegate$1.run(ProcGraphDocume ntProvider.java:1013)
>
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:133)
>
> ... 23 more
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
Previous Topic:How to programmatically create new hierarchical elements and corresponding views
Next Topic:Modify creation tool: Create element in conteiner of its container
Goto Forum:
  


Current Time: Fri Apr 26 10:17:49 GMT 2024

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

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

Back to the top