Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » Widgets location shifts on subsequent run
Widgets location shifts on subsequent run [message #117372] Sat, 03 January 2009 10:03 Go to next message
Setya Nugdjaja is currently offline Setya NugdjajaFriend
Messages: 567
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------060109060005000707050608
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

It seems that widgets location shifts between 1st and subsequent run as
can be seen in the screenshots. I can only reproduce the problem when
the widgets are on workbench's editor, not standalone. Here's simplified
snippet:

....
public class DemoBugEditor extends EditorPart
{
@Override
public void doSave(IProgressMonitor monitor){}

@Override
public void doSaveAs(){}

@Override
public boolean isDirty(){return false;}

@Override
public boolean isSaveAsAllowed(){return false;}

@Override
public void init(IEditorSite site, IEditorInput input) throws
PartInitException
{
setSite(site);
setInput(input);
}

@Override
public void createPartControl(final Composite parent)
{
parent.setLayout(GridLayoutFactory.swtDefaults().create());

FormToolkit toolkit = new FormToolkit(parent.getDisplay());
Composite container = toolkit.createComposite(parent);

container.setLayout(GridLayoutFactory.swtDefaults().numColum ns(2).spacing(10,
3).margins(0, 0).create());

container.setLayoutData(GridDataFactory.swtDefaults().align( SWT.FILL,
SWT.TOP).grab(true,false).create());

Label label = toolkit.createLabel(container, "Foo:");
label.setLayoutData(GridDataFactory.swtDefaults().align(SWT. END,
SWT.CENTER).hint(label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x,
15).create());

Text text = toolkit.createText(container, null);
text.setLayoutData(GridDataFactory.swtDefaults().align(SWT.F ILL,
SWT.CENTER).hint(SWT.DEFAULT, 17).indent(0, 0).create());
}

@Override
public void setFocus()
{
}
}
....

To reproduce just close the editor then reopen again. Although not as
obvious as those in the screenshot, you still can notice the distance
between Label & Text widget shrinks after re-opening editor.

I've tried latest source from CVS on Firefox 3 under Xubuntu 8.10.

Is this a known issue ?


Best Regards,

Setya

--------------060109060005000707050608
Content-Type: image/png;
name="screenshot_1st_run.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screenshot_1st_run.png"

iVBORw0KGgoAAAANSUhEUgAAA+IAAAFHCAIAAACqNmFoAAAAAXNSR0IArs4c 6QAAAAlwSFlz
AAAQdQAAEHUBmDo42wAAAAd0SU1FB9kBAwkVNbjneKEAAAAZdEVYdENvbW1l bnQAQ3JlYXRl
ZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42u3deVyU5f7/8c/ADIOyCoiAisjm LhiUS2645pZZ
oaBhi6ZiamrnmC2Wnq+nk5bmT8tcOmW5AFEptoDZMbSTpkcTFRcQ0DRFxIUZ WQZmuX9/aC45
LCqKwev58A+cue9rbj73fXG/55pr7lulKIoAAAAAuJ/YUAIAAACAmA4AAACA mA4AAAAQ0wEA
AAAQ0wEAAABiOgAAAABiOgAAAEBMBwAAAEBMBwAAAEBMBwAAAIjpAAAAAG6N mhJUi/i4RIoA
AACAWxUVHUlMr5kSAwAAAFZVMNTLpBcAAADgvkNMBwAAAIjpAAAAAIjpAAAA QK2I6Yp+79LR
DzZxc/f09HD3bvPEBxllIqWZq+d/cqjEWhv65EGe3dblK1QTAAAAuFsxvTT9 nejXTjy9+fdz
Z8+eyzv01Yyu7jYihszV81bdFNMVi8kiDp0XJi/v30BFNQEAAIC7FdNNBb8X aH2DveqpRETd
oEXHEA/bi5tnzEy9sP2lXuHhPSZuOrYhwin4mTGP9u4ZEbnkSGnRjukDxm+6 qIguKcKpxfOT
Rg4d2Cu8ZYeYT3PKREQpPrTyqfY+jQPbhA+aNKltg37f6Cg7AAAAcIsx3SFs 6kttvh3QrEW3
x5792zsJu/ONomrQd/7bPd26LNiye/fWpf3dVGLIPd972fepqV9Oa629fuXS s/o+i9Z/t2XH
xugDb8zdVSTGo0tHz8p/8edjWQf/uyB4b2YRNQcAAABuPaZL/ZC//3A6d/uH k/v76b+b1qnV
iPhT5puyfMiovt62VjJ+u8junjYiGu+QZqXZp0osur0bj7UeN6y5nYh98PBx YY7UHAAAAKhE
OXchVWk92/Ye3rb38Oce82jVedmOgqi+f1pAU8/O6mR0W82V8K6yUVnMl79W qmLaOgAAAHAL
rIyml534/qttx4osIqKUHNvxv/POAY3sxUbrbGe4UGy+xfZVLh2G+KUvX3+s TMSQmbBiTyE1
BwAAAG49povx1Lev9Q/wbOjZ0N2751Lnl+PndXEQh7DYaMvsB/0DQmK+PncL 117UBL3w6ewG
Czv6+rXoNOVQmyCXehqu1Q4AAABUSKUod/t650pZYZnGUauSst9WR3Zd2mfb T5Obq2tbHePj
EqOiIzmeAAAAUC0Z8h7k5aKdMyPG/nBJMeiLG/SetWaMn5o9AgAAAFTkHkRm x27v/y+DSgMA
AABVxjxxAAAAgJgOAAAAgJgOAAAA/OXwdc5qEx+XSBEAAABQLe7BBRkBAAAA 3BomvQAAAADE
dAAAAADEdAAAAICYDgAAAOBOcaWX6sFlXgAAAHAboqIjiek1U2IAAADAqgqG epn0AgAAANx3
iOkAAAAAMR0AAAAAMR0AAACoFTFdnzzIs9u6fMX6GqWZq+d/cqiE0gEAAAD3 MqY7dF6YvLx/
A5X1NQyZq+etIqYDAAAA9zamF+2YPmD8pouK6JIinFo8P2nk0IG9wlt2iPk0 p0y5uHnGzNQL
21/qFR7eY+KmCwoVBAAAAKpdZddNLz2r77No/WOe5sz5D/adu+vJj/vOf7vn F++M27L1STeq
BwAAANwVlX2F1KFdZHdPGxGNd0iz0uxTJQyfAwAAADUe08VWY3v5B5WNymIm pQMAAAD3QUy/
eQ2ts53hQrGZ2gEAAAD3TUx3CIuNtsx+0D8gJObrc4yuAwAAANVPpShE7WoQ H5cYFR1JHQAA
AFAtGZK7kAIAAAD3HWI6AAAAQEwHAAAAQEwHAAAAiOkAAAAA7pSaElSX+LhE igAAAIBqwQUZ
AQAAgPsOk14AAAAAYjoAAAAAYjoAAABATAcAAABwp7jSS/XgMi8AAAC4DVHR kcT0mikxAAAA
YFUFQ71MegEAAADuO8R0AAAAgJgOAAAAgJgOAAAA1LqYrkvq5dHvG92tNKlL imgQkfSnVfTJ
gzy7rctXqDgAAABwxzEdAAAAwP0R00syPnk6xNsnoHWH/jO/P2u+/KAhe11s l+aNm/k18Q17
esWBQkXEfOqjzk1HpRaKiMiFL3p6DkrWi4iIOS9lRr/QVgE+PqHPrMo03NC4 6UzKrMHtAwMD
/f2Ce7204aSRnQAAAABUGtONWR8+NeO3cduOZR/avsB/1+GiKw9GTdn/5DdZ x4/npMaeefXJ
t/Ybym+1+Oi+Vot/OZx9LHXssRmjV+Zci+KmE6tipuY8k3w4KysnM2XkgRfH f5VnYTcAAAAA
lcR03Z6k7DYTRwRqReq1HhUb7iAiim7P+szg2FGt66nEzj9ySqfzKdvOmMpt 1SFsfFSwvYg2
KGpiy6Pr0y798YSi27l2W872uUM7h4eHdxm+JEd02fmMpwMAAAA3sH4XUhuN 1lYlIqJSa9Wq
cldWqWxUolz+WqhiNpqr8HqKYtG2e3njzgm+thQfAAAAsM7KaLpL2GMBmeu2 5VtEzLk/rNtX
LCIql7BhwRlL1xwqUaQ0O3HxTo8B3b3VNk7NmilZ6fkmEXPe1sT0oj+aKNqz PD7DIGLIjP8w
I2hYqPPVYO/60MjQrHfnb84ziYhiOJW2N4/BdAAAAOBGVkbTNYETPnszbXTf 7st83eq7u3pp
80VEExgbtzgjZqD/QrMiDfvOTXylvVZE2/UfswMiB3Te4O/V0K+hpzbvShP1 g0OPTHkoODNP
7/rI24nP+6tF/8fr+Y35PDF33LQOTcaq7URxCpuakNChkYYdAQAAAFyjUhSu ZV4N4uMSo6Ij
qQMAAACqJUNy3XQAAADgvkNMBwAAAIjpAAAAAIjpAAAAADEdAAAAwJ1SU4Lq Eh+XSBEAAABQ
LbggIwAAAHDfYdILAAAAQEwHAAAAQEwHAAAAiOkAAAAA7hRXeqkeXOYFAAAA tyEqOpKYXjMl
BgAAAKyqYKiXSS8AAADAfYeYDgAAABDTAQAAABDTAQAAgFoR0wtTRzVQqV09 GzXydG/QqN3w
93brFRERffIgz27r8hXrLf2xlpeXl6dnk7b9Yj/4Od9U9Q2puPG7vToAAABw v8d0EdEGvJR6
Ii/v7LnfUx7f99rkL3MtIuLQeWHy8v4NVOU2pg14KfXEmTNnzp7ev2ZkycJ+ 3V/fVVTVDam0
cQAAAKCux/Q/KMZig1Lf091eJSJFO6YPGL/poiJK8aGVT7X3aRzYJnzQpElt G/T7Rnfjamq3
0GeWfBx1cdlbqQViOpMya3D7wMBAf7/gXi9tOGkUETGe+va1Aa2aNG0eEBDw 4KSt+muN65Ii
XEKmTx/SIaixh0+3Vzb9Gj85oq2fh0vTAe/uK1JEpPTIkifD27QM8m/aOCBi RvIZM3sRAAAA
dSOml2a/18e/sY+nc4OuK/3nzO/vdv0ot/Ho0tGz8l/8+VjWwf8uCN6baX3E 3LFN38Cyw3tP
Zq2KmZrzTPLhrKyczJSRB14c/1WexXT8oxGjv33w4/TfjmVnZ2yZHeZww6rF WektF+w4evLg
IpcPBkVt7R+XdvzUL5PPzHtl80VFRNNs5Efb048czTmRlfRI6pQ5u4rZjQAA AKhdyrm9kTZg
Wkr6vFB7pfjwsscihr/dY9ebbbVXnlN0ezcea/3isOZ2IhI8fFzY7LXlNq9S dDvXbss5nj+0
89siIsYCcczOLys4FJ8ePP2Ljq42IqJ28nAU0V+3lsMDYx4PsheVbUhXPy+3 qAgvtYhvlwfq
x2VdMImbTeH+5VPfXLevwNbe9tKRE+5HCiyd67MnAQAAUPtj+tWYXb/Fo8Ob /m3pT3mvt/W9
4YlKJ5EXHtycpW31ipfmB227lzfunOBre/Up5dwhlUj5X/dUqe01KhERW7Wt 5sqPKlu1rVgU
kaIdL8escP9s175e7rb6TcOC3jBa+OIoAAAAapfKLshYdmJLUpZ9oL/LtZCt cukwxC99+fpj
ZSKGzIQVewpvWst0fu+qyc/Fu094taffQyNDs96dvznPJCKK4VTa3jyjyvWh qPZH3/vglwKL
iBh1Zy/dwiVhzEUXjO5tglxtxXJ2yydbzzE1HQAAALVOOaPppdnvdPNeqVFZ jIpHl9jVK3q7
XPekJuiFT2fvGdHR9/8aeAX3fCjIJU9jc3Utn4/sxKLY+4QNnb5564QHHWxl zOeJueOmdWgy
Vm0nilPY1ISEDo38xsZ/duK5Z1s2LtZq1Z5DVv1nSYeqbrFT1zkzfZ4a2DOp uYvapWGQu5qd
CAAAgNpGpSi3MWVEKSss0zhqVVL22+rIrkv7bPtpcvO6HZfj4xKjoiM5ngAA AFAtGfL2wnXR
zpkRY3+4pBj0xQ16z1ozxo8hbQAAAKD63F6+duz2/v8yKB4AAABwd9hQAgAA AICYDgAAAICY
DgAAAPzV8N3PahMfl0gRAAAAUC1u74KMAAAAAO4iJr0AAAAAxHQAAAAAxHQA AACAmA4AAACA
mA4AAAAQ0wEAAAAQ0wEAAABiOgAAAICaZu0upLqkCL9FU4//ONTltprUJw8K fGvUwW0jG6rq
Th0/XpNQ8QLPPTWCow0AAAB3ENNxWyoI4pWGeAAAAOB65Ux6MeelzOgX2irA xyf0mVWZBhER
Q/a62C7NGzfza+Ib9vSKA4VKuQ9eZTqTMmtw+8DAQH+/4F4vbThpFJHSI0ue DG/TMsi/aeOA
iBnJZ8wiIrqkCKcWz08aOXRgr/CWHWI+zSljzwAAAICY/mfFR/e1WvzL4exj qWOPzRi9Msdo
zPowasr+J7/JOn48JzX2zKtPvrXfIFYfvBbST6yKmZrzTPLhrKyczJSRB14c /1WeRTTNRn60
Pf3I0ZwTWUmPpE6Zs6v48tKlZ/V9Fq3/bsuOjdEH3pi7q4hdAwAAAGL6nziE jY8KthfRBkVN
bHl0fZpet2d9ZnDsqNb1VGLnHzml0/mUbWeM1h40/dGEotu5dlvO9rlDO4eH h3cZviRHdNn5
RlEK9y9/tkdI2/Zh3WI+OnRi75ECy+VXbBfZ3dNGROMd0qw0+1SJwr4BAABA nXUX56YrikXb
7uWNOyf42l57sOi/L8escP9s175e7rb6TcOC3jBargRyW82VxVQ2KouZlA4A AIA6rJzR9KI9
y+MzDCKGzPgPM4KGhbq4hA0Lzli65lCJIqXZiYt3egzo7q2x9uDV3K9yfWhk aNa78zfnmURE
MZxK25tnFHPRBaN7myBXW7Gc3fLJ1nNmdgEAAADwZ+WMptcPDj0y5aHgzDy9 6yNvJz7vr9ZI
bNzijJiB/gvNijTsOzfxlfZaUQVaeVBK/2jab8znibnjpnVoMlZtJ4pT2NSE hA5tus6Z6fPU
wJ5JzV3ULg2D3LnSDAAAAHATlaIwv6QafLwmoeILMnLddAAAAFQddyEFAAAA 7jtMOqk23MMI
AAAA1YVJLwAAAMB9h0kvAAAAADEdAAAAADEdAAAAIKYDAAAAIKYDAAAAxHQA AAAAxHQAAACg
zuH2RtUjPi6RIgAAAOBWRUVHEtNrpsQAAADAzdLTD6UfOFjes8R0AAAAoJqV llYhppef0YW5
6QAAAMB9iJgOAAAAENMBAAAA3F5MVwrTP53UM8C9gbu7m0dgr8mfHSxUym+j NHP1/E8OlYiI
iD55kGe3dfnKbW7OHa5+G3RJEQ0iknQcCQAAALjPY7rp97XRPWeciPwi5/z5 8+eyE584/rce
0Wt/N5XXhiFz9bxVV2K6Q+eFycv7N1Dd5ubc4eoAAABAbY3ppYeXz9na/t3l sR1cbERsXDpM
WP5Om9Q5yw6XiuiSIhz9o0c/NmTIIw+HdHp2VaZBubh5xszUC9tf6hUe3mPi ppPbpw8Yv+mi
ImLIXhfbpXnjZn5NfMOeXnGgUBERXVKEU4vnJ40cOrBXeMsOMZ/mlP3ptYt2 XFm90iXFeOrb
1wa0atK0eUBAwIOTturLfUWXkOnTh3QIauzh0+2VTb/GT45o6+fh0nTAu/uK rgzam/NSZvQL
bRXg4xP6zKpMg4j1pgAAAIAajOlFGT+d9ukd7n71KVuP8F7ep386cjmslubp H1m64euUbZum
F8x6euUxx77z3+7p1mXBlt27ty7t73ZlINyY9WHUlP1PfpN1/HhOauyZV598 a7/h8puAs/o+
i9Z/t2XHxugDb8zdVVT+plW4pOn4RyNGf/vgx+m/HcvOztgyO8yh3Fcszkpv uWDH0ZMHF7l8
MChqa/+4tOOnfpl8Zt4rmy9eTt/FR/e1WvzL4exjqWOPzRi9MsdYblMAAABA ldnbq27+d/sx
XRFFRFQ3PXqFQ8jIPt62IrZevUcFZK5Pu2StWUW3Z31mcOyo1vVUYucfOaXT +ZRtZ0wiIg7t
Irt72ohovEOalWafKil/nLqiJZWCXfHpwdMndnS1ERG1k4ejTfmv+MCYx4Ps xcYtpKufV6eo
CC+1aH27PFA/N+vC5Xk8DmHjo4LtRbRBURNbHl2fpi+3KQAAAKDKDAal0kdu IaY7tujmc/o/
u89b/njAfG7Pllyfri0cVSIiirnMpFz5wXwbk0FsNbaXf1DZqCwVNlDxkqrr 3jpUSKW216hE
RGzVtporP6ps1bZiYSoLAAAA7llSr3pGtx7Tta3Gv941bfqEZWk6i4hFl7Z8 wt8OdJ81obVW
REQK9yyLP1IiYsiIW3okeFios9hone0MF4rN10djl7BhwRlL1xwqUaQ0O3Hx To8B3b2r8Y6n
KteHotoffe+DXwosImLUnb1kvv1XLNqzPD7DIGLIjP8wI2hYqMtd3ngAAADU uaR+SxldRKyl
T3XT0Qmp5hmThjV/Ta8ScWk/Yt7WeaObXlnUoUVYxpSOwUfzdK6PzE983l8t lrDYaEvMg/7z
PLsvWh99eSlNYGzc4oyYgf4LzYo07Ds38ZX2WpHqm+Gt9hsb/9mJ555t2bhY q1V7Dln1nyU9
bvcV6weHHpnyUHBmnt71kbcTn/dXa8RaUwAAAMAdJPVbolKUW1lHlxTht2jq 8R+HulDtG8TH
JUZFR1IHAAAAiEhpaeXLrP8qUUTKy5DchRQAAAC479zilGuXoT9eHErVAAAA gLuK0XQAAACA
mA4AAACgMlxnEAAAAKhO6emH0g8cJKbfL+LjEikCAAAAqsUtXpARAAAAwN3H 3HQAAACAmA4A
AACAmA4AAAAQ0wEAAAAQ0wEAAABiOgAAAABiOgAAAFDncHuj6vfxmoTr//vc UyOoCTWn5gAA
gJhew9nlT3nl5kdAzak5AAComPVJL0ph+qeTega4N3B3d/MI7DX5s4OFFdyr tDRz9fxPDpWI
iIg+eZBnt3X5t3tn0ztcvQK6pF4e/b7R3c2XKCepPPfUiD+NO15RmDrKK/Dl NEPlVb2bamxf
m0+vn9g92MNWpWo0fkcxNb8HNTefTZk5oK23i5OTo4tv98nx2aXU/K4f54b9 b/X2c3N2dnJ0
cG81ZM4PZ82cdgAAVT173cx4cvVgd88h7/9aYFYUc8Gv7w9u6D549UmjUo6C r/u6dU88ryiK
opguHtl98Fy5i1bmdla3mI3mypcq2BDh3vfrgjvewvL9e3X8rT176ceRjQJm 7C2pvKrV5qZa
1eC+NusOp6b+enjzRL+m47YXUfN7UHNT3n8TvknLL1MU49nNk5s7PLzyhIma 3+3jvPD07xfL
LIpiKclc0del6aSdxQoAAFVhJaYb9r8e6BTx2emr5znTqVXdHQNf229QlIIN PR2aR8UMHTy4
f5f2HZ/5JKPEcuH7cW00ovYNCQvrHpty7NuBDbuuPWtRlJKstRM6+/n4Nmvc 9IHRy/dfsiiK
UrChp2Pw2BeiHx0QEdYi9KlV2aV/em3dd1dWr3TJgg09HYOefm5Irx49Hl94 0GA4vPiJsNYt
Aps38fHv+ffvci+nj+IjH49u7+Xt3yq034SJbVz7fl1w3UtY3cIaiek3/7J/ qur5stzk1we1
CwgIaN4sKGL6+hNliqJYig6uGNXO2yegddjAF1648tspRitL/qlW98m+vqz4 fy82r4mYXpdr
frmrbXrCI+jVfQZqfq9qbinOWN630QPzjpRy3gEA3G5MP5/Yo36LuYeuO5eU ps8Oqt/983MW
pWBDT3X9gWtPmRTFlJvwWJNOi7PLbhh5+iMElx1dGO7eZUF6sUUpzV7Zzz34 lbQSRSnY0FPj
Onx9nllRyjLmhfg++1Nh+TG94iULNvRUOw5ee+rKaKC5+NzFUouiKJbiA28/ GDhhe5GilB1d
EO7R4/1Mg6IUH5gfbqO5IaZb38Kaiuk3/7LXVdX428o+LUYm/l6mKEpp9sq+ vgPiz5jLMt4J
a9Tvo5xSRSk5/P+6aDR9vy6wvuSfa3Wf7Osaj+l1tuaKopRmvt/Tvc3rt3PI U/Nbrrnx2EeD
/D0dRRy7vb23kLMOAKCKrMxNV0QREdVNj17hEDKyj7etiK1X71EBmevTLlmd SqPbsz4zOHZU
63oqsfOPnNLpfMq2MyYREYd2kd09bUQ03iHNSrNPlZQ/47PSJR1CRvX1tv1j 5un+5c/2CGnb
PqxbzEeHTuw9UmBRdHuSsttMHBGoFanXelRsuEPVtrBGVPTLKrqda7flbJ87 tHN4eHiX4Uty
RJedX6bbu/FY63HDmtuJ2AcPHxfmWN6Sxj/X6j7c19T8XtbclLtx0uB/Ocz9 8rUQe2p+D2qu
9hvzTXaeTr9vnsOCJ179pYi5lgCAKrFypRfHFt18Tv9n9/lXWnpfDvHmc3u2 5Pp0beGoEoOI
Yi4zKSIqUcxl5tsIXraaK2dRlY3KUmEDlS2p0tSzu3LmLdrxcswK98927evl bqvfNCzoDaNF
ERGx0WhtVSIiKrVWrbqfd0RFv6yiWLTtXt64c4LvtQCinDsooropeFhZUkR3 Q63uy31Nze9V
zU25Gyf1fuHkpJQvx7ewp+b38Di3cWo/ckL7ma//nGvsFKjh3AMAqJSV0XRt q/Gvd02bPmFZ
ms4iYtGlLZ/wtwPdZ01orRURkcI9y+KPlIgYMuKWHgkeFuosNlpnO8OF4usv YKByCRsWnLF0
zaESRUqzExfv9BjQ3fsuXvzRXHTB6N4myNVWLGe3fLL1nPnyNjwWkLluW75F xJz7w7p9N1xN
pPq3sNwrXdzetequVVXl+tDI0Kx352/OM4mIYjiVtjfPqHLpMMQvffn6Y2Ui hsyEFXsKpZwl
K3qRv+K+pua3X3NTbtLEiNjfYpO/nNS2voqa34OaWwqO7DlaYBIRS2F6/Iq9 9cMeaERGBwDc
bkwXddPRCalv+8QPa+7u7u7u/3hCk3lb40c3vXJGcmgRljGlY3CzZj0+Dpj/ 2fP+anEIi422
zH7QPyAk5utzV4aSNIGxcYvbfzHQv0mTZt0/8Jyb+Ep77V38NZy6zpnp8/7A ngMffXTsl/WC
3NWXt2HCZ2/av9W3+4BHh03e7Op14wbcjS20mmBu83rS11U12fG5zxOfOvFS hyZNfH2bBvV7
c0u+WTRBL3w6u8HCjr5+LTpNOdQmyKWexkbUfmNuXrIiNbmvL22Jae7i2e3/ HTu5IqKRS7OR
P1yi5ne35ob9CyavzDid+moXLxdnZ2f3kBm7S6j53a25Rb9n0RMt3J2cHJ28 +33kOivpvR5O
nHcAAFWiUpRb+ZBXlxTht2jq8R+HulC6ct2ruzMqZYVlGketSsp+Wx3ZdWmf bT9Nbl6No9h/
qX1Nzal5Xag5AKBO4S6k1e9e3YuxaOfMiLE/XFIM+uIGvWetGeOnpubUnJoD AFBL3OJoOgAA
AIC7z4YSAAAAAMR0AAAAAMR0AAAAgJgOAAAAgJgOAAAAENMBAAAAENMBAAAA YjoAAACAGsYN
/e5IfFwiRcB9JSo6kiLQu0HvBr0btaB3E9P5uwnOPaB3g95N7wbuu97NpBcA AADgvkNMBwAA
AIjpAAAAAIjpAAAAQC2J6UpxZsKMwe283d0bNvTwaBIyaNqajJIa2DpdUi+P ft/obnywMHVU
A5WqnpOzs7Ozs3OTx7++qE8e5NltXb5ivRGrz1pt2Xx6/cTuwR62KlWj8TuK OThQK9XN3m0+
mzJzQFtvFycnRxff7pPjs0s5EkDvriXnbsP+t3r7uTk7Ozk6uLcaMueHs2YO BdTmmG76fW30
w1MO9/3owJnz+fnncvd+HFU//YjuxuNesZgsNbbV2oAZO/L1er1er//9qyEN HDovTF7ev4Hq
TptVObYa8X8J/9000U/LkYHaqc72bnF6YNLaA+cuXSrI+jj027FPrz7JmRz0 7trRu+0Cnv0s
LU+nv3Tp/C/TS9977v/2lHA0oPbG9NLDy+akhry3cnJHD42IiKZhWMw/3x7q ZSsiuqQIp+Bn
xjzau2dE5JIjpWLIXhfbpXnjZn5NfMOeXnGgUBExn/qoc9NRqYUiInLhi56e g5L1IrqkCEf/
6NGPDRnyyMMhnZ5dlWkQETGdSZk1uH1gYKC/X3CvlzacNIqIlGR88nSIt09A 6w79Z35fpTfF
RTumDxi/6aJSToNXVdayjXPLHj06NHPVqDgwUDvV2d5t6/nw8EEhHhoRdcOH Bj9Q7+yxiyYO
B9C7a8e528G78eUTt6IoYt+wqYsthwNqb0wvzPjptE/EA27lTFs35J7vvez7 1NQvp7W2yfow
asr+J7/JOn48JzX2zKtPvrXfUMGfkDz9I0s3fJ2ybdP0gllPr8wxmk6sipma 80zy4aysnMyU
kQdeHP9VnsWY9eFTM34bt+1Y9qHtC/x3HS6y2lT2O9283dzc3Nz8RiRf+/TL aoNXn61Sy0Ct
Ru+WsqOr/5XaaMTwYD4zA7271vRu0/F/Dw5o5Fy/xUuGaf9+oYUdhwNqb0y/ oV+nvfmwX2Mv
N8emMVsuv8cWh5BRfb1tRUQU3Z71mcGxo1rXU4mdf+SUTudTtp0pf4TKIWRk H29bEVuv3qMC
Mten6XU7127L2T53aOfw8PAuw5fkiC47v0y3Jym7zcQRgVqReq1HxYY7WGtK G/D3n3IvXLhw
4cLxhAEufzyqWGvQeO3ZqrQM1Bl1sXebcjdOGvwvh7lfvhZizxEAenet6d1q vzHfZOfp9Pvm
OSx44tVfGG+vgjIAAA0iSURBVIZDbWHlLqSOwd18Tv+498IrLb1s7EPn/Hz8 9cx5HTpvN155
b6vS1LOraFKISmWjEuXylz4Us/Hax1OKucykiKhEMZeZFRFRFIu23csbd07w vfb5lHLuoNho
tLYqERGVWqu+lfkn1hoU0V/3puR2WwZqhzrdu025Gyf1fuHkpJQvx7cgpIPe XfvO3TZO7UdO
aD/z9Z9zjZ0CNRwSqAWsjKZrW4+f1S1t6vNLfjlrFBFRSnUXDda+ia1yCRsW nLF0zaESRUqz
Exfv9BjQ3Vtt49SsmZKVnm8SMedtTUy/+qa2cM+y+CMlIoaMuKVHgoeFurg+ NDI06935m/NM
IqIYTqXtzTOqXMIeC8hcty3fImLO/WHdvlu44IrKWoPXb+1ttwzUEnW3d5ty kyZGxP4Wm/zl
pLb1eY8Oenft6d2WgiN7jhaYRMRSmB6/Ym/9sAcakdFRS6itPdY0JuEn9RvT n2v7ximTnb3W
wfuBx975R0fHmxbUBMbGLc6IGei/0KxIw75zE19prxXRdv3H7IDIAZ03+Hs1 9Gvoqc27srRD
i7CMKR2Dj+bpXB+Zn/i8v1otYz5PzB03rUOTsWo7UZzCpiYkdGgUOOGzN9NG 9+2+zNetvrur
lzb/Fn4ZP2sNXtvaSlu+tCWm/bANZ/SFBoloFN9oyJfp6/o4cZCgNvX4Otq7 DfsXTF6Zcdr+
1S5er4mIpvmETb/MD6/HAQF691++d1v0exY9MX3jsWKzRZxbPTor6b0enLhR W6gURbkXr6NL
ivBbNPX4j0NdalX54uMSo6IjOYxQpw9IejdA76aYwF04ILkLKQAAAHDfUd+j 13EZ+uPFoZQb
qIXo3QC9G8BdwGg6AAAAQEwHAAAAQEwHAAAA/nLUlOAOxcclUgSA3g2A3g1U r3t1QUYAAAAA
VcakFwAAAICYDgAAAICYDgAAABDTAQAAABDTAQAAAGI6AAAAAGI6AAAAQEwH AAAAQEwHAAAA
QEwHAAAAiOkAAAAAiOkAAAAAMR0AAAAAMR0AAAAgpgMAAAAgpgMAAADEdAAA AADEdAAAAADE
dAAAAICYDgAAAICYDgAAABDTAQAAABDTAQAAAGI6AAAAAGI6AAAAAGI6AAAA QEwHAAAAQEwH
AAAAiOkAAAAAiOkAAAAAMR0AAAAAMR0AAAAgpgMAAAAgpgMAAAAgpgMAAADE dAAAAADEdAAA
AICYDgAAAICYDgAAABDTAQAAABDTAQAAABDTAQAAAGI6AAAAAGI6AAAAQEwH AAAAQEwHAAAA
iOkAAAAAiOkAAAAAMR0AAAAAMR0AAAAAMR0AAAAgpgMAAAAgpgMAAADEdAAA AADEdAAAAICY
DgAAAICYDgAAAICYDgAAABDTAQAAABDTAQAAAGI6AAAAAGI6AAAAQEwHAAAA QEwHAAAAiOkA
AAAAiOkAAAAAiOkAAAAAMR0AAAAAMR0AAAAgpgMAAAAgpgMAAADEdAAAAADE dAAAAADEdAAA
AICYDgAAAICYDgAAABDTAQAAABDTAQAAAGI6AAAAAGI6AAAAQEwHAAAAQEwH AAAAYJ2aEtyJ
+LhEioCaFRUdSREAcHIEat+pnJhOSALnQgDg5AjUgPT0Q+kHDpb3LDEdAAAA qGalpVWI6eVn
dGFuOgAAAHAfYjQdqOWU4szPZ0+fu3rHaZONStE27hj594VvPdWi3r3eDl1S r4APpmd/P9jl
ugcLU0c1jVhncHTSqETEuc/aA6vUTwW+NergtpENVVYa0ScPuvlZqy2XHpzd ru2ck5dbrhf2
9o7vJ/prKtzAj9ckVPwbPPfUCA4nAAAxHUB1MP2+NvrhlyyvbzywvqOHRoz5 e+IXJR7RmVvU
s70uyVtMio26hj5b0wbM+DF9Xqj9lf+aCxYmL/dooKqGlu2Cpv1338KwW3hD UkEQrzTEAwBQ
vayfmJXizIQZg9t5u7s3bOjh0SRk0LQ1GSU1sHW6pF4e/b7R3fhgYeqoBipV PSdnZ2dnZ+cm
j399UZ88yLPbunzFeiNWn7Xa8hUl+/4RolJ5PPffIo4P/NWVHl42JzXkvZWT O3poREQ0DcNi
/vn2UC9bEdElRTgFPzPm0d49IyKXHCkVQ/a62C7NGzfza+Ib9vSKA4WKiPnU R52bjkotFBGR
C1/09ByUrBfRJUU4+kePfmzIkEceDun07KpMg4iI6UzKrMHtAwMD/f2Ce720 4aRRRKQk45On
Q7x9Alp36D/z+7PmKmxx0Y7pA8ZvuqiU0+C1fnrLLQN3rM6eHJXiw59OeNjX xdHJyTUgct0p
ehxQYzHd9Pva6IenHO770YEz5/Pzz+Xu/TiqfvoR3Y29UrGYLDW21dqAGTvy 9Xq9Xq///ash
DRw6L0xe3r9aht9EivfOf+G7VgMaazk4UAsUZvx02ifiAbdyRsoNued7L/s+ NfXLaa1tsj6M
mrL/yW+yjh/PSY098+qTb+03VBD/8/SPLN3wdcq2TdMLZj29MsdoOrEqZmrO M8mHs7JyMlNG
Hnhx/Fd5FmPWh0/N+G3ctmPZh7Yv8N912Oo739Lsd7p5u7m5ubn5jUi+lg6s Nnj12Sq1bMxe
+oifWwPvNgNnfJFj4GDAnaqzJ0fL+ZQJff5+evR3p/SX9Hk75kU04HttQE3F 9Do9/Fa0+18T
/zPo/Slt7FUcHKhlDGlvPuzX2MvNsWnMlssdVBxCRvX1thURUXR71mcGx45q XU8ldv6RUzqd
T9l2xlRuWw4hI/t424rYevUeFZC5Pk2v27l2W872uUM7h4eHdxm+JEd02fll uj1J2W0mjgjU
itRrPSo23MF6sPj7T7kXLly4cOF4woCrs8sVaw0arz1bact2/hM2nbqQl3c+ d9eCNinPDpl/
sJRDAHekzp4cLXnfvrXB/eWFz7V1tBGV1tPfuz5nSKCmYnrdHX5TCnf9c+KP Qz6Y1qYeRwZq
B8fgbj6nf9x7wSIi9qFzfj5+fNvLfsV645WOodLUs6vofKtS2ahEufyhuGI2 Xjt9K+Yyk3Ll
B7MiIopi0bZ7eePO3bt37969e1/Wbz+/2lYrIjYara1KRESl1qpv5dReXoPX /nhV3LKqnpef
V30bUdk37Ts5NvjEfw4ziw13ps6eHEtP7PzNzj3nn31a+Po0btlnakI2H04B VWdvr7r53+3H
9Lo6/KYU7vxHbOrQD6e1YyQdtYa29fhZ3dKmPr/kl7NGERGlVHfRYG2mqsol bFhwxtI1h0oU
Kc1OXLzTY0B3b7WNU7NmSlZ6vknEnLc1Mf3q+btwz7L4IyUihoy4pUeCh4W6 uD40MjTr3fmb
80wiohhOpe3NM6pcwh4LyFy3Ld8iYs79Yd2+4qpvuMpag9dvbSUtWwpPZJ4u toiI6fzOTz/J
bNQ5sD6HA6pNnfpsSrFYys5v399uyZ7fTqZ/3HnL88M/OGrkGACq+ufiprOu waBUcV11+cNv
r7T0srEPnfPz8dcz53XovL26ht9UNw2/TfC9dskJ5dzBOx9+u75BEX0Vh9+M p3768ei+oz0a
LxCl7GJBkfRveXH1r1893pDQjr8wddOYhJ/Ub0x/ru0bp0x29loH7wcee+cf HR1vWlATGBu3
OCNmoP9CsyIN+85NfKW9VkTb9R+zAyIHdN7g79XQr6GnNu+PYNEiLGNKx+Cj eTrXR+YnPu+v
VsuYzxNzx03r0GSs2k4Up7CpCQkdGgVO+OzNtNF9uy/zdavv7uqlzb+FDfez 1uC1ra2kZfO5
/7za72/fnymzmMS1/fCF618PsedowB2pqydHsfNq5VWvXUxkG0eVrYRHP+nz QWp2yUtBGg4J
oOpJ/eoIetUz+uXeexPjiU8HuXsOXrQjr0xRFMVyadfLAQ0eTdEpilKwoadr zw0FVxYsO7ow
3K3zu+nFFsWQtbKfR4tX0wyKov8hqvGDi3OMimLKTRzmWn/gdzpFKdjQ08b2 oQUHixWl5PCi
hz06Ls42Go8t6+Yc8ELyGaOiKJaS3/f+eqZMKTu68CHf4RvOmhXFdGrtQAdt 368Lbty8Sz+O
bBQwY2/JtUd03w1s2HXtWYvVBq8+W3nLV5X8+reAxs/+VKhUJm7d5wpQc2rm CLzx70Ct8e/V
8bf9LOqEOntyLMt4N9x7wMc5pYqlOP3djs7t/nm4lJMjUCmD4YZ/lzP6n/7F rfu8gv6iZvgN
AAA+myq3ZU3wpPh3Mkf1bPZaqcmm6eCFcS+2sONwAG5jTP1WV1EpinIvNk2X FOG3aOrxH4e6
1KqKx8clRkVHcuSBI7AW4C6kqAGcHIHaq7QKVxhb/1WiiJTXX7gLKQCQwgEA 9517FdNdhv54
cSjlBgCAkyOAquBOYgAAAAAxHQAAAEBlmJsOAAAAVKf09EPpBw4S02tYfFwi RQAAgJMjUL3u
1QUZAQAAAFQZc9MBAAAAYjoAAAAAYjoAAABATAcAAABATAcAAACI6QAAAACI 6QAAAAAxHQAA
AAAxHQAAAAAxHQAAACCmAwAAACCmAwAAAH91/x+f/mG8RkiBowAAAABJRU5E rkJggg==
--------------060109060005000707050608
Content-Type: image/png;
name="screenshot_2nd_run.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screenshot_2nd_run.png"

iVBORw0KGgoAAAANSUhEUgAAA+QAAAFCCAIAAAD35YCcAAAAAXNSR0IArs4c 6QAAAAlwSFlz
AAAQdQAAEHUBmDo42wAAAAd0SU1FB9kBAwkXEi/br0gAAAAZdEVYdENvbW1l bnQAQ3JlYXRl
ZCB3aXRoIEdJTVBXgQ4XAAAgAElEQVR42u3deVyU5f7/8c/ADIOyCoiAisjq DgZlmhuuuWWe
QkHCFk3F1NTOMVusPF9PJy3Nn5a5dMxyAeKUYguYHUM7aXo0UXEBAU1TRFyY kWVglvv3h+SS
gIiCBq/nwz9w7nuuufnc18X9nouLe1SKoggAAACA+48VJQAAAAAI6wAAAAAI 6wAAAABhHQAA
AABhHQAAACCsAwAAACCsAwAAAKiMmhLUTHxcIkUAAADAXREZFUFYr6OaAgAA ANVXxSwwy2AA
AACA+xRhHQAAACCsAwAAACCsAwAAAPU6rCv6fUvHPNjCxdXd3c3Vs/0TH2aU iZRmrpn/yeGS
ivbXJw9x77E+X6GmAAAAQO2G9dL0d6NeO/n0lt/Onzt3Pu/wlzO7u1qJGDLX zFt9U1hXLCaL
2HVdmLx8YBMVNQUAAABqN6ybCn4r0HoHejRSiYi6SVCXYDfrS1tmzkq9uOOl PmFhvSZtPr4x
3CHwmbGP9e0dHrHkaGnRzhmDJmy+pIguKdwh6PnJo4cP7hPWpnPMpzllIqIU H175VCev5v7t
w4ZMntyhyYCvdRQfAAAAqFFYtwud9lL7bwa1Curx+LN/fTdhT75RVE36z3+n t0u3BVv37Nm2
dKCLSgy5F/ou+y419Yvp7bTXP7n0nL7fog3fbt25KergG3N3F4nx2NIxs/Nf /Ol41qH/Lgjc
l1lE5QEAAICahnVpHPy378/k7vhoykAf/bfTH247Kv60+aZEHxzd39O6gqTf MaKnu5WIxjO4
VWn26RKLbt+m4+3Gj2htI2IbOHJ8qD2VBwAAAG6hyk8wVWndO/Qd2aHvyOce d2vbddnOgsj+
f9hB08imwkXq1pryCK+yUlnMV/7oVMVydgAAAOA2VDqzXnbyuy+3Hy+yiIhS cnzn/y44+jWz
FSuto43hYrH5Nl9F5dR5mE/68g3Hy0QMmQkr9hZSeQAAAKCmYV2Mp795baCf e1P3pq6evZc6
vhw/r5ud2IXGRlneetDXLzjmq/O3cZdGTcALn77VZGEXb5+gh6cebh/g1EjD Hd4BAACAKqkU
pW7ujK6UFZZp7LUqKft1TUT3pf22/ziltfpPXLj4uMTIqAg6EAAAAGovWNZZ Xi7aNSt83PeX
FYO+uEnf2WvH+qg5LwAAAEBV6iwy2/f44H8Z1BsAAACoNlaOAwAAAIR1AAAA AIR1AAAAoB7g
zzxrLj4ukSIAAACg9tTZrRsBAAAA3B6WwQAAAACEdQAAAACEdQAAAICwDgAA AKC2cDeYGuJW
MAAAALhbIqMiCOt1VFMAAACg+qqYBWYZDAAAAHCfIqwDAAAAhHUAAAAAhHUA AACgXod1ffIQ
9x7r85WKt5Zmrpn/yeESCggAAADUfVi367owefnAJqqKtxoy18xbTVgHAAAA 7kVYL9o5Y9CE
zZcU0SWFOwQ9P3n08MF9wtp0jvk0p0y5tGXmrNSLO17qExbWa9Lmiwp1BAAA AO666t1nvfSc
vt+iDY+7mzPnP9h/7u4nV/Wf/07vf787fuu2J12oIQAAAFArqvcHpnYdI3q6 W4loPINblWaf
LmEqHQAAALhPwrpYa6yvfKGyUlnMZHUAAADgvgnrNz9P62hjuFhspoIAAADA fRbW7UJjoyxv
PejrFxzz1Xlm2gEAAIC7T6UoRO2aiI9LjIyKoA4AAACovWDJJ5gCAAAA9ynC OgAAAEBYBwAA
AEBYBwAAAAjrAAAAAGqLmhLUWHxcIkUAAABA7eHWjQAAAMB9imUwAAAAAGEd AAAAAGEdAAAA
IKwDAAAAqC3cDaaGuBUMAAAA7pbIqAjCeh3VFAAAAKi+KmaBWQYDAAAA3KcI 6wAAAABhHQAA
AABhHQAAAGgwYV2X1MdtwNe622lYlxTeJDzpD0/RJw9x77E+X6HuAAAAwF0K 6wAAAADup7Be
kvHJ08GeXn7tOg+c9d0585UHDdnrY7u1bt7Kp4V36NMrDhYqIubTH3dtGZ1a KCIiF//d231I
sl5ERMx5KTMHhLT18/IKeWZ1puGGxk1nU2YP7eTv7+/rE9jnpY2njJwKAAAA oJph3Zj10VMz
fx2//Xj24R0LfHcfKSp/MHLqgSe/zjpxIic19uyrT759wFB528XH9rdd/POR 7OOp447PHLMy
51ogN51cHTMt55nkI1lZOZkpow++OOHLPAsnAwAAAKhWWNftTcpuP2mUv1ak Ubvo2DA7EVF0
ezdkBsZGt2ukEhvfiKkPX0jZftZUadt2oRMiA21FtAGRk9oc25B2+fcNim7X uu05O+YO7xoW
FtZt5JIc0WXnM7cOAAAA3KCqTzC10mitVSIiKrVWrap0N5XKSiXKlT8aVcxG czVeVVEs2o4v
b9o10duaUwAAAABUEsgr2+AU+rhf5vrt+RYRc+736/cXi4jKKXREYMbStYdL FCnNTly8y21Q
T0+1lUOrVkpWer5JxJy3LTG96PcmivYuj88wiBgy4z/KCBgR4ng13js/NDok 6735W/JMIqIY
Tqfty2NiHQAAALhRpTPrGv+Jn72ZNqZ/z2XeLo1dnT20+SKi8Y+NW5wRM9h3 oVmRpv3nJr7S
SSui7f73t/wiBnXd6OvR1KepuzavvInGgSFHpz4UmJmnd370ncTnfdWi//1V fcZ+npg7fnrn
FuPUNqI4hE5LSOjcTMPpAAAAAK5RKQp3Pa+J+LjEyKgI6gAAAIDaC5bcZx0A AAC4TxHWAQAA
AMI6AAAAAMI6AAAAQFgHAAAAUFvUlKDG4uMSKQIAAABqD7duBAAAAO5TLIMB AAAACOsAAAAA
COsAAAAAYR0AAABAbeFuMDXErWAAAABwt0RGRRDW66imAAAAQPVVMQvMMhgA AADgPkVYBwAA
AAjrAAAAAAjrAAAAQL0O64Wp0U1Uamf3Zs3cXZs06zjy/T16RUREnzzEvcf6 fKXqZ3l4eLi7
t+gwIPbDn/JN1T+cqhuv7acDAAAAf46wLiJav5dST+blnTv/W8pf9r825Ytc i4jYdV2YvHxg
E1XVzzp79uy5MwfWji5ZOKDn67uLqns4t2wcAAAAIKxfTzEWG5TG7q62KhEp 2jlj0ITNlxRR
ig+vfKqTV3P/9mFDJk/u0GTA17obn6Z2CXlmyarIS8veTi0Q09mU2UM7+fv7 +/oE9nlp4ymj
iIjx9DevDWrbomVrPz+/Bydv019rXJcU7hQ8Y8awzgHN3bx6vLL5l/gp4R18 3JxaDnpvf5Ei
IqVHlzwZ1r5NgG/L5n7hM5PPmjmXAAAAaEhhvTT7/X6+zb3cHZt0X+k7Z/5A l+tnvI3Hlo6Z
nf/iT8ezDv13QeC+zIpnz+3b9/cvO7LvVNbqmGk5zyQfycrKyUwZffDFCV/m WUwnPh415psH
V6X/ejw7O2PrW6F2Nzy1OCu9zYKdx04dWuT04ZDIbQPj0k6c/nnK2XmvbLmk iGhajf54R/rR
Yzkns5IeTZ06Z3cxJxMAAAD1S5UfiqT1m56SPi/EVik+suzx8JHv9Nr9Zgdt +TZFt2/T8XYv
jmhtIyKBI8eHvrWu0nZUim7Xuu05J/KHd31HRMRYIPbZ+WUFh+PTA2f8u4uz lYioHdzsRfTX
PcvugbF/CbAVlXVwdx8Pl8hwD7WId7cHGsdlXTSJi1XhgeXT3ly/v8Da1vry 0ZOuRwssXRtz
PgEAANBQwvrVsN046LGRLf+69Me81zt437DhlovLCw9tydK2fcVD872248ub dk30tr66STl/
WCVS+R+DqtS2GpWIiLXaWlP+pcpabS0WRaRo58sxK1w/272/j6u1fvOIgDeM Fv6sFAAAAPVL
9W7dWHZya1KWrb+v07WorXLqPMwnffmG42UihsyEFXsLb3qW6cK+1VOei3ed +Gpvn4dGh2S9
N39LnklEFMPptH15RpXzQ5Gdjr3/4c8FFhEx6s5dvo3bxpiLLhpd2wc4W4vl 3NZPtp1nyToA
AADqnSpn1kuz3+3huVKjshgVt26xa1b0dbpuoybghU/f2juqi/f/NfEI7P1Q gFOexurqs7w+
thGLYusVOnzGlm0TH7SzlrGfJ+aOn965xTi1jSgOodMSEjo38xkX/9nJ555t 07xYq1W7D1v9
nyWdq3vcDt3nzPJ6anDvpNZOaqemAa5qTiUAAADqG5Wi1Hj5iFJWWKax16qk 7Nc1Ed2X9tv+
45TWDSY0x8clRkZF0IEAAABQe8HyTsJ10a5Z4eO+v6wY9MVN+s5eO9aH6W0A AADg7rmTfG3f
44P/ZVBCAAAAoHZYUQIAAACAsA4AAACAsA4AAAD8+fE3oTUXH5dIEQAAAFB7 7uTWjQAAAABq
EctgAAAAAMI6AAAAAMI6AAAAQFgHAAAAQFgHAAAACOsAAAAACOsAAAAACOsA AADAn03ln2Cq
Swr3WTTtxA/DnWrUsD55iP/b0Ye2j26qqpeFW7U2oeodnntqFN0LAAAAtRPW cStVxPFbRnkA
AADglqpcBmPOS5k5IKStn5dXyDOrMw0iIobs9bHdWjdv5dPCO/TpFQcLlUof vMp0NmX20E7+
/v6+PoF9Xtp4yigipUeXPBnWvk2Ab8vmfuEzk8+aRUR0SeEOQc9PHj18cJ+w Np1jPs0p4/wA
AACAsF6x4mP72y7++Uj28dRxx2eOWZljNGZ9FDn1wJNfZ504kZMae/bVJ98+ YJAKH7wW1U+u
jpmW80zykaysnMyU0QdfnPBlnkU0rUZ/vCP96LGck1lJj6ZOnbO7+Mrepef0 /RZt+Hbrzk1R
B9+Yu7uIEwQAAADCeoXsQidEBtqKaAMiJ7U5tiFNr9u7ITMwNrpdI5XY+EZM ffhCyvazxooe
NP3ehKLbtW57zo65w7uGhYV1G7kkR3TZ+UZRCg8sf7ZXcIdOoT1iPj58ct/R AsuVV+wY0dPd
SkTjGdyqNPt0icIZAgAAQINV62vWFcWi7fjypl0Tva2vPVj035djVrh+tnt/ H1dr/eYRAW8Y
LeWx3FpTvpvKSmUxk9UBAADQgFU5s160d3l8hkHEkBn/UUbAiBAnp9ARgRlL 1x4uUaQ0O3Hx
LrdBPT01FT149T2Ayvmh0SFZ783fkmcSEcVwOm1fnlHMRReNru0DnK3Fcm7r J9vOmzkRAAAA
wB9VObPeODDk6NSHAjPz9M6PvpP4vK9aI7FxizNiBvsuNCvStP/cxFc6aUXl X8GDUvr7C/iM
/Twxd/z0zi3GqW1EcQidlpDQuX33ObO8nhrcO6m1k9qpaYAr96QBAAAAbqJS FNaa1MSqtQlV
37qR+6wDAADgDvEJpgAAAMB9igUoNccnHwEAAKBWsQwGAAAAuE+xDAYAAAAg rAMAAAAgrAMA
AACEdQAAAACEdQAAAICwDgAAAICwDgAAAKBSfChSDcXHJVIEAAAA3BWRURGE 9TqqKQAAAFBN
6emH0w8eqmwrYR0AAACoFaWl1QjrlSd1Yc06AAAAcN8irAMAAACEdQAAAAB3 K6wrhemfTu7t
59rE1dXFzb/PlM8OFSqV712auWb+J4dLREREnzzEvcf6fKWGB3WHT68BXVJ4 k/AkHf0BAAAA
f4qwbvptXVTvmScj/p1z4cKF89mJT5z4a6+odb+ZKtvfkLlm3urysG7XdWHy 8oFNVDU8qDt8
OgAAAFC/w3rpkeVztnV6b3lsZycrESunzhOXv9s+dc6yI6UiuqRwe9+oMY8P G/boI8EPP7s6
06Bc2jJzVurFHS/1CQvrNWnzqR0zBk3YfEkRMWSvj+3WunkrnxbeoU+vOFio iIguKdwh6PnJ
o4cP7hPWpnPMpzllf3jtop3lT7/lnmI8/c1rg9q2aNnaz8/vwcnb9JW+olPw jBnDOgc0d/Pq
8crmX+KnhHfwcXNqOei9/UXlE/jmvJSZA0La+nl5hTyzOtMgUnFTAAAAwD0P 60UZP57x6hvm
enUHa7ewPp5nfjx6JbKW5ukfXbrxq5Ttm2cUzH565XH7/vPf6e3SbcHWPXu2 LR3oUj4pbsz6
KHLqgSe/zjpxIic19uyrT759wHDlrcA5fb9FG77dunNT1ME35u4uqvwAq9zT dOLjUWO+eXBV
+q/Hs7Mztr4ValfpKxZnpbdZsPPYqUOLnD4cErltYFzaidM/Tzk775Utl65k 8OJj+9su/vlI
9vHUccdnjlmZY6y0KQAAAKDabG1VN/+707CuiCIiqpseLWcXPLqfp7WItUff aL/MDWmXK2xD
t3dDZmBsdLtGKrHxjZj68IWU7WdNIiJ2HSN6uluJaDyDW5Vmny6pfM66qj2V gt3x6YEzJnVx
thIRtYObvVXlr/jA2L8E2IqVS3B3H4+HI8M91KL17vZA49ysi1dW9tiFTogM tBXRBkROanNs
Q5q+0qYAAACAajMYlFs+ctth3T6oh9eZ/+y5YPn9AfP5vVtzvboH2atERBRz mUkp/8Jcg+Uh
1hrrK1+orFSWKhuoek/VdW8gqqRS22pUIiLWamtN+Zcqa7W1WFjcAgAAgDrL 69VP6lWFdW3b
Ca93T5sxcVmaziJi0aUtn/jXgz1nT2ynFRGRwr3L4o+WiBgy4pYeDRwR4ihW Wkcbw8Vi8/UB
2Sl0RGDG0rWHSxQpzU5cvMttUE/Pu/iZqSrnhyI7HXv/w58LLCJi1J27bK75 KxbtXR6fYRAx
ZMZ/lBEwIsSplg8eAAAADS6v31ZSF5HK06e65ZiEVPPMySNav6ZXiTh1GjVv 27wxLcufYBcU
mjG1S+CxPJ3zo/MTn/dViyU0NsoS86DvPPeeizZEXdlL4x8btzgjZrDvQrMi TfvPTXylk1bk
7q38VvuMi//s5HPPtmlerNWq3Yet/s+SXjV9xcaBIUenPhSYmad3fvSdxOd9 1RqpqCkAAADg
DvL6bVEpyu0vA9Elhfssmnbih+FODbfW8XGJkVER9DkAAABUprT01vts+DJR RCoLlnyCKQAA
AHCfqtEibKfhP1waTu0AAACAWsXMOgAAAEBYBwAAAHA7uBchAAAAcPelpx9O P3iIsH7PxMcl
UgQAAADUnhrduhEAAABA7WPNOgAAAEBYBwAAAEBYBwAAAAjrAAAAAAjrAAAA AGEdAAAAAGEd
AAAAQKX4UKS7YNXahOv/+9xTo6gJNafmAACAsH5fJJg/pJabHwE1p+YAAKAG qloGoxSmfzq5
t59rE1dXFzf/PlM+O1RYxaedlmaumf/J4RIREdEnD3HvsT6/pp+NeodPr4Iu qY/bgK91d+0l
Kswrzz016g9zkOUKU6M9/F9OM9y6gLXpnp1W85kNk3oGulmrVM0m7Cym5nVQ c/O5lFmDOng6
OTjYO3n3nBKfXUrNa72fGw683dfHxdHRwd7Ote2wOd+fM3OdAQDc0SWtMsZT a4a6ug/74JcC
s6KYC375YGhT16FrThkr27/gq/4uPRMvKIqiKKZLR/ccOl/prrdSk6dbzEbz rfcq2Bju2v+r
gjs+QkVRFOVfa+Jvb+vlH0Y385u5r+TWBbxrbirLPTytZt2R1NRfjmyZ5NNy /I4ial4HNTfl
/Tfh67T8MkUxntsypbXdIytPmqh5bffzwjO/XSqzKIqlJHNFf6eWk3cVKwAA 1FilYd1w4HV/
h/DPzly9BJpOr+5p7//aAYOiFGzsbdc6Mmb40KEDu3Xq8swnGSWWi9+Nb68R tXdwaGjP2JTj
3wxu2n3dOYuilGStm9jVx8u7VfOWD4xZfuCyRVGUgo297QPHvRD12KDw0KCQ p1Znl/7htXXf
lj/9lnsWbOxtH/D0c8P69Or1l4WHDIYji58IbRfk37qFl2/vv32beyWYFB9d NaaTh6dv25AB
Eye1d+7/VcF1L1HhEdZ2iLn5+/pDAS+U5Sa/PqSjn59f61YB4TM2nCxTFMVS dGhFdEdPL792
oYNfeKH8G1GMFez5h7LcJ6f1iuL/vdj6XoT1hlzzK6Nq8xNuAa/uN1Dzuqq5 pThjef9mD8w7
WsqFBgBQC2H9QmKvxkFzD193mSlNfyugcc/Pz1uUgo291Y0HrzttUhRTbsLj LR5enF12w9TU
71G47NjCMNduC9KLLUpp9soBroGvpJUoSsHG3hrnkRvyzIpSljEv2PvZHwsr D+tV71mwsbfa
fui60+XThebi85dKLYqiWIoPvvOg/8QdRYpSdmxBmFuvDzINilJ8cH6YleaG sF7xEdZBiLn5
+7qugMZfV/YLGp34W5miKKXZK/t7D4o/ay7LeDe02YCPc0oVpeTI/+um0fT/ qqDiPf9Ylvvk
tN7zsN5ga64oSmnmB71d279e/d5Nze+g5sbjHw/xdbcXse/xzr5CLjMAgDtR 6Zp1RRQRUd30
aDm74NH9PK1FrD36Rvtlbki7XGEbur0bMgNjo9s1UomNb8TUhy+kbD9rEhGx 6xjR091KROMZ
3Ko0+3RJ5ctDb7mnXXB0f0/r35epHlj+bK/gDp1Ce8R8fPjkvqMFFkW3Nym7 /aRR/lqRRu2i
Y8PsqneEta2q70vR7Vq3PWfH3OFdw8LCuo1ckiO67Pwy3b5Nx9uNH9HaRsQ2 cOT4UPvK9jT+
sSz34Wm9JxpszU25myYP/afd3C9eC7al5nVQc7XP2K+z83T6/fPsFjzx6s9F LLcEANRcpXeD
sQ/q4XXmP3suvNLG80qgN5/fuzXXq3uQvUoMIoq5zKSIqEQxl5lrkMmsNeUX WJWVylJlA7fa
U6VpZFN+US7a+XLMCtfPdu/v42qt3zwi4A2jRRERsdJorVUiIiq1Vq26Typf 1felKBZtx5c3
7ZrofS2GKOcPiahuih8V7Cmiu6Es9+VppeZ1VXNT7qbJfV84NTnliwlBttS8 Dvu5lUOn0RM7
zXr9p1zjw/4aLjYAgJqpdGZd23bC693TZkxclqaziFh0acsn/vVgz9kT22lF RKRw77L4oyUi
hoy4pUcDR4Q4ipXW0cZwsfj6Ox+onEJHBGYsXXu4RJHS7MTFu9wG9fSsxZtF mosuGl3bBzhb
i+Xc1k+2nTdfOYbH/TLXb8+3iJhzv1+//4bbkNzREVZ6N4ya3dXuWgFVzg+N Dsl6b/6WPJOI
KIbTafvyjCqnzsN80pdvOF4mYshMWLG3UCrZs6oX+TOeVmpe85qbcpMmhcf+ Gpv8xeQOjVXU
vA5qbik4uvdYgUlELIXp8Sv2NQ59oBlJHQBQC2Fd1C3HJKS+4xU/orWrq6ur 718SWszbFj+m
ZfnFyi4oNGNql8BWrXqt8pv/2fO+arELjY2yvPWgr19wzFfny+eaNP6xcYs7 /Xuwb4sWrXp+
6D438ZVO2lr8Zhy6z5nl9cHg3oMfe2zcF40CXNVXjmHiZ2/avt2/56DHRkzZ 4uxx4wHc4RFW
mGNqeP/p6wqYbP/c54lPnXypc4sW3t4tAwa8uTXfLJqAFz59q8nCLt4+QQ9P Pdw+wKmRxkrU
PmNv3rMq9/K0Xt4a09rJvcf/O35qRXgzp1ajv79817IjNa+Q4cCCKSszzqS+ 2s3DydHR0TV4
5p4Sal67Nbfo9y56IsjVwcHewXPAx86zk97v5cCFBgBQcypFuf3fAuuSwn0W TTvxw3AnClie
Wv6QbGrndZSywjKNvVYlZb+uiei+tN/2H6e0vosz2n+q00rNqXlDqDkAAHyC 6V1QV5/jWLRr
Vvi47y8rBn1xk76z1471UVNzak7NAQCoz2o0sw4AAACg9llRAgAAAICwDgAA AICwDgAAABDW
AQAAABDWAQAAAMI6AAAAAMI6AAAAAMI6AAAA8CfDZwNWS3xcIkXAn0hkVARF YHSD0c3opgio
B6ObsM7PR3B9YnQzusHoZnQD9+noZhkMAAAAcJ8irAMAAACEdQAAAACEdQAA AKCeh3WlODNh
5tCOnq6uTZu6ubUIHjJ9bUbJPThGXVIftwFf6258sDA1uolK1cjB0dHR0dGx xV++uqRPHuLe
Y32+UnEjFW6tsGXzmQ2Tega6WatUzSbsLKaLoF5qmKPbfC5l1qAOnk4ODvZO 3j2nxGeX0hPA
6K4n127Dgbf7+rg4OjrY27m2HTbn+3NmugLqf1g3/bYu6pGpR/p/fPDshfz8 87n7VkU2Tj+q
u7H3KxaT5Z4du9Zv5s58vV6v1+t/+3JYE7uuC5OXD2yiutNmVfZtR/1fwn83 T/LR0j9QPzXY
0S0OD0xed/D85csFWatCvhn39JpTXM/B6K4fo9vG79nP0vJ0+suXL/w8o/T9 5/5vbwm9AfU9
rJceWTYnNfj9lVO6uGlERDRNQ2P+8c5wD2sR0SWFOwQ+M/axvr3DI5YcLRVD 9vrYbq2bt/Jp
4R369IqDhYqI+fTHXVtGpxaKiMjFf/d2H5KsF9Elhdv7Ro15fNiwRx8JfvjZ 1ZkGERHT2ZTZ
Qzv5+/v7+gT2eWnjKaOISEnGJ08He3r5tes8cNZ31XqDXLRzxqAJmy8plTR4 1a1atnJs06tX
51bOGhXdA/VTgx3d1u6PjBwS7KYRUTd9aOgDjc4dv2SiO4DRXT+u3Xaeza9c uBVFEdumLZ2s
6Q6o72G9MOPHM17hD7hUsoMh90LfZd+lpn4xvZ1V1keRUw88+XXWiRM5qbFn X33y7QOGKn6Q
5OkfXbrxq5Ttm2cUzH56ZY7RdHJ1zLScZ5KPZGXlZKaMPvjihC/zLMasj56a +ev47cezD+9Y
4Lv7SFGFTWW/28PTxcXFxcVnVPK134dV2ODVrdVqGajXGN1SdmzNP1ObjRoZ yO/PwOiuN6Pb
dOJfQ/2aOTYOeskw/V8vBNnQHVDfw/oNozvtzUd8mnu42LeM2Xrl/bbYBUf3 97QWEVF0ezdk
BsZGt2ukEhvfiKkPX0jZfrby2Sq74NH9PK1FrD36RvtlbkjT63at256zY+7w rmFhYd1GLskR
XXZ+mW5vUnb7SaP8tSKN2kXHhtlV1JTW728/5l68ePHixRMJg5x+f1SpqEHj ta3VaRloMBri
6Dblbpo89J92c794LdiWHgBGd70Z3WqfsV9n5+n0++fZLXji1Z+ZjEN9Uekn mNoH9vA688O+
i6+08bCyDXdvKxAAAA0DSURBVJnz04nXM+d17rrDWP4+V6VpZFPVMhGVykol ypU/CVHMxmu/
sFLMZSZFRCWKucysiIiiWLQdX960a6L3td9YKecPiZVGa60SEVGpterbWZFS UYMi+uveoNS0
ZaB+aNCj25S7aXLfF05NTvliQhBRHYzu+nfttnLoNHpip1mv/5RrbE6HQL1Q 6cy6tt2E2T3S
pj2/5OdzRhERpVR3yVDRX2urnEJHBGYsXXu4RJHS7MTFu9wG9fRUWzm0aqVk peebRMx52xLT
r77BLdy7LP5oiYghI27p0cARIU7OD40OyXpv/pY8k4gohtNp+/KMKqfQx/0y 12/Pt4iYc79f
v/82bsqiqqjB64+2xi0D9UTDHd2m3KRJ4bG/xiZ/MblDY96pg9Fdf0a3peDo 3mMFJhGxFKbH
r9jXOPSBZhr6A+oHdeVbWsYk/Kh+Y8ZzHd44bbKx1dp5PvD4u3/vYn/Tjhr/ 2LjFGTGDfRea
FWnaf27iK520Itruf3/LL2JQ142+Hk19mrpr88r3tgsKzZjaJfBYns750fmJ z/uq1TL288Tc
8dM7txinthHFIXRaQkLnZv4TP3szbUz/nsu8XRq7Onto82/jW/KpqMFrR3vL li9vjek0YuNZ
faFBwpvFNxv2Rfp6Ogrq17hvoKPbcGDBlJUZZ2xf7ebxmohoWk/c/PN8ugMY 3fVgdFv0exc9
MWPT8WKzRRzbPjY76f1eDvI5/QH1gkpRlLp7NV1SuM+iaSd+GO70JytTfFxi ZFQE3QV0V0Y3
wOimXEBddlc+wRQAAAC4T6nr9NWchv9waThFB+ohRjfA6AZQC5hZBwAAAAjr AAAAAAjrAAAA
QD2gpgTVFB+XSBEARjcARjdQl+r21o0AAAAAqo1lMAAAAABhHQAAAABhHQAA ACCsAwAAACCs
AwAAAIR1AAAAAIR1AAAAAIR1AAAAgLAOAAAAgLAOAAAAENYBAAAAENYBAAAA ENYBAAAAwjoA
AAAAwjoAAABAWAcAAABAWAcAAAAI6wAAAAAI6wAAAAAI6wAAAABhHQAAAABh HQAAACCsAwAA
ACCsAwAAACCsAwAAAIR1AAAAAIR1AAAAgLAOAAAAgLAOAAAAENYBAAAAENYB AAAAENYBAAAA
wjoAAAAAwjoAAABAWAcAAABAWAcAAABAWAcAAAAI6wAAAAAI6wAAAABhHQAA AABhHQAAACCs
UwIAAACAsA4AAACAsA4AAAAQ1gEAAAAQ1gEAAADCOgAAAADCOgAAAADCOgAA AEBYBwAAAEBY
BwAAAAjrAAAAAAjrAAAAAAjrAAAAAGEdAAAAAGEdAAAAIKwDAAAAIKwDAAAA hHUAAAAAhHUA
AAAAhHUAAACAsA4AAACAsA4AAAAQ1gEAAAAQ1gEAAAAQ1gEAAADCOgAAAADC OgAAAEBYBwAA
AEBYBwAAAAjrAAAAAAjrAAAAAAjrAAAAAGEdAAAAAGEdAAAAIKwDAAAAIKwD AAAAIKwDAAAA
hHUAAAAAhHUAAACAsA4AAACAsA4AAAA0dGpKUB3xcYkUAfezyKgIigCAiyNQ /y7lhHXCELhe
AgAXR+CeSU8/nH7wUGVbCesAAABArSgtrUZYrzypC2vWAQAAgPsWM+tAg6AU Z37+1oy5a3ae
MVmpFG3zLhF/W/j2U0GN6vo4dEl9/D6ckf3dUKfrHixMjW4Zvt5g76BRiYhj v3UHV6uf8n87
+tD20U1VFTSiTx5y89YKWy499FbHDnNOXWm5Ueg7O7+b5LtmbULVx/jcU6Po MAAAwjqAumL6
bV3UIy9ZXt90cEMXN40Y8/fGL0o8qjMHNbK+Ls9bTIqV+h79tk3rN/OH9Hkh tuX/NRcsTF7u
1kR1F1q2CZj+3/0LQxtVM46vulWUBwCgLlV1YVaKMxNmDu3o6eratKmbW4vg IdPXZpTcg2PU
JfVxG/C17sYHC1Ojm6hUjRwcHR0dHR1b/OWrS/rkIe491ucrFTdS4dYKWy5X sv/vwSqV23P/
LaKX4M+u9MiyOanB76+c0sVNIyKiaRoa8493hntYi4guKdwh8Jmxj/XtHR6x 5GipGLLXx3Zr
3byVTwvv0KdXHCxURMynP+7aMjq1UERELv67t/uQZL2ILinc3jdqzOPDhj36 SPDDz67ONIiI
mM6mzB7ayd/f39cnsM9LG08ZRURKMj55OtjTy69d54GzvjtnrsYRF+2cMWjC 5ktKJQ1eG6e3
3TJwxxrsxVEpPvLpxEe8newdHJz9ItafZsQB9zism35bF/XI1CP9Pz549kJ+ /vncfasiG6cf
1d04NhWLyXLPjl3rN3Nnvl6v1+v1v305rIld14XJywfelak4keJ981/4tu2g 5lq6COqBwowf
z3iFP+BSyXg35F7ou+y71NQvprezyvoocuqBJ7/OOnEiJzX27KtPvn3AUMWb gDz9o0s3fpWy
ffOMgtlPr8wxmk6ujpmW80zykaysnMyU0QdfnPBlnsWY9dFTM38dv/149uEd C3x3H6nw/W9p
9rs9PF1cXFxcfEYlX8sIFTZ4dWu1WjZmL33Ux6WJZ/vBM/+dY6Az4E412Iuj 5ULKxH5/OzPm
29P6y/q8nfPCm/BXb8C9DesNeiquaM8/J/1nyAdT29uq6CKoZwxpbz7i09zD xb5lzNYrA1Ts
gqP7e1qLiCi6vRsyA2Oj2zVSiY1vxNSHL6RsP2uqtC274NH9PK1FrD36Rvtl bkjT63at256z
Y+7wrmFhYd1GLskRXXZ+mW5vUnb7SaP8tSKN2kXHhtlVHC/+9mPuxYsXL148 kTDo6qpzpaIG
jde23rJlG9+Jm09fzMu7kLt7QfuUZ4fNP1RKF8AdabAXR0veN29vdH154XMd 7K1EpXX39WzM
FRK4t2G94U7FKYW7/zHph2EfTm/fiP6B+sE+sIfXmR/2XbSIiG3InJ9OnNj+ sk+x3lg+MFSa
RjZVXXVVKiuVKFd+Ta6Yjdcu4oq5zKSUf2FWRERRLNqOL2/atWfPnj179uzP +vWnVztoRcRK
o7VWiYio1Fr17VzgK2vw2o+wqltWNfLw8WhsJSrblv2nxAae/M8R1rXhzjTY i2PpyV2/2rjm
/KNfkLdX8zb9piVk84sqoPpsbVU3/7vTsN5Qp+KUwl1/j00d/tH0jsyqo97Q tpswu0fatOeX
/HzOKCKilOouGSpawapyCh0RmLF07eESRUqzExfvchvU01Nt5dCqlZKVnm8S MedtS0y/ehUv
3Lss/miJiCEjbunRwBEhTs4PjQ7Jem/+ljyTiCiG02n78owqp9DH/TLXb8+3 iJhzv1+/v7j6
B66qqMHrj/YWLVsKT2aeKbaIiOnCrk8/yWzW1b8x3QF3TYP6PZVisZRd2HGg 45K9v55KX9V1
6/MjPzxmpA8A1f1xcdNV12BQqvlc9a2m4l5p42FlGzLnpxOvZ87r3HXH3ZqK U900FTfR+9pt
KZTzh+58Ku76BkX01ZyKM57+8Ydj+4/1ar5AlLJLBUUysM2lNb9wIzf8ualb xiT8qH5jxnMd
3jhtsrHV2nk+8Pi7f+9if9OOGv/YuMUZMYN9F5oVadp/buIrnbQi2u5/f8sv YlDXjb4eTX2a
umvzfo8XQaEZU7sEHsvTOT86P/F5X7Vaxn6emDt+eucW49Q2ojiETktI6NzM f+Jnb6aN6d9z
mbdLY1dnD23+bRy4T0UNXjvaW7RsPv+fVwf89buzZRaTOHcauXDD68G28gv9 AXegoV4cxcaj
rUejjjER7e1V1hIW9aTXh6nZJdF0COB28vrV2fTqJ/Uro7cSxpOfDnF1H7po Z16ZoiiK5fLu
l/2aPJaiUxSlYGNv594bC8p3LDu2MMyl63vpxRbFkLVygFvQq2kGRdF/H9n8 wcU5RkUx5SaO
cG48+FudohRs7G1l/dCCQ8WKUnJk0SNuXRZnG43Hl/Vw9Hsh+axRURRLyW/7 fjlbppQdW/iQ
98iN58yKYjq9brCdtv9XBTce3uUfRjfzm7mv5Nojum8HN+2+7pylwgavbr11 y1eV/PJXv+bP
/lioKErc+s8V4H51b/rnjT8H/kT+tSa+xluBhntxLMt4L8xz0KqcUsVSnP5e F8eO/zhSysUR
uCWD4YZ/V5L6H/7Frf+8itGkZiqOt3oAAH5PdYuWNYGT49/NjO7d6rVSk1XL oQvjXgyy+Wof
HQK47fn1232KSlGUujtAXVK4z6JpJ34Y7vQnq2x8XGJkVAQ9DPTPemAVn2CK +w0XR6D+Kq3G
Xcg2fJkoIpWNJj7BFEDDQhYHAPyJ1G1Ydxr+w6XhFB0AAC6OAKqDzx8DAAAA COsAAAAAbgdr
1gEAAIC7Lz39cPrBQ4T1OhIfl0gRAADg4gjUpbq9dSMAAACAamPNOgAAAEBY BwAAAEBYBwAA
AAjrAAAAAAjrAAAAAGEdAAAAAGEdAAAAAGEdAAAAIKwDAAAAIKwDAAAAhHUA AAAAde7/A95n
er83Zf5kAAAAAElFTkSuQmCC
--------------060109060005000707050608--
Re: Widgets location shifts on subsequent run [message #117493 is a reply to message #117372] Mon, 05 January 2009 16:34 Go to previous messageGo to next message
Ivan Furnadjiev is currently offline Ivan FurnadjievFriend
Messages: 2396
Registered: July 2009
Location: Sofia, Bulgaria
Senior Member
Hi Setya,
I can't reproduce it with your code put in the Workbench Demo (in
BarEditor class). My platform if Windows Vista with FF 3.0.5, IE7 and
Safari. Unfortunately I can't test it on Linux.
Best,
Ivan

Setya wrote:
> Hi,
>
> It seems that widgets location shifts between 1st and subsequent run
> as can be seen in the screenshots. I can only reproduce the problem
> when the widgets are on workbench's editor, not standalone. Here's
> simplified snippet:
>
> ...
> public class DemoBugEditor extends EditorPart
> {
> @Override
> public void doSave(IProgressMonitor monitor){}
>
> @Override
> public void doSaveAs(){}
>
> @Override
> public boolean isDirty(){return false;}
>
> @Override
> public boolean isSaveAsAllowed(){return false;}
>
> @Override
> public void init(IEditorSite site, IEditorInput input) throws
> PartInitException
> {
> setSite(site);
> setInput(input);
> }
>
> @Override
> public void createPartControl(final Composite parent)
> {
> parent.setLayout(GridLayoutFactory.swtDefaults().create());
>
> FormToolkit toolkit = new FormToolkit(parent.getDisplay());
> Composite container = toolkit.createComposite(parent);
>
> container.setLayout(GridLayoutFactory.swtDefaults().numColum ns(2).spacing(10,
> 3).margins(0, 0).create());
>
> container.setLayoutData(GridDataFactory.swtDefaults().align( SWT.FILL,
> SWT.TOP).grab(true,false).create());
>
> Label label = toolkit.createLabel(container, "Foo:");
> label.setLayoutData(GridDataFactory.swtDefaults().align(SWT. END,
> SWT.CENTER).hint(label.computeSize(SWT.DEFAULT, SWT.DEFAULT).x,
> 15).create());
>
> Text text = toolkit.createText(container, null);
> text.setLayoutData(GridDataFactory.swtDefaults().align(SWT.F ILL,
> SWT.CENTER).hint(SWT.DEFAULT, 17).indent(0, 0).create());
> }
>
> @Override
> public void setFocus()
> {
> }
> }
> ...
>
> To reproduce just close the editor then reopen again. Although not as
> obvious as those in the screenshot, you still can notice the distance
> between Label & Text widget shrinks after re-opening editor.
>
> I've tried latest source from CVS on Firefox 3 under Xubuntu 8.10.
>
> Is this a known issue ?
>
>
> Best Regards,
>
> Setya
>
> ------------------------------------------------------------ ------------
>
>
> ------------------------------------------------------------ ------------
>
Re: Widgets location shifts on subsequent run [message #117521 is a reply to message #117493] Mon, 05 January 2009 17:05 Go to previous messageGo to next message
Setya Nugdjaja is currently offline Setya NugdjajaFriend
Messages: 567
Registered: July 2009
Senior Member
Hi,

Thanks for trying. I think I've found the problem.

In order to tidy up the appearance, I made calls to
label#computeSize(SWT.DEFAULT, SWT.DEFAULT).x to find out the widest label
size to be applied to the width of rest of the labels.

The above method in turn calls TextSizeDetermination.textExtent(
getFont(), text, wrapWidth ) which returns differently between 1st &
subsequent run.

Anybody can explain why this is the case ? Or is there any other way to
find out the label preference width in reliable way ?

Regards,

Setya
Re: Widgets location shifts on subsequent run [message #117755 is a reply to message #117521] Wed, 07 January 2009 09:43 Go to previous messageGo to next message
Stefan   is currently offline Stefan Friend
Messages: 316
Registered: July 2009
Senior Member
Hi Setya,

I think the reason is that in your first call, the returned size is only
a appproximation. The "real" size is available after the next req-resp
turn-around because a reliable text size can only be delivered by the
Browser.

Why do you need to compute the widget size manually? Maybe there's
another way to achieve your goal...

Regards,
Stefan.

Setya schrieb:
> Hi,
>
> Thanks for trying. I think I've found the problem.
>
> In order to tidy up the appearance, I made calls to
> label#computeSize(SWT.DEFAULT, SWT.DEFAULT).x to find out the widest
> label size to be applied to the width of rest of the labels.
>
> The above method in turn calls TextSizeDetermination.textExtent(
> getFont(), text, wrapWidth ) which returns differently between 1st &
> subsequent run.
>
> Anybody can explain why this is the case ? Or is there any other way to
> find out the label preference width in reliable way ?
>
> Regards,
>
> Setya
>
Re: Widgets location shifts on subsequent run [message #117766 is a reply to message #117755] Wed, 07 January 2009 10:18 Go to previous message
Setya Nugdjaja is currently offline Setya NugdjajaFriend
Messages: 567
Registered: July 2009
Senior Member
Hi,

> Why do you need to compute the widget size manually?
> Maybe there's another way to achieve your goal...

If you see the attached screenshots I'm trying to tidy up the width of the
labels and since those labels are rendered dynamically at runtime, the
only way I can think of is finding out label which has the widest
preferred width and then apply its width to the rest label.

Of course I'm open for suggestions.

Best Regards,

Setya
Previous Topic:Setting minimum height and width of window
Next Topic:Closing Frames and Enter Buttons
Goto Forum:
  


Current Time: Sun Jan 29 13:47:56 GMT 2023

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

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

Back to the top