Modified JBoss plugin which waits for successful deploy [message #200009] |
Wed, 19 September 2007 05:07  |
Eclipse User |
|
|
|
Originally posted by: wknauf_NO_._INSIDE_hg-online.de
This is a multi-part message in MIME format.
--------------020000060706050906030703
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi everybody,
I was a bit annoyed about the sleep timeouts in the WTP 2.0 JBoss plugin, so I
tried to modify it to use JBoss specific logic to wait for successful
deployment, no matter whether it takes 1 second or 2 minutes.
I modified the WTP internal JBoss plugin, attached are the modified files
(buildfiles/jboss323.xml and some pieces of code).
Maybe someone wants to take a look at it, comment about it and has improvement
suggestions.
Basically, I connect to the MBean server and use methods of the MainDeployer MBean:
InitialContext ctx = new InitialContext(props);
MBeanServerConnection server = (MBeanServerConnection)
ctx.lookup("jmx/invoker/RMIAdaptor");
ObjectName objName = new ObjectName("jboss.system:service=MainDeployer");
Object objIsDeployed = server.invoke(objName, "isDeployed",
new Object[] { strUrl },
new String[] { "java.lang.String" });
This is the first alpha, there is still a lot to do.
Known issues:
-fails sometimes for JAR and WAR files. EAR seem to work fine.
-undeploy task should first undeploy, then delete the file.
-works only for servers on localhost:8080
-fails on deploy during server startup.
-should have a maximum wait timeout if something fails.
Usage: extract the files to
" plugins\org.eclipse.jst.server.generic.jboss_1.5.102.v200706 08 "
I tested it against JBoss 4.2 on a windows machine, should work with 4.0, too.
5.0 Beta2 fails, probably because the MainDeployer is work in progress. It could
even work with WTP 1.5 ;-). The code is compiled with JDK 1.5.
Best regards
Wolfgang Knauf
--------------020000060706050906030703
Content-Type: application/x-zip-compressed;
name="buildfiles.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="buildfiles.zip"
UEsDBAoAAAAAAAmfMjcAAAAAAAAAAAAAAAAOAAAAYnVpbGRmaWxlcy9kZS9Q SwMECgAAAAAA
CZ8yNwAAAAAAAAAAAAAAABQAAABidWlsZGZpbGVzL2RlL2tuYXVmL1BLAwQK AAAAAAAJnzI3
AAAAAAAAAAAAAAAAHAAAAGJ1aWxkZmlsZXMvZGUva25hdWYvZWNsaXBzZS9Q SwMECgAAAAAA
Q7YyNwAAAAAAAAAAAAAAACoAAABidWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlw c2UvamJvc3Nk
ZXBsb3llci9QSwMEFAACAAgAc7MyN/0TLLy6AQAAJQMAAEEAAABidWlsZGZp bGVzL2RlL2tu
YXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9zc0RlcGxveWVyVXRpbC5j bGFzc5VS227T
QBA90yax65q2mPRCuRdok5Ri4JEgHgriAUXwUBpEparaxNt008WO1hskPoW/ gJdUAokP4KMQ
YzuiQIoE+zBn58zZmdnZ/fb981cA97HlYIpwL5LhcSyGh6HsajVIZdjvJGka yYFO3ksTPt9m
7+nY27VKOygRFvrinQi1iHvhy05fdi2h8kjFyj4mTNfqbULpSRJJD9OY8VFG hTDfUrF8MXzb
keaV6GhJCFpJV+i2MCrzx2TJHqmU8KD1v301CbM9aXN+12jCeq112uWONSru NeuTlIvzBAo9
XMCig+pvdyskPpawTPBSK4xNXyt7RFg8K/meg4uE5T8D20OlI2lcXCKUD5WW Dz2s4Eo2l6t/
ydTOFNd93MAaT1YMBjKOCFv/dKNxuWaW4paP21gnuDYpgoRq7cwh1LhO3lvI 6oPUmmeqeKMJ
LU9iJxmariwUSxMvcTc7wq3zV0C2pnjHX4Ctw17ISIzlxgncT3nYY1vJSRez bP1CwHiOcQZz
mB8f3ueUWWyzESyMEHxA9QtW3gSrJ7jcGOHaCDc/5sTGL8TPEnN5PwEnrGKV h3NaahN1NBiJ
d5n6zg9QSwMEFAACAAgAcrMyN8vPOIIaAQAAFAIAAEAAAABidWlsZGZpbGVz L2RlL2tuYXVm
L2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9zc0RlcGxveWVyVXRpbC5qYXZh fY5BS8QwEIXv
hf6HoafuCs3dZWFXxYN6UsoeJdtO2rixDckUFfG/O0na3hSSGZh5871nZXOR HUKL1WWQk6qw
Mdp6rN7Oo/ctWjN+odvlWZ6J7bYmbaAx0ntQowPqEaIOFmGewRZiOciJetac RqM6OXTwGPBh
Fb7IMzudjW5m2sMNU+5mSHDJs2/WAXveOpSE0SuqoH5+Wt29xUYrjS0obbAK 1pAShHaw0sl3
ePXk7nm9TB3S5AY4RpIn6Uhzvg9NPRQBcy2KJBWhzTlZR9xeyAVxhxTD1M6U 82hx2YSjGJ7j
i2PbrlCwDpX+rNJOKyiXmyqm8CeOUBai2MB+D+SmxFppAHPyBCzgajXdJcVP amg8/ncp/jrl
wu8XUEsDBBQAAgAIAAy1MjdNp33twwUAAI4KAAA/AAAAYnVpbGRmaWxlcy9k ZS9rbmF1Zi9l
Y2xpcHNlL2pib3NzZGVwbG95ZXIvVW5kZXBsb3lBbmRXYWl0LmNsYXNzlVbr cxNVFP/dJulu
QxDYlkeBYgoW2lI2gPJoyqstVIppQdKHaRHcJLfptpvddXdTUhXF9/v9QP2A fnH8gh9kxhTt
iDh+0xn54Dj+N+rZ3bSlNIC2M3vvPfeec8/5/c49J7/+/cN1ALtwSUAVg5zl sUldKYzFeEZT
TZvHJtKGbWe5qRnT3IoN6v60U88OK6ojIMiwckKZUmKaoudiJ9MTPOMwVB9Q ddU5xBBobhli
CHYbWR5GADURhFDNsCKh6ry/kE9za0BJa5xBShgZRRtSLNVdl4VBZ1y1GXYm /p9XHaSZV1Sd
YU3zaGLBu6RjqXquo6W3BqtQK0Ba5Hty2nZ4PoI6rCa/jQKFsdpXVo3YKdJ0 SJ8r+Q4Raxk2
3HZn9LxiR21HsRyeDaMeGwSsZ6itoB/BRjQwCKYr0sjJ1c0VfBwScD/D5oWN Xk3jOUXrtHKF
PNedY8UMNx3V0AU0Mqy93UBXQdWy3BKxhaH1WFHJONp01NB5VCnrR/MF24mm edQ2eUYdU3k2
2hiPhhFFk8tRgzvbFkEzWohNxTS5nmXY2NzbkrjDVR2uxvYI2rCDQXQMf5Oh rnmpCp3dhKYw
dmK3gF1E8D34PdFFq6Pl1aCjahE8iIcYluW44+0NWhrD1ko4LhUJ2EteeeIC mSJqDJNbjsrt
MPagRkQ7setuy7qSJwV5jNAzrGnZTWlV0URQfm0zrJw8oZskdLhFJ7gt93vH uw2SFJ0eX8k1
eTCCQzhM3trcKV82zbC/grd3999/XJR+ncREJQcLliabkzlbRDelhOehC+Pc MYKWiBdxjGHd
reqmZUypxKCrL+JhFxzdjMdimvsixw3bie/a2d4uoLeMSzHmK8Z6fUDKEYdx HI+4uZMg++Xg
PICPK/a44z5oymoR/fQqJ/LFmKpPGZPE7em+3s6sYlIAroFTETyK05RymmFM Fsx7k1oGRcAA
nfW9yyu6kuNuksf6uriiJ7k1xS3yUqeT3osZmo/klrO+JSKRi3iModHHzvaq QtwmG2qGH+yj
sjKXiGEMoqkGo3hcwBmGVQtOdRmGRhdHcBbnGEI9nYkkgV6bWHKCyFSIKreA UGDRMcOKFsp1
RZZlERmGsDqX+VkBfHHF8uAQkStLZVcq+9JlSEKNYAKTBKaPNYPqg3mHsCuk 3+hSpEf/Ex9h
goUqnQ6DIZL2gx1StAL3WsKIiCcZmOwWSjsCx62HIa8ehuD/UQ0t4ikB04sC HhinApqN4Gk8
Qwq2xjllSLD5hJtXz1LedppmVLXnIXRrWmMYF/GCgOfnirFnaL56RvCi149M vz4rmckBix4z
WaVCSa2ntkK4BKjtWF7JkSrtUiSGSbprEpWKDB0IZJwiQ0PiLo/Ju8TLW4YK pFXMa9IRjPSE
S+WC9cpMMyxPG1rvfGbRmjRvXUtLOWWo4sX5prgYR9oMJ42CleE9qtu5625r j7Krg0ZQ8B6/
VTSjXwL0FWgVo5HRGGqdgfittx2mb7UnDGMZfSP+ARqX01iD+7DCV2Y/Q6R/ 4K+rWCmtKWFd
6/XgF9g4i02pWURT0uYZPNB6vYStJZB5+afWwO5riCVmsSc1g319bdJ+KV7C geE26YjU5U+O
Sj3uZBbHU20zONG/Q+or4eQNJOPBWQympOEZpOKhqxiJV7uXPkGXfo1D9cH6 kJQO/ohAKrA9
SWM2FZDGkt9jPIS4UC/cwGi8ur66BO0zrHL1zBKsOhSu4bwn/fyfG670gmct nNhewnNVVwJX
KEwRv+F3ymMfFh0b6FtH0nUEw3psox8UMjXfvYTvYWymKrqFimgTRrAVHK0w sQMFwvgC9duL
2I13qHleovEy9aavsA/foB3fIY5Z2v8FB+mmI7iJLvyBbvyJHg/+MwQ5QYyX 8DKNMr7EK3iV
PNuLT/EaXifPRugZv4E3iV8OFW/hbQTp5rN027tEWwEpvIdzROllNOB9fEDU 3aTVh/jI4/5j
j/RP/gVQSwMEFAACAAgA8bQyN9ROONSmAwAAXAgAAD4AAABidWlsZGZpbGVz L2RlL2tuYXVm
L2VjbGlwc2UvamJvc3NkZXBsb3llci9VbmRlcGxveUFuZFdhaXQuamF2YZVW 32/iOBB+r9T/
YcpT6PWc9nGp0B1t6R53/SWgu3tarSoTpmBwbMt2Cqjq/35jJ0BoWWkvD0nw zHwz8/nzBMOz
OZ8gjJHNFS+eGWZSGIdsNtLOjdFIvUJ7fnhweCByo62HGX/hrPBCsgerDVov 0L23L1nOFcHm
qDy7vUCuBmhf0F5qpTDzQqvzn/vfj2bkc8dzfO+keC7UhBGKx6X/ibWnhBdc bp0OD0wxkiKD
THLn4FGVXXXU+CsX/vDgNbgApMfH4QHHGw/gEFkAbgzF81A3cDWGBcXBs7bg iixD51gVWD3+
NNzyHLiduHIlDY+qCOcJJwOhPORcqGTgLVX9/Ud0bwbH1xgEg5XzmDNdeGbI xUuVNN7VToW4
AGg9jhvN87IPAG9X5UuFBCCeIQn4TKKa+CkcteGsuTZuvChyavUCFC6gJyVO uOzYSRE2pbvM
0MT+k0Z3yTMvV6AVhqKjHfLCeRghOIOZeBY4hqMWNOA3qKUNFZZ53tYvZffU g320Etrw9wXx
fVWp7jGIbII+LpI9tvD99EeJs4ZI08/oqXLKHTUG2UZkra0PTL03rTRdiLko tc20ncSf6de4
5swfhiTY/ksvrnSPMPuYa4+duMNDfbuKOl4jbrUPhl4d1R5o2y4n226jA3Po K+sqqcTJene9
Ya9z83R5fzfsfhs+XXcuh/f9f0+gQcWxmTKMNh7tM6ca2F3UdxV6TXug7arx K1ke+zdPD/98
fnrod69737qDNXxkoTo1dOppG38J7qF//6V31e0/ES5BUZXEq9QZl1PtfOvs 9NOnmhgBdg8k
ZH5ZkbVrSGLGbQF7x8Z6j9uQ7LU3AzyTWs8LkzRm+TIV6kXP0ab9215nzA2R tlNcmu47ZyVs
KeAyI/O61GrSrIdvZxXo0Sw+y962BiojEu1inlaAExm2b+nwr4X+riK4nGI2 jwOmGsDjMII2
ar7QWlLvMNKytz4sY8pbrbPrzs2gW0Pc12EYH+HkhSRFNVUYYzUBLKZCIiQ7 SdioTPGFywKT
JrTbNGwK3DdKSgICKzs1VmyWu5JUnJGKxMapcVIjkObi63o6vJ1s0cMVvDbT 85WEGD5MkpOY
y9UGvNV5hQ98JRVhzd0qd2LC5PxfFOyQ8JH7pFHnOFzDqUU+Zk4imuTs9LRu ffs4MPfsZccY
EG6zjWH2HtUkVcXS9yubQrKd5LhsvvtM4LIEHXj6VzC0NHVqU8yiL6yC38/O d2DLe2U8jba3
kJlu/wFQSwMEFAACAAgADLUyN7pAKW3OBQAADQsAAEIAAABidWlsZGZpbGVz L2RlL2tuYXVm
L2VjbGlwc2UvamJvc3NkZXBsb3llci9VbmRlcGxveUlmUmVxdWlyZWQuY2xh c3OVVst7E1UU
/90m7UxDEDqlQKHFFCz0RYbybsrDFqgNpgUJLaTFxyS5TaedzAwzk5LiA99v RdGNCz93uoGF
fH6pWkU+P1f+F25c6taVemYmacGGh83X3HvPPefc8/idc/Lr39/fAtCLTwXU MPRmuTyrK4Up
mWc01bS5PJM2bDvLTc2Y55Y8pvvb+NQZfrGgWjwrIMiwdkaZU2RN0XPyqfQM zzgMdYdUXXWO
MAQ6OscZgseMLA8hgPowalHHsCah6ny0kE9z66yS1jiDlDAyijauWKp7LhOD zrRqM+xJ/G/D
+kk4r6g6w/qOycSygUnHUvVcf2e8Hg1oFCDdZX5y3nZ4Pox1aCLTjQJ50uQL q4Z8miQdkudK
vl/EBobWlc9GLil2hPzQeDaEZmwWsImhsYqGMFrQyiCYLkkjM5s6qlg5LuBR hq3LF3HSnFO0
AStXyHPdOVHMcNNRDV1AG8OG/yoYLKhallsitjF0nSgqGUebjxg6jyhl+Ui+ YDuRNI/YJs+o
Uyo50BaLhBBBu5uoVne3I4wOdFJKFdPkepahpSPembjHU/2uRHcYPdjJIDqG f8mwrmOlCPFu
QXsIu7BbQC/Drgck+eQgnY6XT2OOqoWxB3sZVuW4492NWRrD9mpxXEkSsJ+s 8sgFUkWpMUxu
OSq3Q9iHehF9DJvd66iu5EkgOkXRM6z5qItrVdFEEMJ2GFYuOqObRHS4RRzc jo567McMohSd
IV/IVXk4jCM4Stba3Ck/Ns9wsIq197ffrzAC4ABlopqBBUuLmrM5W8QxgoRn oRvGChuFlhIv
4gTDxjvFTcuYUymDrryIJ9zg6GZMljW3LKcN24n17urrExAvx6Uo+4Jy3A9I 2eMQhvGki50E
6S875wV4WLGnHbeqCdUiRqkuZ/JFWdXnjFnK7ZmR+EBWMckBV8HpMJ7CGYKc ZhizBfPBSS0H
RcBZ4vWtyyu6kuMuyOWRQa7oSW7NcYus1ImTKkYE9SXRp7qQD6DbxW7KRfsE w86HglEF9QIu
LIXljod9swgRXMQzDG1+ImyvycRselrN8MMj1KUqqA5hEu31UJARkGZoWH5v 0DA08iKMLKgv
1g4NJJKUwcbECg5CBtVbSK1UCrVo9e4e51kuYrZMjbrUqE9dhSSoNekwKPh+ bhhUPxT38KwK
XCdXZmbyofIXIs8vhmGBen447fszrmgF7s2RCREFmhyVpuuClv5EXKI8FspE EVRUDQOmGVHt
SIXIsyKepw5bJuuGE6lcRNpCeBFXBLxUadOePUt9NYyXvXFl+p1bycyetajM abhQCyUrG6s4
RqGzHctrRlK121oqNZNk1yeqtR9iCGScIk2XxH3KzHvEwy5DlfRURTzJCEZ6 xk3asvbqOWVY
nTa0+BKG6EySd56lldljqOHFpYF5dxzpMpQ0ClaGD6nuYN+wcnRGXTG0gfyH +1dDO/qtQN8C
nWRaGa21XQsQv/auQ/Rd5xEbsIq+wz4DratprccjWOML12yGSB+w9ptYK60v YWPXreAXaFnE
ltQiIilp6wIe67pVwvYSSH30p67A7m8hJxaxL7WAAyM90kEpVsKhcz3S49Kg vzkuDbmbRQyn
ehZwcnSnNFLCqdtIxoL0iKd1jLQ2B0s4V8J5UkzPLmIyJT29gGdjtTfxXKyu OdhcK00Ff0Qg
FehO0jqdCkgzye+g1SImNAu3oRBTXQnmZzjv2u6QEk9orrrQuYfS6Goqkqav 0ORuL3vbUKK7
hBdqrgeuU9BE1sxaqDD8IF+mOQ1sohBuoaDSLwJsRRTbsZ92R6ldDqOT+nU3 Jmjsc7q5QiP9
XZrNV7EXn9Po+5LWG8T9DQ7gB/ThF/TjNxzCnziMv2j9B0dYHc3GBppYLRhi rRhmbTjJtmHE
S+wFSiYlD6/gVTpF8Qdew+tk5X78jjfwJlk5gZ/xFt4m5HAs4B16PUj/1/Ae 3idAXMUH9OEE
lhsw8CGdBXqjDh/hYw9V1zw4ffIvUEsDBBQAAgAIAAu1Mjf42+Of3gMAADUK AABBAAAAYnVp
bGRmaWxlcy9kZS9rbmF1Zi9lY2xpcHNlL2pib3NzZGVwbG95ZXIvVW5kZXBs b3lJZlJlcXVp
cmVkLmphdmG1Vltv4joQfkfiP0x5Ct0e0z4uFdqlLd2Ts70J6O4erVaVCQOY OnaO7bSgqv/9
TJyEkF5W7cMihINn/M03Vyfh0S2fI0yR3SqezhhGUiQW2XKirZ1iIvUazWGz 0WyIONHGwZLf
cZY6IdmV0QkaJ9A+la9YzBXBxqgcOz9CrkZo7tAca6UwckKrw9f1LydL0rng MT5VUjwWas4I
xeHKvSINlXCCy0qp2ejs7jYbsAvXKncIuAKeJFJEPOMCYgbCgbBQ+DvdI40p 3HPanWkDNo0i
tHaWSkgLCM/Ug55otKC0W5DxDKkG7CWQGLQbff/zmaduQcjftZzNOR38mgV/ I+80G0k6IRiI
JLd2QzycDfG/VBicNhsPpAi5Z/BnfIOcTbZ8TrjhMXAzt/lOJ1sKjtaRqQiE chBzoYKRMxSL
n7+8ejtT9FwBRmvrMGY6dSwhFSdV0HruGnGzEHEpcdpq+/xlZ51Z5w8FFmSe BZkFJlHN3QJ2
enDQLoUbLTq5MPoeFN5DSJhzLvtmnmY+DlYRJj5IQWuw4pGTa9AKM9peDnFq HUwQbIKRmAmi
ttOFFnyALbMZw9zOY/mQ+09hMddGQg/+OaJWOila6TrrnDk6v0ly78LP/V8V Trl2Ol/QEXuy
75sHok33dCsdWDiXdDude3Er8qZl2sz93853v2eTTwn1Vu9vfX+iQ8IcYqwd 9n3ex/p87Ru0
RKyamspWJ5b4Z6GrtoOKqVdgFl0hXQdF17HwIhyH/bOb48uL8eDH+Oa0fzy+ HP67By0ix5Yq
YZR+NDNOHNiFb9zi6CnlQZt16y1WrodnN1dfv9xcDQen4Y/BqIT3USjGAY0z SuWb4K6Gl9/C
k8HwhnAJilhSXKWmUlxo67oH+x8/bhUkQH3SQORWRbDqgsBbrAi8OA/LHPcg eFHezuCZ1Po2
TYLWMl51hLrTt2g6w/OwP+UJBa1G7qVey0HzEs7tMafzag3a24erEQx6svRr 7lklIBI+zNbb
6WZwIsLeOQ2AstRrfKhSQz8c67OIylttBg8rlY+0lhQEmGgZlp0zJQrFPjvt n40Gh3W2GdOa
cuFhHqeg8IPyKjZKrb0tp2hePZQ9+7hXjQ/wOpuZ9kCFkd2AkqY2y3db8Fhl 9ynloODcrvM7
3J5itTNskh/4xmWKQRt6PZp9Kb402X43T7Pap89W4fsclOJutftanMqs/CZK 7wsN/LkUwXuZ
vDdNLwe7n5dzGaniwnpyHaC0+KbkwQYwe2koIWHnOWix0BUfLSCo7jFctZ9c krjK0UeOXvTG
huZt8PymMehSo+Cvg8MafP5bCPe9jCT0/R9QSwMEFAACAAgAWLUyN+YP28FS BgAAgwsAAD0A
AABidWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9X YWl0Rm9yRGVw
bG95LmNsYXNzlVZJcBRVGP5eMkl3hkagwxYgMkEDSQgzgKwTFhNITGASlslC iIo9My+TTnq6
2+6ekLgggvuC+wIouCEXPMhhgqZAqiwPWhZHL148erRKDpZFqX93D4GYATRV mdfvvX/9/u//
u3/46+tLAFbhcwFFDPUpHhnSlWx/hCc11bR5ZDBh2HaKm5oxyq1Ij6I6LYa1 3dsLCDDMHFSG
lYim6OnIrsQgTzoMpZtUXXW2MBTX1HYzBLYZKR5EMcoklKCUYUZM1XlHNpPg VqeS0DiDHDOS
itatWKq7zx8GnAHVZgjH/k9MDaSXUVSdYW5NX+xGbHHHUvV0Q21bGWahXIA8 KfL4qO3wjITZ
mENRG1lKYo6vrBqR3aTpkD5XMg0i5jEsmuQxdFCxQ7ajWA5PhcPhICqwUMAC hvICBiQsQiWD
YLpHGkU5p6ZAkN0CFjMsuXHRpmk8rWiNVjqb4brTPJLkpqMauoAqhnn/NtCU VbUUt0Tcw1DX
PKIkHW00ZOg8pOT1Q5ms7YQSPGSbPKn2qzwVqoqGggih2i1Rpfu0TEINaqmY imlyPUVZ17TV
xm7hqsHVWC6hHisYRMfwLxlm10xVIdm7UR3ESqwWsIph5R3Ku6OJdtvzuy5H 1STchzUM09Lc
8e66LI1haSEcpx4JWEdRecdZMkWlMUxuOSq3g1iLMhEbGRa612FdyZBCuJ/Q M6zRsMtoVdFE
EMGWGVY6PKibdOhwiyS4He7wxLcZdDLitPhKrsnNErZgK0VrcyfvbJRhQ4Fo bx+/31vEv0aq
RKEAs5YWNofStohtRAkvQhfG62IELRVeRDPD/JvVTcsYVqmCrr6IB1xwdDMa iWhuQw4YthNd
tXLjRgFteVxGIr5ipM0HJJ9xEK3Y6XInRvbzyXkAtyr2gOP2M7FaRAe15WBm JKLqw8YQ1XZv
e1tjSjEpAdfAbgl7sJcopxnGUNa8c1HzoAjoJFk/uoyiK2nukjzS3sQVPc6t YW5RlDpJeh3T
PZHJTbK+JSoiF7GPocrHzvbGQtQmG2qSb26nuXKdiEF0oboMfXhIwIMMs24E 1WQYGjmW8DAO
MJS0NMbiBHp5bIoEFVOhAeAOE0os1G9YIZ/0NEVEJBmC6nXepwTwyQPLA0NE On8adk/D/uk0
xKFKGMQQQekjzaD6UN4i6QLk65uKc99/qkaQQKE5p8NgkBJ+qt2KluXe+2C/ iEcZFiQHeHKo
TU8aGVPjDvfTdIMi/tLMZ94YzUoYdqdliTctS+D/pYJ4DE8IeHwSIJ0DNF5T Ep7EIVKwNc6J
P4GaHbXd7sA/LOFpb7Rzi8biUUK92bIIb1XPQ+5NxaognsXzAp5jWFyYTROD V8IL3pvM9Ee7
khzqtGgOuIR4ScLLbuUDnXu7mkW8SuRoNM2QaudducM2iNdcR69ff0l4KUwY J12a1ARDeQHE
qaa2Y3kzTy50S2AZJunOjRWaciRQnHRGGCpjt+lmz4nXOAwFeFOwsUhHMBKD LptuWC9MNobp
CUNrmyA37Unz5r08lVZkPuOXgNozdofykHQRH5l4iU+Gly6DcSNrJXmL6n18 THqdh10NVIGA
8uhWRE/01UK/Au0itDJaS+rGIH7pXQfpt9Q7nIlp9Cv5ArROp7UMd2GGr1wk QaQ9cO08Zspz
c5hfdylwGovGcXfvOEK98pIx3Ft3KYelOZD58Dd1xasvIBIbx9reMaxvr5c3 yNEcNvXUy/fL
Tf7DdrnFfRhHa2/9GHZ0rJDbc9h1GfFoYBxdvXLPGHqjJeexP1rqOn2EnJ5F siJQUSInAhdR
3Fu8PE5rqrdY7o9/hYESRIUK4TL6oqUVpTloJ7DOEzYZ8257XCtWDs5sHLyA 0bOYFxXP4yn5
CBmuEHN45jxezKse//ukK/yK5zIYW57DsaJzxecIsS/wPX6kVhPxG36nTvAx PEKfEKCuF1FJ
mC3GMipCGNVYh6XYSrtW+h7Zgzrsxwpw+nowsRpZrKGOX4vDWI9j2ID3aD2F KM5gE3lpxDia
8S1ayFsrrmAnfkIMP6Mdv5DOr9hL3rtwFT34A/vwJ1l269fvRXMNb+BNWsP4 Dm/hbargOlzE
O3iXot2P4+TpfSIIJ6/HcQIBiuYoTuIDqnsWh/AhDhAnTqGJ/k9T7a9Axkf4 mHK7Suef4FOP
Rp95/DnzD1BLAwQUAAIACAAYtjI3mUSqwRkFAADsDAAAPAAAAGJ1aWxkZmls ZXMvZGUva25h
dWYvZWNsaXBzZS9qYm9zc2RlcGxveWVyL1dhaXRGb3JEZXBsb3kuamF2YZVW bU/jOBD+jsR/
GPIp5VgHPm5Rb69Ly153gaJS9kWrFXLTaevixJHjUCrEf7+xkzRJoeweQk1i j5+ZeebFk/Dw
ns8RpsjuY57NGIZSJCmy5USl6RQTqdaoT/f3RJQobWDJHzjLjJDsWqsEtRGY 0m5j/5FFPCbQ
CGPDLj8ij/uPISZGqPj0N4I3qB9Qn6k4xvA38sPJkmSueITbQjGPRDxnhGLw 0ezYHcTCCC4r
of294PBwfw8O4RsXBmZKQ+6+1QZqBhw+fyROgCeJFCG35jEn737+4ZlZ0Jlv Ss7mPJ7DF0vn
Zj/Y30uyCZ2DUHICsTrOle45Dft7T1Y/AFlwyUUMERLWlDmpFLKY+AYeW80g 0sIsnFrtYFUn
XPMIuJ6n0H/koZFrUDFCqCLiawpS0AftZtaTI4iy1MAEwSwQMi3JtQLHLpTY MBMSCwWBfRTW
p4YcD0EQJRFZ6t8YTWz+/OW0t6zgkzsEN+vUYMRUZlhCIkbGvtdwGlY8tXDa kCeMea3TnAMA
o9f5SwEFIGbgWwVMYjw3CzjowEmr3NxI0cmFViuIcQUDKXHOZbfwepOA4Ht1 ikpWNqSkCYZi
JoiAgzZ48BfU1FoLcz3P5UvuPrmhb4nJTp4hvaJqbm2ZzNG4Rdp3Lvw8/lXh lM8g+ITG8Z+6
AqDQlRXQrmRgYUzSDoKVuBd5fTKl5+4z+ObW0uRDQvXR+VetempAmCOMlMFu GGKajtXl2hVZ
iVhVMCT0mpL9lrpq2a8sdQIsRVPsrv2ictjgajAedC/uzoZX4/738d1592w8 HP04Ao+MY8s4
YRR91DNONrArV3zF0XOKg9Jr70+03I4u7q6/fLq7HvXPB9/7NyW8Y6Eoaepc FMo/grseDb8O
ev3RHeESFFlJvEoVcrlQqWmfHL9/X0tIgGa3gNA8FmQ1N3ynsXVqg3WuVQTL eCpYsiG0Ge88
1rUAj4e9YRsWVLMSATcpS/9FWrhyyRI4KM+82jRL6Q74r+63rP1MKnWfJb63 jB4DET+oe9TB
6HLQnfKEolJjMQheq+UcNK+RXB8zKi8Hv1WnrurToCZL98ypqzbICBfH1Olp WzgRYse2wrKW
GtH4qJQkv2Ci5KCstimhFuvsvHtx039RZLs6ki3gqtuXrSg/s1pQGwS/oYhN cjVfuczQb0Gn
AzMuU3ytIeU+WscbhhaE5bT7BS2Uh2Ij5B3VOKL2+lT2mOejCt3+WalNE36i VLYXtKQLiOWr
HjzXqYMXpPkFa62mlY0ztv/+Pw4aLNgcOltgeO947lW3KmqtdNquS26a/yso sJO40KIPYrrx
EokGKxWpJTKTMv+tArs7temG2I0GUzGFWNF4wIX0tuG2wQezNy2DqaLWW6Id wQqp9h/oYlZ0
N9IIwmlrQXVsMh2zJva22b7HXlgzXmjkU5ZKxMQ/OT5u7j/XP2iaCRdFt6iu yij/bL0RjyDY
jibNLjxO6S7j+YW2NbNUravhCB2t8d93QDQH1Qawg9+ynXdPsvtzd+TGl9rx I7uuMV8gu8ii
qr+miFFqWV+QsRhv4+Y9ID+6onAIO7YIKSEkfk05hr1I9dr9VNnBKroG8Ux5 8O5v8OxMhW04
G/W74/5dr399MfzRH3nwoQlchCPn6cbQ4D7WdKn627zs6orj0W1/Vwo8v5hs Sj6nYjZD7Ubg
zCSZsUS6QLO3+mp3O+re9tBTKCoyr0o6LPNtk2n4lssabXXAu5PTBmyxfOxW n20ro5//AFBL
AwQUAAIACAAltTI3j8ksSDsCAAAQEAAAFwAAAGJ1aWxkZmlsZXMvamJvc3Mz MjMueG1s7VZN
j9sgED0nv4JaOUUKtJV6adlIlVaVel2p6pnY411YAi7gZNMo/72DjfcjzWab L1Xtxidshjcz
7/EMvHJWQR6IEVO4yAqotF3AXQDjpTUZIQWUotahm6LqPQCdwwSnJsJDId1F RrNxv8cRqQIX
FgmqErUH2q7KyEzoGj++e5uxZ2Nrsxb9IQZjdBDuGp6W+FAHwvW4Eg4r9aGU GkMGy9QVnVt3
K801xTJXbLCc2qLWQCPQis6Fy8YEV/f4T1nFlR6TNA3dR8Z1MQNJT49Lk+u6 gFTMcMiGdNj0
FHHg7rfJmKWd5uwhTVM0w6qbwZvR6FvqnciSOPhRSwfFRzIape5mguRaeN9R QG+NqEsKuZYV
Mqcm1vuknaMd1tfyKiFl7epKhBtU69Ng6cHNwF1ZGy5xPg/WLVYMwcAE1oAJ rUftO8UqM6yC
kFJIbQ04Z5Gi4GpouEdWOOrTadZh06qeaOlvnqWedRzMRBz1kdwen9oZkF1F JMEm1TakTnmQ
Yu41QEU85NYUvknwaIvGwMR3iv8uZCCljRsrBkyRi30ViVBfrLtM2/ukYhxD Dc5ay+Fwm/1A
HWA/dVz7dREbTRjbesmFr9KI6mhGVGcjHmxEtc2IW2wYnbSvDeFsw79vQzia DeEENnxVHtwk
xbbzsLu0rl1IC9AQHqT7w1P4aSOl0B47IZy1aC8J15Wy9gfd0y2fTRGV+rdu K9u0ub+t7K6N
OoU2/5swam9huvNrd2HgLMyhvzQc9zlLZ8v4F1BLAwQKAAAAAAB5qzI3AAAA AAAAAAAAAAAA
CwAAAGJ1aWxkZmlsZXMvUEsBAhQACgAAAAAACZ8yNwAAAAAAAAAAAAAAAA4A AAAAAAAAAAAQ
AAAAAAAAAGJ1aWxkZmlsZXMvZGUvUEsBAhQACgAAAAAACZ8yNwAAAAAAAAAA AAAAABQAAAAA
AAAAAAAQAAAALAAAAGJ1aWxkZmlsZXMvZGUva25hdWYvUEsBAhQACgAAAAAA CZ8yNwAAAAAA
AAAAAAAAABwAAAAAAAAAAAAQAAAAXgAAAGJ1aWxkZmlsZXMvZGUva25hdWYv ZWNsaXBzZS9Q
SwECFAAKAAAAAABDtjI3AAAAAAAAAAAAAAAAKgAAAAAAAAAAABAAAACYAAAA YnVpbGRmaWxl
cy9kZS9rbmF1Zi9lY2xpcHNlL2pib3NzZGVwbG95ZXIvUEsBAhQAFAACAAgA c7MyN/0TLLy6
AQAAJQMAAEEAAAAAAAAAAAAgAAAA4AAAAGJ1aWxkZmlsZXMvZGUva25hdWYv ZWNsaXBzZS9q
Ym9zc2RlcGxveWVyL0pCb3NzRGVwbG95ZXJVdGlsLmNsYXNzUEsBAhQAFAAC AAgAcrMyN8vP
OIIaAQAAFAIAAEAAAAAAAAAAAQAgAAAA+QIAAGJ1aWxkZmlsZXMvZGUva25h dWYvZWNsaXBz
ZS9qYm9zc2RlcGxveWVyL0pCb3NzRGVwbG95ZXJVdGlsLmphdmFQSwECFAAU AAIACAAMtTI3
Tad97cMFAACOCgAAPwAAAAAAAAAAACAAAABxBAAAYnVpbGRmaWxlcy9kZS9r bmF1Zi9lY2xp
cHNlL2pib3NzZGVwbG95ZXIvVW5kZXBsb3lBbmRXYWl0LmNsYXNzUEsBAhQA FAACAAgA8bQy
N9ROONSmAwAAXAgAAD4AAAAAAAAAAQAgAAAAkQoAAGJ1aWxkZmlsZXMvZGUv a25hdWYvZWNs
aXBzZS9qYm9zc2RlcGxveWVyL1VuZGVwbG95QW5kV2FpdC5qYXZhUEsBAhQA FAACAAgADLUy
N7pAKW3OBQAADQsAAEIAAAAAAAAAAAAgAAAAkw4AAGJ1aWxkZmlsZXMvZGUv a25hdWYvZWNs
aXBzZS9qYm9zc2RlcGxveWVyL1VuZGVwbG95SWZSZXF1aXJlZC5jbGFzc1BL AQIUABQAAgAI
AAu1Mjf42+Of3gMAADUKAABBAAAAAAAAAAEAIAAAAMEUAABidWlsZGZpbGVz L2RlL2tuYXVm
L2VjbGlwc2UvamJvc3NkZXBsb3llci9VbmRlcGxveUlmUmVxdWlyZWQuamF2 YVBLAQIUABQA
AgAIAFi1MjfmD9vBUgYAAIMLAAA9AAAAAAAAAAAAIAAAAP4YAABidWlsZGZp bGVzL2RlL2tu
YXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9XYWl0Rm9yRGVwbG95LmNsYXNz UEsBAhQAFAAC
AAgAGLYyN5lEqsEZBQAA7AwAADwAAAAAAAAAAQAgAAAAqx8AAGJ1aWxkZmls ZXMvZGUva25h
dWYvZWNsaXBzZS9qYm9zc2RlcGxveWVyL1dhaXRGb3JEZXBsb3kuamF2YVBL AQIUABQAAgAI
ACW1MjePySxIOwIAABAQAAAXAAAAAAAAAAEAIAAAAB4lAABidWlsZGZpbGVz L2pib3NzMzIz
LnhtbFBLAQIUAAoAAAAAAHmrMjcAAAAAAAAAAAAAAAALAAAAAAAAAAAAEAAA AI4nAABidWls
ZGZpbGVzL1BLBQYAAAAADgAOAAgFAAC3JwAAAAA=
--------------020000060706050906030703--
|
|
|
Re: Modified JBoss plugin which waits for successful deploy [message #200386 is a reply to message #200009] |
Mon, 24 September 2007 10:06   |
Eclipse User |
|
|
|
Originally posted by: wknauf_NO_._INSIDE_hg-online.de
This is a multi-part message in MIME format.
--------------090809070104000304080609
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hello again !
A bit more work, and in the new version this has changed:
-undeploy ant task first calls MainDeployer.undeploy, then the file is deleted.
-detection of failed deployments seems to work now for all scenarios.
-a wait timeout is implemented.
Still to be done:
-on server startup, wait until it comes up.
-host needs to be configured. Does anybody have an idea whether this information
is available in jboss323.xml ?
Best regards
Wolfgang
Wolfgang Knauf wrote:
> Hi everybody,
>
> I was a bit annoyed about the sleep timeouts in the WTP 2.0 JBoss
> plugin, so I tried to modify it to use JBoss specific logic to wait for
> successful deployment, no matter whether it takes 1 second or 2 minutes.
>
> I modified the WTP internal JBoss plugin, attached are the modified
> files (buildfiles/jboss323.xml and some pieces of code).
>
> Maybe someone wants to take a look at it, comment about it and has
> improvement suggestions.
>
> Basically, I connect to the MBean server and use methods of the
> MainDeployer MBean:
> InitialContext ctx = new InitialContext(props);
> MBeanServerConnection server = (MBeanServerConnection)
> ctx.lookup("jmx/invoker/RMIAdaptor");
>
> ObjectName objName = new
> ObjectName("jboss.system:service=MainDeployer");
>
> Object objIsDeployed = server.invoke(objName, "isDeployed",
> new Object[] { strUrl },
> new String[] { "java.lang.String" });
>
> This is the first alpha, there is still a lot to do.
> Known issues:
> -fails sometimes for JAR and WAR files. EAR seem to work fine.
> -undeploy task should first undeploy, then delete the file.
> -works only for servers on localhost:8080
> -fails on deploy during server startup.
> -should have a maximum wait timeout if something fails.
>
> Usage: extract the files to
> " plugins\org.eclipse.jst.server.generic.jboss_1.5.102.v200706 08 "
>
> I tested it against JBoss 4.2 on a windows machine, should work with
> 4.0, too. 5.0 Beta2 fails, probably because the MainDeployer is work in
> progress. It could even work with WTP 1.5 ;-). The code is compiled with
> JDK 1.5.
>
> Best regards
>
> Wolfgang Knauf
--------------090809070104000304080609
Content-Type: application/x-zip-compressed;
name="buildfiles.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="buildfiles.zip"
UEsDBAoAAAAAAJx0NzcAAAAAAAAAAAAAAAAOAAAAYnVpbGRmaWxlcy9kZS9Q SwMECgAAAAAA
nHQ3NwAAAAAAAAAAAAAAABQAAABidWlsZGZpbGVzL2RlL2tuYXVmL1BLAwQK AAAAAACcdDc3
AAAAAAAAAAAAAAAAHAAAAGJ1aWxkZmlsZXMvZGUva25hdWYvZWNsaXBzZS9Q SwMECgAAAAAA
vHw3NwAAAAAAAAAAAAAAACoAAABidWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlw c2UvamJvc3Nk
ZXBsb3llci9QSwMEFAACAAgArXs3N5t1xRBeCQAAhREAADsAAABidWlsZGZp bGVzL2RlL2tu
YXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9zc0RlcGxveS5jbGFzc41X a3gU1Rl+z+Qy
m80QwkLAVaATIJAL7AoK6kaoBBIMXQJlQ3wCgk52T5JJdmeWmVlI8FIr9kJr qa2iEqkItsW2
1EqqGy4GKG2x0Ku21ZZerbXVPu0PH5/+srfvzO7mQgJNfuyZc77L+c77XXPx PydPA1iMv8mQ
GKpjPNhtaKn2II/G9aTNg11tpm3HeDJu9nIruLaOdqvdnYx8htIubYcWjGtG R3B9WxePOgyF
t+qG7qxgyKusamHIX2XGuBd5KFJQgEKGyWHd4E2pRBu3mrW2OGfwhc2oFm/R LF3ss4f5Tqdu
MywMT9yiWpJKaLrBML1yS3jYsohj6UZHbVVjEaZgqgzfKLsjvbbDEwqmoYxs NlP0hLKMsG4G
N5CkQ/JcS9R6MINh5h2a7jSYVuZGdadmq7ajWQ6PBQIBL/y4Tsa1DFPHUaBg JmYxyElxFCcr
yyrHMbJFxocY5gwTGuNx3qHFV1odqQQ3nPqeKE86umnIKGeYcbmCupQej3HL g7kM4foeLerE
e1Vnp6lqWXk1kbIdtY2rdpJH9Xadx9TKTRvDC9WE1kPP0R3V0ROcYFB1Q7V5 1DRidlV5SPVC
RYVw4SzxtUBBJarI2VoyyY0Y4VLZWBW+gjG1QqJGwUIsYvA4ZobIMK1yrAjx zkaFF9djiYzF
DNdP3P3c2uTocQU34EaG4g7uuLRNVpxh/nhIj3f3Mtws4yaGKSPwNxzewS0F tyBE5ic1y+Z0
dgX3NXpwK4VXxiI6Udv1OFcXCARWCMw+zLBoQsbksPNgJYOyYGHOLSHVg1UM RTnfBARW9Qoa
sIbB264bsQi3dnCLYfm4SeAe9QQTmqF1cBEQwXV1XDMyQqtMw6AkpuiqldHI cN0Y5kyWN2kJ
7sFHGMpdbwRsN4dCNinRo3z5OkrCnE+8uB0VRWjCBhnrRwFbZ5pxulnBR7GR oaBhZThST5kT
HsNBGDQzzBKZ5yJqWmpGuxvPtm5EOYFCtaZ4CJRAoACZv5gXm3GnjC2jkr65 kzIypmArttHV
dpzzJBWPyrVVLR7cTTjquZiKyWgbXS5cHD2IZU8D4jSQOS1GOzplUGjPnxjK CnR0URbpxg6z
m4qeXhm+CuK1Y9050sMZxtotV4+uLJcMSgvFPTa4E6QK4EU3KjwwGSZR7gwD 7MH2LGeAOAPE
KYMK81zT6sjkYjA2xBscFms02k0PUpQxEUdzUnZILYKFnQp60Esvtt1DUfvH WOvBPVQlhRTP
CN2n4H58TPhJnBG44f9ztyvrVp2Pi5x78LKcy0Jw5ZwrwkP4pIxPMMybyE0K PiXMK2xY2Riu
Xy163R4Fn8Fn6YhvT2lx+7Jakbt/s0iLzynYK+I/v3njpnoPHiHAcqHnhYY9 wpZHFTwmbpAj
zSs3NtevFn3scQVPuB2LW1Tt91Pwj8gJgdpTCg7gS8SQEhWwJDzS17XC2TUe PMNQo3ZSD2vX
qEzF1HJ1VSePdqu2G6dq3MxkW4w7RLcDQu1hBc/iy6TQTrUN32iLvu7ekKIa HIxwp7YYX8Vz
Mo5QPI0iKPgavk6v1B1uaY5piW5dNUK2MXtOCo7ieRnfpCAZS1XwLbxAqBm8 x7m8k2Tx9aCf
rIqMNFO0MUs8/CV6AFGGfaqK2wYUHMcJwpkgaXIV0wyz2UteOqXgZUFR2jIl qUWLp6gCnma4
Jq7bFOxRM5GMc4fHe4cLx1kybNjyVSY1cjfri3EGzwkP7PHgeww3jHCcKPIx lcp84Oqe8OA8
w+IRghNzoAc/ILhHFs9UNMp5TEh6cRE/kvHD3PDiQjk0bSj4sTu8JTPzjBbt bra0qJjTaLAg
708dp+y4aW65DbiEpET9bs40MQbWKKjZTlU50aZErjHbukQtpH5w1VJJUddm xhuHyjh1TNo3
uCjR7ZupemdNEv3d2uFm6SRSPlLENzao6CmxUTWOoSI8gVIowDCzE/KU0Roo DskpUQqP4TAa
tmF6eLwQInXThLFDAhvIIwQDxeNo5cMchB1VgmaeoE4n8Z6hKXe0n0mxN2Km rChv0MUYXjpi
wAoIfpSD0sJtrRJ90UhPvzLtgrQyWguqB+A55pK99FvoHk5FMf0qGQZaJ9Fa hBJMzgjnvw8P
Sknkn/0o9U1P45rq0wUHMfMUZreegtrqmzOAedWn05ifBqkPnKnOW3IcwXB1 Pi1Ll5OQy1VL
XDVpLPfdRj8zidtXRx8kIhQex+qmU7i91bd2AOFQfj/WhQrylhXmLZOPSDeX yU+jukwu9Sb7
MCenLkLqxFlcaNo0pOkhmU3DHcfRusif77srfxB5rXk1EVq11jxfNHICvAAh j99zFk2hglPo
bq0ZQCJUJLiNDLe/KMeezLCfhRXy+r3n2Yzc3Q7d7fe+iB1D1+You7KUe9N4 IENxd/3Yncan
96OkHw+HCvKXFR7BRVfBeZxzV9/n0/jCfrzk0rMiXySRPlT2Y5+r+sms6r40 nhYwHhy6nPQJ
wqFQsb/4BL7CEJp0BHf7J53AN+hb8SviBSU5E48JPSVpfHtI3l8y3n0vunxX uo+Upxn6/nvA
X5DGyT486ve+gr0CxkHGsrCdEQadR4+w6jsZq9out2rIBZPdu/yT0zi3H7VZ kzKoLRoFwbgm
5XAdsqsva5fixsjMQ/8ezHw8I3xQ6vsuyRxBRVmh65N9vu+7+zJBesX99IYp Vi9IR/OOUhJ4
pHelv1MFdpOGzcYaShCVkmIeJcl8+LAAc2ldgCoEUI2lqEErfW2j2V/HEhh0 sp3+eXHon5Sd
WEEjw23UpeuoA6+mttaAE6TvHK0X0IifUTu7hPV4BxvwHq0f4E7Kym3sWtzF boTG6tDO1qCT
raPJtI2mxA4kWQoWe5imvsdofQIO66MZ7hB2sTTuZYO4j72BB9jbNGf9C7ul fDwo0ewkebFL
moZHpHLsk5bgcekmPCmF0SdF8JS0FQekLhyUenBI6sNh6SCelQ4T/ShukQZx VDqP56VX8YL0
OvqlN5EmZE5K/8DL0nsYlN6n7imKyVkqKlQw8BP8lHYB6TS9rJeQXCoN4FW8 Rkhuk/bi5/gF
VStd2o1f4nXkw5DuxxvYSEVou3QPfoVfU4FyyI5LJCHjAnsLv8FvCfdL7DUx PlGR+oAdw+/w
e3jpxbaYfVBM727GH4hPodevwx+JWkJv3IU38ScU0ytb8Jag0lvX488udSvq 8Tbpm0zvKMRf
8Fe3Wr7jlsl3/wdQSwMEFAACAAgAp3s3N0d1wVqVCAAADB0AADoAAABidWls ZGZpbGVzL2Rl
L2tuYXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9zc0RlcGxveS5qYXZh pVltb9s4Ev4e
IP9hIuB27dZR0vvoXO6aNO4ivW5TxMkFh8XiQMu0rYYStaQUJwjy32+GpCxS kvOyG7SxLA7n
fZ4ZMgVLbtmSw5zHtzmrFjFPRFpoHv+YSa3nvBDygauj3Z3dnTQrpCrhB7tj cc7L+Pry61H4
tipTEX+SQvCkTGXetzrlZZvZfZyxHHXIeF7Gv55ylk+5uuPqk8zzPkYB/cXs B9J8Yxn32Uq1
tAbE1gJDerZ5PM8X8ui1xNOSlZb5wbt3uzvwDm5YWsJCKmjoQS6AwZdT5AKs KESaMFI8NvTm
10dWlSvccyPFYsnyJfyb3L1ZP9jdKaoZ7oNEMGRiWFkldnceSTqAlQ+441eW 5pBxZDiPjToa
qhzdCywn8ZBqpxufx26L+/hYMMUyYGqp3ZvNzyeZoWPnINKcx7BIlS6JriL7 xlCuOFRKkKH0
WLNHOoHUmicyn7c5NrvX5LIyzbisrOt0lSRc60UlHCun5wF9OE9o9Dx+pOje DA0eTEuV5svf
fjfaD4nw0WyCg4Ori7OLMZxNTq9/2f9OFvKSK7s4fdAlz2IUHBe4vxT5ICKX fZbK+heV0yRL
leitOI6GR9bdAKV6sA9ODkC6gAFJjwXPl+UK9o7h78N6cUOFO1dKriHnazjH algyceJcMblP
eEGpMWiI6Sea3LOkFA9QruXGb5BVGIMZB13wJF2k6O4BVt0I3XEfuhTTwYZA D/fGEMF78LQk
g6yUp/rBuhKtVtcY02M/3bi6pkJd8tK8xHVj8W+Hvzd8KCT4n9x45TQ4hvO8 5EuuYswwzfGL
3fbB29YXCiuUlKFMgp9Jd6fWe4h+HtUmWqtaQpGittuPG2UE/MJLk6nagAkk GzQZ10S9WFPT
9/lkkeZzS29s8wU2OARy9sN8Hpv4NwuDyKKMNl4Yk5w04cdUy7WUwIZTKQUq CDMpzms95sjV
vY8/n3ydTkKbz9I5NMgFC4aQ8K96fdbw+4wLhteCCc37wkrBVHe4ikSHR56I Dfh1KtiItDDk
vUAoQreleoXypPIYsU3yrrD+uGDYdRxa4c96RdkwCGyPnQX/YaLigyEcO/3h p59g0NH7AD4c
DuEfrZTpK1ZUxqQjqoQRI/gDzpKVy6wRaImJxEpYc0jQf7qUhcmsQsmlQhfA XsDrm4Rvjk2G
2mqIcixpTK470xMIQZGvRlMiILxF9uhS5JxLKvaAF8kqPLdYBOrY+k847HfC 34wT0FGHw4bF
ow892+DRVCSG2UsnneYJN2W4zdt+PTokreU8NY/v37e3HwVGTwXnBQZjlpae 4Vcrxdk81rQ4
+HB46JdKXX9Ue0Gt2GKO0/xO3vKBq8wRROmGKBp5ZYq95bFGn6dRiNBEtelA jxCZmUZgJ4/t
2wieQpXadTtwhTsMtQz2kPWdgMAgCnhZKAxeDdtcCP3CgWfcrGMPMb3cIhR+ G1ib/XiFm72K
Nl/RmpBguNXV2Ega0q63q9e62o2czs2eqd8FTUOTL6fwhSnTRTSsU2zOXCmp 6FkIZGmaAKsQ
LvzoQykDZoqXlcohKlXFo1FYi9IgwIont6b8vcpIyb9UxfQ+oomx0hElElVR qgM2kZd5SJ4H
i6TlQ7my2wg4eRys3/AaKKweRhYqirhhbcO9GiRCj7EaRwd0TTS9Orm8+t/Z 5PvXi/9OLqOA
I66bPQnD3SGQBX4iLJicXDr/ZulyVW6cdXV5PYlgVpX+aKjahpPWdSuIYSrb hueBLiNyZ8Zu
UZjmOVkmPd9r4+KWvtvHi00NmMoJc9nPJgLXVqbjhJdXQrwFPm38+2TFVm9f 5HYWfCsHHpZ7
n96WLuZ/VAivg9ZpBkeH86+Ts+HQ5/EY1iD6000JXp4PNOeZplCs8JiBETN1 drNJC/MVEYCJ
dN5hx+NlDGYE2l/zWXyfiWGH5kwil28XVwF/x5BKfP/LyeW+lbUXbt42JVFu trwFwQhElR7E
48n/wmm+2OJeSkCbHdR8ewnqADRFb7oxyXzO+W8yBt32yRQGlajDvLqSmtiN O5vsmenGoCOW
5loqy4KQ9AfO8G0Pkxf23pJlBnbaadaxdVMAqHpf3fYVATaNuJS2RQyGbX5m xsBtNFcubJj3
nIvccC/k0h3gS1zX4aTyihQxSfJMFJzUaTVr7Oj48+O0KgqaH2+YytEQzJIq NxBHaRLSTrGd
65DbcSfjgvWWvqTVoBmS6GPc4vhSmJ6dCNDUvqHAijraEvEQ8nxl+qAPCbyg Dzt10IrBhCph
3CbpSWLi+2fyuMdF/bmMAubPpTMp8HJG/6mc7jJ6Ia9b8Nf6+hTM880Xvw2f LyzSR/49GIJ9
RKCEx6d6iKABxyG7HYRouvJmNZwbfbaslX80QYzcREBm49lEZoXgpT+Y6WCk CEapyGw93+zy
NkUwpzZEoMiEkGvqd8wcds2gpzJ7jmMzzF+fZcFUmTLhMHjkBkY7leFYKFJd NvLEQzNb2Zu8
+mrNvxBoHfxefRxuj+vPDzEHB30FabKrPgb2urcFm/7z68GtuS/GY7EQ7YjY o1NDtP2gsdW/
I2O8/R1qTD7dIrQ793XqvYWpDZPv7lJ9vMWiv4S0DbstgNvRo1Pi7vx3xbOi OQNCzyFw23TZ
iDDA5XCz5vkqoOzLOTzodpS3naDPrK6iL6j6mpEYerD3sQ+O3zy0tHzWgP1f n1VeMTL2bni+
EXRaAb7AsE3yOZ4MqXAqpcjUVrbS+bNSlFHDCFq9pN6O9kQgyToPVwobVh0H HceX2EMMTHFg
d2gImwk+jHob1JN37ThPFwtu9MbEK/DIirhjABvoX15fSsb+jf+26y6E1Zdv F58/lRp5c9Il
fnXYN+ZsDideLFuHi64i2zL2zdkXqPF2w839MZ+TyJCpfXTccX5IVjDY/NkE +P2w9TcZfm/5
Yx0nt1eKJdgMN/zcFcX+h6OArXttb7aNTPz1f1BLAwQUAAIACACDezc3G3Ac g3oBAADCAgAA
RgAAAGJ1aWxkZmlsZXMvZGUva25hdWYvZWNsaXBzZS9qYm9zc2RlcGxveWVy L0pCb3NzRGVw
bG95ZXJFeGNlcHRpb24uY2xhc3OdUclKA0EQfRVjRuK+JO7bTaM4eBAPigc3 iIxe1Nw7SRlb
x54wPXH5LE+CBz/AjxKrJ0FBA4INvbyaqlfv1bx/vL4B2MS8hwxhq87+rVGt K59roW5a9m+q
kbV1bobRE8f+yb6gww46eqxxM9GR8ZAljN+oe+WHyjT8rw+EEcuxVmGFYyv4 snxIoBPC4EFk
bKJMUlFhi3vRXkTI7Wqjkz1CYSX4JjxPYm0aO6sVQvYgqnMePRgaQB79hOFA Gz5r3VU5vlDV
kAljQVSTlkoaC+4Es8m1toTt4F8Odwh99pStVY20wS9phFIXwUGXmYgLJ3/S yZ/6s+ziOo4e
nIPUvMePZWM4lvF0pSbkz6NWXONj7TzPdjez4UqxDBIZMnTMoBc5uT1BGfTJ JjdaOQcksic4
I3eutPaCwec0Z1jOfBotSG0RI/IqtrMwirH0Z+YwjgnhcFyFDldZOrqeXmlt /QXFn2QLUrSY
ki21077IvA6Ze02LYCdxNq2e+wRQSwMEFAACAAgAqXU2Nwf+GoYaAQAAhwIA AEUAAABidWls
ZGZpbGVzL2RlL2tuYXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9zc0Rl cGxveWVyRXhj
ZXB0aW9uLmphdmG1UTtPwzAQ3iPlP3xjiapUzBFSBWUojwkB8zW5JG5dx7Id KEL8d+wkuGUA
sSD5bMl338vWVO6oYVSc7xT1dc6lFNpyvt101lasZffGpkiTNFlk2fWhZO1E p1B3Bq5l3Fz6
MXzN5WmCDMO2pN61fui5k3VDqsFtoA+tUIs00f1GihKlJE8w0KwmlqMKHxyr yiLepMm7h8Nb
CceohYEO0Ea8kGNYR84T10KRhOy8tGUjSD6xsZ7icb3CBc7vioCZyK4MB2QI xFH8VbgW2946
EPZsrX+m/JsqlpoM7WHvx+6plzHcD7FmD86I4GsCngXIEAywvWaDWWwVg9jH n8xGnyBV+YJQ
ypPx8fX+w/0cpx+2DpK/BJrHmZjMr09QSwMEFAACAAgAg3s3N2utQM1wBAAA zQgAAEEAAABi
dWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlwc2UvamJvc3NkZXBsb3llci9KQm9z c0RlcGxveWVy
VXRpbC5jbGFzc5VVXVfbRhC9CwYrxoTUISSEjzilBIODBTRJwYQkYAyB2oLy YQo0pcJeGxkh
6UgyhYee/I7+grymL+acck7b5/6ons5KrkuKQ8OLpJ29M3Pnzuzqz79+/Q3A OMpBNDGMFbh8
aKiVoszzumY5XC7vm45T4JZunnJbXp6j1XxttelqehABhltl9ViVddUoySv7 ZZ53GfqXlfkl
ZTab3svOpWeV9fRaLr2WWlGUdGpjaUVhiGT+dVp3bc0oTTO0p0zDcVXDzal6 hUu4wdBVPjqR
NePYPKT0a9ml2YJquabN0PpcMzT3BUNzbDjHEEiZBR5CM26GEUIbQ0dGM7hS Odrn9oa6r3OR
0syrek61NbGuGQPugeYwTGSuWznRbStx17Nv2jrDo9jlkoYvmyR0MTA5hHu4 H0T3B+r5kDB6
0MsQIiVs19nS3AOGO42C7wTRz3D3vxtzFU0vcFtClKGlqOk8GUIfPhe6DHwk Uk4gBsN4hCFS
VrUsbhQYRj+polq6aRFiOIwRxBkk1/Q3GTpjDUUYpTweN5nQe45rL2iiHaGi ZhTWuX3MqcUz
sd2PETiRj1RDLfEjbrhydo6rhu9EA2TQAGqmQf0JpU/y3BILJ4gvGZ5ep8d1 3yCeUhUejwr1
XV61TYvbrsadEJ7gpoRJhh6xnTDUI2KYKKp5mtDThJhPTdUlJBmGTLuUKBsW GV1uE4I7CcWD
E2OXn7gLvpMI+TyMGdBgtzncrSU7ZZhs0Iyr2+OfRdL6FUNvI4IVW09YhyVH whyNkcdQ6PEP
jDQidSXMM9y76G7Z5rFGHRf+EhaEOIaVlGVdHK8D03GT42NTU0G8rulyIvuO 8pIvSK3iEBax
LIbya4pfK84T+LXqHLjidNJcSsgyDKRsropWRM1i9MMg0aJKc1NIRkNYwTdB rNZKref0Ra43
M4w1MZ8hOrlZ7jg0QSFMYEPQ2GQYuVrjehTvwCxiK4xvsU2DrJvmYcX6/yug 1pEgdgn7aWMs
4Q3DbMZLIMpvCIoONb4lh+ry0EWn2iW66G7vNrp4W6inFu12ZRrNOQGa8+4J Q1/min4SqokT
qD9zVQMI1erUznfsGkd53azYee5fEl2XLuOECISHIKL0N2O4jxa00jtIqyZI ZGXir0DPMFlk
ejN6t4ycof0XD9JBz1bP2IFb9Az7AHyGCL1v4DY6a85vvGBAfCRyp4q7P6Pz HH3bkQdneDhS
xRdVxN57hscXDPUUNz1+fRTwAXEcuJAqjgQREKlkjBF6nL4DtDMhkrIeotJC lrfneLJ9hmeZ
eOSryFQV01vxyMvIrP+RiqTFB8ueY3E7foal7DtElXNMbHuEMkRotArF5zR6 hvXfmfI4IlWR
+wM7yjsMJAN18HcE7g7U0d0BAR99T8QGieg4HbZV7JAWK7XCnqGdnpMk9RRp lqTipqm8GUK/
InSKykhDwTJ5ZclrFXt0Dn/CpifAC6/wt/ierKAIP+IHqFT6IGXYR54yTKAX BXASb5XkKaJE
X3vo92xCpANPYO1vUEsDBBQAAgAIAOp8Njf6ARtQOQQAAAMLAABAAAAAYnVp bGRmaWxlcy9k
ZS9rbmF1Zi9lY2xpcHNlL2pib3NzZGVwbG95ZXIvSkJvc3NEZXBsb3llclV0 aWwuamF2Ya1W
bW8aORD+jsR/mOyXLmm1234slF4JIb1tA0RAmp6qCrmLASdee+X1BtCp//3G L0uAC8mdFAlY
sMfPzDzzjIecpHdkQWFGoztBynlEU87ygka3v2RRzGjO5YaqVr1Wr7Esl0rD LbknUakZj66U
zKnSjBaH++soIwJhMyp01D+jRIypuqeqK4WgqWZStA7sBcmYWERooOlaH9lN BNOM8KeNBvbR
W6c0947qtfj09BojhpSTooC5VKCXFGyKUOVYr8Ep2I9PpNRLtLmRfL4gYgFf DTNmy7zjei0v
f3GWerQvZ4hy7kGMl3rtb7QD9PllcJ4AhkVBzq3HR6mIjLXFBcgVuyeaQqGJ Rg9zJgiHsVaY
ERi0Qaffm/bPep3BuDf61ht1h4NBrztJhgNoQ3CbrWMm7uUdVfGon3RmJNdS Ba2WgfYxdRU1
Dkw0NnK4Hl1uGSlymrI5ozP0zGkELrLq8SknimQwLbS6wO1qVVFdKgEdi4SB oyIw2hXTSwgM
TDMOdjN03PkEfWoLqm0w14qHfqny0jCHLKEYftyZzbagSBads7WjD9gcwupM ZKMobjCEMIiD
BrTboFXpsLZoAD5yBxjA663TlrP47R6UF/Spk/Gxo793eXf1Bi0d01YEQISh Gj+OqqM60CdM
VCoDJqwaov36jCmFDwSWSEs7WGqdN+N4xe6Y6+VIqoX9Gd/YtSL/I8cWbf8p V+cy+Uz1iGZS
006a0qKYyP7GhhN8fCGgDzH5uK8johYFdGWWGRI4E9SuRAeymvwfYqqzeqnk 6qA1tzcCdMQG
qFJSFSDTtLRyWy2xdpB6dLxGjkr28WBMEd0ieAX/+GnzacCTweyq+9Ro2HLA qVhg+5y04d2h
Zi0aCLqChHO6ILyjFqW5Zx/yC4PemqSab0A6Uu0+ZGWh4dduk580wUh3x2Vj X/m+F1Ha2Jl4
w/zrrot2O9fg/Hj7s9HyvDntm7ZFUeyqPt3y1qws4IVk5vAeJhNeEjIvMHTD 2MNyWCVqt6OC
ar+3Cf10iZJBMkk6l1O8Yie975PpRac7GY7+egMBBhbdijxiaKjmBP37oeOP XiD5Um2C533g
jTm9+vp5ejXqXSTfe+MK3Obv5xnOY6zefwC7Gg2/Jee90RRREQgjRD65TAlf ykI33719/96i
OJz9WQqpXhuSSs69H602e8rzBkZ3eydDGxDWHGt4oWQGt2LGonzL9K4QvKpS otMlhAeDGuj6
uNaPdHIY2HFmvuKEPUhpTrClZ07idG2U2keloITCxhtcgAOt72rV6XQrzsnw fNiEJd5TeEfQ
rXd8eUHbeVPmcOJOPH5FeNsnWYYHq/BRlIYpRMSlvCvz8Ol/BFV+JoPxptA0 i2SpsTSoWy7C
wEE7fpzXSEvX8WHjgJwXK1kYXNrYTb0ep+mVieeZ/zqvIXj1XH13MnBf/EBx qbb8fMbdfwBQ
SwMEFAACAAgAg3s3N18+GJZ8BAAAkggAAD0AAABidWlsZGZpbGVzL2RlL2tu YXVmL2VjbGlw
c2UvamJvc3NkZXBsb3llci9KQm9zc1VuZGVwbG95LmNsYXNzlVbdUxtVFP9d knSXsLVtKG0R
qAsVCAESWqzaBNoSCpYaaDV8mKLVTfYSFja7cXeD8B/44oxvjjM6Pjm+8GIf oMpIfXOGPjhO
/x/Hs7sJFBMZ3J3Zc8+553fu+bonOfj7130A12EJaGIYUnli3VAqKwle0LWy zRNredO2VV7W
zS1uJR6kiVswfF5AkOH8mrKhJHTFKCYe5td4wWE4M6YZmnObIRAdWGQITpoq DyOAZgkhnGE4
l9EMPlcp5bk1r+R1zhDJmAVFX1QszeWrwqCzqtkM8cz/8SlFuJKiGQyXosuZ I9+yjqUZxdTA
TDMuoFVA5Jjn2S3b4SUJF9FGXpsVCqLNB2tm4hEhHcJzpZQScZmho3bYhKEu KZojf6HYsu0o
lsPVMNrRIeB1htYGeAmd6GIQyq5IJyfbog18XBTwBkPP0caMrvOiok9YxUqJ G87UZoGXHc00
BHQzXP63gXRF01VuibjGEJvaVAqOviWbBpeVKl4uVWxHznPZLvOCtqJxVe5O ymHI6HUr1OWu
+iVEMUC1VMplbqgMndGZgcx/HJVyEYMShjDMIDqmv8lwMVoPId2r6A1jBDcE XGcYOU1171W5
BUfTJYziLYaWInf8yls6Q1+jPDY6ewRvS3gH7zKEVzRDzXJrg1sM4w2bxRNt JkqKoRS5m7nE
bJorhg+aNA2D2p3KkBKQpK6oU/bvw5xS4iLGGLq9wOK212tJm4xoBT4+S81a Cy+MW+htxh1M
CLjLcOHIo7Rp6nSyhDQmGULTE5nsFLVYpk6DOpQ2wlotZaqA9463uhebiJmq NO5K4760Be9j
VkCG8nm6yCXM4SE1iWZsmOt0ZbVo5oQspOpT/GrWfcXU8smVrGqFKUsfSPgQ WQYp78e+qOgV
7k2dxyIWaM7U7inZiNMjYonas1IVishRiifKZVmz5ZqQqyKWGa5VxYbpyLWN IZdbJVOyY8qq
SdY+ocFVh4+H8SkUAZ/VJoDn9eGVlZD3RmDZHwpKYX3eUgrutKPbSdOutUH4 lGDbsbw+jzTe
rXZx9LQNSyPIzK+5NWHoOrFkDGfzpj5z2E7EE/JVPlJfHIYmvnk4Qo8ngDbD WbNiFfi05o3+
Y+M77iLQDaoi3KeJVvSbQV+BuARRRjQU24X4s7cdpu8ZT9hCLyD5CkTPEm3G azjng9n3EEkT
ePkU5yOXdnAlth/8AZ17uJrbg5yL9Ozizdj+Dvp2QObjz2OBG8+QyMSe4ebs Hm7lIqldjM89
xe1kcGg4ci/4GwK5wGCW6HQuELmf/QUPQkiG2kO/404y2B7cwaNvMeseNk+H EWSxMWTpJGsu
/COC/4QWd/mYli792BOFM4M7eNK0HdimEEX8gQNqPT8leVyhbxtJ2ykFHehH F+I0pEfRg3H0
0hjpo6vbjyWiT2jScwyghEFUMIyvSfM7yvWPRLfpn8EubuI5zcwDJPECY/iT LPyFu16673t1
eYkCVKIujmOFvBnFNyhilbwZx1fQsEb1TONLrGMSQTpRp7dEZXpBJTFgenUt ewX9/B9QSwME
FAACAAgA3IE2N1CTFgzFAgAAfAcAADwAAABidWlsZGZpbGVzL2RlL2tuYXVm L2VjbGlwc2Uv
amJvc3NkZXBsb3llci9KQm9zc1VuZGVwbG95LmphdmG1VU1vGjEQvSPxHyZ7 WlJqkisIKSRN
q/TzQNMcohyMd1gMXntlewMI5b/X9n5BRKKkUpFYL57xmzczb0xO2YqmCAmS laTFnCATPDdI
ljNlTIK5UFvUo26n2+FZrrSFJX2kG5JR6Y5lKC35cYlUTlE/or5SUiKzXMnR y/6/Zkvn85Nm
GGAHp6e3sgwEFEJYoHkuOKMeCKhMYE25hbnSYArG0BjS7cAphMcFLezCWe6U mKdUpvDNp+FN
/jvodvJi5rCACeqAv146+Dpct7PzBAAcBb84tH9iAiUXv1zkVNMMqE5NuTPw S0XBWIfDgEsL
GeUynlrNZXr/ENx73nEXDsF0ayxmRBWW5M7FChlHNbOJTO48hzU1HlBbTKLe qMwDwOpt+VIh
AfA5xB6fCJSpXcDJGM57tbHxcicXWq1B4hpuhMCUiolOC9+v6w3D3OcfR9cb yqzYgpLoOQcz
ZIWxMEMwOTI+55jAyRAi+AB7UT3BMsxT/VIm71LQt1rAuOzMp0pvt5YLkqIt 26VFyOD+7KFN
1DVt8AWto+0iB+0Ba8Q3rH2OSrP2PxZzzmVS+oeQLe96bcULarYM6zhUrTXE UZAOMaGLQx+N
Mxz/cC2vY0WHicDVAtkqyKqauMQLr0njUinhEoGZEjc138TFrfbJ58n36fXo kKKnd+BcZk24
fFQrjCvyfYh44xT19zJxstzV3XnqtzqB4NNIdweRH3Ai3OiRcjeCp7ZuzynH FefeIb/RvlwP
zpBZeeAPFQXGPRiPncgLPCbh18bG8SLuE7XMQuFr87DdfalOReX6SpXeVxr4 fy2C9zIZDN7b
qOPlnuQ5cAN1raq76dnoozD4xvZVeFLZZjL6/tfC3x1WQaLIsQhvokb2prA6 6S56toC4ufIA
N71n9yluSsipdf+cvzVlTpQNAY220BI+no8a2PKlMpyF/bDrHn8BUEsDBBQA AgAIANR1Nzd+
Bj9LcQIAAGQSAAAXAAAAYnVpbGRmaWxlcy9qYm9zczMyMy54bWztV8ty2jAU XZuvUD2smLHc
dqabxmHRyaZdZibTtbCvEzmy5UoyhDL8e69sOQSHZ4CWtrCy0X2ec48kR6WS GcSGFCyHaz+B
UsgpPBkoNJeFT0gCKauEaZdo9hGATmCESyOmIeHq2qf+sOdFGKkEZaYuVMkq DbTx8smYiQr/
/PDeD9faVkXH+pM1fm3tKjE8B1mZbmy0N0zdw3JLi7rRxIsyprAzbVIu0KQ/ cyjQiVSPvLin
2NY87M9ymVQCqA00pxOm/CFBby/6yUvrqTFJDcCzpfWzGYj7eREvYlEl4IoZ DMIBHdR12jjw
9GrRZmmWo3CRpi46xKrrh3dBcOewIjwlCn5UXEHymQSB627MSCyY1i0E9LFg VUohFrxEpLOR
1Npxrei3L/h29wx+7Vgy84DEXvVnGtQY1K2U5gaTxEaq6TzEOFCYsI7DhAia d4oF+lgAISnj
QhaglER0jKqghh0BiZCalrA2Ni2rkeD6YS3qYdv+mNmnHuLqRbkcA9mXP2Kk I2xFapcH0Y20
ACiJhlgWia4TvJhma+igdvbfGTcklXamrEGOWBxExs1RqFjnIfioMQ/0VBvI d6DtAN68Zddl
8c473EZho90tOobsAB1nx9Vxa7FSzbatbXL+3xSdHU3R2UXRv1HR2aGK3qBn K8m36hn+Qj3b
idxzjNp4X9NbF+3chA0dYZ/D5vVHFQNH2+ngBDvdZZvbTNpe25y38e7Sftl0 vkISEGAWg7Dj
rWq52ZQJjd2SKGyibRuDtpTOkXfGF4xjfDOsPYWWmXlxr/yH4Fh14XrT9GWn mb5dyVlcEi7n
yWFEwomJxOdeFLqDbfgLUEsDBAoAAAAAAJx0NzcAAAAAAAAAAAAAAAALAAAA YnVpbGRmaWxl
cy9QSwECFAAKAAAAAACcdDc3AAAAAAAAAAAAAAAADgAAAAAAAAAAABAAAAAA AAAAYnVpbGRm
aWxlcy9kZS9QSwECFAAKAAAAAACcdDc3AAAAAAAAAAAAAAAAFAAAAAAAAAAA ABAAAAAsAAAA
YnVpbGRmaWxlcy9kZS9rbmF1Zi9QSwECFAAKAAAAAACcdDc3AAAAAAAAAAAA AAAAHAAAAAAA
AAAAABAAAABeAAAAYnVpbGRmaWxlcy9kZS9rbmF1Zi9lY2xpcHNlL1BLAQIU AAoAAAAAALx8
NzcAAAAAAAAAAAAAAAAqAAAAAAAAAAAAEAAAAJgAAABidWlsZGZpbGVzL2Rl L2tuYXVmL2Vj
bGlwc2UvamJvc3NkZXBsb3llci9QSwECFAAUAAIACACtezc3m3XFEF4JAACF EQAAOwAAAAAA
AAAAACAAAADgAAAAYnVpbGRmaWxlcy9kZS9rbmF1Zi9lY2xpcHNlL2pib3Nz ZGVwbG95ZXIv
SkJvc3NEZXBsb3kuY2xhc3NQSwECFAAUAAIACACnezc3R3XBWpUIAAAMHQAA OgAAAAAAAAAB
ACAAAACXCgAAYnVpbGRmaWxlcy9kZS9rbmF1Zi9lY2xpcHNlL2pib3NzZGVw bG95ZXIvSkJv
c3NEZXBsb3kuamF2YVBLAQIUABQAAgAIAIN7NzcbcByDegEAAMICAABGAAAA AAAAAAAAIAAA
AIQTAABidWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlwc2UvamJvc3NkZXBsb3ll ci9KQm9zc0Rl
cGxveWVyRXhjZXB0aW9uLmNsYXNzUEsBAhQAFAACAAgAqXU2Nwf+GoYaAQAA hwIAAEUAAAAA
AAAAAQAgAAAAYhUAAGJ1aWxkZmlsZXMvZGUva25hdWYvZWNsaXBzZS9qYm9z c2RlcGxveWVy
L0pCb3NzRGVwbG95ZXJFeGNlcHRpb24uamF2YVBLAQIUABQAAgAIAIN7Nzdr rUDNcAQAAM0I
AABBAAAAAAAAAAAAIAAAAN8WAABidWlsZGZpbGVzL2RlL2tuYXVmL2VjbGlw c2UvamJvc3Nk
ZXBsb3llci9KQm9zc0RlcGxveWVyVXRpbC5jbGFzc1BLAQIUABQAAgAIAOp8 Njf6ARtQOQQA
AAMLAABAAAAAAAAAAAEAIAAAAK4bAABidWlsZGZpbGVzL2RlL2tuYXVmL2Vj bGlwc2UvamJv
c3NkZXBsb3llci9KQm9zc0RlcGxveWVyVXRpbC5qYXZhUEsBAhQAFAACAAgA g3s3N18+GJZ8
BAAAkggAAD0AAAAAAAAAAAAgAAAARSAAAGJ1aWxkZmlsZXMvZGUva25hdWYv ZWNsaXBzZS9q
Ym9zc2RlcGxveWVyL0pCb3NzVW5kZXBsb3kuY2xhc3NQSwECFAAUAAIACADc gTY3UJMWDMUC
AAB8BwAAPAAAAAAAAAABACAAAAAcJQAAYnVpbGRmaWxlcy9kZS9rbmF1Zi9l Y2xpcHNlL2pi
b3NzZGVwbG95ZXIvSkJvc3NVbmRlcGxveS5qYXZhUEsBAhQAFAACAAgA1HU3 N34GP0txAgAA
ZBIAABcAAAAAAAAAAQAgAAAAOygAAGJ1aWxkZmlsZXMvamJvc3MzMjMueG1s UEsBAhQACgAA
AAAAnHQ3NwAAAAAAAAAAAAAAAAsAAAAAAAAAAAAQAAAA4SoAAGJ1aWxkZmls ZXMvUEsFBgAA
AAAOAA4ACAUAAAorAAAAAA==
--------------090809070104000304080609--
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04854 seconds