Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Nebula » Grid - Double Click on RowHeader
Grid - Double Click on RowHeader [message #54951] Wed, 25 June 2008 14:51 Go to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello there.

I've got a RCP application containing a gridviewer with a rowheader and
a doubleclick-listener attachted.

A double click on the rowheader, should open the apropriate editor
based on the selection (this is what my doubleclick listener is supposed
to do), and when doubleclicking a cell or columnheader the default
behaviour should be triggered (either activting inline editing or
resizing the column width).

Is there a possibilty to check whether the user double clicked the row
header, columnheader or a cell?


Thanks.
Re: Grid - Double Click on RowHeader [message #54977 is a reply to message #54951] Wed, 25 June 2008 15:28 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello there.
>
> I've got a RCP application containing a gridviewer with a rowheader and
> a doubleclick-listener attachted.
>
> A double click on the rowheader, should open the apropriate editor
> based on the selection (this is what my doubleclick listener is supposed
> to do), and when doubleclicking a cell or columnheader the default
> behaviour should be triggered (either activting inline editing or
> resizing the column width).
>
> Is there a possibilty to check whether the user double clicked the row
> header, columnheader or a cell?
>
>
> Thanks.

grid.addMouseListener(new MouseAdapter() {

public void mouseDown(MouseEvent e) {
if (e.y < grid.getHeaderHeight()) {
System.out.println("header click");
}
}
});

For RowHeader there's no API to get its width but you could request one.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55004 is a reply to message #54977] Wed, 25 June 2008 16:19 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mail.ppfeifer.net

Hello Tom.

Thanks for the answer. That's the way I do it right now. Regarding the
rowheader width i patched the grid, and made a public get-accessor to
the rowheaderwidth property?

How can I request this as public API?

Thanks.

Peter

Tom Schindl schrieb:
> Peter Pfeifer schrieb:
>> Hello there.
>>
>> I've got a RCP application containing a gridviewer with a rowheader
>> and a doubleclick-listener attachted.
>>
>> A double click on the rowheader, should open the apropriate editor
>> based on the selection (this is what my doubleclick listener is
>> supposed to do), and when doubleclicking a cell or columnheader the
>> default behaviour should be triggered (either activting inline editing
>> or resizing the column width).
>>
>> Is there a possibilty to check whether the user double clicked the row
>> header, columnheader or a cell?
>>
>>
>> Thanks.
>
> grid.addMouseListener(new MouseAdapter() {
>
> public void mouseDown(MouseEvent e) {
> if (e.y < grid.getHeaderHeight()) {
> System.out.println("header click");
> }
> }
> });
>
> For RowHeader there's no API to get its width but you could request one.
>
> Tom
>
Re: Grid - Double Click on RowHeader [message #55029 is a reply to message #55004] Wed, 25 June 2008 16:26 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi Peter,

File a bug [1] (and CC me).

Tom

[1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid

Peter Pfeifer schrieb:
> Hello Tom.
>
> Thanks for the answer. That's the way I do it right now. Regarding the
> rowheader width i patched the grid, and made a public get-accessor to
> the rowheaderwidth property?
>
> How can I request this as public API?
>
> Thanks.
>
> Peter
>
> Tom Schindl schrieb:
>> Peter Pfeifer schrieb:
>>> Hello there.
>>>
>>> I've got a RCP application containing a gridviewer with a rowheader
>>> and a doubleclick-listener attachted.
>>>
>>> A double click on the rowheader, should open the apropriate editor
>>> based on the selection (this is what my doubleclick listener is
>>> supposed to do), and when doubleclicking a cell or columnheader the
>>> default behaviour should be triggered (either activting inline
>>> editing or resizing the column width).
>>>
>>> Is there a possibilty to check whether the user double clicked the
>>> row header, columnheader or a cell?
>>>
>>>
>>> Thanks.
>>
>> grid.addMouseListener(new MouseAdapter() {
>>
>> public void mouseDown(MouseEvent e) {
>> if (e.y < grid.getHeaderHeight()) {
>> System.out.println("header click");
>> }
>> }
>> });
>>
>> For RowHeader there's no API to get its width but you could request one.
>>
>> Tom
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55056 is a reply to message #55029] Wed, 25 June 2008 16:28 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
By the way there are going to be some changes in Grid in the next weeks
so maintain your patch might be quite cumbersome. Did you thought about
using Reflection instead of patching?

Tom

Tom Schindl schrieb:
> Hi Peter,
>
> File a bug [1] (and CC me).
>
> Tom
>
> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>
>
> Peter Pfeifer schrieb:
>> Hello Tom.
>>
>> Thanks for the answer. That's the way I do it right now. Regarding the
>> rowheader width i patched the grid, and made a public get-accessor to
>> the rowheaderwidth property?
>>
>> How can I request this as public API?
>>
>> Thanks.
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Peter Pfeifer schrieb:
>>>> Hello there.
>>>>
>>>> I've got a RCP application containing a gridviewer with a rowheader
>>>> and a doubleclick-listener attachted.
>>>>
>>>> A double click on the rowheader, should open the apropriate editor
>>>> based on the selection (this is what my doubleclick listener is
>>>> supposed to do), and when doubleclicking a cell or columnheader the
>>>> default behaviour should be triggered (either activting inline
>>>> editing or resizing the column width).
>>>>
>>>> Is there a possibilty to check whether the user double clicked the
>>>> row header, columnheader or a cell?
>>>>
>>>>
>>>> Thanks.
>>>
>>> grid.addMouseListener(new MouseAdapter() {
>>>
>>> public void mouseDown(MouseEvent e) {
>>> if (e.y < grid.getHeaderHeight()) {
>>> System.out.println("header click");
>>> }
>>> }
>>> });
>>>
>>> For RowHeader there's no API to get its width but you could request one.
>>>
>>> Tom
>>>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55083 is a reply to message #55056] Wed, 25 June 2008 16:43 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mail.ppfeifer.net

Hello.

Thanks I'll file a bug.

Since it's just one point where I use this, it's not that bad. I thought
of using reflection, but for a quick try i made the an get-accessor.

What kind of changes will there be? What I encountered when switching to
Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again. As
long as I don't re-arrange the colum everything is fine. But e.g when I
swap column 1 & cloumn 2 and then I do the tabulator-traversal it first
jumps the column index 1 then back to column index 0 and then goes on
with index 3 and so on.

I already use your patch you provided me a few weeks ago. Under 3.3 it
works but under 3.4 it's broken again.

Who do I have to ask question regarding the CDateTime control? Because I
have problems to adjust the org.eclipse.ui.forms look & feel. I can't
get it as "flat" as the other "formtoolkit-controls"?

Thanks

Peter


Tom Schindl schrieb:
> By the way there are going to be some changes in Grid in the next weeks
> so maintain your patch might be quite cumbersome. Did you thought about
> using Reflection instead of patching?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> File a bug [1] (and CC me).
>>
>> Tom
>>
>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>
>>
>> Peter Pfeifer schrieb:
>>> Hello Tom.
>>>
>>> Thanks for the answer. That's the way I do it right now. Regarding
>>> the rowheader width i patched the grid, and made a public
>>> get-accessor to the rowheaderwidth property?
>>>
>>> How can I request this as public API?
>>>
>>> Thanks.
>>>
>>> Peter
>>>
>>> Tom Schindl schrieb:
>>>> Peter Pfeifer schrieb:
>>>>> Hello there.
>>>>>
>>>>> I've got a RCP application containing a gridviewer with a rowheader
>>>>> and a doubleclick-listener attachted.
>>>>>
>>>>> A double click on the rowheader, should open the apropriate editor
>>>>> based on the selection (this is what my doubleclick listener is
>>>>> supposed to do), and when doubleclicking a cell or columnheader the
>>>>> default behaviour should be triggered (either activting inline
>>>>> editing or resizing the column width).
>>>>>
>>>>> Is there a possibilty to check whether the user double clicked the
>>>>> row header, columnheader or a cell?
>>>>>
>>>>>
>>>>> Thanks.
>>>>
>>>> grid.addMouseListener(new MouseAdapter() {
>>>>
>>>> public void mouseDown(MouseEvent e) {
>>>> if (e.y < grid.getHeaderHeight()) {
>>>> System.out.println("header click");
>>>> }
>>>> }
>>>> });
>>>>
>>>> For RowHeader there's no API to get its width but you could request
>>>> one.
>>>>
>>>> Tom
>>>>
>>
>>
>
>
Re: Grid - Double Click on RowHeader [message #55143 is a reply to message #55083] Thu, 26 June 2008 12:54 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000105070709010806050609
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi Peter,

I'll revisit the viewer bugs and problems in the following days making.
You can be sure that all navigation, editing bugs are fixed because I'm
just using Grid&GridViewer in base library I'm developing for a customer.

The new features Grid is getting next week are:
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846

As said beside those 2 features I'm planing to fix all Viewer Bugs and
other things once I got the write access to the CVS-repository.

Tom

Peter Pfeifer schrieb:
> Hello.
>
> Thanks I'll file a bug.
>
> Since it's just one point where I use this, it's not that bad. I thought
> of using reflection, but for a quick try i made the an get-accessor.
>
> What kind of changes will there be? What I encountered when switching to
> Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again. As
> long as I don't re-arrange the colum everything is fine. But e.g when I
> swap column 1 & cloumn 2 and then I do the tabulator-traversal it first
> jumps the column index 1 then back to column index 0 and then goes on
> with index 3 and so on.
>
> I already use your patch you provided me a few weeks ago. Under 3.3 it
> works but under 3.4 it's broken again.
>
> Who do I have to ask question regarding the CDateTime control? Because I
> have problems to adjust the org.eclipse.ui.forms look & feel. I can't
> get it as "flat" as the other "formtoolkit-controls"?
>
> Thanks
>
> Peter
>
>
> Tom Schindl schrieb:
>> By the way there are going to be some changes in Grid in the next
>> weeks so maintain your patch might be quite cumbersome. Did you
>> thought about using Reflection instead of patching?
>>
>> Tom
>>
>> Tom Schindl schrieb:
>>> Hi Peter,
>>>
>>> File a bug [1] (and CC me).
>>>
>>> Tom
>>>
>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello Tom.
>>>>
>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>> the rowheader width i patched the grid, and made a public
>>>> get-accessor to the rowheaderwidth property?
>>>>
>>>> How can I request this as public API?
>>>>
>>>> Thanks.
>>>>
>>>> Peter
>>>>
>>>> Tom Schindl schrieb:
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello there.
>>>>>>
>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>
>>>>>> A double click on the rowheader, should open the apropriate
>>>>>> editor based on the selection (this is what my doubleclick
>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>> columnheader the default behaviour should be triggered (either
>>>>>> activting inline editing or resizing the column width).
>>>>>>
>>>>>> Is there a possibilty to check whether the user double clicked the
>>>>>> row header, columnheader or a cell?
>>>>>>
>>>>>>
>>>>>> Thanks.
>>>>>
>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>
>>>>> public void mouseDown(MouseEvent e) {
>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>> System.out.println("header click");
>>>>> }
>>>>> }
>>>>> });
>>>>>
>>>>> For RowHeader there's no API to get its width but you could request
>>>>> one.
>>>>>
>>>>> Tom
>>>>>
>>>
>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------

--------------000105070709010806050609
Content-Type: image/jpeg;
name="screen.jpeg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screen.jpeg"

/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD/ 2wBDAAUDBAQE
AwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0d Hx8fExciJCIe
JBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4e
Hh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAGgAyADASIAAhEBAxEB/8QAHAAB AAIDAQEBAAAA
AAAAAAAAAAEGAgQFAwcI/8QAWRAAAQIEAgUHCAYGCAMHAgYDAQIDAAQREgVS BiExUZETFCJh
kqHhFRZBVFVik9IHFzKV0dMjM1NxlJYkNUJ1gbGzwXSjsiU0Q1ZyguI2REZj ZWZztIOiwv/E
ABoBAQADAQEBAAAAAAAAAAAAAAABAgMEBQb/xAA2EQEAAQMDAwEDCwQCAwAA AAAAAQIDURES
FAQTMQUhcaEVMjQ1UlNhcpGxwUGB0fAGFiIjQ//aAAwDAQACEQMRAD8A/Rum 2NTEgxKSuFCU
ZfmnVpMxMNBSWkpFdSRS4nUBr641vo/0knMRl8TYxqVYXMSCk2vNMcmH0qBI 6JrQ9E+ndHni
LDayZWcdaeKSF2pbcWUH0GqR0TGEsG5ZJTLrLYUblUl3iVHeSU1Mck2ur5e6 Ko7enj+urkmi
53N2vsw40pplpAnFMNmn2sOmJCeeQhyVZlulLpWQAeUrrUKiooPTHd06x7EZ bE0YdgqpCUtl
hMOPPS/KlZKikISmoykk9YjWalZJp0OtoSlQVeKS71Eq3hNKA/4RnNNsTSkL mFXrRWxXN3gp
NdusAGOWmx6lHT10zXG/X2efH6M4tXtkxNXtl1NC8cdxvRYTWISjctPJW4y7 yaKJUpNRcAdY
B1Hqjdaw6ZLSSX3akD+0Y4TKkMtJaZc5NtP2UplnaD//AFjtS2kRaYS243yh SKXci6P/APiP
WsRXTbpi5OtWnt97popqimIqnWWbmEOOABxal0za4w8h+6OEctz6UdFG3FNu Y7g6FpNFJVNE
EHcejEfWnoj/AOYMF/i//jFu9b+1H6uyOg6mY1i3V+ku0MMmAKB5ztGJ8mTH 7Z3tGOJ9aeiP
/mDBf4v/AOMPrT0R/wDMGC/xf/xiO9b+1H6p+T+q+7q/Sf8ADt+TZj9s72jD yZMftne0Y4n1
p6I/+YMF/i//AIw+tPRH2/gv8X/8Yd639qP1Pk/qvu6v0l2/Jsx+2d7Rh5Mm P2zvaMcT609E
f/MGC/xf/wAYfWnoj/5gwX+L/wDjDvW/tR+p8n9V91V+k/4drybM/t3e0YeT Zn9s72jHF+tP
RH/zBgv8X/8AGH1p6I/+YMF/i/8A4w71v7UHA6r7qr9J/wAO15Mmf2zvaMPJ kx+2d7RjVw3T
fDMTZU9hsxLTrSVWqXLqW4kHdVKDrja85Uern4bvyRpExMaw5qqKqJ21RpKf Jkx+2d7Rh5Mm
P2zvaMR5yo9XPw3fkh5yo9XPw3fkgjQ8mTH7Z3tGHkyY/bO9ow85Uern4bvy Q85Uern4bvyQ
1NDyZMftne0YeTJn9u72jDzlR6ufhu/JDzlR6ufhu/JA0PJkz+3d7Rh5Mmf2 7vaMPOVHq5+G
78kPOVHq5+G78kA8mTP7d3tGHkyZ/bu9ow85Uern4bvyQ85Uern4bvyQNDyZ Mftne0YeTJj9
u72jDzlR6ufhu/JDzlR6ufhu/JAPJkx+2d7Rh5MmP2zvaMPOVHq5+G78kPOV Hq5+G78kA8mT
H7Z3tGHkyZ/bO9ow85Uern4bvyQ85Uern4bvyQ1DyZMftne0YeTZj9s72jDz lR6ufhu/JDzl
R6ufhu/JDUPJsx+2d7Rh5NmP2zvaMPOVHq5+G78kPOVHq5+G78kNTQ8mzH7Z 3tGJ8mTH7Z3t
RHnKj1c/Dd+SHnKj1c/Dd+SGponyZM/t3e1DyZM/t3e1EecqPVz8N35IecqP Vz8N35InU0T5
MmP2znah5MmP2znaMR5yo9XPw3fkh5yo9XPw3fkiDRPkyY/bOdow8mTH7Zzt GI85Uern4bvy
Q85Uern4bvyQNE+TJj9s52jFR0+xnEdG8RwaVYa5dM+6UrK1KAQA40ipUNSR +lrcrVqp6Ytv
nKj1c/Dd+SPGaxqSmklMzhzT4KFIIcl3FdFX2k629hoKj0wNFIndINIEaNyu NyrMu8mfmuQl
pVAdcdQarFFhOsq6NCAOiSa7I2sdxrHsNxfC5JOFuul6S53OtpUpSmEgpC+m OgLQSdZ6VKDb
FmZn8IZm3JtrBJNuYdWFuOplFhalD+0TydSeuNlePSy3C4uRQpZQWyosOElJ 2prZs6oCmvab
SjDfKTMlirKbBtU2SHCzyyW6Be0t0N32RWhNax5Smm0u1IOvYuial3WnnkqQ 2oLolD802Nij
VVJVRNPSdXVbnZ/CHXi87gsmtxTHNytUosktfs68n9nq2Ri1N4IyphTOAyLZ l0lLJTJKBbBN
SE/o9QJJOrfAaGAz85imLrkFSM3KBMgzOhbkwhepxbiQnoKOujZNQSNcd/yZ MftnO0Y0pDEc
KkLOY4PKytiC2jkZVaLUk3FIo3qBOum+NzzlR6ufhu/JA0T5MmP2znaMPJkx +2c7RiPOVHq5
+G78kPOVHq5+G78kDRPkyY/bOdow8mTH7ZztGI85Uern4bvyQ85Uern4bvyQ NE+TJj9s52jE
eTJj9u72jDzlR6ufhu/JDzlR6ufhu/JAPJkx+2d7RifJkx+2c7RiPOVHq5+G 78kPOVHq5+G7
8kBPkyY/bOdow8mTH7Z3tGI85Uern4bvyQ85Uern4bvyQDyZMft3e0YeTJj9 u72jDzlR6ufh
u/JDzlR6ufhu/JAPJkx+3d7Rh5MmP27vaMPOVHq5+G78kPOVHq5+G78kA8mT H7d3tGHkyY/b
u9ow85Uern4bvyQ85Uern4bvyQE+TJj9s52jDyZMftnO0YjzlR6ufhu/JDzl R6ufhu/JA0T5
MmP2zvaMR5MmP27vaMPOVHq5+G78kPOVHq5+G78kDRPkyY/bO9oxBwyYOovO dqHnKj1c/Dd+
SHnKj1c/Dd+SBokYZMAU5ZztGHkyY/bOdoxHnKj1c/Dd+SHnKj1c/Dd+SBon yZMftnO0YeTJ
j9s52jEecqPVz8N35IecqPVz8N35IGjBeCqWoqXVSjtJ1xj5D6u6PXzlR6uf hu/JDzlR6ufh
u/JA0eXkPqHARPkPqHCPTzlR6ufhu/JDzlR6ufhu/JA0efkMZe6I8h9XdHr5 yo9XPw3fkh5y
o9XPw3fkgPLyH1DgI9EYS8gWodWkbgaRPnKj1c/Dd+SHnKj1c/Dd+SAk4ZMk EF90g+gqMY+S
n615Vyv7/wB34DgInzlR6ufhu/JDzlR6ufhu/JAY+SHikpLi6EUpX0bKdwgM JeFtHFi2lKHZ
Sn4DhGXnKj1c/Dd+SHnKj1c/Dd+SAwbwZbayttRQo0qU6iabIl3CHXQQ64tY JqbjXXSleEZe
cqPVz8N35IecqPVz8N35IB5LmKKHLOdLbr266/5kxirCHFBSVLUQokqBO2u2 sZecqPVz8N35
IecqPVz8N35ICEYU82jk0OLSgilqTQU3R6yTa5SdrMOrWCgBN2umvXt9Eefn Kj1c/Dd+SOZi
WJLnHgvlC2BsSJd35YDVn9MMRbxSclcOw3DUMSzxaBmHFBayACVWpGoEnVv2 xv6LaTP4q/Oy
WIyLLLjCUKDjFVNrSqurpAaxQxyn2paYXyj6GXV0pcuRWTxKI9ZJtAUJaWcY YvOpIYU0FH/F
IBMebas9bF+aq64mjGnt/BhTRdivWavY8tJ8Um8HwXSDEJKWW+609Xoaygcg 30qUNabo4H0L
6WYvjWj+JzuOTJm5eUWVNznI2XJoSpNBqNKbRvi0vTExLTeJrE1LtsqmkpCF yqnFKJZb3LH+
UeTWKTDSAhp5lCBsSnCnQB/zI9umf/Vt2+3LWa4idJlw2vpCmuZSQmcHXLzz 03yTzDgWkoRy
jX2UqAUpZbeSabKhW0DX6SX0guOyU/OOYTezLlCkqaeBTasoSkFVKaiolR2J AO6Ow7jj7QBd
nWUAmgKsNcGv4kYecR9pSv3e5+ZGPbqR3KWEvprLuvNtmSW3fOIlSC6FFN6L gejUE+iiSabS
Uxloppixj8xKMpkXJUzMsqYSFuJUoAKttITWh2E3U20FaGk+cR9pSv3e5+ZE ecR9pSv3e5+Z
Dt1HcpfP9EvorwvF1uO4jNJljyLTyUqTqUF3a9o3RwtM9Am8Ilpp7DJMz6hM KYlUIbUeUUFE
f2bjQBJPp2R9glsWwJqSl5Zwl7kGkthS2NZAFI2W9IsHbQENrWlI2BLRAEY1 en2q6IomPhH7
vcsf8p9Qs3qrtN2fbGmms6R48R4/o/OT+FyomlJZkAWQwlwKcVYQVBopKtXR TR2mvaRSPdjA
UKl5Fb2DOpM3eEm5KRVATd9qgGtWoVrQE+iP0P5y4T+1c+GYecuE/tXfhmMv kjp8O7/vHqn3
j88TGDSTMkZnyatwc2afCUq2hbgRtIFoBI1qp1VGuEzgEul5SSy1JtNuOpdf eSXEgoSkhAtI
BWoKJABOpJ1V1D9D+cuE/tHPhmB0lwn0uufDMPkjp8E/849Un/6PzrjOBiQk nnvJRSoJXyQc
NEkpLo1nr5I0TtNU79UzmAmSXMCZwhyks8Zd2iCByldRqdibFNrrroFdUfon zlwn9q78Mw85
cJ/aufDMPkjp8I/7x6p94+BYFozL4tixw1vCZtp1KCsqcQLaCldYqD9pvZnF NhjpOaB4Whh9
K5opnETSGAzYKG5Sdd1NR10sNVKrcCADH2vzlwn9q78Mw85cJ/au/DMI9JsR /RS7/wA09TuR
EdyY0xOjhfRNgXm8ziUjZZctt2lN4I/2i8xVXcdlROuTUnPoQHEJQpLkopet JVsIUN/dE+cS
vaUr93ufmR00dP26Yppj2Q8Hq+unq71V+5P/AJVTrK0wirecSvaUr93ufmQ8 4le0pX7vc/Mi
/bqc/cpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0pX7vc/ Mh5xK9pSv3e5
+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0pX7vc /Mh5xK9pSv3e
5+ZDt1HcpytMIq3nEr2lK/d7n5kDpGQQDicqCdQ/7Pc1/wDMh26juU5WmEVb ziV7Slfu9z8y
HnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5WmEV bziV7Slfu9z8
yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5WmE VbziV7Slfu9z
8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5Wm EVbziV7Slfu9
z8yA0jJ2YnKn0f1e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7 lOVphFW84le0
pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo 7lOVphFW84le
0pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIdu o7lOVphFW84l
e0pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIqx0jI24nKj0f1e5+ZDziV7Slfu9z 8yHbqO5TlaYR
VvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slfu9 z8yHbqO5TlaY
RVvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slfu 9z8yHbqO5Tla
YRVvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slf u9z8yHbqO5Tl
aYRVhpGTWmJypoaH/s9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ8 4le0pX7vc/Mh
26juU5WmEVbziV7Slfu9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ 84le0pX7vc/M
h26juU5WmEVbziV7Slfu9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufm Q84le0pX7vc/
Mh26juU5WmEVbziV7Slfu9z8yB0jI24nKjXT+r3PzIduo7lOVphFW84le0pX 7vc/Mh5xK9pS
v3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0p X7vc/Mh5xK9p
Sv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0 pX7vc/Mh5xK9
pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVpjk4vhUz OzgfaxBxlIbC
OSveCQQSbhybiNZrQ1rsFKa68zziV7Slfu9z8yPRrHH3QS1OsOAGhKcNcNDu /WdcR26juU5e
2Myak4dhElMYhi6WW3UompqSvL6khlYCjYFHWsJrqOsx4yTRZl3W25jEpmVT ibPNnJ8LDqkW
tV+2AaX3+gRJxqZBIM40CNv/AGY7+ZE88mJ1DCxOyzraJtpK0JlVNqBuFNZW acIibdUe1MXK
Z9kS9h/Xh/vJP+g3FriqD+vD/eSf9BuLXFbvilNvzKu6bJSuZ0dSoBSTjCAQ RUH9C7HDexDG
GpqaS3gcxMTaZh1LcsJEIl0tJcCWzytpuK0EK1EgdIaqR3dM/wDvejn98I/0 nYnSDHZbBMCn
sZxCZmOTl1lKWWOTvWbyhKU3ClSabTv2RlEatHB8u44+8pEvoSGkONtOMqmG VggOLSOmAnUU
oUSpNagpI2axhMaRYyzJuTK9B3DVIUy03KrWs6iVJVROomlAdeum+LFo/j0h jeJTMpJzs0pt
ltLiX6tlLiVUoR0fSDHd5un2hMcEfLE7JRq+ezWP6RsIecGgyHUgVaCGVk61 oHSFnoSpSjSp
6MXmWlpZyXbcckWG1qQFKSWx0SRs2Rs83T7QmOCPlhzdPtCY4I+WGyTV5czk /VGPhiHM5P1R
j4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4I+ WHNk+0Jjgj5Y
bJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmcn6ox8MQ 5nJ+qMfDEZLZ
CVAeUH6UJ/sej/2xysHxB+cksPm1lbKphRDjCnmnbaBf9puqT9kbDDZJqpOj i5qW0InpmQlO
XeRjs2C23Lcq4tvll1SjoqAO4qFPRUVqOurG8WccmkS+hp/ozbyiXZdaeUUg LtSjo9IqtRQi
o6WqtIj6NXFt6OTYQvk78cnElWrUOWWfSDu3Ru4lplhEljk5g3PZx2blAwVh JaAUXFJBA1Vq
kLbJqAKOJoTrpEU6mrnu47jKJyXkhodc84ShbglV8ig84LYVfb9mwFfo1U3x 6YFjONTeLyEl
iGhqJRl9Nz0xySrG6tIWE607QpRSa0+yaaxSLfhpbncOlp1E9MoTMMpdCSG6 gKANPs9cbHN0
+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5c zk/VGPhiHM5P
1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4 I+WHNk+0Jjgj
5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmUn6ox8 MRUfpDl5dvFd
D+TYaRdjgSq1AFRzZ/UeqLBOzTkviOHyiXXnUzZcvd5ZhIatTUdFQClVOrog 09MVvTdxbmIa
I3rvKdIikK3gS8xTZSImnQ1aE1iuk8vpPiks1o0ZuSbm225Q8yKUWFpZKiuz WLgjZXbtGw+y
8U0ml8QnFOaLsTcuzyiEtsyikFRSp6wpJBuuShuprTpCmuLPjeMMYThWJYrP TTyWZMmjTVgU
s6glIuFKqUQBUgVPojX0d0kw/HcQEtIzk2ptTJebePJ2rTybCx/Z3TCeyYna aqsNKcVw+UD2
IaKPTDaEzD77qcPW0A2mZWlATckdItJBCVUJ6OaPoEpKNLlGVTUjKtvlCS6h KQoJVTWAaaxX
0xtGWQduIP8ABHyw5un2hMcEfLDZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCP lhzZPtCY4I+W
GyTV5czk/VGPhiHM5P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDE OZyfqjHwxHrz
ZPtCY4I+WHNk+0Jjgj5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sYqYAU keUH9ddtm7/0
w2SasOZSfqjHwxFR+jSXl3EY+FsNKCcbnEpqgGg5ZeoR28KxB+bkZebUXGVL mFNllbzLvRCy
kG5uo1ih21FaGOBoA4tqVx8oXYTpBMpKtwMyoHuMRNOhquXM5P1Rj4YhzOT9 UY+GIreKaXYT
IY+5ga56bcnW2GniEFq0hbqG7dlajlEK1jYf3x3sGdaxPB5LEm52abRNy7b6 UK5OqQtIVQ9H
ridhq9uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5czk/VGPh iHM5P1Rj4Yj1
5sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4I+WHNk+ 0Jjgj5YbJNXl
zOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SaqnpBMTUnpAhpvC31 yYZaUymVkQ5z
h1TikrQtdpDaUpsNdVQpRqaUjjzOkONuSzDTGiLyH30r/Spw9y1BCSUnpJqN abaKA1kEaiI+
ic3T7QmOCPljm4hNLlZvD2EOvPJm31NrWHmEckAkkKooAr1gCiQTrrDZJqpe lb7k7o/gszNY
UMPmDjiW1NlkoqBygBFQCUkAGpAruEbmNYhjUhj043KYGmelEOIKKSKihKOS USkEJBKy4Ei4
FSQFawCIy+kVxbmH4UlbnKWY2ykK3jk1HcN+6LHiuJs4dJ4niE7NuMy8igrK G7AVAISaC4bS
TQa9pERt9uhqrE/jmPSs07Lp0KS/yZZAcQysoNyApRFEmoCiUatYIqRTZZdG krncJS/ieGy0
vNco4lTYlygAJWQNStesAGuw11RoaNaU4dj+IsSslMzoQ/J87Q4rkqAUaNpA Tt/TAfvSYs3N
0+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5 czk/VGPhiHM5
P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY 4I+WHNk+0Jjg
j5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmcn6ox 8MQ5lJ+qMfDE
ZrYAKB5Qf6Rprs3H3Y5GH4g/MypmCXGVJnFMcmt5l25IcCQqrdQKg1oSCPSI bJNVQwwzEudL
3cPk0vPIxhtICZflVNtkoDiko/tFKCpQSNpGw7I2cTxrEMIdXMDBFz2Ey8up 5592QLbqwnky
bQEpAVaXCAR0ikAUJjZ0NcW1iulqkKtJxdKa02VtB/zjexrS3CcLxkYO/PTT k2ZPnVEFq09I
AI1prcRcrZsSeqIinU1d2SlW3JNlc1ISzT6m0l1tKQoJVTWAaa6H0x7czk/V GPhiPDBH2sUw
iVxFucmm0TLSXAhXJ1SCNh6MbnNk+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR 682T7QmOCPlh
zZPtCY4I+WGyTV5czk/VGPhiHM5P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmr y5nJ+qMfDEOZ
yfqjHwxHrzZPtCY4I+WHNk+0Jjgj5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaE xwR8sObJ9oTH
BHyw2SavLmcn6ox8MRUfpZl5drRmXW2w0hXlKUFUoAP65MWHFJlck5JJQ6/M CZmwwsh5hvkk
kK6dFgXbALU1OvZqiqfSs+vzVIW7ygbxaUCVatl7Z9AHpJ9ERNOhq28TnZuU xfFf+znFolWw
qRlmpArbmU8mCVKcCTRQWVC0EHojUbhGmnSTEVqbYRoh+mWpIC1Sy0t2laU3 k2dEa1KtPSAG
sCNTEdKnUaSOybcyEkAJQ2EBSlaq7IwOmDZnxJN4tLOvFwNpCEINyq0oNe+P Lu+rdParmirX
WJ0/32uerq7dMzEttnSHGAiZfmtGJNlpmVVNELZWigSy0souIoVFa3EjZTkz URbMFdlJ7Cpa
cfw9iWcfbDhaUgVQDrAOrbSleusVGe0jVJtuqfxSXAbND+iSKjo0Ov0G4GOf 59y3taX7CPxi
lXrPTUTpVr8P8qz1tqPZM/s+k8lh3q8v8MQ5LDvV5f4Yj5r59y3teX7CPxif PuW9rS/YR+MV
+XOkzP8Av90c6zn9n0nksO9Xl/hiHJYd6vL/AAxHzXz7lva8v2EfjE+fct7W l+wj8YfLnSZn
/f7nOs5/Z9J5LDvV5f4YhyWHery/wxHzXz7lva8v2EfjDz7lva8v2EfjD5c6 TM/7/c51nP7P
pfJYd6vL/DESmXkDslpf4Yj5n59y3teX7CPxjKW02XMTrTEtPtPXHWEJSD/v F7XrHTXa4opn
2zOn++1NPWWqpiIl9NEnJn/7Vj4YjhaFJSjFdK0ISEpGMigAoB/RJaNTRzHs QxBt9bra2AzN
ciAp5pwOAKSLugOjUE6iQRujc0O/rfSz++R//Ulo9aY0derDFsYlGZ6elprH G8PLRAbaDjaV
LJQk1NwNRroP3GONgr3OG1vXoXdPM9JH2VUVSo6jSPHTQgYlNVFaz7f+k1Ge AfqXf7xb/wBQ
xxdF6jVe6u7080+ymNdf7uHvTVd2T/R0pl9qVxN2YfUUtN4ilSjQmgEu36Br jpeeGjvr6v4d
35Y4WkS0N8+cdWlCEzoKlKNABzdvWTG0zpPgY0tmkLxzC/Jpkmi2ozkvyYdC 13AdK6tpTt1a
o9K74pdVHmWvpTpLhE3NYGZR2amSxiaXnEMyTziggNO1ISlBJ2jYI85/FcPm Ji9Jxfkw4XW0
OaNTy7FGusfo9vSMdFWK4NP6d6MIwzEpCbWh6ZKxLPoWUjm69ZtOqNTCZD6T cMwxqW563MvW
OrccdWl6rhYbDaauLqlIcDlSCddCAEm1OUTo0c7D5nC8OP8AQG8QleiEfotF p5PRGwam9gjd
8up9bxj+Wp/8uLPgadMm9IG0YrMMu4YlpwFSW27lq5Vy0qoQUmzkqWgj7VaG kWuo3iJ3SjSH
yzy6n1vGP5an/kifLqfW8Y/lqf8Akj6lUbxCo3iG6TSHy3y6n1vGP5an/wAu I8up9bxj+Wp/
5I+p1G8QqN4huk0h8t8up9bxj+Wp/wDLh5dT63jH8tT/AMkfUqjeIVG8Q3Sa Q+WeXU+t4x/L
U/8AJE+XU+t4x/LU/wDlx9SqN4hUbxDdJpD5YccQTUzeM/u82p/5IxwXE8Lw 1Uu2hOLolZet
jDOjU8hIqDsHJ09Jj6rUbxCo3iG6TR8a0RxFqS0dmpSclcclJh3E5maaIwSb c6C3VFJNreqo
NaVBEejzuEPuBx5mecWlZcClaKzpNxIJNeT2kpHARetOGNJplqQGjbrTSmJj nL5W/wAnyoQR
RnYahdTXYNW3XFdm5P6RlYpN4hLv2qpY22p1soCeUVUoRUAnkyKX667TSIiZ g0abOMsstIaa
mMXQ2hISlKdGZ4BIGwD9HGXl1PreMfy1P/JF+0XTjCZFxeOzCHJpbqylKUJS lCK0TQAnWRQm
pO3bHVqN4id0mkPlvl1PreMfy1P/ACQ8up9bxj+Wp/5I+pVG8QqN4huk0h8s 8up9bxj+Wp/5
Iny6n1vGP5an/wAuPqVRvEKjeIbpNIfLPLqfW8Y/lqf+SJ8up9bxj+Wp/wCS PqVRvEKjeIbp
NIfLfLqfW8Y/lqf+SI8up9bxj+Wp/wCSPqdRvEKjeIbpNIfJXsQk3phiYeXi jj0uVFlxWjM8
VN3ChoeT1VGqNXSDEmpl/RkS0rjkyZLFjNzThwSbbCW+QeBV0m9etSRQVJrH 2So3iIURcnWN
v+0RMzJo+W4li2HzcypxJxjki4HEtuaNzy7VDYf1e2NORmMLkXS7Jtz8us3V U3otOpJutu2N
+m1PZG6LY5JaQLnStsTyUt4zyraXJz9GuWIQFXFLl1o6ZSkgitAU02eGLSel T7mLvy6Z1HLM
ky7SJxKTceS5MJ6dEWlL12wKuH2tgndJpDjeXU+t4x/LU/8AJE+XU+t4x/LU /wDlxadIGsan
cQSZJvEJRpWHzTK1tvoIS4SjklBHKCqtS6HVS4ax6K9LYNpwXgJ7EJzm5kFt lMtM0WlRWpSK
EuglYSUpNTrpUOegt0mkNby6n1vGP5an/kifLqfW8Y/lqf8Akj6NggmkYNJI nwhE2lhAfSlx
SwF0FwClEk6/SSTG5UbxDdJpD5b5dT63jH8tT/yRHl1PreMfy1P/ACR9TqN4 hUbxDdJpD5b5
dT63jH8tT/5cR5dT63jH8tT/AMkfU6jeIVG8Q3SaQ+W+XU+t4x/LU/8AJEHH Ekg87xnV/wDt
qf8Akj6nUbxCo3iG6TSHynCcSwyQU0hAxZEshwucizo1PIFxVcT+rprJJ/xj S0YxJmVkMZam
5THJZU5isxNS6vIk2uqFPqUlRCW9VRTUaGPsdRvEQgih1jaYiZmTR8gfewl9 QU+1PuqDofCl
6KzpPKAABdeT20AFeqNqXxdiXYbl2H8WbaaQENoTozPBKUgUAA5PUAI+rVG8 QqN4id0mkPlv
l1PreMfy1P8A5cR5dT63jH8tT/yR9TqN4hUbxDdJpD5b5dT63jH8tT/5cR5d T63jH8tT/wAk
fU6jeIVG8Q3SaQ+WeXU+t4x/LU/8kT5dT63jH8tT/wCXH1Ko3iFRvEN0mkPl nl1PreMfy1P/
ACRPl1PreMfy1P8A5cfUqjeIVG8Q3SaQ+WeXU+t4x/LU/wDJHg/iMm+7Luvr xR1yXWXGVr0Y
niW1EEEg8nq1EiPrVRvEKjeIbpNIfGdKMQbnMOw2XlZbHJt5rE25l5RwSbbA QlCgT0m9fo1V
JMdTFcXw6dmFrT5YDS1pc5NzRueWApNpB/VjWCkEdcXDReVxiXnsSXibrimX Hqshbt9Tyrhu
SKm1PJlpNuqhQrV6TYqjeIjWU6PkEnMYVJzKpmUbn2HlX3Lb0VnUqNxBVrDf pIBP7hG75dT6
3jH8tT/yR9SqN4hUbxE7pRpD5Z5dT63jH8tT/wAkT5dT63jH8tT/AOXH1Ko3 iFRvEN0mkPln
l1PreMfy1P8AyRPl1PreMfy1P/JH1Ko3iFRvEN0mkPlvl1PreMfy1P8AyRHl 1PreMfy1P/JH
1Oo3iFRvEN0mkPlvl1PreMfy1P8A5cR5dT63jH8tT/yR9TqN4hUbxDdJpD5Y ccSSDzvGdX/7
an/kjzw3EcNklpCBiyGOWLy22tGp5AUsquJ/V7SfTH1eo3iFRvEN0mkPjuj+ JsS81pGuak8c
l0T8/wAvKr8iTa7kilCQG6jWNhoYymH8KmVFUy3iDyisOFTmi06olQTYFVLe 23VXdH19JFVa
xt/2iajeIiJmDR8plsXl5ZhDEu9izTTabUIRozPAJG4Dk49PLqfW8Y/lqf8A kj6lUbxCo3iJ
3SaQ+W+XU+t4x/LU/wDJEeXU+t4x/LU/8kfU6jeIVG8Q3SaQ+W+XU+t4x/LU /wDlxHl1PreM
fy1P/JH1Oo3iFRvEN0mkPlvl1PreMfy1P/JDy6n1vGP5an/kj6lUbxCo3iG6 TSHyzy6n1vGP
5an/AJIny6n1vGP5an/y4+pVG8QqN4huk0h8lmcRk5lTKpleKPFh3lmi5oxP KsXQgKFW9RoT
xjk6fYgid0UTJSjGNzc0Z9h9RVgk20LUrTU1W3TUE74+4VG8RztICOYK1iIm Zk0fG9E8KktJ
56dxNDs2wtuYtSXZRbSgQlJBAcAPp2x1MT0OwnB8NmsVdmHQ3KMreWW2U3US kk017aRsfRq1
NNPYyJzlStWJPKQpbl4LZIKLdZoAmgpq1g6vSbNpAMPVgU+nFv6vMs4JrWof orTd9nXsrs1x
wXPR+ivVTcrtxMz7f6uerp7VVWswoTElozNEyMxjK5aYbUW1ykyhIW2QQLSK kegUoSCBUVpE
M4Hoc88tlvF2ypC+TUTLUTWzlDQkUICSCSNQ9MdkyegJa5627LvGYQlCnGpx a3HQt20KUQq5
RDi6XnWCdoj2RhegolWmy7JBjlW7W3J1VC4W6IBSpWtRR6DrIHVFJ9C6CfNq Pj/lWelsz5pV
c4bohzlUuJ1wugNKSnmoBWlxYQkitNVSP8NYrGwcG0LSoIVjculVq1FKmQCA m66oOz7C9Rym
Ln5rYEUoC5JThbttU4+4tXRIKakqJNKDbujXl9CdGGJRUq3hg5JQoQX3FehY 2lVRqcXxiPkD
0/7qPicSz9lwcH0OwPFpHnko8vki640L5cJNULUg6v3pMbn1eYZ+2/5KYteG yMth0oJWUQpD
QUtdFLUslSlFSiSokklSidZ9MbMT8genfdR8UcSz9lS/q8wz9t/yUw+rzDP2 3/JTF0hD5A9O
+6j4nEs/ZUv6vMM/bf8AJTFf0z0flNGZeXn5d967l0p/RSanTrr/AGWwVGPq kVzTTZKf/wAy
f94vb9F6GzVFyi3ETHthanpbVMxMUuHo1ikgwwKDE221vcu8lnRudTyi6gkk hvaaDXFo0DUu
ZmNIp5MtNsszWLcozziWcYUtIlmE3WrSFUuSobPRFp0cI8no1jZHSSRVWsbf 9o75nV1aPkum
ZCcSmrh/982P+U1GeAfqXf7xb/1DGWnxSMana+vt0+C1GOAfqnf7xb/1DHg+ lfWnUfl/l5lH
0iXvpAlKzOoWkKSqeAIPp/o7cbEthWDPaYTWFpwnDzKy8sFrrLKSsOEpoAom ixQkmgFKpGvX
TV0kaQ+ifZcqULnAlVDQ0Mu3GsnQ3R7zpOCLlJ1KTKGZbe56vpUUlJFCKbVD YT6K0qI+ju+K
Xfb8y7jmFYdhmnGjJw+TZli69Mpc5NNLgJdZAMeGjmP6cIlZNnF8EecmX3hy ijLK6CFJZ9KU
hIoVuq6Q1cnZrPSPhJaM4Xo/p3o45h4fufcmELLrpXqDCzqrs1x7yn0oybkm 64vB51TrFvKp
bWkJ1y63yRcQSAhB9GskUjFojDNKtN/JksH9FVvPiSW4t1TDrfKvJZCgm22q DyhKDWgVQlPo
EXPRx/FHxPIxZplDjM0ptotsKbSpsAFKukTdWu0avRtENHsXlsZ5/wAi2tCp KcclHApVSVIO
3VqoRQ/466GoHUsT18TATQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6 +JgFBuHCFBuH
CFo6+JhaOviYBQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6+JgKzpZO 4vJ4phKcPZmF
yqy8ZnkWSuqk22JJDa6A1Vl/9Qpr4CtJ9NmXnFu6KuuJEpcEtNKKOVopQA1X HUQD6KoOwqAi
0Y7j8rg2JyUtNqbbammphYWpyiipuyiEj+0pVx1bdUViW+kth5SZgYPNmSdk UTDJS4m8uFUz
VB6VNaZeoPXr6gvODPPzWFSkzNy6WJh1lC3WgFUQojWOkAdu8Axt0G4cI+ez P0o4TJs3T2Hz
cu7c4nki4kqNiakihoRXVt3GOrhWmTE9jkvhJwudYddUptS1rSUtrBf6Jodd ebLNRq1iAttB
uHCFBuHCICR18TE2jr4mAUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaO viYBQbhwhQbh
whaOviYWjr4mAUG4cIhQFU6ht/2ibR18TGKkiqdu3ed0BR3MW0qIK8Ow6cmG DjCGlmYlQ261
LXoSuiVBAUk1WQpN1EjWSTq8NI8Z0uQvElYPIzS0dHkAuTUAhNWrSDYSSoKe u6KrSlOobTsz
Omim552VbRJulrEVyqil4m60s0QNf608qSB/+Wr/AA9sb0xYkV41yMzhzqMP kZacbUZj7SXV
rSQrXq+wKH3hAZ4pieNFyWRJNTba3MLmFOByQXY3MJ5OypCVUJq5QVINNVfT pSU1pU/J87mj
i0vyGHPOuMtS7JW8q9YZCLmv1pQkKUDqBUkWiurpaQaUNyOIJlJJyRmluYfN TKEc5AUXGSjo
7aU6RrutMV/D/pEmZsutjDksqRL8ohThol0BZBeAKgQ3aLhq6X2bq0qF/wAG Zm2cJlWsRfEz
OJaSH3QkJC101mgAG3qEbdBuHCOZotPqxjRzD8VcYXLrm5dDpbJPRqKx07R1 8TAKDcOEKDcO
ELR18TC0dfEwCg3DhCg3DhC0dfEwtHXxMAoNw4QoNw4QtHXxMLR18TAKDcOE QgDXqG0+iJtH
XxMYoSNe3afTAZUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbh whQbhwhaOviY
Wjr4mAUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhRO4cIW jr4mFo6+JgK7
oxNYxMz2JIxJlxLLb1GStmyh5RwWpNBcnk0tKu11Kzr9AsVBuHCK7oxjrmMT 2JSy2W0iUeKQ
W1k0/SuosVuXRsKpuWn95sVo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhQbhwh aOviYWjr4mAU
G4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhQbhwhaOviYWjr 4mAUG4cIUG4c
IWjr4mFo6+JgISBVWobf9omg3DhGKUiqtu3ed0ZWjr4mAUG4cIUG4cIWjr4m Fo6+JgFBuHCF
BuHCFo6+JhaOviYBQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6+JgFB uHCFBuHCFo6+
JhaOviYBQbhwjnaQAcwVqEdG0dfExzsfQOYKpXjAfNvo0dmnXsZM2HQtOJPI SlbdoCAQEW6h
UFNDXXrJ1+gWjHmpJ/BJ5jElhuScl1pmFFVoS2Um419GquuKboJpBIB/GlYh iEhKFjEHWilc
wlJSlKrAVVOom2v+Md7G8V0VxXCJzDZrSHDEMvtqacUidbCk1G0VOojbr3Rr HhSXKk9H9FJ9
pnEm5+YUw0OQQlyYtS3a8ldtDrBvSjV1Dfr2mNB9GJdpbaEEIW5fQuCoVYpB 6VKnUtR1k0J1
UjjzODaGTU07MzOlss7MukuPLM2x+kJKCCU0pQckigp/Z6zXFjANAW3FpXpH JPqW44u12cZW
em42tW3raSn9xINYD6CqYYSoJU8gEgnbupX/ADHGIlJqXm21OSzyHUJWpslJ 2KSopUP8CCI+
fo0f0IK3AzpTL3mYXM0M4ysBS3G160qqCP0aQKjZ10MdzR9vRTBJmbmJPG5G 6bNXQZloAq5V
1wq1U11dIruSndEi1Qjm+XsD9tYd/FI/GHl7A/bWHfxSPxgOlCOb5ewP21h3 8Uj8YeXsD9tY
d/FI/GA6UVzTTZKf/wAyf946Xl7A/bOHfxSPxjk6TzEpPNyqpScln7X01Dbo UfTuiJ8ELzo4
E8wRqGzdHSSBVWobd3VHN0dQBIprXZvMdFKRVW3bv6oyXfK9PrfLU7Wn/f26 fBajHAP1Tv8A
eLf+oYy0+CfLU6D6J9unwmoxwD9S7/eLf+oY8L0r606j8v8ALzKPpEvXSRtT qJ9tLq2iqcAC
0Uqn+jt6xXVGqzo+750P4azpvjHlMy4decSw19kFICVLt1npJNPQCN4rtaSB 1SZ9LC0IdM6A
hS03AHm7dCRUV4xqsYdpcvSZ99nE9FvKzLNjzycIeCghVptK76Em1JpWtAI+ ju+KXfR5luy+
AzUhpto8jEcdncZbfXMt8nNJRagc3XXUBrqNWv0R3sH090Xfkpky7zjDEi+9 LWts3pCWWwsr
HJggIsIIJpu26o4UpL6TNac6OnSPEcLmmy5MhpMpKqboeQXUqKlnVSLBLz+h b7bTwl5Nph+W
LLb78kWWlsBNKBawAW6KIFNRB64xaOhhWlmBYlibeGSk+4Zxba3AytlSFAJW pCrgpIobkKFD
r1R36HOruiusTehsviinWMQwFqfQldxQ82HAmqnF1oa0reo/+4743xj+BkrS MdwuraELWOco
6KVW2k9LUDemh9Nw3iA6dpzq7oWnOruiOlmTw8Ymi8yeHjALTnV3QtOdXdCi 8yeHjCi8yeHj
ALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3Qt OdXdCi8yeHjC
i8yeHjAcTHMeYwjEMPknmn3FTpdIWilraUW3E+n+0Nkc86e6MNqSl/EXJflE qW2HWFpUUJaQ
6VFJTUC1xO3fHSxieweUn5JnEijnMyHW5esspw29HlKkAhKfs1JoNkct2a0B eeSHJnR9Sg0s
pUot2lsNtpVRVaFNimgddKWj0QENaeYGZR6ZmVzUolhauW5eXWnk0B9xkKUS mgqppZtOug2R
v4bpPITuPKwcJnWZjk0uN8tLLQFgpuprSLVAD7JofTSPeRwPR9WHpTJ4dhi5 N5CVJ5NlKkOJ
uU4k6tRFy1KB3qJ9MbMlg2GyS21ykhKMqaFEKQ0AU6qaj+40gN+051d0LTnV 3QovMnh4wovM
nh4wC051d0LTnV3QovMnh4wovMnh4wC051d0LTnV3QovMnh4wovMnh4wC051 d0LTnV3QovMn
h4wovMnh4wC051d0YqBuT0jt6t0ZUXmTw8YxUFXJ1jbu6oCqYhprKSDpTNSc 0hCZ4SZdqgtl
VUCoVWhNVgWjpdFWromM8X0xl8OmpxhUjOvc2JBWgJtITyXKKOVKOWQSTQUq fRGu3O6FS0v+
ilEBlM8k0awx5SQ+tdErolJ1KXsX9kkbdUbOIp0Sk/Kjc1h7A5vLtOTyUyC1 1ZNwQTak3J/R
kGlaW64DdxrHmsNcS25LTD4XIvTiVNWqCg1ZVI6zeKeiOQnTiWdYZfYw2afY cZcWpxtxpSW7
HeSVca6k3/29lATsBpv4qvReTm0PzzEuh4ST8wh3mqjRjo8rRQHpuTVI1mo1 RpM43oUismzy
CFuyiUllEk4FlpLikJbICa1DhWkI23EilTAWLR/EmMawSTxaUUsMTbKXUBVK gEdWrhG/ac6u
6NTBnJR3CpVzDeTTJqaTyCUNlACKagEmlNXopqjbovMnh4wC051d0LTnV3Qo vMnh4wovMnh4
wC051d0LTnV3QovMnh4wovMnh4wC051d0LTnV3QovMnh4wovMnh4wC051d0Y oBoekdp3RlRe
ZPDxjFAVr1jbugMrTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjC i8yeHjALTnV3
QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi 8yeHjCi8yeHj
ALTnV3RFpzq7omi8yeHjCi8yeEBxcDxtjFpuclmmn2lSy9q7aOJ5Rxu4U95p eo69Q3x2rTnV
3RyMGVhBncRaw1hDMwiYHPBzZTRUs6wrWBcDUmoqDUx16LzJ4eMAtOdXdC05 1d0KLzJ4eMKL
zJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtO dXdC051d0KLz
J4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ 4eMBikGqukdv
VujK051d0YpuqrWNu7qjKi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3Q tOdXdCi8yeHj
Ci8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjA LTnV3QtOdXdC
i8yeHjCi8yeHjALTnV3RrYgyXJcpuJ1jdGzReZPDxjFwKt1lO0ejrgPz59ID uDvTbicUbfk2
VOzDTLziUqDqmXQ2sAJqR0iKVGsRTZ3RTAmphaFOuLtLpcKGFKCA3ylxNB/+ UsddOuP0Etz6
Pn5+cZmGcNZeU66XnJmULKHFtugOFLiwEqIcIqUk6yI9pmS0BlJpYfGAsPzD ji1k2JUpYDnK
Emu0Dlak+91wH5zndFMGlkJdo+6yHEtuONy6lJRVkvDYNfQAJArSuuMfNfAk qW28txDqVLo2
llS1KCZgMVASDWq1JFNvSEfoudb+j/D3W0TBwJou2NH9XRILK7LtdEpLYUAT qINPTBuW+j4P
uz7iMCl32lOBxx5Lba02TFqlGpBpywGvYVU9NID8+4XoThmKYkmSkA49dLl/ leSKUU6BoCRr
NHEnVs9Mdn6pR+z7o+54RL6HtY+ZXCG8K8oqlL1c1QkqDIDYAJTsBBboPSAK bIsHM28qOzAf
mz6pR+z7ofVKP2fdH6T5m3lR2Yczbyo7MB+bPqlH7Puh9Uo/Z90fpPmbeVHZ hzNvKjswH5tR
9EwCgeTPCL1oToN5NdQqhFOoR9Y5m3lR2YzRLpTsCR/7YDyw5gssBNytQ6o2 Eg1V0jt6t0SA
oelPDxiE3VVrG3d1QHyvT5IONTtTsn2z/wAlqMcA/VO/3i3/AKhjLT5N2NTt Tsn2z/yWoxwD
9U7/AHi3/qGPC9L+tL/5f5eZR9Il66SF1KZ9TCEOOicBQlailJPN26AkA04G PBuZ0yRpK7iY
0Rwzni5bki0McAFlQbiBL3KNUihUTSpApUx76SOFpE+6G1uFM4FWIpcr+jt6 hXVHMw/HHZTT
HEMdGA6ULZnEUVLmVa6KrWkjXy1KANkgADWtVSdUfR3fFLvo8y7ElOaRTunW jiccwOSwxtLk
xyZan1TBcJYXUU5NNBTXWsdtvRfRTFMOlsLROCelWWw5JtJnQ4GWgoWlFNqA pAArUdGnVHFk
dIDjenejiBguK4eGXJhRVOIbQF1YWKJtWokxmx9FUnJtMtyGNTjSm0NoBcZQ u1CTcEp2FI5Q
rWKGoK1DZqjFo78z9H+jcxKKlXpElpaVJIDpTqUHAdmz9avu3R4saJaKzXOp CXtU6lAQ+lp4
BSB+iSNQFEmsqihAFCk0oY8HtAZZckJRmeUlPMWpRSlM3LJbcKyqoUKBwkhx P9oU1ikdbRPR
hnR+bmplqZefVMtNtqCgaJsU4qoJJJ/WHaSdW0wFhTcEgADUKfaiaryp4+EL vdVC73VQCq8q
ePhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4+ELvd VC73VQCq8qeP
hCq8qeMLvdVC73VQHKxLDsNnp6Vcnm2lzDaHm5cKXQ0XS8gb6JGsbI503oTg 0w2tARMMhbXI
qLUwU3IKGkFJ1bClhsEemh3mPPTXRl/SUsNieTJsNNOJJDIcUorUmooTSlqS N9SCCKa9KU0C
al1NrRib6nxMNTDjim6lSkOOrrS6lSHSnpBVAkaqgEBc2GyyyhpPSCEhIJOs 0H7o9Kryp4+E
UrA9AJbDJuUmvKE0+7KuXtrUCVK16yqqj0lDUoigOs0FTF0u91UBNV5U8fCF V5U8fCF3uqhd
7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3uqgFV5U8fCFV5 U8fCF3uqhd7q
oBVeVPHwjFV1U9Ebd/VGV3uqjFR1p6J2/wC0BWZDC9GmHUzDE2wsy88mlZwF KHqKQhr/AA5V
VEn0kemkeeL4PgLzs8qexhxtwNSzc1dPJBQlC1KauBGqqlK2/ar6Y8F6BSji 2XHcRnLpeaZe
YsAACWnL0pUDW5WtQu1GiuO5imjc5PnFFOYm2leISTMooiU+xyalqu+3rryi tXo1btYe2K4d
hK59LmIYkUPNycwOTdmU05BdvKKKVDWkUTrOoUEcRvR3QKV5GZbnJJjkpUOt OJnkptQF38sD
/wCvpV+zXXSO3jGAP4pNoemptlbaZSYllNGWUApLth2hYIpYnZr26x6ONKfR 7Ky01zlM+6+s
yy2liYQpaVqWtS1E9MGlyyRruGalQQt+DMS0thUqxIFC5VDSQ0oOXBSaajX0 121jbqvKnj4R
rYVLqksMlpNb780phpLZedNVuEClyjvO2Nm73VQCq8qePhCq8qePhC73VQu9 1UAqvKnj4Qqv
Knj4Qu91ULvdVAKryp4+EKryp4+ELvdVC73VQCq8qePhGKLqHUNp9MZXe6qM UK1HonaYDKq8
qePhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4+ELv dVC73VQCq8qe
PhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4wu91UL vdVAcjAJORk1
4hzCbMyp2cW5MhT4cLbp1lJ1VFARQHYKDZSOvVeVPHwjl4Vh7klP4pNLfDon 5pL4SGreTo2h
ulbjXUgGurXWOpd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6q F3uqgFV5U8fC
FV5U8fCF3uqhd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3 uqgFV5U8fCFV
5U8fCF3uqhd7qoDFJVVXRG3f1RlVeVPHwjFKtauidv8AtGV3uqgFV5U8fCFV 5U8fCF3uqhd7
qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3uqgFV5U8fCFV5U 8fCF3uqhd7qo
BVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IxXdQahtHp64yu91UYrVqHRO0f5wFM f0V0OxydmpVc
w1PTDL7rqmBOBwyq1u3udDXbcsawoHZSNw6EYEHplZS9fNLcUoKfuHT5W9IS QRaeWcNKemOb
jP0eNYqpRfxR5KUPzDrCUNFNA+8HnEuFKwpYqkAUKaU9J1xlMfR+3MzUzMTO IrmVOLfLSXWC
Q0l3l7gCFhVf051gg0SB1wHQe0SwBpCJV8vcnMLCENOTRN7gllM1FdZVyQNd f9mu0Vjzl9Ct
G5ie8pMh51SHFooJpSkBQmQ8sU9B5VsVHu0jTmvo/lpppbM5PF4LsPKKlkh2 9MspgUIIASK3
hIAoqu+MHPo8ZfxBcw7iz7ksu+9gsJ6V02mZUCoHWKptoa6lK3wHawPRzBcD xZCpG9EyZYob
aXMFQDYDSVEJP/obqd/74sVV5U8fCKpovog3geNeUefOzTnNBLAuNALICWhV Sq6/1QoPRcYt
d3uqgFV5U8fCFV5U8fCF3uqhd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IV XlTx8IXe6qF3
uqgFV5U8fCMUlVVdEbd/VGV3uqjFKtauidv+0B8r0+BVjU7rpSfbJ+E1GOAf qnf7xb/1DGWn
wKsanaav6e3X4LUY4B+qd/vFv/UMeF6V9aX/AMv8vMo+kS9dI3W2UzzzqrUI nQpRpWgEu3GD
Wl2jHna/iq8bdSwJVLLTaRMlK1E1WpTdtoICUAECutW+PXHykKnSogJE6Kk7 Kc3bjKVxBtX0
gTTDruGDA0yf6I/oqcrVvXWlTWqxSv8AZNRsJ+ju+KXfb8y9pfSPBsd070aR hU2ZgsOzC3f0
K02gsLANVAemPPD/AKO8VwuRKcNx8omXZIMvlajyanOTUhRtCaFP2TrFSbia k1jeeewtzTrR
cYe5JrUHpm8MKSTTm69tI1sLlvpOw2SYZL7M8t6ULrinilZYf5MDkySsVF4u qKjpKGoBMYtG
L2iOk0jMzUzh2Isuc5nnXVNofUyrk3JltZHKWkpogLBt169UfQMKRMMYZKsT s0JmabZQh562
3lFhIClU9FTU0jZaSpLaUrXeoAAqIpU74ygIvTmEL05hEwgIvTmEL05hEwgI vTmEL05hEwgI
vTmEL05hEwgIvTmEL05hEwgOFjcpibuKyE/hq5U8g1MNOIfeUgfpCiihak1p YdWrbtEVaT0U
0wCjNvaSIanVyvNlqafcUm0OTS0/aFSU8syAo1P6M69Zr2dOpfS152QXou+G ghL6ZgKWkBRX
ahB17Sm5SxvKKemORhg+k5eFOS01zeWmESziW3qNLUpwNkNmtxBqq0mqdt3o IoFm0Rw7E8La
mWsTxVc+FuBTJW4pakJpSlT1Ad52kk929OYRSpCa0/56jnUg2qW54hJALQUW KKqoqCzr+wSA
nbcAaUMaCH/pLnMMUl7DhKTYDa2U8szaVCYqUurSqoHJBI6A11X1CA+iXpzC F6cwinYM9p4/
iiE4jLMSslzlu40bKuR5Fwq2LOsuBsHVqqqlRrFyEBF6cwhenMImEBF6cwhe nMImEBF6cwhe
nMImEBF6cwjFSk3J1jb/ALRnGKvtJ/f/ALQFR8g4mJouIRhwSMc5+j+kLqlo t2q/sfbJqabN
Z1xjjeBYtiC8acQ3hiFYhIyzLYMyugebWslZ/R7lgA6z0Bs9GlNSumbyuWkx PShOK3Jl35ht
aUsXIF5UlwkpKUrNhz0pqBiccltNJl/EXZJM6w2sXNNcu2LtTViEkL6BBD1x rrqn7Q2B1NIM
GxHFcQS8UyjTRw+alHC3NKS4eUKCih5MjVYa12XbD6eDIaE4zLTaXnsQlJtA kHJbklEBKSta
1BKQWlJoi4AVFpCRVutCOxiLelLxlUNonG3PJcwzMvtONcnzn9HyawkrB1kO UOqlRWno5GHy
n0kCdbvcQhBkltjlpgFDay4opKiLipaUFI+yaqFbiKghd9HZVzDsAw+QmHkO vS0s20taSaKK
UgEiuv0emN+9OYRz9F04kjRvDEYx/WKZVsTXTC/0oSLukAAdddcdGAi9OYQv TmETCAi9OYQv
TmETCAi9OYQvTmETCAi9OYRihSaHWNpjOMUen95gJvTmEL05hEwgIvTmEL05 hEwgIvTmEL05
hEwgIvTmEL05hEwgIvTmEL05hEwgIvTmEL05hEwgODo3h0zIzeKzE23JtKnJ wuoEs4Sgo2JJ
SUiiyKFRqqpJ10oB3b05hHHwMYknEMZE61MIlzPJVJKdcSoKa5JsG2iiQLwv UabY7MBF6cwh
enMImEBF6cwhenMImEBF6cwhenMImEBF6cwhenMImEBF6cwhenMImEBF6cwh enMImEBglSaq
1jb/ALRlenMIhO1X7/8AaMoCL05hC9OYRMICL05hC9OYRMICL05hC9OYRMIC L05hC9OYRMIC
L05hC9OYRMICL05hGK1JoNY2j/OM4xc2D94/zgPnWIaHaRGcmZrCsWlsNdW/ MLU6w8pLk0h1
8OJDhsISW0i1JovaRqBIO5NYBpdMTb7zuPAIDj/NkszjjRSlYftJoilU8o0A CFAcnXqjUn2/
pEl5yZfwhl1ZL8wFibfbW2tsvgsKaRf0bWrgQSitfSY3JmY+kN2bmC1JplmW lvpZtDKw8KP8
kogrrTUxUVSak+itAwntGtJZ5CeXxptt5tSHWXmZp0BtQlVtlKUEHVyqiu4k qINDsEYJ0a0t
TPONtY8wxIOKcWvkXnEuErnQ8dVKA8neiqaHp9QMek+fpAmkpWwyZR5paHEJ vaU2oc1XclZu
BUeWIGwJAtI9MYIc+kVE85KsyaUyy1uqE06405ZdOgpom4GglyvUaioSN4Id DRjA8ek9IRie
M4q1OhMlzcFLqzVRDNTYQEp6TazUazdrpFuvTmEVLRg6YvaRJfx5nm8omStK G1oLRdIZOoBR
USCHRUgAeitaxboCL05hC9OYRMICL05hC9OYRMICL05hC9OYRMICL05hGKVJ qrWNv+0Zxija
r9/+0B8q0+qcanbT/wDft1+C1GOAfqXf7xb/ANQxlp/d5bnbfX26/BajHAP1 Tv8AeLf+oY8L
0v60v/l/l5lH0iXtpE228J5p1CVtrnQFJUKgjm7eqNeX0ewFWnb2Br0UwwyS ZVTyXkIBKSOS
oF9KouK10BSNSKgmpp76SNIfTPsrKglc4Em1RSaGXb2Eax/hHOxfRrCJCfmJ MOY+64huWU0T
jTyQtTzpaAO20AipOvV6I+ju+KXfb8y7qcBwfBdONG14ThkvKrecmUucmml4 DCyAf8Y9pPSD
SbmmGzfk52aecqrEZRUi4zzY0FUIVabyCSAdhpWscnRvB8NktJ9EcUw93E3E 4gl1YTOTbjpQ
kyylCgUaA69Zjr4b9JUm/MyEtN4NiMu5Py0s8yEdMVe5StdnQTYOltNTqFIx aN2X0kx4zWHJ
f0acQidbllLtStQly6XahXQGtNjd266OY1pzjrWGoen9Fyw7yUreVNvJQHHV y6CKcmTqLy6A
VV+iVUCoMeuD/SfhM5Ih9+SnELLthS2Um1OshXSUCroj+yDU1CakEC/ltChQ gkbdZMBVtDMY
xzE519vGMDXIsrRyrClJIKBa3VtVUgVqo0IOu07ItdiMqeERYPe7RibRvV2j ALEZU8IWIyp4
QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRv V2jALEZU8IWI
yp4QtG9XaMLRvV2jAVLTvFNIsLdkPIGFCfQ4l/nA5EqKVdFLWsbBesE+6lR9 EcTDtM9J1SaH
p7ROYYDTS+XJlnVLcWlskWISkkXEatv2gNsdr6QNL0aINybr0guZZmC5csOl NlhSpfoNaNcs
5/8A4qemo1sK+kLDZ1tpK8MxNl5b/NlApFiXqKqm4qFRVJTWg101axAaLumG lBUSNEJhvm5S
pwIbWtLwMotwhJsrQOBKagVJFKVNI9MH0r0nfcMq/oo6pZWm2YW2402oLmuT BoUVols3GoB6
OsAGo3MD+kHC8WmZaUYwvFhMPrYRQpRYlTrBf+1fQhKBrp/gDGq19KWAGQE5 MYfi0o2psOID
3JVUkoSs0AdOxC0qI20rStDAX4IRT7KeETYjKnhFMY+kHCnZlqXGG4slTqwk FQboEFbaA4f0
n2Sp1PvbdUXIJFNqu0YCbEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9 XaMLRvV2jALE
ZU8IWIyp4QtG9XaMLRvV2jALEZU8IxUlNyeiNu7qjK0b1doxipIqnbt3ndAU VjGtJlTTJckl
BnnyGnkJklhyilFJSmooUo6KiskAgmhJFI2sbx3E2VY0qQl5hbcvIy0xKf8A ZjqipaluBaNn
SNEoNBrTdrhPaaIk3FNKw9TzgxlGGksurWhCVKbHKKUE9E/pR0TtPppUjV0i 0+GFuYglnDkz
iZcgM8lMkqc/U1JFNQIeqmhN1ioDpaQYviLWIJZwpha0Lw+aWC5IuWpfbKLK qpQVqvV6aaor
rGk2ma5pht3BHmZdcsC46ZFRUirxTyhSNVeSouwEmvRp6YseI6UhhUsmUl2J szGGPzqEomiF
FbXJ9ClNhv27RTZHGw76Qlz04mWawq1RknZgLW+pKVLQtabU1SDRQRckmlQR AXPR52Ym8Dkp
mfYDU04ylTqS3aQaZTrH7jsjfsRlTwjQ0fnU4rgUhiYRyfO5dD1gWSE3JBpU 0rt3CN+0b1do
wCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiM qeELRvV2jC0b
1dowCxGVPCMUJTQ9EbT6IytG9XaMYoSKHWdp9JgMrEZU8IWIyp4QtG9XaMLR vV2jALEZU8IW
Iyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9Xa MLRvV2jALEZU
8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMRaN6u0YCvaLz2KTs/iTWI SpbaZetZUWC3
/wCK4m0E/bFiW1XDUb+qLFYjKnhFf0bx1WMT2ISypYM80colSXiuo5V1uitQ tV+iJpr1KTri
wWjertGAWIyp4QsRlTwhaN6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertGAWI yp4QsRlTwhaN
6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertG AWIyp4QsRlTw
haN6u0YWjertGAxSlNVdEbd3UIysRlTwjFKRVW3bvO6MrRvV2jALEZU8IWIy p4QtG9XaMLRv
V2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8I WIyp4QtG9XaM
LRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IxWlIA6I2j0dcZWjertGMVp FBt2j0nfAfOp
/SnSqQnZlTOj8xijSZiYbLKZNbXIhL4QyoLIPKBaCVEpBpSuoRuTOl2OGbfb lNFn+Tl3H0KL
zLqeUKA/ZabKUVyTZrrH6QDbSvlPfSPL4bOut4hhjrjHLzLLXMni+9cy+Gum ghIRdWo6R2ER
tzH0hYQibel5eSxCaUwt9D/JFFUlrlqgArBJPIKoNutO/UGvP6UaRLSlzD9G 3QW1oWpl5l1K
nWzKrdOuwhPTogAEm4UNKxgnS3SJE85h40Wmph0rdLbzjDjbQHPQ0hJUEEfq lcpX0hB31jZn
/pBkGmkvymHzs0wlxAeKXGwqxUqqYqgFeuiQKk0BqaEkUjzR9I+FImXJJ2Sn HZxK3bGpdSDc
lM4JVI6S00UStCqGgpXWaQG5oxj2MYvpElibwR7DpMSXKqDrKweVIZUAVFIT /bWKAk9E1oRS
LfYjKnhFU0b0xk8fx9OHyMs+lnmZmS66tINaMkAJCiRqd1kgaxqqNcWu0b1d owCxGVPCFiMq
eELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0 b1dowCxGVPCM
UpTVXRG3d1RlaN6u0YxSkVVt27zugPlen1U41OhI/wDv2/8ARajHAP1Tv94t /wCoYy0+NuNT
oAJrPtj/AJLUY4B+qd/vFv8A1DHhel/Wl/8AL/LzKPpEvXSRCnUT7aHVsqVO ABxFLknm7esV
BHERysb0emGZnFHMQ0xxJ56WkEvTSzhEmtS5e5RAqWqqAKCaeikdPSczFJpE pyXOHcSbaaLt
bApbTSQVU10qddI5+M4VpjMTM+vEsQ0MQ5MyHITSS7ON1lgTrtDwCRVRFwod ZFY+ju+KXdR5
l1cLwfEcM020ZM9pJO4s2tb6WW3WGWktUl1awG0CurVStI6eHfSLohiHNCUz DSHJfnCVPS6a
NW8r0TQk3gNqNorqUmm2OByulOG4jgWM44/gM3Iyq1pl04cHr1lbCwCVLUqo oNu0x5S2kGiE
wwpSdF5CXZTehS3gqXFUJDKta0pqQKIrt1U9ELfT3Lka0wV3qKJ0ldXNK9GG nsRbnCuW8lhL
jpek1CiOTbcvAtqLeWTUbUk6wI6GG6UYRiWOHCMPnDMvoD4dKBqbU0pCVJNR rNVjZUajFLem
cFxeUWHdGZKeZd6C1mbvvoEJNVbSf0SAdf8AZ1xvYdiTGHzJmZPRxlp0lw3C ZJpeQV0rsuKQ
TTadca8K9hTlWsvoNDnPdChznuioed8/7IR/EeEPO+f9kI/iPCHCv4Ry7WVv oc57oUOc90VD
zvn/AGQj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7 IR/EeEOFfwcu
1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ87 5/2Qj+I8Ied8
/wCyEfxHhDhX8HLtZb+k+kWGYJN4ZJ4gy+6rEXlNNFCEKCTclJKriD/4g2Am ldUc4aZaMKxO
xAWtHNzNGaTLahatxpQItvuCmlA6o4elmk2EuvyDGkOBSzqnFkS6XHVKSSpS NRoKUuLf2tVb
fTSNBM9oimRSgYBhHNw2SlXPxqQlxSyQquwLUo1rtJiOHex8YTyreV1b0n0a TOSSJZwLE2/z
Zl9uXIQpwJNEpVb0vSOjWmutKGLCuSlloCVstqTuLaSP8o+YpxXR2WYbPkPD EMsLS83dPC1p
Q1BaamiTqOsUqQTtjtS30gl93kWpBlbgcU3aJjXcmtfR1HX1Q4d7Hxg5VvPw XYS7I1hKeyPw
j0oc57oqHnfP+yEfxHhDzvn/AGQj+I8InhX8I5drK30Oc90KHOe6Kh53z/sh H8R4Q875/wBk
I/iPCHCv4OXayt9DnPdChznuioed8/7IR/EeEPO+f9kI/iPCHCv4OXayt9Dn PdChznuioed8
/wCyEfxHhDzvn/ZCP4jwhwr+Dl2srfQ5z3RCgap6Z29W6Kj53z/shH8R4Q87 J9VT5IR0df8A
3j/Dd1xHCvY/ZPKtZejmlmDyuKeTXJN9mZdnCyQUtBKinkyXLrqEAuIG26p2 R543pVgWFvTj
EzIPq5E2KUG2gh2zk7gCpQACeVR9qg16qxU2tJdHQlATgSFJbnbkkvOlKHVr GupFAlS6e4VD
0kRnOaU4BLvTjD2CAOqCGn0oedUpf2AEi0VVtbCgK16N3ohw72PjByreV0xH HcHl2mZlyTdf
afw16fbdQyghTSQgqTrNakOJ6ttTHMe00wFMoxMqwqadlnmFJS6hEutAtdDP JGi6/rCEg0sJ
Na0qRyJ/SbDJScbcmcGDDzco8tspmnE2Mm3lKUFBtTqGvZTYI0xpno0GVSic ElgHZZCSgLXf
YlxVqfs3BYcKiB9u6p2xHDvY/Y5VvL6jhUy1O4bLTcuohl5tK0AFJoCNWtNR wMbNDnPdFGwj
S1ScLlk4dgzIlA2nkQl+gCaatorxja875/2Qj+I8Itwr2P2OVayt9DnPdChz nuioed8/7IR/
EeEPO+f9kI/iPCHCv4Ry7WVvoc57oUOc90VDzvn/AGQj+I8Ied8/7IR/EeEO Ffwcu1lb6HOe
6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOruiEA6+mdp3RUfO+f9 kI/iPCJOlk+j
bhCNev8A7x4RHCvY/ZPKtZW6hznuhQ5z3RUPO+f9kI/iPCHnfP8AshH8R4RP Cv4Ry7WVvoc5
7oUOc90VDzvn/ZCP4jwh53z/ALIR/EeEOFfwcu1lb6HOe6FDnPdFQ875/wBk I/iPCHnfP+yE
fxHhDhX8HLtZW+hznuhQ5z3RUPO+f9kI/iPCHnfP+yEfxHhDhX8HLtZW+hzn uhQ5z3RUPO+f
9kI/iPCHnfP+yEfxHhDhX8HLtZW+hznujm6R4szgeGmfmUPushxKFcnZVNxo D0iPTTZrjhed
8/7IR/EeEauJ4+5iUtzadwNDrNwJRzogK6iBtHUdRhwr+Dl2su7o7jmG4vO4 rKyDbrbkhNFm
ZKkoFywSCdRr/Z9NNVI7tDnV3R86wPSWWRO4h5NwFtqZDtZqrqkqJqpX9ofZ JUsimolSiNpj
q+d8/wCyG/4jwiI6K9P9E8q1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/wCyEfxH hE8K/hHLtZW+
hznuhQ5z3RUPO+f9kI/iPCHnfP8AshH8R4Q4V/By7WVvoc57oUOc90VDzvn/ AGQj+I8Ied8/
7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6 HOe6FDnPdFQ8
75/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/wCy EfxHhDhX8HLt
ZW5INVdM7erdE0Oc90VDztxBNCcIR0tf/eP8N3VDzvn/AGQj+I8IjhXsJ5Vr K30Oc90KHOe6
Kh53z/shH8R4Q875/wBkI/iPCJ4V/COXayt9DnPdChznuioed8/7IR/EeEPO +f8AZCP4jwhw
r+Dl2srfQ5z3Qoc57oqHnfP+yEfxHhDzvn/ZCP4jwhwr+Dl2srfQ5z3Qoc57 oqHnfP8AshH8
R4Q875/2Qj+I8IcK/g5drK30Oc90KHOe6Kh53z/shH8R4Q875/2Qj+I8IcK/ g5drK30Oc90Q
sGn2ztG7fFR875/2Qj+I8Iedk+vUMIRq1/8AeN2vdEcK9g5VrLCb0y0Xk5iY bxVlzD2VuPoE
xMMtluYUy6G10tKlalKH2gNWv0GNud0m0TlnHGnphtQq8p4plVLSnkw5eVEJ 1U5J0V9NDvik
q0j0XmJ6aQ7gcomY5Vxa1uzC26LDo5QtrUAB+kpdYdpFY2XMZ0dlZpxS8Hw6 XmJl1xaleUbF
qXRy8g1qPtOk02VUYcO9j4wnlW8/Ba8R0p0akFJccLik8oll11EmohoFlTou NuQVKRUgKFQB
EDSrRdK1uTLnIPoU4kAypWpYRM8hVNqTWrik0A19MGkVF7SHRmTLbLmDYW2l 0IbS3z0WU5FS
Ekp2CrQUm47RqrsiGsa0XM67iIwHC25htSw4tc2EEWzFVEg+jlkg19JA3CHD vY/Y5VvPwles
Hx/BMQxsSOFqLrq5Xly+hm1Fg5OguIFTRxJoK09NI79DnPdHzHB9IsHkcb5L C8DkW58y2tLU
1UpaAbGzYAQG/wB9Btjv+d8/7IR/EeEOFex+xyrWVvoc57oUOc90VDzvn/ZC P4jwh53z/shH
8R4RPCv4Ry7WVvoc57oUOc90VDzvn/ZCP4jwh53z/shH8R4Q4V/By7WVvoc5 7oUOc90VDzvn
/ZCP4jwh53z/ALIR/EeEOFfwcu1lb6HOe6ISDVXTO3q3RUfO+f8AZCP4jwgd LZ9IuOEIorpf
94/w3dURwr2E8q1lWdPjbjU7tNZ9sf8AJajHAP1Lv94t/wCoY1NI8QTiLz08 G7A9OoNta0/R
ND/aNvAP1Tv94t/6hj5n0ymafVuoifs/y47VUVX5mHtpAVJeddSm4tYsy9b6 SENtKIHXQRnj
jmPTmJc/kpGbkXEyLsqhRl0uKSXFIVfW8DVYNVPTtjz0kdDKZ91SVqCJ0KIQ mpNJdvYI4ekO
PyWJT2LOowjEeSn8OblKLkFBVyVqUFE6xqCzTrAj6K74pehR5l3Jht6alsC0 bVIKw5aVnklu
C1tXJsrqAKqI1a9ZP7402tAmMcbQuVn8LnUS7r6qsTXKBKnXQ6qtK/2gKRtY Bjktieleickz
LT7apIPBxcxLckF/0ZSeiKn0+iLO/oitTskpjFnWUy87MzSgGT0uWmA9QUUK Ea0VINUqVqFY
tb6mu3Ttp8K12Ka53S4+DaEYphEiJOTMkGgoqAUtRoT/AIRu+bWP5pDtK/CM hoIkNy7XlRa2
2GpMAOS5WVOMLC+UJUomqqGtKa1VNTGWjGhDuDTmHTTuOzk4uSQEdNK6Oi14 KrVZ1qLqVHrb
H+Gkdfehnw7bz82sfzSHaV+EPNrH80h2lfhF4uG5XZMLxuV2TE8+8cO2o/m1 j+aQ7Svwh5tY
/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7Jh eNyuyYc+8cO2
o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+aQ7Svwh5tY /mw/tKi8Xjcr
smF43K7Jhz7xw7b5TpfoOrF5jDzjE7hzC23LZdJfsLiujVIqK16I+zQ7RsJB 8pX6L5htt9tq
al1Pnk0re5Wq0KQoLQaW2giidVKEAVB9P0LGcEbxPEZKdVNPsLlGn20hu4VL luskEVAt2HUa
9UcMaDWvSrjeNzqBK2ltKQoawJcE/a2kML1mv65XXWvNufgni0fiqJ+hocoX UFlDnIpZCg8T
alKEoSQCkgEBNQaVBUojWY6Mh9Gc5I4orEWHGOWW6XlXvLUFLKVJuNRXYo90 dvQjRLFMImJW
cxDE0KcZLoUw0la0qSpCEjpKOo1RcSE1JUddIu9w3K7JhHW3Ix+hxaPxUfza x/NIdpX4Q82s
fzSHaV+EXi8bldkwvG5XZMW595HDtqP5tY/mkO0r8IebWP5pDtK/CLxeNyuy YXjcrsmHPvHD
tqP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8Ieb WP5pDtK/CLxe
NyuyYXjcrsmHPvHDtqP5tY/mkO0r8IlOjuPJCgVSHSFPtK/f/tF3vG5XZMQp QuTqVt3HdDn3
jh23x9jQcImpdxjHcPSpE3a22JlCkqWmtGaFJrbcogfaFa12RlPfR+pznwnM VkLloCJjlHkV
b5SwE0KeiV8mjWfSOjSLmNGcRW9fMYtKvJcxITsyPJ6wXkppyTZPKarLU0I1 EpBI21zxbRuf
xBWKqXiksheISLEpUSCjYW1LUV/rNdeUOrVSg1mK827+CeLR+KqYjoVOuTaT N4rJJU3KPo5F
1xBTyK7byQpJqBanWdWrXWprxWfo+wpmaZUzi+DtzCJXlmimbRcEBfK8sNX2 bunT7FRWkfS8
awCZxacQ9MzsuWxJzMqpvmixcHbKG4OAilg/fU6xHNXoKl3CUyT2LTDqmkXM rU2oWPGY5da9
Sq0UQlNAQQkEBWsmHNu/gcWj8WlhGimKsYXLNST2HOyyWxySw4VBad9QKGu2 sbXm1j+aQ7Sv
wi3YPLuSOFSsm/MvTbrLSULfcBucIH2jWp4k/vMbV43K7Ji3PvI4dtR/NrH8 0h2lfhDzax/N
IdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8b ldkw5944dtR/
NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH88h2lRKtHMeXS ipDUKfaVF3vG
5XZMQhQ16lbT6DEc+8cO2pHm1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYn n3jh21H82sfz
SHaV+EPNrH80h2lfhF4vG5XZMLxuV2TDn3jh21H82sfzSHaV+EPNrH80h2lf hF4vG5XZMLxu
V2TDn3jh21H82sfzSHaV+EPNrH80h2lfhF4vG5XZMLxuV2TDn3jh21H82sfz SHaV+EPNrH80
h2lfhF4vG5XZMLxuV2TDn3jh21H82sfzSHaV+Eeb+A4xLpSp+YwxpKlBCStw pBUTQAV9JPoi
+XjcrsmOZpNhzuL4YJNiZRLLD7L3KLYLg/RuJXSgUnbbStfTDn3jh21JwHRT E5R3EDLYlJTi
3ZlanrnApTSz/YJSkHUKABVSAANgjo+bWP5sP7So7mj2B+SZ2emTNKe5yvoJ 5IpsTyrrlDrN
yqvKF2rUBqjuXDcrsmIjrrsE9JblR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC 8bldkxPPvHDt
qP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8IebW P5pDtK/CLxeN
yuyYXjcrsmHPvHDtqP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDt qP5tY/mkO0r8
IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8IDRrH82H9pUXi8bl dkwvG5XZMOfe
OHbUhWjmPKCRdIdEU+0r9/8AvEebWP5pDtK/CLulQqrUdu47om8bldkw5944 dtR/NrH80h2l
fhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReL xuV2TC8bldkw
5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2l fhDzax/NIdpX
4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw 5944dtR/NrH8
0h2lfhEp0dx5BuKpDYR9pXp1Rd7xuV2TELUKDUdo9B3wnr70nDtvjcx9GbWM zMzLrxKRm3WH
nFlkPpXzZTi71gotP2lDYsHZQUjZ+qma5WZcMwyTMKcKgpYUkBfKXJCSggpq 6s0IPo9GqO9i
/wBHzuIurX5dcl7XplxnkZZSFWvvpeWhxQXVQBSAKW02649JnQR+am5iYmsd W+VOPlgLl1/o
Uuh+oBDgNRywFQRqQB1ivNufgni0firz/wBGUwECXmZ1laJhYoh58qLjoYLV 1SLirkwfT/Zr
TbHm19Fjj85zxE4y8lK1p5PnBU2lXOA8oUpqPKIFf/TSLNN6BrnGlIm8ZU6S UKS6JUocSpMs
pjUUqACaq5QJAFDXWaxgvQGYXiC3V6QPGUcKyuXTLFJVfOJmVVUFVP2SjX6F K30hzbn4HFo/
FxsF+jqawbEkqlZqV5bm5bQy48TRADaVKApU/YRU/wCVY7vm1j+aQ7Svwjd0 X0TcwbHPKb+L
OTy+aCWHKMkLPRaBJUVGutqoFB9o6zti13jcrsmJjrrseET0luVH82sfzSHa V+EPNrH80h2l
fhF4vG5XZMLxuV2TE8+8cO2o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuy Yc+8cO2o/m1j
+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+bD+0qJXo5jy0hN8 h0Rb9pX7/wDe
LveNyuyYhKhVWo7dx3RHPvHDtvjeOSSsM5SSeUlS2p1AJGypbaP+8b2Afqnf 7xb/ANQxlp8U
+Wp0n19unwWoxwD9S7/eLf8AqGPl/Tapq9W6iqf60/y5bVMU35iHrpG62wmf eeWlttE6FKUo
0AAl29cc3STTLD5mexVGD6UykuJjD222HnJujaHQtV9qakpUUqACrdo17BHV x6l85WlOfCtf
+HbiNJHA1PYmxh7TKUokWXWFJkUqTynKqDiUqDagVFNuohVK1pQGPorvil6F vzUYPj+F4zpP
ohLy2KSs9NsJeM0GXL7TzZQJJ3V9MdVjRHF5GckpnC8TYlVMzE2t0cqpSXG3 ZttaEkFJrayl
SaaqGgBprjxaEqNK9EFsMtMOuKfLqEhAUDzZWpVuqoP+EeGGTn0kSjcmkyD8 3yyZVEyqdS0S
y4VETCkhtSegElBTt1pUPSIxaNg4H9ILkihC9KWGHkoI/RuhVVFIBJUWhXXU jUKA010rG/hU
jpyjHEzGIYphqpETi1qZbeUaslJAGtA6QIBpWms9VOdiU/8ASQ/JgtYQ3KuT DCKpaKVqYXc9
UVLgFaBolWsCuw+j6JARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZP GJhARejMnjC9
GZPGJhARejMnjC9GZPGJhAVTTjBcXxlkJwjGPJyhJTbJIXS5xwJDdeiaAEGp HSHojlt4Dpm3
MOJTjUuph6f5dZ56pJbYof0SUckRrNKmo2n0646unPnFybHkTnVnJTF3NeT5 Tl6Dkbr9XJ1v
u67fRWOK9iH0ktTs68jCmHAAhtpsIBbqC/0geUBN1GKqNLQo9FVpgMWcI0+k 5KSw9nF5ZQQt
I5ZL+ptCWQBdVuqheKhIAJG1Q1mPdOGaesYe+7NY81NPpSooal1hPKErb1Cq Oj0A4BttK/7V
BHpMTn0hDGGFeTZZyTRPLCuTon+jlbiRUFZuUEpbVUW/bOo0tPR0SndMZyYZ 8vSErJsBpRct
aotS6IoBRxVoBLg9NQkHVWkBy9HcM09W/JP4xjrTcuUsKfYStPKijfTQSEUJ LmskEVB9FBF8
C0508YyhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnj GKlpqnpDbv6o
zjFX2k/v/wBoCiS+i+NommH1zsspTU8h6iplSkLSFHlHFJKPtqSaBIICSkGp FRGGPaM6UYn5
YVK4zKYY5PMLQlSHnHakpbCUGgQUBJQsBSamjhNAY3Zd3ScupeLOKIbVjQHI rDJKZW0pJJB1
oJ6WrpCoGuhjWxl/TFUxiS5OWxNLTqQmXSjkatE8kEKAJ12/pisHbRIG2sB0 McwnGcQnG1pd
lGm/J01KOrbnFoWpS7OTUE2ED7Kq1NRdqrFfltE9L5Z4P+UMLnLZBcumXfmX EshSlqUkUCCb
UBQSD6QkagdYsWOuaROTjaMOTPMtnDppC3C22UB8WckulSami6ejWKiOFhx+ kszrQW02lCpJ
aQH3UWocLirFLUE1UoItqAkAqHoBNAvWCMGRwaTk3XStxhhDalKe5QkgAVKi Bd++grujcvRm
Txjn6L+Ujo3hvllNuJc1b52Lgf0tou1gAba7BSOjARejMnjC9GZPGJhARejM njC9GZPGJhAR
ejMnjC9GZPGJhARejMnjGKFJ19IbT6YzjFGw/vMBN6MyeML0Zk8YmEBF6Mye ML0Zk8YmEBF6
MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBwd GsNmsNmsVU+6
0piZnVPsfpL3AFGpuNB6TqGugoKn0d29GZPGOPga8SOI4yieRMBhM8nmSnbK Frkm62266X8p
t1x2YCL0Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YXoz J4xMICL0Zk8Y
XozJ4xMICL0Zk8YXozJ4xMIDBKk1V0ht39UZXozJ4xCdqv3/AO0ZQEXozJ4w vRmTxiYQEXoz
J4wvRmTxiYQEXozJ4wvRmTxiYQEXozJ4wvRmTxiYQEXozJ4wvRmTxiYQEXoz J4xitSaDpDaP
T1xnGK9g/eP84D51P6MaZCdmZrB8YkZB1b8wouc5WszDbj4WgKSUWoLaAUil 20jUI3JnCdO5
ibfcVjkoy2lx/mwZmSOisP8AJlQ5KlU3simsdAmu/UxCZ+kaUnZl7C5Rc2OX mEqbneT5EIL4
5BTVlFGjV1wJ3emNyZxT6QHJt/m+EMMNMuPpbvbCw9QP8kdTlQnosV1A1UdW 4POfwLTKdSku
Y3LMvtLQ6y4zMKohQlVtlNpbNRyqrqkklJ2AgRijA9OUTrjTGOSMvh7i3VqL b6i6CudDpICm
yB+hvRt2qG4GPSfnNP5hKVyuHtSrzSkOJbU0FIWnmqypK1BwV/TEJoKUoDVQ rGCcQ+kNueck
mcJa5JS3VJmn0pWEXToCRRLgJSJcrNNRqlO+kBv6MYVpNL6RJxDHsTlZptMl yADTx+2QzU2W
ADpIcNamtw1DZFvvRmTxipaMTOmE3pEleOSSZOSTI60NhNnLEMnbeSog8qNg AptO2LdARejM
njC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjGKVJqrpDbv6oz jFO1X7/9oD5V
p9acanSSCOft0+E1GOAfqnf7xb/1DGWn4Bxudr6J9v8A0WoxwD9U7/eLf+oY 8L0r606j8v8A
LzKPpEvXSNpp9M+y82hxtc6ErQpNQoGXbqCI4WleC6E4LPT8q3ongj62JeVd QigCkh18tKUo
FQFqdSq1HWRtju6SNpeRPtKK0pXOBJKFlKhWXb2EUIPWI0cX0ekpB/EWVYxp avmUmibUo4++
lK0FSgRUr1EWE64+ju+KXfR5lu4Fgej2GaTaI4jgmDykiqeS8pxSGLFKSZZS gCDUjX6KxvNa
cY6zJqU5o6jEX27gsy6VNNKKUOrJQqi7hRsAagblUNCKRo4DgbeGaW6KThmc bcdm+WKmcRxB
2YLB5upRAClEBXoJEdPR/wCk3DcRk0uTOHTjMysKKZZhXLLIDHLjo9FVVIup 0aG00JBBOLRs
DTXEjNuSfmovl0PFi3llUKuWDV9eT/Va637dR6Ppi2YHNHEcHk592UMq5MMo cUyrWWyRUpOo
bNmwRV5z6RMGkxNOzDEyiWl2lO8qHW1cqkNsOVbouiujMJ9NTQ0Bju4Bj0jj M5Pysq3NIXJO
FCy6m0Lo443cmhNRc0sa6bOuA7FiMqeELEZU8IWjeriYWjeriYBYjKnhCxGV PCFo3q4mFo3q
4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxG VPCFo3q4mFo3
q4mAqmmmM4xhM/hDeF4e1My8w8rnq1MKXyTYcbTWqVCmpajWitmylSOI9pjp BOrkTh2Acgh1
1SHwsKWUgGWOo2CigHXElJFLkHWaRadJMbGBqknH5ZRk3nSh+ZK1WsawEghK SSVE0FaCuokE
ivImNPsNlJ1CJ+RnpWVckWZxD67SEhwvalUUaUQyV1FdVa0OohsaI6Vv47My jMxgK8P5xJqm
ek6HCghwpsICdRpQ66bSKVBi12Iyp4RSpD6R8AxF9DMgziLhVyFy1sKShsuO hq1StdFBdySD
sUhQrqjJH0iYO5g5xJqRxQp5q7MpbWhKFKDbKXrQSulym1BQTWtK1pQ0C6WI yp4QsRlTwimr
+kDCEuuJ5riNEOOM9JFt7iHm2SEEm0i9yhNwpTdrj2wfTrB8WmGGZGWxNwvv MstrLNqCpxlT
32iadFCDd6Rq21EBbLEZU8IWIyp4RASN6uJibRvVxMAsRlTwhYjKnhC0b1cT C0b1cTALEZU8
IWIyp4QtG9XEwtG9XEwCxGVPCMVITcnop27uqMrRvVxMYqSLk6zt39UBTWNJ Z5x1CwZJcsrG
hIpPNVpWWrTUkXG03jUo6iPQKiPHFdKcUYcxdyUl5VUvKslxhS5VZOrkrbuk Lr73KUApyeus
bsjpYqafZR5OtDs22yDzg6kOBy1RFv2qtmqPRUazsjX0h04ThL062nC3ZrkF WMhp1RU6RyN3
RCSRqeSRS4kJVqFIDc0hx6alsQTL4WJN0Lw+aeSHWlCjzRRaCqoFpqvVqrbt EV2W02x4PDn2
FolJUSC3y9zJS1FYWoIIQHNSVJCSNZAKqFUWif0iWxzcyuHqnRMYa9OtBl4q UpTfJ/owADWv
KDWK7Nhjhyv0kSrr4bdwuYQjmzjinAtdC6lxSOTFUjbbUFVptNxAAJAXPBHH pnB5OYnES/OX
WELd5HW3cQCba66V2RuWIyp4Rz9G8QbxnR/D8XbSUInZZuYCQ5dbekKpX00r tjoWjeriYBYj
KnhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWj eriYWjeriYBY
jKnhGKEp19FO0+iMrRvVxMYoSKHWdp9MBlYjKnhCxGVPCFo3q4mFo3q4mAWI yp4QsRlTwhaN
6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxGVPCFo3q4mFo3q4mAW Iyp4QsRlTwha
N6uJhaN6uJgFiMqeELEZU8IWjeriY52kM+rCpBE2ljlwZhllSS6U0DjiW7hq NaXVp6d4gOdo
vik/iM/iTM7LNNtyz1rakMqRT9I6mw1JuNqELqKD9INUWKxGVPCODo5pDK45 P4vKy7a0eTZs
S5UpetzoglVv9kVuA3gV9Md60b1cTALEZU8IWIyp4QtG9XEwtG9XEwCxGVPC FiMqeELRvVxM
LRvVxMAsRlTwhYjKnhC0b1cTC0b1cTALEZU8IWIyp4QtG9XEwtG9XEwCxGVP CFiMqeELRvVx
MLRvVxMAsRlTwhYjKnhC0b1cTC0b1cTAYpSmquiNu7qjKxGVPCMUpFVazt39 UZWjeriYBYjK
nhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWje riYWjeriYBYj
KnhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeEYrSmg6Kd o9HXGVo3q4mM
VpFBrO0enrgPnc/ptjuHzszXBGsTZRMTDRaYZUwqXsfDbRccUVJIWglVaJ2b jUbczpxOCamG
pXRwrRLLfQ4p50thSkB+0JUUW9LkUmpNAHBr35Tn0gy2HTvJYjhkxyTr0yzK mUcL7rqmHwyo
Fu0W1JqKFVQD6aA7j+nOFJnVysvJ4lNuNF4OhhAKklrlgRaVAqJLCwAASdW+ A0J/TLFClLmH
aPhfJrQpbLilpcdbVKreJA5Poi4BAJqSoEECPNGnGJInnMP83HJmZvdLZN7S ac9DCATYf/DV
fcK1CFahG/iGneHsMImpeSnJqVS8lt51pSCBWWVMdGiulRASSdnS1E0pGCfp AwlLrsu7LzSp
lK3QlpgpWVBM2mWTtULSVLQddBQnWaGA9dGNJp7G9IhKLwcyMoJLllBwKLnK EMqANUgAUcWN
pJtOylIt9iMqeEVjR/S2SxzG25GQl5gsKlDMh9wgA/qjaE1rsdFSabNVYs9o 3q4mAWIyp4Qs
RlTwhaN6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxGVPCFo3q4mF o3q4mAWIyp4R
ilKaq6Kdu7qjK0b1cTGKUiqtZ27+qA+V6fJBxqdGyk+2f+U1GOAfqXf7xb/1 DGWnya41O6yK
T7f+k1GOAfqnf7xb/wBQx4Xpf1pf/L/LzKPpEvXSRK1on0NOlpZnAErABKTz dvXQ6o5ON4XP
Sk7PzOK6YNh9iVaVMuuYMwolouHkxdyXSF6dgrQ69UdbSTlbJ/kAgu88FgVs rzdulY4+kMvp
JNTM+7io0dbUZZlEyhc6pKW20u3tqKSrVVYOs7dY1x9Hd8Uu+jzLs4PLYwjT LRacxLSF3FmZ
gvqlwqWbZsrLqNxAQDrHoOyOlg+kn0f4lJKfEhJSzLeoctJtbFovJATdqKal R9FFXUKVAcnR
1GOs6U6JS2JS+GsyTCXUSXNFqXcBLKAqoqOq30+mLGxLaBYzLycow5h77aZN HNktzKknkKrb
SAQQSkkuIp6ekDWMWjoSExotjcw/JMS8rMuthSXW3JEigbcLWu5I1BbRA9Bs 1VpHdl5VmXry
DTTVRQ2NhNdZPo6yT/iY5mGsYJh85MOyRl23pkjlFcsSFlTjiwBU0qVrdNB6 SY7HT3DjATRW
buhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3 DjATRWbuhRWb
uiOluHGHS3DjATRWbuhRWbuiOluHGHT3DjAcTSKblJOawxUzhDuIPOzCmpZb bbRLLhBO1akk
VCTrG791dFrGNCm5RCG3cObllS5eQBLWoLRv1jo0of0pA/tC8iuuOpjczhcu uSOJlPKB8uSq
AlSl3gEFQSkEmgUamlBXXHPmdH9FHEID7EpYwyJJIM0oJQlIKUppd9oBagFf aFx164DxGPaI
nEZtLyGWZuQWkHlZIhz9IG3eiLbq1dQSKVCjUjYYyVjmg4XqnMJcWAlhIbaS tRDhLYQAASQo
otoNtB1R6zeCaLOhT0xyF6rSXzOrDhJS2EqvuuqQy3rrU29ZrKtB9FyXyMFl 2y+2WnOTWtFy
DZVOojUeTRq6us1Dwk3NFcddm8KYlmA44uYZmUtpDayWXEoWCpBCtoQf3W1p UV70nhOHSakK
lZKWZUhKUJUhlIUAlNqRXbqSSB1GNbDdHcIw3EncRkZBpiZdU4pxaVq6SnFB SzStKkgVO3UB
sAjq9LcOMBNFZu6FFZu6I6W4cYdLcOMBNFZu6FFZu6I6W4cYdLcOMBNFZu6F FZu6I6W4cYdL
cOMBNFZu6MVA3J6Xp3dUT0tw4xCrqp1Dbv6oDUVhGGrIvkJRVH+cCrCT+l/a bPte9tiFYPhi
kONqw+TKHUpS4ky6aLCfsg6tYHo3R4rx/CkLCFzrSVc4MtQ3VDgpUHVq+0nX s6Q16xETmkGF
yi5pt+aAXKAKfSlC1lA1a6JBrS5NabKitKiA93MHwxxzlHMPk1rtUi5Uukm1 X2hWmw+nfHoz
h0my8h5mVl23G2gyhaWkhSUDYgGmpPVsjXexvDWUoU7NtISuWVNpJrQtJpVW z0XJ69YjXVpT
gaU3HEWf1PLUoom2pGyla1BFu3UdUB2Gmg02ltu1CEgBKUpAAA9AEZUVm7o8 2HeWZQ8gdBaQ
pNQUmh6iKj/GM+luHGAmis3dCis3dEdLcOMOluHGAmis3dCis3dEdLcOMOlu HGAmis3dCis3
dEdLcOMOluHGAmis3dGKArX0vSfRE9PcOMQi7XqG3fAZUVm7oUVm7ojpbhxh 0tw4wE0Vm7oU
Vm7ojpbhxh0tw4wE0Vm7oUVm7ojpbhxh0tw4wE0Vm7oUVm7ojpbhxh0tw4wE 0Vm7oUVm7ojp
bhxh0tw4wE0Vm7o8J6Slp5jkJ2XYmWqhVjzQWmo2Gh9Me3S3DjDpbhxgNDDp yXm5qfaZaW27
KTIYfuQBcrk0LBBB1i1aY6FFZu6ORgqcMM1iL+GqUtx6arNLLjikqdSAg0u1 aggJNuoW09Ed
bpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3 RHS3DjDpbhxg
JorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3Dj Dp7hxgISFVV0
vTu6oyorN3Rim6qtQ27+qJ6W4cYCaKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0 R0tw4w6W4cYC
aKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0R0tw4w 6W4cYCaKzd0Y
rCqDpekejrieluHGIXdTYNo9PXAUuZ0h0Nl5idbxSTl5Fp9x0OPzMq3yc2pl 0NrNRUkpWR9s
A66jUCY2p7FdCZZTrUz5OotTq36Sd6aoDgcUshJAoEOiqttFCPA4doNiGIzT Cww5NIeccVfM
upLa+VBcLRJAT+kpdZTXQGNteAaJy004paWGJiaccWSZ5aVqUQ5fb0qj7bpI GoVJ9EB54jjW
iWHPpdmGWEqKkS7rokv1QLK3EpWbdVEA9HaAoVABgMa0PS6ubmESku+2pxIW 5KC9QRM8kSkg
G79KU0A11Wk0qYl3CNDpMMyziZVpD9rbbXOl2E8gtsG2tAS0FJu9IG3UIxls B0LcnnMTZYlQ
+2paXFmZWmhTMXqqkmmp5Fa02pHogNvBsU0dmce5phKZdc0uV5ZT7DACS2A3 am+mvUtFAK0F
NmqLFRWbuivYLhmjeGY2GcMbYanzK6m0PLVayOTSaJJITsb17TQbYsHS3DjA TRWbuhRWbuiO
luHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuj FIVVXS9O7qie
luHGIF1Vaht39UB8r0+STjU70tk+3X4TUY4B+pd/vFv/AFDE6fXHGpzWB/T2 6/CaiMA/VO/3
i3/qGPC9L+tL/wCX+XmUfSJeuki1ton1oaU6tM4CEJIBUebt6teqOZjU3pBi U9NzCtD8UQl+
WaZCKoq2pt0uJWFJWDUEndsH7j09JHUson3lhakonAohCSpRpLt7ANZivY7p LhuI4xOzYk5n
kltsoaBw+ZSXglxta0PDkjUGy0GpoNVNZj6O74pd9HmXb0ZmZwaSaH4U9gM/ hjGHodaZXNup
Wp0JllJA1emgqTHXa+jLRpDTTMniGKS4tQByUy2b0pGoa0nVcFLoNVylH0xy NF8cksS0j0Pw
+WViDzsgh1Lz0xJuNBZEspNQVgVJPo2xs4b9Fb2HoYErpNNNlmW5shSGVIUl soc6IKVAgco6
4sekVAr0QYxaO+99H+COIlEJcnmhKyzUskIU300I5TbVP2jyiqqFDsoRrrbm 3kuIC2+mgioU
kgg98U9eieK8/dmGdJJptszbT7bZS4qiErUqxVV0ItUEagNSQTU6405bQfG2 HkBrS2YalkNt
NJaaYWkWAWr/ALdKqSXKEfZUUq120IX+45Fd0LjkV3RAUAKUVwMTcNyuyYBc ciu6FxyK7oXD
crsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyY Bcciu6FxyK7o
XDcrsmFw3K7JgOFpFgjGKuMPqn53Dpllp5lD8q4hK+TctvT0gRtSg1GsFIod /IH0f6PzKlTC
3JqZQ6suouU0pIBVfqonXrJ6Rqog0JOqnQ0n0eXjOJYXPtzvN14cta0tqZK0 OlS0GixUVAs2
b7T/AGdfDk9BcXlJQSzGlMyhKGWG2rWnAByYaGtN9tP0atQA/WKrU0MBsM/R rgrPKpYm8TQh
1TCnEFTKwsMpCUpNyD0eikkbNW4kRd7jkV3RxdFcJnMI8o89xaYxIzU45MNl 1J/RJUahA26g
KDVQatgjtXjr7JgJuORXdC45Fd0LhuV2TC4bldkwC45Fd0LjkV3QuG5XZMLh uV2TALjkV3Qu
ORXdC4bldkwuG5XZMAuORXdC45Fd0LhuV2TC4bldkwC45Fd0YqJqnonb1boy uG5XZMYqULk6
jt3HdAVZ7RnCnp12ZdxObUt6cU4pJcZoSrkypkUT9klls5tW3WYmY0ZwpT84 7N4lNrLqRy4W
60kAKLV4NEigc5FAVX0VpSscp36Py6tCzinJqRMtuBbcuQS2ly81qSC4ogAr 20Ap6azjmgs1
is4/OOYs20646Hf0cstIWqjQIXRdSkckCkVFLjtgO9i2CSs/OpmJvEZk2ysw yGTyJbLTttxI
KKkC1NNfo11jjSmhOjMrMpeZnnlOmTW0eUcZcC0LUpa1kKSagqUVU+zXXSN7 FNGpvEXmFTM9
LuIbw6YkXCZVSVuB2yiioK1UsFQBQ1NKRzvMFKsKVKP4gh54Sbku28ZW0oU6 6pbpBSQQCCEJ
AoUAGh1wFxwiWakcKlJKXU68ywyhtDjiwtSkpAAJV6T1xt3HIrujnaNSBwjR +QwtbxfVKMIZ
LvJ232ilaDZHRuG5XZMAuORXdC45Fd0LhuV2TC4bldkwC45Fd0LjkV3QuG5X ZMLhuV2TALjk
V3QuORXdC4bldkwuG5XZMAuORXdGKCaHonad0ZXDcrsmMUKFDqO0+gwGVxyK 7oXHIruhcNyu
yYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyYBcciu6FxyK7oXDcrsmFw3K7JgFx yK7oXHIruhcN
yuyYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyYBcciu6MVuBCSpQtA9JIH+8ZXD crsmOFpvgA0m
wbyb5RmpEcoly5pCVBRTsCgpJqAaGmrWBAY6M4BhuBzGIuYc46szcyp15ClI ohRWtZFEga6u
HWqppQVoBHfuORXdFf0awFWDzuITKpoPc7cqkJaKKDlXXKq1m5X6UiurUlOq LBcNyuyYBcci
u6FxyK7oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3 K7JhcNyuyYBc
ciu6FxyK7oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6F w3K7JhcNyuyY
DFJNVdE7erdGVxyK7oxSoVVqO3cd0ZXDcrsmAXHIruhcciu6Fw3K7JhcNyuy YBcciu6FxyK7
oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3K7JhcNy uyYBcciu6Fxy
K7oXDcrsmFw3K7JgFxyK7oxWTQdE7Ru3xlcNyuyYxWoUGo7R6DvgKTimgOA4 y483NYhiD9j7
zqGkutUl1POhxwABOsKUBqXdQDVSPZf0fYS49NuuTWIuGZW8ohZaUlAd5a5I BRsq+s66nZrp
t52J/R/PTUy9MSmkCsOcU/MOJclJZTbi0vPh1SXFhVVUtokilKn90bEzoZi8 1NzD8xpM+urj
5lwlDqCylwP+kL+0nlkgGgFGxq3BtTGguDONGXm5ueeQ+pPReW0pS3EyxYuu KbiqzpUrSqag
DXHkfo/wSYxAzqp3EX0BSwWFOtqaqZpMyoUt/aNpB17BTbrjynNCcQnW7ZvS J9awULbeSh1C
21plVM9GjlEi5XKagDrIJIMYHQfFjPrUNKJhEi4XCuXaacbJK5xMwo3JWNdo U3Xcs/ugOvo1
onheAYsJqUmZtx4yvIJbeW2egA0kq1JCj+rRtJAqaAViz3HIruipaL6Lz2FY 8MUnsacxFQk+
bDlG13bGqqqVkDW0TQAfa1kkVi23DcrsmAXHIruhcciu6Fw3K7JhcNyuyYBc ciu6FxyK7oXD
crsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIrujFJNVdE7erdGVw3K7Jj FKhVWo7dx3QF
GxzC5Cbx/EjN4Pz11akqbUAklJ5NAoakU2Vr1mOVISKsOcdk1hKVInWCUp2J qQqg6hWkW/bp
FNkZk/8ASI4GKf17O/8AHS3+SY2tW6Kdaoj2zDCqmIqidHM0jdaYTPPPuIaa ROhS1rVRKQJd
upJ9EczSDTfB3pzGzh+k0k2nyapuTU3jUuEvzBAKVJBdBbKSKbADVVSdUdbH Ptzn/HD/APrt
xGkLnNcRxRuUwh5TMtKoKOTwZTlzylICQ2QghYAJv221r/ZVRd8Ur0eZe0pp JgWOaaaKt4Zj
EhOvNqmFvNsTTbqmwZdQ6VpPp1V2R64VhP0iSclISfl6XK0oc53NLUHlOKLa A3qX9kJIUDb9
ogKOtRp7CXTLaUaIqbYYZfdL/Lck2WwpXNlnYRWlfQdYjWanvpBDLS0szbri UNqmUuS7aLX+
SmOUbRQC5oLDFFa61+0ddMWjpSsnp6cQlZl/FpRppTiHZqXbKFJ1rZK2gSit qUcukEUJNpO2
LtenMnjFFe0g0+AFmjMsg83mDRV6rnm0kJAtJASpxNRcRVChrCqiLyzygaSH lJU4ALilNoJ9
JAqaD/EwGV6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeM L0Zk8YmEBF6M
yeML0Zk8YmEBWdKZHGpvEsKmcKnQ3LSy1mbY5dTfOAVtkJqNlLVGv/t2KMc2 Va+kEyylzU/K
pebYdSlttbVHXOTl0oUSWzQXiZVT3kg6tQ2vpAmNLZZlp7RZnnBbl5lbzNiS XF9FLYSVbFAq
UoDYbCDtjUZ0g02LqWXdHWkqcnHWUkNuFLaA40ELWTQa0KdVVJINoGo1EBqK a+kxmSD5xaUd
mVNsN8iENlCXClhC16kA0uMw5t2BAFBURc8BbnJeSW3iMwl57nL6kruB/Rqd WWx6NYQUj/CK
bM4np9NzOHvN4S7JNLVLrfYTabQX1hxKia6+TSkmmy6LVoZPYxiOj8vNY9It yOILryrDYWAj
Xs6Wv/HWDtBpAdi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi 9GZPGF6MyeMT
CAi9GZPGMVKTVPSG3f1RnGKtqf3/AO0BQ2MH0lRNMpdmHVsmeQ666nEV3BKV FSlJSTS1fRSU
HUAlVBU1DGsH0nnVYu4zMusGaZIYSifUAhZDVlKEBFhS5Uj7V9doj3k53StL 7BmkzthxFtDo
EqkgIIcC06k15IfoyF7a11mPHGZ3S9yYxJzDzPMspSFsI5ompA5IoQglCuku rwUVBVtE7PSH
Rx2SxudnGyw45LN+TpqWcWzOkfpFWcmsJqBXoq16iLtsV+XwLTeWeD7k83Op TILaEsZ91CL1
LUpOu64lIKU1JJIT9oHXFix2cxwzrbeG88YSrDpoKK5W9CJhJRyaiQgkn9ZQ CoOrUdUc6QXp
i7LJmJ2an5UtSLiltpZaWHHFOKDOxorvCAFLoKVUKJGsQFuwNpcrg0nLPvuO utMIQtbzgWtR
AAJUr0neY3L0Zk8Y0dHVzzmAYe5iaVJnlSzZmQoAEOWi6oGoa67I34CL0Zk8 YXozJ4xMICL0
Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YxQpOvpDafTGcYo9P7zATejMnjC 9GZPGJhARejM
njC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejM njHH0uZnZrCU
t4Yo85TMsOC2YLXRS6lSwSNoKQoU2GuuOzHH0ufn5bCkPYbzgviZYqGGeUUp sup5QEUOqy7W
Ne6A0dFsOxaRxfGX8Qn1Pyky+FSra3StSem4onWogCikJAFBRA1VrFlvRmTx ivaMPY47P4kn
FQ7yKXqMFxtKaHlXBRFALkcmGTU1NVK1+gWKAi9GZPGF6MyeMTCAi9GZPGF6 MyeMTCAi9GZP
GF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAwSpFV dIbd/VGV6Mye
ME7Vfv8A9omAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9G ZPGF6MyeMTCA
i9GZPGF6MyeMTCAi9GZPGMVrTQdIbR6euM4xXsH7x/nAfOZ/BdOm52ZmcGxU Sq1PzBUp6aMw
l1tb4U1Y2voNlDYKfRWtNxjcmpXT9+bmFjE2Zdptx8S4aU0q5Kg/yalJUnXb cwKV2pNTtrqz
+K6fSc7Mu4fJOz6BMTCHGpqXCWmUcuAwpstpC3AW7iql1NR1bDuTOPaarm5g S+CtsMsOPoCn
ZZxYdoH+SItN1psZJISftkUgMJ/DtOZxKT5WRLPtLQ6yppxotpIlVpUkgt1U S8qprUW0oARG
CMP+kBudcl5fFJeXkXFur5QLQtaSudDlQFoNKMFxNDUVKaAUrHpP4vpu8lK5 LDBLutLQ4GHJ
VRDiDKrWoKUF0rytEWg1BAJJBjBGN6ctzrki3ghWFLdUiYfYJQgGdCUCqVCo DClKpqPQGs1g
N/RiT0rTpEmd0gnmnmESXJBLTiQjlCGSSEhIP2kuayTtFKDVFvvRmTxipaMY lpTP6RJ8r4eZ
GTTJVLYaIHKkMn7ZJuNS6KClKa6xboCL0Zk8YXozJ4xMICL0Zk8YXozJ4xMI CL0Zk8YXozJ4
xMICL0Zk8YxSpNVdIbd/VGcYp2q/f/tAV+oOkU2Qa9JP/SI4GKf17O/8dLf5 JiwH/wCo5v8A
9Sf+kRX8U/r2d/46W/yTHTb+bPuY1+Y97maSNNvon2HkJW25OBKkqFQQZduo jh45ozoZIz+K
ysto3hUycPkucLHLBKkqJTahQI1FQJIoTSgr9oR3NJG+VRPtXrbvnAm5Boof 0dvWDvjkaQYV
JYRMToxLSPSUJYlecLdEyFBwXJSlH263FRASFAA0NDqMUu+KVrfmXVwDR7AM J0r0Tn8GwyXk
1TweLhQnWUmXUoCpAO390dOZ+kNpOjbEyzKNv4k/h3LpbaVclL3JrUpsga+i Uio2i9O+Odgm
Fcy0u0VnRjOJYi3N8spsTb5WGwZdSqjWRWmqOvL/AEnYE6h12j3ItTjkqVJW lZURZyakgbQv
lE02U112Ri0YOfSPJoUUeTFhaZcPrQtwoU1+lQhSVpKa3ALrai8kpUkAka79 anKIrDunOjza
JlS5h9PNVtpfSpspUjlE3p1KoT0BdQVIHojWe+kDBrGebNzjzjsw00EKbstQ txpHKkn+yC8j
rNf8YC42JyiFicojgaM6V4VpE6lGGGbWCwmYvWyUJCFKISanfaSOoR37feVA LE5RCxOUQt95
ULfeVALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVA VjS7F8Yw2ew2
XwjDEToe5VyZBTUpbbUitDcKGilEalEkAU1kjgzH0jKKJRcvgxUFErdCHeU5 RAQtRDNAOUIt
AVstJA11jvaY6XSeizkkmcl5h1E0l9QU2R0S2AQk19K1KSgdahGpI/SHgEw3 L3GaQ86htam0
oCw2FjaVJ1UBqD6apOrZAeMhpsuYxaVYXhzaZaaLTSHEO3JC1OzDZUkgVcSe RQQQkalVJAjb
+jrSh7SeRbdmcPVJuiRYedQtBSQ4tTiVCh2fqwQNygamsYD6QMDU2042J1aX B0EBhXKKJ5G2
iabCH0GpI/zpKvpD0aC0pS/NrDhAaKGCeVrcTaNpoEqrqr0dVdVQt9icohYn KI0sGxBjFpBE
7Kh8MrUoILibSoA0qBu1Ru2+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+ 8qAWJyiFicoh
b7yoW+8qAWJyiMVJTcnUNv8AtGVvvKjFSeknpHb/ALQGVicohYnKIpbv0g4c w5LtTLDjTk1N
sssJLqekh1ywOEmlCDtTrOsb9WeOacy+F4g7Jrkn3FctyLCklSgtSQ2V3BKV KSAHU0ICq0Or
VrC42JyiFicojgYnpEJQs8jKuTiHsPenWiwu4r5OzogUqa8oKHujmyumTs2y l+XkZbkOaPzD
zjs4UBnklqQoq/R6kFSVUVtIBNuowFxsTlELE5RGpg0w/O4VKzkzLLlHnmkr WwpdxbJFbSaD
/IRt2+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+ 8qAWJyiMUJSQ
dQ2mMrfeVGKE7ekdpgMrE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RC xOUQt95ULfeV
ALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RHD00xbyLhbUw09KNPuz CGWkzIohxRr0
brgE6gTca0odRNBHct95ULfeVAVjRHHZrGMTxqVmpRtlEhNllkpB6aQtaak1 OvoVobTr2WlK
lW
Re: Grid - Double Click on RowHeader [message #55171 is a reply to message #55143] Thu, 26 June 2008 13:29 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
reordering problem?

Tom

Tom Schindl schrieb:
> Hi Peter,
>
> I'll revisit the viewer bugs and problems in the following days making.
> You can be sure that all navigation, editing bugs are fixed because I'm
> just using Grid&GridViewer in base library I'm developing for a customer.
>
> The new features Grid is getting next week are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>
> As said beside those 2 features I'm planing to fix all Viewer Bugs and
> other things once I got the write access to the CVS-repository.
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello.
>>
>> Thanks I'll file a bug.
>>
>> Since it's just one point where I use this, it's not that bad. I
>> thought of using reflection, but for a quick try i made the an
>> get-accessor.
>>
>> What kind of changes will there be? What I encountered when switching
>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again.
>> As long as I don't re-arrange the colum everything is fine. But e.g
>> when I swap column 1 & cloumn 2 and then I do the tabulator-traversal
>> it first jumps the column index 1 then back to column index 0 and then
>> goes on with index 3 and so on.
>>
>> I already use your patch you provided me a few weeks ago. Under 3.3 it
>> works but under 3.4 it's broken again.
>>
>> Who do I have to ask question regarding the CDateTime control? Because
>> I have problems to adjust the org.eclipse.ui.forms look & feel. I
>> can't get it as "flat" as the other "formtoolkit-controls"?
>>
>> Thanks
>>
>> Peter
>>
>>
>> Tom Schindl schrieb:
>>> By the way there are going to be some changes in Grid in the next
>>> weeks so maintain your patch might be quite cumbersome. Did you
>>> thought about using Reflection instead of patching?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> File a bug [1] (and CC me).
>>>>
>>>> Tom
>>>>
>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello Tom.
>>>>>
>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>> the rowheader width i patched the grid, and made a public
>>>>> get-accessor to the rowheaderwidth property?
>>>>>
>>>>> How can I request this as public API?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Peter
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello there.
>>>>>>>
>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>
>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>> activting inline editing or resizing the column width).
>>>>>>>
>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>> the row header, columnheader or a cell?
>>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>
>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>
>>>>>> public void mouseDown(MouseEvent e) {
>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>> System.out.println("header click");
>>>>>> }
>>>>>> }
>>>>>> });
>>>>>>
>>>>>> For RowHeader there's no API to get its width but you could
>>>>>> request one.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>
>>>>
>>>
>>>
>
>
>
> ------------------------------------------------------------ ------------
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55250 is a reply to message #55143] Fri, 27 June 2008 07:27 Go to previous messageGo to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom,

awesome screenshot. Will this filtering feature be provided out of the
box? And if so, can it be enabled and disabled?

Awesome work. I'm looking forward to using it.

Peter


Tom Schindl schrieb:
> Hi Peter,
>
> I'll revisit the viewer bugs and problems in the following days making.
> You can be sure that all navigation, editing bugs are fixed because I'm
> just using Grid&GridViewer in base library I'm developing for a customer.
>
> The new features Grid is getting next week are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>
> As said beside those 2 features I'm planing to fix all Viewer Bugs and
> other things once I got the write access to the CVS-repository.
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello.
>>
>> Thanks I'll file a bug.
>>
>> Since it's just one point where I use this, it's not that bad. I
>> thought of using reflection, but for a quick try i made the an
>> get-accessor.
>>
>> What kind of changes will there be? What I encountered when switching
>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again.
>> As long as I don't re-arrange the colum everything is fine. But e.g
>> when I swap column 1 & cloumn 2 and then I do the tabulator-traversal
>> it first jumps the column index 1 then back to column index 0 and then
>> goes on with index 3 and so on.
>>
>> I already use your patch you provided me a few weeks ago. Under 3.3 it
>> works but under 3.4 it's broken again.
>>
>> Who do I have to ask question regarding the CDateTime control? Because
>> I have problems to adjust the org.eclipse.ui.forms look & feel. I
>> can't get it as "flat" as the other "formtoolkit-controls"?
>>
>> Thanks
>>
>> Peter
>>
>>
>> Tom Schindl schrieb:
>>> By the way there are going to be some changes in Grid in the next
>>> weeks so maintain your patch might be quite cumbersome. Did you
>>> thought about using Reflection instead of patching?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> File a bug [1] (and CC me).
>>>>
>>>> Tom
>>>>
>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello Tom.
>>>>>
>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>> the rowheader width i patched the grid, and made a public
>>>>> get-accessor to the rowheaderwidth property?
>>>>>
>>>>> How can I request this as public API?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Peter
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello there.
>>>>>>>
>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>
>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>> activting inline editing or resizing the column width).
>>>>>>>
>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>> the row header, columnheader or a cell?
>>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>
>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>
>>>>>> public void mouseDown(MouseEvent e) {
>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>> System.out.println("header click");
>>>>>> }
>>>>>> }
>>>>>> });
>>>>>>
>>>>>> For RowHeader there's no API to get its width but you could
>>>>>> request one.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>
>>>>
>>>
>>>
>
>
>
> ------------------------------------------------------------ ------------
>
Re: Grid - Double Click on RowHeader [message #55277 is a reply to message #55171] Fri, 27 June 2008 07:44 Go to previous messageGo to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello once again.

I was thinking about another feature regarding the grid. Is it possible
to add decorations the way the are used in eclipse forms, to show the
user that the some values he entered, are invalid?

I'm thinking about displaying the error, warning, information icons on
the top left corner of the according cell. This would only be needed, if
inline editing is activated.

Would this be a useful feature?

Thanks

Peter

Tom Schindl schrieb:
> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
> reordering problem?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> I'll revisit the viewer bugs and problems in the following days
>> making. You can be sure that all navigation, editing bugs are fixed
>> because I'm just using Grid&GridViewer in base library I'm developing
>> for a customer.
>>
>> The new features Grid is getting next week are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>
>> As said beside those 2 features I'm planing to fix all Viewer Bugs and
>> other things once I got the write access to the CVS-repository.
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello.
>>>
>>> Thanks I'll file a bug.
>>>
>>> Since it's just one point where I use this, it's not that bad. I
>>> thought of using reflection, but for a quick try i made the an
>>> get-accessor.
>>>
>>> What kind of changes will there be? What I encountered when switching
>>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken
>>> again. As long as I don't re-arrange the colum everything is fine.
>>> But e.g when I swap column 1 & cloumn 2 and then I do the
>>> tabulator-traversal it first jumps the column index 1 then back to
>>> column index 0 and then goes on with index 3 and so on.
>>>
>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>> it works but under 3.4 it's broken again.
>>>
>>> Who do I have to ask question regarding the CDateTime control?
>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>>
>>> Tom Schindl schrieb:
>>>> By the way there are going to be some changes in Grid in the next
>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>> thought about using Reflection instead of patching?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> File a bug [1] (and CC me).
>>>>>
>>>>> Tom
>>>>>
>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello Tom.
>>>>>>
>>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>>> the rowheader width i patched the grid, and made a public
>>>>>> get-accessor to the rowheaderwidth property?
>>>>>>
>>>>>> How can I request this as public API?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello there.
>>>>>>>>
>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>
>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>
>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>
>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>
>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>> System.out.println("header click");
>>>>>>> }
>>>>>>> }
>>>>>>> });
>>>>>>>
>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>> request one.
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
Re: Grid - Double Click on RowHeader [message #55304 is a reply to message #55250] Fri, 27 June 2008 07:45 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello Tom,
>
> awesome screenshot. Will this filtering feature be provided out of the
> box? And if so, can it be enabled and disabled?
>

No :-( This is an extension I'm making for a customer. The grid you are
seeing in the screenshot supports:

- Auto-Filter
- Auto-Sort
- Quick-Search
- Grouping Functions (in the footer line not visible in the screenshot)
- ...

And takes about 10 lines to get setup :-)

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55336 is a reply to message #55277] Fri, 27 June 2008 07:46 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Definately file a bug :-)

Tom

Peter Pfeifer schrieb:
> Hello once again.
>
> I was thinking about another feature regarding the grid. Is it possible
> to add decorations the way the are used in eclipse forms, to show the
> user that the some values he entered, are invalid?
>
> I'm thinking about displaying the error, warning, information icons on
> the top left corner of the according cell. This would only be needed, if
> inline editing is activated.
>
> Would this be a useful feature?
>
> Thanks
>
> Peter
>
> Tom Schindl schrieb:
>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>> reordering problem?
>>
>> Tom
>>
>> Tom Schindl schrieb:
>>> Hi Peter,
>>>
>>> I'll revisit the viewer bugs and problems in the following days
>>> making. You can be sure that all navigation, editing bugs are fixed
>>> because I'm just using Grid&GridViewer in base library I'm developing
>>> for a customer.
>>>
>>> The new features Grid is getting next week are:
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>
>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>> and other things once I got the write access to the CVS-repository.
>>>
>>> Tom
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello.
>>>>
>>>> Thanks I'll file a bug.
>>>>
>>>> Since it's just one point where I use this, it's not that bad. I
>>>> thought of using reflection, but for a quick try i made the an
>>>> get-accessor.
>>>>
>>>> What kind of changes will there be? What I encountered when
>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>> broken again. As long as I don't re-arrange the colum everything is
>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>> column index 0 and then goes on with index 3 and so on.
>>>>
>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>> it works but under 3.4 it's broken again.
>>>>
>>>> Who do I have to ask question regarding the CDateTime control?
>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>
>>>> Thanks
>>>>
>>>> Peter
>>>>
>>>>
>>>> Tom Schindl schrieb:
>>>>> By the way there are going to be some changes in Grid in the next
>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>> thought about using Reflection instead of patching?
>>>>>
>>>>> Tom
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Hi Peter,
>>>>>>
>>>>>> File a bug [1] (and CC me).
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>
>>>>>>
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello Tom.
>>>>>>>
>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>
>>>>>>> How can I request this as public API?
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Peter
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>> Hello there.
>>>>>>>>>
>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>
>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>
>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>
>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>> System.out.println("header click");
>>>>>>>> }
>>>>>>>> }
>>>>>>>> });
>>>>>>>>
>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>> request one.
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55361 is a reply to message #55336] Fri, 27 June 2008 08:48 Go to previous messageGo to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom.

I'll file a bug immediately :-)

What also came into my mind is this, that those decorations should also
propagate the corresponding message to the messagemanager of the
org.eclipse.ui.Form.

Thanks

Peter

Tom Schindl schrieb:
> Definately file a bug :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello once again.
>>
>> I was thinking about another feature regarding the grid. Is it
>> possible to add decorations the way the are used in eclipse forms, to
>> show the user that the some values he entered, are invalid?
>>
>> I'm thinking about displaying the error, warning, information icons on
>> the top left corner of the according cell. This would only be needed,
>> if inline editing is activated.
>>
>> Would this be a useful feature?
>>
>> Thanks
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>> reordering problem?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> I'll revisit the viewer bugs and problems in the following days
>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>> because I'm just using Grid&GridViewer in base library I'm
>>>> developing for a customer.
>>>>
>>>> The new features Grid is getting next week are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>
>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>> and other things once I got the write access to the CVS-repository.
>>>>
>>>> Tom
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello.
>>>>>
>>>>> Thanks I'll file a bug.
>>>>>
>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>> thought of using reflection, but for a quick try i made the an
>>>>> get-accessor.
>>>>>
>>>>> What kind of changes will there be? What I encountered when
>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>> broken again. As long as I don't re-arrange the colum everything is
>>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>
>>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>>> it works but under 3.4 it's broken again.
>>>>>
>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Peter
>>>>>
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>> thought about using Reflection instead of patching?
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Hi Peter,
>>>>>>>
>>>>>>> File a bug [1] (and CC me).
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>
>>>>>>>
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello Tom.
>>>>>>>>
>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>
>>>>>>>> How can I request this as public API?
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Peter
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello there.
>>>>>>>>>>
>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>
>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>>
>>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>
>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>> System.out.println("header click");
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> });
>>>>>>>>>
>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>> request one.
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #55388 is a reply to message #55171] Fri, 27 June 2008 08:49 Go to previous messageGo to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
btw. the the bug 231530 did help

thx

Tom Schindl schrieb:
> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
> reordering problem?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> I'll revisit the viewer bugs and problems in the following days
>> making. You can be sure that all navigation, editing bugs are fixed
>> because I'm just using Grid&GridViewer in base library I'm developing
>> for a customer.
>>
>> The new features Grid is getting next week are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>
>> As said beside those 2 features I'm planing to fix all Viewer Bugs and
>> other things once I got the write access to the CVS-repository.
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello.
>>>
>>> Thanks I'll file a bug.
>>>
>>> Since it's just one point where I use this, it's not that bad. I
>>> thought of using reflection, but for a quick try i made the an
>>> get-accessor.
>>>
>>> What kind of changes will there be? What I encountered when switching
>>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken
>>> again. As long as I don't re-arrange the colum everything is fine.
>>> But e.g when I swap column 1 & cloumn 2 and then I do the
>>> tabulator-traversal it first jumps the column index 1 then back to
>>> column index 0 and then goes on with index 3 and so on.
>>>
>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>> it works but under 3.4 it's broken again.
>>>
>>> Who do I have to ask question regarding the CDateTime control?
>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>>
>>> Tom Schindl schrieb:
>>>> By the way there are going to be some changes in Grid in the next
>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>> thought about using Reflection instead of patching?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> File a bug [1] (and CC me).
>>>>>
>>>>> Tom
>>>>>
>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello Tom.
>>>>>>
>>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>>> the rowheader width i patched the grid, and made a public
>>>>>> get-accessor to the rowheaderwidth property?
>>>>>>
>>>>>> How can I request this as public API?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello there.
>>>>>>>>
>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>
>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>
>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>
>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>
>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>> System.out.println("header click");
>>>>>>> }
>>>>>>> }
>>>>>>> });
>>>>>>>
>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>> request one.
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
Re: Grid - Double Click on RowHeader [message #55415 is a reply to message #55336] Fri, 27 June 2008 08:54 Go to previous messageGo to next message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hi

I have one more suggestion.

My boss want's the grid rows in alternating colors (white/grey). Is this
already possbile or would this be another useful feature?

Regards,

Peter

Tom Schindl schrieb:
> Definately file a bug :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello once again.
>>
>> I was thinking about another feature regarding the grid. Is it
>> possible to add decorations the way the are used in eclipse forms, to
>> show the user that the some values he entered, are invalid?
>>
>> I'm thinking about displaying the error, warning, information icons on
>> the top left corner of the according cell. This would only be needed,
>> if inline editing is activated.
>>
>> Would this be a useful feature?
>>
>> Thanks
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>> reordering problem?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> I'll revisit the viewer bugs and problems in the following days
>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>> because I'm just using Grid&GridViewer in base library I'm
>>>> developing for a customer.
>>>>
>>>> The new features Grid is getting next week are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>
>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>> and other things once I got the write access to the CVS-repository.
>>>>
>>>> Tom
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello.
>>>>>
>>>>> Thanks I'll file a bug.
>>>>>
>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>> thought of using reflection, but for a quick try i made the an
>>>>> get-accessor.
>>>>>
>>>>> What kind of changes will there be? What I encountered when
>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>> broken again. As long as I don't re-arrange the colum everything is
>>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>
>>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>>> it works but under 3.4 it's broken again.
>>>>>
>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Peter
>>>>>
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>> thought about using Reflection instead of patching?
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Hi Peter,
>>>>>>>
>>>>>>> File a bug [1] (and CC me).
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>
>>>>>>>
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello Tom.
>>>>>>>>
>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>
>>>>>>>> How can I request this as public API?
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Peter
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello there.
>>>>>>>>>>
>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>
>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>>
>>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>
>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>> System.out.println("header click");
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> });
>>>>>>>>>
>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>> request one.
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #55440 is a reply to message #55415] Fri, 27 June 2008 09:15 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Yes this is an often requested feature and it might make sense to
include it if the performance fee we pay is not too high. In the
meanwhile I think you can give it a try and write your own CellRenderer
which calculates its background just like the RowHeaderRenderer
calculates its line number.

Copy the DefaultCellRenderer and modify row 95 like this:

----------8<----------
drawBackground = getLineNumber(item) % 2 == 0;

if( drawBackground ) {
gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_GRA Y));
}

private int getLineNumber(GridItem item) {
return (item.getParent().indexOf(item) + 1);
}
----------8<----------

Naturally the algorithm to identify the line number of an item could be
enhanced :-)

Tom

Peter Pfeifer schrieb:
> Hi
>
> I have one more suggestion.
>
> My boss want's the grid rows in alternating colors (white/grey). Is this
> already possbile or would this be another useful feature?
>
> Regards,
>
> Peter
>
> Tom Schindl schrieb:
>> Definately file a bug :-)
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello once again.
>>>
>>> I was thinking about another feature regarding the grid. Is it
>>> possible to add decorations the way the are used in eclipse forms, to
>>> show the user that the some values he entered, are invalid?
>>>
>>> I'm thinking about displaying the error, warning, information icons
>>> on the top left corner of the according cell. This would only be
>>> needed, if inline editing is activated.
>>>
>>> Would this be a useful feature?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>> Tom Schindl schrieb:
>>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>>> reordering problem?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> I'll revisit the viewer bugs and problems in the following days
>>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>>> because I'm just using Grid&GridViewer in base library I'm
>>>>> developing for a customer.
>>>>>
>>>>> The new features Grid is getting next week are:
>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>>
>>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>>> and other things once I got the write access to the CVS-repository.
>>>>>
>>>>> Tom
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello.
>>>>>>
>>>>>> Thanks I'll file a bug.
>>>>>>
>>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>>> thought of using reflection, but for a quick try i made the an
>>>>>> get-accessor.
>>>>>>
>>>>>> What kind of changes will there be? What I encountered when
>>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>>> broken again. As long as I don't re-arrange the colum everything
>>>>>> is fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>>
>>>>>> I already use your patch you provided me a few weeks ago. Under
>>>>>> 3.3 it works but under 3.4 it's broken again.
>>>>>>
>>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>>> thought about using Reflection instead of patching?
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> Hi Peter,
>>>>>>>>
>>>>>>>> File a bug [1] (and CC me).
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>>
>>>>>>>>
>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>> Hello Tom.
>>>>>>>>>
>>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>>
>>>>>>>>> How can I request this as public API?
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> Peter
>>>>>>>>>
>>>>>>>>> Tom Schindl schrieb:
>>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>>> Hello there.
>>>>>>>>>>>
>>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>>
>>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell
>>>>>>>>>>> or columnheader the default behaviour should be triggered
>>>>>>>>>>> (either activting inline editing or resizing the column width).
>>>>>>>>>>>
>>>>>>>>>>> Is there a possibilty to check whether the user double
>>>>>>>>>>> clicked the row header, columnheader or a cell?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>>
>>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>>> System.out.println("header click");
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>> });
>>>>>>>>>>
>>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>>> request one.
>>>>>>>>>>
>>>>>>>>>> Tom
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>
>>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55494 is a reply to message #55440] Fri, 27 June 2008 12:24 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mail.ppfeifer.net

Hello Tom,

it tried your suggestion, but I think this solution has got a few
shortcommings:

* when multiselection is enabled, the text in row with the gray
background isn't displayed anymore... textcolor seems to be the same as
the selection color.

* if there is some space left after the last column, this space isn't
filled with a gray background, only cells with in columns.

* if inline editing is enabled, the black border indicating the active
cell, is "overdrawn" by the gray background.

thanks,

Peter

Tom Schindl schrieb:
> Yes this is an often requested feature and it might make sense to
> include it if the performance fee we pay is not too high. In the
> meanwhile I think you can give it a try and write your own CellRenderer
> which calculates its background just like the RowHeaderRenderer
> calculates its line number.
>
> Copy the DefaultCellRenderer and modify row 95 like this:
>
> ----------8<----------
> drawBackground = getLineNumber(item) % 2 == 0;
>
> if( drawBackground ) {
> gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_GRA Y));
> }
>
> private int getLineNumber(GridItem item) {
> return (item.getParent().indexOf(item) + 1);
> }
> ----------8<----------
>
> Naturally the algorithm to identify the line number of an item could be
> enhanced :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hi
>>
>> I have one more suggestion.
>>
>> My boss want's the grid rows in alternating colors (white/grey). Is
>> this already possbile or would this be another useful feature?
>>
>> Regards,
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Definately file a bug :-)
>>>
>>> Tom
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello once again.
>>>>
>>>> I was thinking about another feature regarding the grid. Is it
>>>> possible to add decorations the way the are used in eclipse forms,
>>>> to show the user that the some values he entered, are invalid?
>>>>
>>>> I'm thinking about displaying the error, warning, information icons
>>>> on the top left corner of the according cell. This would only be
>>>> needed, if inline editing is activated.
>>>>
>>>> Would this be a useful feature?
>>>>
>>>> Thanks
>>>>
>>>> Peter
>>>>
>>>> Tom Schindl schrieb:
>>>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>>>> reordering problem?
>>>>>
>>>>> Tom
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Hi Peter,
>>>>>>
>>>>>> I'll revisit the viewer bugs and problems in the following days
>>>>>> making. You can be sure that all navigation, editing bugs are
>>>>>> fixed because I'm just using Grid&GridViewer in base library I'm
>>>>>> developing for a customer.
>>>>>>
>>>>>> The new features Grid is getting next week are:
>>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>>>
>>>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>>>> and other things once I got the write access to the CVS-repository.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello.
>>>>>>>
>>>>>>> Thanks I'll file a bug.
>>>>>>>
>>>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>>>> thought of using reflection, but for a quick try i made the an
>>>>>>> get-accessor.
>>>>>>>
>>>>>>> What kind of changes will there be? What I encountered when
>>>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to
>>>>>>> be broken again. As long as I don't re-arrange the colum
>>>>>>> everything is fine. But e.g when I swap column 1 & cloumn 2 and
>>>>>>> then I do the tabulator-traversal it first jumps the column index
>>>>>>> 1 then back to column index 0 and then goes on with index 3 and
>>>>>>> so on.
>>>>>>>
>>>>>>> I already use your patch you provided me a few weeks ago. Under
>>>>>>> 3.3 it works but under 3.4 it's broken again.
>>>>>>>
>>>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Peter
>>>>>>>
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> By the way there are going to be some changes in Grid in the
>>>>>>>> next weeks so maintain your patch might be quite cumbersome. Did
>>>>>>>> you thought about using Reflection instead of patching?
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Hi Peter,
>>>>>>>>>
>>>>>>>>> File a bug [1] (and CC me).
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello Tom.
>>>>>>>>>>
>>>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>>>
>>>>>>>>>> How can I request this as public API?
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> Peter
>>>>>>>>>>
>>>>>>>>>> Tom Schindl schrieb:
>>>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>>>> Hello there.
>>>>>>>>>>>>
>>>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>>>
>>>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell
>>>>>>>>>>>> or columnheader the default behaviour should be triggered
>>>>>>>>>>>> (either activting inline editing or resizing the column width).
>>>>>>>>>>>>
>>>>>>>>>>>> Is there a possibilty to check whether the user double
>>>>>>>>>>>> clicked the row header, columnheader or a cell?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks.
>>>>>>>>>>>
>>>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>>>
>>>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>>>> System.out.println("header click");
>>>>>>>>>>> }
>>>>>>>>>>> }
>>>>>>>>>>> });
>>>>>>>>>>>
>>>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>>>> request one.
>>>>>>>>>>>
>>>>>>>>>>> Tom
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #55521 is a reply to message #55494] Fri, 27 June 2008 12:39 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello Tom,
>
> it tried your suggestion, but I think this solution has got a few
> shortcommings:
>
> * when multiselection is enabled, the text in row with the gray
> background isn't displayed anymore... textcolor seems to be the same as
> the selection color.
>

You need to control this in your cell-renderer. This was just a q&d hack
to get you started :-)

> * if there is some space left after the last column, this space isn't
> filled with a gray background, only cells with in columns.
>

You need to replace the EmptyCellRenderer too.

> * if inline editing is enabled, the black border indicating the active
> cell, is "overdrawn" by the gray background.

No idea why this happens but I also guess this is a problem of the
cellrenderer my example was just something to get you started.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55548 is a reply to message #55304] Fri, 27 June 2008 17:07 Go to previous messageGo to next message
Emil Crumhorn is currently offline Emil CrumhornFriend
Messages: 169
Registered: July 2009
Senior Member
Hey guys, just wanted to jump in with a few notes.

I'm using the Grid at work where we display a whole bunch of [secret] data
:-). The grid works wonders and so far I have no big complaints. The reason
I'm posting is we used to use KTable, but as it's not developed anymore I
decided to drop it (plus it has a whole bunch of unfixed and annoying bugs).
The beauty of KTable was that GlazedLists (which I've mentioned in passing
on the forums) work out of the box as the Glazed people have already
implemented a model for KTable.

I wanted to keep the GlazedLists stuff (which is seriously worth a look if
none of you have tried it, it's basically a model-driven list that deals
with all sorting, filtering etc and all of that + 100 other ways to play
with your data can be stacked, and each list reports to the previous
listener all the way up the chain until they report to your model exactly
what has changed). All you do is just modify the actual list object (like,
the input) and everything else is "magic" (and they're thread safe among
other stuff, you can read while writing etc). I am currently using the Grid
without the viewer (but will refactor the viewer in later), and actually
managed to "slap" glazed lists onto the Grid without too much hassle despite
the fact that it prefers a model. I ran into one glazed-related issue which
I posted on their forums about, and when they replied they also said they
would like to have that model implementation when done so that they could
put it into the Glazed lists source for anyone else wanting to use the
Nebula Grid together with glazed. They seem to be aware of Nebula or at
least they checked it out.

I'm starting to sound like a promotion even though I have nothing to do with
them, but I just love those lists, so I couldn't help myself. The site is
here: http://publicobject.com/glazedlists/ .. they have a Swing webstart
demo well worth checking out.

In any case, just wanted to throw that out there that adding support for
those would be really cool (and I don't mind contributing my implementation
to them).

Since a lot of what you list below are things glazed supports as well, it
seem a cross implementation would be pretty easy to do when it's all done.

Ok, </shameless_promotion_end>.

Love the screenshot as well, great job!

Emil

"Tom Schindl" <tom.schindl@bestsolution.at> wrote in message
news:g425rc$bgm$1@build.eclipse.org...
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> awesome screenshot. Will this filtering feature be provided out of the
>> box? And if so, can it be enabled and disabled?
>>
>
> No :-( This is an extension I'm making for a customer. The grid you are
> seeing in the screenshot supports:
>
> - Auto-Filter
> - Auto-Sort
> - Quick-Search
> - Grouping Functions (in the footer line not visible in the screenshot)
> - ...
>
> And takes about 10 lines to get setup :-)
>
> Tom
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #55576 is a reply to message #55521] Fri, 27 June 2008 17:44 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mail.ppfeifer.net

Hi Tom,

don't get me wrong, I apreciate your help. I just wanted to let you know
my findings. :-)

Regards,

Peter

Tom Schindl schrieb:
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> it tried your suggestion, but I think this solution has got a few
>> shortcommings:
>>
>> * when multiselection is enabled, the text in row with the gray
>> background isn't displayed anymore... textcolor seems to be the same
>> as the selection color.
>>
>
> You need to control this in your cell-renderer. This was just a q&d hack
> to get you started :-)
>
>> * if there is some space left after the last column, this space isn't
>> filled with a gray background, only cells with in columns.
>>
>
> You need to replace the EmptyCellRenderer too.
>
>> * if inline editing is enabled, the black border indicating the active
>> cell, is "overdrawn" by the gray background.
>
> No idea why this happens but I also guess this is a problem of the
> cellrenderer my example was just something to get you started.
>
> Tom
>
Re: Grid - Double Click on RowHeader [message #55603 is a reply to message #55304] Fri, 27 June 2008 18:13 Go to previous message
Jacek Kolodziejczyk is currently offline Jacek KolodziejczykFriend
Messages: 37
Registered: July 2009
Member
I agree, auto-filtering would be great.
Your screen shot gives an impression (maybe I'm wrong) that filters
determine/auto-resize the original column width after adding them to the
grid. I think they should not, unless we have an additional option
setColumnAutoSizing turned on before adding auto-filters.

By the way, setColumnAutoSizing could also be useful in other cases,
like creating columns for instance.

Jacek

Tom Schindl wrote:
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> awesome screenshot. Will this filtering feature be provided out of the
>> box? And if so, can it be enabled and disabled?
>>
>
> No :-( This is an extension I'm making for a customer. The grid you are
> seeing in the screenshot supports:
>
> - Auto-Filter
> - Auto-Sort
> - Quick-Search
> - Grouping Functions (in the footer line not visible in the screenshot)
> - ...
>
> And takes about 10 lines to get setup :-)
>
> Tom
>
Re: Grid - Double Click on RowHeader [message #590649 is a reply to message #54951] Wed, 25 June 2008 15:28 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello there.
>
> I've got a RCP application containing a gridviewer with a rowheader and
> a doubleclick-listener attachted.
>
> A double click on the rowheader, should open the apropriate editor
> based on the selection (this is what my doubleclick listener is supposed
> to do), and when doubleclicking a cell or columnheader the default
> behaviour should be triggered (either activting inline editing or
> resizing the column width).
>
> Is there a possibilty to check whether the user double clicked the row
> header, columnheader or a cell?
>
>
> Thanks.

grid.addMouseListener(new MouseAdapter() {

public void mouseDown(MouseEvent e) {
if (e.y < grid.getHeaderHeight()) {
System.out.println("header click");
}
}
});

For RowHeader there's no API to get its width but you could request one.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590666 is a reply to message #54977] Wed, 25 June 2008 16:19 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom.

Thanks for the answer. That's the way I do it right now. Regarding the
rowheader width i patched the grid, and made a public get-accessor to
the rowheaderwidth property?

How can I request this as public API?

Thanks.

Peter

Tom Schindl schrieb:
> Peter Pfeifer schrieb:
>> Hello there.
>>
>> I've got a RCP application containing a gridviewer with a rowheader
>> and a doubleclick-listener attachted.
>>
>> A double click on the rowheader, should open the apropriate editor
>> based on the selection (this is what my doubleclick listener is
>> supposed to do), and when doubleclicking a cell or columnheader the
>> default behaviour should be triggered (either activting inline editing
>> or resizing the column width).
>>
>> Is there a possibilty to check whether the user double clicked the row
>> header, columnheader or a cell?
>>
>>
>> Thanks.
>
> grid.addMouseListener(new MouseAdapter() {
>
> public void mouseDown(MouseEvent e) {
> if (e.y < grid.getHeaderHeight()) {
> System.out.println("header click");
> }
> }
> });
>
> For RowHeader there's no API to get its width but you could request one.
>
> Tom
>
Re: Grid - Double Click on RowHeader [message #590674 is a reply to message #55004] Wed, 25 June 2008 16:26 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi Peter,

File a bug [1] (and CC me).

Tom

[1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid

Peter Pfeifer schrieb:
> Hello Tom.
>
> Thanks for the answer. That's the way I do it right now. Regarding the
> rowheader width i patched the grid, and made a public get-accessor to
> the rowheaderwidth property?
>
> How can I request this as public API?
>
> Thanks.
>
> Peter
>
> Tom Schindl schrieb:
>> Peter Pfeifer schrieb:
>>> Hello there.
>>>
>>> I've got a RCP application containing a gridviewer with a rowheader
>>> and a doubleclick-listener attachted.
>>>
>>> A double click on the rowheader, should open the apropriate editor
>>> based on the selection (this is what my doubleclick listener is
>>> supposed to do), and when doubleclicking a cell or columnheader the
>>> default behaviour should be triggered (either activting inline
>>> editing or resizing the column width).
>>>
>>> Is there a possibilty to check whether the user double clicked the
>>> row header, columnheader or a cell?
>>>
>>>
>>> Thanks.
>>
>> grid.addMouseListener(new MouseAdapter() {
>>
>> public void mouseDown(MouseEvent e) {
>> if (e.y < grid.getHeaderHeight()) {
>> System.out.println("header click");
>> }
>> }
>> });
>>
>> For RowHeader there's no API to get its width but you could request one.
>>
>> Tom
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590685 is a reply to message #55029] Wed, 25 June 2008 16:28 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
By the way there are going to be some changes in Grid in the next weeks
so maintain your patch might be quite cumbersome. Did you thought about
using Reflection instead of patching?

Tom

Tom Schindl schrieb:
> Hi Peter,
>
> File a bug [1] (and CC me).
>
> Tom
>
> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>
>
> Peter Pfeifer schrieb:
>> Hello Tom.
>>
>> Thanks for the answer. That's the way I do it right now. Regarding the
>> rowheader width i patched the grid, and made a public get-accessor to
>> the rowheaderwidth property?
>>
>> How can I request this as public API?
>>
>> Thanks.
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Peter Pfeifer schrieb:
>>>> Hello there.
>>>>
>>>> I've got a RCP application containing a gridviewer with a rowheader
>>>> and a doubleclick-listener attachted.
>>>>
>>>> A double click on the rowheader, should open the apropriate editor
>>>> based on the selection (this is what my doubleclick listener is
>>>> supposed to do), and when doubleclicking a cell or columnheader the
>>>> default behaviour should be triggered (either activting inline
>>>> editing or resizing the column width).
>>>>
>>>> Is there a possibilty to check whether the user double clicked the
>>>> row header, columnheader or a cell?
>>>>
>>>>
>>>> Thanks.
>>>
>>> grid.addMouseListener(new MouseAdapter() {
>>>
>>> public void mouseDown(MouseEvent e) {
>>> if (e.y < grid.getHeaderHeight()) {
>>> System.out.println("header click");
>>> }
>>> }
>>> });
>>>
>>> For RowHeader there's no API to get its width but you could request one.
>>>
>>> Tom
>>>
>
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590701 is a reply to message #55056] Wed, 25 June 2008 16:43 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello.

Thanks I'll file a bug.

Since it's just one point where I use this, it's not that bad. I thought
of using reflection, but for a quick try i made the an get-accessor.

What kind of changes will there be? What I encountered when switching to
Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again. As
long as I don't re-arrange the colum everything is fine. But e.g when I
swap column 1 & cloumn 2 and then I do the tabulator-traversal it first
jumps the column index 1 then back to column index 0 and then goes on
with index 3 and so on.

I already use your patch you provided me a few weeks ago. Under 3.3 it
works but under 3.4 it's broken again.

Who do I have to ask question regarding the CDateTime control? Because I
have problems to adjust the org.eclipse.ui.forms look & feel. I can't
get it as "flat" as the other "formtoolkit-controls"?

Thanks

Peter


Tom Schindl schrieb:
> By the way there are going to be some changes in Grid in the next weeks
> so maintain your patch might be quite cumbersome. Did you thought about
> using Reflection instead of patching?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> File a bug [1] (and CC me).
>>
>> Tom
>>
>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>
>>
>> Peter Pfeifer schrieb:
>>> Hello Tom.
>>>
>>> Thanks for the answer. That's the way I do it right now. Regarding
>>> the rowheader width i patched the grid, and made a public
>>> get-accessor to the rowheaderwidth property?
>>>
>>> How can I request this as public API?
>>>
>>> Thanks.
>>>
>>> Peter
>>>
>>> Tom Schindl schrieb:
>>>> Peter Pfeifer schrieb:
>>>>> Hello there.
>>>>>
>>>>> I've got a RCP application containing a gridviewer with a rowheader
>>>>> and a doubleclick-listener attachted.
>>>>>
>>>>> A double click on the rowheader, should open the apropriate editor
>>>>> based on the selection (this is what my doubleclick listener is
>>>>> supposed to do), and when doubleclicking a cell or columnheader the
>>>>> default behaviour should be triggered (either activting inline
>>>>> editing or resizing the column width).
>>>>>
>>>>> Is there a possibilty to check whether the user double clicked the
>>>>> row header, columnheader or a cell?
>>>>>
>>>>>
>>>>> Thanks.
>>>>
>>>> grid.addMouseListener(new MouseAdapter() {
>>>>
>>>> public void mouseDown(MouseEvent e) {
>>>> if (e.y < grid.getHeaderHeight()) {
>>>> System.out.println("header click");
>>>> }
>>>> }
>>>> });
>>>>
>>>> For RowHeader there's no API to get its width but you could request
>>>> one.
>>>>
>>>> Tom
>>>>
>>
>>
>
>
Re: Grid - Double Click on RowHeader [message #590721 is a reply to message #55083] Thu, 26 June 2008 12:54 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------000105070709010806050609
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi Peter,

I'll revisit the viewer bugs and problems in the following days making.
You can be sure that all navigation, editing bugs are fixed because I'm
just using Grid&GridViewer in base library I'm developing for a customer.

The new features Grid is getting next week are:
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
- https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846

As said beside those 2 features I'm planing to fix all Viewer Bugs and
other things once I got the write access to the CVS-repository.

Tom

Peter Pfeifer schrieb:
> Hello.
>
> Thanks I'll file a bug.
>
> Since it's just one point where I use this, it's not that bad. I thought
> of using reflection, but for a quick try i made the an get-accessor.
>
> What kind of changes will there be? What I encountered when switching to
> Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again. As
> long as I don't re-arrange the colum everything is fine. But e.g when I
> swap column 1 & cloumn 2 and then I do the tabulator-traversal it first
> jumps the column index 1 then back to column index 0 and then goes on
> with index 3 and so on.
>
> I already use your patch you provided me a few weeks ago. Under 3.3 it
> works but under 3.4 it's broken again.
>
> Who do I have to ask question regarding the CDateTime control? Because I
> have problems to adjust the org.eclipse.ui.forms look & feel. I can't
> get it as "flat" as the other "formtoolkit-controls"?
>
> Thanks
>
> Peter
>
>
> Tom Schindl schrieb:
>> By the way there are going to be some changes in Grid in the next
>> weeks so maintain your patch might be quite cumbersome. Did you
>> thought about using Reflection instead of patching?
>>
>> Tom
>>
>> Tom Schindl schrieb:
>>> Hi Peter,
>>>
>>> File a bug [1] (and CC me).
>>>
>>> Tom
>>>
>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello Tom.
>>>>
>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>> the rowheader width i patched the grid, and made a public
>>>> get-accessor to the rowheaderwidth property?
>>>>
>>>> How can I request this as public API?
>>>>
>>>> Thanks.
>>>>
>>>> Peter
>>>>
>>>> Tom Schindl schrieb:
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello there.
>>>>>>
>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>
>>>>>> A double click on the rowheader, should open the apropriate
>>>>>> editor based on the selection (this is what my doubleclick
>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>> columnheader the default behaviour should be triggered (either
>>>>>> activting inline editing or resizing the column width).
>>>>>>
>>>>>> Is there a possibilty to check whether the user double clicked the
>>>>>> row header, columnheader or a cell?
>>>>>>
>>>>>>
>>>>>> Thanks.
>>>>>
>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>
>>>>> public void mouseDown(MouseEvent e) {
>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>> System.out.println("header click");
>>>>> }
>>>>> }
>>>>> });
>>>>>
>>>>> For RowHeader there's no API to get its width but you could request
>>>>> one.
>>>>>
>>>>> Tom
>>>>>
>>>
>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------

--------------000105070709010806050609
Content-Type: image/jpeg;
name="screen.jpeg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screen.jpeg"

/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD/ 2wBDAAUDBAQE
AwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0d Hx8fExciJCIe
JBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4e
Hh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAGgAyADASIAAhEBAxEB/8QAHAAB AAIDAQEBAAAA
AAAAAAAAAAEGAgQFAwcI/8QAWRAAAQIEAgUHCAYGCAMHAgYDAQIDAAQREgVS BiExUZETFCJh
kqHhFRZBVFVik9IHFzKV0dMjM1NxlJYkNUJ1gbGzwXSjsiU0Q1ZyguI2REZj ZWZztIOiwv/E
ABoBAQADAQEBAAAAAAAAAAAAAAABAgMEBQb/xAA2EQEAAQMDAwEDCwQCAwAA AAAAAQIDURES
FAQTMQUhcaEVMjQ1UlNhcpGxwUGB0fAGFiIjQ//aAAwDAQACEQMRAD8A/Rum 2NTEgxKSuFCU
ZfmnVpMxMNBSWkpFdSRS4nUBr641vo/0knMRl8TYxqVYXMSCk2vNMcmH0qBI 6JrQ9E+ndHni
LDayZWcdaeKSF2pbcWUH0GqR0TGEsG5ZJTLrLYUblUl3iVHeSU1Mck2ur5e6 Ko7enj+urkmi
53N2vsw40pplpAnFMNmn2sOmJCeeQhyVZlulLpWQAeUrrUKiooPTHd06x7EZ bE0YdgqpCUtl
hMOPPS/KlZKikISmoykk9YjWalZJp0OtoSlQVeKS71Eq3hNKA/4RnNNsTSkL mFXrRWxXN3gp
NdusAGOWmx6lHT10zXG/X2efH6M4tXtkxNXtl1NC8cdxvRYTWISjctPJW4y7 yaKJUpNRcAdY
B1Hqjdaw6ZLSSX3akD+0Y4TKkMtJaZc5NtP2UplnaD//AFjtS2kRaYS243yh SKXci6P/APiP
WsRXTbpi5OtWnt97popqimIqnWWbmEOOABxal0za4w8h+6OEctz6UdFG3FNu Y7g6FpNFJVNE
EHcejEfWnoj/AOYMF/i//jFu9b+1H6uyOg6mY1i3V+ku0MMmAKB5ztGJ8mTH 7Z3tGOJ9aeiP
/mDBf4v/AOMPrT0R/wDMGC/xf/xiO9b+1H6p+T+q+7q/Sf8ADt+TZj9s72jD yZMftne0Y4n1
p6I/+YMF/i//AIw+tPRH2/gv8X/8Yd639qP1Pk/qvu6v0l2/Jsx+2d7Rh5Mm P2zvaMcT609E
f/MGC/xf/wAYfWnoj/5gwX+L/wDjDvW/tR+p8n9V91V+k/4drybM/t3e0YeT Zn9s72jHF+tP
RH/zBgv8X/8AGH1p6I/+YMF/i/8A4w71v7UHA6r7qr9J/wAO15Mmf2zvaMPJ kx+2d7RjVw3T
fDMTZU9hsxLTrSVWqXLqW4kHdVKDrja85Uern4bvyRpExMaw5qqKqJ21RpKf Jkx+2d7Rh5Mm
P2zvaMR5yo9XPw3fkh5yo9XPw3fkgjQ8mTH7Z3tGHkyY/bO9ow85Uern4bvy Q85Uern4bvyQ
1NDyZMftne0YeTJn9u72jDzlR6ufhu/JDzlR6ufhu/JA0PJkz+3d7Rh5Mmf2 7vaMPOVHq5+G
78kPOVHq5+G78kA8mTP7d3tGHkyZ/bu9ow85Uern4bvyQ85Uern4bvyQNDyZ Mftne0YeTJj9
u72jDzlR6ufhu/JDzlR6ufhu/JAPJkx+2d7Rh5MmP2zvaMPOVHq5+G78kPOV Hq5+G78kA8mT
H7Z3tGHkyZ/bO9ow85Uern4bvyQ85Uern4bvyQ1DyZMftne0YeTZj9s72jDz lR6ufhu/JDzl
R6ufhu/JDUPJsx+2d7Rh5NmP2zvaMPOVHq5+G78kPOVHq5+G78kNTQ8mzH7Z 3tGJ8mTH7Z3t
RHnKj1c/Dd+SHnKj1c/Dd+SGponyZM/t3e1DyZM/t3e1EecqPVz8N35IecqP Vz8N35InU0T5
MmP2znah5MmP2znaMR5yo9XPw3fkh5yo9XPw3fkiDRPkyY/bOdow8mTH7Zzt GI85Uern4bvy
Q85Uern4bvyQNE+TJj9s52jFR0+xnEdG8RwaVYa5dM+6UrK1KAQA40ipUNSR +lrcrVqp6Ytv
nKj1c/Dd+SPGaxqSmklMzhzT4KFIIcl3FdFX2k629hoKj0wNFIndINIEaNyu NyrMu8mfmuQl
pVAdcdQarFFhOsq6NCAOiSa7I2sdxrHsNxfC5JOFuul6S53OtpUpSmEgpC+m OgLQSdZ6VKDb
FmZn8IZm3JtrBJNuYdWFuOplFhalD+0TydSeuNlePSy3C4uRQpZQWyosOElJ 2prZs6oCmvab
SjDfKTMlirKbBtU2SHCzyyW6Be0t0N32RWhNax5Smm0u1IOvYuial3WnnkqQ 2oLolD802Nij
VVJVRNPSdXVbnZ/CHXi87gsmtxTHNytUosktfs68n9nq2Ri1N4IyphTOAyLZ l0lLJTJKBbBN
SE/o9QJJOrfAaGAz85imLrkFSM3KBMgzOhbkwhepxbiQnoKOujZNQSNcd/yZ MftnO0Y0pDEc
KkLOY4PKytiC2jkZVaLUk3FIo3qBOum+NzzlR6ufhu/JA0T5MmP2znaMPJkx +2c7RiPOVHq5
+G78kPOVHq5+G78kDRPkyY/bOdow8mTH7ZztGI85Uern4bvyQ85Uern4bvyQ NE+TJj9s52jE
eTJj9u72jDzlR6ufhu/JDzlR6ufhu/JAPJkx+2d7RifJkx+2c7RiPOVHq5+G 78kPOVHq5+G7
8kBPkyY/bOdow8mTH7Z3tGI85Uern4bvyQ85Uern4bvyQDyZMft3e0YeTJj9 u72jDzlR6ufh
u/JDzlR6ufhu/JAPJkx+3d7Rh5MmP27vaMPOVHq5+G78kPOVHq5+G78kA8mT H7d3tGHkyY/b
u9ow85Uern4bvyQ85Uern4bvyQE+TJj9s52jDyZMftnO0YjzlR6ufhu/JDzl R6ufhu/JA0T5
MmP2zvaMR5MmP27vaMPOVHq5+G78kPOVHq5+G78kDRPkyY/bO9oxBwyYOovO dqHnKj1c/Dd+
SHnKj1c/Dd+SBokYZMAU5ZztGHkyY/bOdoxHnKj1c/Dd+SHnKj1c/Dd+SBon yZMftnO0YeTJ
j9s52jEecqPVz8N35IecqPVz8N35IGjBeCqWoqXVSjtJ1xj5D6u6PXzlR6uf hu/JDzlR6ufh
u/JA0eXkPqHARPkPqHCPTzlR6ufhu/JDzlR6ufhu/JA0efkMZe6I8h9XdHr5 yo9XPw3fkh5y
o9XPw3fkgPLyH1DgI9EYS8gWodWkbgaRPnKj1c/Dd+SHnKj1c/Dd+SAk4ZMk EF90g+gqMY+S
n615Vyv7/wB34DgInzlR6ufhu/JDzlR6ufhu/JAY+SHikpLi6EUpX0bKdwgM JeFtHFi2lKHZ
Sn4DhGXnKj1c/Dd+SHnKj1c/Dd+SAwbwZbayttRQo0qU6iabIl3CHXQQ64tY JqbjXXSleEZe
cqPVz8N35IecqPVz8N35IB5LmKKHLOdLbr266/5kxirCHFBSVLUQokqBO2u2 sZecqPVz8N35
IecqPVz8N35ICEYU82jk0OLSgilqTQU3R6yTa5SdrMOrWCgBN2umvXt9Eefn Kj1c/Dd+SOZi
WJLnHgvlC2BsSJd35YDVn9MMRbxSclcOw3DUMSzxaBmHFBayACVWpGoEnVv2 xv6LaTP4q/Oy
WIyLLLjCUKDjFVNrSqurpAaxQxyn2paYXyj6GXV0pcuRWTxKI9ZJtAUJaWcY YvOpIYU0FH/F
IBMebas9bF+aq64mjGnt/BhTRdivWavY8tJ8Um8HwXSDEJKWW+609Xoaygcg 30qUNabo4H0L
6WYvjWj+JzuOTJm5eUWVNznI2XJoSpNBqNKbRvi0vTExLTeJrE1LtsqmkpCF yqnFKJZb3LH+
UeTWKTDSAhp5lCBsSnCnQB/zI9umf/Vt2+3LWa4idJlw2vpCmuZSQmcHXLzz 03yTzDgWkoRy
jX2UqAUpZbeSabKhW0DX6SX0guOyU/OOYTezLlCkqaeBTasoSkFVKaiolR2J AO6Ow7jj7QBd
nWUAmgKsNcGv4kYecR9pSv3e5+ZGPbqR3KWEvprLuvNtmSW3fOIlSC6FFN6L gejUE+iiSabS
Uxloppixj8xKMpkXJUzMsqYSFuJUoAKttITWh2E3U20FaGk+cR9pSv3e5+ZE ecR9pSv3e5+Z
Dt1HcpfP9EvorwvF1uO4jNJljyLTyUqTqUF3a9o3RwtM9Am8Ilpp7DJMz6hM KYlUIbUeUUFE
f2bjQBJPp2R9glsWwJqSl5Zwl7kGkthS2NZAFI2W9IsHbQENrWlI2BLRAEY1 en2q6IomPhH7
vcsf8p9Qs3qrtN2fbGmms6R48R4/o/OT+FyomlJZkAWQwlwKcVYQVBopKtXR TR2mvaRSPdjA
UKl5Fb2DOpM3eEm5KRVATd9qgGtWoVrQE+iP0P5y4T+1c+GYecuE/tXfhmMv kjp8O7/vHqn3
j88TGDSTMkZnyatwc2afCUq2hbgRtIFoBI1qp1VGuEzgEul5SSy1JtNuOpdf eSXEgoSkhAtI
BWoKJABOpJ1V1D9D+cuE/tHPhmB0lwn0uufDMPkjp8E/849Un/6PzrjOBiQk nnvJRSoJXyQc
NEkpLo1nr5I0TtNU79UzmAmSXMCZwhyks8Zd2iCByldRqdibFNrrroFdUfon zlwn9q78Mw85
cJ/aufDMPkjp8I/7x6p94+BYFozL4tixw1vCZtp1KCsqcQLaCldYqD9pvZnF NhjpOaB4Whh9
K5opnETSGAzYKG5Sdd1NR10sNVKrcCADH2vzlwn9q78Mw85cJ/au/DMI9JsR /RS7/wA09TuR
EdyY0xOjhfRNgXm8ziUjZZctt2lN4I/2i8xVXcdlROuTUnPoQHEJQpLkopet JVsIUN/dE+cS
vaUr93ufmR00dP26Yppj2Q8Hq+unq71V+5P/AJVTrK0wirecSvaUr93ufmQ8 4le0pX7vc/Mi
/bqc/cpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0pX7vc/ Mh5xK9pSv3e5
+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0pX7vc /Mh5xK9pSv3e
5+ZDt1HcpytMIq3nEr2lK/d7n5kDpGQQDicqCdQ/7Pc1/wDMh26juU5WmEVb ziV7Slfu9z8y
HnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5WmEV bziV7Slfu9z8
yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5WmE VbziV7Slfu9z
8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ84le0pX7vc/Mh26juU5Wm EVbziV7Slfu9
z8yA0jJ2YnKn0f1e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7 lOVphFW84le0
pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo 7lOVphFW84le
0pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIdu o7lOVphFW84l
e0pX7vc/Mh5xK9pSv3e5+ZDt1HcpytMIqx0jI24nKj0f1e5+ZDziV7Slfu9z 8yHbqO5TlaYR
VvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slfu9 z8yHbqO5TlaY
RVvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slfu 9z8yHbqO5Tla
YRVvOJXtKV+73PzIecSvaUr93ufmQ7dR3KcrTCKt5xK9pSv3e5+ZDziV7Slf u9z8yHbqO5Tl
aYRVhpGTWmJypoaH/s9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ8 4le0pX7vc/Mh
26juU5WmEVbziV7Slfu9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufmQ 84le0pX7vc/M
h26juU5WmEVbziV7Slfu9z8yHnEr2lK/d7n5kO3UdynK0wirecSvaUr93ufm Q84le0pX7vc/
Mh26juU5WmEVbziV7Slfu9z8yB0jI24nKjXT+r3PzIduo7lOVphFW84le0pX 7vc/Mh5xK9pS
v3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0p X7vc/Mh5xK9p
Sv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVphFW84le0 pX7vc/Mh5xK9
pSv3e5+ZDt1HcpytMIq3nEr2lK/d7n5kPOJXtKV+73PzIduo7lOVpjk4vhUz OzgfaxBxlIbC
OSveCQQSbhybiNZrQ1rsFKa68zziV7Slfu9z8yPRrHH3QS1OsOAGhKcNcNDu /WdcR26juU5e
2Myak4dhElMYhi6WW3UompqSvL6khlYCjYFHWsJrqOsx4yTRZl3W25jEpmVT ibPNnJ8LDqkW
tV+2AaX3+gRJxqZBIM40CNv/AGY7+ZE88mJ1DCxOyzraJtpK0JlVNqBuFNZW acIibdUe1MXK
Z9kS9h/Xh/vJP+g3FriqD+vD/eSf9BuLXFbvilNvzKu6bJSuZ0dSoBSTjCAQ RUH9C7HDexDG
GpqaS3gcxMTaZh1LcsJEIl0tJcCWzytpuK0EK1EgdIaqR3dM/wDvejn98I/0 nYnSDHZbBMCn
sZxCZmOTl1lKWWOTvWbyhKU3ClSabTv2RlEatHB8u44+8pEvoSGkONtOMqmG VggOLSOmAnUU
oUSpNagpI2axhMaRYyzJuTK9B3DVIUy03KrWs6iVJVROomlAdeum+LFo/j0h jeJTMpJzs0pt
ltLiX6tlLiVUoR0fSDHd5un2hMcEfLE7JRq+ezWP6RsIecGgyHUgVaCGVk61 oHSFnoSpSjSp
6MXmWlpZyXbcckWG1qQFKSWx0SRs2Rs83T7QmOCPlhzdPtCY4I+WGyTV5czk /VGPhiHM5P1R
j4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4I+ WHNk+0Jjgj5Y
bJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmcn6ox8MQ 5nJ+qMfDEZLZ
CVAeUH6UJ/sej/2xysHxB+cksPm1lbKphRDjCnmnbaBf9puqT9kbDDZJqpOj i5qW0InpmQlO
XeRjs2C23Lcq4tvll1SjoqAO4qFPRUVqOurG8WccmkS+hp/ozbyiXZdaeUUg LtSjo9IqtRQi
o6WqtIj6NXFt6OTYQvk78cnElWrUOWWfSDu3Ru4lplhEljk5g3PZx2blAwVh JaAUXFJBA1Vq
kLbJqAKOJoTrpEU6mrnu47jKJyXkhodc84ShbglV8ig84LYVfb9mwFfo1U3x 6YFjONTeLyEl
iGhqJRl9Nz0xySrG6tIWE607QpRSa0+yaaxSLfhpbncOlp1E9MoTMMpdCSG6 gKANPs9cbHN0
+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5c zk/VGPhiHM5P
1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4 I+WHNk+0Jjgj
5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmUn6ox8 MRUfpDl5dvFd
D+TYaRdjgSq1AFRzZ/UeqLBOzTkviOHyiXXnUzZcvd5ZhIatTUdFQClVOrog 09MVvTdxbmIa
I3rvKdIikK3gS8xTZSImnQ1aE1iuk8vpPiks1o0ZuSbm225Q8yKUWFpZKiuz WLgjZXbtGw+y
8U0ml8QnFOaLsTcuzyiEtsyikFRSp6wpJBuuShuprTpCmuLPjeMMYThWJYrP TTyWZMmjTVgU
s6glIuFKqUQBUgVPojX0d0kw/HcQEtIzk2ptTJebePJ2rTybCx/Z3TCeyYna aqsNKcVw+UD2
IaKPTDaEzD77qcPW0A2mZWlATckdItJBCVUJ6OaPoEpKNLlGVTUjKtvlCS6h KQoJVTWAaaxX
0xtGWQduIP8ABHyw5un2hMcEfLDZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCP lhzZPtCY4I+W
GyTV5czk/VGPhiHM5P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDE OZyfqjHwxHrz
ZPtCY4I+WHNk+0Jjgj5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sYqYAU keUH9ddtm7/0
w2SasOZSfqjHwxFR+jSXl3EY+FsNKCcbnEpqgGg5ZeoR28KxB+bkZebUXGVL mFNllbzLvRCy
kG5uo1ih21FaGOBoA4tqVx8oXYTpBMpKtwMyoHuMRNOhquXM5P1Rj4YhzOT9 UY+GIreKaXYT
IY+5ga56bcnW2GniEFq0hbqG7dlajlEK1jYf3x3sGdaxPB5LEm52abRNy7b6 UK5OqQtIVQ9H
ridhq9uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5czk/VGPh iHM5P1Rj4Yj1
5sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY4I+WHNk+ 0Jjgj5YbJNXl
zOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SaqnpBMTUnpAhpvC31 yYZaUymVkQ5z
h1TikrQtdpDaUpsNdVQpRqaUjjzOkONuSzDTGiLyH30r/Spw9y1BCSUnpJqN abaKA1kEaiI+
ic3T7QmOCPljm4hNLlZvD2EOvPJm31NrWHmEckAkkKooAr1gCiQTrrDZJqpe lb7k7o/gszNY
UMPmDjiW1NlkoqBygBFQCUkAGpAruEbmNYhjUhj043KYGmelEOIKKSKihKOS USkEJBKy4Ei4
FSQFawCIy+kVxbmH4UlbnKWY2ykK3jk1HcN+6LHiuJs4dJ4niE7NuMy8igrK G7AVAISaC4bS
TQa9pERt9uhqrE/jmPSs07Lp0KS/yZZAcQysoNyApRFEmoCiUatYIqRTZZdG krncJS/ieGy0
vNco4lTYlygAJWQNStesAGuw11RoaNaU4dj+IsSslMzoQ/J87Q4rkqAUaNpA Tt/TAfvSYs3N
0+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR682T7QmOCPlhzZPtCY4I+WGyTV5 czk/VGPhiHM5
P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmry5nJ+qMfDEOZyfqjHwxHrzZPtCY 4I+WHNk+0Jjg
j5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaExwR8sObJ9oTHBHyw2SavLmcn6ox 8MQ5lJ+qMfDE
ZrYAKB5Qf6Rprs3H3Y5GH4g/MypmCXGVJnFMcmt5l25IcCQqrdQKg1oSCPSI bJNVQwwzEudL
3cPk0vPIxhtICZflVNtkoDiko/tFKCpQSNpGw7I2cTxrEMIdXMDBFz2Ey8up 5592QLbqwnky
bQEpAVaXCAR0ikAUJjZ0NcW1iulqkKtJxdKa02VtB/zjexrS3CcLxkYO/PTT k2ZPnVEFq09I
AI1prcRcrZsSeqIinU1d2SlW3JNlc1ISzT6m0l1tKQoJVTWAaa6H0x7czk/V GPhiPDBH2sUw
iVxFucmm0TLSXAhXJ1SCNh6MbnNk+0Jjgj5YnZJq8uZyfqjHwxDmcn6ox8MR 682T7QmOCPlh
zZPtCY4I+WGyTV5czk/VGPhiHM5P1Rj4Yj15sn2hMcEfLDmyfaExwR8sNkmr y5nJ+qMfDEOZ
yfqjHwxHrzZPtCY4I+WHNk+0Jjgj5YbJNXlzOT9UY+GIczk/VGPhiPXmyfaE xwR8sObJ9oTH
BHyw2SavLmcn6ox8MRUfpZl5drRmXW2w0hXlKUFUoAP65MWHFJlck5JJQ6/M CZmwwsh5hvkk
kK6dFgXbALU1OvZqiqfSs+vzVIW7ygbxaUCVatl7Z9AHpJ9ERNOhq28TnZuU xfFf+znFolWw
qRlmpArbmU8mCVKcCTRQWVC0EHojUbhGmnSTEVqbYRoh+mWpIC1Sy0t2laU3 k2dEa1KtPSAG
sCNTEdKnUaSOybcyEkAJQ2EBSlaq7IwOmDZnxJN4tLOvFwNpCEINyq0oNe+P Lu+rdParmirX
WJ0/32uerq7dMzEttnSHGAiZfmtGJNlpmVVNELZWigSy0souIoVFa3EjZTkz URbMFdlJ7Cpa
cfw9iWcfbDhaUgVQDrAOrbSleusVGe0jVJtuqfxSXAbND+iSKjo0Ov0G4GOf 59y3taX7CPxi
lXrPTUTpVr8P8qz1tqPZM/s+k8lh3q8v8MQ5LDvV5f4Yj5r59y3teX7CPxif PuW9rS/YR+MV
+XOkzP8Av90c6zn9n0nksO9Xl/hiHJYd6vL/AAxHzXz7lva8v2EfjE+fct7W l+wj8YfLnSZn
/f7nOs5/Z9J5LDvV5f4YhyWHery/wxHzXz7lva8v2EfjDz7lva8v2EfjD5c6 TM/7/c51nP7P
pfJYd6vL/DESmXkDslpf4Yj5n59y3teX7CPxjKW02XMTrTEtPtPXHWEJSD/v F7XrHTXa4opn
2zOn++1NPWWqpiIl9NEnJn/7Vj4YjhaFJSjFdK0ISEpGMigAoB/RJaNTRzHs QxBt9bra2AzN
ciAp5pwOAKSLugOjUE6iQRujc0O/rfSz++R//Ulo9aY0derDFsYlGZ6elprH G8PLRAbaDjaV
LJQk1NwNRroP3GONgr3OG1vXoXdPM9JH2VUVSo6jSPHTQgYlNVFaz7f+k1Ge AfqXf7xb/wBQ
xxdF6jVe6u7080+ymNdf7uHvTVd2T/R0pl9qVxN2YfUUtN4ilSjQmgEu36Br jpeeGjvr6v4d
35Y4WkS0N8+cdWlCEzoKlKNABzdvWTG0zpPgY0tmkLxzC/Jpkmi2ozkvyYdC 13AdK6tpTt1a
o9K74pdVHmWvpTpLhE3NYGZR2amSxiaXnEMyTziggNO1ISlBJ2jYI85/FcPm Ji9Jxfkw4XW0
OaNTy7FGusfo9vSMdFWK4NP6d6MIwzEpCbWh6ZKxLPoWUjm69ZtOqNTCZD6T cMwxqW563MvW
OrccdWl6rhYbDaauLqlIcDlSCddCAEm1OUTo0c7D5nC8OP8AQG8QleiEfotF p5PRGwam9gjd
8up9bxj+Wp/8uLPgadMm9IG0YrMMu4YlpwFSW27lq5Vy0qoQUmzkqWgj7VaG kWuo3iJ3SjSH
yzy6n1vGP5an/kifLqfW8Y/lqf8Akj6lUbxCo3iG6TSHy3y6n1vGP5an/wAu I8up9bxj+Wp/
5I+p1G8QqN4huk0h8t8up9bxj+Wp/wDLh5dT63jH8tT/AMkfUqjeIVG8Q3Sa Q+WeXU+t4x/L
U/8AJE+XU+t4x/LU/wDlx9SqN4hUbxDdJpD5YccQTUzeM/u82p/5IxwXE8Lw 1Uu2hOLolZet
jDOjU8hIqDsHJ09Jj6rUbxCo3iG6TR8a0RxFqS0dmpSclcclJh3E5maaIwSb c6C3VFJNreqo
NaVBEejzuEPuBx5mecWlZcClaKzpNxIJNeT2kpHARetOGNJplqQGjbrTSmJj nL5W/wAnyoQR
RnYahdTXYNW3XFdm5P6RlYpN4hLv2qpY22p1soCeUVUoRUAnkyKX667TSIiZ g0abOMsstIaa
mMXQ2hISlKdGZ4BIGwD9HGXl1PreMfy1P/JF+0XTjCZFxeOzCHJpbqylKUJS lCK0TQAnWRQm
pO3bHVqN4id0mkPlvl1PreMfy1P/ACQ8up9bxj+Wp/5I+pVG8QqN4huk0h8s 8up9bxj+Wp/5
Iny6n1vGP5an/wAuPqVRvEKjeIbpNIfLPLqfW8Y/lqf+SJ8up9bxj+Wp/wCS PqVRvEKjeIbp
NIfLfLqfW8Y/lqf+SI8up9bxj+Wp/wCSPqdRvEKjeIbpNIfJXsQk3phiYeXi jj0uVFlxWjM8
VN3ChoeT1VGqNXSDEmpl/RkS0rjkyZLFjNzThwSbbCW+QeBV0m9etSRQVJrH 2So3iIURcnWN
v+0RMzJo+W4li2HzcypxJxjki4HEtuaNzy7VDYf1e2NORmMLkXS7Jtz8us3V U3otOpJutu2N
+m1PZG6LY5JaQLnStsTyUt4zyraXJz9GuWIQFXFLl1o6ZSkgitAU02eGLSel T7mLvy6Z1HLM
ky7SJxKTceS5MJ6dEWlL12wKuH2tgndJpDjeXU+t4x/LU/8AJE+XU+t4x/LU /wDlxadIGsan
cQSZJvEJRpWHzTK1tvoIS4SjklBHKCqtS6HVS4ax6K9LYNpwXgJ7EJzm5kFt lMtM0WlRWpSK
EuglYSUpNTrpUOegt0mkNby6n1vGP5an/kifLqfW8Y/lqf8Akj6NggmkYNJI nwhE2lhAfSlx
SwF0FwClEk6/SSTG5UbxDdJpD5b5dT63jH8tT/yRHl1PreMfy1P/ACR9TqN4 hUbxDdJpD5b5
dT63jH8tT/5cR5dT63jH8tT/AMkfU6jeIVG8Q3SaQ+W+XU+t4x/LU/8AJEHH Ekg87xnV/wDt
qf8Akj6nUbxCo3iG6TSHynCcSwyQU0hAxZEshwucizo1PIFxVcT+rprJJ/xj S0YxJmVkMZam
5THJZU5isxNS6vIk2uqFPqUlRCW9VRTUaGPsdRvEQgih1jaYiZmTR8gfewl9 QU+1PuqDofCl
6KzpPKAABdeT20AFeqNqXxdiXYbl2H8WbaaQENoTozPBKUgUAA5PUAI+rVG8 QqN4id0mkPlv
l1PreMfy1P8A5cR5dT63jH8tT/yR9TqN4hUbxDdJpD5b5dT63jH8tT/5cR5d T63jH8tT/wAk
fU6jeIVG8Q3SaQ+WeXU+t4x/LU/8kT5dT63jH8tT/wCXH1Ko3iFRvEN0mkPl nl1PreMfy1P/
ACRPl1PreMfy1P8A5cfUqjeIVG8Q3SaQ+WeXU+t4x/LU/wDJHg/iMm+7Luvr xR1yXWXGVr0Y
niW1EEEg8nq1EiPrVRvEKjeIbpNIfGdKMQbnMOw2XlZbHJt5rE25l5RwSbbA QlCgT0m9fo1V
JMdTFcXw6dmFrT5YDS1pc5NzRueWApNpB/VjWCkEdcXDReVxiXnsSXibrimX Hqshbt9Tyrhu
SKm1PJlpNuqhQrV6TYqjeIjWU6PkEnMYVJzKpmUbn2HlX3Lb0VnUqNxBVrDf pIBP7hG75dT6
3jH8tT/yR9SqN4hUbxE7pRpD5Z5dT63jH8tT/wAkT5dT63jH8tT/AOXH1Ko3 iFRvEN0mkPln
l1PreMfy1P8AyRPl1PreMfy1P/JH1Ko3iFRvEN0mkPlvl1PreMfy1P8AyRHl 1PreMfy1P/JH
1Oo3iFRvEN0mkPlvl1PreMfy1P8A5cR5dT63jH8tT/yR9TqN4hUbxDdJpD5Y ccSSDzvGdX/7
an/kjzw3EcNklpCBiyGOWLy22tGp5AUsquJ/V7SfTH1eo3iFRvEN0mkPjuj+ JsS81pGuak8c
l0T8/wAvKr8iTa7kilCQG6jWNhoYymH8KmVFUy3iDyisOFTmi06olQTYFVLe 23VXdH19JFVa
xt/2iajeIiJmDR8plsXl5ZhDEu9izTTabUIRozPAJG4Dk49PLqfW8Y/lqf8A kj6lUbxCo3iJ
3SaQ+W+XU+t4x/LU/wDJEeXU+t4x/LU/8kfU6jeIVG8Q3SaQ+W+XU+t4x/LU /wDlxHl1PreM
fy1P/JH1Oo3iFRvEN0mkPlvl1PreMfy1P/JDy6n1vGP5an/kj6lUbxCo3iG6 TSHyzy6n1vGP
5an/AJIny6n1vGP5an/y4+pVG8QqN4huk0h8lmcRk5lTKpleKPFh3lmi5oxP KsXQgKFW9RoT
xjk6fYgid0UTJSjGNzc0Z9h9RVgk20LUrTU1W3TUE74+4VG8RztICOYK1iIm Zk0fG9E8KktJ
56dxNDs2wtuYtSXZRbSgQlJBAcAPp2x1MT0OwnB8NmsVdmHQ3KMreWW2U3US kk017aRsfRq1
NNPYyJzlStWJPKQpbl4LZIKLdZoAmgpq1g6vSbNpAMPVgU+nFv6vMs4JrWof orTd9nXsrs1x
wXPR+ivVTcrtxMz7f6uerp7VVWswoTElozNEyMxjK5aYbUW1ykyhIW2QQLSK kegUoSCBUVpE
M4Hoc88tlvF2ypC+TUTLUTWzlDQkUICSCSNQ9MdkyegJa5627LvGYQlCnGpx a3HQt20KUQq5
RDi6XnWCdoj2RhegolWmy7JBjlW7W3J1VC4W6IBSpWtRR6DrIHVFJ9C6CfNq Pj/lWelsz5pV
c4bohzlUuJ1wugNKSnmoBWlxYQkitNVSP8NYrGwcG0LSoIVjculVq1FKmQCA m66oOz7C9Rym
Ln5rYEUoC5JThbttU4+4tXRIKakqJNKDbujXl9CdGGJRUq3hg5JQoQX3FehY 2lVRqcXxiPkD
0/7qPicSz9lwcH0OwPFpHnko8vki640L5cJNULUg6v3pMbn1eYZ+2/5KYteG yMth0oJWUQpD
QUtdFLUslSlFSiSokklSidZ9MbMT8genfdR8UcSz9lS/q8wz9t/yUw+rzDP2 3/JTF0hD5A9O
+6j4nEs/ZUv6vMM/bf8AJTFf0z0flNGZeXn5d967l0p/RSanTrr/AGWwVGPq kVzTTZKf/wAy
f94vb9F6GzVFyi3ETHthanpbVMxMUuHo1ikgwwKDE221vcu8lnRudTyi6gkk hvaaDXFo0DUu
ZmNIp5MtNsszWLcozziWcYUtIlmE3WrSFUuSobPRFp0cI8no1jZHSSRVWsbf 9o75nV1aPkum
ZCcSmrh/982P+U1GeAfqXf7xb/1DGWnxSMana+vt0+C1GOAfqnf7xb/1DHg+ lfWnUfl/l5lH
0iXvpAlKzOoWkKSqeAIPp/o7cbEthWDPaYTWFpwnDzKy8sFrrLKSsOEpoAom ixQkmgFKpGvX
TV0kaQ+ifZcqULnAlVDQ0Mu3GsnQ3R7zpOCLlJ1KTKGZbe56vpUUlJFCKbVD YT6K0qI+ju+K
Xfb8y7jmFYdhmnGjJw+TZli69Mpc5NNLgJdZAMeGjmP6cIlZNnF8EecmX3hy ijLK6CFJZ9KU
hIoVuq6Q1cnZrPSPhJaM4Xo/p3o45h4fufcmELLrpXqDCzqrs1x7yn0oybkm 64vB51TrFvKp
bWkJ1y63yRcQSAhB9GskUjFojDNKtN/JksH9FVvPiSW4t1TDrfKvJZCgm22q DyhKDWgVQlPo
EXPRx/FHxPIxZplDjM0ptotsKbSpsAFKukTdWu0avRtENHsXlsZ5/wAi2tCp KcclHApVSVIO
3VqoRQ/466GoHUsT18TATQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6 +JgFBuHCFBuH
CFo6+JhaOviYBQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6+JgKzpZO 4vJ4phKcPZmF
yqy8ZnkWSuqk22JJDa6A1Vl/9Qpr4CtJ9NmXnFu6KuuJEpcEtNKKOVopQA1X HUQD6KoOwqAi
0Y7j8rg2JyUtNqbbammphYWpyiipuyiEj+0pVx1bdUViW+kth5SZgYPNmSdk UTDJS4m8uFUz
VB6VNaZeoPXr6gvODPPzWFSkzNy6WJh1lC3WgFUQojWOkAdu8Axt0G4cI+ez P0o4TJs3T2Hz
cu7c4nki4kqNiakihoRXVt3GOrhWmTE9jkvhJwudYddUptS1rSUtrBf6Jodd ebLNRq1iAttB
uHCFBuHCICR18TE2jr4mAUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaO viYBQbhwhQbh
whaOviYWjr4mAUG4cIhQFU6ht/2ibR18TGKkiqdu3ed0BR3MW0qIK8Ow6cmG DjCGlmYlQ261
LXoSuiVBAUk1WQpN1EjWSTq8NI8Z0uQvElYPIzS0dHkAuTUAhNWrSDYSSoKe u6KrSlOobTsz
Omim552VbRJulrEVyqil4m60s0QNf608qSB/+Wr/AA9sb0xYkV41yMzhzqMP kZacbUZj7SXV
rSQrXq+wKH3hAZ4pieNFyWRJNTba3MLmFOByQXY3MJ5OypCVUJq5QVINNVfT pSU1pU/J87mj
i0vyGHPOuMtS7JW8q9YZCLmv1pQkKUDqBUkWiurpaQaUNyOIJlJJyRmluYfN TKEc5AUXGSjo
7aU6RrutMV/D/pEmZsutjDksqRL8ohThol0BZBeAKgQ3aLhq6X2bq0qF/wAG Zm2cJlWsRfEz
OJaSH3QkJC101mgAG3qEbdBuHCOZotPqxjRzD8VcYXLrm5dDpbJPRqKx07R1 8TAKDcOEKDcO
ELR18TC0dfEwCg3DhCg3DhC0dfEwtHXxMAoNw4QoNw4QtHXxMLR18TAKDcOE QgDXqG0+iJtH
XxMYoSNe3afTAZUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbh whQbhwhaOviY
Wjr4mAUG4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhRO4cIW jr4mFo6+JgK7
oxNYxMz2JIxJlxLLb1GStmyh5RwWpNBcnk0tKu11Kzr9AsVBuHCK7oxjrmMT 2JSy2W0iUeKQ
W1k0/SuosVuXRsKpuWn95sVo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhQbhwh aOviYWjr4mAU
G4cIUG4cIWjr4mFo6+JgFBuHCFBuHCFo6+JhaOviYBQbhwhQbhwhaOviYWjr 4mAUG4cIUG4c
IWjr4mFo6+JgISBVWobf9omg3DhGKUiqtu3ed0ZWjr4mAUG4cIUG4cIWjr4m Fo6+JgFBuHCF
BuHCFo6+JhaOviYBQbhwhQbhwhaOviYWjr4mAUG4cIUG4cIWjr4mFo6+JgFB uHCFBuHCFo6+
JhaOviYBQbhwjnaQAcwVqEdG0dfExzsfQOYKpXjAfNvo0dmnXsZM2HQtOJPI SlbdoCAQEW6h
UFNDXXrJ1+gWjHmpJ/BJ5jElhuScl1pmFFVoS2Um419GquuKboJpBIB/GlYh iEhKFjEHWilc
wlJSlKrAVVOom2v+Md7G8V0VxXCJzDZrSHDEMvtqacUidbCk1G0VOojbr3Rr HhSXKk9H9FJ9
pnEm5+YUw0OQQlyYtS3a8ldtDrBvSjV1Dfr2mNB9GJdpbaEEIW5fQuCoVYpB 6VKnUtR1k0J1
UjjzODaGTU07MzOlss7MukuPLM2x+kJKCCU0pQckigp/Z6zXFjANAW3FpXpH JPqW44u12cZW
em42tW3raSn9xINYD6CqYYSoJU8gEgnbupX/ADHGIlJqXm21OSzyHUJWpslJ 2KSopUP8CCI+
fo0f0IK3AzpTL3mYXM0M4ysBS3G160qqCP0aQKjZ10MdzR9vRTBJmbmJPG5G 6bNXQZloAq5V
1wq1U11dIruSndEi1Qjm+XsD9tYd/FI/GHl7A/bWHfxSPxgOlCOb5ewP21h3 8Uj8YeXsD9tY
d/FI/GA6UVzTTZKf/wAyf946Xl7A/bOHfxSPxjk6TzEpPNyqpScln7X01Dbo UfTuiJ8ELzo4
E8wRqGzdHSSBVWobd3VHN0dQBIprXZvMdFKRVW3bv6oyXfK9PrfLU7Wn/f26 fBajHAP1Tv8A
eLf+oYy0+CfLU6D6J9unwmoxwD9S7/eLf+oY8L0r606j8v8ALzKPpEvXSRtT qJ9tLq2iqcAC
0Uqn+jt6xXVGqzo+750P4azpvjHlMy4decSw19kFICVLt1npJNPQCN4rtaSB 1SZ9LC0IdM6A
hS03AHm7dCRUV4xqsYdpcvSZ99nE9FvKzLNjzycIeCghVptK76Em1JpWtAI+ ju+KXfR5luy+
AzUhpto8jEcdncZbfXMt8nNJRagc3XXUBrqNWv0R3sH090Xfkpky7zjDEi+9 LWts3pCWWwsr
HJggIsIIJpu26o4UpL6TNac6OnSPEcLmmy5MhpMpKqboeQXUqKlnVSLBLz+h b7bTwl5Nph+W
LLb78kWWlsBNKBawAW6KIFNRB64xaOhhWlmBYlibeGSk+4Zxba3AytlSFAJW pCrgpIobkKFD
r1R36HOruiusTehsviinWMQwFqfQldxQ82HAmqnF1oa0reo/+4743xj+BkrS MdwuraELWOco
6KVW2k9LUDemh9Nw3iA6dpzq7oWnOruiOlmTw8Ymi8yeHjALTnV3QtOdXdCi 8yeHjCi8yeHj
ALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3Qt OdXdCi8yeHjC
i8yeHjAcTHMeYwjEMPknmn3FTpdIWilraUW3E+n+0Nkc86e6MNqSl/EXJflE qW2HWFpUUJaQ
6VFJTUC1xO3fHSxieweUn5JnEijnMyHW5esspw29HlKkAhKfs1JoNkct2a0B eeSHJnR9Sg0s
pUot2lsNtpVRVaFNimgddKWj0QENaeYGZR6ZmVzUolhauW5eXWnk0B9xkKUS mgqppZtOug2R
v4bpPITuPKwcJnWZjk0uN8tLLQFgpuprSLVAD7JofTSPeRwPR9WHpTJ4dhi5 N5CVJ5NlKkOJ
uU4k6tRFy1KB3qJ9MbMlg2GyS21ykhKMqaFEKQ0AU6qaj+40gN+051d0LTnV 3QovMnh4wovM
nh4wC051d0LTnV3QovMnh4wovMnh4wC051d0LTnV3QovMnh4wovMnh4wC051 d0LTnV3QovMn
h4wovMnh4wC051d0YqBuT0jt6t0ZUXmTw8YxUFXJ1jbu6oCqYhprKSDpTNSc 0hCZ4SZdqgtl
VUCoVWhNVgWjpdFWromM8X0xl8OmpxhUjOvc2JBWgJtITyXKKOVKOWQSTQUq fRGu3O6FS0v+
ilEBlM8k0awx5SQ+tdErolJ1KXsX9kkbdUbOIp0Sk/Kjc1h7A5vLtOTyUyC1 1ZNwQTak3J/R
kGlaW64DdxrHmsNcS25LTD4XIvTiVNWqCg1ZVI6zeKeiOQnTiWdYZfYw2afY cZcWpxtxpSW7
HeSVca6k3/29lATsBpv4qvReTm0PzzEuh4ST8wh3mqjRjo8rRQHpuTVI1mo1 RpM43oUismzy
CFuyiUllEk4FlpLikJbICa1DhWkI23EilTAWLR/EmMawSTxaUUsMTbKXUBVK gEdWrhG/ac6u
6NTBnJR3CpVzDeTTJqaTyCUNlACKagEmlNXopqjbovMnh4wC051d0LTnV3Qo vMnh4wovMnh4
wC051d0LTnV3QovMnh4wovMnh4wC051d0LTnV3QovMnh4wovMnh4wC051d0Y oBoekdp3RlRe
ZPDxjFAVr1jbugMrTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjC i8yeHjALTnV3
QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi 8yeHjCi8yeHj
ALTnV3RFpzq7omi8yeHjCi8yeEBxcDxtjFpuclmmn2lSy9q7aOJ5Rxu4U95p eo69Q3x2rTnV
3RyMGVhBncRaw1hDMwiYHPBzZTRUs6wrWBcDUmoqDUx16LzJ4eMAtOdXdC05 1d0KLzJ4eMKL
zJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtO dXdC051d0KLz
J4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ4eMAtOdXdC051d0KLzJ4eMKLzJ 4eMBikGqukdv
VujK051d0YpuqrWNu7qjKi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3Q tOdXdCi8yeHj
Ci8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjALTnV3QtOdXdCi8yeHjCi8yeHjA LTnV3QtOdXdC
i8yeHjCi8yeHjALTnV3RrYgyXJcpuJ1jdGzReZPDxjFwKt1lO0ejrgPz59ID uDvTbicUbfk2
VOzDTLziUqDqmXQ2sAJqR0iKVGsRTZ3RTAmphaFOuLtLpcKGFKCA3ylxNB/+ UsddOuP0Etz6
Pn5+cZmGcNZeU66XnJmULKHFtugOFLiwEqIcIqUk6yI9pmS0BlJpYfGAsPzD ji1k2JUpYDnK
Emu0Dlak+91wH5zndFMGlkJdo+6yHEtuONy6lJRVkvDYNfQAJArSuuMfNfAk qW28txDqVLo2
llS1KCZgMVASDWq1JFNvSEfoudb+j/D3W0TBwJou2NH9XRILK7LtdEpLYUAT qINPTBuW+j4P
uz7iMCl32lOBxx5Lba02TFqlGpBpywGvYVU9NID8+4XoThmKYkmSkA49dLl/ leSKUU6BoCRr
NHEnVs9Mdn6pR+z7o+54RL6HtY+ZXCG8K8oqlL1c1QkqDIDYAJTsBBboPSAK bIsHM28qOzAf
mz6pR+z7ofVKP2fdH6T5m3lR2Yczbyo7MB+bPqlH7Puh9Uo/Z90fpPmbeVHZ hzNvKjswH5tR
9EwCgeTPCL1oToN5NdQqhFOoR9Y5m3lR2YzRLpTsCR/7YDyw5gssBNytQ6o2 Eg1V0jt6t0SA
oelPDxiE3VVrG3d1QHyvT5IONTtTsn2z/wAlqMcA/VO/3i3/AKhjLT5N2NTt Tsn2z/yWoxwD
9U7/AHi3/qGPC9L+tL/5f5eZR9Il66SF1KZ9TCEOOicBQlailJPN26AkA04G PBuZ0yRpK7iY
0Rwzni5bki0McAFlQbiBL3KNUihUTSpApUx76SOFpE+6G1uFM4FWIpcr+jt6 hXVHMw/HHZTT
HEMdGA6ULZnEUVLmVa6KrWkjXy1KANkgADWtVSdUfR3fFLvo8y7ElOaRTunW jiccwOSwxtLk
xyZan1TBcJYXUU5NNBTXWsdtvRfRTFMOlsLROCelWWw5JtJnQ4GWgoWlFNqA pAArUdGnVHFk
dIDjenejiBguK4eGXJhRVOIbQF1YWKJtWokxmx9FUnJtMtyGNTjSm0NoBcZQ u1CTcEp2FI5Q
rWKGoK1DZqjFo78z9H+jcxKKlXpElpaVJIDpTqUHAdmz9avu3R4saJaKzXOp CXtU6lAQ+lp4
BSB+iSNQFEmsqihAFCk0oY8HtAZZckJRmeUlPMWpRSlM3LJbcKyqoUKBwkhx P9oU1ikdbRPR
hnR+bmplqZefVMtNtqCgaJsU4qoJJJ/WHaSdW0wFhTcEgADUKfaiaryp4+EL vdVC73VQCq8q
ePhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4+ELvd VC73VQCq8qeP
hCq8qeMLvdVC73VQHKxLDsNnp6Vcnm2lzDaHm5cKXQ0XS8gb6JGsbI503oTg 0w2tARMMhbXI
qLUwU3IKGkFJ1bClhsEemh3mPPTXRl/SUsNieTJsNNOJJDIcUorUmooTSlqS N9SCCKa9KU0C
al1NrRib6nxMNTDjim6lSkOOrrS6lSHSnpBVAkaqgEBc2GyyyhpPSCEhIJOs 0H7o9Kryp4+E
UrA9AJbDJuUmvKE0+7KuXtrUCVK16yqqj0lDUoigOs0FTF0u91UBNV5U8fCF V5U8fCF3uqhd
7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3uqgFV5U8fCFV5 U8fCF3uqhd7q
oBVeVPHwjFV1U9Ebd/VGV3uqjFR1p6J2/wC0BWZDC9GmHUzDE2wsy88mlZwF KHqKQhr/AA5V
VEn0kemkeeL4PgLzs8qexhxtwNSzc1dPJBQlC1KauBGqqlK2/ar6Y8F6BSji 2XHcRnLpeaZe
YsAACWnL0pUDW5WtQu1GiuO5imjc5PnFFOYm2leISTMooiU+xyalqu+3rryi tXo1btYe2K4d
hK59LmIYkUPNycwOTdmU05BdvKKKVDWkUTrOoUEcRvR3QKV5GZbnJJjkpUOt OJnkptQF38sD
/wCvpV+zXXSO3jGAP4pNoemptlbaZSYllNGWUApLth2hYIpYnZr26x6ONKfR 7Ky01zlM+6+s
yy2liYQpaVqWtS1E9MGlyyRruGalQQt+DMS0thUqxIFC5VDSQ0oOXBSaajX0 121jbqvKnj4R
rYVLqksMlpNb780phpLZedNVuEClyjvO2Nm73VQCq8qePhCq8qePhC73VQu9 1UAqvKnj4Qqv
Knj4Qu91ULvdVAKryp4+EKryp4+ELvdVC73VQCq8qePhGKLqHUNp9MZXe6qM UK1HonaYDKq8
qePhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4+ELv dVC73VQCq8qe
PhCq8qePhC73VQu91UAqvKnj4QqvKnj4Qu91ULvdVAKryp4+EKryp4wu91UL vdVAcjAJORk1
4hzCbMyp2cW5MhT4cLbp1lJ1VFARQHYKDZSOvVeVPHwjl4Vh7klP4pNLfDon 5pL4SGreTo2h
ulbjXUgGurXWOpd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6q F3uqgFV5U8fC
FV5U8fCF3uqhd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3 uqgFV5U8fCFV
5U8fCF3uqhd7qoDFJVVXRG3f1RlVeVPHwjFKtauidv8AtGV3uqgFV5U8fCFV 5U8fCF3uqhd7
qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IVXlTx8IXe6qF3uqgFV5U8fCFV5U 8fCF3uqhd7qo
BVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IxXdQahtHp64yu91UYrVqHRO0f5wFM f0V0OxydmpVc
w1PTDL7rqmBOBwyq1u3udDXbcsawoHZSNw6EYEHplZS9fNLcUoKfuHT5W9IS QRaeWcNKemOb
jP0eNYqpRfxR5KUPzDrCUNFNA+8HnEuFKwpYqkAUKaU9J1xlMfR+3MzUzMTO IrmVOLfLSXWC
Q0l3l7gCFhVf051gg0SB1wHQe0SwBpCJV8vcnMLCENOTRN7gllM1FdZVyQNd f9mu0Vjzl9Ct
G5ie8pMh51SHFooJpSkBQmQ8sU9B5VsVHu0jTmvo/lpppbM5PF4LsPKKlkh2 9MspgUIIASK3
hIAoqu+MHPo8ZfxBcw7iz7ksu+9gsJ6V02mZUCoHWKptoa6lK3wHawPRzBcD xZCpG9EyZYob
aXMFQDYDSVEJP/obqd/74sVV5U8fCKpovog3geNeUefOzTnNBLAuNALICWhV Sq6/1QoPRcYt
d3uqgFV5U8fCFV5U8fCF3uqhd7qoBVeVPHwhVeVPHwhd7qoXe6qAVXlTx8IV XlTx8IXe6qF3
uqgFV5U8fCMUlVVdEbd/VGV3uqjFKtauidv+0B8r0+BVjU7rpSfbJ+E1GOAf qnf7xb/1DGWn
wKsanaav6e3X4LUY4B+qd/vFv/UMeF6V9aX/AMv8vMo+kS9dI3W2UzzzqrUI nQpRpWgEu3GD
Wl2jHna/iq8bdSwJVLLTaRMlK1E1WpTdtoICUAECutW+PXHykKnSogJE6Kk7 Kc3bjKVxBtX0
gTTDruGDA0yf6I/oqcrVvXWlTWqxSv8AZNRsJ+ju+KXfb8y9pfSPBsd070aR hU2ZgsOzC3f0
K02gsLANVAemPPD/AKO8VwuRKcNx8omXZIMvlajyanOTUhRtCaFP2TrFSbia k1jeeewtzTrR
cYe5JrUHpm8MKSTTm69tI1sLlvpOw2SYZL7M8t6ULrinilZYf5MDkySsVF4u qKjpKGoBMYtG
L2iOk0jMzUzh2Isuc5nnXVNofUyrk3JltZHKWkpogLBt169UfQMKRMMYZKsT s0JmabZQh562
3lFhIClU9FTU0jZaSpLaUrXeoAAqIpU74ygIvTmEL05hEwgIvTmEL05hEwgI vTmEL05hEwgI
vTmEL05hEwgIvTmEL05hEwgOFjcpibuKyE/hq5U8g1MNOIfeUgfpCiihak1p YdWrbtEVaT0U
0wCjNvaSIanVyvNlqafcUm0OTS0/aFSU8syAo1P6M69Zr2dOpfS152QXou+G ghL6ZgKWkBRX
ahB17Sm5SxvKKemORhg+k5eFOS01zeWmESziW3qNLUpwNkNmtxBqq0mqdt3o IoFm0Rw7E8La
mWsTxVc+FuBTJW4pakJpSlT1Ad52kk929OYRSpCa0/56jnUg2qW54hJALQUW KKqoqCzr+wSA
nbcAaUMaCH/pLnMMUl7DhKTYDa2U8szaVCYqUurSqoHJBI6A11X1CA+iXpzC F6cwinYM9p4/
iiE4jLMSslzlu40bKuR5Fwq2LOsuBsHVqqqlRrFyEBF6cwhenMImEBF6cwhe nMImEBF6cwhe
nMImEBF6cwjFSk3J1jb/ALRnGKvtJ/f/ALQFR8g4mJouIRhwSMc5+j+kLqlo t2q/sfbJqabN
Z1xjjeBYtiC8acQ3hiFYhIyzLYMyugebWslZ/R7lgA6z0Bs9GlNSumbyuWkx PShOK3Jl35ht
aUsXIF5UlwkpKUrNhz0pqBiccltNJl/EXZJM6w2sXNNcu2LtTViEkL6BBD1x rrqn7Q2B1NIM
GxHFcQS8UyjTRw+alHC3NKS4eUKCih5MjVYa12XbD6eDIaE4zLTaXnsQlJtA kHJbklEBKSta
1BKQWlJoi4AVFpCRVutCOxiLelLxlUNonG3PJcwzMvtONcnzn9HyawkrB1kO UOqlRWno5GHy
n0kCdbvcQhBkltjlpgFDay4opKiLipaUFI+yaqFbiKghd9HZVzDsAw+QmHkO vS0s20taSaKK
UgEiuv0emN+9OYRz9F04kjRvDEYx/WKZVsTXTC/0oSLukAAdddcdGAi9OYQv TmETCAi9OYQv
TmETCAi9OYQvTmETCAi9OYRihSaHWNpjOMUen95gJvTmEL05hEwgIvTmEL05 hEwgIvTmEL05
hEwgIvTmEL05hEwgIvTmEL05hEwgIvTmEL05hEwgODo3h0zIzeKzE23JtKnJ wuoEs4Sgo2JJ
SUiiyKFRqqpJ10oB3b05hHHwMYknEMZE61MIlzPJVJKdcSoKa5JsG2iiQLwv UabY7MBF6cwh
enMImEBF6cwhenMImEBF6cwhenMImEBF6cwhenMImEBF6cwhenMImEBF6cwh enMImEBglSaq
1jb/ALRlenMIhO1X7/8AaMoCL05hC9OYRMICL05hC9OYRMICL05hC9OYRMIC L05hC9OYRMIC
L05hC9OYRMICL05hGK1JoNY2j/OM4xc2D94/zgPnWIaHaRGcmZrCsWlsNdW/ MLU6w8pLk0h1
8OJDhsISW0i1JovaRqBIO5NYBpdMTb7zuPAIDj/NkszjjRSlYftJoilU8o0A CFAcnXqjUn2/
pEl5yZfwhl1ZL8wFibfbW2tsvgsKaRf0bWrgQSitfSY3JmY+kN2bmC1JplmW lvpZtDKw8KP8
kogrrTUxUVSak+itAwntGtJZ5CeXxptt5tSHWXmZp0BtQlVtlKUEHVyqiu4k qINDsEYJ0a0t
TPONtY8wxIOKcWvkXnEuErnQ8dVKA8neiqaHp9QMek+fpAmkpWwyZR5paHEJ vaU2oc1XclZu
BUeWIGwJAtI9MYIc+kVE85KsyaUyy1uqE06405ZdOgpom4GglyvUaioSN4Id DRjA8ek9IRie
M4q1OhMlzcFLqzVRDNTYQEp6TazUazdrpFuvTmEVLRg6YvaRJfx5nm8omStK G1oLRdIZOoBR
USCHRUgAeitaxboCL05hC9OYRMICL05hC9OYRMICL05hC9OYRMICL05hGKVJ qrWNv+0Zxija
r9/+0B8q0+qcanbT/wDft1+C1GOAfqXf7xb/ANQxlp/d5bnbfX26/BajHAP1 Tv8AeLf+oY8L
0v60v/l/l5lH0iXtpE228J5p1CVtrnQFJUKgjm7eqNeX0ewFWnb2Br0UwwyS ZVTyXkIBKSOS
oF9KouK10BSNSKgmpp76SNIfTPsrKglc4Em1RSaGXb2Eax/hHOxfRrCJCfmJ MOY+64huWU0T
jTyQtTzpaAO20AipOvV6I+ju+KXfb8y7qcBwfBdONG14ThkvKrecmUucmml4 DCyAf8Y9pPSD
SbmmGzfk52aecqrEZRUi4zzY0FUIVabyCSAdhpWscnRvB8NktJ9EcUw93E3E 4gl1YTOTbjpQ
kyylCgUaA69Zjr4b9JUm/MyEtN4NiMu5Py0s8yEdMVe5StdnQTYOltNTqFIx aN2X0kx4zWHJ
f0acQidbllLtStQly6XahXQGtNjd266OY1pzjrWGoen9Fyw7yUreVNvJQHHV y6CKcmTqLy6A
VV+iVUCoMeuD/SfhM5Ih9+SnELLthS2Um1OshXSUCroj+yDU1CakEC/ltChQ gkbdZMBVtDMY
xzE519vGMDXIsrRyrClJIKBa3VtVUgVqo0IOu07ItdiMqeERYPe7RibRvV2j ALEZU8IWIyp4
QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRv V2jALEZU8IWI
yp4QtG9XaMLRvV2jAVLTvFNIsLdkPIGFCfQ4l/nA5EqKVdFLWsbBesE+6lR9 EcTDtM9J1SaH
p7ROYYDTS+XJlnVLcWlskWISkkXEatv2gNsdr6QNL0aINybr0guZZmC5csOl NlhSpfoNaNcs
5/8A4qemo1sK+kLDZ1tpK8MxNl5b/NlApFiXqKqm4qFRVJTWg101axAaLumG lBUSNEJhvm5S
pwIbWtLwMotwhJsrQOBKagVJFKVNI9MH0r0nfcMq/oo6pZWm2YW2402oLmuT BoUVols3GoB6
OsAGo3MD+kHC8WmZaUYwvFhMPrYRQpRYlTrBf+1fQhKBrp/gDGq19KWAGQE5 MYfi0o2psOID
3JVUkoSs0AdOxC0qI20rStDAX4IRT7KeETYjKnhFMY+kHCnZlqXGG4slTqwk FQboEFbaA4f0
n2Sp1PvbdUXIJFNqu0YCbEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9 XaMLRvV2jALE
ZU8IWIyp4QtG9XaMLRvV2jALEZU8IxUlNyeiNu7qjK0b1doxipIqnbt3ndAU VjGtJlTTJckl
BnnyGnkJklhyilFJSmooUo6KiskAgmhJFI2sbx3E2VY0qQl5hbcvIy0xKf8A ZjqipaluBaNn
SNEoNBrTdrhPaaIk3FNKw9TzgxlGGksurWhCVKbHKKUE9E/pR0TtPppUjV0i 0+GFuYglnDkz
iZcgM8lMkqc/U1JFNQIeqmhN1ioDpaQYviLWIJZwpha0Lw+aWC5IuWpfbKLK qpQVqvV6aaor
rGk2ma5pht3BHmZdcsC46ZFRUirxTyhSNVeSouwEmvRp6YseI6UhhUsmUl2J szGGPzqEomiF
FbXJ9ClNhv27RTZHGw76Qlz04mWawq1RknZgLW+pKVLQtabU1SDRQRckmlQR AXPR52Ym8Dkp
mfYDU04ylTqS3aQaZTrH7jsjfsRlTwjQ0fnU4rgUhiYRyfO5dD1gWSE3JBpU 0rt3CN+0b1do
wCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiM qeELRvV2jC0b
1dowCxGVPCMUJTQ9EbT6IytG9XaMYoSKHWdp9JgMrEZU8IWIyp4QtG9XaMLR vV2jALEZU8IW
Iyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9Xa MLRvV2jALEZU
8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMRaN6u0YCvaLz2KTs/iTWI SpbaZetZUWC3
/wCK4m0E/bFiW1XDUb+qLFYjKnhFf0bx1WMT2ISypYM80colSXiuo5V1uitQ tV+iJpr1KTri
wWjertGAWIyp4QsRlTwhaN6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertGAWI yp4QsRlTwhaN
6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertGAWIyp4QsRlTwhaN6u0YWjertG AWIyp4QsRlTw
haN6u0YWjertGAxSlNVdEbd3UIysRlTwjFKRVW3bvO6MrRvV2jALEZU8IWIy p4QtG9XaMLRv
V2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8I WIyp4QtG9XaM
LRvV2jALEZU8IWIyp4QtG9XaMLRvV2jALEZU8IxWlIA6I2j0dcZWjertGMVp FBt2j0nfAfOp
/SnSqQnZlTOj8xijSZiYbLKZNbXIhL4QyoLIPKBaCVEpBpSuoRuTOl2OGbfb lNFn+Tl3H0KL
zLqeUKA/ZabKUVyTZrrH6QDbSvlPfSPL4bOut4hhjrjHLzLLXMni+9cy+Gum ghIRdWo6R2ER
tzH0hYQibel5eSxCaUwt9D/JFFUlrlqgArBJPIKoNutO/UGvP6UaRLSlzD9G 3QW1oWpl5l1K
nWzKrdOuwhPTogAEm4UNKxgnS3SJE85h40Wmph0rdLbzjDjbQHPQ0hJUEEfq lcpX0hB31jZn
/pBkGmkvymHzs0wlxAeKXGwqxUqqYqgFeuiQKk0BqaEkUjzR9I+FImXJJ2Sn HZxK3bGpdSDc
lM4JVI6S00UStCqGgpXWaQG5oxj2MYvpElibwR7DpMSXKqDrKweVIZUAVFIT /bWKAk9E1oRS
LfYjKnhFU0b0xk8fx9OHyMs+lnmZmS66tINaMkAJCiRqd1kgaxqqNcWu0b1d owCxGVPCFiMq
eELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0b1dowCxGVPCFiMqeELRvV2jC0 b1dowCxGVPCM
UpTVXRG3d1RlaN6u0YxSkVVt27zugPlen1U41OhI/wDv2/8ARajHAP1Tv94t /wCoYy0+NuNT
oAJrPtj/AJLUY4B+qd/vFv8A1DHhel/Wl/8AL/LzKPpEvXSRCnUT7aHVsqVO ABxFLknm7esV
BHERysb0emGZnFHMQ0xxJ56WkEvTSzhEmtS5e5RAqWqqAKCaeikdPSczFJpE pyXOHcSbaaLt
bApbTSQVU10qddI5+M4VpjMTM+vEsQ0MQ5MyHITSS7ON1lgTrtDwCRVRFwod ZFY+ju+KXdR5
l1cLwfEcM020ZM9pJO4s2tb6WW3WGWktUl1awG0CurVStI6eHfSLohiHNCUz DSHJfnCVPS6a
NW8r0TQk3gNqNorqUmm2OByulOG4jgWM44/gM3Iyq1pl04cHr1lbCwCVLUqo oNu0x5S2kGiE
wwpSdF5CXZTehS3gqXFUJDKta0pqQKIrt1U9ELfT3Lka0wV3qKJ0ldXNK9GG nsRbnCuW8lhL
jpek1CiOTbcvAtqLeWTUbUk6wI6GG6UYRiWOHCMPnDMvoD4dKBqbU0pCVJNR rNVjZUajFLem
cFxeUWHdGZKeZd6C1mbvvoEJNVbSf0SAdf8AZ1xvYdiTGHzJmZPRxlp0lw3C ZJpeQV0rsuKQ
TTadca8K9hTlWsvoNDnPdChznuioed8/7IR/EeEPO+f9kI/iPCHCv4Ry7WVv oc57oUOc90VD
zvn/AGQj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7 IR/EeEOFfwcu
1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ87 5/2Qj+I8Ied8
/wCyEfxHhDhX8HLtZb+k+kWGYJN4ZJ4gy+6rEXlNNFCEKCTclJKriD/4g2Am ldUc4aZaMKxO
xAWtHNzNGaTLahatxpQItvuCmlA6o4elmk2EuvyDGkOBSzqnFkS6XHVKSSpS NRoKUuLf2tVb
fTSNBM9oimRSgYBhHNw2SlXPxqQlxSyQquwLUo1rtJiOHex8YTyreV1b0n0a TOSSJZwLE2/z
Zl9uXIQpwJNEpVb0vSOjWmutKGLCuSlloCVstqTuLaSP8o+YpxXR2WYbPkPD EMsLS83dPC1p
Q1BaamiTqOsUqQTtjtS30gl93kWpBlbgcU3aJjXcmtfR1HX1Q4d7Hxg5VvPw XYS7I1hKeyPw
j0oc57oqHnfP+yEfxHhDzvn/AGQj+I8InhX8I5drK30Oc90KHOe6Kh53z/sh H8R4Q875/wBk
I/iPCHCv4OXayt9DnPdChznuioed8/7IR/EeEPO+f9kI/iPCHCv4OXayt9Dn PdChznuioed8
/wCyEfxHhDzvn/ZCP4jwhwr+Dl2srfQ5z3RCgap6Z29W6Kj53z/shH8R4Q87 J9VT5IR0df8A
3j/Dd1xHCvY/ZPKtZejmlmDyuKeTXJN9mZdnCyQUtBKinkyXLrqEAuIG26p2 R543pVgWFvTj
EzIPq5E2KUG2gh2zk7gCpQACeVR9qg16qxU2tJdHQlATgSFJbnbkkvOlKHVr GupFAlS6e4VD
0kRnOaU4BLvTjD2CAOqCGn0oedUpf2AEi0VVtbCgK16N3ohw72PjByreV0xH HcHl2mZlyTdf
afw16fbdQyghTSQgqTrNakOJ6ttTHMe00wFMoxMqwqadlnmFJS6hEutAtdDP JGi6/rCEg0sJ
Na0qRyJ/SbDJScbcmcGDDzco8tspmnE2Mm3lKUFBtTqGvZTYI0xpno0GVSic ElgHZZCSgLXf
YlxVqfs3BYcKiB9u6p2xHDvY/Y5VvL6jhUy1O4bLTcuohl5tK0AFJoCNWtNR wMbNDnPdFGwj
S1ScLlk4dgzIlA2nkQl+gCaatorxja875/2Qj+I8Itwr2P2OVayt9DnPdChz nuioed8/7IR/
EeEPO+f9kI/iPCHCv4Ry7WVvoc57oUOc90VDzvn/AGQj+I8Ied8/7IR/EeEO Ffwcu1lb6HOe
6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOruiEA6+mdp3RUfO+f9 kI/iPCJOlk+j
bhCNev8A7x4RHCvY/ZPKtZW6hznuhQ5z3RUPO+f9kI/iPCHnfP8AshH8R4RP Cv4Ry7WVvoc5
7oUOc90VDzvn/ZCP4jwh53z/ALIR/EeEOFfwcu1lb6HOe6FDnPdFQ875/wBk I/iPCHnfP+yE
fxHhDhX8HLtZW+hznuhQ5z3RUPO+f9kI/iPCHnfP+yEfxHhDhX8HLtZW+hzn uhQ5z3RUPO+f
9kI/iPCHnfP+yEfxHhDhX8HLtZW+hznujm6R4szgeGmfmUPushxKFcnZVNxo D0iPTTZrjhed
8/7IR/EeEauJ4+5iUtzadwNDrNwJRzogK6iBtHUdRhwr+Dl2su7o7jmG4vO4 rKyDbrbkhNFm
ZKkoFywSCdRr/Z9NNVI7tDnV3R86wPSWWRO4h5NwFtqZDtZqrqkqJqpX9ofZ JUsimolSiNpj
q+d8/wCyG/4jwiI6K9P9E8q1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/wCyEfxH hE8K/hHLtZW+
hznuhQ5z3RUPO+f9kI/iPCHnfP8AshH8R4Q4V/By7WVvoc57oUOc90VDzvn/ AGQj+I8Ied8/
7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6 HOe6FDnPdFQ8
75/2Qj+I8Ied8/7IR/EeEOFfwcu1lb6HOe6FDnPdFQ875/2Qj+I8Ied8/wCy EfxHhDhX8HLt
ZW5INVdM7erdE0Oc90VDztxBNCcIR0tf/eP8N3VDzvn/AGQj+I8IjhXsJ5Vr K30Oc90KHOe6
Kh53z/shH8R4Q875/wBkI/iPCJ4V/COXayt9DnPdChznuioed8/7IR/EeEPO +f8AZCP4jwhw
r+Dl2srfQ5z3Qoc57oqHnfP+yEfxHhDzvn/ZCP4jwhwr+Dl2srfQ5z3Qoc57 oqHnfP8AshH8
R4Q875/2Qj+I8IcK/g5drK30Oc90KHOe6Kh53z/shH8R4Q875/2Qj+I8IcK/ g5drK30Oc90Q
sGn2ztG7fFR875/2Qj+I8Iedk+vUMIRq1/8AeN2vdEcK9g5VrLCb0y0Xk5iY bxVlzD2VuPoE
xMMtluYUy6G10tKlalKH2gNWv0GNud0m0TlnHGnphtQq8p4plVLSnkw5eVEJ 1U5J0V9NDvik
q0j0XmJ6aQ7gcomY5Vxa1uzC26LDo5QtrUAB+kpdYdpFY2XMZ0dlZpxS8Hw6 XmJl1xaleUbF
qXRy8g1qPtOk02VUYcO9j4wnlW8/Ba8R0p0akFJccLik8oll11EmohoFlTou NuQVKRUgKFQB
EDSrRdK1uTLnIPoU4kAypWpYRM8hVNqTWrik0A19MGkVF7SHRmTLbLmDYW2l 0IbS3z0WU5FS
Ekp2CrQUm47RqrsiGsa0XM67iIwHC25htSw4tc2EEWzFVEg+jlkg19JA3CHD vY/Y5VvPwles
Hx/BMQxsSOFqLrq5Xly+hm1Fg5OguIFTRxJoK09NI79DnPdHzHB9IsHkcb5L C8DkW58y2tLU
1UpaAbGzYAQG/wB9Btjv+d8/7IR/EeEOFex+xyrWVvoc57oUOc90VDzvn/ZC P4jwh53z/shH
8R4RPCv4Ry7WVvoc57oUOc90VDzvn/ZCP4jwh53z/shH8R4Q4V/By7WVvoc5 7oUOc90VDzvn
/ZCP4jwh53z/ALIR/EeEOFfwcu1lb6HOe6ISDVXTO3q3RUfO+f8AZCP4jwgd LZ9IuOEIorpf
94/w3dURwr2E8q1lWdPjbjU7tNZ9sf8AJajHAP1Lv94t/wCoY1NI8QTiLz08 G7A9OoNta0/R
ND/aNvAP1Tv94t/6hj5n0ymafVuoifs/y47VUVX5mHtpAVJeddSm4tYsy9b6 SENtKIHXQRnj
jmPTmJc/kpGbkXEyLsqhRl0uKSXFIVfW8DVYNVPTtjz0kdDKZ91SVqCJ0KIQ mpNJdvYI4ekO
PyWJT2LOowjEeSn8OblKLkFBVyVqUFE6xqCzTrAj6K74pehR5l3Jht6alsC0 bVIKw5aVnklu
C1tXJsrqAKqI1a9ZP7402tAmMcbQuVn8LnUS7r6qsTXKBKnXQ6qtK/2gKRtY Bjktieleickz
LT7apIPBxcxLckF/0ZSeiKn0+iLO/oitTskpjFnWUy87MzSgGT0uWmA9QUUK Ea0VINUqVqFY
tb6mu3Ttp8K12Ka53S4+DaEYphEiJOTMkGgoqAUtRoT/AIRu+bWP5pDtK/CM hoIkNy7XlRa2
2GpMAOS5WVOMLC+UJUomqqGtKa1VNTGWjGhDuDTmHTTuOzk4uSQEdNK6Oi14 KrVZ1qLqVHrb
H+Gkdfehnw7bz82sfzSHaV+EPNrH80h2lfhF4uG5XZMLxuV2TE8+8cO2o/m1 j+aQ7Svwh5tY
/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7Jh eNyuyYc+8cO2
o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+aQ7Svwh5tY /mw/tKi8Xjcr
smF43K7Jhz7xw7b5TpfoOrF5jDzjE7hzC23LZdJfsLiujVIqK16I+zQ7RsJB 8pX6L5htt9tq
al1Pnk0re5Wq0KQoLQaW2giidVKEAVB9P0LGcEbxPEZKdVNPsLlGn20hu4VL luskEVAt2HUa
9UcMaDWvSrjeNzqBK2ltKQoawJcE/a2kML1mv65XXWvNufgni0fiqJ+hocoX UFlDnIpZCg8T
alKEoSQCkgEBNQaVBUojWY6Mh9Gc5I4orEWHGOWW6XlXvLUFLKVJuNRXYo90 dvQjRLFMImJW
cxDE0KcZLoUw0la0qSpCEjpKOo1RcSE1JUddIu9w3K7JhHW3Ix+hxaPxUfza x/NIdpX4Q82s
fzSHaV+EXi8bldkwvG5XZMW595HDtqP5tY/mkO0r8IebWP5pDtK/CLxeNyuy YXjcrsmHPvHD
tqP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8Ieb WP5pDtK/CLxe
NyuyYXjcrsmHPvHDtqP5tY/mkO0r8IlOjuPJCgVSHSFPtK/f/tF3vG5XZMQp QuTqVt3HdDn3
jh23x9jQcImpdxjHcPSpE3a22JlCkqWmtGaFJrbcogfaFa12RlPfR+pznwnM VkLloCJjlHkV
b5SwE0KeiV8mjWfSOjSLmNGcRW9fMYtKvJcxITsyPJ6wXkppyTZPKarLU0I1 EpBI21zxbRuf
xBWKqXiksheISLEpUSCjYW1LUV/rNdeUOrVSg1mK827+CeLR+KqYjoVOuTaT N4rJJU3KPo5F
1xBTyK7byQpJqBanWdWrXWprxWfo+wpmaZUzi+DtzCJXlmimbRcEBfK8sNX2 bunT7FRWkfS8
awCZxacQ9MzsuWxJzMqpvmixcHbKG4OAilg/fU6xHNXoKl3CUyT2LTDqmkXM rU2oWPGY5da9
Sq0UQlNAQQkEBWsmHNu/gcWj8WlhGimKsYXLNST2HOyyWxySw4VBad9QKGu2 sbXm1j+aQ7Sv
wi3YPLuSOFSsm/MvTbrLSULfcBucIH2jWp4k/vMbV43K7Ji3PvI4dtR/NrH8 0h2lfhDzax/N
IdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8b ldkw5944dtR/
NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH88h2lRKtHMeXS ipDUKfaVF3vG
5XZMQhQ16lbT6DEc+8cO2pHm1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYn n3jh21H82sfz
SHaV+EPNrH80h2lfhF4vG5XZMLxuV2TDn3jh21H82sfzSHaV+EPNrH80h2lf hF4vG5XZMLxu
V2TDn3jh21H82sfzSHaV+EPNrH80h2lfhF4vG5XZMLxuV2TDn3jh21H82sfz SHaV+EPNrH80
h2lfhF4vG5XZMLxuV2TDn3jh21H82sfzSHaV+Eeb+A4xLpSp+YwxpKlBCStw pBUTQAV9JPoi
+XjcrsmOZpNhzuL4YJNiZRLLD7L3KLYLg/RuJXSgUnbbStfTDn3jh21JwHRT E5R3EDLYlJTi
3ZlanrnApTSz/YJSkHUKABVSAANgjo+bWP5sP7So7mj2B+SZ2emTNKe5yvoJ 5IpsTyrrlDrN
yqvKF2rUBqjuXDcrsmIjrrsE9JblR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC 8bldkxPPvHDt
qP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8IebW P5pDtK/CLxeN
yuyYXjcrsmHPvHDtqP5tY/mkO0r8IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDt qP5tY/mkO0r8
IebWP5pDtK/CLxeNyuyYXjcrsmHPvHDtqP5tY/mkO0r8IDRrH82H9pUXi8bl dkwvG5XZMOfe
OHbUhWjmPKCRdIdEU+0r9/8AvEebWP5pDtK/CLulQqrUdu47om8bldkw5944 dtR/NrH80h2l
fhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReL xuV2TC8bldkw
5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw5944dtR/NrH80h2l fhDzax/NIdpX
4ReLxuV2TC8bldkw5944dtR/NrH80h2lfhDzax/NIdpX4ReLxuV2TC8bldkw 5944dtR/NrH8
0h2lfhEp0dx5BuKpDYR9pXp1Rd7xuV2TELUKDUdo9B3wnr70nDtvjcx9GbWM zMzLrxKRm3WH
nFlkPpXzZTi71gotP2lDYsHZQUjZ+qma5WZcMwyTMKcKgpYUkBfKXJCSggpq 6s0IPo9GqO9i
/wBHzuIurX5dcl7XplxnkZZSFWvvpeWhxQXVQBSAKW02649JnQR+am5iYmsd W+VOPlgLl1/o
Uuh+oBDgNRywFQRqQB1ivNufgni0firz/wBGUwECXmZ1laJhYoh58qLjoYLV 1SLirkwfT/Zr
TbHm19Fjj85zxE4y8lK1p5PnBU2lXOA8oUpqPKIFf/TSLNN6BrnGlIm8ZU6S UKS6JUocSpMs
pjUUqACaq5QJAFDXWaxgvQGYXiC3V6QPGUcKyuXTLFJVfOJmVVUFVP2SjX6F K30hzbn4HFo/
FxsF+jqawbEkqlZqV5bm5bQy48TRADaVKApU/YRU/wCVY7vm1j+aQ7Svwjd0 X0TcwbHPKb+L
OTy+aCWHKMkLPRaBJUVGutqoFB9o6zti13jcrsmJjrrseET0luVH82sfzSHa V+EPNrH80h2l
fhF4vG5XZMLxuV2TE8+8cO2o/m1j+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuy Yc+8cO2o/m1j
+aQ7Svwh5tY/mkO0r8IvF43K7JheNyuyYc+8cO2o/m1j+bD+0qJXo5jy0hN8 h0Rb9pX7/wDe
LveNyuyYhKhVWo7dx3RHPvHDtvjeOSSsM5SSeUlS2p1AJGypbaP+8b2Afqnf 7xb/ANQxlp8U
+Wp0n19unwWoxwD9S7/eLf8AqGPl/Tapq9W6iqf60/y5bVMU35iHrpG62wmf eeWlttE6FKUo
0AAl29cc3STTLD5mexVGD6UykuJjD222HnJujaHQtV9qakpUUqACrdo17BHV x6l85WlOfCtf
+HbiNJHA1PYmxh7TKUokWXWFJkUqTynKqDiUqDagVFNuohVK1pQGPorvil6F vzUYPj+F4zpP
ohLy2KSs9NsJeM0GXL7TzZQJJ3V9MdVjRHF5GckpnC8TYlVMzE2t0cqpSXG3 ZttaEkFJrayl
SaaqGgBprjxaEqNK9EFsMtMOuKfLqEhAUDzZWpVuqoP+EeGGTn0kSjcmkyD8 3yyZVEyqdS0S
y4VETCkhtSegElBTt1pUPSIxaNg4H9ILkihC9KWGHkoI/RuhVVFIBJUWhXXU jUKA010rG/hU
jpyjHEzGIYphqpETi1qZbeUaslJAGtA6QIBpWms9VOdiU/8ASQ/JgtYQ3KuT DCKpaKVqYXc9
UVLgFaBolWsCuw+j6JARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZP GJhARejMnjC9
GZPGJhARejMnjC9GZPGJhAVTTjBcXxlkJwjGPJyhJTbJIXS5xwJDdeiaAEGp HSHojlt4Dpm3
MOJTjUuph6f5dZ56pJbYof0SUckRrNKmo2n0646unPnFybHkTnVnJTF3NeT5 Tl6Dkbr9XJ1v
u67fRWOK9iH0ktTs68jCmHAAhtpsIBbqC/0geUBN1GKqNLQo9FVpgMWcI0+k 5KSw9nF5ZQQt
I5ZL+ptCWQBdVuqheKhIAJG1Q1mPdOGaesYe+7NY81NPpSooal1hPKErb1Cq Oj0A4BttK/7V
BHpMTn0hDGGFeTZZyTRPLCuTon+jlbiRUFZuUEpbVUW/bOo0tPR0SndMZyYZ 8vSErJsBpRct
aotS6IoBRxVoBLg9NQkHVWkBy9HcM09W/JP4xjrTcuUsKfYStPKijfTQSEUJ LmskEVB9FBF8
C0508YyhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnj GKlpqnpDbv6o
zjFX2k/v/wBoCiS+i+NommH1zsspTU8h6iplSkLSFHlHFJKPtqSaBIICSkGp FRGGPaM6UYn5
YVK4zKYY5PMLQlSHnHakpbCUGgQUBJQsBSamjhNAY3Zd3ScupeLOKIbVjQHI rDJKZW0pJJB1
oJ6WrpCoGuhjWxl/TFUxiS5OWxNLTqQmXSjkatE8kEKAJ12/pisHbRIG2sB0 McwnGcQnG1pd
lGm/J01KOrbnFoWpS7OTUE2ED7Kq1NRdqrFfltE9L5Z4P+UMLnLZBcumXfmX EshSlqUkUCCb
UBQSD6QkagdYsWOuaROTjaMOTPMtnDppC3C22UB8WckulSami6ejWKiOFhx+ kszrQW02lCpJ
aQH3UWocLirFLUE1UoItqAkAqHoBNAvWCMGRwaTk3XStxhhDalKe5QkgAVKi Bd++grujcvRm
Txjn6L+Ujo3hvllNuJc1b52Lgf0tou1gAba7BSOjARejMnjC9GZPGJhARejM njC9GZPGJhAR
ejMnjC9GZPGJhARejMnjGKFJ19IbT6YzjFGw/vMBN6MyeML0Zk8YmEBF6Mye ML0Zk8YmEBF6
MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBwd GsNmsNmsVU+6
0piZnVPsfpL3AFGpuNB6TqGugoKn0d29GZPGOPga8SOI4yieRMBhM8nmSnbK Frkm62266X8p
t1x2YCL0Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YXoz J4xMICL0Zk8Y
XozJ4xMICL0Zk8YXozJ4xMIDBKk1V0ht39UZXozJ4xCdqv3/AO0ZQEXozJ4w vRmTxiYQEXoz
J4wvRmTxiYQEXozJ4wvRmTxiYQEXozJ4wvRmTxiYQEXozJ4wvRmTxiYQEXoz J4xitSaDpDaP
T1xnGK9g/eP84D51P6MaZCdmZrB8YkZB1b8wouc5WszDbj4WgKSUWoLaAUil 20jUI3JnCdO5
ibfcVjkoy2lx/mwZmSOisP8AJlQ5KlU3simsdAmu/UxCZ+kaUnZl7C5Rc2OX mEqbneT5EIL4
5BTVlFGjV1wJ3emNyZxT6QHJt/m+EMMNMuPpbvbCw9QP8kdTlQnosV1A1UdW 4POfwLTKdSku
Y3LMvtLQ6y4zMKohQlVtlNpbNRyqrqkklJ2AgRijA9OUTrjTGOSMvh7i3VqL b6i6CudDpICm
yB+hvRt2qG4GPSfnNP5hKVyuHtSrzSkOJbU0FIWnmqypK1BwV/TEJoKUoDVQ rGCcQ+kNueck
mcJa5JS3VJmn0pWEXToCRRLgJSJcrNNRqlO+kBv6MYVpNL6RJxDHsTlZptMl yADTx+2QzU2W
ADpIcNamtw1DZFvvRmTxipaMTOmE3pEleOSSZOSTI60NhNnLEMnbeSog8qNg AptO2LdARejM
njC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjGKVJqrpDbv6oz jFO1X7/9oD5V
p9acanSSCOft0+E1GOAfqnf7xb/1DGWn4Bxudr6J9v8A0WoxwD9U7/eLf+oY 8L0r606j8v8A
LzKPpEvXSNpp9M+y82hxtc6ErQpNQoGXbqCI4WleC6E4LPT8q3ongj62JeVd QigCkh18tKUo
FQFqdSq1HWRtju6SNpeRPtKK0pXOBJKFlKhWXb2EUIPWI0cX0ekpB/EWVYxp avmUmibUo4++
lK0FSgRUr1EWE64+ju+KXfR5lu4Fgej2GaTaI4jgmDykiqeS8pxSGLFKSZZS gCDUjX6KxvNa
cY6zJqU5o6jEX27gsy6VNNKKUOrJQqi7hRsAagblUNCKRo4DgbeGaW6KThmc bcdm+WKmcRxB
2YLB5upRAClEBXoJEdPR/wCk3DcRk0uTOHTjMysKKZZhXLLIDHLjo9FVVIup 0aG00JBBOLRs
DTXEjNuSfmovl0PFi3llUKuWDV9eT/Va637dR6Ppi2YHNHEcHk592UMq5MMo cUyrWWyRUpOo
bNmwRV5z6RMGkxNOzDEyiWl2lO8qHW1cqkNsOVbouiujMJ9NTQ0Bju4Bj0jj M5Pysq3NIXJO
FCy6m0Lo443cmhNRc0sa6bOuA7FiMqeELEZU8IWjeriYWjeriYBYjKnhCxGV PCFo3q4mFo3q
4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxG VPCFo3q4mFo3
q4mAqmmmM4xhM/hDeF4e1My8w8rnq1MKXyTYcbTWqVCmpajWitmylSOI9pjp BOrkTh2Acgh1
1SHwsKWUgGWOo2CigHXElJFLkHWaRadJMbGBqknH5ZRk3nSh+ZK1WsawEghK SSVE0FaCuokE
ivImNPsNlJ1CJ+RnpWVckWZxD67SEhwvalUUaUQyV1FdVa0OohsaI6Vv47My jMxgK8P5xJqm
ek6HCghwpsICdRpQ66bSKVBi12Iyp4RSpD6R8AxF9DMgziLhVyFy1sKShsuO hq1StdFBdySD
sUhQrqjJH0iYO5g5xJqRxQp5q7MpbWhKFKDbKXrQSulym1BQTWtK1pQ0C6WI yp4QsRlTwimr
+kDCEuuJ5riNEOOM9JFt7iHm2SEEm0i9yhNwpTdrj2wfTrB8WmGGZGWxNwvv MstrLNqCpxlT
32iadFCDd6Rq21EBbLEZU8IWIyp4RASN6uJibRvVxMAsRlTwhYjKnhC0b1cT C0b1cTALEZU8
IWIyp4QtG9XEwtG9XEwCxGVPCMVITcnop27uqMrRvVxMYqSLk6zt39UBTWNJ Z5x1CwZJcsrG
hIpPNVpWWrTUkXG03jUo6iPQKiPHFdKcUYcxdyUl5VUvKslxhS5VZOrkrbuk Lr73KUApyeus
bsjpYqafZR5OtDs22yDzg6kOBy1RFv2qtmqPRUazsjX0h04ThL062nC3ZrkF WMhp1RU6RyN3
RCSRqeSRS4kJVqFIDc0hx6alsQTL4WJN0Lw+aeSHWlCjzRRaCqoFpqvVqrbt EV2W02x4PDn2
FolJUSC3y9zJS1FYWoIIQHNSVJCSNZAKqFUWif0iWxzcyuHqnRMYa9OtBl4q UpTfJ/owADWv
KDWK7Nhjhyv0kSrr4bdwuYQjmzjinAtdC6lxSOTFUjbbUFVptNxAAJAXPBHH pnB5OYnES/OX
WELd5HW3cQCba66V2RuWIyp4Rz9G8QbxnR/D8XbSUInZZuYCQ5dbekKpX00r tjoWjeriYBYj
KnhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWj eriYWjeriYBY
jKnhGKEp19FO0+iMrRvVxMYoSKHWdp9MBlYjKnhCxGVPCFo3q4mFo3q4mAWI yp4QsRlTwhaN
6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxGVPCFo3q4mFo3q4mAW Iyp4QsRlTwha
N6uJhaN6uJgFiMqeELEZU8IWjeriY52kM+rCpBE2ljlwZhllSS6U0DjiW7hq NaXVp6d4gOdo
vik/iM/iTM7LNNtyz1rakMqRT9I6mw1JuNqELqKD9INUWKxGVPCODo5pDK45 P4vKy7a0eTZs
S5UpetzoglVv9kVuA3gV9Md60b1cTALEZU8IWIyp4QtG9XEwtG9XEwCxGVPC FiMqeELRvVxM
LRvVxMAsRlTwhYjKnhC0b1cTC0b1cTALEZU8IWIyp4QtG9XEwtG9XEwCxGVP CFiMqeELRvVx
MLRvVxMAsRlTwhYjKnhC0b1cTC0b1cTAYpSmquiNu7qjKxGVPCMUpFVazt39 UZWjeriYBYjK
nhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeELEZU8IWje riYWjeriYBYj
KnhCxGVPCFo3q4mFo3q4mAWIyp4QsRlTwhaN6uJhaN6uJgFiMqeEYrSmg6Kd o9HXGVo3q4mM
VpFBrO0enrgPnc/ptjuHzszXBGsTZRMTDRaYZUwqXsfDbRccUVJIWglVaJ2b jUbczpxOCamG
pXRwrRLLfQ4p50thSkB+0JUUW9LkUmpNAHBr35Tn0gy2HTvJYjhkxyTr0yzK mUcL7rqmHwyo
Fu0W1JqKFVQD6aA7j+nOFJnVysvJ4lNuNF4OhhAKklrlgRaVAqJLCwAASdW+ A0J/TLFClLmH
aPhfJrQpbLilpcdbVKreJA5Poi4BAJqSoEECPNGnGJInnMP83HJmZvdLZN7S ac9DCATYf/DV
fcK1CFahG/iGneHsMImpeSnJqVS8lt51pSCBWWVMdGiulRASSdnS1E0pGCfp AwlLrsu7LzSp
lK3QlpgpWVBM2mWTtULSVLQddBQnWaGA9dGNJp7G9IhKLwcyMoJLllBwKLnK EMqANUgAUcWN
pJtOylIt9iMqeEVjR/S2SxzG25GQl5gsKlDMh9wgA/qjaE1rsdFSabNVYs9o 3q4mAWIyp4Qs
RlTwhaN6uJhaN6uJgFiMqeELEZU8IWjeriYWjeriYBYjKnhCxGVPCFo3q4mF o3q4mAWIyp4R
ilKaq6Kdu7qjK0b1cTGKUiqtZ27+qA+V6fJBxqdGyk+2f+U1GOAfqXf7xb/1 DGWnya41O6yK
T7f+k1GOAfqnf7xb/wBQx4Xpf1pf/L/LzKPpEvXSRK1on0NOlpZnAErABKTz dvXQ6o5ON4XP
Sk7PzOK6YNh9iVaVMuuYMwolouHkxdyXSF6dgrQ69UdbSTlbJ/kAgu88FgVs rzdulY4+kMvp
JNTM+7io0dbUZZlEyhc6pKW20u3tqKSrVVYOs7dY1x9Hd8Uu+jzLs4PLYwjT LRacxLSF3FmZ
gvqlwqWbZsrLqNxAQDrHoOyOlg+kn0f4lJKfEhJSzLeoctJtbFovJATdqKal R9FFXUKVAcnR
1GOs6U6JS2JS+GsyTCXUSXNFqXcBLKAqoqOq30+mLGxLaBYzLycow5h77aZN HNktzKknkKrb
SAQQSkkuIp6ekDWMWjoSExotjcw/JMS8rMuthSXW3JEigbcLWu5I1BbRA9Bs 1VpHdl5VmXry
DTTVRQ2NhNdZPo6yT/iY5mGsYJh85MOyRl23pkjlFcsSFlTjiwBU0qVrdNB6 SY7HT3DjATRW
buhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3 DjATRWbuhRWb
uiOluHGHS3DjATRWbuhRWbuiOluHGHT3DjAcTSKblJOawxUzhDuIPOzCmpZb bbRLLhBO1akk
VCTrG791dFrGNCm5RCG3cObllS5eQBLWoLRv1jo0of0pA/tC8iuuOpjczhcu uSOJlPKB8uSq
AlSl3gEFQSkEmgUamlBXXHPmdH9FHEID7EpYwyJJIM0oJQlIKUppd9oBagFf aFx164DxGPaI
nEZtLyGWZuQWkHlZIhz9IG3eiLbq1dQSKVCjUjYYyVjmg4XqnMJcWAlhIbaS tRDhLYQAASQo
otoNtB1R6zeCaLOhT0xyF6rSXzOrDhJS2EqvuuqQy3rrU29ZrKtB9FyXyMFl 2y+2WnOTWtFy
DZVOojUeTRq6us1Dwk3NFcddm8KYlmA44uYZmUtpDayWXEoWCpBCtoQf3W1p UV70nhOHSakK
lZKWZUhKUJUhlIUAlNqRXbqSSB1GNbDdHcIw3EncRkZBpiZdU4pxaVq6SnFB SzStKkgVO3UB
sAjq9LcOMBNFZu6FFZu6I6W4cYdLcOMBNFZu6FFZu6I6W4cYdLcOMBNFZu6F FZu6I6W4cYdL
cOMBNFZu6MVA3J6Xp3dUT0tw4xCrqp1Dbv6oDUVhGGrIvkJRVH+cCrCT+l/a bPte9tiFYPhi
kONqw+TKHUpS4ky6aLCfsg6tYHo3R4rx/CkLCFzrSVc4MtQ3VDgpUHVq+0nX s6Q16xETmkGF
yi5pt+aAXKAKfSlC1lA1a6JBrS5NabKitKiA93MHwxxzlHMPk1rtUi5Uukm1 X2hWmw+nfHoz
h0my8h5mVl23G2gyhaWkhSUDYgGmpPVsjXexvDWUoU7NtISuWVNpJrQtJpVW z0XJ69YjXVpT
gaU3HEWf1PLUoom2pGyla1BFu3UdUB2Gmg02ltu1CEgBKUpAAA9AEZUVm7o8 2HeWZQ8gdBaQ
pNQUmh6iKj/GM+luHGAmis3dCis3dEdLcOMOluHGAmis3dCis3dEdLcOMOlu HGAmis3dCis3
dEdLcOMOluHGAmis3dGKArX0vSfRE9PcOMQi7XqG3fAZUVm7oUVm7ojpbhxh 0tw4wE0Vm7oU
Vm7ojpbhxh0tw4wE0Vm7oUVm7ojpbhxh0tw4wE0Vm7oUVm7ojpbhxh0tw4wE 0Vm7oUVm7ojp
bhxh0tw4wE0Vm7o8J6Slp5jkJ2XYmWqhVjzQWmo2Gh9Me3S3DjDpbhxgNDDp yXm5qfaZaW27
KTIYfuQBcrk0LBBB1i1aY6FFZu6ORgqcMM1iL+GqUtx6arNLLjikqdSAg0u1 aggJNuoW09Ed
bpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3 RHS3DjDpbhxg
JorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3DjDpbhxgJorN3QorN3RHS3Dj Dp7hxgISFVV0
vTu6oyorN3Rim6qtQ27+qJ6W4cYCaKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0 R0tw4w6W4cYC
aKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0R0tw4w6W4cYCaKzd0KKzd0R0tw4w 6W4cYCaKzd0Y
rCqDpekejrieluHGIXdTYNo9PXAUuZ0h0Nl5idbxSTl5Fp9x0OPzMq3yc2pl 0NrNRUkpWR9s
A66jUCY2p7FdCZZTrUz5OotTq36Sd6aoDgcUshJAoEOiqttFCPA4doNiGIzT Cww5NIeccVfM
upLa+VBcLRJAT+kpdZTXQGNteAaJy004paWGJiaccWSZ5aVqUQ5fb0qj7bpI GoVJ9EB54jjW
iWHPpdmGWEqKkS7rokv1QLK3EpWbdVEA9HaAoVABgMa0PS6ubmESku+2pxIW 5KC9QRM8kSkg
G79KU0A11Wk0qYl3CNDpMMyziZVpD9rbbXOl2E8gtsG2tAS0FJu9IG3UIxls B0LcnnMTZYlQ
+2paXFmZWmhTMXqqkmmp5Fa02pHogNvBsU0dmce5phKZdc0uV5ZT7DACS2A3 am+mvUtFAK0F
NmqLFRWbuivYLhmjeGY2GcMbYanzK6m0PLVayOTSaJJITsb17TQbYsHS3DjA TRWbuhRWbuiO
luHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuhRWbuiOluHGHS3DjATRWbuj FIVVXS9O7qie
luHGIF1Vaht39UB8r0+STjU70tk+3X4TUY4B+pd/vFv/AFDE6fXHGpzWB/T2 6/CaiMA/VO/3
i3/qGPC9L+tL/wCX+XmUfSJeuki1ton1oaU6tM4CEJIBUebt6teqOZjU3pBi U9NzCtD8UQl+
WaZCKoq2pt0uJWFJWDUEndsH7j09JHUson3lhakonAohCSpRpLt7ANZivY7p LhuI4xOzYk5n
kltsoaBw+ZSXglxta0PDkjUGy0GpoNVNZj6O74pd9HmXb0ZmZwaSaH4U9gM/ hjGHodaZXNup
Wp0JllJA1emgqTHXa+jLRpDTTMniGKS4tQByUy2b0pGoa0nVcFLoNVylH0xy NF8cksS0j0Pw
+WViDzsgh1Lz0xJuNBZEspNQVgVJPo2xs4b9Fb2HoYErpNNNlmW5shSGVIUl soc6IKVAgco6
4sekVAr0QYxaO+99H+COIlEJcnmhKyzUskIU300I5TbVP2jyiqqFDsoRrrbm 3kuIC2+mgioU
kgg98U9eieK8/dmGdJJptszbT7bZS4qiErUqxVV0ItUEagNSQTU6405bQfG2 HkBrS2YalkNt
NJaaYWkWAWr/ALdKqSXKEfZUUq120IX+45Fd0LjkV3RAUAKUVwMTcNyuyYBc ciu6FxyK7oXD
crsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyY Bcciu6FxyK7o
XDcrsmFw3K7JgOFpFgjGKuMPqn53Dpllp5lD8q4hK+TctvT0gRtSg1GsFIod /IH0f6PzKlTC
3JqZQ6suouU0pIBVfqonXrJ6Rqog0JOqnQ0n0eXjOJYXPtzvN14cta0tqZK0 OlS0GixUVAs2
b7T/AGdfDk9BcXlJQSzGlMyhKGWG2rWnAByYaGtN9tP0atQA/WKrU0MBsM/R rgrPKpYm8TQh
1TCnEFTKwsMpCUpNyD0eikkbNW4kRd7jkV3RxdFcJnMI8o89xaYxIzU45MNl 1J/RJUahA26g
KDVQatgjtXjr7JgJuORXdC45Fd0LhuV2TC4bldkwC45Fd0LjkV3QuG5XZMLh uV2TALjkV3Qu
ORXdC4bldkwuG5XZMAuORXdC45Fd0LhuV2TC4bldkwC45Fd0YqJqnonb1boy uG5XZMYqULk6
jt3HdAVZ7RnCnp12ZdxObUt6cU4pJcZoSrkypkUT9klls5tW3WYmY0ZwpT84 7N4lNrLqRy4W
60kAKLV4NEigc5FAVX0VpSscp36Py6tCzinJqRMtuBbcuQS2ly81qSC4ogAr 20Ap6azjmgs1
is4/OOYs20646Hf0cstIWqjQIXRdSkckCkVFLjtgO9i2CSs/OpmJvEZk2ysw yGTyJbLTttxI
KKkC1NNfo11jjSmhOjMrMpeZnnlOmTW0eUcZcC0LUpa1kKSagqUVU+zXXSN7 FNGpvEXmFTM9
LuIbw6YkXCZVSVuB2yiioK1UsFQBQ1NKRzvMFKsKVKP4gh54Sbku28ZW0oU6 6pbpBSQQCCEJ
AoUAGh1wFxwiWakcKlJKXU68ywyhtDjiwtSkpAAJV6T1xt3HIrujnaNSBwjR +QwtbxfVKMIZ
LvJ232ilaDZHRuG5XZMAuORXdC45Fd0LhuV2TC4bldkwC45Fd0LjkV3QuG5X ZMLhuV2TALjk
V3QuORXdC4bldkwuG5XZMAuORXdGKCaHonad0ZXDcrsmMUKFDqO0+gwGVxyK 7oXHIruhcNyu
yYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyYBcciu6FxyK7oXDcrsmFw3K7JgFx yK7oXHIruhcN
yuyYXDcrsmAXHIruhcciu6Fw3K7JhcNyuyYBcciu6MVuBCSpQtA9JIH+8ZXD crsmOFpvgA0m
wbyb5RmpEcoly5pCVBRTsCgpJqAaGmrWBAY6M4BhuBzGIuYc46szcyp15ClI ohRWtZFEga6u
HWqppQVoBHfuORXdFf0awFWDzuITKpoPc7cqkJaKKDlXXKq1m5X6UiurUlOq LBcNyuyYBcci
u6FxyK7oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3 K7JhcNyuyYBc
ciu6FxyK7oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6F w3K7JhcNyuyY
DFJNVdE7erdGVxyK7oxSoVVqO3cd0ZXDcrsmAXHIruhcciu6Fw3K7JhcNyuy YBcciu6FxyK7
oXDcrsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIruhcciu6Fw3K7JhcNy uyYBcciu6Fxy
K7oXDcrsmFw3K7JgFxyK7oxWTQdE7Ru3xlcNyuyYxWoUGo7R6DvgKTimgOA4 y483NYhiD9j7
zqGkutUl1POhxwABOsKUBqXdQDVSPZf0fYS49NuuTWIuGZW8ohZaUlAd5a5I BRsq+s66nZrp
t52J/R/PTUy9MSmkCsOcU/MOJclJZTbi0vPh1SXFhVVUtokilKn90bEzoZi8 1NzD8xpM+urj
5lwlDqCylwP+kL+0nlkgGgFGxq3BtTGguDONGXm5ueeQ+pPReW0pS3EyxYuu KbiqzpUrSqag
DXHkfo/wSYxAzqp3EX0BSwWFOtqaqZpMyoUt/aNpB17BTbrjynNCcQnW7ZvS J9awULbeSh1C
21plVM9GjlEi5XKagDrIJIMYHQfFjPrUNKJhEi4XCuXaacbJK5xMwo3JWNdo U3Xcs/ugOvo1
onheAYsJqUmZtx4yvIJbeW2egA0kq1JCj+rRtJAqaAViz3HIruipaL6Lz2FY 8MUnsacxFQk+
bDlG13bGqqqVkDW0TQAfa1kkVi23DcrsmAXHIruhcciu6Fw3K7JhcNyuyYBc ciu6FxyK7oXD
crsmFw3K7JgFxyK7oXHIruhcNyuyYXDcrsmAXHIrujFJNVdE7erdGVw3K7Jj FKhVWo7dx3QF
GxzC5Cbx/EjN4Pz11akqbUAklJ5NAoakU2Vr1mOVISKsOcdk1hKVInWCUp2J qQqg6hWkW/bp
FNkZk/8ASI4GKf17O/8AHS3+SY2tW6Kdaoj2zDCqmIqidHM0jdaYTPPPuIaa ROhS1rVRKQJd
upJ9EczSDTfB3pzGzh+k0k2nyapuTU3jUuEvzBAKVJBdBbKSKbADVVSdUdbH Ptzn/HD/APrt
xGkLnNcRxRuUwh5TMtKoKOTwZTlzylICQ2QghYAJv221r/ZVRd8Ur0eZe0pp JgWOaaaKt4Zj
EhOvNqmFvNsTTbqmwZdQ6VpPp1V2R64VhP0iSclISfl6XK0oc53NLUHlOKLa A3qX9kJIUDb9
ogKOtRp7CXTLaUaIqbYYZfdL/Lck2WwpXNlnYRWlfQdYjWanvpBDLS0szbri UNqmUuS7aLX+
SmOUbRQC5oLDFFa61+0ddMWjpSsnp6cQlZl/FpRppTiHZqXbKFJ1rZK2gSit qUcukEUJNpO2
LtenMnjFFe0g0+AFmjMsg83mDRV6rnm0kJAtJASpxNRcRVChrCqiLyzygaSH lJU4ALilNoJ9
JAqaD/EwGV6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeML0Zk8YmEBF6MyeM L0Zk8YmEBF6M
yeML0Zk8YmEBWdKZHGpvEsKmcKnQ3LSy1mbY5dTfOAVtkJqNlLVGv/t2KMc2 Va+kEyylzU/K
pebYdSlttbVHXOTl0oUSWzQXiZVT3kg6tQ2vpAmNLZZlp7RZnnBbl5lbzNiS XF9FLYSVbFAq
UoDYbCDtjUZ0g02LqWXdHWkqcnHWUkNuFLaA40ELWTQa0KdVVJINoGo1EBqK a+kxmSD5xaUd
mVNsN8iENlCXClhC16kA0uMw5t2BAFBURc8BbnJeSW3iMwl57nL6kruB/Rqd WWx6NYQUj/CK
bM4np9NzOHvN4S7JNLVLrfYTabQX1hxKia6+TSkmmy6LVoZPYxiOj8vNY9It yOILryrDYWAj
Xs6Wv/HWDtBpAdi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi 9GZPGF6MyeMT
CAi9GZPGMVKTVPSG3f1RnGKtqf3/AO0BQ2MH0lRNMpdmHVsmeQ666nEV3BKV FSlJSTS1fRSU
HUAlVBU1DGsH0nnVYu4zMusGaZIYSifUAhZDVlKEBFhS5Uj7V9doj3k53StL 7BmkzthxFtDo
EqkgIIcC06k15IfoyF7a11mPHGZ3S9yYxJzDzPMspSFsI5ompA5IoQglCuku rwUVBVtE7PSH
Rx2SxudnGyw45LN+TpqWcWzOkfpFWcmsJqBXoq16iLtsV+XwLTeWeD7k83Op TILaEsZ91CL1
LUpOu64lIKU1JJIT9oHXFix2cxwzrbeG88YSrDpoKK5W9CJhJRyaiQgkn9ZQ CoOrUdUc6QXp
i7LJmJ2an5UtSLiltpZaWHHFOKDOxorvCAFLoKVUKJGsQFuwNpcrg0nLPvuO utMIQtbzgWtR
AAJUr0neY3L0Zk8Y0dHVzzmAYe5iaVJnlSzZmQoAEOWi6oGoa67I34CL0Zk8 YXozJ4xMICL0
Zk8YXozJ4xMICL0Zk8YXozJ4xMICL0Zk8YxQpOvpDafTGcYo9P7zATejMnjC 9GZPGJhARejM
njC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejMnjC9GZPGJhARejM njHH0uZnZrCU
t4Yo85TMsOC2YLXRS6lSwSNoKQoU2GuuOzHH0ufn5bCkPYbzgviZYqGGeUUp sup5QEUOqy7W
Ne6A0dFsOxaRxfGX8Qn1Pyky+FSra3StSem4onWogCikJAFBRA1VrFlvRmTx ivaMPY47P4kn
FQ7yKXqMFxtKaHlXBRFALkcmGTU1NVK1+gWKAi9GZPGF6MyeMTCAi9GZPGF6 MyeMTCAi9GZP
GF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAwSpFV dIbd/VGV6Mye
ME7Vfv8A9omAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9GZPGF6MyeMTCAi9G ZPGF6MyeMTCA
i9GZPGF6MyeMTCAi9GZPGMVrTQdIbR6euM4xXsH7x/nAfOZ/BdOm52ZmcGxU Sq1PzBUp6aMw
l1tb4U1Y2voNlDYKfRWtNxjcmpXT9+bmFjE2Zdptx8S4aU0q5Kg/yalJUnXb cwKV2pNTtrqz
+K6fSc7Mu4fJOz6BMTCHGpqXCWmUcuAwpstpC3AW7iql1NR1bDuTOPaarm5g S+CtsMsOPoCn
ZZxYdoH+SItN1psZJISftkUgMJ/DtOZxKT5WRLPtLQ6yppxotpIlVpUkgt1U S8qprUW0oARG
CMP+kBudcl5fFJeXkXFur5QLQtaSudDlQFoNKMFxNDUVKaAUrHpP4vpu8lK5 LDBLutLQ4GHJ
VRDiDKrWoKUF0rytEWg1BAJJBjBGN6ctzrki3ghWFLdUiYfYJQgGdCUCqVCo DClKpqPQGs1g
N/RiT0rTpEmd0gnmnmESXJBLTiQjlCGSSEhIP2kuayTtFKDVFvvRmTxipaMY lpTP6RJ8r4eZ
GTTJVLYaIHKkMn7ZJuNS6KClKa6xboCL0Zk8YXozJ4xMICL0Zk8YXozJ4xMI CL0Zk8YXozJ4
xMICL0Zk8YxSpNVdIbd/VGcYp2q/f/tAV+oOkU2Qa9JP/SI4GKf17O/8dLf5 JiwH/wCo5v8A
9Sf+kRX8U/r2d/46W/yTHTb+bPuY1+Y97maSNNvon2HkJW25OBKkqFQQZduo jh45ozoZIz+K
ysto3hUycPkucLHLBKkqJTahQI1FQJIoTSgr9oR3NJG+VRPtXrbvnAm5Boof 0dvWDvjkaQYV
JYRMToxLSPSUJYlecLdEyFBwXJSlH263FRASFAA0NDqMUu+KVrfmXVwDR7AM J0r0Tn8GwyXk
1TweLhQnWUmXUoCpAO390dOZ+kNpOjbEyzKNv4k/h3LpbaVclL3JrUpsga+i Uio2i9O+Odgm
Fcy0u0VnRjOJYi3N8spsTb5WGwZdSqjWRWmqOvL/AEnYE6h12j3ItTjkqVJW lZURZyakgbQv
lE02U112Ri0YOfSPJoUUeTFhaZcPrQtwoU1+lQhSVpKa3ALrai8kpUkAka79 anKIrDunOjza
JlS5h9PNVtpfSpspUjlE3p1KoT0BdQVIHojWe+kDBrGebNzjzjsw00EKbstQ txpHKkn+yC8j
rNf8YC42JyiFicojgaM6V4VpE6lGGGbWCwmYvWyUJCFKISanfaSOoR37feVA LE5RCxOUQt95
ULfeVALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVA VjS7F8Yw2ew2
XwjDEToe5VyZBTUpbbUitDcKGilEalEkAU1kjgzH0jKKJRcvgxUFErdCHeU5 RAQtRDNAOUIt
AVstJA11jvaY6XSeizkkmcl5h1E0l9QU2R0S2AQk19K1KSgdahGpI/SHgEw3 L3GaQ86htam0
oCw2FjaVJ1UBqD6apOrZAeMhpsuYxaVYXhzaZaaLTSHEO3JC1OzDZUkgVcSe RQQQkalVJAjb
+jrSh7SeRbdmcPVJuiRYedQtBSQ4tTiVCh2fqwQNygamsYD6QMDU2042J1aX B0EBhXKKJ5G2
iabCH0GpI/zpKvpD0aC0pS/NrDhAaKGCeVrcTaNpoEqrqr0dVdVQt9icohYn KI0sGxBjFpBE
7Kh8MrUoILibSoA0qBu1Ru2+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+ 8qAWJyiFicoh
b7yoW+8qAWJyiMVJTcnUNv8AtGVvvKjFSeknpHb/ALQGVicohYnKIpbv0g4c w5LtTLDjTk1N
sssJLqekh1ywOEmlCDtTrOsb9WeOacy+F4g7Jrkn3FctyLCklSgtSQ2V3BKV KSAHU0ICq0Or
VrC42JyiFicojgYnpEJQs8jKuTiHsPenWiwu4r5OzogUqa8oKHujmyumTs2y l+XkZbkOaPzD
zjs4UBnklqQoq/R6kFSVUVtIBNuowFxsTlELE5RGpg0w/O4VKzkzLLlHnmkr WwpdxbJFbSaD
/IRt2+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+8qAWJyiFicohb7yoW+ 8qAWJyiMUJSQ
dQ2mMrfeVGKE7ekdpgMrE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RC xOUQt95ULfeV
ALE5RCxOUQt95ULfeVALE5RCxOUQt95ULfeVALE5RHD00xbyLhbUw09KNPuz CGWkzIohxRr0
brgE6gTca0odRNBHct95ULfeVAVjRHHZrGMTxqVmpRtlEhNllkpB6aQtaak1 OvoVobTr2WlK
lW
Re: Grid - Double Click on RowHeader [message #590736 is a reply to message #55143] Thu, 26 June 2008 13:29 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
reordering problem?

Tom

Tom Schindl schrieb:
> Hi Peter,
>
> I'll revisit the viewer bugs and problems in the following days making.
> You can be sure that all navigation, editing bugs are fixed because I'm
> just using Grid&GridViewer in base library I'm developing for a customer.
>
> The new features Grid is getting next week are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>
> As said beside those 2 features I'm planing to fix all Viewer Bugs and
> other things once I got the write access to the CVS-repository.
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello.
>>
>> Thanks I'll file a bug.
>>
>> Since it's just one point where I use this, it's not that bad. I
>> thought of using reflection, but for a quick try i made the an
>> get-accessor.
>>
>> What kind of changes will there be? What I encountered when switching
>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again.
>> As long as I don't re-arrange the colum everything is fine. But e.g
>> when I swap column 1 & cloumn 2 and then I do the tabulator-traversal
>> it first jumps the column index 1 then back to column index 0 and then
>> goes on with index 3 and so on.
>>
>> I already use your patch you provided me a few weeks ago. Under 3.3 it
>> works but under 3.4 it's broken again.
>>
>> Who do I have to ask question regarding the CDateTime control? Because
>> I have problems to adjust the org.eclipse.ui.forms look & feel. I
>> can't get it as "flat" as the other "formtoolkit-controls"?
>>
>> Thanks
>>
>> Peter
>>
>>
>> Tom Schindl schrieb:
>>> By the way there are going to be some changes in Grid in the next
>>> weeks so maintain your patch might be quite cumbersome. Did you
>>> thought about using Reflection instead of patching?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> File a bug [1] (and CC me).
>>>>
>>>> Tom
>>>>
>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello Tom.
>>>>>
>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>> the rowheader width i patched the grid, and made a public
>>>>> get-accessor to the rowheaderwidth property?
>>>>>
>>>>> How can I request this as public API?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Peter
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello there.
>>>>>>>
>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>
>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>> activting inline editing or resizing the column width).
>>>>>>>
>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>> the row header, columnheader or a cell?
>>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>
>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>
>>>>>> public void mouseDown(MouseEvent e) {
>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>> System.out.println("header click");
>>>>>> }
>>>>>> }
>>>>>> });
>>>>>>
>>>>>> For RowHeader there's no API to get its width but you could
>>>>>> request one.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>
>>>>
>>>
>>>
>
>
>
> ------------------------------------------------------------ ------------
>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590771 is a reply to message #55143] Fri, 27 June 2008 07:27 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom,

awesome screenshot. Will this filtering feature be provided out of the
box? And if so, can it be enabled and disabled?

Awesome work. I'm looking forward to using it.

Peter


Tom Schindl schrieb:
> Hi Peter,
>
> I'll revisit the viewer bugs and problems in the following days making.
> You can be sure that all navigation, editing bugs are fixed because I'm
> just using Grid&GridViewer in base library I'm developing for a customer.
>
> The new features Grid is getting next week are:
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>
> As said beside those 2 features I'm planing to fix all Viewer Bugs and
> other things once I got the write access to the CVS-repository.
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello.
>>
>> Thanks I'll file a bug.
>>
>> Since it's just one point where I use this, it's not that bad. I
>> thought of using reflection, but for a quick try i made the an
>> get-accessor.
>>
>> What kind of changes will there be? What I encountered when switching
>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken again.
>> As long as I don't re-arrange the colum everything is fine. But e.g
>> when I swap column 1 & cloumn 2 and then I do the tabulator-traversal
>> it first jumps the column index 1 then back to column index 0 and then
>> goes on with index 3 and so on.
>>
>> I already use your patch you provided me a few weeks ago. Under 3.3 it
>> works but under 3.4 it's broken again.
>>
>> Who do I have to ask question regarding the CDateTime control? Because
>> I have problems to adjust the org.eclipse.ui.forms look & feel. I
>> can't get it as "flat" as the other "formtoolkit-controls"?
>>
>> Thanks
>>
>> Peter
>>
>>
>> Tom Schindl schrieb:
>>> By the way there are going to be some changes in Grid in the next
>>> weeks so maintain your patch might be quite cumbersome. Did you
>>> thought about using Reflection instead of patching?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> File a bug [1] (and CC me).
>>>>
>>>> Tom
>>>>
>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello Tom.
>>>>>
>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>> the rowheader width i patched the grid, and made a public
>>>>> get-accessor to the rowheaderwidth property?
>>>>>
>>>>> How can I request this as public API?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> Peter
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello there.
>>>>>>>
>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>
>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>> activting inline editing or resizing the column width).
>>>>>>>
>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>> the row header, columnheader or a cell?
>>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>
>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>
>>>>>> public void mouseDown(MouseEvent e) {
>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>> System.out.println("header click");
>>>>>> }
>>>>>> }
>>>>>> });
>>>>>>
>>>>>> For RowHeader there's no API to get its width but you could
>>>>>> request one.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>
>>>>
>>>
>>>
>
>
>
> ------------------------------------------------------------ ------------
>
Re: Grid - Double Click on RowHeader [message #590780 is a reply to message #55171] Fri, 27 June 2008 07:44 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello once again.

I was thinking about another feature regarding the grid. Is it possible
to add decorations the way the are used in eclipse forms, to show the
user that the some values he entered, are invalid?

I'm thinking about displaying the error, warning, information icons on
the top left corner of the according cell. This would only be needed, if
inline editing is activated.

Would this be a useful feature?

Thanks

Peter

Tom Schindl schrieb:
> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
> reordering problem?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> I'll revisit the viewer bugs and problems in the following days
>> making. You can be sure that all navigation, editing bugs are fixed
>> because I'm just using Grid&GridViewer in base library I'm developing
>> for a customer.
>>
>> The new features Grid is getting next week are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>
>> As said beside those 2 features I'm planing to fix all Viewer Bugs and
>> other things once I got the write access to the CVS-repository.
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello.
>>>
>>> Thanks I'll file a bug.
>>>
>>> Since it's just one point where I use this, it's not that bad. I
>>> thought of using reflection, but for a quick try i made the an
>>> get-accessor.
>>>
>>> What kind of changes will there be? What I encountered when switching
>>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken
>>> again. As long as I don't re-arrange the colum everything is fine.
>>> But e.g when I swap column 1 & cloumn 2 and then I do the
>>> tabulator-traversal it first jumps the column index 1 then back to
>>> column index 0 and then goes on with index 3 and so on.
>>>
>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>> it works but under 3.4 it's broken again.
>>>
>>> Who do I have to ask question regarding the CDateTime control?
>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>>
>>> Tom Schindl schrieb:
>>>> By the way there are going to be some changes in Grid in the next
>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>> thought about using Reflection instead of patching?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> File a bug [1] (and CC me).
>>>>>
>>>>> Tom
>>>>>
>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello Tom.
>>>>>>
>>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>>> the rowheader width i patched the grid, and made a public
>>>>>> get-accessor to the rowheaderwidth property?
>>>>>>
>>>>>> How can I request this as public API?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello there.
>>>>>>>>
>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>
>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>
>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>
>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>
>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>> System.out.println("header click");
>>>>>>> }
>>>>>>> }
>>>>>>> });
>>>>>>>
>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>> request one.
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
Re: Grid - Double Click on RowHeader [message #590794 is a reply to message #55250] Fri, 27 June 2008 07:45 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello Tom,
>
> awesome screenshot. Will this filtering feature be provided out of the
> box? And if so, can it be enabled and disabled?
>

No :-( This is an extension I'm making for a customer. The grid you are
seeing in the screenshot supports:

- Auto-Filter
- Auto-Sort
- Quick-Search
- Grouping Functions (in the footer line not visible in the screenshot)
- ...

And takes about 10 lines to get setup :-)

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590802 is a reply to message #55277] Fri, 27 June 2008 07:46 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Definately file a bug :-)

Tom

Peter Pfeifer schrieb:
> Hello once again.
>
> I was thinking about another feature regarding the grid. Is it possible
> to add decorations the way the are used in eclipse forms, to show the
> user that the some values he entered, are invalid?
>
> I'm thinking about displaying the error, warning, information icons on
> the top left corner of the according cell. This would only be needed, if
> inline editing is activated.
>
> Would this be a useful feature?
>
> Thanks
>
> Peter
>
> Tom Schindl schrieb:
>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>> reordering problem?
>>
>> Tom
>>
>> Tom Schindl schrieb:
>>> Hi Peter,
>>>
>>> I'll revisit the viewer bugs and problems in the following days
>>> making. You can be sure that all navigation, editing bugs are fixed
>>> because I'm just using Grid&GridViewer in base library I'm developing
>>> for a customer.
>>>
>>> The new features Grid is getting next week are:
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>
>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>> and other things once I got the write access to the CVS-repository.
>>>
>>> Tom
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello.
>>>>
>>>> Thanks I'll file a bug.
>>>>
>>>> Since it's just one point where I use this, it's not that bad. I
>>>> thought of using reflection, but for a quick try i made the an
>>>> get-accessor.
>>>>
>>>> What kind of changes will there be? What I encountered when
>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>> broken again. As long as I don't re-arrange the colum everything is
>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>> column index 0 and then goes on with index 3 and so on.
>>>>
>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>> it works but under 3.4 it's broken again.
>>>>
>>>> Who do I have to ask question regarding the CDateTime control?
>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>
>>>> Thanks
>>>>
>>>> Peter
>>>>
>>>>
>>>> Tom Schindl schrieb:
>>>>> By the way there are going to be some changes in Grid in the next
>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>> thought about using Reflection instead of patching?
>>>>>
>>>>> Tom
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Hi Peter,
>>>>>>
>>>>>> File a bug [1] (and CC me).
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>
>>>>>>
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello Tom.
>>>>>>>
>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>
>>>>>>> How can I request this as public API?
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> Peter
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>> Hello there.
>>>>>>>>>
>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>
>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>
>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>
>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>> System.out.println("header click");
>>>>>>>> }
>>>>>>>> }
>>>>>>>> });
>>>>>>>>
>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>> request one.
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------ ------------
>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590809 is a reply to message #55336] Fri, 27 June 2008 08:48 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom.

I'll file a bug immediately :-)

What also came into my mind is this, that those decorations should also
propagate the corresponding message to the messagemanager of the
org.eclipse.ui.Form.

Thanks

Peter

Tom Schindl schrieb:
> Definately file a bug :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello once again.
>>
>> I was thinking about another feature regarding the grid. Is it
>> possible to add decorations the way the are used in eclipse forms, to
>> show the user that the some values he entered, are invalid?
>>
>> I'm thinking about displaying the error, warning, information icons on
>> the top left corner of the according cell. This would only be needed,
>> if inline editing is activated.
>>
>> Would this be a useful feature?
>>
>> Thanks
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>> reordering problem?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> I'll revisit the viewer bugs and problems in the following days
>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>> because I'm just using Grid&GridViewer in base library I'm
>>>> developing for a customer.
>>>>
>>>> The new features Grid is getting next week are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>
>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>> and other things once I got the write access to the CVS-repository.
>>>>
>>>> Tom
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello.
>>>>>
>>>>> Thanks I'll file a bug.
>>>>>
>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>> thought of using reflection, but for a quick try i made the an
>>>>> get-accessor.
>>>>>
>>>>> What kind of changes will there be? What I encountered when
>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>> broken again. As long as I don't re-arrange the colum everything is
>>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>
>>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>>> it works but under 3.4 it's broken again.
>>>>>
>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Peter
>>>>>
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>> thought about using Reflection instead of patching?
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Hi Peter,
>>>>>>>
>>>>>>> File a bug [1] (and CC me).
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>
>>>>>>>
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello Tom.
>>>>>>>>
>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>
>>>>>>>> How can I request this as public API?
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Peter
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello there.
>>>>>>>>>>
>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>
>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>>
>>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>
>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>> System.out.println("header click");
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> });
>>>>>>>>>
>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>> request one.
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #590821 is a reply to message #55171] Fri, 27 June 2008 08:49 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
btw. the the bug 231530 did help

thx

Tom Schindl schrieb:
> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
> reordering problem?
>
> Tom
>
> Tom Schindl schrieb:
>> Hi Peter,
>>
>> I'll revisit the viewer bugs and problems in the following days
>> making. You can be sure that all navigation, editing bugs are fixed
>> because I'm just using Grid&GridViewer in base library I'm developing
>> for a customer.
>>
>> The new features Grid is getting next week are:
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>
>> As said beside those 2 features I'm planing to fix all Viewer Bugs and
>> other things once I got the write access to the CVS-repository.
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello.
>>>
>>> Thanks I'll file a bug.
>>>
>>> Since it's just one point where I use this, it's not that bad. I
>>> thought of using reflection, but for a quick try i made the an
>>> get-accessor.
>>>
>>> What kind of changes will there be? What I encountered when switching
>>> to Eclipse 3.4 the GridViewer tab-traverseal seems to be broken
>>> again. As long as I don't re-arrange the colum everything is fine.
>>> But e.g when I swap column 1 & cloumn 2 and then I do the
>>> tabulator-traversal it first jumps the column index 1 then back to
>>> column index 0 and then goes on with index 3 and so on.
>>>
>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>> it works but under 3.4 it's broken again.
>>>
>>> Who do I have to ask question regarding the CDateTime control?
>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>>
>>> Tom Schindl schrieb:
>>>> By the way there are going to be some changes in Grid in the next
>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>> thought about using Reflection instead of patching?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> File a bug [1] (and CC me).
>>>>>
>>>>> Tom
>>>>>
>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello Tom.
>>>>>>
>>>>>> Thanks for the answer. That's the way I do it right now. Regarding
>>>>>> the rowheader width i patched the grid, and made a public
>>>>>> get-accessor to the rowheaderwidth property?
>>>>>>
>>>>>> How can I request this as public API?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello there.
>>>>>>>>
>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>
>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>
>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>
>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>
>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>> System.out.println("header click");
>>>>>>> }
>>>>>>> }
>>>>>>> });
>>>>>>>
>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>> request one.
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>>
>> ------------------------------------------------------------ ------------
>>
>
>
Re: Grid - Double Click on RowHeader [message #590827 is a reply to message #55336] Fri, 27 June 2008 08:54 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hi

I have one more suggestion.

My boss want's the grid rows in alternating colors (white/grey). Is this
already possbile or would this be another useful feature?

Regards,

Peter

Tom Schindl schrieb:
> Definately file a bug :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hello once again.
>>
>> I was thinking about another feature regarding the grid. Is it
>> possible to add decorations the way the are used in eclipse forms, to
>> show the user that the some values he entered, are invalid?
>>
>> I'm thinking about displaying the error, warning, information icons on
>> the top left corner of the according cell. This would only be needed,
>> if inline editing is activated.
>>
>> Would this be a useful feature?
>>
>> Thanks
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>> reordering problem?
>>>
>>> Tom
>>>
>>> Tom Schindl schrieb:
>>>> Hi Peter,
>>>>
>>>> I'll revisit the viewer bugs and problems in the following days
>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>> because I'm just using Grid&GridViewer in base library I'm
>>>> developing for a customer.
>>>>
>>>> The new features Grid is getting next week are:
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>
>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>> and other things once I got the write access to the CVS-repository.
>>>>
>>>> Tom
>>>>
>>>> Peter Pfeifer schrieb:
>>>>> Hello.
>>>>>
>>>>> Thanks I'll file a bug.
>>>>>
>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>> thought of using reflection, but for a quick try i made the an
>>>>> get-accessor.
>>>>>
>>>>> What kind of changes will there be? What I encountered when
>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>> broken again. As long as I don't re-arrange the colum everything is
>>>>> fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>
>>>>> I already use your patch you provided me a few weeks ago. Under 3.3
>>>>> it works but under 3.4 it's broken again.
>>>>>
>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Peter
>>>>>
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>> thought about using Reflection instead of patching?
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> Hi Peter,
>>>>>>>
>>>>>>> File a bug [1] (and CC me).
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>
>>>>>>>
>>>>>>> Peter Pfeifer schrieb:
>>>>>>>> Hello Tom.
>>>>>>>>
>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>
>>>>>>>> How can I request this as public API?
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> Peter
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello there.
>>>>>>>>>>
>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>
>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell or
>>>>>>>>>> columnheader the default behaviour should be triggered (either
>>>>>>>>>> activting inline editing or resizing the column width).
>>>>>>>>>>
>>>>>>>>>> Is there a possibilty to check whether the user double clicked
>>>>>>>>>> the row header, columnheader or a cell?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>
>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>> System.out.println("header click");
>>>>>>>>> }
>>>>>>>>> }
>>>>>>>>> });
>>>>>>>>>
>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>> request one.
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------ ------------
>>>>
>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #590836 is a reply to message #55415] Fri, 27 June 2008 09:15 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Yes this is an often requested feature and it might make sense to
include it if the performance fee we pay is not too high. In the
meanwhile I think you can give it a try and write your own CellRenderer
which calculates its background just like the RowHeaderRenderer
calculates its line number.

Copy the DefaultCellRenderer and modify row 95 like this:

----------8<----------
drawBackground = getLineNumber(item) % 2 == 0;

if( drawBackground ) {
gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_GRA Y));
}

private int getLineNumber(GridItem item) {
return (item.getParent().indexOf(item) + 1);
}
----------8<----------

Naturally the algorithm to identify the line number of an item could be
enhanced :-)

Tom

Peter Pfeifer schrieb:
> Hi
>
> I have one more suggestion.
>
> My boss want's the grid rows in alternating colors (white/grey). Is this
> already possbile or would this be another useful feature?
>
> Regards,
>
> Peter
>
> Tom Schindl schrieb:
>> Definately file a bug :-)
>>
>> Tom
>>
>> Peter Pfeifer schrieb:
>>> Hello once again.
>>>
>>> I was thinking about another feature regarding the grid. Is it
>>> possible to add decorations the way the are used in eclipse forms, to
>>> show the user that the some values he entered, are invalid?
>>>
>>> I'm thinking about displaying the error, warning, information icons
>>> on the top left corner of the according cell. This would only be
>>> needed, if inline editing is activated.
>>>
>>> Would this be a useful feature?
>>>
>>> Thanks
>>>
>>> Peter
>>>
>>> Tom Schindl schrieb:
>>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>>> reordering problem?
>>>>
>>>> Tom
>>>>
>>>> Tom Schindl schrieb:
>>>>> Hi Peter,
>>>>>
>>>>> I'll revisit the viewer bugs and problems in the following days
>>>>> making. You can be sure that all navigation, editing bugs are fixed
>>>>> because I'm just using Grid&GridViewer in base library I'm
>>>>> developing for a customer.
>>>>>
>>>>> The new features Grid is getting next week are:
>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>>
>>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>>> and other things once I got the write access to the CVS-repository.
>>>>>
>>>>> Tom
>>>>>
>>>>> Peter Pfeifer schrieb:
>>>>>> Hello.
>>>>>>
>>>>>> Thanks I'll file a bug.
>>>>>>
>>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>>> thought of using reflection, but for a quick try i made the an
>>>>>> get-accessor.
>>>>>>
>>>>>> What kind of changes will there be? What I encountered when
>>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to be
>>>>>> broken again. As long as I don't re-arrange the colum everything
>>>>>> is fine. But e.g when I swap column 1 & cloumn 2 and then I do the
>>>>>> tabulator-traversal it first jumps the column index 1 then back to
>>>>>> column index 0 and then goes on with index 3 and so on.
>>>>>>
>>>>>> I already use your patch you provided me a few weeks ago. Under
>>>>>> 3.3 it works but under 3.4 it's broken again.
>>>>>>
>>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>>
>>>>>> Tom Schindl schrieb:
>>>>>>> By the way there are going to be some changes in Grid in the next
>>>>>>> weeks so maintain your patch might be quite cumbersome. Did you
>>>>>>> thought about using Reflection instead of patching?
>>>>>>>
>>>>>>> Tom
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> Hi Peter,
>>>>>>>>
>>>>>>>> File a bug [1] (and CC me).
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>>
>>>>>>>>
>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>> Hello Tom.
>>>>>>>>>
>>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>>
>>>>>>>>> How can I request this as public API?
>>>>>>>>>
>>>>>>>>> Thanks.
>>>>>>>>>
>>>>>>>>> Peter
>>>>>>>>>
>>>>>>>>> Tom Schindl schrieb:
>>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>>> Hello there.
>>>>>>>>>>>
>>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>>
>>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell
>>>>>>>>>>> or columnheader the default behaviour should be triggered
>>>>>>>>>>> (either activting inline editing or resizing the column width).
>>>>>>>>>>>
>>>>>>>>>>> Is there a possibilty to check whether the user double
>>>>>>>>>>> clicked the row header, columnheader or a cell?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>>
>>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>>> System.out.println("header click");
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>> });
>>>>>>>>>>
>>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>>> request one.
>>>>>>>>>>
>>>>>>>>>> Tom
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------ ------------
>>>>>
>>>>>
>>>>
>>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590860 is a reply to message #55440] Fri, 27 June 2008 12:24 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hello Tom,

it tried your suggestion, but I think this solution has got a few
shortcommings:

* when multiselection is enabled, the text in row with the gray
background isn't displayed anymore... textcolor seems to be the same as
the selection color.

* if there is some space left after the last column, this space isn't
filled with a gray background, only cells with in columns.

* if inline editing is enabled, the black border indicating the active
cell, is "overdrawn" by the gray background.

thanks,

Peter

Tom Schindl schrieb:
> Yes this is an often requested feature and it might make sense to
> include it if the performance fee we pay is not too high. In the
> meanwhile I think you can give it a try and write your own CellRenderer
> which calculates its background just like the RowHeaderRenderer
> calculates its line number.
>
> Copy the DefaultCellRenderer and modify row 95 like this:
>
> ----------8<----------
> drawBackground = getLineNumber(item) % 2 == 0;
>
> if( drawBackground ) {
> gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_GRA Y));
> }
>
> private int getLineNumber(GridItem item) {
> return (item.getParent().indexOf(item) + 1);
> }
> ----------8<----------
>
> Naturally the algorithm to identify the line number of an item could be
> enhanced :-)
>
> Tom
>
> Peter Pfeifer schrieb:
>> Hi
>>
>> I have one more suggestion.
>>
>> My boss want's the grid rows in alternating colors (white/grey). Is
>> this already possbile or would this be another useful feature?
>>
>> Regards,
>>
>> Peter
>>
>> Tom Schindl schrieb:
>>> Definately file a bug :-)
>>>
>>> Tom
>>>
>>> Peter Pfeifer schrieb:
>>>> Hello once again.
>>>>
>>>> I was thinking about another feature regarding the grid. Is it
>>>> possible to add decorations the way the are used in eclipse forms,
>>>> to show the user that the some values he entered, are invalid?
>>>>
>>>> I'm thinking about displaying the error, warning, information icons
>>>> on the top left corner of the according cell. This would only be
>>>> needed, if inline editing is activated.
>>>>
>>>> Would this be a useful feature?
>>>>
>>>> Thanks
>>>>
>>>> Peter
>>>>
>>>> Tom Schindl schrieb:
>>>>> Does https://bugs.eclipse.org/bugs/show_bug.cgi?id=231530 fix the
>>>>> reordering problem?
>>>>>
>>>>> Tom
>>>>>
>>>>> Tom Schindl schrieb:
>>>>>> Hi Peter,
>>>>>>
>>>>>> I'll revisit the viewer bugs and problems in the following days
>>>>>> making. You can be sure that all navigation, editing bugs are
>>>>>> fixed because I'm just using Grid&GridViewer in base library I'm
>>>>>> developing for a customer.
>>>>>>
>>>>>> The new features Grid is getting next week are:
>>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237916
>>>>>> - https://bugs.eclipse.org/bugs/show_bug.cgi?id=237846
>>>>>>
>>>>>> As said beside those 2 features I'm planing to fix all Viewer Bugs
>>>>>> and other things once I got the write access to the CVS-repository.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>>> Peter Pfeifer schrieb:
>>>>>>> Hello.
>>>>>>>
>>>>>>> Thanks I'll file a bug.
>>>>>>>
>>>>>>> Since it's just one point where I use this, it's not that bad. I
>>>>>>> thought of using reflection, but for a quick try i made the an
>>>>>>> get-accessor.
>>>>>>>
>>>>>>> What kind of changes will there be? What I encountered when
>>>>>>> switching to Eclipse 3.4 the GridViewer tab-traverseal seems to
>>>>>>> be broken again. As long as I don't re-arrange the colum
>>>>>>> everything is fine. But e.g when I swap column 1 & cloumn 2 and
>>>>>>> then I do the tabulator-traversal it first jumps the column index
>>>>>>> 1 then back to column index 0 and then goes on with index 3 and
>>>>>>> so on.
>>>>>>>
>>>>>>> I already use your patch you provided me a few weeks ago. Under
>>>>>>> 3.3 it works but under 3.4 it's broken again.
>>>>>>>
>>>>>>> Who do I have to ask question regarding the CDateTime control?
>>>>>>> Because I have problems to adjust the org.eclipse.ui.forms look &
>>>>>>> feel. I can't get it as "flat" as the other "formtoolkit-controls"?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> Peter
>>>>>>>
>>>>>>>
>>>>>>> Tom Schindl schrieb:
>>>>>>>> By the way there are going to be some changes in Grid in the
>>>>>>>> next weeks so maintain your patch might be quite cumbersome. Did
>>>>>>>> you thought about using Reflection instead of patching?
>>>>>>>>
>>>>>>>> Tom
>>>>>>>>
>>>>>>>> Tom Schindl schrieb:
>>>>>>>>> Hi Peter,
>>>>>>>>>
>>>>>>>>> File a bug [1] (and CC me).
>>>>>>>>>
>>>>>>>>> Tom
>>>>>>>>>
>>>>>>>>> [1] https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Nebula&a mp;component=Grid
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>> Hello Tom.
>>>>>>>>>>
>>>>>>>>>> Thanks for the answer. That's the way I do it right now.
>>>>>>>>>> Regarding the rowheader width i patched the grid, and made a
>>>>>>>>>> public get-accessor to the rowheaderwidth property?
>>>>>>>>>>
>>>>>>>>>> How can I request this as public API?
>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>> Peter
>>>>>>>>>>
>>>>>>>>>> Tom Schindl schrieb:
>>>>>>>>>>> Peter Pfeifer schrieb:
>>>>>>>>>>>> Hello there.
>>>>>>>>>>>>
>>>>>>>>>>>> I've got a RCP application containing a gridviewer with a
>>>>>>>>>>>> rowheader and a doubleclick-listener attachted.
>>>>>>>>>>>>
>>>>>>>>>>>> A double click on the rowheader, should open the apropriate
>>>>>>>>>>>> editor based on the selection (this is what my doubleclick
>>>>>>>>>>>> listener is supposed to do), and when doubleclicking a cell
>>>>>>>>>>>> or columnheader the default behaviour should be triggered
>>>>>>>>>>>> (either activting inline editing or resizing the column width).
>>>>>>>>>>>>
>>>>>>>>>>>> Is there a possibilty to check whether the user double
>>>>>>>>>>>> clicked the row header, columnheader or a cell?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks.
>>>>>>>>>>>
>>>>>>>>>>> grid.addMouseListener(new MouseAdapter() {
>>>>>>>>>>>
>>>>>>>>>>> public void mouseDown(MouseEvent e) {
>>>>>>>>>>> if (e.y < grid.getHeaderHeight()) {
>>>>>>>>>>> System.out.println("header click");
>>>>>>>>>>> }
>>>>>>>>>>> }
>>>>>>>>>>> });
>>>>>>>>>>>
>>>>>>>>>>> For RowHeader there's no API to get its width but you could
>>>>>>>>>>> request one.
>>>>>>>>>>>
>>>>>>>>>>> Tom
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------ ------------
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>
Re: Grid - Double Click on RowHeader [message #590871 is a reply to message #55494] Fri, 27 June 2008 12:39 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Peter Pfeifer schrieb:
> Hello Tom,
>
> it tried your suggestion, but I think this solution has got a few
> shortcommings:
>
> * when multiselection is enabled, the text in row with the gray
> background isn't displayed anymore... textcolor seems to be the same as
> the selection color.
>

You need to control this in your cell-renderer. This was just a q&d hack
to get you started :-)

> * if there is some space left after the last column, this space isn't
> filled with a gray background, only cells with in columns.
>

You need to replace the EmptyCellRenderer too.

> * if inline editing is enabled, the black border indicating the active
> cell, is "overdrawn" by the gray background.

No idea why this happens but I also guess this is a problem of the
cellrenderer my example was just something to get you started.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590879 is a reply to message #55304] Fri, 27 June 2008 17:07 Go to previous message
Emil Crumhorn is currently offline Emil CrumhornFriend
Messages: 169
Registered: July 2009
Senior Member
Hey guys, just wanted to jump in with a few notes.

I'm using the Grid at work where we display a whole bunch of [secret] data
:-). The grid works wonders and so far I have no big complaints. The reason
I'm posting is we used to use KTable, but as it's not developed anymore I
decided to drop it (plus it has a whole bunch of unfixed and annoying bugs).
The beauty of KTable was that GlazedLists (which I've mentioned in passing
on the forums) work out of the box as the Glazed people have already
implemented a model for KTable.

I wanted to keep the GlazedLists stuff (which is seriously worth a look if
none of you have tried it, it's basically a model-driven list that deals
with all sorting, filtering etc and all of that + 100 other ways to play
with your data can be stacked, and each list reports to the previous
listener all the way up the chain until they report to your model exactly
what has changed). All you do is just modify the actual list object (like,
the input) and everything else is "magic" (and they're thread safe among
other stuff, you can read while writing etc). I am currently using the Grid
without the viewer (but will refactor the viewer in later), and actually
managed to "slap" glazed lists onto the Grid without too much hassle despite
the fact that it prefers a model. I ran into one glazed-related issue which
I posted on their forums about, and when they replied they also said they
would like to have that model implementation when done so that they could
put it into the Glazed lists source for anyone else wanting to use the
Nebula Grid together with glazed. They seem to be aware of Nebula or at
least they checked it out.

I'm starting to sound like a promotion even though I have nothing to do with
them, but I just love those lists, so I couldn't help myself. The site is
here: http://publicobject.com/glazedlists/ .. they have a Swing webstart
demo well worth checking out.

In any case, just wanted to throw that out there that adding support for
those would be really cool (and I don't mind contributing my implementation
to them).

Since a lot of what you list below are things glazed supports as well, it
seem a cross implementation would be pretty easy to do when it's all done.

Ok, </shameless_promotion_end>.

Love the screenshot as well, great job!

Emil

"Tom Schindl" <tom.schindl@bestsolution.at> wrote in message
news:g425rc$bgm$1@build.eclipse.org...
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> awesome screenshot. Will this filtering feature be provided out of the
>> box? And if so, can it be enabled and disabled?
>>
>
> No :-( This is an extension I'm making for a customer. The grid you are
> seeing in the screenshot supports:
>
> - Auto-Filter
> - Auto-Sort
> - Quick-Search
> - Grouping Functions (in the footer line not visible in the screenshot)
> - ...
>
> And takes about 10 lines to get setup :-)
>
> Tom
>
> --
> B e s t S o l u t i o n . at
> ------------------------------------------------------------ --------
> Tom Schindl JFace-Committer
> ------------------------------------------------------------ --------
Re: Grid - Double Click on RowHeader [message #590904 is a reply to message #55521] Fri, 27 June 2008 17:44 Go to previous message
Peter Pfeifer is currently offline Peter PfeiferFriend
Messages: 98
Registered: July 2009
Member
Hi Tom,

don't get me wrong, I apreciate your help. I just wanted to let you know
my findings. :-)

Regards,

Peter

Tom Schindl schrieb:
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> it tried your suggestion, but I think this solution has got a few
>> shortcommings:
>>
>> * when multiselection is enabled, the text in row with the gray
>> background isn't displayed anymore... textcolor seems to be the same
>> as the selection color.
>>
>
> You need to control this in your cell-renderer. This was just a q&d hack
> to get you started :-)
>
>> * if there is some space left after the last column, this space isn't
>> filled with a gray background, only cells with in columns.
>>
>
> You need to replace the EmptyCellRenderer too.
>
>> * if inline editing is enabled, the black border indicating the active
>> cell, is "overdrawn" by the gray background.
>
> No idea why this happens but I also guess this is a problem of the
> cellrenderer my example was just something to get you started.
>
> Tom
>
Re: Grid - Double Click on RowHeader [message #590914 is a reply to message #55304] Fri, 27 June 2008 18:13 Go to previous message
Jacek Kolodziejczyk is currently offline Jacek KolodziejczykFriend
Messages: 37
Registered: July 2009
Member
I agree, auto-filtering would be great.
Your screen shot gives an impression (maybe I'm wrong) that filters
determine/auto-resize the original column width after adding them to the
grid. I think they should not, unless we have an additional option
setColumnAutoSizing turned on before adding auto-filters.

By the way, setColumnAutoSizing could also be useful in other cases,
like creating columns for instance.

Jacek

Tom Schindl wrote:
> Peter Pfeifer schrieb:
>> Hello Tom,
>>
>> awesome screenshot. Will this filtering feature be provided out of the
>> box? And if so, can it be enabled and disabled?
>>
>
> No :-( This is an extension I'm making for a customer. The grid you are
> seeing in the screenshot supports:
>
> - Auto-Filter
> - Auto-Sort
> - Quick-Search
> - Grouping Functions (in the footer line not visible in the screenshot)
> - ...
>
> And takes about 10 lines to get setup :-)
>
> Tom
>
Previous Topic:Grid - Double Click on RowHeader
Next Topic:GridViewer - CheckBoxCellEditor - Databinding
Goto Forum:
  


Current Time: Thu Jun 27 21:22:25 GMT 2024

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

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

Back to the top