Home » Eclipse Projects » Eclipse Platform » no table scrolling on celleditor activation
no table scrolling on celleditor activation [message #329235] |
Tue, 17 June 2008 04:09  |
Eclipse User |
|
|
|
Originally posted by: niels.lippke.airpas.com
Hi all,
The table editing facility as proposed in
Snippet036FocusBorderCellHighlighter is quite fancy, but useless if the
neither the cursor nor the editor scroll into view on focussing a cell.
I tried to adapt scrolling behaviour to the cursor by adding
viewer.setSelection(new StructuredSelection(cell.getElement()), true);
to FocusBorderCellHighlighter.markFocusedCell()
but that doesn't work well in combination with the celleditor.
Can anyone help?
Thanks,
Niels
BTW: There's also an interesting effect, if you activate a
ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is not
currently not visible...
|
|
| |
Re: no table scrolling on celleditor activation [message #329253 is a reply to message #329238] |
Tue, 17 June 2008 12:04   |
Eclipse User |
|
|
|
Originally posted by: niels.lippke.airpas.com
This is a multi-part message in MIME format.
------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=response
Content-Transfer-Encoding: 7bit
Hi Tom,
I am running the jface-snippets from cvs-head against jface-pluging (also
from cvs-head) and the latest swt-3.4RC3
still having the same problem: I can "walk" horizontally around with my
cursor and out of visible area. Same with tabbing and celleditor.
The ComboBoxCellEditor-part is a direct consequence of failed scrolling, as
the popup comes up next to my shell (see screenshot) ;)
I use the setActivationStyle-Method. The other way does not work.
I have attached a modification of Snippet024.
Thanks, Niels
"Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
news:g37v21$cjn$1@build.eclipse.org...
> Hi Niels,
>
> The things you describe are known issues. The bugs in with information
> this are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>
> Do you by the way talk about vertical or horizontal scrolling (Snippet026
> scrolls vertically which was a bug in 3.3 we fixed in 3.4 IIRC). The above
> patch 1 holds the code to scroll horizontally by tabing and maybe could be
> used to get the horizontal scrolling feature.
>
> Can you give me an example for the ComboBoxCellEditor problem? How do you
> create the CellEditor? Is it possible that you are passing it to the
> constructor instead of to ComboBoxCellEditor#setActivationStyle(int)?
>
> Tom
>
> Niels Lippke schrieb:
>> Hi all,
>>
>> The table editing facility as proposed in
>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if the
>> neither the cursor nor the editor scroll into view on focussing a cell.
>> I tried to adapt scrolling behaviour to the cursor by adding
>>
>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>
>> to FocusBorderCellHighlighter.markFocusedCell()
>>
>> but that doesn't work well in combination with the celleditor.
>>
>> Can anyone help?
>>
>> Thanks,
>>
>> Niels
>>
>> BTW: There's also an interesting effect, if you activate a
>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is not
>> currently not visible...
>>
>
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: application/octet-stream;
name="Snippet024TableViewerExploreNewAPI.java"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="Snippet024TableViewerExploreNewAPI.java"
/*********************************************************** *************=
*******
* Copyright (c) 2006 Tom Schindl and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tom Schindl - initial API and implementation
=
************************************************************ *************=
******/
package org.eclipse.jface.snippets.viewers;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerEditor;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrate gy;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.TableViewerEditor;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
/**
* Example usage of ITableLabelProvider using images and labels
*=20
* @author Tom Schindl <tom.schindl@bestsolution.at>
*=20
*/
public class Snippet024TableViewerExploreNewAPI {
private class MyContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
return (Person[]) inputElement;
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object =
newInput) {
}
}
public class Person {
public String givenname;
public String surname;
public String email;
public String gender;
public Person(String givenname, String surname, String email, String =
gender) {
this.givenname =3D givenname;
this.surname =3D surname;
this.email =3D email;
this.gender =3D gender;
}
}
protected abstract class AbstractEditingSupport extends EditingSupport =
{
private CellEditor editor;
public AbstractEditingSupport(TableViewer viewer) {
super(viewer);
this.editor =3D new TextCellEditor(viewer.getTable());
}
=09
public AbstractEditingSupport(TableViewer viewer, CellEditor editor) {
super(viewer);
this.editor =3D editor;
}
protected boolean canEdit(Object element) {
return true;
}
protected CellEditor getCellEditor(Object element) {
return editor;
}
protected void setValue(Object element, Object value) {
doSetValue(element, value);
getViewer().update(element, null);
}
protected abstract void doSetValue(Object element, Object value);
}
public Snippet024TableViewerExploreNewAPI(Shell shell) {
TableViewer v =3D new TableViewer(shell, SWT.BORDER | =
SWT.FULL_SELECTION);
v.setContentProvider(new MyContentProvider());
TableViewerColumn column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Givenname");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return ((Person) element).givenname;
}
});
column.setEditingSupport(new AbstractEditingSupport(v) {
protected Object getValue(Object element) {
return ((Person) element).givenname;
}
protected void doSetValue(Object element, Object value) {
((Person) element).givenname =3D value.toString();
}
});
column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Surname");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return ((Person) element).surname;
}
});
column.setEditingSupport(new AbstractEditingSupport(v) {
protected Object getValue(Object element) {
return ((Person) element).surname;
}
protected void doSetValue(Object element, Object value) {
((Person) element).surname =3D value.toString();
}
});
column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("E-Mail");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return ((Person) element).email;
}
});
=09
column.setEditingSupport(new AbstractEditingSupport(v) {
protected Object getValue(Object element) { =09
return ((Person) element).email;=09
}
protected void doSetValue(Object element, Object value) {
((Person) element).email =3D value.toString();
}
});
column =3D new TableViewerColumn(v, SWT.NONE);
column.getColumn().setWidth(200);
column.getColumn().setText("Gender");
column.getColumn().setMoveable(true);
column.setLabelProvider(new ColumnLabelProvider() {
public String getText(Object element) {
return ((Person) element).gender;
}
});
=09
ComboBoxCellEditor editor =3D new ComboBoxCellEditor(((TableViewer) =
v).getTable(), new String[] {"M","F"});
=
editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TR AVERSE_ACTIVA=
TION |=20
ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION |
ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION |
ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION);
=09
column.setEditingSupport(new AbstractEditingSupport(v, editor) {
protected Object getValue(Object element) {
if (((Person) element).gender.equals("M"))
return new Integer(0);
return new Integer(1);
}
protected void doSetValue(Object element, Object value) {
if (((Integer) value).intValue() =3D=3D 0) {
((Person) element).gender =3D "M";
} else {
((Person) element).gender =3D "F";
}
}
});
=09
=09
ColumnViewerEditorActivationStrategy actSupport =3D new =
ColumnViewerEditorActivationStrategy(v) {
protected boolean isEditorActivationEvent(
ColumnViewerEditorActivationEvent event) {
return event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.TRAVERSAL
|| event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTI ON
|| (event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode =3D=3D =
SWT.CR)
|| event.eventType =3D=3D =
ColumnViewerEditorActivationEvent.PROGRAMMATIC;
}
};
TableViewerEditor.create(v, null, actSupport, =
ColumnViewerEditor.TABBING_HORIZONTAL
| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
| ColumnViewerEditor.TABBING_VERTICAL | =
ColumnViewerEditor.KEYBOARD_ACTIVATION);
=09
Person[] model =3D createModel();
v.setInput(model);
v.getTable().setLinesVisible(true);
v.getTable().setHeaderVisible(true);
}
private Person[] createModel() {
Person[] elements =3D new Person[4];
elements[0] =3D new Person("Tom", "Schindl",
"tom.schindl@bestsolution.at", "M");
elements[1] =3D new Person("Boris", "Bokowski",
"Boris_Bokowski@ca.ibm.com","M");
elements[2] =3D new Person("Tod", "Creasey", =
"Tod_Creasey@ca.ibm.com","M");
elements[3] =3D new Person("Wayne", "Beaton", =
"wayne@eclipse.org","M");
return elements;
}
/**
* @param args
*/
public static void main(String[] args) {
Display display =3D new Display();
Shell shell =3D new Shell(display);
shell.setLayout(new FillLayout());
new Snippet024TableViewerExploreNewAPI(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
------=_NextPart_000_000B_01C8D0A4.92E4A0D0
Content-Type: image/png;
name="screen.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="screen.png"
iVBORw0KGgoAAAANSUhEUgAAA9IAAAIxCAIAAAAuVhcRAAAACXBIWXMAAA7E AAAOxAGVKw4bAAAg
AElEQVR4nOy9f3xdVZnv/3nWPglto1b80l5+aGshqZpGZfhOHWi+VwJqNS3j 9Dqd8mIuQ3GEZhQk
1StqsSDUljLUGRNhLjdl1NbhytAv936rQiOoNM7LBKUveDmaZrAJA60D5SaC Lf2ZZK/n+f6x9t5n
n3P2+ZWcNGn6vF+Q7rP22mutvfbae3/Ws5+1FokIJpvOFlqGXdLRPNkFqTDD w8NDQ0OpVKq6utoY
E4UTkYgQUTyEiE6ePFldXQ1g9uzZhw8fdrtmz57tNqKQAkSRx8LQ7van5rZe vahwrMOHD5eSy4HH
9lz3zNwWDOLTi685DwDuuuuur371q7kx84UriqIoiqIUYHh4+Dvf+c51110n ItaytZaZreVDhw/7
o77v+75vR0ZGhoeHZ89+c8/TP/+LlX/hhFZRctXX7Nmzu54bANB0Se2YC2yK R5l4mjtk+mnu046h
3l+f21BEc5dO9zM1mzbMv+bTc596YH+l0lQURVEURTl9SU12AZSpQu+vz21o rVhq12yoB4Dz5j+4
oWJpKoqiKIqinL5MCWu3MvkM7a6krVtRFEVRFEXJRGW3AlTaw6QAd911V+K2 oiiKoijK9EadTBQA
mHNF69WnJKP46EkdSakoiqIoypmDWrsVRVEURVEUZcJRa7dy6lCvEkVRFEVR zlhSSJw2u7OFlm0F
AKyJ7Rhob6xb2wMAWNLW3738cfdzyZo12Lq1xwW25pnMsLOFNtZn7M4NKX6M cvqiLiWKoiiKopzJ
GAy0b+xds6Z3Y/tAGDbQ3rgMu0RERPrr93WGgVTXt14CtuPxztrW7l1rsKRt e0dHsFFhgdzc0b9q
x+p0wRRFURRFURTl9MQMPL4Dq269dRV2PB7K2/6+niX1dW67trW1GcBA++q1 DXGDeBA+0dS2rm9Y
u6XzFOSkKIqiKIqiKBOHeXwHVi2vrV0e093NK9b0rM0wMg88vqNnzYrK6OzO FiJq6cwJaW9vjAV3
tlBj+wCAuvolvfvU3q0oiqIoiqKc1pgdWLW8FsjU3R3Sv2pHXYY8juzf4yL0 X0mbzaOQ1tb1a7bu
DPLr3Ll1zfrWWgC1Cxt6+vorkLWiKIqiKIqiTBopp7qd7q7b0tkaCOLa1m5p HWhvrKOWXdJRB/T0
9QNluG6nh1+mB2XuWF2HVf3dMat5RkjzijXLdnZ2NDejc2dv260dLkpg7m7W cZWKEqPAtDA6elVR
FEVRpiCpnrV1tDb66VRvSG3r9rYddTs7OzqWr1qyNnNfMWpbu6U1M6gHWJKp 3rNCmm9t27i6faAO
G3tXbQ8j9ff1NKxQzT2R7H1k3UO/AgBcfO3mqyu2VuWBx/Y8dP7i2y4pKXJ3 R9dXngYAzFvw3Q8M
ln7g+Onu6Np2weIHr6qJlaSmZfPia847RQUYM4nyWmdpVBRFUZSpiemXiP62 JVt3dgKd7aFf98Dj
O9zoytrW9Wu2Lov5nAy0t5c90HHJqu3du7CsMe01nh1Su3wVdmzZsqNhfTQn ysC+3sr4tyjJDO1u
fwjXbt68efPmzdfioUf2ViLR54a6o+2D++9+7Fjh6N0dXV/Boq5tTV3bmr77 gcHrHi0SvwAP39HX
XTxWBo0tTZHmdj9b5p2KfBVFURRFOaNIxezItYFNu2NhHxG5sDW7xCng5g7p r2+sC8OXtPV3D7Q3
LtsKYHVLH7ZuBbC6fXmxSbabO/r3NdbRjrb+7oU5Ia21tctXYe3ahl0d0QFq 7J54Lm4ILNxz5577
6uAQFs0Zd5JDX7ne6feuJ1HTsnl+obgH92/Doq6WINN5Vy3uuiq98+E7ujoO BKXbtK2+ETjw2J7r
Hj229LK5Tz49GA/Hwf03rnuxH8D1LhxLb2lyJnOXSN3Kxbej77pHj2UlBaBu 5eK48kY8NQSW7yDf
W5puuySwzQdH5c83sfwFypMRf15NHeY+uCGquqG7r9/7ZCymoiiKoiinFxmr VNa2dgsAoEOkIzdu
jt9I7HdHQvwMmjsk5jUe5JIdkpPHQPvG3rbtxdJWxsGcKz6MdevWuR/nLt3c On7NDVxS/92Vx657
Zm4LBvHpYt4aB4/hgnMS9zx8R9dTH1jctaEGAJ7ra7pjf9eG+fOuWvxd7Lnu UWza1uSk89ceO9Z4
VQ3Om//gtvkP39E3b0O2ML1mQ9M1z/U1fXPPdfMWdG2bj+f67n4OjZcEEv/A Y3u+lp3zsY5vDrZs
bnrwPKe/++Ztq2+8avF3sechAEBjS1PX4r4bXwGAAvkmlr9AeQ48tieK393R 9ZWXi9e0oiiKoiin
C1N6cfjOlrq1DbtEbd0Tyt5eXLt58yIAGNr9yO4hXFEJ4d39TM2mDfMbD+LG B/Zfs6GgtTsfB/c/
dcGitBH6kvpNe/Y8fHC+E/FLbwk07rzza/BKSemlTdqX1N9WLPLSW8Lewnnz b1+556Hn0Fiur3nB
8ieWZ95V71xw/Z6mR93+uZu2xettzm3bmooWW1EURVGUKcuUlt3NHSKTXYZp z97eV+deGWzPmYtf
9w5dUQndfc2GegA4b/6DG4pFPa8GO3+PLB+PSaZmweSMp4xp65h1XFEURVGU aYCZ7AIok8zcuRgc
nNQSnDf/+gtevDE97HLo7uu77n4OOG/+lS+/9PDBKN7Qz16eW8LsIscOuEOe 62u6fszDHI91PLA/
2Dy4/2uP1lwemrpffOWYC7zxm1m1lpNv+eV/+I49sfjABbNiP4buvr5rHGek KIqiKMokM6Wt3cop
IMO3Gxdfu7kSLiZl0tjSdOCOrtC5Ij0k8ZpPz71xXVfk2r/0liakx0F24Zam 29DX9M1BYPBGBA4b
16yoaQoOiUYfusGIAAZdFmH6UTgA59oxd9O2enR0dRyoWXrZYNP1LwJwQyoD h5b/ey7WuZg1LSvn
djy6p2C+yeXPXx4AxzrS8edu2lb8Wtx1113RNILxbUVRFEVRphok6scxYQwP Dw8NDaVSqerqamPS
HxaISESi2WJcCBGdPHmyuroawOzZsw8fPux2zZ49221EIQWIIk8chw8fPgW5 KEXJJ7JVfCuKoihn
CMPDw9/5zneuu+46EbGWrbXMbC0fOnzYH/V93/d9OzIyMjw8PHv2m3ue/vlf rPwLJ7SKkqu+Zs+e
3fXcAICmS8Y+6FCdTBRFURRFURRlwlEnE0U5XdEFKRVFURTlNEJlt6Kclqgn iaIoiqI43HLrzMzM
IsyWQywLs/BkFzAg7mTS2UKxhduTKB5DURRFURRFUU4VzrHb931rrbVsLfv+ qO+P+tZ3gVNnHGN5
1u7mjv59jSUsAa8oiqIoiqIoE8zZZ5996NChN7/5zcYYQIyBiJk1a6a1LHAG cGHmY8eOvXX2Wye7
sGU7mdS2rm+gLZ2tHc0TUhxFURRFURRFKY358+f//Oc/f+311wpHe+vst86d O/fUFKkAKaCzhZZt
XbNLoumFg5C2tt61feslENidLbSxvr+7tbaufknvvgE0q71bURRFURRFmUTe /va3v/Od7yx9pubJ
KGOaVHvjMuwSaQbQCQAYSId09tHOzo7mZgCdO7euWS+1AGoXNvTs7AdUdiuK oiinNQWmA9JRy4qi
VJzUjlX93TGHkR2r6xCFNK9Ys8zp7s6dvW23BuZwNXdPN/Y+su6hXwEALr52 89WLKpXsgcf2PHT+
4nD9xUkjXNUyTk3L5sUlrDNfBg/f0dVxAABw2dylL9fctmF+4fLEVqbMpruj a9sFweKXJTN09/V7
n5y3oGvDfMROuW5luemUQbnlnLj4ZZ5vbHXSsMYc6YsIxFPr7uj6ytOxBC5b 1NUyQYu5ZlzHwoyp
nWRwatrJRDP+esi37NQ4CqUoipKM6enrj/3sAZbEQppvbevd2D4w0L6xd9Xy UGb39/U0LFTNPW3Y
+8hDry7dvHnz5s2br8VD7buHKpDmc0Pd0fbB/Xc/dqxA3FNA3crFXduaNl2G pbc0dW1raplX4fQP
PLbnqQ8s7trW1LWtaRMGnywYed5Vi7+7spBEaGxpKl9DzLlt26KlsSy6tjUV zmX8lFvOxPgP39HX
nRi7nPTLPN85t21r6tq8oG7egk0XDD58ML3jmg2LlmLupm1N7lJe+Uyf29vY 0uTSdw1pwjQ3sq5j
YcbUTjI4Ne0kkQLXvdz4468HRVGUU0ZqF5Y1tveHU5MsWbW9e/0WikJql6/C 6i1b0LC+OxTaA/t6
l9TfOmkFVirM0OCrF3/4are96Opre9t7ccUV40/1K9fvBQB0PYmals3FTXcT x7yrFj+YGXLNhsXR
dszAOXfTtvrGg/tvXPdi/7yapQeOPYm5m27BV745GOwqLbvGlqau2M+0oXTe ghYM4tOhlf2V/Td+
88X+KF8AeayPgXX8srlPPj2IzPhwpQUALL2lYp8pilJuOZOtqlHhr3fxEX0B yGuFfa6v6ZtB5HEa
aA88O7hgxeJGHNv27LFr8qTT+AE8dBAYw1eRpHJW8Dom1E/+dnvgjq6OAzUt K2s6HnX5lvCpJ1ae
4INA4fsiN36B881/3ZOv7xjaSe59Xbj+FUVRThki/W1LgCVt/bJrDZa09Uss JNxes0sidq3J+Knk
5+TJk7/73e8OHjz42muv/SHGoUOH3N+Iw4cPv/HGG4ODg+6niES7otQOlcBY Stn7z19ue8ptDj7V
9uUv/3Nvwegl5rL/h89cfvtL37v9me+9MpZCTQQ//x+7Nz2bEfK923ff8MOj wY9n915++0siIq+8
dMPq3ZueFXl27+Wr9/5cZP8Pn8k6MJfv3b778tW7L1+9O0gkzPHy/zHotvf/ 8JnLVwe1kbWdLoPk
DXElydw7uGl1VL2DmzKzTkynspRczkLl+d7tQfxS0pdnB6PI37s9+2qWdb5h voObMiptcNPqvbEs
MlpvGennKefYrmM+ssuTv91+7/bdUb7yyks3rM6o89zzip+4u5GLpZ8Uv2B7 SL7u+a9vWe0k+b7O
U54777wzMdl84YqiTCnGLLRKF1TxkN3P9u9+tn88BU4Bta3d0goA6BDn050O ydwGMNC+sbdteweU
acOiqz8/2L5u3ZMAcO7SpecOViTV7mdqNm2Y33gQNz6w/5oSHFUngYP7n7pg UdpIdkn9pj17Hj44
/xoA8xbcdgnwHHDZnEbgQKFUAq7Z0HQNAODAY3ua7kDXhvnA0M9eXtC1IXBI mHfV4q6r0vGX3hJY
HOedX4NXiqe/9JbAMpeO/9zQiyvrbwvMlnNu27zgxQdKKGgC+x+9c3dvRsiF V9/5wfeMKa2EclaQ
845vu77rK1FeY07nub6OC+Z0AcCcyy/ouvu5+TE/+8GvXB8zuI5tAED+ck7k dSzUbqN8cd7821fu
eeg5NOYbdHFw/1MHjvWv64o95Y91A4350i8Qv9z2UJHrm+++Pq/88iiKolSa 8ubt7mypW9uwS9Sx
e3ox54rWzYFfyd5H2jF+FxMA12yoB4Dz5j+4oRLJnT7Mu+qdSx8dimTH6cD8 lXdev3KyC1ECQ3ev
G7xyc5OTwgce2/PQWBPq3jOIpweb0qMkh267JHLXHr/vQcXKWTlqFpTefzhv 1oJ5Cx4svatcbvy8
TMF6UxRFqTCmeJQYzR0iulDO9GXvIw/hwxVR3acD582/8uWXYiPqhn728twx TW8ydPf1e9LpHDz+
4mVzGgFgzuUXvHhjejjp0N3Xd9393HhKnMklcxY8uj8aZ9b9g9C59jTj2AFX dc/1NV1fcJjdweMv
zgsv0MH9X8uenaZ0hn728oKucNxk17amlpeHyhreV4Ryy3kqruOxjgf2Rz+6 n6m5vND8Qlnttijl
xg+KlH3di9Rbye2kYve1oihK5SGZMuvUTz+Gh4eHhoZSqVTps7hXV1cDmD17 9uHDh92u2bNnu40o
pABR5DJITx9Y0gSChw8fHksuk0rmHILJQ9nghmqdF4Zctqhr8VDTNwfrVi6+ HX0Fp/yLTUgHZA1Z
i89J51KICrP0lqbbEIwhq1u5+MGrjmemExT1HXnj18SHoOGyuUufHnxy3oKu DbMS06mc9X2ozHIm
n1dQnvQpRIHJ6TdmXMeapZfhyafdRckbP4H0FXeXKTq2pmXzYjwQXayMi1ju BIKJ5bz2lXKvYz77
cdL5bq7Zlr/dLti558UL8OTTwS0QDkAsVG+ZcykWSf+2S3LiF263SLzu+a4v 8sTPX/7c+zr/fff2
Z7/+1a9+9a677oqmEXTb8RBFUaYsYxZaRclVX7Nnz+56bgBA0yVj9/pQ2T2B nB6yu0xOR9mtKGcy
D9+xJz2FjpJJPnmtsltRTgtOO9ldnpOJoijJ3HXF6bGtnGE8fEdXx4FjHeu6 mu7YXzy2oiiKMpGU
N6RSUZQE7roCX909df8qZzDRHDtKPnRBSkVRThnqZDKBqJPJGYFTt1N8Ox6o KIqiKNOC087JRGX3
BKKyW1EURVEUZYI47WR3Pt/uzhZqbB8oHFL8GEVRFEVRFEVRUNkhlc0d/at2 rFbhrSiKoiiKoihZ
VHYmk9rW9Q1rt3RWNE1FURRFURRFOe0pOpNJZwst27pml3RkhbS19a7tWx+u WdnZQhvr+7tba+vq
l/TuG0Czrh+vKIqiKIoy0Rx4bM/XUP/gVTUFpuXReeinCIWt3QPtjcuwK74g fBTS2rp+zdadgWG7
c+fWNetbawHULmzo6Ts9F6me/ux9ZN26devadw9lhQ/tbl/neGRvBbM78Nie xLXQNVzDNVzDNVzD
NXz84QCAoYcerbnerf8KfDWJfEcqp55Qdg+0N7pBntQS+YjsWF23Y1V/WnJn hTSvCHV3587etluD
aIG5W5lqDO1ufwjXbr724uwdex/5+1+/b/PmzZs3b74WD1VGeD831B1tH9x/ 92PHNFzDNVzDNVzD
Nbxi4SEHHnvpxZXzG6GcHoROJrWt3dKauasHWNLT1w/U5glpvrVt4+r2gTps 7F21PYzU39fTsEJd
TKYec65o3Qxgb29W+N7eV5f+5dVue9GVS3/y1F4sWjTu3Ia+cr3T711PoqZl 83wN13AN13AN13AN
r1x4sPehR2uu31YD5TTBu/POO5PCBx6768Wmp7pv6Vl4/b9f+6lL35YUgred c/Tbm74/sHfumq2r
64Ljdt3z7JxPud1nPNba48ePG2M8z8uaPDL6G4UQke/7nucBmDFjxvDwsNs1 Y8YMtxGFFCCKnJeh
vb88tuDSBTXJAcdf+uXTxy69dEGBBIaHh4vnct6cK1ND/9/Rt7fMHv3jLy++ 5jwN13AN13AN13AN
r1w4AODAY33fr6+7aWEwEfXPfvazpqYm5JAvfBowZqFVlFz1NWPGjJcOvg7g neeNQ+RKMrvWYElb
v4j0ty0BlrT1J4SE22t2ZRwX/3lmc/Lkyd/97ncHDx587bXX/hDj0KFD7m/E 4cOH33jjjcHBQfdT
RKJdUWqHSqB4mXr/ue2pwbwBg0+1tT1VOIGSchH53u17fy4ir7x0w+0vabiG a7iGa7iGa3hlw0UG
N63e+/PY7zvvvFOSyBc+DRiz0CpdUMVDdj/bv/vZ/vEUuLKrVA60N67G9u5W dTIBMDVXqdz7SPvg
la1XzIkFrOtt2Hy18ysZ2t3+1NzWqws5megqlYqiKIoy6UQTmEQhd911V+IA ynzh04DTbpXKohMI
lkFnS93ahl2imvu0YtGVS3t7h7BoDoC9Tz15bsPmyS6RoiiKoiiFUa/ucXHw lbzusuedf3Li8q2k
7G7uqKTlXKksex9Z99Cv3Oav1j0JnLt0c+sVADDnirm/XrfuSQDAxdduHv9w SkVRFEVRJpIDj730
4sr625J2xW3b09jOPX7OOSfByfv3v7cTmmklZfdpR9zBJt/2eLDWWmuJyFob TzPftw8XPzowSiRr
o3CO+Xa9e+XGjSuTI3/w5o0fLCGF+EkVLYmiKIpyiskdUpa7rUwLhh56FFdu TjZ1x3W2au6pxhkq
u50Idn+ZGeHQUlROcwPwfd/Jbt/3S3E5stb6vu8OdBtuO2ujcI6VKnyBLE5B LoqiKErpRO+U6K/b
yHr1TFbxlEoz57Ztc4rHUqYeZ5zsjrR1BDMzszNIR+K7IgwPDw8PD/u+z8wl evq7PsDJkyejCWtO
njwZpVY0xyjyxDE8PHwKclEURVFKJy67HZ7nGWNceKTCoeJ7ulNgfXgli4n2 J0nkzJLdcc3tpDYz
O5u023ZUKruRkZHjx497nlfU2u0CnUYH4Hne8ePHXXg0wWQUUoASZ6McD+6M JjoXRVEUpXSid4oJ
8TzP87xUKuW23Tso8e2jTBvUpaR0JnTcZAHOINkdae7IvD06OmqtHRkZcY4T Tnln+WGPh5GRkSNH
jqRSqaqqqrjszsWZIoaHh6uqqlwhjxw5Ei82gCikABWdDjKZI0eOnIJcFEVR lHKJjNxOcLtZ1TzP
q6qqcuHGGFXeijKJnEGyG6Hmdrbt0dHRkZGRkZGRkydPnjhxYnh4eGRkxO2q lKwcHR09dOiQe+Rl
uZTkOpkAGBkZcbL72LFjx44dc7tyNwpQSpxxEi+boiiKMhWInEmqqqqqq6ur qqrOOuuss846y/f9
6upqEXHKG4BT3pNdXkU5Q8mQ3Z0ttLG+fxqvdhPJ7pGRkeHh4RMnThw9evTI kSNvvPHG0aNHT5w4
4ezflZLdvu8fOXLEfekrRXaPjo6mUikAM2fOPHHihNs1c+ZMtxGFFCCKPHGc OHHiFOSiKIqilI57
pzjz9syZM2tqat70pjfV1NTMnDlz5syZzrWyuro6y89bUc5YpsS83c0d/fsa V7cvn27CO3Is8X3f
mbeZ+dChQ6+++urLL7/8/PPP/8u//Mvhw4eZuYLuE7nzorjtEp93+aLlK2Hx 4TKlnJs+jBVFUU5P
iGjWrFl//Md/vGDBgjlz5pxzzjkAUqnUWWedFT3+9RmvKBFTYd7u2tb1DbSl s7WjeUJzPZVE85NE
jiUnTpw4ceLESy+9tGfPnl27di1duvTOO+983/veN+b0C4ePTco7i3judoE0 8yrvIHbuQQJkxkyb
QQiEMT+ex9l7KXx41HspJZcSSzLmpIoGlnIu4yzYNGbMEmEq1Ns4O9hlRatU XmVV+ARFLmxBcMry
61//+tq1a8sa/p4vtccff/zjH//4+CdFdUldddVVFRmUX7i6cpu3Maatre0L X/hCd3f3T37yk3/6
p39asmRJfX39+eef71xKHHHf7qK5KIoyEYSyO/Ivqatf0rtvAM3Ty96d4V5y 9OjRoaGhZ555Zu/e
vRs3bnzXu9519OjR/v7+MaSZGJg7R2E8fmE9ne/dkJVIlik9a6LW+DdEEQEz Q5hFhAFyh4II7idA
Ub5Exhgi4xkiYyizPLlFLVeJJh5SuEdR4GdimqVslxKt9DQTr0g0GXy+CAV6 ZaWr9mnPeGTBGKqx
rNrOdRtDUoFzJywa/3bRwHKPLSVCWUUtMSRfhNznWDx83rx5Q0NDL7/88uuv v56v5InkRnjLW97y
yiuv/J//838GBwcLxyzKW97yloMHD/7+978fGhoq99h8FChGVls9++yzX3vt tddff33evHmf/exn
r7zyyvvvv39kZISZZ82aFU1pkkql3HalSqgoSrkEsrtz59Y166UWQO3Chp6d /cB0kt1ZHiZHjhx5
+eWXOzs7N23a9I53vOM//uM/xpBm6YpzDHFKxD2UiydIQk5qI/1+kihEAu3t XANFBBAWMoLomZ84
7L3EGiisfsoV2bk/x6O5yz02cTurH+UEd+S+Hzd9FdXcZ7jIzmU8NrnC/dui h5RFVg8wq7Oa72c8
clZ44e18gblZ56Y/tsSzTrboKeQ7vEBtxEPiN4ibA6rAdUkseeGYRRlPwys9 l/EklXUJIg4dOnTo
0KELL7zwlltuaW1tPeecc+bOnTtjxozq6urq6mqnvJmZiFR8K8rkzNvdCTSj c2dv260dLmR6mrud
qdv3/RMnTrzxxhvPP//8Rz/60YULF1ZQc2Mcr+18qRXIKyvTpKezO1CEA6O7 MIOIGWQI4lS3ZSZA
nA4nwJABWSIwux9hWmNyh0jU2fnOawzG6aL5lmvkzrddejpZoqH0bwKqufMx Zh0zBuU9HvLpvxJ/
lqi8kXPL524X1uVF5X4+YV3KKaBgr6NobeTiNGK+ghUoeSIl6umf7n76V//6 2wIRLn7/uz585ZIC
uZTSYn/80+4ol4vf/66PfKgxN6RoUokN+/XXX3/3u9991VVXvfjiixdddNFb 3vKWmTNnRuKbmVVz
K8qkzdu9sX2gDht7V20PZXZ/X0/DimmkuZ3gdDMD+r4/PDx89OjR3/3ud5/8 5CdLmQk7N7XKlq1o
nKKP73yqLjhOxEVhZmEGGWYxIAHAFkTWMpEARkSMYZgUGViQm2NKMs0q+cxg ZSnLoopzzFqZ8juc
lJLOmEU5yrF5J1JiBZ6xxOu2rAMnTnkn6qECyhs5FsrS9W5i/HwRCivd3LwS 08lXwnynX/jhkHts
gcSL9hOy/hY4nXwU1bK/+tffPvK9/14gwtV/+ZkCsrvEYvzqX3/76COBuWvl 1S25IR/5UGMpSSXu
Onbs2Mc+9rENGzYcOXLk+PHjb3rTm6IZcq21qVRqzL1ZRVHGg8GOLVt2NKyP 5i4Z2Ne7pL5uUstU
cZzyjny7T5w48Zvf/Gb+/PmHDx8uN53xFGBsxxZOquATmcL/ABIKQtJHpmPF 3CMF4qzkIm5mF4nn
mPUzXobcchYNSQzPOruy5G8pmjv3dEpMvPB2Pt0TNz3mk1CJdaWaO5FxVktk Nx1zhKzCFLh2Re+U
fG14/G2+cNalt/kCN1TpRU0sT278wkkl3qrRrlJKWyD3iaNwLhe//10rr25x PpA7Hn7gV//62x0P
P+B+rry65eL3v6v0pHI5fPjwggUL9u/ff+LEiZMnT46OjrpV4aLH+ljOR1GU cZNaha1rG3Z1RAHT
zdgdIJmLU/q+/+Y3v/nVV1/Nivbjp/6lxAQvWjB//ry35649OQaLmozJ6pCV S/gKa74AACAASURB
VP5vrCISeJSE28GhIqCMdEQgFI67JCKED+dcK3I+z8LEkNzASHqWIg7yHV5i dqdyO05Rm3c+K7i+
EStLbjMr6r5V1l2ce9ONwcMEsZsiN7zwduEIUsyqXVbiuedY4BQKV0W5teHE YqKrd9GqSKSUS3z1
X34mK6SwFTwxl3zFcMbsVdd8+uGH7gfw8EP3W2sBXHPtzc7DpPSkEnnzm9/M zKOjo+6V55Zhruw8
uYqilEuqtVta0z8H2jf2tm3vyB//tMQ9r6P1KQssiLP0Ix9KDDdEZEgkbXR5 8sc/Pe/cuTNmJEy3
nvsxNF6SxO+tRSnsPpGbdYawIAILARJauyX9VyjQ10GQQIgQnGmYSOnFLkWF l2KdGqcOThQKRbfH
Kfqj7UgixL+PRwo7CoxHyJeXUhEq616SSz49FG8J+SLn+1mKnI2rZ+SR7Lkh pTur5CYenVeB0y+g
fctS3om1kXW3JkZIrLdEoud5Lq+99prb+G9rr48C/65tWxReOgWK4bT1Ndfe /N/v+5oL+cxnb0/U
3FFSZXmbSOhgGaHWbkWZXLJWqaxb27BLppetWzIp3N1//8UXl5jskz/+abnz s47nSVf02LzKmIiI
jDEC8sBpS7aT3UQQMQCImIXIPbkN3PwmwuFOcgObUM6cVqWEFJWeFd+eiMRz f0ZkCa/CKjwxBSWL
oloqkVwLd2EtXq5STyxVvNVlqcl45NyfiQbjwuq5wIFlHVt6hAICt7Dyzi1b gdrIOoWsezBejKe6
fvHr3xSaB/b971v4oSsuKxBhQimsmMtKB/nbf27nJOvFF2f8hVEUpVyyVqmc zjdiKY+bao+6fra3
42f7TIpNlZhq61Xbv/3zD7/tbWdHcT70+Ud++vdXF82rlAj5Hp2577OiqeV9 oEv0B24NHBGXKLns
jTNuu/1EAgIJuYkFgUCL55jBEl+6iedY9GeJWnbStXW55czVba66Is8TxGq1 IktsnFFURHwXVd4o
7QaMlypReSfajHP1aD7z9hiUd2L6yGl4pRybL8LYTqFARZVi9c/qpsafRb/+ TX80HjGRlVe35JPd
ueUZHh52G3/Xti0xfAzk5uKmLvnG19dHyX7j6+s/94WNCA3hpSdVIKaqbUWZ OqSKR5kWxJ/UBXCP
sfP+00yvSkyVNVXsVZU9rWOJmruUvWN75Wc8jgPnEiISAbl1cohMYO52mpsI gDEEgkGQgMCNwow0
ecKLNl/xcsOLSvBcO1bRYwvHz9VMZYn1co9N/BkvTFzqZYXnnr5yyiha82Mw e8dvwALStvSfJSrv
qLT5lHe+vYl9g3zSHLEnTFarLnwKKNjrKP3043+jM3IhL7zwAsZKVglHRkYA /O3dX8yK5sLHk0uU
hdPcf3v3F12aX7rtXpfd3979xS/ddi8qrbxR8ntQUZSJI3tE4LSkqDaKOHZy BMDZb63699df/beh
A8//fv9vX3spOCo8cM57y1iELPFTaYlFTYxJRAUetfFDwjcWnNAmonBt4AA3 R2C4dLAxhrxwD+CE
eXbi0WfKuKNOidKz8M8SNW6Jmjte2tzwfNv5Mhqb5s76maVpcnsFFfkArZRC VlVXvOaz2gwytXtu
O8nX9pDZbhPjJMYv0MgTjfGF80pMJzqvAoeUtavA6STGjIdHR40WpEA6uTmO P6kCWbhjf/Wvv914
1+dcgl+67d6L3/+uL912r/u58a7PFZ44PCupAk06tzWOp/CKooyTM8XaXSLu WfXL/f3eWbaq2npV
vlftA8Fa6s4qfO78301qGYGct3h+Pz+IwLmLOAeTwMKdLPgofRjgjOD5ntf5 vr+XpUQTH/0l6u/C
2xVJpMB26T8jezZyXHSQg9q8yyVRc0wR8mncMTic5LM0j8HhJPfGL/3YfBES oyFHlOez9yPnCiYm
FQ+sqqryfT/r8Pc21K7/6jeQn/e/b2FiybMQkYvf/67CSbnZ/cbT/LJyiYZR xkNKTy13BZzCBhpF
USYLld2ZEAGomul71b5XZVPVo16VD8Ck/Z/RduXfjiHhCsqpfNaLpIescxdJ C2pQMGlg7K0GIKls
mYklqu1En8usQ4r8jH35DLKkhPjj0dlFDXITqr8dhXU2xXy7c6NNuXdneOWy Sprg4HQKS1Ruvokt
Od9NWtSrqqyC5VOuhZU3CqrkfNv5IuRGQ2YlFHBWyZd4lOzEOZxEgTNnzhwZ GfE8z/f9KOumD37g
isv/JF6GfG2yaIO5sunS0gdfjqH5OT585ZIsN5KPfKixsGNJIsaYkydPzpo1 awxlUBTlFKOyO030
+E7NGE1V+V61n0qNpqpGAbhl1Se1dAGlyLJkeyoRRIjcKMmYyCCnfSlZfMcy zbLVRRlFqeV7DSf/
dH2H4DCAQRRt0NjEd+J2gZKUKKbHo7njwi6qwMz5vMEsEGFhVytw4TmigQI/ /PRHiYlukVkXOvwp
rsAiwkE4yHkqBYubTgUzW3rdJyBvvWXdJkW/Nozhc0R0U8RvuhKUt0DAEg1o zig/8ivy3O18EXJy
TNguK/H4UUWVd+FduacWT/zkyZPz58/v7+9ftGjRsWPHnPLOLS1lun0nJl6A xKMKRx4DZeWSCxF5
njdr1qz+/v4LL7xwbIkoinIqUdkN5Dw0q2aMpKp8LzWaqvK9lA/g17173a73 NjQMjwxL/nknChjM
SnnQFzBNFUi8BEKhK+lEJDJ0i2Rq7uycI62QlgssZFwsEmdRNwin/Xa+KWkj e6SA0tsiIhwWK1jN
h8JjJLTKh4ck1oAIxwz1GeeS7kc4qRqY0TMvgdO+udK8iMgWcasMZb3Os6+v 61MwZ12wbKu2BLhl
MkSEhYmMxM6JiJCTo0i8G0hhtPyk1TzFnIko49+M0kcNJpKtbgdDELj4Q1wX TgBiMmRA5AmRMcEs
OaFATGi3sd5FdCb5y5OusajekKfJErnPOQLEqytvvSX1lFCgPrMbTEaKhS6E McZ9+UessylAMDVn
ZutxF0mCST5NeF5EBCLi8NYiSg+JpuxqzN52BxmTMbo3S/ZlHetunXhgzgJh QdkLK+94yoWVd06Z
s+MDOHTo0J/8yZ985zvfOXny5Hve8545c+bEJwLKtXAnnl2cGTNmvO1tb0vc VS4zZsw4++yzi8fL
YWzKm4gOHTr061//+pe//OUnP/nJ119/PfHFoSjK1CHVPoDW/BN1d7bQxvr+ 7gIxTn/i7ztD9Mor
L6yZd1W+yG7BAeSRv0mv8ATjdCnRSkm8JJykFhHJ0Xyx7bSkppiIRrYeEBGw gEhYyMKZOSPbmzFG
MmWWiJAhSKh9hQGwAMyBuZTD+VIQKiaiQI9QtCudRZhyIP+cYGcBwAA5UW/I ABAPcEKDCAIy6anH
AbC1AkQLJ0V6WkQoXJ2TMusnowDhbgEMGTJBxVEoTi1bd3buO0lYLQCYyDCz U0tsLQhsmdkCYBaB
ONntOjXM7OZcB9iQCU8/WEvUFTBtb85U51nFJoI7KNIlRAYEYwwh7EOFTYHZ soi17DJiEUMEAbMF
xPetCIvAsjXGuEw8LwUiz/M8zxDIeIbiRtOYzhZAhAnEwbw6BcvjCsUsIpY5 uPAiYc8mrb+dPPUM
gUiYiYghEBhj2On7hHrLNooDIEPCEisY3H1jDDEHd1PYZwv7mVH5g8sXzQIk FDYOZnHjlYObSoSj
/k26g5ZuXRQ7LzKuOklEjDHp7mVmx8/hrnU0iiNU78FPz5jggoaDpsNGkqvW XJM2AAhC7sDwJopu
dqfMEauHXOUdb4pZxc6ViUVDnIX7b/7mb3p6eh5//PE//OEP6eLGi57vlHK4 5557cgOLHpVI0aQq
kkuct73tbQsWLPj0pz995MiRaKynKm9FmbIUsXY3d/Tva1zdvnzaCu8sLTvi y1/95XIYsiOjXsqD
qQKs+P7ZZ79VBL71R63vecYkPdQSLKN5yFSQZReyQJpIsjZBhCPrZdo8RyJM zuEhlEQS6mj3Sk7o
IAiYmdxKOk5H+0HexhinZQGBk/fOEmeDDRAQqG5CtHYDRykRDJEJxGsorp3+ JQg77Q0RMhCOdCWL
RD/dwvdgYgJgyaUlnpDrJ8QMjUHegdUWwoGCk0xP63Tli1NdjECgwa1aSoas sBEynkFQRDA71Rqu
UJHW7gDE6ZW0HmVXEisCn1lEjPFY4HlEMNZad8UgAgOO9Ku7CoE5GQg6KYH6 SV9T5mB1VeZQ9wcl
97ywuj2QcWo3s1VLMBdMIAoNiQhbSxDr+yxWhKz1jfEktBsDJMzCHggee4Ed 1JiomxrI7uC6utMp
Xh5XQcLC1ncFYvdxIEwwuAGMS9zpWtfbCWrdXd/ceotdiODmAMg1n7BrJVEr IzIibIhchy2qT2NM
eFkZImQkFNEkwpGR2/Nc6h4QF/rum0FY00GWAhEyQS+LDMACjwDDbJ3Sjd28 acUd3rYUljv43BNq
ZSIiNgbB7U/B3UUEBBFcW0O4Izw7UHC2wexHAFxHlwycKqfYt4X0XZP0aIq3 r3jkfBo9MWR4ePjo
0aMf/OAHP/KRj8SjJRq5E39mUVmdeupV7x/+8AenuR2qvBVlylLUyaS2dX0D bels7Wg+FcWZbNrb
2xKfVlVVKSJvdGQ4epnM+b/Ojr63li6g45T4WMxNvNzsArGdPixtyxUneiXw JwgUEkGEndUuy0Dl
0nEaCJYBEhYCyBgm66ZKIZBE1lwOFHzaeuwEATPYGYQD0yUAZ04jD+liWAbg Npw7AlgCQzwQGPGd
cHemfAmEHEFMlQc3YWKVIWPgkTEQcpZWYWuZmdlay4EsI4jAqRlrOa3SCBB3 Xq7/kpbdgPE8z6RM
IH0MGQSWYmt96/ujvm99606TyAkoeJ7n7JFERkSMAbOItUTGWjYEZhaQBKuE MjOsEAkLhK2IWDg5
TiDEVw9F4NQB+NaNMzPM1jPEArYcdRvIeCKSSqXIeJ7nVVWlPM9Lec5QHLUL cdZlZnY2TqfSrO8T
xPd9ZkvGsOXIWiwChnh+IDA9z7h+m2e80BRKIkwQZnEdA99akaCXlac8rm/C bK21dnR0xPetCHzf
d+fKwp4xAhAZ43mu+2eMEbGGjPsCQh6EGcK59eYUL6LPCHG5SRABCxOc1V9A Rpg9zwiIWTzPuMWk
PC9FBM8Y1500RG4JbhCxZc/zXJmqqqo84xFgPBMkzkEbZGbfcsYAEmFDxvUg yAT9KYB83ydDbJmt
JWP8Ud9dUBC8yJZujAk1vetsWw7KD6CqKgVAhDwv6NcY4yF0PgluMstw/TyI 53nkuuKe53pHxnhE
JExkiMTAMyQQkyC4c00AWQo7a1dR5R0/9ujRo0ePHnX9DRcSt3Dn/gUKifIC gWVFGEPMyh4bEXVu
FUWZUjjZ3dlCy7auaWvrXdu3XgKBHfmX1NUv6d03gOZpau/OoOk/Xxa3GRTA GFNdXY2xau4SDyyq
uaNXUYKRO4jBkFBWiwDELGQILM5ylv68LUIcjGc0oXtGzJCZfosLC/sW1r3S RQDjtExoRRcOvD1E
RAwJQRiukyIAhIQtmJnBloMP7ALyDBFMyoAMsxjjEhciwz4TwYlPMkifjTNX W/e13w31g3Nc8AAY
EQ/wyEAoNLk66ezkju9EjyuwE47ODSawboayO+hdSPDdICiGAZmUsBHPMyYF CxZx58psrW+d7vZ9
AVm2hgwF3gHRKpVWBJ4hay3YwhCzMIRMCiCyApD1fXgpn4WEU/BGfUvMQuT7 PgECI8yR57rTrwYS
Tu9AzJYNscBaa4yxzAQyXtDRMR4AZ2YmNoZc38N1S9j6Pvu+7z5u+Gw9Y0R4 dHTEgEZGR8RaMp7v
W88zIiTCXoqZxTfkeSlmTqU816/gFCP0XxJmEmYWy4zAiUXIBL7sSeURCJzq Zmt93/dHfRb4/ihB
WNL9OjLGeCkCPM8Yzwiz8TxmJsADrM9GWIj8UZ8oXW/MLNbCGNfLA9woRkMU yW4hiHNGIuMJM7Mn
ILaWPS+w2XsskJTnEZFl6xljA6s8MdsUp2CMZzwiI86QH4xiYGH2R31m31r2 feu+/5BxgyTEfT8h
kKkCBPBIBNb3iWAZwhYg9zGEiMU5IXkmdAQXct9RXPldachz7ldEhkVEPApq TgTiGQOAg/JbkaBK
JCUCMgaeIPYwoFTKELurChjjusNxgRs9NHKfS/mEeG405GjQAnGivJBE8uMx k/FHKFz4ElFbtaJM
Y1LAQHvjMuwSaQY6+2hnZ0dzM4DOnVvXrJdaALULG3p29gNnguyuqqqqqqoq PX5FNHe+h2zRxEvJ
nYMvysERCGcQ5DAF93KMva4IAnjBLOWUm4tzy7YMtsyw1n2rdu4fBCJwOEuJ O9rAmc3YEMJUSQRs
nfYONgSGDQBjDRkjLOIBlkUAY3nUOh2P9Fd4pxAtWysMARAYzwkg8ggQeMYY YksCSXFKDALLughL
oPxCV5fAY1gkNIe7oY2u+ESW2UAoZp03RAK2lgADsc4JViAEFmttYOi2vnVO 2yxg8jwBqmBCkyoR
kHbqFTCLcTZ3gick5GpKwr6MM39bIWMtEyDGeU0EV9V1kyI9ywK2PhsTym5i FhB5AiKwNSAmMmyF
YC0FdWsgHF4nZJoShQnBmEwSMmQ8z0jY1XKdFRZLIhBrIRbkiUjQzTCGyEAY bF15nJplERKPiNhy
UnncRQs/TNjAf8f6FhCG+wbgzPwQWGPICFnLzsmEWQyJtW6uGCvkOh7pehNh 61sY5x8jcAIWvjHk
vDds0E9g14sBAsuvc/YJbqmgSQoDgRk/cC8itgxYMJCCsVYEhoAUIGJIArM/ s/WttdZ58wR9KLBI
4FJv2NWoIHQ6skLClgDfZwOB5+45Iuf64kYCBPe4+7ogBIIR4vCjjLsV3MDo wPHHOY+BLQdnbIxY
i+AzBcLPVa5L7nrohlyKgPEydHN8I/4AmQiHkyj9uLCOy/3cv4nJ5suu3Ahj jlyRAxVFmeKkdqyu
w6r+bmfhbl6xZpnT3Z07e9tu7XBxprO5u4B1pDDj+X6X+J7IilD0mVtCAUIR CQltuRByoxido4cQ
Bc4ZFDiEAMJkSOClRxem3UNAAAuc84GMWmawz84d1LmFEBmAA/8TIglHBArE mMAmzgQSBvtOcgsz
WwFIrBGISRnjGbYwvojP4qx5vk8iYjyI86kQIQgT2LJvRUiYA4cH57XgGbae qUoJkBIYMdazxhqn
/23oBMLMvnUSlQGxDJFwaKOwMR4zG4JzQyEKnFgsA2DjWVBKUiyA4eBbtwdA rLXs+/7o6MjIqD86
MspEbC2BYAyIrOe5qT7csEnPM8xs2IfxAu0lJARDnoDsqO+lMGJhxIrI6KgP 9hlmZGTUAGI8a62h
UHgisnaPCjOD2PomlN0ekRUGjEl5AFVXWa+qKuVZIlj2znJOMKHudmI5dH0H W2YCs/Wt7xH5vnWC
zFprmMSItT6ERn337cNjf9TzPJiUQFLWeW0b8lLCPtgyi7UsbP3AGcMDUXV1 YnkEJNayPzpqrT8y
MjwyOiqM0dFR1+CsSMoYIggZz0sRkU15RAZijXPmAajKiG+NJNQbM/OoL2QE IGEyFA4BIAMGEQuD
rbWWWcR4BKnyq4Q8YU6lUoAQKAWCMDx2TiDGwPdHfWsFxMyerSJjmD2Q8Tz2 PAKzc0ayLDboTVg7
6jORsCXnISLWqxIWMSDnX+WBBTQyOkoio5aFrTGe74+CBV4KIM8j5+giQoai gRxCIpYthMR4xriv
WyQiVVUp12pSVSkIpzxPALbWEDmfFwEJi2cFRB4kVQ0RSaU8CcZQsjGeW9vW Ocln6eYsO3Su2buw
Cbwsh5MCwnpsyhuZ0r/cCFmRx6y8S89FUZTThRSwpKcvsmU339q2cXX7QB02 9q7aHsrs/r6ehhXT
UXM7sj53lkJZmjsrckVs2Llp5j0LCeS38xMWImZ2I6fcNIhOhQuRiFgL43ks bmoMt6xldsZwo+Lc
IEBm67PzRHG+K0LsAexb5+zsrMjOx5fDpT6ZQMzkimQD52UW52ErJMzWY4YQ hK2bKsL6TAQSK6Ez
NAhiAWH2OTAYM7s82LktiPNCiEpOoduyqyTXfbC+77OzbQMssNYPfHMBw+Es KURirSGCsGW2wSQW
ziDqgUhg3FhQFvHAlq3PIoJwmBxEwnFowizkNLzzBEfgKm9hxbcWYOPBihhh KxDftyyjlo0we1Uj
IyPElsmMjo4SRMhjZs+QCIwJnH3EeZezCJnAIzuYjc597AimaSR3wsZ5b8P3 KQUwyPMIgBsSKq7L
RnBOzizCgW+Dz9bCN771DZFY41srhqy7XgK2zk3ZCsS4S00eCSDWCDvH/uhT i+szJJdHxDOwlq21
1rdsWVisIOgmwbAIw3VpyMKZyIWIIGzYdRaELJhtSji33qxl8X3nI0HCxhgr iJz0YYhFTPjxJkyb
0pZuZudJIswEIwTLvghZy8ISjDUwDDEc+LPD+hZkRFhIrIjz5hARMdGMl8FM L2wts5t4xTDbKkPs
ZL0bScnCYGEJVLowiQmHAhMHNy4FgxHckIugbThfdg4GMARu924wqLG+L55n mcUKw0DYCANkBYbZ
XVk2DCJ4nrOXp5zvVtjhzXoiuQ0KR2znKm+U7OqNHA2aGz9XWCNoYeUp78K7 SowwhpiVPVZRlClI
atX27vVbqLE9mCWwdvkqrN6yBQ3ru0OhPbCvd0n9rZNZyKnFeOzcpSde4tO2 oEUk+Ezv5v4AuQGF
FA00cvozmGbEOU64QY0I38VRKtHHYufabUWcfy6LWIbAioCZjIFnLLMwh94s 1r1sJZgRTwREYtzg
SxaAYIgs0pOKs3U+tzDGfR53lkcW51QgbnwjC4wIxLJYy+w+yzPcXhONEYU4 6eO2GE5DQQQSji8E
QkkeqCknT8ECL5glgwAGhK2bb4KZRKzAwJBL3MI3bIyFATNbDmqAKUifTKB7 XW7h8EenfolgQPAE
5Dm/WyIjhsh4boIJImOcGRbOKd95JrhpEZmZYACIZTEE5+kTNI6olURXOn39 ozI4LSbCzAYkztUn
/EoiQcERzPdtYIybzg5UVVUVakVDEGfzZGdkhXO0d18IGE53IZoUT6LRn0IE Z9dOLA+EON30ogYZ
ffAAIgeb8LxA0WyKBOcdHdZATr2JCFsLgS8wYiWYZwcG5HoaEtwzxpCwIFwL yBgRQyRuMCIZeDCG
BLCBE3v6HgzHGRvXDWNhCny4EXyf4OBDUVAz7ouRGENkAc+AiCQ+6FMAEBM8 d8ZhbzbsIxEAZmsI
Ii6PaPL4oI4lrCk3vQ+ZqFsYXEpPyBIMELqiwXW03eOGw463m5TFXZ3oKZFP eccDC6vtaFeikbsU
5R2r/QzxjUz9Hf+JJCqrvBE75bJQ5a0o04kUglkC62hHW393a23t8lVYu7Zh V0cUZZobu8tjzHbu
wgdSbOXC0nMvYPPOCE/rFROue0fhvGPOZisUvtcpSgwmSivdGQj1sbCwDYYz cjiVhRMM0fhKAUgM
ec7sHb3vCYHrijFGmA15MAI2weQRzgHDwPULKBjdGS7NA6e/gjVbABtZ09n5 t5DxxBhjCIYyVvag
8BwMwASCcXMbhkov3suI/e+qy0kwOJcAX0jYuuFphsnYYJQnuY8IhghkjGHx yAh5xs2NaEDu8gTO
Ns4rxUlyBoEMBQP7jPGsMAWmVTcNtVBQn8HXCwizFTaWrS+BqR2BW68ToMGw QM94ziHb84yxTARy
g/YoVLrBJQkM4K5LQ4Gpldl59VhmCqfbA8gYE5TNuOl8DAsb40YECMHAGM8z 7KoomIEuUMLu2rJr
80Aw6XdY4uzySNhTCQocAONBiMgYFpOOTkQSrfES6XMEIxRctVlhsLFsrRgO JpF0nuXhAAFjUkhP
uAdDRtz8jRReONfIjRG2FJYThqLxEMGJkgEsGQpm3XOzjERdAuc+QkSeCbo6 LmEyIkLGnS+7Lkys
T0HGEFvxXFeGYIiCqvEQCGqiYAgxGRb2yLBlictciNPpzoAfzErJBBMIczdN pnP7DipCXM8j6iGF
Lk3kpihPm7qzdDNCaZtlgaYcs3f82ZUbucBTLlG1J1q1c3sCuQb4LEpR3lkl LBxZlbeinOGknI27
tVtag5D4NoCB9o29bds7ko6dblxwwQWpVN4ZFccguON/K0timlnPZXImwaAI kv7cnHl8qDgDB2EE
L24TbWd0HtyQPhv4pQrCOf7ghLpxVsx4SSPxG+SSse57uJ6lhLPQpU30sdGc FPjDRB8CXPxgHZf0
CYf/BMLMSVlDnvMsNvCifIMxb8xhvQQTCEr8kjlTYuiaInBSP5yHm4znqsl4 bv41Y4yBiDOLuhFw
LgOEKxG6czIm6POEsj743BCejQBGIIG4CSbcgFtnxw0WFOergMDGGehVBDMw GkI4YtatrhLMRRha
+ELdaAwomCDbaSkK9LE7kAGEfghpdcLMFEwwB2O8KCPnpRNM9RLEh1t0KZpn M1hNBmHPIWyYCMrj
5ZZHJDCi29hIRYSzRYrzZQ+GeIYmb9fGos84QdsOJqkO6o1IggWAxC2g407S 9W2cfjeAm2LFxBti
2CUEhMhzAzddf8+ABG45IYTdE3dPBPNee54XpG0MBSodgaNX2AAkWPVThC0R BdNVRiIS8fnXg48H
0c0bfU1yG1EDgDNNh50QY9ygCyfjXCfKyX0CkZsAUWL3vDHG/TCecb2gqMEH PSDjBV2l/LrwVO4q
EIGih1qZqZUYp0QmSED7vn/w4MGJSFlRlApSZN7uzpa6tQ275AywdZ9//vlP PfXUT37yk/EnFZO6
8fdXeXaReLRQMKUTyRc/sAVm24fCKTvCFOLa2BU2dlTwBg2Vd+apMYvPwmJ9 K9aKQGz6A3Po4RyZ
12NGmuitHEhEZ293qjveCUBoXAvTdHFj69QA0SqF4WnEz9jZ40woKz1Dngkt jqHdM1yhRGILCQWW
9AzZbaKaYWaKKXQRN4FgJLvJC7xCxE1vGCn6YJVK53QbuzSU+RPhYpCRxxmh yQAAIABJREFUgd2E
dngEV1+IjLXWKeJgqVQidvPAUXQMUVRPYX1I5NyRDoNJ245N+DOS3UE3w43w dN4IbpkYJ8ucyzi5
GfQkWoYGnJ7XPLxwca1DgdQMNXB0exQoT7iCejQhjDsy1g2jaBBCmJM7AXLV ThAYCCfWmwDCztla
KJxZLywG3KqZQasJ6871ChAt0+j6Cu6ecu0kuvcDD69gRmsnW40hN2gy/Zkl tjyThJ444SqeEpXW
9dWC/ltoPE5bbcN1ZYOvWIjSiblPxRpdeKAAwTT5ru0E81EGN0LQzt0FDfsP 6Xm+w/6bFz51lMnk
Ix/5yJVXXqnKW1GmOEVXqZwAU+2UJJVK/eQnP3n3ez8w2QVRFEVRlPL48Y9/ vHTp0skuhaIoRSi6
SuUZx+1fbi0eSVEURVGmBl+7p32yi6AoSkmY4lEURRk3R44cmewiKNMQbVeK oiinESq7gYkZ9ago
iqIoiqIoESq7VXMriqIoiqIoE84Z7dutgls5ZWhjUyYCbVeKoiinEWeutVtf V4qiKIqiKMopwwxg
oL2RiIgaW1qCjfaBvPE7W7J354YUP0ZRFEVRFEVRzihSj3fWtnbv6qON9ds7 WmtXgDbWb2+t7PI4
zR39+xpXty/vrnC6inL6oF9XlIlA25USp6xF2RRFOfWY1uZTkEtt6/qGtVs6 T0FOE0v4YSD9TWCg
vVFN+cp46GwJm1TL6X+HKFOEdKvK07A6W5J2DLQ35v3cmX7W6ffLqY52xhRl yjJm3+7cp7YLaW9v
jAVHz+e6+iW9+07vB/VAe2PdjlX9wcLPuxr6+gHUtnaLWvGV4iS/CAfaG5dh l2tS/fX7VHcrZZJf
YC1pCx9WHcm2lSVLejdmeQxuWduTNyd91p1WqPJWlKnJ2GYyCcVCM4DO7JDO PtrZ2dHcDKBz59Y1
66UWQO3Chp6d/cCUfWjHH1K+b33LmfsH7v+rte/5/kjLO0ZPDgPAFd+8H8Oj J09pGZXTlaqUd3J4
NKFd9fX2XPqeea4hveMzUetSlFLI267gW8joSIHm5FvIe96Df/7+v7XcHD6V n/jfWz91w6e+tbfg
gaUkrpxSZpxVNdlFUBSlVIpZu9NuFWkT9o7VdTtW9cctKBkhzSvWbN3ZCQCd O3vbbg2iTWlzd3HD
wAud/+sXN/zpR3N3/OjmGZff/8LA/U3VNz8Rhj3xmZlN970A4IX7rphRPXNG 9cwZn3kiinz/Z2bO
qJ45o/qK+weQNxBP3OQOrJ5504/S0Z4IErz5Cbxw/+VZh+Rkp0wpktrYRz/+ qV/8txvuj98YrkVl
bf/o5hmX33zT5TNnfOYJbTBKBmM3ar778+sWfeHvw0s/cP/mvVs+//Fob3KL emE8RVUURTnTKSa7
a1u7sz9U9gBLevr6Y5GyQppvbevd2D4w0L6xd9Xy0JDS39fTsHDq2brduWUH huFxcOm7LxIRkYH7
PjhzRvXMGR+8b8DtEJGLbvryDd/6QaeL+cQP/vGvv3zzhdJ506L/9xO9w8dP DB/fiXtcbDx967/9
6fETw8d33vCLL/z9E0HSCYFL7x8+fmL4+Inv//W37g4zevrWzfLgieHjO2/4 1p9V3yDfyjwkKTtl
agCAmZPa1UfvO9H3iUfrZ86ovulHUez4kdHG03vf/a3jJ/5hqWiDUQLytysR PH3rorBPlXywiHz0
Tz/1jz9wDW9g1//Cn3/swnSTS2pR8WOVqcIkvDgVRRkrpr1sd9Ilq7Z378Ky 2Jia7JDa5auwY8uW
HQ3rI0/AgX29S+rrKlLkylHeA+sXzztDz0U3/+z4ie//ddbej/7pX3/rh08C wI9+sPfrn/so8EJ/
H37xxYazZs08a9aKf/zF865bcum9n/tYEB+9+wLTUVLgEzfNmnnWrJl/9u10 Hpfe+4+fvSiIdukn
mi/KOCQ5O2Xqc9HNu4eP9369b8VZNxeyOYdXHNAGo5TApfe6PtWJf1gK4IX7 rpx51qyZZ82aedOT
sUhLP/f1vnvuewF48htfqP/yZy+KJ5DQohRFUZRxYZY3D7Q3LtuKnrWrW1qC jeKD1Js7+lftqIsP
Z88IqV2+Clu3NqxI+6FMUWN3yVxUV59WyYl87HNbeu+5/4UX7t/c9+fLwrfX DTtPuDff8PH7P1ZG
di/cd+UK7DwxfPxE372Xln7YWLNTJhiiYn28iz774JZLv/3DH40xA20wZyTF 21XERZ996kRMhafD
l30Cj3Y+cd89zlgQMcYWpSiKohQiVYva1m5pDX52dBSJ39whTkunj8oNydwG MNC+sbdte7G0pw4J
X+4+uvbeze9r+Ezd8dhLK4olIoILP7YSN/7dN7DoS09dKCK4sK4eX7jnvs99 5OYMExLiaWemkA58
4d9+cel7LhSRF3b971/gE/mixbcvypOdMgUQQCSpXT15/z9cdPNNF8GNHrj0 E7UiePelv3h+QORC
4MkffBu4t5Srrw3mjCRvuwp2F9PkIiIX3vTlRTUrvnDpvXsvjKKX0qLUu0FR FKV8TsXi8J0tdWtj
/ianKRfd3HVsJ/7LrBk1s2bUzPqzvnu/dVOWXLmo+RP41rfrPx7q8o/e95uv 44uLatwhBR0Isln6
+XvxhffNmlFz47/Vl2pqGkd2ymSxtO7597oWteiL9d//6c0XARfd9OVPfXvF jJpZM2p+gGxfprzp
aINRsvjFF4OmNeNDhQdCLv38vZd+6ktZva+xtChFURSlCDTtTRbW2pGRkZMn Tx47duyNN9549dVX
9+3bd//99+/evXvfvn1RtPnz53/pS19693s/cPuXW0dG/dFRfxLLrEwzZpxV /fIrB8899z9pu1Iq
iLYrBUDNrBlfu6f9+d88s2XLlgMHDkThtbW1f/RHf3TttdfOmzfv/PPPP+ec c9761rfOnj27pqZm
xowZ1dXVnudNYrEVpSIMDw8PDQ2lUqnq6mpj0qZkIhKR+Iqtbla+kydPVldX l5Ly7Nmz3cbhw4ej
kK7nBgA0XTJ2Q/LY5u2e5ujwcKXi6LQDykSg7UpRFOU04lQ4mSiKoiiKoijK Gc4Zau2Ojx3KDYTo
yrpKZRER0XalVBptV4qiKKcTZ6rsTnuSiHNwj3+oFR2lr1QUCfWRtiulgmi7 UuJoM1CUqc+ZKrtZ
AFhmiBDBvbiYebLLpSiKoihjxCnv+DAyRVGmFGeo7I6MRICIEGdau//9haLr BSlK2Wi7UiYCbVdn
OPX19VkhWRM4KIoydYhkd2cLbazv726t7WyhZVuDwCVt/d1jnG97oL2xbseq 7MOjXMaTyPh45huf
Xtf3rndViYCd8iYwC2Jf6BYuXFi5/BQF0BehMjFou1ISUYcTRZmaJFq7A7U9 0N5Yt7p9+dhEb9Y6
lWOjIomkeemf/ut/vuftV/0/wKAIIMwCsWSMtczMbAMnk1TqjP0IoEwUr7/+ uud50TygilIRtF0p
EW5a4skuhaIohSg0gWBt6/o1PTsenz4fMN/5V/9z708/14j4osqZS2ZPYuEU RVEURVGUaYwhauks
Hq2zhRpbWhqDyAPtjRQQ/U6n0tlCje0D4T+IxW9sT68KGUvEHZqZRWZabisW PTHHrDiFEGYRsdZa
3/3xWdhaHVKpKIqiKIqiTAhGdmFje7JBe6B949Ylq5YHLiY9vfXbRTqa0dlS t7Zhl4iI9Lf1Lmts
H6htXb9m685A6Xbu3LpmfdwvJR1/O3ZsTQfuWNUvIhIrQJRFAs0dbtDjrjVb N+bLMTNOodMWEREe
9UdHfd8f9f3RUWGx1pZYa4qiKIqiKIpSFoaWbe3p688M7FlbR0RUt7ZhV9qx OxTgA/t6sWaFk8a1
revX9PT1A80rQhXcubO37da4cB7Y17skCKltXb8mCgxziRUgrfETCEzZ4XDP xByz4hSDiAgEAtz/
6hSnKIqiKIqiTAxGJNe+vKTN2aHzGJ6TaL61rXdj+8BA+8beQto5zppd0So1 RfMZaG9chl3OwL4k
T44JcYrhlssRFPXqTruvhDQWNqcrSokUd42K+WtFDLQ3ltoGo8OT0lGU8TJR 7TPmzJj1wD01Lbnk
XMo4WUVRznQKDalMpnZhA0L/joH2jVsDy3ft8lXYsWXLjob1WROf1C5s6Fm7 pTOMHkskvyNIzvOu
v69nSX0dgIHHd/SECWflmBSnMMEqOZaFiyz0lnZfCfskFZ3UUDlTSfcVRfrr 95UwzCKgtrVb26CS
l8nuYo23fQ60N1Jd3/rIMiPr++pKGoZUgMrWSSy1Ct+Mk33tFEWZSEwpAxAz ae7ob+tdRkREdTtW
9YeW6trlq7B1a8OKHMN1c8euNVuXERGtxqo1sUQQeJmUUIDmW4PYq/saIkt2 Vo6JcTJ46Z/+66IP
fWjdz/HvhgwRVVWlUqlUqjpVVVVFxnieV049KMq4ifqKAGpbW0v+uqQo05iB 9tU7VvVLR52zdzc2
Njbuu1V2Ydk4hfd0R+fqVpSpT+Rk0twR9NejjTiZgbWt3YEJIh6ztrU77i4S OyS0FXe3tqYD04lk
FSAru4aFtbHY3R0d3dGurBwT48R551/9z70//elPH3jgAdfdABGRIcQ2yyV7 UhcEtorOILylMx1F
LRhKNs0r1vSsXZ30hT67Q9ofTQfkImd+mm9vyW5jidMHKWcGLbRsqxs80xJ8 ZxzHYyq3NU50+xx4
fEfD+tbaQHyLrG/oaVhYi+Zb23p3pnV3do655Yr/7sysk5xTSKiiiLj52W1n pZYwbVd2VefWQCz1
2AGd2deuTFR5K8oUp3wnk1NJ586tkS2wohAIIENObBtjDAHGlFsbuZO6uPCe tRux3U2psoxWY7vz
Twl9bRQlorlD+lftqMvUNNEsP1GnMt2iklpRz9q+FZltLHH6IOVMoSNyh+to Hu9jqnNLeLBrjaeg
ffb3ob4O6O+DG7ZTV+8+X9YubOjdl1X4/jYE/dac2bEySt6cUSfZJ5WvivKR mVqssvJWdXYNZKQV
m4ArX8pl4JIb27GKokw0U1V2O5vBst627RPiv2oMGUOpVKq6urqquqqqqsp4 XtlOJomTugDAkqDY
zf8/e3cf38hV34v/e2Zk7yabxNtkU2BTNptk5Ate0QshCUGC3mQTUmTxu7gP qLclYAoXiTYkEhST
FBygxNAQh0STZ6m/Am4p/K7SBt1brNmQBtIHCZon+IFWEGuStpSHlBQ3u/1t Yluac35/nJnR6MHP
8lqyPu+XCNLR6MxIe3b03a++c85YzJ2eJTwWI/c7A8ClJQryS1qm4WazxVjz BRINI6p1FDlTBbnP
tp0+CPrTJk9T/pFgxhOHnpzxGRjWyJwryZ86iSggr9rxtDh7dN9R6+xYTUfu 1fymlvuI1mmFj7rp
E/Ba5wRca4TIG6A7dWvYbReMbO1FY8yZMlDekVMJAmwDLTGTCmZy+DkEuoyW KAgxQ+NruQanYzI5
o57bNqaTmXJF1p60XjtkzpXc+42zY61w5NvyptrawARcANDLujXs3mKKoiiK oqqqz6EoiqKu89NY
ZlIXgLUydCfjZs5mi8ERP2mRaHC11Z5W1Xb6IOhPGzxNNcynoSUKlVSwNGee lPEZHpP1FhOy/Co3
Ji/i95cn63UXxeysSWRn38fCy86OVT/y1qOov6mVPyL/SNDJWxu5lf42reOj dj7e9U/AtQLWaLPd
AcAW6NOwW3JPT4qiykB8nR0sM6kLwBqFh8v2dD7u4lRaopAPOJP8bDQV13b6 IOgf4bGYe1ne5k5T
zhV//qScqvVkjM9wOh9I+kOzkYJMXNs/fnqPPBgojzt/b2R7y+xYzUfu+Uxa nlrxI9ISk/bRshy5
k3F5PmHPga/3o24zAVfbngFgh2A7vgLMsqylpaWFhYUTJ04cP3782WefnZub u/POOx955JEf/OAH
jDFZY3Luued++MPXv/KXL7nxhsR2HzLsQPPz86qqDg0NbfeBwI6yg8eVnNTD Ectv+BrDPnDTzfoP
vvfo9PT0D3/4Q7dR07TXvOY1V1999YEDB/bv379v3769e/cODQ3t2bNn9+7d g4ODmDMXdoDFxcXn
nntOXqrnTZ4yxoQQ3p995D+2FxYWBgcH19Kze149duyY2/LIkyYRXXbhxgug fRt+ZU/jnAshajVL
UeywW+AaFACArhFOC5He7oMAAOioPg27iUgIwTknkmE3I8TcAADQs5A5Auh+ ijtV/6aWczH1UPt1
ANbTZ/tONseI+3xvvPvp5mZ5sbtlWZwLzrlMfuOcBQAAvQtfZABdzkcUTFUK CY1MPeQf1yMbm7JP
SxTEpkuiO9JJnamH/MlA7L1tnnrOnmSKc8EYEQnGhKinCtw6HoBOkWWUGFrQ WRhX0FrZ31TSCgDd
o15koiUmY8mpWTOxpVNln0Qyijdime+1PHW2/D/OhcKEYEyhhvTA0NDQ8ePH jx07trCwcFIOFXa+
arV6zjnn/OxnP9vuA4EdBeMK2l5Qi5w3QHdqW9ttxNkUxSiTCeRFOmzqIX9S zigacx6XJ52ryo04
mxqpFIan2dRIpZDQ7CxzkSiYSgXcLuudyAvSG3fh2a/spH4Neywv0v52e0xU GrZZ3zXuXHDBRa1W
EyQUUkhh8tc5+ez8/PwLL7xw1llnDQ7uWle3AMupVqtLS4vnnXf+dh8I7CgY VwAAPaQedpv6VCYY
rdip7mJppCKERmTE/clAXhTCMnQO6ZVCYjLGckY6HCYiI5eJTQqN3BlG69ub eshPlLIbs9GKKGhE
Rjykm+GEdxdtONewG3E2pU+03SNpDduE15WkF1wIwavVqiChMFUlpaHI5Pnn zznnl4gxzq11dAqw
PDmWMKKgszCugAjzAAL0DIWoKFcYcJfrICKiYDSiEcmVd52ltrTEZKxYrshF xORSXEaulJrwJprN
uVLQbtESkzG30dkLG8046305u2jLXs7Amba17R6bttnAm2eM2UvCyzI4uxiu ZlmKqggSggg33Dp1
o+0+ANx25A3jqs9vANBD6pdUrkd4IjU1rpt+mipFZ9b20qZCkBXX3zL10Cjl hQiTqYfG2++xzTbr
Zl90IoiYaJ1AUHCc0KBj5HDCoILOwrgCL1xJCdDlVlsOXRsOkJ1nJlOfytiZ by0Spez0dFaurNu4
fTE5bTibezqZWnZqwJZ5BivlYnDET0TmbLbodNy0x3bbrMHf337FdV9/joiE IOJCCJksEM05A9Hs
yDWn7D7FuV3zYMvzbZl3Xn7KZXeaa9sYdrrNjasj13R4LLV0iOHam076+aqr B61552XusZ1y+UZ3
Xu+242+h85q+udb+dQgAJ9+qy+WE05VUyC//BR1MVQp2xlqLRCmZDORbFhEL p/MxNsoyRMFUKkZZ
Tyd+liQimfheeZ8TqSm/nyUpGIsFncamPbbdpoHnUtBXnTpxyaf//q/ecab9 1HMKUxRFGRwcYExV
FKaoTFEYU+p5AiEEF9zTmyC69DPfffiaC4ievvvwL19z5MSdV634JoiIzv/9 vznx+0QcqSjggjOi
xkFF6xlXMrrq4Fhq6RDDtQdtelx5rHUAdO2gffruK375+pGv/H8nnMP52rWn nXrNA2t5703q3Xb8
LWw5GXkj7Q3QnXxpUWhpDKeFpx6k/XTaTa2el3iX9E0k2m9O5NmFd3eBYW25 XTY1rjrLt72BZVlL
S0sLCwsnTpw4Tm/8wMP+ubm57zDGGFMVlamKe4JqOks1pg2EIG63na8dor+s PC3ehMkDYM2EEIyx
llzU2seVZ8tOHdGKHQ6/IvilL95z0UWv7tT+YCtselxtaJ9dOWifuft//tWv ffc/r6G7L99z/aN0
ySWX0G/83//5QOr0ax/8zzvWHXivZY/drPeOGKA/rFZkcjIZuYysG9l6MtBW VEVRmKIwRVHIvrbS
xrkQnHtvRCQsLjgXR/7687/74d87yAXnonLXFaeddvppp51+2mnXHZFbHrnu tMPXXXv49NOufZAf
ue60w3dXuOCVuw83bYZb392IqH3jmsaVu+WR60477fRrj7Td7MFrG8bh3RWn t2uPtA7Clg49L+Gc
iD55022PPfbtbf/ccFv5trlxtZHzVVcO2orxV4c+/HsHzbv+51/9+rePHz/+ 4UOPHrrgoLjy2ptL
f/2gfeTNvT14rf3QPrb6rX4kRCTm7GO+4q5K/dkjduN1R7h51+HTGzbw3lo+ zGX+FNbcYZs/DgDo
Fd0Rdpt6iDE2WkrNnKS1ehRFYYypPlVVVZ9PVRSVMVIafpUTvIEQ9OgNrznj jDPOOOM3xf23X8k5
5/zB615zw8j9zz///PPPP/nHR3/zyrtNe8ujw/c9//ztV3Ih5A+UD+rOds/b L4X+Q0QtbesaVySE
efeVvynul8OozWZXjr7r8199kHPOH/zq0UvogSMm59w88gANn98yCFs7dIar c7Rf/PN7PnnTbY8+
9u2T8/nAxmx6XK33fNWdg9b8AQ2fz7n5A/q1q87jnJ8/fIkQnPPzLhg5WjE5 5+bdV77mgV970vu+
rrxdPrr/XZ+/5W6z6T3KboWgR2+4Rdz3/PPPP/nHdEPc/dDsxvvf9fnfPCMu 7pPdPHqD/mDDZ9W6
02X/FNbWYfsBAAC9ojvCbi1REEKIjS1Mv0GMMRl8EzGnDK6xtrsxpyDo4k8/ 8R/z8/8x/8TwLXvf
dM/Tgj9dOUrvGr1CcC74wfd9aPzRH5j2lmNXnee8Sggh+PnDF3/hbW+655nt zovhtp03ImptXM+4
Eg/EL3xg7Mnb5FNtNzt/+OKjlae5+NpXj459aEw8cORp/syRB8TYVee1DsLm Dt3hKu8Lsf9lL/mL
L9479anUY49/Z9s/PdyWu216XK37fNWdg1a88oKD/JnK0ZELDgrOhRAjw+cL 7rY8feSBR9/1ofh5
De/la8m9e/fu3fu2L3hGfnO3dPGn733fwZYPzW68YnTc/QCvGB2no5WnPf20 7nT5P4U1dbjMAACA
XtEdYfdJx2Rtd50iW9wNhBBCcM/NvrBGCC4OXjV28WNPmbLRsxkRNW3p3j8Y P/Lzn98r4mee+Qsf
eIg39oxbv9w8A8O9rWtcPUZ08WNPVTyvbdns4FVj9JUjz3xttjx21RVXjdFT 5jPGV2jsqoOtg7Bt
h+Q9WiJyI+/Hn/jOtn+AuLW9bXpcrfd81Z2DVtDM7EPi3AtGjlae4UJ87Y6P fOEpk4tnjK+MhK9o
3bXg4pl7fjUq/tfPf/7znz/+qYtpmffo/XyerpSX/9Ca77d7v8t9AuvosP0A 8H5zdf77EgA6p0/D
brvIxIm55UNvjYkQouV3VRKW/NnwSO6xi/0HOT/3glfSzOxDsvHeW2feGT7c uGXDfX5uLP+PUxeX
KyaHvkTtiwHWPq4ufutd+f9H/Nab7zU5X26zc698K+V+79byW688l5975VvL s3c8RW+98lxnf55B
2NJh43B1/y7sf9lLvvQX933q0/pjj39nqz4a2IRNj6v1nq+6c9AeDr9z5tZ7 zcO//9bcRWedddZs
+B+nyr911lkXPfUHtx7mcicXz9x6r+ftmE/JY+fmkdxjspOHPnCW7NjtVgh6 LHfEdN7syh+ae9/p
p3Wn6/tTaPgTWU7Ttxsib4ButuoEgn1K/rzY0ECPTb7u7Ekiootu+lb+vQcF 54env3VT5NKzz3Ya
L+eCk/vrpHyVEELwv/nQS377z4iI6J1f/rfz8LNgH3KLARqb1z2uLp/+x0rk dWfnbvrWbLzdZnTw
yv8uJv/3W+88j3Nx8Mr/Xp7832/91nmcC/p60yB8pqVDzTN0G8jI+7d/531/ eMO1F77mVVv7ScF6
dGpcred81aWD9vLpL8++5HVh8Y+z/2avj3y5vMNlQvi89371y0+9xD7ud3z5 Z7cevuamW1/3urMn
6aJ3vuMit6Sk9c5Fr3jqmrPPfly+atkPreG+e6d1p2v+U2i+vw6IvAG6VuvM UztNwwSCx48/++yz
c3Nzd9111ze+8Y25uTl3s3PPPff6669/xasuufGGRKVSeelLX/rCCy9s42HD DlOtVk8//fSFhYXt
PpC1evVr3/TTH33Xfcg5//GPf3r1O6+54fr3I/LuHj03rrba1yde+jt/7j56 x5eenT68jUdzUrzk
JS+56Wb9B9979JZbbvmXf/kXt93v91944YVXX331gQMH9u/fv2/fvr179w4N De3Zs2f37t2Dg4Oq
qm7jYQN0xOLi4nPPPefz+QYHBxWlXsEhZ1b1ljHIWuKFhYXBwcG19Dw0NCTv HDt2zG155EmTiC67
cONXIvZ1ttv982j7bw/kpKGDlslK9gb5W/Yv/uK+z/1p6t3vSX544hpE3l1i 68fV1z+8/+1frD+8
+os/6epA9rLP/PQnn/E85s0rCe1sTUHGNh4JALTVUtttxFnTUu0tTD3E4kbD KzwPnSbJ+4ScJpAx
JvfgPAzF4yG3cTktC8i3aVn9NW21xtw+n49z7vOpRAI33Dp3o+0+gPUeLZET c1uWZVnW2fvOvO+e
z9wyffeT3/7udh8ebu5tS8fV5bf8xOuWw9v/fnFrugFAz2jKdpt6rtR+qXXP JuPZqLtIPJn6VCkW
oyndDNvT/5l6aJTyQoSJyNR1g8Jhe6X2gN0q27VEIV9mUyMz6YQ2RmxqpNOT dofTlbnQ+B1v/rv3
HVh2m7Z57qGhof88fvz0M87YtWtXR48I+le1WiWiPXv2bPeBrJVMlXlj7lqt ZlnWvn1n6rd/8gN/
8IkbJz9w0Wv/63YfZr/ruXEFWworwwN0ucaw25jOjkQDlF3hBeZslqIzWuPD CRofnzUTMmyulIvu
YpOabDP18WQgL9LuGvB2+1bTEpMB9tkj79Pb/yjqxtxNwbeqqqefcUZrO8CG +Xw+6rUR1Rpz12q1
Wq121lm/8Jk//sj1f/jp3AOf3+5j7He9OK5gi3i/0ToSeSN8h47Dycobdpv6 FE0WhnPJFbZvG3Vr
GkXJjbvDY7HR0XE9Ul/8xpzNFmOT4fY9rpMRZ6OZWF6km1pSqVIy85j1AAAg AElEQVSyPOlE9kac
TY1UCgnNP/L60tzTdPicZbpbLtvdkWMFcM3Pz6uq2kNDizHmxtw/+tFPzj77 rFqt9jtXX+Nu4PP5
eujt7FQ9N65gS7kBd6eCm9emRfoJFn8t/ov/duC/T8TxDznvTCZGnOXGRJqc iLXt9vZGdght6qFx
mikkNM895wl/skgxmeFuerKhN7kvY8WdulvO0Ljfia1bWjyH5r0bY1+JvKD/ SruZTJ566il3BwcP
HnRnMtnIBwmwop4Lj8458OpnKv8oY+6LXvfme++++fDlofHfTV77/vf8X2+5 aruPDmw9N65gK8iZ
TD7zmc/ImUxk5L35mUwYY4/HKP7afk9PQkekn2AXZTqf7e65mUzcQzT1qVJq Yn0ZaXM2S9GIRkSk
RaKUnHavn9QSBSEqqdKoc01lsVxZX9fu5Zf1izKz4/5stJL2HGNDS3gslskZ RERGrv5W/K98fany
9Lr2DQBERG7M/dCD2Vum76nValOfnJi88ebtPi4AOEkQc0OnYCxJbthdKReL ST9jbDRDxaR/LVOA
GNNJ+zWMMX+ySHbU69ASM6lgJmeQFokGm55bjZYoCMkNs4tEwcbovaklPJEq TemmqU+V7H8MEFHl
+98M+C9ovxPmsZ6DA+gLbsz9uksuPPfcX3ryye+deebec8/9pb/+6te2+9AA YFkdTCimn7C/HG+L
0eNvan72v1xMj8fo2jM7tTfYydyx1OcUZ569cNoOc/MxCqaWrffwjwRLczIi N3KZYKoiXBUZY5Oh
OyG7OZuVV1dqiclYZtSTuDZ1fV1ROBFRMDpTyNOo5x8EzS1aJErZ6elsYLJe Vj5Xev0rW6NueU5a
ed5ugH428sphN+Ymoo9+JPmRG2+2LOsPPvDej338lu0+OgBoQ/6qLr/aOpJO 8mYof7i3OcKOv2bz
e4B+gWy31DJv9yq0SJSysybJqLueVJZPBTM5g8LDZTcDHsjb8Xs4LWtObOMU CZt6aDRDxeR4PG7f
WT3DHk5Xolm/dzruhhYtEqVMJjBWr0OplL8ZGF4m2W1bS8xdn4jcO/P46tY4 dTj0uaYp7bvCQw9m
j/+HKWNuInrdJRdecP7BZ5/92Vln/cLAQF8vs9X9tuZ8tZ2j1LPvTezd1EP2 i3fmmVl+l3HO5Z2O
pJO8Gcp/fp4u936bXkC/8k/0d5vfB/QHZLslH1E4Lbwl3U0Pm2kRe9KS1u20 REH+LU8Lz0QjDU83
XK3oeZxus30Dd2/1XlpbWvZh6lOl2z53D9FSU3fyD3/tU5yG7be06qWfAOvU Zkp7SnRm2p8Ou++e
W9705uilr7sofd/0dh8LrKTz56vtHKVN+7ZXaPNOSLtWLd9BO4/Mdnfw91tv hvKfniD6TXrLY/RV
IiK69kKaeZjOO69Tu4IdLv5a4QRffW292W4iLTETzfrj664ROfmMuD8ZmLxu +a+c5ebtBjhZ2k1p
35UxNxHt3//So9/9uz/9k9te82qsDN9XtnOUyvXZRNov892hUCg0NyHyNNoL 30HbooOpbmrJUH79
n+iwTHifSZcTfW2+IzuBvoBst7T+sFumDNafaDj5wmmx6nHKsvSN78Pz26e3 ct1Z7X5u4z1DPzBn
s8XYWJtBasRZKB4P2cOqZWKfehWB3dCyRUODqYc843Nn/sAOa7Cx89V2jlJz NhuYTGh28C3EZKAY
GNYoPJEquVfpN3fbsl9q6tRWcd+4WX/WsBvtA1q2qmWF9+Ludl0ddtIWZbuJ 6KtP0MEL6b8QveW1
9M9P0lPLvQygBWq7pY2E3TvMJs5QRlz++CnkbIlO1aDTOEPZTAcPFHYkd0nX ZsXSyIwQ6TAZcb8M
OYTI05RukvwnpbwAOjOlm0TGtDMQnZnrG15CicmYO5eQkcvEJlEn1Yc2cb7a tlFaKdOIn6hStueq
9Y8EiYhIGw7Ii/tNPeT2YqdZmve7zJEnp2hGCFFJUf26IqcxH8uMsnGakd0U PZPjErXdadvPdu0d
doAQJARxbk8YsEXZbpqnbxBddQG9ey+lMTMvrAey3VKfht3Cgzac8zbnSuQk gbTEZKxYrhCZc6Wg
PWu4lpiMdfSwYQdadkp754plc65EzkSdoxl7czuhN2rHSf6RYMYzyU/rS9rP ag/9ZDPnq20cpYFh
jcy5UmDY/pdiYMQvXxwY1pwlkJv+Fdm032WOPDWT0LwfhbcxPBZz31p4LEbO /F32kbfstO1nu/YO
O4ELIYSwOOdcWFyIDkXerRnKO5+k8SuI/hmpblgfZLulPg27Oeec82q1Wq3W qrWaZVlCCM4xJuDk
WuuU9rG8+8/EdJhMPTRKeXvWTtlPoiDEDI17fuBufEn7We0B1mB7R2kmZ9Rz 28Z0MlOuEJmz2UC7
sheiNvtdhTlXWstm3c6yhMVFrcarVV6riWqVc0GbD7zbZCifppn/oM89ttme od8g2y31adgt6okB
btUsy+JCCEHrPEVpwwF3iSBTn8rExsJE2nDA+QXR1KdQZAIrWsOU9tpwgBp/ LK+U5Xz4ZM5mi96+
CpVUsDRntnlJfVZ7QtTdpzZ+vtrGURoei2WmdDM8Ec36GWO5MTkRrb88KQtK tEg0uOp+217NUJQz
4S5fud7K6ad1p20/25NLBtmWxTnnMue93G+4P3rw278a+7vD7/7b9371xKrd uhnKD2boTucCyjvv
tyczaWoHWAGy3VK/ht2cCyGqS0vVarVWq9VqNSFIcL7ObsJpdzLy+ir14XQ+ lhlljLFxiqLIBFbR
Zkr7li0qKXKWg2Vxg8IT9uPxckDm85yLyPxJuVZUy0uISEtMBjKZAMq6+9Ym zlfbN0rD6Xwg6Q/N
RgoyJW4vYOxeLK8lCvmA00ncoDb7bS8YKI/bR5Nf7xQBLTtt/9meVDJ1VLOo WhXVmliqcsHbB96/
9KuveTDzK1/4jT1r6RYZSugUjCWpT8NuLjjnvFar1Wp22M3XVGMSTovGSXDr i9h72p0regqJRPP2
AK3qo8gdR40jzbtBOlx/XEinCwUZwHifbvcS2zZk4WDbdPR8tW2jNJwWYtJZ g63dBCVN/bbst36c
DXfS6ULjnr1vp+39psbGA2/z2a7aYSdZNWFxXq1aNc6rNcuy7CKTL83+8PY/ m/vol55bSydf/tgj
l73rkcve9chlH3vsvR/7FyKKv1bIaAn/xX83+V9ku6Xl59W3r9Xu6NnBiLPR UvuV51d4qumgypPu
adKIs1FqXDbBiDsX0sTkE5ZlLS19P3XZqz7yKBERHbrmk+9/yZ/dOvONb3zj sccfZ0wRgnyqOnJo
5Pobbvivrw3deMMOX08BtsX8/LyqqkNDQ9t2BKYeGqcZ/DNwZ9mCcVU/hxKR eyI9STBKN+Smm/Vv
FYufnf7j75bmmMoYMUZ0yUWvuvjii3/3Xe84cODAwE9O3P2j8774oVcMDQ3t 2bNn9+7dzz703U8r
gT95Sz3n/cOvPnYTjciWQvqRj/74vL+96eCyEQLA+rGOruUkLS4uPvfccz6f b3BwUFHqqWS5L+ZZ
D1H+q31hYWFwcHAtPbvn1WPHjrktjzxpEtFlF278FLV8tltLFDr5L3JTDzGW o3Y/Yq7wVPOG496f
70x9qhSLlTwldvWLaYSojMzZlXZ3HD71VU99aP5f//Vfjx49+vD19L2jZ3PB uRC1mlVzMt5CCL7u
IhOAnmDqIcb82egMohlYVT2P25yF3loYpZsl5I0LLr/hhBBCyGx3qrhI/7bw 7RVffuAtB8/7y8dk
tvuj3/zFT33y3JN03AD9xHeydiSX5TXimdaLxld4qoE5m6XojNb4cILGx2fN hDxRuxfTEJEm28w7
fveDI7kXbv2VhRPy6pFzfv3wobknZomImF3jTarKhBACM5nAztQHi2JDz8Mo 7QBGxIgECYUxmd37
nciBAwcO7N+/f9++fXtXefXZH/nCZR+Rd58sX/axf9nywwXoPz5ZuJEsEjX/ mmjE2dRIpZDQmgo3
/A2FHs5Wlebijo5rG3VrGkXJjbvDY7HR0XE9Us/Sm7P3f/O9119FtNDQl0wD VKs1RkwwVqsyIQR3
fvtwf1AA6BRVVQlDCzoN4wqcn8IFCXJ/Vbe/ztaTSvryxx6j37v4t1/mPD7n VM+TDaVHwVXrQQFg
GT575bDCSoFyOC1EmmSIrU8UEpMxljPS4TDZa4kJjUhr2Ca8BX8lK+ViYKw5 6iaiiDfuTouKHvKz
pCf4f/0rL2jpy563u1ZlTCVB5BOcC3cmk+0swIUdavtru2EnwrgCSVUYU8in MMFIYYwRMRLE6Euz
P9y1Z2Hw1PmBXQf/YPrVl9HPb7vm23+rDjJlgLHHLvtLIvrFT31hJEREdCL9 h4+k7f5+8VNfOPsN
7/PuAcE2QAf47JXDRlb8+1T/h24wRTKpLONuI1dKTaTbbbPFPKlvLRIl/7SR 8FxPnjD1kJ/F8yLt
J/rm958mOqfx5bKy3qeqRIogpqjesnsAAIBeoihMUZjiY4wYESmMMcYURi1F Jmd98O4DH9m9e3Bw
UP5U4vrtT17229ty6AD9RGm3clijNot+tawltu6FwTbJmE4WnWWFmT9ZpKY1 1LTETCqYyRmkRd72
+j/5P19rfj2zT0mKoigKYwpT7VMUAABAr1FVphDzqYqqMlVlTCGZ8QaArmLP ZFJfOax1Qa92i405
a4k5qxossyDZatouHrYc/4g8QCIycplgqlK/1r4iY2wydKc3czYrj0i77qPv /dzYqR/4G6ebHz/w
9aNERCSIk3MFCgmcnwAAoEfZRSYq+XxswMcGfIwxUjr5M26xaWkjANgApWXl sBZtF/3SIlHKZALO
qgarLwxm6iHG2GhG/tVtCLZXeMpLi0RJLudr5DLBhhWutUg0mMkZFB4uuxnw QN4um3nzvS98b/r7
0TNf/vKXHzp06IrP0KsOPacoClPY4ODAwIBvwDcwMDigKKQqfbp4EAAA9DRG JOfrljdFYZ0unazn
urZhEU6AncLnXi/pCKeF+1cqMKzRMvM6NTWuOvdT2w2cfa1t3ijNuXjSe4j1 3omIqOnN2C645sj8
e06cOHH8+PFnn312bm5Oxuaq6mOMkUqqohBT2PJhtxFnuTHvKj1T9WL4xucA 1qNhfoCTuzAJQGfU
J8OiDVx355xOaQsWaOsnisoURqpTKsmYICJcswSwnJ/+ZPdyT71s/8JyT23e 8vldI5dx58DuElpi
Jpr1d+L3LaYojDH7GhT5f7TS73HhsVi9etycK1FR5t3lo277nKCnODmkSqo0 uvbBva4CLYAtYuoh
5i9P1iv+Jsv+jdUgdHiBtr7jxNvCuSHmBljFvn1q622rd9ou7LaLPkqp7lst TEsUOpIPVBSFEVPk
73B2bbdQVigy8RSWm7PZQCpF5YrziBoKXgA2RhsOkDPIAHqBXDhYpP16iDHG QqFQaG5C5Gkd/36E
zrEse93lWq1WrVax7jJAF2oXaGqJghBiRyce5DpeDqdxhZlM6oXl5myWRiLD ATv7XSkXZSmOWyQv
rzcx9ZAn52OnJo04C+m6vV09Vyn/nYMrVfqckcvEnMsrWoZE4+iSpSnFpN95 vr69O4aWGWzQB4x4
4zCwEwZ6KG5QJ89U5mw2MJnQ7OBbiMlAMTCsUXgiVXJ+HGxzclvufOceqhFn Id2wt/IcfeOrVjht
LvPXIR4P2Q2m27m+k341EkJYlmVZllyYov7d1gHh9I4OCQBOmj69iFDOHDjg UFWVMbbiRd/acKBY
rhBRpUzRiBYei8l5X3KZmH1daTgtg/h8LDOlm1pisl6X4gmoisnymNyqmJw2 iIiMuF9+ZwmRp6kd
8w0Aa+XMDzBKeXfp15Yh0Ti6wmmRj8nqlHSYyIj7k4G8W6nihhGtgw36Qr0o zsiVgt6EgZ86eaaq
lGnE75wTicg/Ii+o14YD8neb1peYsoJ7tSvziskpmhFCVFKUHNdNspd1q79q hdPmsn8dSiMzQqTD
ng1mKJtpt/te19GAG2DH+vd/t1pvW73Tfg275bzdNhlyr3Ldt/1NZuQygWGN yD9C2VmzobDbTiI5
V8g1fPWlJuwvmKB9LzwWkxUF5lypHnhlinbtCvQPt7Z7ZEom3toOiabR5WXO lcj5x5+WmIy5g6hl
sEGfcIrijFwpOil/qPOUw3XwTBUY1sicK9m/+BEF5DyydkvrS8zZbDHWfsqs BkG7xNEdz3JZt3re
ffnT5vJ/Hey3b86VnDenJSZjG/uEux4ib4CVvWz/wnK3Ld1vn4bdRLLEhBqq TFbmHwmW5oy5kjyj
a5EolWfr32RrWVRoWbG8W/CCmSz6lhaJBt0QoXFInOzlqKDH2UVxRq4UjYQj USpX3Ki7s2eqTM7w
5Lank5lyRdaeOHPLbvbkZs6V5DtqXdYNp8021vGNtjYMoHM6ODJ7V/+G3UQk L/eWd1Y/VWmRKCVH
k2Rnt7XhQCaZdAq7V1xUaMVrLrXhAGVQWwKeJZ5ahsTKy1FpwwF3mVZTn3LL nqB/aZEoZcdlGK1F
oqXctFMI0skzVXhM1jxNRLN+xlhurJIqjTLmL0/KOLj1JVokGlzL6c6ZKsqc zRbr47m+rFubg3FK
w1f966ANB5y6GVOfQpHJyv0AdFZHRmZP69OwW/7x12o1eQFKrWatYUBokWiQ 6uv0hMdi5P6Yucyi
QonJQCazzDJEjnC6Yr+UMVxU2Yec38rrkxa3DIk2oys8FnMvqQynZbhjd4LU H5AWiVLRDqO1SLSU
cRLZHT1ThdP5QNIfmo0UhBAiHbYvx3dHYOtLtEQhH3Balj/bBQPlccbkumd2 Lbd8ibOs2wqnzVX/
OoTT+VhmlDHGximKIhMAOJnYev9yrr5wzMRcu1UPGresN66wVsiKyyiYa11b wbKspaWlhYWF+nI5
hfv0L33voYceeuLxxy3OGREX7FWvOnTjjTcGXhO88Ya1LN2zVlhLB6T5+XlV VYeGhrb7QGBH6dS4
2syZquE83oFFn9p+WWwNUw/5y5O9f4a+6Wb9B9979I/+6I/K5TIRyV/zL7zw wksvvfTqq68+cODA
/v379+3bt3fv3qGhoT179uzevXtwcFBVt3yKYoCttri4+Nxzz/l8vsHBQe80 0IwxIYS3skX+I31h
YWFwcHAtPbvn1WPHjrktjzxpEtFlF2789LTubPfqC8fUVz1Yy4oea1hvtm2H m1lb4ezDQggSwrJq
tZpVrdaq1aqcc2lD3S3P1KfqlygBAHSlzZ2pnKlRVjmRdyFjOlncQauduUk0 pLoButb6i0x2xMIx
gnPO+eLC0tLiwosvLiy8+KJcX6BzezD1EGP+bLT7lhwCAHD04ZmqPq33aCaW 31mzUSPyBuhy9sR5
Tg657SoJjcsSrL5wjMxJt6zoQUSVphUQ2qkvZDDnNLXtsHFtheVXdnjjHXe8 /9TD9z3j3cdRzgXn
vLq0sLCwuLj44sKLL8rlvTrzoRI5aw7trDM6AOw0XXim2uqVWewK9J7Lza8R Im+AbuYTQpARZ6PT
RkKegIrJ8qQQ6XqjXKeg4J6dtOFAMVch0iplik5o4eHY1JxJ4UouExtL13sO p0We6iV6BlExORWt
CKE17c7PkkRORaC9kEEhTKYe8hOlVurQ1XLMnn6euj34CqJPN75tuYjX4uJS Va7nZQnL4m7Y7dbx
AHSKLKPE0ILOwrgCtwJVOJNzCSEwVRtAd/IRyTk5puZMCmvUuErC1JxJYblO gecKl/BYbDRnpCmX
CYyliWiEpmbNCJWCIxMr7stZAaFpd95LZ8y5UjA14y5kkJxa27toOWby9HPd R9/9weZ+hBBC8Gq1
WrU4tyzOybI4t+zViXDdG3QcLqmErYBxBZIgIkGC29eQIdEN0J3WUNvduk7B ygvH9ApBxBiRIleK
Z4yY0qfTKQIAQE8TggQRJ7KE4J7MNwB0lbUGmvV1Cmi1hWM2o1MLGXj7ueNT n7Nbv/GJQ29/4MdE
REIILkStVqtZNc65EJwECdHpmUwAAAC2nrC/10gI4lxYQshAHAC6im/1TeqT ssbyQkbWWiQaTFLD
wjEZal0aLzwWGx31s2QsL9LNzznc2m5ZbhJO52NslGWIgqlUjLLr79De0u3n 9bfd9u7mfoiIGJGi
+HyMM8GIkaIyVV3DpwEAANBl7Gy3EIwYUT3XfWKJji+IU18UygvCGhBVVbwg xK6qGBgUqoqwHHrY
S07vyUsY1r1cTs+xnrr9Da8ofXD+1te7y+XMfeWWz8w+9NDXHn7o4ZoQTGEK Uy699HWTkx+9JHRl
Z5fLAZBQgwtbAeMKiOimm/XS//voJz7+8e987ygRESPG2OsvuSgUfP2vR68+ 55de/tKX7T/zrH1D
Q3vPOGPo1D17du3aPYDlcqDHybB75y+X03OOfPaD37r0led7m45+hykKY4o6 4BsYGBwcGBwcGFQU
pqK2GwAAepDMdgshhLzPBeq7AbrQTi2rMPWQP1mU99+be+Ga8xcWThDRD//8 uvDNR+l8TVMUhQ3u
2kVETFEUYj6fb2BgYDsPGQAAYENktM0FkRCMMUEkaKf/lg3Qg3Zqfre+IEKt du9VbvOBd9zx8MP3
3jvBmEKMqapPUX0+VVUHfIwxBb+4AQBAb5I5bi6IC8ERcgN0pZ2a7V6FojBF UQYGVMEUn6IQY4qq
KigyAQCAXuSslEOMCUGMkOsG6EZ9GnYTY0RMUVR5PSVjTGEMYTcAAPQi4ZR3 u0UmANCF+jTslhMs
CcFJKFwIRWGyImW7jwsAAGCDnC8xfJcBdKk+DbuFEJxzq2aRIlRFMCYELj8B AIDeJoiYEMR6ckZj
gJ2vf8NuIUStWmWqKhSVc0vetvu4AAAANkYIIuZE3gDQhdZdzWzEWdzwPgrp ZuNzph7yNrbdst5Y
5+m28SVtO2y/l5V94xOHDl1x+6NExDkXQlSr1aWl6tLS4uLComVZVq22ru4A AAC6BrNTSvYU3tt9
OADQYt1hd3gslsk5AbI5V6JidtZ0HwVH/KQlCqKQ0GiZULtJMFWxZ/pLtywu b2vbYb1xXV596J/+
8C+OEuecW9bi4uLS0tLS0lK1WrUsy7KQ7QYAgJ4kBBExO/gmQoU3QBda/9wd /pFgaU6GvuZsNpBK
UbniPKJoZOMLZp4cl119zU/yXxdccM6XFpcWFxcXFxZfOHGiVqtVke0GAIBe 5clwI9cN0JUUWeDh
5JCNOAvperyx0dRDnjoQLRIlmeA2Z7M0EhkO2NnvSrkYGK7npI04G81QMen3 lI9U7J5WyoGb7jZz
TlPbDt3Md9tjrvfzxjvueP+ph+97xunsnF8f3X8/55xzvrS4uLiwsLDw4uLC Qq1aq1WrnftgAQAA
ThJm/1c48wgCQDdShBAiHysmp53QuJgsjzU0GtPJQN5TB6INB4rlChFVyhSN aOGxWGnOJDJymdiY
p04knBb5mKwhsctHiskpmmndnd9b2m3E/fbeZiibaTjU1g5dLcfs6efzdP/n Grc+9Pb3EwnORbVW
rdaqS0tLC4tLKDIBAIAexRgx+V9GjJHiBOIA0FV8REThsRhNzZkU1ogomJoI NzT6R4KZ0dBIxa2k
Do/FRnNGmnKZwFiaiEZoataMUCk4MrHivoKpmYTWuruKp0TbnCsFUzNhIiIt MRlLTq3tXbQcM3n6
ue6j7/5gUz+HiP4PY8QFF5xICKtW5ZxbnMunjx07trb9AqyVqqqEoQWdhnEF Q0ND9j1GRIIRcyNu
RN4A3WYNEwhqiYJImHqIsWIsL9Jhu7zbGCnFxtIkq06mZ2dLFJ3p9sLuOsYY Yz6fykkRQhDncrl4
+WT9LAbQIfPz86qqYmhBZ2FcgSSz3YobeZN9dSUAdJW1ztutJQoVCo3LHLUW iZJ/NBlMyWspteFA
ZjRJsfzmo25tOFAcnTYS6TCZ+lSGKLX5fu741OeIPt34vKxrUZhCxLjgRBzX nwAAQI+SM5g4kbZw
U957BumM3WzvKezMU9nePWzoNLZnD9u9mw0OMlVFVA5wsq1hJhNncm1/MjBp l4NokWiQgu60JeGx
GFFDYbfb3nhJZRtubbe8GjKczscyo4wxNk7R2EY6tLd0+/ldetu7W55WFEVR lMHdu3ft3rVr165d
g7tVVfWpfbp4EAAA9DS5LKXCBGOkMPurHWE1QLdhO35Kfeup29/witIH5299 /YkTx48ff/bZZ+fm
5j772c8eOXLk4Yce4oK44FatFgyFPv7xj7/uDW+68YbEdh8y7EAoBoCtgHEF RHTTzfr3v/vo5I2T
3/nOdxkjGW8HX3/pG94Quvrqqw8cOLB///59+/bt3bt3aGhoz549u3fvHhwc lBcGAPS0xcXF5557
zufzDQ4OuqXCRMQYE0IwxrwtjLGFhYXBwcG19OyeV92LZ4aGhh550iSiyy7c eHXH+uft7jVHPvvB
b136yvMbGxVFYYwpPp9vwDfg8w0ODKiKgnMQAAD0JGcmE7KrTXZ4Qg2gR+3U sgpTD/mTRXn/vbkX
rjl/YeGE52lZZLJ71y65hK7gXPX5BgYGtuVYAQAANsPO6TWk9xB5A3SdnRp2 a4mCkMUilmUtLS0t
ND7N7JlMfG7YrSiKoiDbDQAAvYrJmUwYiroButRODbtXwRhTFEX1OW9fCEVR VHXnl9wAAMDO1lTS
CgDdo0/DbklRFHlqEsIuO9nuIwIAANisHT9ZAkCP6uewWwghBJHgdmJAoBIO AAB6FvLcAF2uf8Nu
IahWqzHGBBFzY3AAAICeJb/JEHwDdKc+DbuFEEJwy6oxpghnfkdC3A0AAL3J mzpCGgmgO7WrZjbi
9pKRzUw9ZK8oufIykaYe8m5hxFte4Kx82fhEvX8W0k33YSgeD9XXsVyGEW9+ urWlTgjOuahVq7Va
rVat1apVzgUWiAcAgN4l8LstQHdrCrtNPcRYjlpWZSciImOWZoQQQuRjmdHl A29TH89GK+mw+3Cq
FIuVpuoRsKmHRikvTw+VkTnD3bO/PClsMzRraIlCPkbB1H9sgooAACAASURB VEw6bd9JbHxdoEZC
kBC8VqtVrVq1VrUsjmw3AADsAIi8AbpWU9itJQpCpMfabxtO2GFveCxGpbll EsnmbJaiEa3h4cRE
lLKzzgsq5WJwxO/sMBEmIlMfTwbywo3VnfatIjjnXNRqllXjtZpVsyzkCAAA YGfA9xlAd9rQlHnm
XCnoiawbn2sTdUc0LeKJu8NjsWJy3Fv/Yc5mi7GxzsTZRry5CObI+0899cwP 3Penv/byT/y93cQF
t7hVrVWrS9WaxWW2GzOZAABA70J5N0CX20DYberjycDkcvUelXIxMNwcdRM1 xt1pUYlm/Q3hsZv/
3hSnfqWeNjfveONbKPfC/O3ve891b7//YTvuFoIEF5xzy7I454JzRN0AANDr EG0DdLN1h91G3J8M
5NNry0x7Ut9aJErJaTfK1hIFISqp0qgTeRfLlXUdR7vLO7Pjfm9VuWy5/20/ uOsqIiK6/Fffdv/D
jxIRHZUlJRbnFuecc05CEKJuAADoeYi8AbrW+iYQtJPJawy6yZhOFovkZ0m3 JWekw/UXa4mZVNaf
M9LpSDSYbHxuNVqiIBKNTUWiYLFcIdK8Ld/8vkl0gIiILn/3Dbd96IEf/9bP 8kREjIgLUklwZ4pT
51R17NixNR8HwJqoqkoYWtBpGFcwNDTU2ojIG6A7rSXsNuJsaqRSSFTi/my0 Ulg5NPaPBEtzJoU1
IiOXCaYqBbccxdRD/pyRDpOu++XVmeZsthiM+om0xGSMjbJ6SG/qemW9V1UG ozOFyWkW0t19BqMz
hY/cwg7f/b38e84hogP/7c30oezXXtxP9BMiIoWRYExhClOYZ32BtmcxgM2Y n59XVRVDCzoL4wpc
CLUBul+7CQTZaIaKSX/TPNmmPmU3rzh1d72I28hlGi+81CLRYCZnUHi4bPfi TwbydogcTsuaE9s4
RcKmHhrNUDE5Ho/bd1aYt9
|
|
|
Re: no table scrolling on celleditor activation [message #329259 is a reply to message #329253] |
Tue, 17 June 2008 13:18   |
Eclipse User |
|
|
|
Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
be! After we shipped 3.4 I can add the fixes until then you'll need to
fix it your own.
To scroll the active cell into view before the editor is opened you can
install a listener on ColumnViewerEditor and do what the 1 patch in
227421 does. If you read the comment I removed the scrolling before
committing the patch!
For cell-navigation I think you can work around this problem by
installing your own navigation strategy and do some something similar.
Tom
Niels Lippke schrieb:
> Hi Tom,
>
> I am running the jface-snippets from cvs-head against jface-pluging
> (also from cvs-head) and the latest swt-3.4RC3
> still having the same problem: I can "walk" horizontally around with my
> cursor and out of visible area. Same with tabbing and celleditor.
>
> The ComboBoxCellEditor-part is a direct consequence of failed scrolling,
> as the popup comes up next to my shell (see screenshot) ;)
> I use the setActivationStyle-Method. The other way does not work.
> I have attached a modification of Snippet024.
>
> Thanks, Niels
>
> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
> news:g37v21$cjn$1@build.eclipse.org...
>> Hi Niels,
>>
>> The things you describe are known issues. The bugs in with information
>> this are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>
>> Do you by the way talk about vertical or horizontal scrolling
>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>> IIRC). The above patch 1 holds the code to scroll horizontally by
>> tabing and maybe could be used to get the horizontal scrolling feature.
>>
>> Can you give me an example for the ComboBoxCellEditor problem? How do
>> you create the CellEditor? Is it possible that you are passing it to
>> the constructor instead of to ComboBoxCellEditor#setActivationStyle(int)?
>>
>> Tom
>>
>> Niels Lippke schrieb:
>>> Hi all,
>>>
>>> The table editing facility as proposed in
>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>> the neither the cursor nor the editor scroll into view on focussing a
>>> cell.
>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>
>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>
>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>
>>> but that doesn't work well in combination with the celleditor.
>>>
>>> Can anyone help?
>>>
>>> Thanks,
>>>
>>> Niels
>>>
>>> BTW: There's also an interesting effect, if you activate a
>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>> not currently not visible...
>>>
>>
>>
>> --
>> B e s t S o l u t i o n . at
>> ------------------------------------------------------------ --------
>> Tom Schindl JFace-Committer
>> ------------------------------------------------------------ --------
>
> ------------------------------------------------------------ ------------
>
--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
|
|
|
Re: no table scrolling on celleditor activation [message #329265 is a reply to message #329259] |
Tue, 17 June 2008 13:42   |
Eclipse User |
|
|
|
Niels you can find a sample implementation now here:
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.s nippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippet s/viewers/Snippet058CellNavigationIn34.java?view=markup
I only tested on OS-X.
Tom
Tom Schindl schrieb:
> Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
> be! After we shipped 3.4 I can add the fixes until then you'll need to
> fix it your own.
>
> To scroll the active cell into view before the editor is opened you can
> install a listener on ColumnViewerEditor and do what the 1 patch in
> 227421 does. If you read the comment I removed the scrolling before
> committing the patch!
>
> For cell-navigation I think you can work around this problem by
> installing your own navigation strategy and do some something similar.
>
> Tom
>
> Niels Lippke schrieb:
>> Hi Tom,
>>
>> I am running the jface-snippets from cvs-head against jface-pluging
>> (also from cvs-head) and the latest swt-3.4RC3
>> still having the same problem: I can "walk" horizontally around with
>> my cursor and out of visible area. Same with tabbing and celleditor.
>>
>> The ComboBoxCellEditor-part is a direct consequence of failed
>> scrolling, as the popup comes up next to my shell (see screenshot) ;)
>> I use the setActivationStyle-Method. The other way does not work.
>> I have attached a modification of Snippet024.
>>
>> Thanks, Niels
>>
>> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
>> news:g37v21$cjn$1@build.eclipse.org...
>>> Hi Niels,
>>>
>>> The things you describe are known issues. The bugs in with
>>> information this are:
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>>
>>> Do you by the way talk about vertical or horizontal scrolling
>>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>>> IIRC). The above patch 1 holds the code to scroll horizontally by
>>> tabing and maybe could be used to get the horizontal scrolling feature.
>>>
>>> Can you give me an example for the ComboBoxCellEditor problem? How do
>>> you create the CellEditor? Is it possible that you are passing it to
>>> the constructor instead of to
>>> ComboBoxCellEditor#setActivationStyle(int)?
>>>
>>> Tom
>>>
>>> Niels Lippke schrieb:
>>>> Hi all,
>>>>
>>>> The table editing facility as proposed in
>>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>>> the neither the cursor nor the editor scroll into view on focussing
>>>> a cell.
>>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>>
>>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>>
>>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>>
>>>> but that doesn't work well in combination with the celleditor.
>>>>
>>>> Can anyone help?
>>>>
>>>> Thanks,
>>>>
>>>> Niels
>>>>
>>>> BTW: There's also an interesting effect, if you activate a
>>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>>> not currently not visible...
>>>>
>>>
>>>
>>> --
>>> B e s t S o l u t i o n . at
>>> ------------------------------------------------------------ --------
>>> Tom Schindl JFace-Committer
>>> ------------------------------------------------------------ --------
>>
>> ------------------------------------------------------------ ------------
>>
>
>
--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
|
|
|
Re: no table scrolling on celleditor activation [message #329275 is a reply to message #329265] |
Wed, 18 June 2008 02:13  |
Eclipse User |
|
|
|
Originally posted by: niels.lippke.airpas.com
Works also fine on Vista.
Thanks, Niels
"Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
news:g38t21$jn$1@build.eclipse.org...
> Niels you can find a sample implementation now here:
> http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jface.s nippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippet s/viewers/Snippet058CellNavigationIn34.java?view=markup
>
> I only tested on OS-X.
>
> Tom
>
> Tom Schindl schrieb:
>> Niels, as you notice the bug (230955) isn't fixed in 3.4 and will never
>> be! After we shipped 3.4 I can add the fixes until then you'll need to
>> fix it your own.
>>
>> To scroll the active cell into view before the editor is opened you can
>> install a listener on ColumnViewerEditor and do what the 1 patch in
>> 227421 does. If you read the comment I removed the scrolling before
>> committing the patch!
>>
>> For cell-navigation I think you can work around this problem by
>> installing your own navigation strategy and do some something similar.
>>
>> Tom
>>
>> Niels Lippke schrieb:
>>> Hi Tom,
>>>
>>> I am running the jface-snippets from cvs-head against jface-pluging
>>> (also from cvs-head) and the latest swt-3.4RC3
>>> still having the same problem: I can "walk" horizontally around with my
>>> cursor and out of visible area. Same with tabbing and celleditor.
>>>
>>> The ComboBoxCellEditor-part is a direct consequence of failed scrolling,
>>> as the popup comes up next to my shell (see screenshot) ;)
>>> I use the setActivationStyle-Method. The other way does not work.
>>> I have attached a modification of Snippet024.
>>>
>>> Thanks, Niels
>>>
>>> "Tom Schindl" <tom.schindl@bestsolution.at> schrieb im Newsbeitrag
>>> news:g37v21$cjn$1@build.eclipse.org...
>>>> Hi Niels,
>>>>
>>>> The things you describe are known issues. The bugs in with information
>>>> this are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=227421
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=230955
>>>>
>>>> Do you by the way talk about vertical or horizontal scrolling
>>>> (Snippet026 scrolls vertically which was a bug in 3.3 we fixed in 3.4
>>>> IIRC). The above patch 1 holds the code to scroll horizontally by
>>>> tabing and maybe could be used to get the horizontal scrolling feature.
>>>>
>>>> Can you give me an example for the ComboBoxCellEditor problem? How do
>>>> you create the CellEditor? Is it possible that you are passing it to
>>>> the constructor instead of to
>>>> ComboBoxCellEditor#setActivationStyle(int)?
>>>>
>>>> Tom
>>>>
>>>> Niels Lippke schrieb:
>>>>> Hi all,
>>>>>
>>>>> The table editing facility as proposed in
>>>>> Snippet036FocusBorderCellHighlighter is quite fancy, but useless if
>>>>> the neither the cursor nor the editor scroll into view on focussing a
>>>>> cell.
>>>>> I tried to adapt scrolling behaviour to the cursor by adding
>>>>>
>>>>> viewer.setSelection(new StructuredSelection(cell.getElement()), true);
>>>>>
>>>>> to FocusBorderCellHighlighter.markFocusedCell()
>>>>>
>>>>> but that doesn't work well in combination with the celleditor.
>>>>>
>>>>> Can anyone help?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Niels
>>>>>
>>>>> BTW: There's also an interesting effect, if you activate a
>>>>> ComboBoxCellEditor with DROP_DOWN_ON_XXX style on a column, that is
>>>>> not currently not visible...
>>>>>
>>>>
>>>>
>>>> --
>>>> B e s t S o l u t i o n . at
>>>> ------------------------------------------------------------ --------
>>>> Tom Schindl JFace-Committer
>>>> ------------------------------------------------------------ --------
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>
>
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
|
|
|
Goto Forum:
Current Time: Tue May 06 01:46:30 EDT 2025
Powered by FUDForum. Page generated in 0.04765 seconds
|