Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [GMF + Hibernate] Multiple inheritance
[GMF + Hibernate] Multiple inheritance [message #127095] Fri, 11 July 2008 15:36 Go to next message
Eclipse UserFriend
Originally posted by: thomas.kenner.reflex.at

--nextPart1756514.C1oVOEdYUt
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit

Hi,

I'm trying to perist the model shown in model.png (simplified):
# "Dialplan" is the main element, that contains all other elements.
# "DialPlanElement", "AbstractBaseElement", "InputPortElement", "OutputPortElement"
and "FlowDialPlanElements" are all abstract classes.
# "Flow" is a class for the connection of dialplan elements.
# "Hangup" is a concrete class that represents a node in the graphical
editor.

After adapting the project according to [1], persisting the model and the
diagram in the database for node elements ("Hangup") was no problem.

But with the connection "Flow" I've got some troubles.
The "FlowDialPlanElements" is handled as a "DialPlanElement" (for multiple
inheritance one class had to be chosen as the "real" superclass). The
problem now is, that "Flow" expects an "InputPortElement"
respectively "OutputPortElement" and not an "DialPlanElement".

I think any-mapping could be a solution, but I've no idea how to use it.
Could someone please provide some hints?

Thanks in advance,
Thomas


[1] http://www.elver.org/hibernate/gmftutorial/tutorial1.html

--nextPart1756514.C1oVOEdYUt
Content-Type: text/plain; name="dialplan.ecore"
Content-Transfer-Encoding: 8Bit
Content-Disposition: attachment; filename="dialplan.ecore"

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="org"
nsURI="org" nsPrefix="org">
<eSubpackages name="acoveo" nsURI="org.acoveo" nsPrefix="org.acoveo">
<eSubpackages name="dialplan" nsURI="org.acoveo.dialplan" nsPrefix="org.acoveo.dialplan">
<eClassifiers xsi:type="ecore:EClass" name="Dialplan">
<eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
eType="#//acoveo/dialplan/DialPlanElement" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DialPlanElement" abstract="true"
eSuperTypes="#//acoveo/dialplan/AbstractBaseElement"/>
<eClassifiers xsi:type="ecore:EClass" name="Hangup" eSuperTypes="#//acoveo/dialplan/FlowDialPlanElements"/>
<eClassifiers xsi:type="ecore:EClass" name="FlowDialPlanElements" abstract="true"
eSuperTypes="#//acoveo/dialplan/DialPlanElement #//acoveo/dialplan/InputPortElement #//acoveo/dialplan/OutputPortElement"/>
<eClassifiers xsi:type="ecore:EClass" name="InputPortElement" abstract="true"
eSuperTypes="#//acoveo/dialplan/AbstractBaseElement"/>
<eClassifiers xsi:type="ecore:EClass" name="OutputPortElement" abstract="true"
eSuperTypes="#//acoveo/dialplan/AbstractBaseElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="flow" eType="#//acoveo/dialplan/Flow"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractBaseElement" abstract="true">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Flow">
<eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
eType="#//acoveo/dialplan/OutputPortElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
eType="#//acoveo/dialplan/InputPortElement"/>
</eClassifiers>
</eSubpackages>
</eSubpackages>
</ecore:EPackage>


--nextPart1756514.C1oVOEdYUt
Content-Type: image/png; name="model.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="model.png"

iVBORw0KGgoAAAANSUhEUgAAAo4AAAIZCAYAAAAobb4bAAAABHNCSVQICAgI fAhkiAAAAAlwSFlz
AAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y Z5vuPBoAACAASURB
VHic7N15fFTlvT/wzzmzJjOTfZvsy0BQ0Ral7gUEK4QdyrXUqle0vW29t/7Q el+93v4s4Xdv7bVU
alWstdXWoqitC9jeuqDYIIK1KAa0ELLv+z5JZj+/P4YckzBJJsns83m/Xnkl M+fM83wneWbynec8
iyBJkgQiIiIiommIwQ6AiIiIiMIDE0ciIiIi8goTRyIiIiLyChNHIiIiIvIK E0ciIiIi8goTRyIi
IiLyChNHIiIiIvIKE0ciIiIi8goTRyIiIiLyChNHIiIiIvIKE0ciIiIi8goT RyIiIiLyijLQFZ45
cybQVYa8BQsWBDsEIiIiomkFPHGsqKhAppAZ6GpDVovUwsSRiIiIwkLAE0cA yBSz5J+rmp6b9nxT
9jf8GU5QtThbgh0CERERkVeCkjiOVd38HC5esmnS46cOvxrRiSMRERFRuAh6 4ihJwCVLJ08cT5a9
GsBogN37HsI9N33f5+cSERERhbugz6p2ugRIkghJEs+FIwLS59+dLmHKx+/e 9xB273sID7/wc/zq
1V/hz0f+jI7ejvPO8dbu53f75VwiIiKicBf0HkeHS8Bnn3wMCYCnFNExXeL4 /G7c8/V7IEkShkbM
+OTsCRw//Xd896t3Ij0p3S8xExEREUWjoCeOdkkE4PSYNH5+fGr33PR9d+Jo GUJlQyUef3kPDhw+
gH/Z+C/nndtv7sO7H/0Vje2NcElO5KTnYtWVqxCrjT3v3N37HsKXv7gEH505 DpvDjuLcYlz/peuh
UChmXO7ufQ9hxZeux9//8SHMI2Ykx6dg5ZUrgbhpnx4RERFRSAh+4ugUsXDR ZZMef/eP3l1NFwQB
+hg9FhUvwj+vuQ3//fR/yYnj7ud3y2MRn/nfZyAIAhxOJ+wOO9796F24JBe2 XLflvDJ3P78bXf3d
SIlPhs1hx6tlr0CjUmPZZdedd+505e5+fjcsNititTGwO+z44NNj6O7vxrX/ dI1Xz4+IiIgo2EIg
cRTOjW8EhNFux9Hr1pL7+Ex9wfQF1LbUejwWr4/HdYuXIzMlE06nE4c/OYxH //CIx8QRAOblzMPX
rv8aAOCFgy/gqT895TFx9Kbc4tz5WHnlKmjUGnzw6Qe45xf3MHEkIiKisBH0 xNHmFPD+sTOA5Dlx
tM0icQTgecAkgK9cfgPe++QwOno7YHfYYXc6cKZ+8t1sNizZIF9u3rBkA372 3K5Zl7vmmrXQarQA
gCsXXon27rZZPDEiIiKi4Ah64mh3iRDgGp/oCZ9/t7tmPvG7vKochVlFHo89 uf9XEEURsVodBEGA
y+XCsGXYq3IFYfIk1ptyR5NGAFApVXBJLq/qJSIiIgoFIZE4XnP15FvuvfkH 7xJHSZIwbBnG2caz
+P1fnsFXr/uqx/P2H96PH3/3AVx36XWw2W049NGhKct97b3XcOOKG90/Hz6A S4sv9Um5REREROEm
6ImjY5oxjg4vLlXv3veQ+8HnksfstGys//J6j+cuX7wcR8qP4HTtaQASLFbL lGVXNlbiiVeegN1h
Q21rLe5Yd4dPyiUiIiIKN8FPHF0i3vzf1wFMto7j1D2O93z9nnOPFRAbE4v5 ucW4YuEVSE1IPe8c
ALjzq/+Kso/LMDA0AH2sHisWLx63FM/YcwFg45KN55bjUWLj0k348qIlPil3 svuIiIiIQpUgSZIU
yAoPHDiAxYovybePnHkZU0UgCMC1Czxfdva37HVZaPpTs1/rOO78OzZs2ODX OoiIiIh8ISg9ji2u
z5OxwvlXzuj8QNq6dWvQ6iYiIiIKNUHfqzqU8VIyERER0eeC0uOYKWYFo9qQ 1OJsCXYIRERERF5h
jyMREREReYWJIxERERF5hYkjEREREXmFieM5u/c9FOwQiIiIiEJaRCaOnpLA sfd5PP78br/GRERE
RBTugr5zjCdVTc9Ne44p+xuTHtv9/G7cc9P3Z32ciIiIiM4XkoljReM+LFq2 cdLjJ/66f9LEcbQ3
cfT7xARxuuMA4JJceL/8fXxa8ynsdhuKsovwlctvgFqlnvmTISIiIooQIZk4 DtsVuGTppkmPv3/w
TzMucya9jB98+gFefvdlZKVmQhAEvPnBmxBFESVXrZ5xvURERESRIiQTR7NN CUlyD78UhHN3SgAE
93ezbfKw77np+1MmidMdB4CnX3sKVyy8Elu/shUalQZ/fv/PePpPTzNxJCIi oqgWsonjm//7OgB3
rujpuD998OkHyEzNxG8O/AaABPPIEE5WnvRrnUREREShLiQTx8VFN2Kk2lPK +Plxf5IkCSrl5+MZ
ddpYfHvzd/xaJxEREVGoC8nE8ariLXN6vEalQc9AD5LikmZ1/KqLr0K+MQ/r rl2POF0cegZ68LfP
PphTTEREREThLiQTx7m65gvX4LE/Pgp9jN7jWMbpjn9zw7dw4PB+tPd0QBQF SJL7kvmaa9YGIHoi
IiKi0BSRC4D/65Z/Q6JhfG/iPV+/x+vjV1x0BTYt3YQEfTxEQURKQgqTRiIi Iop6giRJUiArPHDg
ABYrvhTIKkPaceffsWHDhmCHQURERDStiOxxJCIiIiLfC8oYxxZXczCqJSIi IqI5iMjJMUSjzpw5
E+wQKAosWLAg2CEQEQVEUBLHTDErGNWGpBZnS7BDiGgVFRUoLi4OdhgUwSoq Kpg4ElHUYI8jRbyx
/9RPHHpi2vMXLedi7+S9ioqKYIdARBQwnBxDUeXEu0/A4Wyf9OvEu9MnlkRE RNGKPY4UVSQJuGTp
pkmPnyx7dU7ll5aWorS0dE5l0Of4+yQiCi1MHCmqOF0CJMnd0S6Mbocuwb01 kOQ+7o1HH30UAPC9
731v3P07d+6cdaITiCTJUx1jbysUCmRlZWHNmjVIT0/3aywT6/Z0/1x+n/7E hJaIohUvVVNUcbgE
fPbJx/j0k4/x6YlzX598/t3hReLY2NiIxx57DI899hgaGxt9FtvOnTt9VtZM 6hh7n91ux/vvv4/H
H3/c77FMFk84CNe4iYjmij2OFFXskgjAicnSQ7s0/WepP/3pT1i0aBEA4M9/ /jO++93vjjv+/vvv
4+jRo7DZbFi4cCHWrFkDpdL9UqusrMTBgwfR3d0Ng8GAJUuW4NJLL5V7rzx9 X7lyJY4dO4bBwUHs
2LEDvb29eOONN1BbWwuXy4X8/Hxs2rQJOp0OAOB0OvH222+jvLwcLpcLS5Ys wdVXXz1pHWN/ttvt
OHbsGLZu3SonR9PVN9lzAgCXy4VDhw7hxIkTsNlsKC4uxrp166DRaM6rezrT lVVaWorly5fj6NGj
UCqVWLduHTo6OnD06FEoFAps3rwZhYWFXpe1du1aHDlyBIODg0hNTcXGjRuR kZFx3u9vtC0QEUUD
Jo4UVexOEQsXXTbp8Xf/OHXi6HA48Pzzz+O+++6DJEl48MEH8a1vfUtODAFg 3759SE1Nhc1mw3PP
PQeNRoNVq1YBAHbt2gW1Wo3k5GT09/fjtddek5MsT3bu3InBwUEkJibK9+3Z sweiKMLhcMBms+GN
N96AJEm45ZZbAACHDh3C3r17kZ+fD6VSiTfffBNXX321V78fABBFEVqt1uv6 pnpOhw8fxt69e5Gb
mwtBELB//36IoojNmzd7Hc+o6crauXMnrFYrYmNjcerUKZw6dQrZ2dmIiYnB yZMn0d7ejl27dnld
lsViQWxsLOx2O8rKytDZ2Yn7779/xnETEUUS7lUdZNyr2r8OHDgw7vf7k7uv wN3/8xQAz2Mcd//H
Hbjv53+btLzy8nLcfPPNeP/99wEAV199Nfbt24dLLrnkXJkCHn30UWzbtg0A 8PTTT+P111/HX/7y
FwCA0WjET37yE6xfvx4KhQJlZWVYv369/NiJL0dBEPD000/jxhtvlHv49uzZ g9WrVyM7OxtOpxMH
Dx7EAw88gGPHjgEA1q5di+uvvx6333471Go1/vrXv8qJ62R17NixA4A7MS4v L8eVV16JH/7wh17V
N9Vz2rRpE5YsWYI77rgDGo0GL730En7zm9/g3XffPa/usUZ788bG601ZL7/8 MtauXYvy8nJcc801
ePHFF7FmzRqUl5dj/fr1aG1t9bqs3//+99iwYQO0Wi0OHz6Mbdu2yUMTxsY1 sY0REUUy9jhSVLE5
Bbx/7AwgeU4cbc6pxzi++OKLWLVqFeLi4gAAq1atwosvvignjgCwdetWOcnb unUrfvSjH8nHvvGN
b6C8vBxVVVVITU2VE7qpbNmyRS4PANavX4+DBw+ira0NNpsNdrsdp06dko8f OXIEv/3tb8fFOFOi
+HnP63T1TfWcysrKkJOTg4cffhiSJMFsNuP48eMzjsfbskpKSqBWq7Fo0SLY 7XasWrVKvt3R0TGj
srZs2YKYmBgAwNKlS9HSwsX6iYi4VzVFFbtLhAAXxg1yFD7/bndNfqnabDbj lVdewUUXXST3iNXU
1OAf//gH7rvvPuj1+vMeM7GH7+6778bhw4fR0NCAyspKfPbZZ3jyySenjNlg MIy7vXv3boiiCJ1O
B1EU4XK5MDQ0NGUZ0xk7xvHo0aO44447cN9993lV31TPSZIkqNVq+VydTod7 773XY93T8aas0URv
dOjA2Nsul2tWZQGASqUa93giomjFHkeKKnaXiGuunnx7uDf/MHnieOzYMcTG xuLiiy+W77vkkkvQ
0NCADz74ANdffz0Ad6/kbbfdBgB44YUXcNVVV40r4/rrr0diYiLefPNN3H77 7XKSpdVq0dXVhZSU
lCmfw759+/D4449j1apVsFqteP3118cdv/baa/Hcc895vFTtTR2iKI5LDKer b6rndN1118FkMuHG
G29EQkICOjs78d577035/CYTSmV5+7ciIoo03Ks6yLhXdWA5nFOv4+iY4lL1 3r17ceutt2L79u3j
7k9KSsLevXvlxPH06dP42c9+BpvNhsrKStx1113yuZ9++ql8mbe/vx8bN26U jy1fvhw/+clPYDAY
puyFW716Nd555x2Ul5cDAEZGRsYd/z//5//gd7/7HTo7O6FWqyFJkpw4TlbH 6M8ulwvNzc24/fbb
va5vque0fft2PP/882hpaYFCoZB7X7ds2XJe3WN5us+bsrw117LG/h45q5qI oomiNMCr2FZUVDBx
HKNFahm3lzL5VkVFxbjf719eewYuSUR1ZRWqz577qhzzvbISJeu3eSyrra0N 69atQ0JCwrj709PT
YbVasXjxYgDAhg0b0NbWBlEUsWLFCpSUlMhjBlNSUtDZ2Qmr1YqcnBzceuut SEpKAgDk5OSgq6sL
TqcTy5Ytk8sf+zPg3nu7r68Pdrsd8fHxWLlyJbKysuTz8vPzodfr0dfXB6VS iRUrViAnJ2fKOkYp
FAosWLAAN998s3yJfLr6pnpOubm5iI+Plx+fmpqKkpISpKWlTfl38/T8vSlr 4nOa7PZsyhp739jf
o9Fo5GuYiKIGZ1UHGWdV+9fEGa+vv/Y7uKZo8aIAlKy/zf+BUcTgrGoiiiYc 40gR78yZM/LPBfOv
nNH5RERE9DluOUhEREREXmGPI0U8jj8jf6qoqAh2CEREAcMeRyIiIiLyChNH IiIiIvIKE0ciIiIi
8gq3HCQiIiIirwQ8cSwuLg50lVNyuVyorKxEYWEhVCpVwOsvRmj9PoiIiIgm E/DEMdRmuA4MDKCy
shJ6vR4FBQXBDoeC4MShJ6Y9Z9Hy7wQgEiIiotAW9cvxtLe3AwBqa2uRkZGB mJiYIEdEgfb3d36F
Rcs2Tnr8xF/3T5k4lpaWYu3atThy5AgGBweRmpqKjRs3IiMjAwDQ29uLN954 A7W1tXC5XMjPz8em
TZug0+nkxy9fvhxHjx6FUqnEunXr0NHRgaNHj0KhUGDz5s0oLCwE4O4hP3To EE6cOAGbzYbi4mKs
W7cOGo3Gh78RIiIiz6I+cWxrawMAmM1m1NbW4sILLwxyRBRow3YFLlm6adLj 7x/805SP37lzJywW
C2JjY2G321FWVobOzk7cf//9AIA9e/ZAFEU4HA7YbDa88cYbkCQJt9xyi/x4 q9WK2NhYnDp1CqdO
nUJ2djZiYmJw8uRJtLe3Y9euXQCAw4cPY+/evcjNzYUgCNi/fz9EUcTmzZt9 9NsgIiKaXFQnjjab
DQMDAwAASZLQ2NiIrKwsxMfHBzkyCiSzTQlJci8wIAjn7pQACO7vZtv0L5OL LroIGzZsgFarxeHD
h7Ft2zY5cUxMTMTq1auRnZ0Np9OJgwcP4oEHHpATRwD40pe+hLVr16K8vBzX XHMNXnzxRaxZswbl
5eVYv369nDj+4he/wJIlS3DHHXdAo9HgpZdewqOPPsrEkYiIAiKqE8fu7m5I kiTfttlsqKqqwqJF
iyCKXKkoWphtSrz5v68DcOeKno5PZ8uWLfIwh6VLl6KlpUU+tn79ehw8eBBt bW2w2Wyw2+04derU
uMeXlJRArVZj0aJFsNvtWLVqlXy7o6NDPq+srAw5OTl4+OGHIUkSzGYzjh8/ PotnTURENHNRnTi2
trbC5XLJt10uF9ra2tDV1YW0tLQgRkaBdF3JHXC4PKWMnx+fztixsSqValy7 2r17N0RRhE6ngyiK
cLlcGBoa8vh4pVJ53u2xZUmSBLVaLd/W6XS49957p40vaknSmG5kIiKaq6hO HDs7O8f1OAKA0+nE
2bNnmThGkZXrtvm1/H379uHxxx/HqlWrYLVa8frrr8+6rOuuuw4mkwk33ngj EhIS0NnZiffee8+H
0YYxhwP4+GPg+HHgo4/c38+cAQoKgMWLgcsuc3996UsAJ8EREc1KVCeOKpUK Fotl3H2SJMFmswUp
IopEq1evxjvvvIPy8nIAwMjIyKzL2r59O55//nm0tLRAoVDIH3y2bNnik1jD 1smTwLZt7sRxoooK
99dzz7lv5+cDTz0FLF8e0BCJiCKBorS0tDTYQQSLJEno6uoa1+soiiLmz5+P xMTEIEZGvlJRURGQ
tUOXLVs26X0LFixAX18f7HY74uPjsXLlSmRlZY17zMTHT3Y7NzcX8fHxcnmp qakoKSmJ3h5yhwP4
8Y+BW24Bmpq8e0xfH7B3L9DZCSxdCoy59D8bgWpjREShQJAmXquNIhaLBYcP Hx7XAxQTE4MlS5ZA
q9UGMTLylQMHDmDDhg3BDoP8oa8PWLHCcy+jtwoLgbffdl/OniW2MSKKJlE9 dVir1cJoNMozqEVR
hNFoZNJIFA62b59b0ggANTXuS9zR+/mZiGhGonqMIwDk5eWhsbERLpcLoigi Ly8v2CGRj505cybY
IZCP6cvKkP3MM74prKwM7f/3/6J3zLqaRETkWVT3OAKAwWBAUlISACAuLg4G gyHIERHRVBSDg8jY
scOnZabt3g11fb1PyyQiikRR3+MoCAIKCgrQ3t6OtLQ0CFzzLeJw4kKEuf9+ 4Nwe874iWCwo/M1v
gD/+ccaPraio8GksREShLOp7HAEgJSUFCQkJHNtIFA6OHg2vcomIIggTRwAK hQIpKSlcv5Eo1EnS
3CfETKalBWhr80/ZREQRgonjOVqtFlarNdhhENFUqqvdy/D4C/f9JiKaEhPH czQazXm7yIySJAkH
Dx7E//zP/+DBBx/E22+/fd5Whd6I4rXWiXzjo4/Cu3wiojDHxPEcjUYzaY/j Rx99hKeeegqDg4MY
HBzEU089hY9ncLls//79GBgYwM6dOzEwMID9+/f7Kmyi6KJQhHf5RERhjonj OVqtdtIex6eeegpF
RUX4j//4D/zgBz9AYWEhfvvb33pd9sDAAF566SUAwEsvvYTBwUGfxEwUdS67 LLzLJyIKc0wcz5mq
x/HgwYO45ZZbYDAYYDAYcPPNN+Ott97yuuzly5fL57/11ltYvny5T2ImijoF BcC5dVf9gokjEdGU
mDieo1KpIEkSnE7neceam5uRn58v387Pz0dTU5PXZR86dAg33HADAOCGG27A O++8M+d4iaLWpZf6
p9zsbCAtzT9lExFFCCaO5wiCAJVK5ZeZ1XFxcdiyZQsAYMuWLYiLi/N5HURR 45prwqtcIqIIEvU7
x4w1erk6NjZ23P1ZWVmoq6uTdyCpq6tDdna21+Vu3LgRALBjxw7ExcXJtykw uFd1ZBHXrUPBk09C
1drqszJdsbGo/eY3YWdbISKaEnscx5hsgsxXvvIVPPvss/Ks6ueee06+9Ayc v8zOZMvucDkeorlz
6XRoe+ABwIfbg3b84Aewz+DDIBFRtBKk2SxIGKE++eQTJCQkjBvPCAB///vf 8dBDD6GoqAgAUFNT
g3vvvReXnRtILwjCuHUdJ96mwJEkCRaLBcPDw+jt7cVnn32GDRs2BDss8oc7 7wR++cu5l7NyJfDG
G7N++IEDB9jGiChq8FL1GJPtHrN48WLccccd+Ojc4sB33HEHLh0zQH/Hjh3j zp94m/zLZrNhaGgI
w8PDGBoagtPphCRJaGhogODDXikKMT/9KfDZZ8Dhw7MvY+FC4OmnfRcTEVGE Y4/jGLW1tRgYGMAX
vvCFYIdCU3A4HHKSODw8fN4e41qtFkqlEp999hlsNhvWr18fpEjJ7yQJ+MUv gP/8T2BkxPvHKRTA
vfcC/+//AWr1nEJgjyMRRRP2OI6h1WrR2dkZ7DBoApfLheHhYTlZnDgOVa1W IzY2FjqdDrGxsVAq
laipqUFSUhJafTiBgkKQIADbtwOrVwO33QYcOzb9Y+bNA555BrjqKr+HR0QU aZg4jjHVftUUPBUV
FRgZGUFMTAwAQKFQyEmiTqeDekKP0cjICJqamnDRRRcxcYwW8+cDR44An34K HD/u3nP6+HHg9Gmg
sBBYvNi9uPdllwFf/OKcexmJiKIVE8cxpto9hoJnaGgI7e3tuPTSS5GQkACt Vjvl2MWGhgbo9Xok
+XOHEQo9oghccon76/bbgx0NEVFE4nI8Y2g0GthsNs6IDjELFixAWloa+vv7 oVKppkwazWYz2tra
UFhYyIkxREREPsbEcQylUglBEOBwOIIdCo2h1+thMpnQ39+P+vp6uFwuj+dJ koTa2lokJSUhPj4+
wFESERFFPiaOE/BydWhKTExEYWEhuru70dTU5LFXuL+/Hz09PSgoKGBvIxER kR9wjOMEoxNk9Hp9
sEOhCZKSktDQ0ICamhqo1WpkZGTIxyRJQk1NDTIyMs7723HLQfK3M2fOQBAE xMfHQ6PRQKvVTjsW
l4goHDFxnIA9jqHJarWisbERAJCZmYmGhgYoFAqkpqYCAHp6emA2m3HBBReM e1xxcfGM6qmoqEBM
TAzS09Oh0Wh8EzxFtOLiYnR1daGnpwfz5s2T7xdFUU4imUwSUaRg4jjBZPtV U/AMDAygsbERdrsd
2dnZSElJQV1dHWpqaqBUKhEXF4fq6mpkZ2fLS/aMWrBgwYzqamhogCiKUCqV iI2NRWJiIvR6Pf/Z
05Q6OztRXl4OpVIJvV4Pq9UKq9WKkZERjIxZmJzJJBGFOyaOE7DHMXRIkoTO zk60tLRAqVSioKBA
nvSSl5cHu92OqqoqJCYmwmazISsra8515ufno7q6Gmq1GoODgxgcHIRGo0Fi YiISEhKgUCjmXAdF
ntTUVBQVFaG9vR05OTnQarXyvukWiwVWq1X+PjaZtNvtUKlU5/WUExGFKiaO E2i1WnR3dwc7jKjn
cDjQ0tKCrq4u6PV65ObmQqvVyseVSiUKCwtRUVGByspKXHzxxT65tJybm4vm 5makpaVBFEX09vZi
cHAQbW1t6OzsRHx8PBITE8fFQgQAOTk56O3tRW1tLYqLiyGKImJiYsb1gk9M Js+cOQOVShXEqImI
ZoaJ4wTcPSb4RkZG0NDQgKGhIaSmpiIzM9NjT59arYbJZIJKpRo3UWYutFot 0tLS5J1nDAYDLBYL
ent75VnbPT09MBgMvIxN4yiVSphMJpw6dQodHR0e26QgCHIyaTaboVAoZjwO l4gomLgczwRarZaX
qoOor68PVVVVsFgsyM3NRXZ29pSXh2NiYrBgwQIolb77DJSTk4OOjg75A4RW q4XRaMS8efOQkZEB
jUaDwcFBNDQ0oLq6Gt3d3XA6nT6rn8JXXFwc8vLyUFNTg6GhoUnPG10FID4+ HsnJyQGMkIhobpg4
TsDJMcEhSRJaW1tRW1sLhUKBoqIipKSkBKU3z2AwQKfToa2tbdz9CoUCycnJ KCoqQm5uLgwGA6xW
K2pqarjkD8mMRiP0ej2qq6sn/UDR1dWF/v5+7nBERGGHieMEKpUKDodj0t1J yPfsdjvq6urQ0tKC
uLg4mEymoK6jKQgC8vPz0djY6PEfvyAIMBgMyM3NhdFoRE9PD3upSTb6wcds NqO1tfW846OTukRR
hFqtDkKERESzx8RxgtGlWOx2e7BDiQpDQ0OoqqpCX18fjEYjCgoKQuKf6ejl w6kmSg0PD6OxsREZ
GRkzXvaHIptOp0NhYSHq6+sxMDAw7lhzczMAIDY2FpWVleju7va4ExIRUShi 4ugBL1cHRnd3N6qr
q2G325GXl4fMzEyIYmg0SYVCgZycHNTV1Xn8pz48PIzKykoAwLx58xAbGxvo ECnEpaWlISkpCVVV
VXA4HAAAs9mMxsZGmEwm5OfnQxRFNDU1oba2lu85RBQWQuO/dIjhzGr/crlc aG5uRn19vTwzOikp
KdhhnScjIwNDQ0MYHBwcd//w8DDOnj0Ls9nMpJEmJYoiCgoKYLPZ0NjYOG5C TEpKChITE2EymZCc
nIzBwUFUVVWho6ODw2SIKKQxcfSAM6v9Z3QySXt7O5KSkmAymUI28Rpdmmd0 q0Pg855Gh8MBURT5
AYOmpNVqYTKZ0NzcjKqqqvMmxKhUKmRnZ6OgoAAqlQqtra3TzsgmIgomJo4e sMfRP0Z7VQYHB5GV
lYW8vDyfLqPjD2OX5hl7eXr+/PlISkpCTU0Nenp6ghwlhbLk5GSkp6fj7Nmz yMnJ8Tjxa3RSWFpa
GoaHh1FdXY3W1lYu80REISe0/2sHiUajwfDwcLDDiBgTtw4sLCyUtw4MV7rN 4QAAIABJREFUdaNL
89TU1MgTpkYvT8fExKC2thY1NTWQJInr8ZFHgiAgLy8PTqdzym0xFQoFjEYj 4uLi0Nraio6ODgwM
DMj3ERGFAvY4evDYY4+xx9FHHA4HGhsb0djYiNjYWJhMprBJGoHPl+apq6sD MH4ijEqlkpPg2tpa
dHV1BTFSCmVqtRoLFizwanvB0RnZRqMRdrsdtbW1aGpq4koPRBQSmDh68PDD D4fkGMfS0tJghzAj
FosFNTU16OrqQmpqKoqKisJyj+fk5GQUFhZ6nAijVCpRUFCA+Ph41NXVobOz M0hRUiQRRRFpaWkw
mUwwGAzo7u5GVVUVent7uXQPEQWVIPFd6DyCIODtt9/GihUrgh3KOIIghM0/ jb6+PjQ1NcHpdCIz
MzNou8AEisPhQF1dHXp7e5GXl4e0tLRgh0QRQpIk9PT0oK2tDQ6HA/Hx8TAa jdBoNMEOjYiiUFSO
cXS5XDh06BBOnDgBm82G4uJirFu3btwb8WiP43TnlpaWYvny5Th69CiUSiXW rVuHjo4OHD16FAqF
Aps3b0ZhYaHXZa1duxZHjhzB4OAgUlNTsXHjRmRkZMi9jRO/V1ZW4uDBg+ju 7obBYMCSJUtw6aWX
BuC36JkkSWhvb0drays0Gg3y8vJgMBiCFk+gjPY8CoKA+vp6AGDySD4hCAKS k5NhMBjQ1taG3t5e
DA0NIT09HcnJyRH9gYyIQk9UJo6HDx/G3r17kZubC0EQsH//foiiiM2bN8vn SJIEh8OBI0eOTHnu
zp07YbVaERsbi1OnTuHUqVPIzs5GTEwMTp48ifb2duzatcurenfu3AmLxYLY 2FjY7XaUlZWhs7MT
999//6TPZdeuXVCr1UhOTkZ/fz9ee+21oCWOdrsdzc3N6O7uRkJCAnJyckJi F5hAUSgUyM/Pl5NH
SZKQnp4e7LAoQqjVauTm5iIuLg5tbW1obm6WJ8/ExMQEOzwiihZSFNq4caO0 e/duqb+/X7JYLNKz
zz4rLVu2TD4OQHrrrbcks9ns1bkvv/yyZLVapQ8//FBSqVTSK6+8It/OyMiY Ub2///3vpf7+fslq
tUoHDx6UsrOzxx2fKCMjQ/rtb38rdXd3S319fdKBAwd8/evyytDQkHT69Gnp 448/lpqamiSn0xmU
OEKBw+GQqqurpb/97W9Sa2trsMOhCGS326WmpiapvLxcOnnypNTW1hbVrzki CpyoHOOYlJSEm2++
GSkpKZAkCWazGU888YS8Q4ggCCgrK8PChQthMpmmPXd4eBgxMTFwOBxQqVTj bms0GnktNm/qHX0s
4O7B02q18uM9jXG899574XQ6odPpkJqailWrVqG4uDggv8dRPT09aGpqAgBk Z2eH5C4wgeZ0OtHQ
0IDOzk7k5uYiPT2dlxTJ5wYHB9Ha2oqRkRHExsbCaDR6XCeSiMhXonJWtSRJ 4y6h6nQ63HvvvePO
Gd09xptzRxO90cWsx94eu33YTMoC3Mu9TLf92N13343LL78cBoMBlZWVeOih h6Y835fCZevAYFAo
FPIkmYaGBrS2tobNxCYKHwaDAUVFRUhPT5dXMWhpaZH3xiYi8rWoHON43XXX wWQy4cYbb0RCQgI6
Ozvx3nvvjTtndPcYb871Zb1T0Wq16OrqQkpKinzfsWPHcP311yMxMRFvvvkm br/9djz55JOzim8m
Rvff7evrQ3JyMrKysrxaoy6aiKIoj2cd7ZE1Go3seSSfUigUyMjIQFxcHFpa WtDZ2SmPfQynNVOJ
KDxE5aXqw4cP4/nnn0dqaioUCoXcEzQ6U1kQBJw5cwaSJKGjo2Pac8f+Cqe6 7U29E/8cY+9bs2YN
FixYAIPBMG529ejx/v5+jIyM4Fe/+pWPflOeDQ4OorGxEVarFUajkZdhp+Fy udDU1IS2tjZkZWUh
MzOTvy/yC5fLhe7ubrS3t8PpdCIpKQnp6elRNUmNiPxLURpuq0r7QG5uLuLj 49HX1we73Y7U1FSU
lJSMWz5l8eLFMJvNuPzyy6c9d9myZePKn+y2N/VOfOzY+3JyctDV1QWn0ynf l5KSgs7OTlitVuTk
5ODWW2/12+ViSZLQ1dWFhoYGeRu1SF+f0RcEQUBcXBxcLhdaW1sBuC8x8vdG viYIAnQ6HeLi4uBw
ONDX14f+/n4oFApotVq2OSKas6jscfRGa2srGhoacMUVVwQ7lJDgdDrR3NyM rq4u6PV65ObmhuUu
MMEkSRKamprQ2toKo9GI7Oxs/iMnv5EkCb29vWhra4Pdbkd8fDwyMjL4uiWi OYnKMY7e0Gq13K/6
HIvFgoaGBnlR8szMTHkiEHlPEAQ5WWxpaYEkScjJyWHySH4hCAKSkpKg1+vR 3t6Onp4emM1meeFw
UYzKuZFENEf87z8JjUYTkvtVB1p/fz8aGxvhcDiQk5OD1NRUJjpzIAgCsrKy IAgCmpubAbiXMOI/
cfIXtVqNnJwcxMXFobW1FS0tLejv70dmZuZ5e68TEU2HieMkNBoN7HY7JEmK ykRpdGJQS0sL1Go1
ioqKomLrwEAQBEGeINPU1CT3PDJ5JH+Kj4+HTqdDR0cHurq6UF1djdTUVHmy HhGRN5g4TkKhUEAQ
BNjt9qibkehwONDU1ISenh7ExcUhJydn3D7eNHeCIMBoNAKAnDzm5uYyeSS/ UiqVyMzMlHsf29vb
5aV7+MGQiLzBxHEKo5eroylxHB4eRkNDA4aHh5Geng6j0chkxk9Gk0dRFNHQ 0CAnj+z9IX/T6/Uo
KipCZ2cnOjo6UFtbi+TkZKSnp3P8MhFNie8QUxidIBMtn8THbh2Yl5eH5OTk IEcU+QRBQEZGBgDI
yWNeXh6TR/I7URSRnp4u9z52dXVhcHAQGRkZSEhICHZ4RBSimDhOIVomyLhc LrS1taG9vR1arRa5
ubnQ6XTBDiuqZGRkQBAENDQ0AACTRwqYmJgYFBQUyAuH19fXY2BgABkZGVF1 tYWIvMPEcQqj+1VH
srFbByYlJSE7O5tbBwbJ6A489fX1kCQJ+fn5TB4pIARBQEpKCgwGA1pbW9Hb 2yv3PiYlJUXlBEEi
8oyJ4xRG96uOVGazGQ0NDbBarcjMzJR7vSh4RncRGps8cswZBYpGo0FeXh76 +vrQ1taGpqYmeeke
LhxORAATxylptVoMDg4GOwyfkyQJ3d3daG5uhiiKKCgo4JimEJKWlgZBEFBX VwdJklBQUMDkkQJG
EAQkJibKC4d3d3ejqqoKaWlpSElJ4WQ5oijHd4ApROLuMU6nE01NTWhoaIBW q4XJZGLSGIJSU1NR
UFCA/v5+1NbWwuFwBDskijIqlQrZ2dkoKCiASqVCa2srampqMDQ0FOzQiCiI 2I0xhUibHDO6daDZ
bEZKSgq3DgxxKSkpEAQBtbW1qKmpkf+BEwVSXFycvHB4Z2envHB4Wloax+AS RSFmDVOIpDGOY7cO
zM7O5taBYSI5ORmCIKCmpgY1NTUoLCxk8kgBp1AoYDQa5aV7Ojo65IXD4+Li gh0eEQUQL1VPQaVS
wel0wul0BjuUWZMkCe3t7aitrYUgCCgsLJTH0FF4SEpKQmFhIcxmM6qrq2G3 24MdEkUpnU6HwsJC
GI1G2O121NbWoqmpiW2SKIowcZyCKIpQqVSw2WzBDmVWHA4H6uvr0dTUBL1e D5PJxN6BMDWaPA4N
DaG6ujps2ySFP1EUkZaWBpPJBIPBIE+e6e3thSRJwQ6PiPyMieM0wnUtx+Hh YVRVVaGnpwfp6eko
KCjgftNhLjExEUVFRUweKSRotVoUFBQgOzsbLpcLDQ0NqK+vD8v3SyLyHhPH aYTjOMfe3l5UVVXB
arUiLy8P2dnZHMQeIRISElBUVISRkRH5b0wULIIgIDk5GfPmzUNiYiL6+/tR VVWFrq4u9j4SRSgm
jtMIp5nVLpcLLS0tqKurg0qlgslk4n7TEWg0ebRYLKiurg6b9kmRS61WIzc3 V94qs7m5GbW1tRgZ
GQl2aETkY4LEj4VTOn36NERRRHFxcbBDmZLNZkNTUxN6e3uRmJiInJwczr6N cAMDA6iuroZarUZR
URF39qCQ4HA45IXDBUFAWloaUlNTuXA4UYTgK3ka4dDjaDabUVVVJW8Nlp+f z6QxCsTFxcFkMsFu
t6OqqirshlRQZFIqlcjKypLHVbe1taG6uhpmsznYoRGRDzBxnEYoT46RJAld XV2orq6G0+lEfn4+
jEYjP9lHEYPBgKKiIjgcDlRVVfHSIIWM0baZnp4Oi8WCmpoatLS0cBckojDH DGMaoTo5xul0orm5
edzWgYmJicEOi4LAYDDAZDLB6XQyeaSQolAokJGRgaKiIsTGxqKzs1O+OkJE 4YmJ4zRCscfRarWi
pqYGHR0dSE5ORlFREWJiYoIdFgXR6DqdLpcLVVVVGB4eDnZIRLLY2FgUFhYi MzMTDocDdXV1aGxs
5JJSRGFozlsOnjlzxhdxhCyn0wmLxRJSz9NqtaK5uRl6vR4xMTGoqqryW10L FizwW9mRIJTaBeCe
mNDa2gqHw8EPEwEQaa+PQLRnp9OJtrY2dHR0oK+vj+Oxw1SktX3y3px7HCsq KnwRR8hSKBQwmUzB
DmMcjUYTkK0DI/1v6wuh9jvS6XQwmUxMGgMg1P72vhCI56TRaJCXl8eVH8JY JLZ98t6cexyB8Z88
Thx6YtrzFy3/ji+qJT/jm4N32P6jU6S+PtieaTqR2vbJOz4f43ji3SfgcLZP +nXi3enfiIjCFds/
RRK2ZyKayCc9jmNJEnDJ0k2THj9Z9qqvq5xSaWkpSktLfX7uXAWyLgqcUGv/ 4Yqvj9DA9hx4bPsU
6nyeODpdAiTJ3ZEpD7+TAAju707X1GPyRl8woihCp9MhNzcXX/7yl5GRkTHu HG9fWDt37pTPHfuY
0S2ySkpK5G35xp47V5OVM3q/L+vyJb5pzY0v2n8wP7xM9xrxRz2e7ufrIzTM tT0DwNmzZ/H222+j
u7sbycnJuP766zF//nyvY/DH75xtf+aire3T5Hx+qdrhEvDZJx/j008+xqcn zn198vl3xzRvNDt3
7gTgXtx6cHAQH374IR588EG0tLTMObbRsgFgeHgY77zzDp588sk5lztdXeEk XOMOFb5q/4HgqS5/
vEamqyechGvcszXX9tzU1ISf/exnqK2thdPpRG1tLR566CE0NTV5HYM/fuds +zMXrnGT7/m8x9Eu
iQCcmOztxC5Nn6uWlpZCkiSYzWb84x//wE9/+lO88MILuOeee847t7e3F2+8 8QZqa2vhcrmQn5+P
TZs2QafTTVo24H5jeO+99/DNb34T991334zLLS0txdq1a3HkyBEMDg4iNTUV GzduPK9n1BsulwuH
Dh3CiRMnYLPZUFxcjHXr1kGj0cjlLF++HEePHoVSqcS6devQ0dGBo0ePQqFQ YPPmzSgsLPS6rMni
ntgzu2jRIq/ip8/5ov2Pmq6NlZaW4itf+QqOHj0Km82GhQsXYs2aNVAqlfJx T70dY+/31Bs/1WvE
4XDgL3/5Cz777DMAwMKFC1FSUjKuzpUrV+LYsWMYHByEJEnT1jMdvj6CZ67t +YUXXsDw8DDuu+8+
5OTkoLGxEffffz9efPFFfP/73wcwu3bKts+2T8Hj+8TRKWLhossmPf7uH737 xykIAgwGA6644grc
eeed+Pd//3c5cRzblb9nzx6IogiHwwGbzYY33ngDkiThlltu8aqOyUxX7s6d O2GxWBAbGwu73Y6y
sjJ0dnbi/vvv9+r5jXX48GHs3bsXubm5EAQB+/fvhyiK2Lx5s1yX1WpFbGws Tp06hVOnTiE7Oxsx
MTE4efIk2tvbsWvXLq/L8lXcdD5ftX9g+r/Vzp070dnZidTUVNhsNjz33HPQ aDRYtWqVfHziP6iZ
Xgab+Bp56623sG/fPnmJqmeffRYKhQKrV6+Wyx8cHPTpLkZ8fQTPXNvzvn37 8Mgjj6CgoAAAUFBQ
gG9/+9vYvn27nDjOpp2y7bPtUxBJc7R///5xtx/Yfrk0YjkljVhOSRbruS/L 598f2H75lOV5Cqmv
r0/S6/Uez3nsscekmpoayWazSSMjI9Jrr70mXXnllR7PBSDt2LFD2rFjh/TD H/5Quu2226Qf//jH
sy7397//vdTf3y9ZrVbp4MGDUnZ2tse6xn55qmvjxo3S7t27pf7+fslisUjP PvustGzZsnHnvvzy
y5LVapU+/PBDSaVSSa+88op8OyMjY0ZlTRf3qIl/WzqfP9u/N3+rRx99VDKb zZLZbJYeeeQRqaSk
xGNZk5Xv6fhUr5EbbrhBeuSRRySz2SwNDg5KDz/8sLRy5cpxj3/66acls9ns dT18fYQOX7dnnU4n
DQwMjLuvv79/0vdzT/dNdpxtn22fgsPnPY42p4D3j50BJM+DqW1O3y5YvX79 ehw8eBBtbW2w2Wyw
2+04derUtI+LjY3F8uXLUVJSMutyt2zZIi+0vHTp0lmPwywrK0NOTg4efvhh +RL98ePHx51TUlIC
tVqNRYsWwW63Y9WqVfLtjo6OGZXlq7jpfL5u/9P9rbZu3SoPn9i6dSt+9KMf zfEZfM7Ta+SDDz7A
c889J9d50003YceOHefFPNlQkdng6yN4Av1+PhNs+25s+xRovr9U7RIhwIVx g2KEz7/bXTOfj3P8
+HEUFxd7PLZ79255BrYoinC5XBgaGpq0LG8vVXhT7tjdOVQqFVwu16zqkiQJ arVavq3T6XDvvfd6
rGt0PM3Y22PrnUlZk8VNs+fr9j+Tv5UgCPK4KsC9MoHdbpd35/B2/+qZXM7z xGAw+LQevj6CZ67t
ef78+SgvL8e1114r31deXj5uVvVs2+lYbPts+xQ4fkkcr7l68j0s3/yDd/84 Rz8RnT59Gr/85S9x
8803ezxv3759ePzxx7Fq1SpYrVa8/vrrs4o7UOV6ct1118FkMuHGG29EQkIC Ojs78d577wWlLK1W
i66uLqSkpMyq/mjnq/bvrRdffBG33XYbAPdEhKuuuko+ZjQaUVZWhqVLl2Jk ZASvvjp+zb3Z/K2v
uOIKvPDCC9i2bRsA9+vkiiuumPIxc21TfH0Ez1zb89atW/HEE08gKysLubm5 aGhowBNPPIGtW7fK
58y2nbLtB7asaGv7NDmfJ44O59Trfjm8uLRRWloqf4IcGhpCXl4evva1r3k8 d/Xq1XjnnXdQXl4O
ABgZGfHBs/BNuZ4+VXq6b/v27Xj++efR0tIChUIhf3LesmXLjOuca1nLly/H T37yExgMBs6cmwVf
tP+ZOH36NH72s5/BZrOhsrISd911l3zsW9/6Fp5++mmUlZVBpVLBbDaPe+zY v7W3PSB33XUX9u7d
i7a2NgDuNfrG1unJZPXw9RH65tqev/71r6OyshJ79uyBXq/H0NAQdDrduMRx tu2UbX9m2PbJVxSl
c+ybr6ioGLe36V9eewYuSUR1ZRWqz577qhzzvbISJeu3TVuuKIrQ6/W48MIL cdNNN41b5gYAli1b
BsC9r2pfXx/sdjvi4+OxcuVKZGVlycfHnjvxZ09mW+5Myx/7c25uLuLj4+X6 UlNTUVJSgrS0tEnL
nez2bMoae19OTg66urrgdDphNBrH/W3pfP5o/962sZ07d+LnP/852traIIoi VqxYgZKSEoii+x99
cXExrFYrRkZGEBcXh1WrViEzM9Pj39rb10hBQQG0Wi36+/uhVquxYsUKrFq1 CgqFYtLHT1aPt8+d
r4/A8XV7jo+PR3FxMXp7e2G1WmE0GnHzzTfLS8QAs2unbPts+xQ8gjR2YMgs HDhwABs2bJBvv/7a
7+CaokRRAErW3zaXKilAJv5t6XzBbP8Tx3VRYEXi6yNc3s/Z9oMrEts+ec8n l6rPnDkj/1ww/8oZ
nU8U7oLV/rdu3crXEvlcOLyfs+0TBY/PtxwkosCYuBQIUbRg2ycKHp/0OHKs Q2SqqKgIdghhge0/
OkXq64PtmaYTqW2fvMMeRyIiIiLyChNHIiIiIvIKE0ciikxDQ8DHHwN9fcGO hIgoYvh8AXAioqBo
aQFeegk4fhz46CPgzBlgdMu0oiLgssvcX+vXAxzHR0Q0K0wciSj8/e53wN13 T967WF3t/vrDH4D7
7wd27gT+/d+BMYs3ExHR9HipmojCV3MzsGYNsG2b95ekbTbgvvuAq68GTp/2 b3xERBGGPY7hZGgI
OHHCfRnus8+AgoLPL78lJwc7OqLAqqoCvvSl2Y9h/PBD4NJLgYMHgWuv9W1s REQRioljqJMkYM8e
4Ikn3L0jo2O2JsrLA776VeC//xuIiQlsjESB5nLNrJdxMhYLcNttQHk5oNP5 JDSioBkaAj75xD2+
d9489wcjvT7YUVGE4aXqUFZXB6xYAXzve+4exsmSRgCorwd27wa++EXggw8C FiJRUDzyCHDkiG/K
qq4GfvAD35RFFGhvvw388z8DCxcC8fHu3vNvfhNYutR9+8ILgVtuAd54I9iR UoTw+V7V5BsJf/wj
0h58EOLQ0MweePYscO216L79dnTddRckJTuV/Y3tP7DUDQ3Iv+8+337qffxx NCxejOErp9+bOdKx
PYcHcXgYaT/9KRJefHHyk1wu95Wq06eBZ59F/6ZN6LjvPjgNhsAFShGHPY4h yPDWW8j40Y9mnjSO
cjqR/OtfI2XPHt8GRhQCEp95BqLF4ttCJQnJv/qVb8sk8pPYv/0NBevXT500 ehD/6qsoWLsW+rIy
P0VG0YB7VYeazk73OEUfSP71r5G8bRtw+eWzejz3I/UO23+AVVf7pVjdmTNY UFwMCIJX50fq64Pt
OcS9/bZ7fK8kzerhyo4OZH/nO8DLLwObN8+qjEht++Qd9jiGmjvvdCePvuB0 ArfeCoyM+KY8omBz
ONwTWfyhr89vSSmRTwwMAHfcMeukcZzvfhfo6pp7ORR1mDiGkldfde984UsV FUBpqW/LJAqWzz5z
z4T2l48+8l/ZRHN1991AQ4NvyuroAP7t33xTFkUVJo6hZP/+8CqXKNA++SS8 yyearddfB55+2rdl
vvgi8Morvi2TIh4Tx1Dir96Oykr3JQ6icJeWFt7lE83Wr3/tn3J/8xv/lEsR i4ljqBgaci/a6g+S
BHz8sX/KJgqkyy4L7/KJZuv4cf+Uy+EZNENMHEPFJ5+4J7P4C98cKBKkpQHZ 2f4pWxSBRYv8UzbR
XHR2Ao2N/im7o8N/ZVNEYuIYKurrw7t8okDxV6/g/PkAF0amUOSv3sZAlU8R hYljqFi4MLzLJwqU
lSv9U+4NN/inXKK5On06vMuniMLEMVRceCEQE+O/8jl2iyLFt78NXHWVb8vM ywP+6798WyaRrxQW
hnf5FFG4V3UIyZs/HzF+WNxYUqlwVq2GxL+TX7D9B576Rz9CwaZNEHyxpqMg oKG0FMMtLUBLy9zL
C3Nsz6FHmZAAkx/Lr0lKgo1/d/ISexxDiOWii/xSrnX+fEgqlV/KJgoGW34+ Ordv90lZvd/4Boav
vNInZRH5gyMjA87kZL+U7TIYYMvJ8UvZFJm4V3Uoufde4A9/cG+r5kPau++e 1d+I+5F6h+0/SH78
Y/drZfduwOWaXRm33orEJ55A4iyGiUTq64PtOURdfrl7EXAfExcvxoILLpjR YyK17ZN32OMYShYt
An74Q9+WuXq1e29TokgjisCuXcB77wHz5s3ssWlp7i0+n3nGv2OLiXzlxhv9 U+4//ZN/yqWIxcQx
1Pzwh8AXv+ibspKSuCsARb6rr3avg3rXXYBON/W5Gg3wta+597zeuDEw8RH5 wm23uTsCfGnZMuA7
3/FtmRTxfHKpmnxIpXL3glx+OWC1zq2sPXsAo9E3cRGFsthY4Be/AH7+c/cO TB995F6b7vRp94zR
xYvdKwssXOh+jRGFo1//2t2Ge3vnXpZe7977WhDmXhZFFSaOoeiSS9z/9LZt m93CrNnZwFNPcV06
ij6i6F7a6sILgVtuCXY0RL6VmenuELjpprmXtWsXUFAw93Io6vBSdahauBA4 dsw9AUCt9v5x27YB
n37KpJGIKBJ9/evunsK4uNk9XqcDHnuMl6hp1pg4hjKlEvjP/wQ+/hi45x7g 2mvdl+TGUqnck2r+
5V+AN990v6HExwcnXiIi8r9t24BTp4AVK2b2uGuvBcrLgX/9V//ERVGBl6rD wUUXAQ895P7Z6QT+
8Q/3m0ZhoXsijVYb3PiIiCiwcnOBgweBX/7SPS7+5EnA04L4arV7+NPNNwPf +557OAfRHDBxDDcK
BXDxxe4vIiKKXoIA3Hmn+8vhcA9T+ugj9wSxefPck8IuvpgTwsinuOUg0Ryx /VMkYXsOY1otcM01
7q9R1dXBi4ci0pz7rIuLi30RB/lYRUUFmpub4XQ6Z10G/7bTC9bvSJIkVFRU YGRkJCj1h4KKigrU
1NSgt7cXNpst4PVH4usjUp6TJEno6Ojw+Q4nLpcLFRUVQWlvs+F0OlFRUTGn /wOeREo7odmZc48j
t6cKTbW1tVAqlVAoFEhKSkJSUhKUSo5M8LVgtX+r1YqzZ89CqVTCZDJF5d+2 qakJdrsdMTExUKlU
UKlU0Ol00Ov1iI2NhcixXDMWCe/nw8PDaGtrg0KhgCAIPn1OAwMDqKyshFar xbx58yCE+BqI7e3t
qKqqQkpKCtLT04MdDkUIvrNGqMzMTLjO7d/b0dGBqqoqdHR0wOHjfbApOIaH hxETE4OhoSHU19fL
f+tokp+fD0mS0N/fL/c69vb2orGxEd3d3cEOjwLM6XSitbUV1dXVMJvNUKvV SEhI8GkdnZ2dUKvV
aG5uRq8vFuH2I0mSUFtbC8DdkSBJUpAjokjBxDFC5eXlQZIkFBYWIi0tDQAT yEgyPDyMhIQEmEwm
dHR0oLW1NdghBVx2djZiYmKQkJAAjUYDtVqN1NRU6PV69jZGmb6+Pvm9TavV oqCgAHq9HqmpqT6t
p729HfHx8dDpdKiurg7pS9aDg4Po6ekBAPT09GBwcDDIEVGk4LtXVnOAAAAg AElEQVRrhIqLi4Mg
CBgeHkZaWhpMJhMTyAgyPDwMnU6HlJQU5ObmoqGhIep62bRaLdLS0iCKItLT 09Hb24u+vj5kZGQg
OTk52OFRAFitVtTX16OhoQEOhwNGoxFFRUUwGAzo7+/3aY+jzWaD2WxGQkIC YmJiAAANDQ0h25NX
X18vj210Op2or68PckQUKZg4RqjRf6YtLS0AAKVSyQQyggwNDUGn0wEAjEYj 0tLSUF1dHXW9Cjk5
Oejq6kJKSgpycnIwMDCAqqqqqJ40FA1cLpf8/tXf34/4+Hj5vU0URXkIQ7wP N0Po6emBXq9HfHw8
LBYLioqK0NbWFpKXrC0WC1pbW+UhLC6XC62trbB4WueRaIaYOEawzMxMtLe3 jxv/xgQyMgwNDSH2
3C5CoigiLy8POp0OVVVVUfXPwWAwQKfToa2tDenp6SgoKIDNZkNVVVXUJdHR YnBwENXV1WhtbYVS
qURubi7y8vKg0Wjkc0Y/OIz2DPpCe3s70tPTodfrYTabkZiYiIyMjJBMHFta WmC1WsfdZ7Va5Y4E
orlg4hjB4s7tZTowMHDeMU8JZE1Njc+XryD/GL1UPUqpVKKoqAgAUF1dHTUf AARBQH5+PoaGhgAA
iYmJKCoqgiiKqK6ujrrL95HMbrejqakJtbW1sFgs8vuXp8vRo72Nvpz1LEkS UlNTERsbi5GREUiS
hNzcXCQmJvqsDl+pq6s7b8Kcy+VCXV1dcAKiiMLEMYJNvFztyWgCmZqaioGB Adjt9gBGSLPhdDph
t9uhnbDVpFarhclkirqZ1snJycjIyJBv6/V6mEwmxMbGor6+Hq2trSE7Do28 d+bMGdTU1ECv16Oo
qAhGoxEKhcLjuX19fT69TA24h0Xo9XqoVCooFApYLBao1WokJSX5tB6iUMfE McJ5ulw9UVdXF+rr
65Gdnc2FXcOAxWKR/3lNZDAYUFRUFFUzrRUKxXmTYTQaDQoLC5GYmIjm5mY0 NDT4fBFkCixJkuBw
OKBSqaBWq6c819cTYwD3B5TR2fp6vV7u5Q5F+fn5560sIIoi8vPzgxMQRRQm jhFuqsvVkiShtbUV
dXV1ci+NL8cEkX+MHd/oSXJyctTOtB5LqVQiLy8PGRkZ6OrqQm1tbUgvn0JT W7BgAQoLC9Hd3S2v
1eiJPybGTKTT6SatPxRkZmaOG/MJuD9MZWZmBikiiiRMHCPcZJerXS4XGhsb UVNTg+TkZBQWFk77
KZ5Cw8TxjZ5E80zrsURRRFZWFnJycuRJFcPDw8EOi2ZBrVYjLy8P2dnZsNls qKmpGTdzeJQ/JsZM
NDpBJlRptVoYjUa511EURRiNxvOGtxDNBhPHKDDxcrXD4ZDHflksFsTFxUXl lnXhauxSPJ64XC6M
jIxAp9Ohu7s76ic8CYKAtLQ0FBQUwG63y0u4UPgRBAEpKSkwmUxQqVSorKxE dXX1uOWX/DExZqJQ
TxwB9yYQo8NZFAoF8vLyghwRRQpmC1Fg7OXq2NhY1NXVYWBgADk5ORgaGkJt bS00Gg30en2QIyVv
jO4aM2o0URweHsbIyAhGRkbgcrkgCAKMRuN5l6yiVUJCAlQqFerq6lBTU4Oc nBykpKQEOyyahdH9
ydVqNYaHh1FVVQWj0Yjk5GS/TIyZKNTHOALu8c5JSUlob29HUlISDAZDsEOi CMHEMQqMXq6uqamB
VquFxWJBfn4+UlJSYLfbcfbsWVRWVuKCCy7gpYwwMNrT0dXVJSeLLpcLg4OD UCqV0Ol00Ol0iI2N
RUxMDMetjqHT6WAymVBfX4/6+nrY7XZkZGT4tXeKfK+vrw9tbW244IILoNFo 0NzcjKamJpjNZnR2
dmLevHl+rT8mJgY2mw0OhyNkr9YIgoCCggK0t7ejoKCAbZx8hpeqo0RmZiZa W1ths9lQWFgo97So
VKpx6/9xOZ7QNzQ0hK6uLnR1dcm9HjqdDkqlEiqVCvPmzUNubi5SUlKg0+m4 b/MEozOuk5OT8f/Z
u/PoKOt7f+Dv2SeZTPaV7JOBBJcruKFwWVwwBFAQqXqxalFrbY9L61K1v9MS Tt3qVsWj5XoVq2zq
tSpYC4hSNsFrQUTWkMlksu/7Ouvz+yOdx+yZJJM8s7xf5+SQmXnmO59nyPLJ 9/N8P9/KykquuPYz
drsdhYWFiI+PR3R0tNieJzY2Fs3NzZMy46hQKKDRaHx+hyL3z3nOrJM38TdK kAgPD0dWVtagDXO1
Wi2mTp2Krq4uWCwW/hL1ce7/Q/c+1e5EMTU1FU1NTZxZ8IB7xXVSUhIaGhpg NpvFFdf5+fnSBvdv
vhKHrykvL4fT6UR6err4ta5UKpGSkoKMjAxMmzZtUmbZdTqdz5ere1/jSOQt MoGdcenfGhsbce7c
OSQlJSEtLY0JiJ+x2+3Yu3cv5syZM2y7Huqrvr4eZWVl0Gg0SE9PR1hYmE80 DJfJZD4Rhy9pbm7G
yZMnkZOTI/ks2smTJ8Wm+75s27ZtWLZsmdRhUADxzYszSBLR0dHIyMiAxWKB RqPpsxsH+T6VSoWo
qCjU1dVxBeUoxMbGQqVSoaSkBGvXrgXw42yf+9+mpibs3LkTxcXFcLlcyMjI wI033iiubs/Pz0du
bi4OHz6MtrY2rFmzBna7HX//+99x+vRpaDQaXHnlldi9e7c4psvlwp49e3Ds 2DHYbDZkZ2fj+uuv
h0ajGfD6nH2EuCI+Pj5+QMN3Keh0Oq7Op6DEUjX1kZCQgKSkJFgsFjQ2Nkod Do1SUlJS0OwY400R
ERFiixcAqKur6/P466+/juLiYjgcDnR3d2Pnzp34+OOPxcfXrl2Ljz76qE+P yC+++ALvv/8+Ojs7
0dHRga1bt4qJKQDs378fGzduRGtrK6xWKz799FN8/vnnE3ym/muwErWU/KEl D9FEYKmaBnA6nTCb
zWhpaUFOTg7b9PiR7u5uHDhwAPPmzWMbnjGw2WzQaDQ4cuQIEhMTxSbKr7/+ OhYvXoyUlBQ4nU7s
3r0bzzzzDA4fPgygp6y8YcMG3HzzzeIs5KJFi7Bs2TLccccdAIC//vWvuP/+ +8Xy84033oh58+bh
7rvvhkajwUcffYS33noL//znP8Ux+eO5hy+VqN26urqwf/9+XHfddT6RyA6F pWryNpaqaQCFQoGM
jAy26fFDWq0WOp0OjY2NSEpKkjocv+PePSk2NlbsQpCamoobbrgBu3fvRnV1 NWw2G+x2O06cONHn
uStXruzTmP2bb77B5s2bxftuueUW3H///eLj+/btQ2pqKl555RUIgoD29nYc OXJkEs7Sv7hL1HFx
cT5RonbTaDRwuVyw2+3cdYuCCkvVNCi26fFfLFePX1paGpKTk9HY2Aiz2YyX XnoJp06dQnd3N4Ce
6xP7r6jt32B5pNlCQRD6JBw6nQ6PPvqol84gcJSXl8PhcCAjI8OnZvbkcjm0 Wi23sKSgwxlHGpK7
Tc/Zs2dhsVhgMBjY1sEPxMXFoaioyKebE/syrVaLhoYGJCUlQaVSoby8HJs2 bcKrr76K5cuXw2q1
YseOHSOOc8UVV+DDDz/EnXfeCQD44IMP+jx+1VVXwWg04uabb0ZkZCTq6upw 4MCBPnHU19f7TGlW
Ci0tLaioqEB2drZPXnrh3kGmf4szokDG3yo0rLCwMBgMBpw7dw5qtZptevyA TqeDSqVCS0uLT5X2
/MXVV1+NZ599Fnq9Hvn5+VCr1Vi4cCF27dol7vvtSePnBx54ABs3bkR5eTnU ajVqamr6NGP/9a9/
ja1bt6KyshIKhUKcoVy5cuWgcQSb3iVqX02ew8LC0NbWJnUYRJNKkR+MP5Fo VEJCQqBUKlFeXg6V
SsXFMj5OJpPBarWitbUV8fHxUofjd1JTU1FfXw+n04kFCxZAo9Fg2rRpaG5u RlFREUJDQ7FixQok
JydjwYIF4vN6fw4AmZmZYgKv1Wpx2WWXYffu3fjtb38LoKccHhERgebmZtjt dsTFxSEvL0/8P+sf
R7ApLS1Fa2srpk+f7rMz511dXWhqasKUKVOkDmVIBQUFyMnJkToMCiBcVU0e EQQBpaWlqKqqwrRp
0xAdHS11SDSM5uZmHDt2DPPnz+eWg15it9tRUlKClpYWJCQkYMqUKaN6b+vr 67F582Y89NBDExhl
YGhpacGJEyeQnZ2NuLg4qcMZUmNjI06cOIH58+dLHcqQuKqavI2/UcgjMpkM KSkpiImJgdlsZv8y
H6fX68WVuuQdKpUKmZmZiIuLQ3V1NUpKSuBwODx+fmxsLJNGDzgcDphMJsTG xvpsidpNp9Ohs7OT
bZMoqDBxJI+52/SEhISgsLBQXGFKvkehUCAuLg41NTVShxJQFAoFUlNTkZKS gqamJhQVFfH7wMvK
y8tht9t9bhX1YNRqtXhpCFGwYOJIo8I2Pf4jMTER1dXVnA3xMplMhsTERGRk ZKCrqwsmk4kzu17S
0tKC8vJyZGVl+UXvWJlMBp1ON6A1E1EgY+JIo+Zu09PV1QWLxQKn0yl1SDSI yMhIWK1Wj1YA0+hF
R0cjKysLgiDAZDJxi85x8qcSdW9MHCnYMHGkMXG36WloaEB5eTlntXyQSqUS +wPSxNDr9TAajdBq
tbBYLKipqeH3whj5U4m6N+5ZTcGGiSONWXR0NDIyMlBVVcVr6XyUu1xNEyck JARZWVmIiIhAeXk5
ysvL4XK5pA7Lr/hbibo3Jo4UbJg40rgkJCQgKSkJFouFpTofFBsbi9bWVths NqlDCWjuFdfx8fGo
ra1FcXExr//1kLtEHRMT41clajedTsfEkYIKE0caF7bp8W1arRY6nQ4NDQ1S hxLw5HI5UlJSkJKS
gpaWFhQVFfH6Ug9UVFTAZrMhMzPTr0rUbqGhoeju7uYsMwUNJo40bmzT49tY rp48MpkMCQkJyMjI
QHd3N0wmE7ekG0ZrayvKysr8skTtplKpoFQq+XOPgoZv7uNEfsfdpufMmTMo KirCtGnToFKppA6L
AMTHx8NsNsPhcPjs1m0TrffOqmPZZXW0z4+OjoZarYbFYkFRURHS0tK421I/ vUvUvrw7jCfc1zmG
hoZKHQrRhOOMI3kN2/T4Jp1OJ+6ZHOzWrl07ac8PCwuD0WhESEgILBYLe2r2 U1FRAavV6rcl6t54
nSMFE+5VTV7X2NiIc+fOISkpCWlpaX7/SyEQnD17Fk6nE+eff77UoUhKJpON K3kby/MdDgfKysrQ
0NCA+Ph4JCcnQ6FQjDmGQNDa2ooffvgB06ZNQ3x8vNThjFtRURE6Oztx4YUX Sh3KANyrmryNM47k
dWzT43sSEhJQW1vLC/gloFQqkZ6ejsTERNTV1QX9imt3iTo6OtrvS9RunHGk YMLEkSYE2/T4lvDw
cLhcLv5yk4hcLkdycjJSU1PR2toKk8kUtCuuKysrA6ZE7cZejhRMmDjShGCb Ht+iUCgQFxeH2tpa
qUMJWjKZDPHx8TAYDLDZbDCZTGhtbZU6rEnV1taG0tJSZGVlISQkROpwvCYk JAR2ux0Oh0PqUIgm
HBNHmjBs0+Nb3G15eFmztCIjI2E0GiGXy2E2m1FfXy91SJMiEEvUbgqFAhqN JmhnkSm4MHGkCeVu
0wP0XEAezNd2SS0qKgrd3d385TaI/i12xtKyZzR0Oh2MRiNCQ0NRUlKCqqqq gE/oKysr0d3dHVAl
6t5YrqZgwcSRJhzb9PgGlUqFyMjIoJnh6i0/P19MBnt/7ta/zU7/2yM9fyw0 Gg0MBgOio6NRUVGB
0tLSgP3eCNQSdW9MHClYMHGkSREWFgaDwYCGhgaUl5cH/OyKr0pMTERVVZXU YUhmzZo1Ht3v6XHj
5V5xnZSUhPr6epjN5oDbV9zpdMJkMiEqKirgStS9cWU1BQv2caRJVV1dDYvF goyMDCQmJkodTtDp
7u7GgQMHMH/+fKjVaqnDoV7q6upQXl4OjUaDjIyMgNmFpKysDGVlZZg5c2bA zjYCQH19Pc6cOYO5
c+dKHUof7ONI3sYZR5pUbNMjLa1WC51Ox/feB8XFxcFgMMBut8NkMgXETj9t bW0oKSkJ6BK1m06n
Q0dHB6spFPCYONKkYpse6blXV5PviYiIgNFohFKp9PsV171L1IGwO8xINBoN XC4XFwBSwGPiSJOO
bXqkFR8fj4aGBvac81HuFddhYWEoLS1FZWWlX85iVVZWoqurCwaDISBXUfcn l8sRGhqKzs5OqUMh
mlBMHEkSbNMjHZ1OB4VCERCl0EClVqthMBgQExODqqoqlJSU+FWi7y5RGwyG gC9R98aV1RQMmDiS
ZNimRxoymQwJCQncR9zHKRQKpKWlYcqUKWhoaIDZbIbVapU6rBE5nU4UFRUh MjIyKErUvTFxpGDA
xJEkxTY90khMTERtbS1cLpfUodAwZDIZkpKSkJ6ejo6ODphMJnR0dEgd1rCq qqrQ2dkJg8EAuTy4
fsWwJQ8Fg+D6riafFB0djYyMDFRVVXEWbJKEh4fD6XTyl5yfiI2NhcFgEGfz mpubpQ5pUL1L1IHS
Tmg0wsLCfD6xJxovJo7kE9imZ3IpFArExsaitrZW6lDIQ+4V1yqVCsXFxait rfWpGXp3UhsRERF0
JWo3nU6Hzs5On/p/IfI2Jo7kE9imZ/K52/Lwl5z/CA0NRVZWFvR6PcrKylBR UeEzlxsEc4naTaVS
QSaT+cW1qERjFZzf3eST2KZnckVFRaGrq4vvs59Rq9XIzMxEbGwsqqurfWLF dXt7e1CXqN1kMhmv
c6SAx8SRfArb9EwetVqNyMhI1NXVSR0KjZJ7xXVycjKampokXXHtbvQdzCXq 3nidIwU6Jo7kc9im
Z/IkJSVxFxk/1XvFdWdnJ0wmkyQzXdXV1UFfou6NM44U6PhdTj6JbXomR2xs LFpaWmCz2aQOhcYo
JiYGWVlZcLlcKCoqQlNT06S9dnt7OywWS9CXqHvjjCMFOqXUARANxd2mx2Kx QKPRIDExUeqQAo5W
q0VoaCgaGxv5/voxvV4Po9EIi8WC4uJi2Gw2xMfHT+hWfyxRDy7QmoD/8MMP 2LlzZ5+tFPPz86UL
iCTHGUfyaWzTM/Hcq6vJv4WEhMBoNCI8PHxSVlxXV1ejo6ODJep+QkND0d3d HTCX2Lz88suorKwU
b69du1bCaMgXcMaRfJq7TY/NZoPZbIZarUZYWJjUYQWU+Ph48VpShUIhdTg0 DiqVCpmZmaisrERN
TQ1sNhtSU1OhUqm8+josUQ9NqVRCqVSiu7sbOp1O6nDG7ZNPPsGZM2cwZcoU AEwciTOO5AfYpmdi
hYWFQaFQoKWlRepQyAsUCgVSUlKQnJyM5uZmFBUVefV7xt3oOzw8HAkJCV4b N5AESrk6Pz8fra2t
ePPNNwctTzscDmzfvh3PPvssnn32WXz22Wdia6h169ahvr4eANDa2oq1a9ei ra0NAFBfX49169ZN
2nmQd3HGkfyCu03PmTNnUFRUhGnTpnl9FiVYyWQyJCQkoLq6GtHR0VKHQ14g k8mQmJgItVqN0tJS
mEwmpKenQ6/Xj3tsd4n6oosuCpgSdWFhIXbv3o2Ghgbo9XrMmzcPF198MYCe 5Ogf//gHTp06BQC4
4IILkJeXB6Wy59dnfn7+gKTq3XffxeOPPy4+npubi8OHD6OtrQ1r1qyB0+nE l19+iePHj8PlcmHe
vHmYPXs2AMDlcmHPnj04duwYbDYbsrOzcf3110Oj0UzSu+G5L774Alu2bIHR aAQAbNq0CQqFAosX
L8aOHTuQnZ2N3NxcHDlyBE899RTmz5+PBQsW4F//+hd27tyJBx98UOIzoLEI jO96Cgps0zNxEhIS
fG4LOxq/6OjoPn1Rx3udsLtEnZmZGRBlWLcXXngBp0+fhsPhQEtLC7Zv3y4+ 5k6OOjo60NHRgU2b
NuGLL74QHx+sdPvmm2+KM45r167FRx991GdxyZ49e7Bx40a0traiu7sbu3bt Eh/bv3+/+JjVasWn
n36Kzz//fCJOe0TuhHiw5BgAXn31VcyZMwdPPvkknnjiCcyePVucSczLy8Pe vXsBANu3b8ecOXPw
2WefAQD27t2LvLy8yTgFmggCkZ9paGgQDh8+LFgsFsHlckkdTkBwOBzCl19+ KbS2tkodCk2Arq4u
4cyZM8LRo0eFqqqqMX3fOBwO4fvvvxd++OEHwel0TkCU0klMTBTeeecdoaGh QWhubha2bdsmPnbd
ddcJ69atE9rb24W2tjbhlVdeEXJzc8XHB/s1CkD4+uuvxc83bNggtLe3i48v WbJE+POf/yy0tLQI
XV1dwo4dO8THli9fLrz88stCS0uL0N3dLWzatElYsGDBmM/t008/HfNz3fEP dTs8PFyoq6sTb9fW
1goRERGCIAjC6dOnhXnz5glWq1W48MILhe3btwsXXXSRYLPZhDlz5ghnzpwZ V1wkHZaqye+wTY/3
KRQKxMbGoqamxivlTPItWq0WWVlZ4mpru92OKVOmjGoxVHV1Ndrb2zFjxoyA KVG73XbbbTh+/DhM
JhPi4uKwaNEi8bFvvvkGmzdvFmdYV61ahTVr1ow4Zu9rHFeuXNlnhvbgwYN4 5513EB4eDgB9Xm/f
vn1ITU3FK6+8AkEQ0N7ejiNHjoz7HCeb0WhEV1cXDh48CJfLhYULF+LJJ5/E wYMHYbVaxfI2+Z/A
+u6noME2Pd7nbssjsFwdkFQqFTIyMpCQkICamhoUFxd7vKVnR0dHQJao3X7z m9/g8ssvh16vR2Fh
IV566SWPnyuXy/u8j+6StMPhEBeKjOaPMUEQoFarxds6nQ6PPvqox8+fTLNm zcL7778vlvG3bNmC
WbNmAej5eps1axZefvllzJs3D1qtFnPnzsVLL72EK6+8UrxGlPwP/+fIL7FN j/dFRUWhu7sb3d3d
CAkJkTocmgByuRzJyclQqVSoqKiAyWQSOxYMxb0jjV6vD9jZ/cOHD+Paa69F VFQUdu3ahbvuugtv
vvkmgB+To9WrVwNAn+QI6Nm2c9++fZg/fz66urrwySefAOiZ5e19XWNv//mf /4nNmzfjrrvuglqt
xt69e8VZx6uuugpGoxE333yzuJf8gQMHJvL0x+zBBx/Exo0bxT6w586d67Pg JS8vDytWrMDWrVsB
AAsXLsSqVavE94j8ExNH8lvuNj3nzp1DYWEhpk+fDq1WK3VYfkutViMiIgL1 9fVITU2VOhyaIO5V
9L1XXGdkZAw5K+YuUQfSKur+Tp48iRMnTgAAWlpasHz5cvGxkZKjn//859iw YQP27dsHlUollqiH
a8nz0EMP4a9//Svq6uqgVqshCIKYOP7617/G1q1bUVlZCYVCIVYAVq5c6f0T 90D/snzv27m5uXA6
nTh9+jSAnpL/ddddJz4+a9YscdEMAMyePRtPPPFEn8Sb/I8in3sHkR9TKBQI Dw9HfX09WltbERUV
xSbW4+ByuVBdXY3k5GSpQ6EJFhISgrCwMLS2tqK+vh4qlWpAM++Ojg4UFBQg IyMDMTExEkU68WJj
Y1FXVwer1YrU1FTccccdYmuqzMxMaLVatLS0QK1W45prrsGiRYvEnzPZ2dmw Wq3o6upCeHg4Fi1a
hClTpmDGjBlwOp2IiYnBggUL+rxeRkYGwsLC0NzcDKVSiWuuuUb8Yy0tLQ0R ERFobm6G3W5HXFwc
8vLyxrytY0FBAXJycsb83vSPvfdthUKBnJwczJ07F3PnzkVOTk6fn7+hoaFY sGCBWA0KCwvDggUL
WNHwczKBFzRRAGhvb8fZs2cREREBg8HA5HGMurq68PXXX2PevHl9rrOiwGW1 WlFSUoL29nYkJSUh
MTERMpkMLpcLJ0+eBNDTuzBQZxsnSklJCRobGzFz5kxJ49i2bRuWLVsmaQwU WFiqpoAQFhYGg8GA
c+fOQa1WIy0tDTKZTOqw/I5Wq4VWq0VTUxN3BQkSGo0GBoNBXHFts9mQkpKC mpoatLW1BeQq6smg
0+lQWloqdRgDCIKAL7/8EkePHoVMJsMll1yCa665xuOfl72LlCxYBif+NKCA 4W7TU1VVhZqaGqnD
8UvuHUfc13NRcFAqlUhPT0diYiLq6+tRVFSE4uJiZGRkBOQq6skQFhaGjo4O n+tScPToUbz99tto
a2tDW1sb3n77bXz33XejHod7VgcvJo4UUNimZ/wSEhJQX1/PnXmCjHvFdXJy MsxmM9ra2hARESF1
WH5Lo9FAEASPWx5NlrfffhtZWVl44okn8Pjjj8NgMOCdd97x+PlD7SJDwYOJ IwUUd5uemJgYmM3m
IVc10tDCwsKgUCjQ0tIidSg0yWQyGQRBgE6nQ1JSEsxmM78OxkgmkyE0NBQd HR1Sh9LH7t27cfvt
t0Ov10Ov1+OnP/1pny0UiUbCxJECjrtNT0hICAoLC9Hd3S11SH5FJpMhPj6e 5f4g1NHRgeLiYhgM
BhiNRigUCpjNZtTX10sdml/S6XQ+98drRUUFMjIyxNsZGRkoLy+XLiDyO0wc KSCpVCpkZWUBAIqK
inyuXOTrEhMTUVNT43PXZ9HEcblcMJvN0Ol0SExMhE6ng9FohE6nQ0lJCaqq qvj1MEru6xyJAgkT
RwpYWq0WU6dORVdXFywWC6/ZG4WIiAg4nU6fmy2hiVNTU4PW1lZkZWWJ7azc K65jYmJQWVmJ0tJS
fh+NwnBNwKWSnJwMi8Ui3rZYLEhJSZEuIPI7TBwpoLnb9DQ0NKC8vJwzJh5S KBSIiYlBbW2t1KHQ
JOjs7ITZbBYbU/fmXnGdlJSEhoYGmM1m2Gw2iSL1L76YOC5cuBCbNm0SV1Vv 3ry5z24v/Re+cCEM
9cfEkQIe2/SMDdvyBIf+JerByGQyTJkyBWlpaWhvb4fJZGIJ1gOhoaHo7OyE y+WSOhTRXXfdBZPJ
hOeeew7PPfccioqKxH24gYFtdvrf7r2qmiusgxMTRwoKbNMzetHR0ejs7OTi ogBXW1uLlpYWcTHM
cGJjY2EwGOBwOGAymbjiegQqlQpyuRxWq1XqUESXXnop7tVB98MAACAASURB VL77bnFV9d13342L
L75YfHy4vak9uZ8CH7ccpKDhdDrF9iI5OTkDSnI00LfffospU6bwGqgA1dnZ ie+//x7p6emj2p+8
s7MTFosFVqsVKSkpiIuLm8Ao/duBAwcwffp0xMbGSvL63HKQvI1bDlLQcLfp OXfuHAoLCzF9+nRo
tVqpw/JpiYmJqKqqYuIYgNwl6tDQ0CFL1EMJDQ2F0WhESUkJSktLYbPZkJSU FBRbE452yz33dY7u
xJFb9pG/C/zvcqJe2KZndOLi4tDc3MzFEAFoNCXqwajVahgMBsTGxqKqqgol JSVwOBwTEKlv8nTL
vaFa8nDLPvJXLFVTUGpvb8fZs2cREREBg8Ewpl+cwUAQBHz99deYOnUqEhIS pA6HvMRdok5LSxv3
bLIgCKiurkZlZSX0ej3S09Oh0Wi8FKnvcu+yM5KqqiqUlpZi1qxZY3r+eLFU Td7GGUcKSmzT4xmZ
TMbV1QGmd4k6KSlp3OPJZDIkJSUhPT0dnZ2dXHHdjy+25CEaDyaOFLTYpscz 8fHxqK+vZ+PnAOEu
Ufdu9O0N7hXXLpcLJpMJzc3NXhvbn4WEhMBqtfL7hwIGE0cKamzTM7KwsDAo FAq0trZKHQqNk7vR
d3p6OvR6vdfHDw8Ph9FohFqthtlsRm1tbdDP5iuVSqhUKnR1dUkdCpFXMHGk oCaTyZCSkoKYmBiY
zWaWlAYhl8sRHx/PcrWf83aJeighISEwGo0IDw9HWVkZKioqfKoBthRYrqZA wsSRgp67TU9ISAgK
CwvZ8HoQCQkJqKmpCfrZI39WW1uL5uZmr5eoB6NSqZCZmYm4uDhUV1cH1Yrr wbbsG2plNZE/YuJI
BLbpGUlERAScTid/+fmprq6uCS1RD0ahUCA1NRUpKSloampCUVFRQPxRNtKW e4Nt2afT6cQZR27Z
R/6OiSPRv2m1WkydOhVdXV2wWCy8mL0XpVKJmJgY1NbWSh0KjZIgCDCbzQgJ CcGUKVMm9bXdq/Iz
MjLQ1dUFk8kUMCVbT7fiW7NmzaAzjtyyj/wV+zgS9dPY2Ihz584hKSkJaWlp kMlkUofkE6qrq2E2
mzF79mypQ6FRqKmpQWFhIS666KJJm20cTFtbm/gHWVpaGqKjoyWLZbJ1dnbi 4MGDuO666yb9tdnH
kbyNM45E/bBNz+Cio6PR0dEREOXGYNHV1YWioqJJLVEPRa/Xw2g0QqvVwmKx BNU1s1qtFg6Hg5fA
UEBg4kg0CLbpGUitViM8PBz19fVSh0IekLJEPZSQkBBkZWUhIiIC5eXlKC8v D4oV13K5HFqtFp2d
nVKHQjRuTByJBsE2PYNLSkpiWx4/UVdXh6ampjHvRT1R3Cuu4+PjUVtbi+Li 4qCYiePKagoUTByJ
hsA2PQPFxsaiubk5KH7R+zN3iTotLU3yEvVg5HI5UlJSkJKSgpaWFhQVFQV8 g2z2cqRAwcSRaBhs
09NXSEgItFotmpqapA6FhiAIAoqLi6HVan2mRD0YmUyGhIQEZGRkoLu7GyaT CW1tbVKHNWGYOFKg
YOJINAK26fmRu70Ky9W+q66uDo2NjTAajVAqlVKHM6Lo6GgYjUbIZDIUFRUF 7DXFOp2OpWoKCEwc
iTwQFhYGg8GAhoYGlJeXB81q0MHEx8ejrq4uqBNoX+XrJeqhhIWFwWg0IiQk BBaLBdXV1QH3PeZO
HAPtvCj4MHEk8hDb9PQICwuDXC5Ha2ur1KFQL+4StUaj8ekS9VC0Wi2ysrIQ FRWF8vJylJWVBdQf
JxqNBoIgwGazSR0K0bgwcSQaBbbp6VnYEB8fH9TJsy/ytxL1YJRKJdLT05GY mIi6urqAWnEtk8kQ
GhrKcjX5PSaORKPANj09EhMTg6qBs6/r7u5GUVERUlNTER4eLnU44yKXy5Gc nIzU1FS0trbCZDIF
zIrr3ntWE/krJo5Eo8Q2PUBERATsdjtnT3xA7xJ1cnKy1OF4hUwmQ3x8PAwG A2w2G0wmU0BcGsFe
jhQImDgSjUGwt+lRKpWIiYlBbW2t1KEEvbq6OjQ0NPh1iXookZGRMBqNkMvl MJvNfr9rkV6v54wj
+T0mjkRjFOxtetiWR3qBVKIeik6ng9FoRGhoKEpKSlBVVeW3l0iwVE2BgIkj 0TgEc5uemJgYdHR0
BGWp3he4S9RqtTpgStRD0Wg0MBgMiI6ORkVFBUpLS/3yD7XQ0FB0d3cHxf7c FLiYOBKNU7C26VGr
1QgPD/f78qG/qq+vD9gS9WDcK66TkpJQX18Ps9nsd61tVCoV5HI5rFar1KEQ jRkTRyIvCNY2PSxX
S8Ndok5JSUFERITU4Uwa94rrtLQ0tLe3w2QyobOzU+qwPCaTyViuJr/HxJHI C4K1TU9cXByam5uD
bnGQlARBgMVigUqlQkpKitThSCIuLg4GgwF2ux0mkwktLS1Sh+Qx7llN/o6J I5GXBGObnpCQEGg0
GjQ3N0sdStCor69HfX190JSohxIRESG+B/604potecjfMXEk8qJga9Mjk8lY rp5EwVqiHop7xXVY
WBhKS0tRWVnp8wvUOONI/o6JI5GXBVubnoSEBNTV1QX8eUqNJerBqdVqGAwG xMTEoKqqCiUlJXA4
HFKHNSSdTscZR/JrTByJJkAwtekJCwuDTCZDW1ub1KEENJaoh6ZQKJCWloYp U6agoaEBZrPZZ1cu
h4SEwGq18g8t8ltMHIkmSLC06ZHL5YiPjw/oc5Sa1WpFUVERkpOTWaIegkwm Q1JSEtLT09HR0QGT
yeSTM3tKpRJqtTpg9t+m4MPEkWgCBUubHvd1joE8syoVlqhHJzY2FgaDAU6n E0VFRT65cIstecif
MXEkmkDB0qYnIiICdrvdJ2d4/F19fT3q6upgNBqhUqmkDscvuFdcq1QqFBcX o7a21qf+qOECGfJn
TByJJlgwtOlRKpWIjo5GXV2d1KEEFJaoxy40NBRZWVnQ6/UoKytDRUWFz2z1 x8SR/BkTR6JJEAxt
epKSklBVVSV1GAHDXaJWKpUsUY+RWq1GZmYmYmNjUV1d7TMrrtnLkfwZE0ei SRLobXqio6PR0dER
kDOqUmhoaGCJ2gvcK66Tk5PR1NTkEyuueY0j+TMmjkSTKJDb9Gg0Guj1ejQ0 NEgdit/rXaKOjIyU
Ohy/13vFdWdnJ0wmk6SJm1arhdPpDMjKAwU+Jo5EkyyQ2/SwXD1+giCgpKQE CoWCJWovi4mJQVZW
FlwuF4qKitDU1CRJHHK5HCEhIejs7JTk9YnGg4kjkQQCtU1PXFwcmpqaOJMy Dg0NDaitrWWJeoLo
9XoYjUao1WoUFxejpqZGkpl/LpAhf8XEkUgCgdqmJyQkBBqNxid75/kDq9UK k8nEEvUECwkJgdFo
RHh4uGQrrnmdI/krJo5EEgnENj0ymUxsBk6jwxL15FKpVMjMzERCQgJqampg sVgmdaacM47kr5g4
EkkoENv0JCQkoK6uzmd65vmLxsZG1NbWYurUqSxRTxJ3kp6cnIzm5mYUFRVN 2h9wbMlD/kopdQBE
wc7dpufs2bOwWCwwGAxQKBRShzVmer0eANDW1sam1R6y2WwwmUyYMmUKS9S9 nD17dtJey2q1oqqq
Ct3d3dBqtRP+ejabDe3t7ZNyjpP5Po5WTk6O1CHQKHHGkcgHBFKbHrlcjvj4 eJarPdS7RJ2amip1
OD6loKBg0l4rKioKWVlZk5I0Aj3NyQ0Gw4S/TnZ29oS/xlhN5v8veQ9nHIl8 hLtNj8VigUajQWJi
otQhjVliYiJOnz6NadOmQSaTSR2OT2tsbERNTQ0uuOAClqgH4eszUsf2rB/x mJlX3zcJkfgfJo7+
iTOORD4kUNr0REZGwmazsU/dCFii9n/H/rkeDmfNkB/H/jlyYknkTzjjSORD 3G16bDYbzGYz1Go1
wsLCpA5r1JRKJaKjo1FbW4vMzEypw/FJ7hK1XC5nidqPCQLwH/NvHPLxH/Z9 Muax8/PzkZ+fP+bn
E00EJo5EPsbdpufcuXMoLCzE9OnTJ+26K29KTExESUkJE8chNDU1oaamBuef fz5L1H7M6ZJBEHqK
d+JVGQIAWc+/Ttfwl2oMlhi671u7di0TR/I5TByJfJC7Tc+ZM2dQVFSEadOm +V1yERMTg1OnTsFq
tUKj0Ugdjk9xl6iTkpIQFRUldTg0Dg6XDKe+/07MFQd7fDhr167FmjVrJiQ2 oonAxJHIR/l7mx6N
RgO9Xo/6+nokJydLHY7PEAQBpaWlkMlkLFEHALsgB+AcNGn88fHheTKr6HA4 8I9//AOnTp0CAFxw
wQXIy8uDUqnEunXrsGrVKsTGxqK1tRV//vOf8fDDD4vff1u2bMGDDz7o+UkR DYOLY4h8mL+36eEu
MgM1NTWhurpa3C+Z/JvdKccFMy8Z8sPu9M6v2S+++AJbtmxBR0cHOjo6sGnT JnzxxRcAgB07duDo
0aMAgCNHjuCpp54Sb//rX//Czp07vRIDEcAZRyKf589teuLi4mAymeBwOKBU 8scNS9SBx+4c/hpH
u3PkdlT9ZxwHm4F89dVXsXTpUtx1110QBAFvv/021q1bh8WLFyMvLw979+5F bm4utm/fjjlz5uCz
zz7DggULsHfvXuTl5Y3rHIl6409yIj+QkJAAq9UKi8UCtVqN6OhoqUPySGho KNRqNZqbmxEbGyt1
OJJyl6gBsEQdQGxOGb4+fBYQBk8cbR4kjp745ptvsHnzZuh0OgDAqlWrxGsj Fy5ciPvuuw82mw17
9uzB008/jd///vew2+34+uuv8dZbb3klBiKAiSORX/DXNj0ymQyJiYmoqqoK +sTRXaI+77zzWKIO
IHaXHDK4+q6Mkf34r93lnWsch2M0GtHV1YWDBw/C5XJh4cKFePLJJ3Hw4EFY rVYYjcZxjU/UGxNH
onGY7D1gHQ4HamtrAcAvEkegZ8/qlpYWv1sV7m1NTU3o7OxEbW2t+H/oKV/f PSWY2V1yzJk99P/P
rg+9c43jrFmz8P7772P16tUAgC1btmDWrFkAerowzJo1Cy+//DLmzZsHrVaL uXPn4qWXXsKVV17J
y0TIq/jVRDQOBQUFk7oXrFKpnJT9bb1Jr9dDr9dLHYbkoqKixnRdY0FBARNH H+YY4RpHh5dK1Q8+
+CA2btwoLjY7d+5cn5XSeXl5WLFiBbZu3Qqgp3y9atUqfPLJ2BuQEw2GiSPR OPX+pc59a8nbuJ+v
b3O45Nj1+Q4AQ/VxHH7Gcbgejr0fy83NhdPpxOnTpwEAt912G6677jrx8Vmz ZuGJJ57A7NmzAQCz
Z8/GE088Ic5KEnmLTPC3/h5EPmTbtm1YtmyZeHvD72fgwnlDbz92Yv8nuOuP 309GaBQg+n+NBRN/
OPcd2/8K1zC/ReUyIO+Gn01aPP7EH/5/aSDOOBJ5UTDvWzua+CbzXHz9faPh TfZ1xKOVOe2KEY/x
9XMgGg3OOBKNQ/+/mN/83UzcsWYjgMGvd3p37e2495ljQ4433L61MpnMqw3A 3ePK5XLodDqkpaVh
7ty5ffpEjibp6h1f7+eo1WqkpaUhLy8PMTExA4711nkMdb+33zdv8fS9DeZZ mW3btk3qNcQ0uQoK
CoL2a9ufccaRyIv8ad9a92sJgoC2tjZ8++23OHToEB577DFMmTLFK2MDQGdn J7766iuUlZXhySef
9EboQ76WP1m7di1nQj3AhUGBi9fv+icmjkRe5G/71ubn50MQBLS3t+P06dN4 /vnn8f777+Phhx8e
8JpNTU3YuXMniouL4XK5kJGRgRtvvFFsSDzUeXR2duLAgQO45557Bk0cRxo3 Pz8fS5cuxcGDB9HW
1oa4uDgsX758wMyoJ1wuF/bs2YNjx47BZrMhOzsb119/PTQajTjO1VdfjUOH DkGpVOL6669HbW0t
Dh06BIVCgRUrVoir2j0Za6i43fH2/7ewsBC7d+9GQ0MD9Ho95s2b59F5ERFN Fu5VTeRF/rhvrUwm
g16vx6xZs/CrX/0KmzZtEh9bu3at+Pnrr7+O4uJiOBwOdHd3Y+fOnfj44489 ilcmG3qmdaRx165d
i48++gitra2w2WzYt28f/ud//sej1+1v//792LhxI1pbW2G1WvHpp5/i888/ 7/NaO3bsgN1ux7Fj
x/DMM89g586d4u2//OUvoxprtHG/8MILOH36NBwOB1paWrB9+/YxnScR0UTh jCORF/n7vrWXXnop
CgsLB30sKioKixcvRkpKCpxOJ3bv3o1nnnkGt99++7Dn4XA4UFFRgV/+8pdj Hvf888/HsmXLoNVq
sX//fqxevRq///3vh32Phnrf5s2bh7vvvhsajQYfffQRXnvtNaxYsUI85rLL LsPSpUtx/PhxzJkz
Bx988AGWLFmC48eP44YbbsALL7zg8VhDxZ2fnz9oqfqzzz7Ds88+ixtuuAEK hQL79u3zyesziSh4
MXEk8qJA3rf2hhtuwO7du1FdXQ2bzQa73Y4TJ06M+LzQ0FBcffXVQyasnoy7 cuVKhISEAADmz5+P
ysrKMZ3Dvn37kJqaildeeUUs0R85cqTPMXl5eVCr1Zg5cybsdjsWLVok3u69 44snY4027ttuuw3H
jx+HyWRCXFwcFi1axBW5RORTmDgSeZG/71t75MiRIVexvvzyy+IKbLlcDpfL hY6OjnGfhyfjupMv
oGd7NZfLNabXEgShzz7ROp0Ojz766KCv5d6mrfft3q87mrGGiru/3/zmN9i/ fz9KS0tRWFiIU6dO
YcmSJR6dGxHRZGDiSORF/rhvrXu27MyZM/jLX/6Cn/70p4O+5pYtW/DGG29g 0aJFsFqt2LFjh1fO
ZaLGHcxVV10Fo9GIm2++GZGRkairq8OBAwckGUur1aK+vh6xsbHifYcPH8a1 116LqKgo7Nq1C3fd
dRcTRyLyKUwcibzI3/atzc/PF/scdnR0ID09Hbfccsugr7l48WJ89dVXOH78 OACgq6vLK+fijXE9
vcbx17/+NbZu3YrKykooFArx+sGVK1eO+jXHO9bVV1+NZ599Fnq9Xoz15MmT Ypm+paUFy5cvH3Vc
REQTSZHPRmJEY1ZQUNCnz9w/tr8LlyBHUaEJRef+/VHY69/CQuTdsHrYMRcs WDDiY5mZmdBqtWhp
aYFarcY111yDRYsWQaFQAACio6OhVquxYsUKhIWFISoqClqtFjfddFOf8inQ 0wA8LCwM5513Hlat
WtWnzU3v18zJyUFzczPsdjsiIiKQm5uL5OTkPvEO9flw5zLacUc7fu/P09LS EBERIb5eXFwc8vLy
EB8fP+S4Q90ey1i970tNTUV9fT2cTqd4X2xsLOrq6mC1WpGamoo77rgDdXV1 QdvLsP/3FwUW/v/6
J+4cQzQO/Xf14L615G3BvnNMsJ57MOD/r39iqZponHqveuW+tUTexe8XIt/C BuBERERE5BHOOBKN
E6/RoYkU7Pv58vsrcAX717a/4owjEREREXmEiSMREREReYSJIxERERF5hIkj EREREXmEi2OIiLyh
uRk4erTn4+RJID0duOQS4NJLgZQUqaMjIvIKJo5ERGPlcgEvvwysXw8UFQ19 XHw8sHw58PzzQETE
5MVHRORlLFUTEY3FuXPA3LnAY48NnzQCQG0t8OabwAUXADt3Tk58REQTgIkj EdForVsHzJgBHDo0
uueVlwN5ecDPfw50dk5MbEREE4ilaiKi0fjf/wUeemh8Y7z1FqBSAW+84Z2Y iIgmCRNHonHiXrrB
Q9HYCMN990HhjcHWr0fZZZeh48orvTFawOL3F5FvYamaiMhDiX/8IxSNjd4Z TBCQ+P/+H+Tt7d4Z
j4hoEnDGkWicuJdukNi+3esLW1RVVZj2zjvA668PeUyw7+fL76/AFexf2/6K M45ERJ7Yvt2/xiUi
mgBMHImIPPHttxMzbnk5UFMzMWMTEXkZE0ciopF0dgKnT0/c+EePTtzYRERe xMSRiGgk330HOJ0T
N/6RIxM3NhGRFzFxJCIaSXn5xI5fUTGx4xMReQkTRyKikVx00cSO/x//MbHj ExF5CRNHIqKRZGcD
ev3EjX/ppRM3NhGRFzFxJCIaiVwOXHLJxIytVHLGkYj8BhuAExF54rLLgL17 vT/ueecBISHeHzdA
cMtBIt/CxJFonPiLLTior70WGa+9Bnl3t1fHrbr1VrTwa2hQ2dnZUodAE4j/ v/6JiSMRkQdsaWmo
e+QRJDz9tNfGbL/qKrTceKPXxgs03G6QyPcwcSQaJ/5yCyJ//CNw8CCwb9/4 x4qJQdiWLchJTBz2
MO7nS0S+hItjiIg8JZMB77wDRESMf5z164ERkkYiIl/DxJGIaDQyM4Hjx4Gr rhr78/fuBVau9GpY
RESTgYkjEdFopacDX30FrFsHhIZ6/rx77wV++AGYN2/iYiMimkC8xpGIaCxk MuCBB4BFi4B33+3Z
b/q774C6uh+P0emAGTN6ekAuWwZcfbV08RIReQETRyKi8Zg6FXjqqR9vl5YC J0/2zErm5AAKhXSx
ERF5GRNHIiJvSkvr+SAiCkC8xpGIiIiIPMLEkYiIiIg8wlI10Thxy0EiIgoW nHEkGgfutepdTqcT
BQUFcDqdUofiM/g1RkS+hDOOROPA7Qa9q7a2FiaTCXFxcYiPj5c6HCIi6ocz jkTkEwRBgMViQWJi
IiwWCwRBkDokIiLqh4kjEfmEtrY2dHR0ICcnBx0dHWhra5M6JCIi6oeJIxH5 hLKyMsTHxyMiIgLx
8fEoKyuTOiQiIuqHiSMRSa67uxu1tbVITU0FAKSmpqK2thbd3d0SR0ZERL0x cSQiyVVXV0On00Gv
1wMA9Ho9dDodqqurJY6MiIh6Y+JIRJJyOp0oKytDRkYGZDIZAEAmkyEjIwNl ZWVszUNE5EOYOBKR
pBoaGgAAMTExfe5333Y/TkRE0mPiSESScbfgSU1NhUKh6POYQqFAamoqW/MQ EfkQJo5EJBl3C57E
xMRBH09MTGRrHiIiH8LEkYgk427Bo9VqB31cq9WyNQ8RkQ9h4khEkujfgmco bM1DROQ7mDgSkST6
t+AZClvzEBH5DqXUARBRcLJYLFCpVCgoKBjxWLvdDovFgoyMjIkPjIiIhsTE kYgkMdSCmIKCAmRn
Z/e5r3+rHiIikgYTRyKSRE5OzqD3FxQUDPkYERFJi9c4EhEREZFHmDgSERER kUeYOBIRERGRR5g4
EhEREZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGR R5g4EhEREZFHmDgS
ERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFH mDgSERERkUeYOBIR
ERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeY OBIRERGRR5g4EhER
EZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGRR5g4 EhEREZFHmDgSERER
kUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgS ERERkUeYOBIRERGR
R5g4EhEREZFHmDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIR ERGRR5g4EhEREZFH
mDgSERERkUeYOBIRERGRR5g4EhEREZFHmDgSERERkUeYOBIRERGRR5RSB0BE 0jl79qzUIQxKqrhy
cnIkeV0iIn/BGUeiIFZQUCB1CANkZ2dL8rq++F4QEfkazjgSBbnes2zH9qwf 8fiZV983keFIhokj
EdHIOONIRKJj/1wPh7NmyI9j/xw5sSQiosDFGUciEgkC8B/zbxzy8R/2fTKJ 0RARka/hjCMRiZwu
GQRBDkGQo+fHgxwQfvzX6ZIN+/z8/PxR3U9ERP6FM45EJHK4ZDj1/XcQAAyW IjpGSBzXrl07aJI4
1P1ERORfmDgSkcguyAE4B00af3x8fJqamrBz504UFxfD5XIhIyMDN954I3Q6 HYCe2cmlS5fi4MGD
aGtrQ1xcHJYvX47ExMSeGOx2/P3vf8fp06eh0Whw5ZVXYvfu3WJimp+fPyBJ 7X1ffn4+Fi5ciEOH
DsFms+GCCy7AkiVLxn1eRETBQCYIgiB1EEQkjW3btmHZsmXi7RcfvRwPPPPW kMe/9rt78OiL3w75
uEwmw2A/Unrf/9RTT0Eul8PhcMBms8FisSA3Nxe33367eOzjjz+O0NBQ2O12 mEwmnHfeefj9738P
APj888/x3nvvwWg0Qq1Wo66uDq+//ro4/mAx9L5PJpPhV7/6FeLi4mCz2WAy mXDXXXfBarX2eS+I
iGggzjgSkcjulP37+kZA5p52dNethZ7HRzJSSToqKgqLFy9GSkoKnE4ndu/e jWeeeUZMHAHg/PPP
x7Jly6DVarF//36sXr1aTBxfe+01LFu2DHfccQcA4K9//esozxKYPn06Vq9e DQDYsGED1q1bh1/8
4hejHoeIKNgwcSQikc0pw9eHzwLC4ImjzYPEcSQ33HADdu/ejerqathsNtjt dpw4caLPMStXrkRI
SAgAYP78+aisrBQf++abb7B582axtH3LLbfg/vvvH1UMt956q/j8W2+9FX/4 wx+YOBIReYCJIxGJ
7C45ZHD1XRkj+/Ffu2vkaxyHWhzj9vLLL0Mul0On00Eul8PlcqGjo6PP8e6k EQBUKhVcLpd4e6Sr
a+RyOex2O1QqFQCgs7Nz2OOHKq8TeZPdbofT6YRcLodarZY6HKIxY+JIRCK7 S445s4fer3nXh+Nf
HLNlyxa88cYbWLRoEaxWK3bs2DGq519xxRX48MMPceeddwIAPvjggz6PJyUl Yd++fZg/fz66urrw
yScDe09+8MEH+NnPfgYAeP/993HllVeO7WSIPPTTn/4UH374ITIzM2E2m6UO h2jMmDgSkcgxwjWO
Di+UqhcvXoyvvvoKx48fBwB0dXWN6vkPPPAANm7cNLUhnQAAD/xJREFUiPLy cqjVatTU1EAu/zGh
/fnPf44NGzZg3759UKlUaG9vHzDGmTNn8OKLL8Jms6GwsBAPPvggbDbb+E6M pNfRAfz7EgTqq6am
RvwjatGiRcjIyJA2IC/q7OzEe++9BwCYM2cOLrzwQokjCmxMHIlI5HDJsevz nhnAwfs4Dj/juGbN
mhHvf/zxx7Fr1y60tLRAr9djyZIl4vWGQ43R+77c3FzYbDacOXMGarUaCxcu xIcffig+fu+992L7
9u2oqalBeHg48vLyEBoa2me8//qv/8KhQ4egVCqxatUqLFy4EJ9//vmw50Y+ pqkJ2LcPOHr0x4/a
WiA9Hbj0UuCSS3o+5s0DtFqpo5Wc2WzGL3/5SwA93RQCKXFsaWkRz+3VV19l 4jjBmDgSkWjR9avh
GuZyv0XXrx72+Z7sHJOTk4OcnL7l8FmzZg07Ru/7VCoVQkND8fDDD8PpdOLt t9/G5ZdfLj6elJQ0
YKHLZZdd1uf2nDlzMGfOnGHPhXzY3/4G3HcfUF8/8LGSkp6Pv/2t53Z2NvDe e0CvrxEiGjsmjkRB
7uzZs+LnmdOuGNXxUikoKEBiYiIcDgcaGhqQm5vrcVy33nqrT5wDjUFTE3D/ /cCWLZ4/p6AAmD0b
eOIJ4A9/ALgwhWhcmDgSkd/Jzc0VP1+1atWonjtUOZ183JkzwLXXAr1aM3nM 6QSefhr4/HNg714g
ImJMIdhsNpw8eRJlZWWorq5GUlISpk2bhqysLHEV/2h0dXVh//79KC0tRXp6 OmbNmoUID2Orr6/H
mTNnYLFY0NXVhbi4OCQkJGDmzJl9uhIIgoCWlpY+1/p2dHSgubm5z3ghISHQ aDQAAIfDIR6v1+uh
UCgAAKdPn8bJkyfR2NiIGTNm4Ior+v6h6XA4xPensrIS8fHxmDZtGoxGozi2 p+x2OwoLC3Hq1Cm0
tLQgOTkZ2dnZMBgMfY5raWlBa2ureLurq2vAuWk0mj7vCY2TQERB69NPP5U6 BJ/B98KH2e2CcMkl
ggCM/2P16lG//D//+U9h+fLlQlhYmICe5WJ9PiIjI4X169cLLpdryDFuvvlm AYCQmZkpuFwu4dln
nxXCw8P7jCOTyYTly5cLLS0tQ45TXl4u3H333YJarR40FrVaLVx11VXi8Y2N jYMe1/9j7dq14nP+
/ve/i/cfOHBA+P7774WLL764z/E33XSTePy3334r3HzzzUJERMSgY+t0OuGF F14Q7Hb7iO91U1OT
cOeddwpKpXLQsS666CJh+/bt4vH938PBPlaP4f+chsYZRyIi8m1PP92z+MUb 3nkHuOkmYBT7k3/2
2Wf49NNPAQBxcXFIT09HTEwMSktLYTKZ0NzcjPvuuw87duwQjxvOI488gj// +c+Qy+W44IILEBER
gWPHjqGzsxOffvoprrzySuzYsQNpaWl9ntfW1oZFixbh5MmTAHqu5506dSp0 Oh1qampQVlaGuro6
7N+/X3yOXC5HQkIC7HY7GhsbAQCRkZEDZgDDwsIGjfWHH37AY489hs7OTigU CmRkZKCtra3PMV9+
+aW4QC06Ohrp6emIj49HRUUFCgsL0dHRgcceewzbt2/Hvn37IJMN3p1hz549 uP3228WG/0qlEjk5
OUhISEBRURFKS0tx/PhxHDhwANdffz0AICEhARqNBnV1dQB6Zkj7L4bzdBaX PCR15kpE0uEs24/4
Xvioo0cFQan0zmyj+2PKFEFobPQ4hGeffVZ47LHHBJPJNOCx0tJSYeXKleLs Vu/ZsN7cM44qlUoA
IFx22WVCdXW1+LjD4RAeeughcZwVK1YMGOPpp58WAAgKhUJ4++23BafTOeCY b775RvjlL3854P5D
hw6JY2/btm3Y8+094xgSEiKEhoYKGzZsEDo7O8VjKioqxM/feOMN4YEHHhBO nTo1YKyamhph9erV
4ngbNmwY9DUbGhqE2NhY8fzWrFkjdHV19Tmmvr5eePHFF4XXX3+9z/2VlZXi +K+++uqw50bjx8SR
KIgxWfoR3wsflZvr3aTR/fGHP3gtRLvdLlxxxRUCAGHGjBmDHuNOHAEIKSkp QkdHx6DH3XnnnWLZ
+rvvvuvz2IoVKwQAwoIFC0Yd41gTRwDCl19+OerX683lcgl5eXniuQ/m3nvv FV/vgw8+GNX4TBwn
1/i3gSAiIpoo//d/EzPu4cNeG0qpVOK2224DAJw6dQpOp3PY4x9++OEB5VS3 3/3ud5DL5RAEAa+9
9lqfx9wl4uLiYjgcDi9EPrLc3Fxcc8014xpDJpPhjjvuAACUl5eLJXO3uro6 vPXWWwCAuXPn4uab
bx7X69HE4jWORETkm4qKgH4rZL3myJExPa20tBTl5eWoqKhAY2OjuM95QUEB gJ7VwGVlZcM22P7J
T34y5GPTpk3DRRddhGPHjg1oGzVjxgzs3r0bJSUluPPOO/GLX/wCc+fOHfKa QW/o3cHAE5WVlSgt
LUVFRQUaGhrEfeZLSkrEY8xmM6Kjo8Xbp06dEo+75557vBA1TSQmjkRE5Ju8 tSBmME1NPYlpVpZH
h2/fvh1/+tOfcOjQoRGPLS0tHTJxVCqVSEpKGvb5qampOHbsGIqKivrc/9vf /hbvvvsuamtrsWXL
FmzZsgUpKSlYunQp8vLycO211w45kzlW6enpHh331Vdf4bnnnsOXX3454rGl paW49NJLxdu9E+Sp
U6eOPkiaVEwciYjIN01k4ggA//qXR4nja6+9hgcffBBAT9n1sssuQ1paGiIj I8XtMktLS8W9oIcr
I8fFxYl9EYfiTixra2ths9mg/nfT8tjYWBw7dgyPPPIIPv74Y9hsNpSXl2P9 +vVYv349tFotfvaz
n+GZZ55BVFTUyOfvgbi4uBGP2bp1a59+qjNnzoTBYEBkZKS4Wruurg5b/t24 vf/7Yzabxc/7ryQn
38PEkYiIfNNE7/LiwfinTp3CI488AgC46qqrsHnz5kFnDD/++GMxcRxOU1PT iMc0NDQA6Gmbo+4X
45QpU7B161a0tbVh586d2LVrFz755BM0Njaiu7sb69evx65du3D8+HHo9foR X2skI5XBy8vLxfLy
JZdcgr/97W+DzlLu379fTBz7S05OFj+vqanpc5t8DxfHEBGRb+pVzpwQHuxf vWfPHtjtdgDABx98
MGSZ2WQyefSS3d3dYs/BoZSVlQHAgF1SetPr9fjJT36Ct956C9XV1fjss8+w YMECAD2LZ1588UWP
4hmvAwcOoLOzEwCwadOmIUvbw70/06dPFz/vX54n38MZR6Igx32byWdNZOKY mAikpIx42PHjxwH0
XOs3XNn24MGDHr/0nj17cMsttwz6WH19PU6cOAEAyPLw+kuVSoWlS5fiwgsv RFZWFpxOJ470W/zT
e8s9T2Y9PeV+f3Q6HXJycoY8brj3p3fiuG3btmEXDw1mos6NBscZRyIi8k3J yUBCwsSMfdllHh3m
3nWkpqZGnHns7+DBg/jss888fuk//elPQz722muviTN47hY2nkpPT0dqaiqA nh1jeut97eBRL147
6n5/Ojo6hkzaTp06hffee2/IMVJTU8WdYLZs2YLvvvtuVDFERkaKZXlvnhsN jjOOREFuuFmCYOJu
p0I+Zt484H//1/vjzp/v0WEXXXQRgJ4S8+9+9zs8//zzfa77++abb3DrrbeO 6qWPHTuGe+65B+vX
r4dS+eOv4a1bt+K5554DAFx++eVYunRpn+fddtttWLp0KW666aYB1z4CwEcf fQSLxQIAmDVrVp/H
oqOjERMTg4aGBnz11Vc4evQoZs6cOSDBHC33+wMAjz76KN58880+i39OnDiB FStWjNjb8tVXX8Xu
3bvR3d2NxYsX45133kFeXt6A477++ms0NzdjSb8tI6dOnYrvvvsO33zzDb7+ +mtcfvnlUKlU4zo3
GoLUHciJSDrcLeVHfC98VHGxIISFeXfXmPPOE4Tubo9e3mq1Cueff764M8nM mTOFhx9+WHjssceE
3NxcQa1WC3K5XHj44YfFY7766qsB47h3jklPTxeWLFkiABCys7OFe+65R3jk kUeEefPmCTKZTAAg
hIeHC4cOHRowRkpKigBAiImJERYuXCjce++9Qn5+vvDQQw8Js2fPFl9/+vTp QlNT04DnP//88312
hImMjBSys7OF7OzsPtv49d455sCBA8O+P06nc8BrP/TQQ8Ljjz8uLFmyRAgN DRUACI8++uiIO8P8
93//t7glIwDh4osvFu68807h0UcfFX7yk58I2dnZAgDhscceG/DcDz/8sM+5 6XQ68dx+97vfDXsO
NDpMHImCGJOlH/G98GH//d/eSxoVCkH4v/8b1cufPHlSmDFjRp/ExP0RFRUl fPLJJ8IXX3zhUeKY
mZkpNDU1CYsXLx50vKysLOH06dODxpGXlycoFIpBn4d/b1N4ww03CCUlJYM+ 32q1Cs8884wQFRU1
4Llr164VjxtN4igIgmA2m/skj/0TuHf/f3v3z9LmFscB/NdyS8liRRH8A4pT ikYI7aSTUztE9AV0
yrvo0qVLX4JOhb6ADkoR7Ohkl4SkkKGDRUMRAv4JZFLkuUPaXC63vTm97cVI Ph94xvNwzjN9Oec5
v9+bN1mlUklqKVitVrOlpaUfrjGXy2VbW1vfHbu5uZlNT0//Y0y5XO67BtLd ybKvZe+BobO9vR0b
Gxs3PY2B4FsMuKdPI96///X3PH8e8erVTw+7vr6OnZ2dqNVqcXR0FBMTE1Es FmNtbS1GRkbi/Py8
d1GkWCzG6Ojo38Y3Go1otVqRy+V6x8gHBwext7cXx8fHMTc3F8vLy7GystKr Dfk97XY79vf3o9Fo
xMnJSVxcXMTk5GTMzs7G6upqLCws9F1LlmXRarWi2WxGp9OJiIj5+fnejeiz s7Oo1+sR0a3J+O0/
xn7v3N3djUqlEoeHhzE+Ph6FQiHW19djbGwsOp1O78LO4uLiv140urq6imq1 GvV6PWq1WlxeXsbM
zEzk8/kolUq92pA/cnp6Gs1mM9rtdmRZFlNTU5HP5/uugTSCIwwxYekvvsWA +/IlolSK+BrO/pNS
KeLt24j793/fvGDIuFUNwOCbmel2ennxIuKPn7zX+eBBxOvXEe/eCY3wiwRH AG6He/ciXr6M+PAh
olBIG/PkScTHjxHl8v87NxgSyvEAcLs8etQ9sv70qdvP+tvz+XPEwkK3cPjj x91H72P4rQRHAG6f
u3cjHj7sPs+e3fRsYGg4qgYAIIkdRxhyelUDkMqOIwAASew4wpDTq7pLr2qA /uw4AgCQRHAEACCJ
4AgAQBLBEQCAJIIjAABJBEcAAJIIjgAAJBEcAQBIogA4DDktBwFIZccRhlg+ n7/pKQwM3wKgvztZ
lmU3PQkAAAafHUcAAJIIjgAAJBEcAQBIIjgCAJBEcAQAIIngCABAEsERAIAk giMAAEkERwAAkgiO
AAAkERwBAEgiOAIAkERwBAAgieAIAECSPwGmYBPFsndUKgAAAABJRU5ErkJg gg==

--nextPart1756514.C1oVOEdYUt--
Re: [GMF + Hibernate] Multiple inheritance [message #127112 is a reply to message #127095] Fri, 11 July 2008 21:12 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Thomas,
It depends on the rest of your model but you can try to set a @ManyToOne with targetEntity equal to
AbstractBaseElement. You probably also need to set the @JoinColumn annotation. Your relational
schema is then less precise than the object model, that's the main drawback afaics.

The any mapping is used by Teneo if the ereference is to an EObject.

gr. Martin


Thomas Kenner wrote:
> Hi,
>
> I'm trying to perist the model shown in model.png (simplified):
> # "Dialplan" is the main element, that contains all other elements.
> # "DialPlanElement", "AbstractBaseElement", "InputPortElement", "OutputPortElement"
> and "FlowDialPlanElements" are all abstract classes.
> # "Flow" is a class for the connection of dialplan elements.
> # "Hangup" is a concrete class that represents a node in the graphical
> editor.
>
> After adapting the project according to [1], persisting the model and the
> diagram in the database for node elements ("Hangup") was no problem.
>
> But with the connection "Flow" I've got some troubles.
> The "FlowDialPlanElements" is handled as a "DialPlanElement" (for multiple
> inheritance one class had to be chosen as the "real" superclass). The
> problem now is, that "Flow" expects an "InputPortElement"
> respectively "OutputPortElement" and not an "DialPlanElement".
>
> I think any-mapping could be a solution, but I've no idea how to use it.
> Could someone please provide some hints?
>
> Thanks in advance,
> Thomas
>
>
> [1] http://www.elver.org/hibernate/gmftutorial/tutorial1.html


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [GMF + Hibernate] Multiple inheritance [message #127125 is a reply to message #127112] Mon, 14 July 2008 08:07 Go to previous message
Eclipse UserFriend
Originally posted by: thomas.kenner.reflex.at

Hi Martin!

Thanks a lot for your help!

Setting the @ManyToOne annotation with targetEntity to AbstractBaseElement
was the solution.

gr, Thomas

Martin Taal wrote:

> Hi Thomas,
> It depends on the rest of your model but you can try to set a @ManyToOne
> with targetEntity equal to AbstractBaseElement. You probably also need to
> set the @JoinColumn annotation. Your relational schema is then less
> precise than the object model, that's the main drawback afaics.
>
> The any mapping is used by Teneo if the ereference is to an EObject.
>
> gr. Martin
>
>
> Thomas Kenner wrote:
>> Hi,
>>
>> I'm trying to perist the model shown in model.png (simplified):
>> # "Dialplan" is the main element, that contains all other elements.
>> # "DialPlanElement", "AbstractBaseElement", "InputPortElement",
>> # "OutputPortElement"
>> and "FlowDialPlanElements" are all abstract classes.
>> # "Flow" is a class for the connection of dialplan elements.
>> # "Hangup" is a concrete class that represents a node in the graphical
>> editor.
>>
>> After adapting the project according to [1], persisting the model and the
>> diagram in the database for node elements ("Hangup") was no problem.
>>
>> But with the connection "Flow" I've got some troubles.
>> The "FlowDialPlanElements" is handled as a "DialPlanElement" (for
>> multiple inheritance one class had to be chosen as the "real"
>> superclass). The problem now is, that "Flow" expects an
>> "InputPortElement" respectively "OutputPortElement" and not an
>> "DialPlanElement".
>>
>> I think any-mapping could be a solution, but I've no idea how to use it.
>> Could someone please provide some hints?
>>
>> Thanks in advance,
>> Thomas
>>
>>
>> [1] http://www.elver.org/hibernate/gmftutorial/tutorial1.html
>
>
Re: [GMF + Hibernate] Multiple inheritance [message #620112 is a reply to message #127095] Fri, 11 July 2008 21:12 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Thomas,
It depends on the rest of your model but you can try to set a @ManyToOne with targetEntity equal to
AbstractBaseElement. You probably also need to set the @JoinColumn annotation. Your relational
schema is then less precise than the object model, that's the main drawback afaics.

The any mapping is used by Teneo if the ereference is to an EObject.

gr. Martin


Thomas Kenner wrote:
> Hi,
>
> I'm trying to perist the model shown in model.png (simplified):
> # "Dialplan" is the main element, that contains all other elements.
> # "DialPlanElement", "AbstractBaseElement", "InputPortElement", "OutputPortElement"
> and "FlowDialPlanElements" are all abstract classes.
> # "Flow" is a class for the connection of dialplan elements.
> # "Hangup" is a concrete class that represents a node in the graphical
> editor.
>
> After adapting the project according to [1], persisting the model and the
> diagram in the database for node elements ("Hangup") was no problem.
>
> But with the connection "Flow" I've got some troubles.
> The "FlowDialPlanElements" is handled as a "DialPlanElement" (for multiple
> inheritance one class had to be chosen as the "real" superclass). The
> problem now is, that "Flow" expects an "InputPortElement"
> respectively "OutputPortElement" and not an "DialPlanElement".
>
> I think any-mapping could be a solution, but I've no idea how to use it.
> Could someone please provide some hints?
>
> Thanks in advance,
> Thomas
>
>
> [1] http://www.elver.org/hibernate/gmftutorial/tutorial1.html


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: [GMF + Hibernate] Multiple inheritance [message #620113 is a reply to message #127112] Mon, 14 July 2008 08:07 Go to previous message
Thomas Kenner is currently offline Thomas KennerFriend
Messages: 4
Registered: July 2009
Junior Member
Hi Martin!

Thanks a lot for your help!

Setting the @ManyToOne annotation with targetEntity to AbstractBaseElement
was the solution.

gr, Thomas

Martin Taal wrote:

> Hi Thomas,
> It depends on the rest of your model but you can try to set a @ManyToOne
> with targetEntity equal to AbstractBaseElement. You probably also need to
> set the @JoinColumn annotation. Your relational schema is then less
> precise than the object model, that's the main drawback afaics.
>
> The any mapping is used by Teneo if the ereference is to an EObject.
>
> gr. Martin
>
>
> Thomas Kenner wrote:
>> Hi,
>>
>> I'm trying to perist the model shown in model.png (simplified):
>> # "Dialplan" is the main element, that contains all other elements.
>> # "DialPlanElement", "AbstractBaseElement", "InputPortElement",
>> # "OutputPortElement"
>> and "FlowDialPlanElements" are all abstract classes.
>> # "Flow" is a class for the connection of dialplan elements.
>> # "Hangup" is a concrete class that represents a node in the graphical
>> editor.
>>
>> After adapting the project according to [1], persisting the model and the
>> diagram in the database for node elements ("Hangup") was no problem.
>>
>> But with the connection "Flow" I've got some troubles.
>> The "FlowDialPlanElements" is handled as a "DialPlanElement" (for
>> multiple inheritance one class had to be chosen as the "real"
>> superclass). The problem now is, that "Flow" expects an
>> "InputPortElement" respectively "OutputPortElement" and not an
>> "DialPlanElement".
>>
>> I think any-mapping could be a solution, but I've no idea how to use it.
>> Could someone please provide some hints?
>>
>> Thanks in advance,
>> Thomas
>>
>>
>> [1] http://www.elver.org/hibernate/gmftutorial/tutorial1.html
>
>
Previous Topic:[GMF + Hibernate] Multiple inheritance
Next Topic:org.eclipse.emf.teneo.hibernate: invalid mapping
Goto Forum:
  


Current Time: Thu Apr 25 11:53:03 GMT 2024

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

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

Back to the top