Skip to main content



      Home
Home » Archived » BIRT » Scriped Datasource and Parent/Child relationship
Scriped Datasource and Parent/Child relationship [message #248161] Mon, 16 July 2007 12:45 Go to next message
Eclipse UserFriend
Hi,

I already searched google and the 2 BiRT books but couldn't find a
solution to my problem.

I have the following class-structure:

public class Person {
private String name;
private ArrayList contracts = new ArrayList();
// ....
public ArrayList getContracts() {
return contracts;
}
}

public class Contract {
private String name;
}

The resulting report should look like this:

--------------
Person 1
--------------
- Contract 1
- Contract 2
--------------
Person 2
--------------
- Contract 3
- Contract 4
.....

In reporting the contracts are created using a subreport and now I face
the problem how to pass the person object on to the subreport. I tried
the following but it fails:

PersonDataSet:
fetch:
----------8<----------
if( iterator.hasNext() ) {
var node = iterator.next();
row["name"] = node.getName();
row["mobject"] = node;
return true;
} else {
return false;
}
----------8<----------

And passing on the mobject to the child but this fails with:
-----------8<-----------
WARNUNG: An error happen during population of data. This might be caused
by including data of mixed type in a column of "ANY" type.
java.lang.IllegalArgumentException: An error happen during population of
data. This might be caused by including data of mixed type in a column
of "ANY" type.
at
org.eclipse.birt.data.engine.script.DataRow.setColumnValue(D ataRow.java:153)
-----------8<-----------

Maybe someone could point me in the right direction? How do I pass the
Person object to the sub-report?

Thanks

Tom


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248180 is a reply to message #248161] Mon, 16 July 2007 13:41 Go to previous messageGo to next message
Eclipse UserFriend
Tom Schindl schrieb:
> Hi,
>
> I already searched google and the 2 BiRT books but couldn't find a
> solution to my problem.
>
> I have the following class-structure:
>
> public class Person {
> private String name;
> private ArrayList contracts = new ArrayList();
> // ....
> public ArrayList getContracts() {
> return contracts;
> }
> }
>
> public class Contract {
> private String name;
> }
>
> The resulting report should look like this:
>
> --------------
> Person 1
> --------------
> - Contract 1
> - Contract 2
> --------------
> Person 2
> --------------
> - Contract 3
> - Contract 4
> ....
>
> In reporting the contracts are created using a subreport and now I face
> the problem how to pass the person object on to the subreport. I tried
> the following but it fails:
>
> PersonDataSet:
> fetch:
> ----------8<----------
> if( iterator.hasNext() ) {
> var node = iterator.next();
> row["name"] = node.getName();
> row["mobject"] = node;
> return true;
> } else {
> return false;
> }
> ----------8<----------
>
> And passing on the mobject to the child but this fails with:
> -----------8<-----------
> WARNUNG: An error happen during population of data. This might be caused
> by including data of mixed type in a column of "ANY" type.
> java.lang.IllegalArgumentException: An error happen during population of
> data. This might be caused by including data of mixed type in a column
> of "ANY" type.
> at
> org.eclipse.birt.data.engine.script.DataRow.setColumnValue(D ataRow.java:153)
>
> -----------8<-----------
>

It's interesting that this call fails *not* on the first row but on the
second. Maybe this helps somehow.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248184 is a reply to message #248180] Mon, 16 July 2007 14:23 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

Take a look at this example.

http://wiki.eclipse.org/Nested_Tables_using_two_Scripted_dat a_sets_%28BIRT%29

Jason


Tom Schindl wrote:
> Tom Schindl schrieb:
>> Hi,
>>
>> I already searched google and the 2 BiRT books but couldn't find a
>> solution to my problem.
>>
>> I have the following class-structure:
>>
>> public class Person {
>> private String name;
>> private ArrayList contracts = new ArrayList();
>> // ....
>> public ArrayList getContracts() {
>> return contracts;
>> }
>> }
>>
>> public class Contract {
>> private String name;
>> }
>>
>> The resulting report should look like this:
>>
>> --------------
>> Person 1
>> --------------
>> - Contract 1
>> - Contract 2
>> --------------
>> Person 2
>> --------------
>> - Contract 3
>> - Contract 4
>> ....
>>
>> In reporting the contracts are created using a subreport and now I
>> face the problem how to pass the person object on to the subreport. I
>> tried the following but it fails:
>>
>> PersonDataSet:
>> fetch:
>> ----------8<----------
>> if( iterator.hasNext() ) {
>> var node = iterator.next();
>> row["name"] = node.getName();
>> row["mobject"] = node;
>> return true;
>> } else {
>> return false;
>> }
>> ----------8<----------
>>
>> And passing on the mobject to the child but this fails with:
>> -----------8<-----------
>> WARNUNG: An error happen during population of data. This might be
>> caused by including data of mixed type in a column of "ANY" type.
>> java.lang.IllegalArgumentException: An error happen during population
>> of data. This might be caused by including data of mixed type in a
>> column of "ANY" type.
>> at
>> org.eclipse.birt.data.engine.script.DataRow.setColumnValue(D ataRow.java:153)
>>
>> -----------8<-----------
>>
>
> It's interesting that this call fails *not* on the first row but on the
> second. Maybe this helps somehow.
>
> Tom
>
Re: Scriped Datasource and Parent/Child relationship [message #248188 is a reply to message #248180] Mon, 16 July 2007 14:22 Go to previous messageGo to next message
Eclipse UserFriend
[...]
>> And passing on the mobject to the child but this fails with:
>> -----------8<-----------
>> WARNUNG: An error happen during population of data. This might be
>> caused by including data of mixed type in a column of "ANY" type.
>> java.lang.IllegalArgumentException: An error happen during population
>> of data. This might be caused by including data of mixed type in a
>> column of "ANY" type.
>> at
>> org.eclipse.birt.data.engine.script.DataRow.setColumnValue(D ataRow.java:153)
>>
>> -----------8<-----------
>>
>
> It's interesting that this call fails *not* on the first row but on the
> second. Maybe this helps somehow.
>

It seems that it is not allowed to reset values:

if( obj.getResultClass( ).wasAnyType( name ))
throw new IllegalArgumentException( DataResourceHandle.getInstance( )
.getMessage( ResourceConstants.POSSIBLE_MIXED_DATA_TYPE_IN_COLUMN ) );

But why is that? Can anybody shade some light on this?

Tom


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248193 is a reply to message #248184] Mon, 16 July 2007 14:44 Go to previous messageGo to next message
Eclipse UserFriend
Hi Jason,

Ok. I took a look but is this really the only possibility? If I
translate this into my example it would look like this:

----------8<----------
if( iterator.hasNext() ) {
var node = iterator.next();
row["name"] = node.getName();
reportContext.setPersistentGlobalVariable("person", node);
return true;
} else {
return false;
}
----------8<----------

Tom

Jason Weathersby schrieb:
> Tom,
>
> Take a look at this example.
>
> http://wiki.eclipse.org/Nested_Tables_using_two_Scripted_dat a_sets_%28BIRT%29
>
>
> Jason
>
>
> Tom Schindl wrote:
>> Tom Schindl schrieb:
>>> Hi,
>>>
>>> I already searched google and the 2 BiRT books but couldn't find a
>>> solution to my problem.
>>>
>>> I have the following class-structure:
>>>
>>> public class Person {
>>> private String name;
>>> private ArrayList contracts = new ArrayList();
>>> // ....
>>> public ArrayList getContracts() {
>>> return contracts;
>>> }
>>> }
>>>
>>> public class Contract {
>>> private String name;
>>> }
>>>
>>> The resulting report should look like this:
>>>
>>> --------------
>>> Person 1
>>> --------------
>>> - Contract 1
>>> - Contract 2
>>> --------------
>>> Person 2
>>> --------------
>>> - Contract 3
>>> - Contract 4
>>> ....
>>>
>>> In reporting the contracts are created using a subreport and now I
>>> face the problem how to pass the person object on to the subreport. I
>>> tried the following but it fails:
>>>
>>> PersonDataSet:
>>> fetch:
>>> ----------8<----------
>>> if( iterator.hasNext() ) {
>>> var node = iterator.next();
>>> row["name"] = node.getName();
>>> row["mobject"] = node;
>>> return true;
>>> } else {
>>> return false;
>>> }
>>> ----------8<----------
>>>
>>> And passing on the mobject to the child but this fails with:
>>> -----------8<-----------
>>> WARNUNG: An error happen during population of data. This might be
>>> caused by including data of mixed type in a column of "ANY" type.
>>> java.lang.IllegalArgumentException: An error happen during population
>>> of data. This might be caused by including data of mixed type in a
>>> column of "ANY" type.
>>> at
>>> org.eclipse.birt.data.engine.script.DataRow.setColumnValue(D ataRow.java:153)
>>>
>>> -----------8<-----------
>>>
>>
>> It's interesting that this call fails *not* on the first row but on
>> the second. Maybe this helps somehow.
>>
>> Tom
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248203 is a reply to message #248193] Mon, 16 July 2007 14:52 Go to previous messageGo to next message
Eclipse UserFriend
Tom Schindl schrieb:
> Hi Jason,
>
> Ok. I took a look but is this really the only possibility? If I
> translate this into my example it would look like this:
>
> ----------8<----------
> if( iterator.hasNext() ) {
> var node = iterator.next();
> row["name"] = node.getName();
> reportContext.setPersistentGlobalVariable("person", node);
> return true;
> } else {
> return false;
> }
> ----------8<----------
>

This doesn't work either:
--------8<----------
WARNUNG: A BIRT exception occurred: Error evaluating Javascript
expression. Script engine error: Can't find method
org.eclipse.birt.report.engine.script.internal.ReportContext Impl.setPersistentGlobalVariable(string,model.test.Person).
(DataSet[Data Set].__bm_FETCH#5)
--------8<----------

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248300 is a reply to message #248203] Mon, 16 July 2007 23:34 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

I believe the issue is that objects can not be passed as parameters to a
data set. You can use the persistent global variable in the fetch
method in 2.2 if you do not mind losing the preview data set option.
You can still preview the report just not the dataset.

Look at the attached example. It changes the name of the variable per
row and the table then uses getPersistentGlobalVariable to retrieve the
object.

Are you using 2.1.x?

Jason


<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.14"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.2.0.v20070620 Build &lt;2.2.0.v20070626-1003></property>
<property name="units">in</property>
<property name="comments">Copyright (c) 2007 &lt;&lt;Your Company
Name here>></property>
<html-property name="description">Creates a blank report with no
predefined content.</html-property>
<text-property name="displayName">Blank Report</text-property>
<property name="iconFile">/templates/blank_report.gif</property>
<data-sources>
<script-data-source name="Data Source" id="6"/>
</data-sources>
<data-sets>
<script-data-set name="Data Set" id="7">
<list-property name="resultSetHints">
<structure>
<property name="position">1</property>
<property name="name">mycol</property>
<property name="dataType">integer</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">mycol</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">mycol</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<method name="open"><![CDATA[jj = 0;]]></method>
<method name="fetch"><![CDATA[importPackage(
Packages.java.lang );

if ( jj > 5 ){
return false;
}else{

row["mycol"] = jj;
var xyz = new Integer(jj);

//xyz must be an object type
//This will only work when previewing or running the report
//Previewing the dataset will fail.
reportContext.setPersistentGlobalVariable("person"+jj, xyz);
jj++;

return true;
}]]></method>
</script-data-set>
</data-sets>
<styles>
<style name="crosstab" id="4">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table id="8">
<property name="width">100%</property>
<property name="dataSet">Data Set</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">mycol</property>
<expression
name="expression">dataSetRow["mycol"]</expression>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Column Binding</property>
<expression
name="expression">reportContext.getPersistentGlobalVariable( "person"+row["mycol"]);</expression>
<property name="dataType">any</property>
</structure>
</list-property>
<column id="17"/>
<column id="21"/>
<header>
<row id="9">
<cell id="10">
<label id="11">
<text-property
name="text">mycol</text-property>
</label>
</cell>
<cell id="18">
<label id="23">
<text-property name="text">My persisted
object</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="12">
<cell id="13">
<data id="14">
<property
name="resultSetColumn">mycol</property>
</data>
</cell>
<cell id="19">
<data id="22">
<property name="resultSetColumn">Column
Binding</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="15">
<cell id="16"/>
<cell id="20"/>
</row>
</footer>
</table>
</body>
</report>


Tom Schindl wrote:
> Tom Schindl schrieb:
>> Hi Jason,
>>
>> Ok. I took a look but is this really the only possibility? If I
>> translate this into my example it would look like this:
>>
>> ----------8<----------
>> if( iterator.hasNext() ) {
>> var node = iterator.next();
>> row["name"] = node.getName();
>> reportContext.setPersistentGlobalVariable("person", node);
>> return true;
>> } else {
>> return false;
>> }
>> ----------8<----------
>>
>
> This doesn't work either:
> --------8<----------
> WARNUNG: A BIRT exception occurred: Error evaluating Javascript
> expression. Script engine error: Can't find method
> org.eclipse.birt.report.engine.script.internal.ReportContext Impl.setPersistentGlobalVariable(string,model.test.Person).
> (DataSet[Data Set].__bm_FETCH#5)
> --------8<----------
>
> Tom
>
Re: Scriped Datasource and Parent/Child relationship [message #248320 is a reply to message #248300] Tue, 17 July 2007 03:27 Go to previous messageGo to next message
Eclipse UserFriend
Hi Jason,

Thanks for your help. I'll take a look later today. Do you think BiRT
could provide a more natural way of doing this kind of thing in future.
The current solution is more of a hack than a real solution.

I think it's really important to make POJOs working in reports is really
important. It currently seems that BiRT is primary target is SQL, right?

Jason Weathersby schrieb:
> Tom,
>
> I believe the issue is that objects can not be passed as parameters to a
> data set. You can use the persistent global variable in the fetch
> method in 2.2 if you do not mind losing the preview data set option. You
> can still preview the report just not the dataset.
>
> Look at the attached example. It changes the name of the variable per
> row and the table then uses getPersistentGlobalVariable to retrieve the
> object.
>
> Are you using 2.1.x?
>

No I'm using Europa-Release. The problem was that my Object didn't
implemented Serializable. I now implemented it but I think instead I
also could have used getGlobalVariable() too, right?

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248376 is a reply to message #248320] Tue, 17 July 2007 10:21 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

I would not say it is primarily focused on SQL, but on known data types.
You can add an Java Object to the script environment and call them as
you are doing or add them to the application context and call them from
the expression builder. The main issue is that ODA/BIRT does not
support object types. In your case if the inner hash was keyed with a
known data type then you would not have to use this hack. Hopefully we
will get object support in the future.

Jason

Tom Schindl wrote:
> Hi Jason,
>
> Thanks for your help. I'll take a look later today. Do you think BiRT
> could provide a more natural way of doing this kind of thing in future.
> The current solution is more of a hack than a real solution.
>
> I think it's really important to make POJOs working in reports is really
> important. It currently seems that BiRT is primary target is SQL, right?
>
> Jason Weathersby schrieb:
>> Tom,
>>
>> I believe the issue is that objects can not be passed as parameters to
>> a data set. You can use the persistent global variable in the fetch
>> method in 2.2 if you do not mind losing the preview data set option.
>> You can still preview the report just not the dataset.
>>
>> Look at the attached example. It changes the name of the variable per
>> row and the table then uses getPersistentGlobalVariable to retrieve
>> the object.
>>
>> Are you using 2.1.x?
>>
>
> No I'm using Europa-Release. The problem was that my Object didn't
> implemented Serializable. I now implemented it but I think instead I
> also could have used getGlobalVariable() too, right?
>
> Tom
>
Re: Scriped Datasource and Parent/Child relationship [message #248584 is a reply to message #248376] Wed, 18 July 2007 07:02 Go to previous messageGo to next message
Eclipse UserFriend
Jason Weathersby schrieb:
> Tom,
>
> I would not say it is primarily focused on SQL, but on known data types.
> You can add an Java Object to the script environment and call them as
> you are doing or add them to the application context and call them from
> the expression builder. The main issue is that ODA/BIRT does not
> support object types. In your case if the inner hash was keyed with a
> known data type then you would not have to use this hack. Hopefully we
> will get object support in the future.
>

So there are people working on it? How much work is this? My use case is
to create a report of EMF-Sources and if there's going to be a chance
that in future this hack has not to be used I could think about use BiRT
in my next projects Jasper-Reports once more.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248624 is a reply to message #248584] Wed, 18 July 2007 10:27 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

I checked bugzilla and can not seem to find a bug logged on this. I
imagine that this will be a difficult thing to change. At one time
there was some mailing list chatter about building an EMF based ODA
driver, but I do not see a bugzilla entry for this either. If you would
like, log a bugzilla entry for both of these.

Jason

Tom Schindl wrote:
> Jason Weathersby schrieb:
>> Tom,
>>
>> I would not say it is primarily focused on SQL, but on known data types.
>> You can add an Java Object to the script environment and call them as
>> you are doing or add them to the application context and call them
>> from the expression builder. The main issue is that ODA/BIRT does not
>> support object types. In your case if the inner hash was keyed with a
>> known data type then you would not have to use this hack. Hopefully
>> we will get object support in the future.
>>
>
> So there are people working on it? How much work is this? My use case is
> to create a report of EMF-Sources and if there's going to be a chance
> that in future this hack has not to be used I could think about use BiRT
> in my next projects Jasper-Reports once more.
>
> Tom
>
Re: Scriped Datasource and Parent/Child relationship [message #248644 is a reply to message #248584] Wed, 18 July 2007 10:39 Go to previous messageGo to next message
Eclipse UserFriend
Tom,

I think that the best bug to track for this is:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=132958

Have a look and see if it addresses your concerns. I am not sure much work
is getting done, but it is best to have it on the wish list.

Scott Rosenbaum

> Jason Weathersby schrieb:
>
>> Tom,
>>
>> I would not say it is primarily focused on SQL, but on known data
>> types. You can add an Java Object to the script environment and call
>> them as you are doing or add them to the application context and call
>> them from the expression builder. The main issue is that ODA/BIRT
>> does not support object types. In your case if the inner hash was
>> keyed with a known data type then you would not have to use this
>> hack. Hopefully we will get object support in the future.
>>
> So there are people working on it? How much work is this? My use case
> is to create a report of EMF-Sources and if there's going to be a
> chance that in future this hack has not to be used I could think about
> use BiRT in my next projects Jasper-Reports once more.
>
> Tom
>
Re: Scriped Datasource and Parent/Child relationship [message #248740 is a reply to message #248624] Wed, 18 July 2007 12:25 Go to previous messageGo to next message
Eclipse UserFriend
Hi Scott and Jason,

If I got you both right the thing that is needed is to write a ODA
Driver that is backed by a POJO instead of e.g. XML?

Tom

Jason Weathersby schrieb:
> Tom,
>
> I checked bugzilla and can not seem to find a bug logged on this. I
> imagine that this will be a difficult thing to change. At one time
> there was some mailing list chatter about building an EMF based ODA
> driver, but I do not see a bugzilla entry for this either. If you would
> like, log a bugzilla entry for both of these.
>
> Jason
>
> Tom Schindl wrote:
>> Jason Weathersby schrieb:
>>> Tom,
>>>
>>> I would not say it is primarily focused on SQL, but on known data types.
>>> You can add an Java Object to the script environment and call them as
>>> you are doing or add them to the application context and call them
>>> from the expression builder. The main issue is that ODA/BIRT does
>>> not support object types. In your case if the inner hash was keyed
>>> with a known data type then you would not have to use this hack.
>>> Hopefully we will get object support in the future.
>>>
>>
>> So there are people working on it? How much work is this? My use case
>> is to create a report of EMF-Sources and if there's going to be a
>> chance that in future this hack has not to be used I could think about
>> use BiRT in my next projects Jasper-Reports once more.
>>
>> Tom
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #248861 is a reply to message #248740] Thu, 19 July 2007 09:11 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

That is an option. You can also write your scripted data set in Java.
Both of these options will still have a problem with nested data sets,
where you need to pass a object as a parameter though.

Jason

Tom Schindl wrote:
> Hi Scott and Jason,
>
> If I got you both right the thing that is needed is to write a ODA
> Driver that is backed by a POJO instead of e.g. XML?
>
> Tom
>
> Jason Weathersby schrieb:
>> Tom,
>>
>> I checked bugzilla and can not seem to find a bug logged on this. I
>> imagine that this will be a difficult thing to change. At one time
>> there was some mailing list chatter about building an EMF based ODA
>> driver, but I do not see a bugzilla entry for this either. If you
>> would like, log a bugzilla entry for both of these.
>>
>> Jason
>>
>> Tom Schindl wrote:
>>> Jason Weathersby schrieb:
>>>> Tom,
>>>>
>>>> I would not say it is primarily focused on SQL, but on known data
>>>> types.
>>>> You can add an Java Object to the script environment and call them
>>>> as you are doing or add them to the application context and call
>>>> them from the expression builder. The main issue is that ODA/BIRT
>>>> does not support object types. In your case if the inner hash was
>>>> keyed with a known data type then you would not have to use this
>>>> hack. Hopefully we will get object support in the future.
>>>>
>>>
>>> So there are people working on it? How much work is this? My use case
>>> is to create a report of EMF-Sources and if there's going to be a
>>> chance that in future this hack has not to be used I could think
>>> about use BiRT in my next projects Jasper-Reports once more.
>>>
>>> Tom
>>>
>
>
Re: Scriped Datasource and Parent/Child relationship [message #248959 is a reply to message #248861] Thu, 19 July 2007 14:41 Go to previous messageGo to next message
Eclipse UserFriend
Hi,

I see so the first limitation to resolve is the possibility of passing
objects as parameters.

Tom

Jason Weathersby schrieb:
> Tom,
>
> That is an option. You can also write your scripted data set in Java.
> Both of these options will still have a problem with nested data sets,
> where you need to pass a object as a parameter though.
>
> Jason
>
> Tom Schindl wrote:
>> Hi Scott and Jason,
>>
>> If I got you both right the thing that is needed is to write a ODA
>> Driver that is backed by a POJO instead of e.g. XML?
>>
>> Tom
>>
>> Jason Weathersby schrieb:
>>> Tom,
>>>
>>> I checked bugzilla and can not seem to find a bug logged on this. I
>>> imagine that this will be a difficult thing to change. At one time
>>> there was some mailing list chatter about building an EMF based ODA
>>> driver, but I do not see a bugzilla entry for this either. If you
>>> would like, log a bugzilla entry for both of these.
>>>
>>> Jason
>>>
>>> Tom Schindl wrote:
>>>> Jason Weathersby schrieb:
>>>>> Tom,
>>>>>
>>>>> I would not say it is primarily focused on SQL, but on known data
>>>>> types.
>>>>> You can add an Java Object to the script environment and call them
>>>>> as you are doing or add them to the application context and call
>>>>> them from the expression builder. The main issue is that ODA/BIRT
>>>>> does not support object types. In your case if the inner hash was
>>>>> keyed with a known data type then you would not have to use this
>>>>> hack. Hopefully we will get object support in the future.
>>>>>
>>>>
>>>> So there are people working on it? How much work is this? My use
>>>> case is to create a report of EMF-Sources and if there's going to be
>>>> a chance that in future this hack has not to be used I could think
>>>> about use BiRT in my next projects Jasper-Reports once more.
>>>>
>>>> Tom
>>>>
>>
>>


--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Re: Scriped Datasource and Parent/Child relationship [message #249166 is a reply to message #248959] Fri, 20 July 2007 10:47 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Tom,

Either that or you need to pass a primitive as a key.

Jason

Tom Schindl wrote:
> Hi,
>
> I see so the first limitation to resolve is the possibility of passing
> objects as parameters.
>
> Tom
>
> Jason Weathersby schrieb:
>> Tom,
>>
>> That is an option. You can also write your scripted data set in Java.
>> Both of these options will still have a problem with nested data sets,
>> where you need to pass a object as a parameter though.
>>
>> Jason
>>
>> Tom Schindl wrote:
>>> Hi Scott and Jason,
>>>
>>> If I got you both right the thing that is needed is to write a ODA
>>> Driver that is backed by a POJO instead of e.g. XML?
>>>
>>> Tom
>>>
>>> Jason Weathersby schrieb:
>>>> Tom,
>>>>
>>>> I checked bugzilla and can not seem to find a bug logged on this. I
>>>> imagine that this will be a difficult thing to change. At one time
>>>> there was some mailing list chatter about building an EMF based ODA
>>>> driver, but I do not see a bugzilla entry for this either. If you
>>>> would like, log a bugzilla entry for both of these.
>>>>
>>>> Jason
>>>>
>>>> Tom Schindl wrote:
>>>>> Jason Weathersby schrieb:
>>>>>> Tom,
>>>>>>
>>>>>> I would not say it is primarily focused on SQL, but on known data
>>>>>> types.
>>>>>> You can add an Java Object to the script environment and call them
>>>>>> as you are doing or add them to the application context and call
>>>>>> them from the expression builder. The main issue is that ODA/BIRT
>>>>>> does not support object types. In your case if the inner hash was
>>>>>> keyed with a known data type then you would not have to use this
>>>>>> hack. Hopefully we will get object support in the future.
>>>>>>
>>>>>
>>>>> So there are people working on it? How much work is this? My use
>>>>> case is to create a report of EMF-Sources and if there's going to
>>>>> be a chance that in future this hack has not to be used I could
>>>>> think about use BiRT in my next projects Jasper-Reports once more.
>>>>>
>>>>> Tom
>>>>>
>>>
>>>
>
>
Re: Scriped Datasource and Parent/Child relationship [message #249339 is a reply to message #249166] Sun, 22 July 2007 09:09 Go to previous messageGo to next message
Eclipse UserFriend
This is a multi-part message in MIME format.
--------------070406010205050601010208
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

But what I don't really understand is that I was able to pass an object
to a subreport. I'll attach the projects.

The strange thing is that the subreport always gets the last object as
person parameter. So to me it seems that I can pass any type of Object
to the subform which is a good thing but the problem is the object I
want to pass (See the attached screenshot).

Tom

Jason Weathersby schrieb:
> Tom,
>
> Either that or you need to pass a primitive as a key.
>
> Jason
>
> Tom Schindl wrote:
>> Hi,
>>
>> I see so the first limitation to resolve is the possibility of passing
>> objects as parameters.
>>
>> Tom
>>
>> Jason Weathersby schrieb:
>>> Tom,
>>>
>>> That is an option. You can also write your scripted data set in
>>> Java. Both of these options will still have a problem with nested
>>> data sets, where you need to pass a object as a parameter though.
>>>
>>> Jason
>>>
>>> Tom Schindl wrote:
>>>> Hi Scott and Jason,
>>>>
>>>> If I got you both right the thing that is needed is to write a ODA
>>>> Driver that is backed by a POJO instead of e.g. XML?
>>>>
>>>> Tom
>>>>
>>>> Jason Weathersby schrieb:
>>>>> Tom,
>>>>>
>>>>> I checked bugzilla and can not seem to find a bug logged on this.
>>>>> I imagine that this will be a difficult thing to change. At one
>>>>> time there was some mailing list chatter about building an EMF
>>>>> based ODA driver, but I do not see a bugzilla entry for this
>>>>> either. If you would like, log a bugzilla entry for both of these.
>>>>>
>>>>> Jason
>>>>>
>>>>> Tom Schindl wrote:
>>>>>> Jason Weathersby schrieb:
>>>>>>> Tom,
>>>>>>>
>>>>>>> I would not say it is primarily focused on SQL, but on known data
>>>>>>> types.
>>>>>>> You can add an Java Object to the script environment and call
>>>>>>> them as you are doing or add them to the application context and
>>>>>>> call them from the expression builder. The main issue is that
>>>>>>> ODA/BIRT does not support object types. In your case if the
>>>>>>> inner hash was keyed with a known data type then you would not
>>>>>>> have to use this hack. Hopefully we will get object support in
>>>>>>> the future.
>>>>>>>
>>>>>>
>>>>>> So there are people working on it? How much work is this? My use
>>>>>> case is to create a report of EMF-Sources and if there's going to
>>>>>> be a chance that in future this hack has not to be used I could
>>>>>> think about use BiRT in my next projects Jasper-Reports once more.
>>>>>>
>>>>>> Tom
>>>>>>
>>>>
>>>>
>>
>>


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

--------------070406010205050601010208
Content-Type: application/zip;
name="projects.zip"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="projects.zip"

UEsDBBQACAAIACd49jYAAAAAAAAAAAAAAAAnAAAAYXQuYmlzY2F0LnNvY2lh bC5zbGkucmVw
b3J0cy8uY2xhc3NwYXRolY/LCsIwEEXX9itC9qa6c9EHIhV0UaXUtdRkaKNx EvMQ/XstUnSj
4G7u5XAuk+S3syJXsE5qTOmUTSgB5FpIbFO6q5fjGc2zKOGqcc40vsui0TsA ensnJ4kipc5y
SvrydcZfQa5xALVtGXAljQN2FJ6pJiDvntNsXRX7xaas56uyqP6XGQGMawvM wiVIC2KrQivR
/TDp4E3wg+wgsWeT+OPxB1BLBwg/HFeoowAAACwBAABQSwMEFAAIAAgAJ3j2 NgAAAAAAAAAA
AAAAACUAAABhdC5iaXNjYXQuc29jaWFsLnNsaS5yZXBvcnRzLy5wcm9qZWN0 vZLPSgMxEMbP
9inK3k305iHdgoo3Rag+QDoZ15T8YyZbfHyzu2lxWwqC4CnfN/lmfpCJWn95 t9wjsY1h1dyK
m2aJAaKxoVs1729P13fNul2oRHGHkB+RgWzKJdwurlTQHludxdYylIMjWO0E OysIU6TMSo6R
EoXoPYbcKnlQpVin8qDlT7PtrTObhFBMdQ+lTQczFCo4UicQnE2MYmeygEhF 6L0e80hHeGnQ
1PUDlScrZ17JU8JvkMmgeNbBfiDn+38jbuATvf4zrxbqExdU7gmn6KTPwK+u 72x4GS8H7hi6
kJ9tI5y2HGTBHbc++1jfUEsHCMDnZWPwAAAAlQIAAFBLAwQUAAgACAAnePY2 AAAAAAAAAAAA
AAAAMQAAAGF0LmJpc2NhdC5zb2NpYWwuc2xpLnJlcG9ydHMvTUVUQS1JTkYv TUFOSUZFU1Qu
TUZ9j8sKwjAQRff5inyAGdRldwrurEgL7tN0LANpUicToX69hVofG1cDc+6D W9pAV0xiLsiJ
Yij0BtZqn0Pr0ZQv+GbbhZxsj4WucIgsSZ997gyFBdZj30RPbhZZgYaSm06K jqyH5Al4di6O
7/JP/c4J3a1E/h8Cb52q8JaJ0cwBhY7cATpPQ0LItFI/DxcZgXMQ6nFCfWzR g0xz1WFWmKN9
jLVYlkILZ1RPUEsHCE3na1KpAAAALQEAAFBLAwQUAAgACAAnePY2AAAAAAAA AAAAAAAATQAA
AGF0LmJpc2NhdC5zb2NpYWwuc2xpLnJlcG9ydHMvYmluL2F0L2Jpc2NhdC9z b2NpYWwvc2xp
L3JlcG9ydHMvQWN0aXZhdG9yLmNsYXNzjZJdTxNBFIbf6SddlyJgUQREkNZS k06MlxgTBDFN
GkKC9NZMl2EdXHY3s7PIz/LjgsQLf4A/ynhmuimJF8jNfJw5+5znnOzvPz9/ AXiJTh0lho4w
fKyygLYsCZSIeBYprmWaaJPx3cCoS2ESXUeFchMdchlEKs0kzxVPozxUMd8d Z0aLwJwMjlyA
oXE0PHk/OPw42GdYGJ6LS8EjEYf82GgVhzsMs3tJnBkRm5GIcjmDBsOqMP2J SH8i0ieRfiHC
UEsLdnd4N2OqUnutYmXeMJS72yOGyl5yKj2Ucd+Hj1mGuaGK5WF+MZb6gxhH 0somgYhGQit7
L4IV80mRQZWEtWFod4d2DkkWKn6mxYX8kujP/G0en0aS2jLyyuzYct67q0Cm RlGndTxiWLyZ
w/TF2jz28QCtBmgEPjzcY6gHEwzD5v9LkV9mktSSNnyso0WVQ2n25ZnII0L0 utt3n5h3nOQ6
kAfK9t2cvvStOjZIsUy/TgnLqKJGt7q7zZA1edO5QjGaLK1Nur2indFe7V1j 7ptLnafVox3U
cgUtLNDJnyRh0SGYHQZlLBW4hw51QBH7ldd7cY3l3g+s3PCaTmqVCGto4Ilj Lk2yC6Y9rdGL
1Vm/jc4IbCs8/ZfepuwO0Z/fSm9gE8+K5rdcV1TlO1a+Tmk1F+WOUnLdbrlT +y9QSwcIqU02
C/0BAACWAwAAUEsDBBQACAAIACd49jYAAAAAAAAAAAAAAAAtAAAAYXQuYmlz Y2F0LnNvY2lh
bC5zbGkucmVwb3J0cy9idWlsZC5wcm9wZXJ0aWVzK84vLUpO1dNTsFUoLkrW 58ovLSkoLQHz
kzLz9LmAhF5mXnJOaUpqMVDM1zXEUdfTz01fJ4ZLARXocQEAUEsHCB907fk8 AAAATAAAAFBL
AwQUAAgACAAnePY2AAAAAAAAAAAAAAAAOQAAAGF0LmJpc2NhdC5zb2NpYWwu c2xpLnJlcG9y
dHMvcmVwb3J0cy9UZXN0UmVwb3J0LnJwdGRlc2lnbu1abW/bNhD+7l/BadiQ oLMlO03SLIqL
xV23AG0aJFmHISgGWaJtrZIoSFQSo9h/35GU9Uq9OlnbLQbaQOLd8e54PD53 lP7y3nXQLQ5C
m3gnynikKQh7JrFsb3mi/Hb9evhCeTkd6AH2SUAREHvhibKi1P9RVe/u7kbY dGw/xCMSLNW5
HVB1omn7qoVDe+kpqeC90WQ0fq4g24JJlOkAwU/3A+LjgK6RZ7j4RDEDbFBs na6V6c9CKjo9
u7xGr7gwHKD3QhqagDBtdAszHWoHEw2dRrZjoe8depwf2R9qB3vaVFc3E8nn jTybhsrU9poI
TeK62GO0M+KvA3u5omjH3EVsOj49+/cHiQI0I65veGt0DnxohQM8LWuxoq4z LMwAfjMD26dg
JUzC/REiA80dw/uI4jW4s+kKeQT5AbbwwvawhUziUVBspKs5ofFEFN/T0kR2 6DvGmumnTE+5
+EsuXldz5HJH2DDha9sBVqB2QRCoqXIl/xRKjpb2omSwZVBjGIJ7TByKV/y1 sHiYGY1nebu+
4o8iag6UlIfzuZiuiBXTwkTgMf2bm9mrn65/urEi112/m/+FTYpOkIfvkHjY 2T3+8AGWQvDW
CTQdEuJqiZHjyCXpatme2H617IDYJ5hWOgTTWKFX8IiuMBXeOCx6w7HD0iIH OIwcCjy/2jxq
cxxiKhpEJo0CXB6TrbtPQlvE5ri4uk2sHo809n9XTuaH67UP3KAtpKU6fvB+ tUX9rZ30s9Yl
PF76GwwppJe1upoLhxahYhIncr2HihMh7bzVkj/okmUnbuH9ng5MmDazGuYK W28xNdgmlfmv
dndKGNrYLrO/wwaVsbffpDLuLhtVOLlpdbfyQOOmrfZAy41b74SGzdvogfoY rIxciT7xMTrd
HKhVatUeqbbLDvYLw/xoLPFO/DccucTCzgjOf7p7PBjYFAcGJQEckRcA1oj3 BkwYLTEVT+HO
7mhD0v4oXmBqrrKaLHbQRspoZYTnAFh2dtEu+sSF3BoBwCMLgw4JlcdJjvl4 QO5uxDp/YCc5
UDIFWc7IUcQxkBJRcsXDOqHiSGfGoNc9HYXCRjAXgNgvDpkbznsjsI25g3cU MwoCeC2coPzA
xCVCYAk9BGuJjwd/I+wA6P2UHVkY8AqGesIWn0951gmzYNoIRpjVgWHCYSGw 2eQJjnz5cETE
wswxwvArNHpvG6PPvJAaXnXme1S7n9BY++B75PnbxMETKHwChVumz6/AEY3p tMkRbVPqo/vi
M+Bk2c71jQD+AuB8iJSddfSjtQ9kzF0gFb73IV3xjuyme7kwIHu9N5yIZQzA m7qaErVTwA7P
PD+C9McgcVft7fBdRDk3h82PkOXrKiSxXKzsYBZcsHgIbxTxVvlwPDBj0MzR uJSGFSIJtGZ1
RoBNElgzEnmMR9umYsqJAlmbeinz/tkzXpTw8ieT7XgJJJ65guwdFHKFeijD tUkNWcYidVXd
Uyh7BqrKlE9dVyj4VJVZnyn5MpSbok/Q1Jd9MU1WK1VN9MqNxqrBcM+aLFXx pHNNtmkiJx1j
yCxrJ99PZy+SKxUSwlrMRZn2vFilFbbPHAIBB6eEUuLOiEMCZfrtjP8qM2GN hCumB2R44thW
H/7fbYtCEI/9yj6MnPsNXtBttGf8/XVn3H01v2Q3StuozgX0152z91X+mvjb qA7s/RUH5nq1
WbYH4Q27ZGhixxFbZf9pqzxtlSb2//5WiR82Z41vLDE7eyI/u5Ns13fw0DVC AL9DRhJPeMUH
0Fs+cAHvxdYq9Qq51AUhQCXBaay7yvn2qkriUtXPL8MFBGb34Y0oUnZBHkvJ HNv6LcO1Q7KY
svtkKOoBOOhq8pKf4pK789xMnKCIN6X2g+dLft2sSXEZ9DmxsitIWdeZ++xF Qxq7i0NB075r
G0a8UGL9ic2FdKcqaQ4402KcM96bebhaqVUrt1SxpC+UaWzYZYoTu1cvn61P 2u3CubUfkkuQ
bVzxOLfYorknMspYFkbyUJ+MDvcOxuJX/uInnVqIr5lzoqg1o3ul0RU2LGmC g8KE8xxV5TeG
SsSHU1oFCSdzjDkWdJMi0C/RyjIee6dMz/k+ashjiRyVT1rVtGGKN9okWzuJ TYfFL1462JRs
i3/RrFJ4CF5Y7GKkyQJDtzA1bMksSbSMK4/DVIe6MOBfHoloKWLdEmlVj1rk 8A69YV681oyn
B9dRYwh3P8maRCQnW9KCaS2psiF4anvsU0rZOVcS0qKfW6c+ny972dFW+0Rg 7bGQv+5etr/u
3m0+O3JaNPW9U8Ka46FE3BOMlORsuUjdLlNykh4cvDTp2rVLn5PVdhU58YM4 teP9TE5ga9/m
2qL/Uxd3ufnJyezo5bSN/JU4ultGysDFsfZcBheqyfcbyavgZokwgZ9NMCDV ZAMwjorfZNey
pVhurHVh5MzV4C637VsCvJL4OsBXJq4GgCXa1FdN+DXHlvVVsYZvZG7yVbp/ vyR3SbBxmaRN
VFdi5xJhEvptXZxZzqpqTa7RBmuPtS5hwHmbwPcWxx6X34DJ87R9Ih8geU9f dfEx523nq77n
F5/iEdzVKvLbBLVe1UQtESZVpFZXfudYMusprW2bmEodESlDG1c0WQl5jdUh W5XvdYdhGqJH
VUV4QtoUkV2+NK8JvZZWHbRuSsjCrTK80nCqym4ZHV5UxUGG5qiZZqK1tqXc Ws/Eh66K5jlw
8gJ3OvgHUEsHCOwja4nrBwAAEzkAAFBLAwQUAAgACAAnePY2AAAAAAAAAAAA AAAATAAAAGF0
LmJpc2NhdC5zb2NpYWwuc2xpLnJlcG9ydHMvc3JjL2F0L2Jpc2NhdC9zb2Np YWwvc2xpL3Jl
cG9ydHMvQWN0aXZhdG9yLmphdmGtUl1v2zAMfJZ/BdG9JAEq/4BgQLtmGDIM Q7Gtz4MiMw5R
VRIkOu0w9L+Pthwn7bCPDnuSQd8d70hGY29Ni2BYbyhbeXKwZJzOjnTCGBLn ZVXRXf8FIbUa
raOYUXeko+ta8vpykzkZyzfr66GwPIWH3JLeJnOH9yHd6jedbxxeBc/4wCJc LxYVLODLTixY
pr3hkMA6kzNYAaXgMrD87FudkwdHWwT7zToUWl3FbuPIjoTLSUC00TdSeeYM vleVquuh3UFx
varUKJPZsDxb8sbBZ07kW7j+cPNu/fHregWv4ex3UzpbHrXzziRsgLwoeovS IPXO8NDh6DSO
E1PClVGocRaSXZx3ViB9rZ4sTszZXMKox75noc188Ofvzd40wc6HykVG/MuV vRJjiWd/Wtj8
qZl9oAYK8wlsWF0Pl9WlcJ/h7YPFyBT6BSiVu4hJF94BKRNQxZvMmXckR/c/ w4X4j9mE+JJo
UwTfObc8ySo6J1FLshLtE3KXfLnyn+4GCuYiDaBfYernF3y8rxZ5hVvTOS4H o0al6e7EymP1
A1BLBwjMv3GhnQEAAAYEAABQSwMEFAAIAAgAJ3j2NgAAAAAAAAAAAAAAABUA AABtb2RlbC50
ZXN0Ly5jbGFzc3BhdGiVj8sKwjAQRdf2K0L2prpz0QciFXRRpdS11GRoo3ES 8xD9ey1SdKPg
bu7lcC6T5LezIlewTmpM6ZRNKAHkWkhsU7qrl+MZzbMo4apxzjS+y6LROwB6 eycniSKlznJK
+vJ1xl9BrnEAtW0ZcCWNA3YUnqkmIO+e02xdFfvFpqznq7Ko/pcZAYxrC8zC JUgLYqtCK9H9
MOngTfCD7CCxZ5P44/EHUEsHCD8cV6ijAAAALAEAAFBLAwQUAAgACAAnePY2 AAAAAAAAAAAA
AAAAEwAAAG1vZGVsLnRlc3QvLnByb2plY3S9ksFqAjEQhs/1KWTvJnrrIa7Q Fm+KYH2ANJmu
kWQSkqz08Tu7G6WrCIVCb/8/808+kolYfTk7PUNMxuOyWrB5NQVUXhtsltXh fT17rlb1RITo
T6DyGyQVTcgUridPAqWD2nkNlmVIWfC+QA3lnQPMteAXRcVyRuo0/2k+WmP1 PoAiU9wrjUnU
XaFgfGwYKGtCAnbSmSkfSciz7PMQr3AakLFpO2oaLB95wW8Jv0EGDWwj0XzS PV/+jbhXR3Dy
z7xSKE9MqNxGGKKDvgPvbNsY3PbNjtuHHuRH28DbkYsk3HXro2/0DVBLBwgi Hjar5gAAAIMC
AABQSwMEFAAIAAgAJ3j2NgAAAAAAAAAAAAAAAB8AAABtb2RlbC50ZXN0L01F VEEtSU5GL01B
TklGRVNULk1GVY7NDoIwEAbvPEUfwDbqsTdNvIkhYrzXspKN/cFla8SnlwRB uM7M5tvcBLxD
y/IK1GIMWmzUOtunUDmQ+U9Objuak/GgxaV3onCplhhGU3b+Fh3aofCxAqe4 70Y/3/kv7Szj
y3Ck+YmaaHaGZ0ICOeRaRKoVWIdNCyrhKlsAGwkUpcDoITsMUB7NpyvZEGvB lHr+biKxLIx9
mHr56RdQSwcIbAIPQp4AAAAUAQAAUEsDBBQACAAIACd49jYAAAAAAAAAAAAA AAApAAAAbW9k
ZWwudGVzdC9iaW4vbW9kZWwvdGVzdC9BY3RpdmF0b3IuY2xhc3OFkV9PE0EU xc+025Zdl6JA
KwiIIK2lJkyMjxASBDFNGkKC9NVMl2Ed3e42u7PIx/LPA4kPfgA/lPHOdFMS o/gyM/fO3d85
Z/bnr+8/ALxAu4YSw+IouZAR1zLT/CDQ6kroJK3BYWgnachlEKlxJnmu+DjK QxXzg2GmUxHo
896pbTC4p/3zN72Td70jhvn+B3EleCTikJ/pVMXhLsPsYRJnWsR6IKJczsBl 8KzsjpFlqI4L
UrP/NzdEqO6pWOl9hnJne8DgHNKYhzLu+/AxyzDXV7E8yUdDmb4Vw0gaI0kg ooFIlamLpqPf
q4yhQmZS0m11+iZjkoWKX6ZiJD8l6Uf+Ko8vIkmWtbzWu0bOe30dyLFWlKKG JYaF24zTG+Pm
kY9FNFwwrPrwcI+hFkwwDJv/lyJ/mU7GhrThYx0NUg6lPpKXIo8IsdTZ/tf7 eGdJngbyWJmU
9enNjjGKDTJUpl9ewjIqqFJVs9UMeSSXdHaoR+9Ia52ql7Qz2ivdG8x9saMP aPVoBwV00MA8
nfzJEBYsgpnoNNEscA8t6pg65iuv+/wGy91vWLnl1a2pVSKswcVjy2xOpgum Oa3RjbGzfhed
EdgoPPmT3qLpNtGf3Ul3sYmnRfgtm4pUvmLl85RWtV1uKSWbdsueWr8BUEsH COBQlePqAQAA
TgMAAFBLAwQUAAgACAAnePY2AAAAAAAAAAAAAAAAKAAAAG1vZGVsLnRlc3Qv YmluL21vZGVs
L3Rlc3QvQ29udHJhY3QuY2xhc3N1ksFu00AQhv9NHLt1nDa4SSnQQgoNOEbC 4sAJ1EuBU1QO
QTlw2yRLcOXYkr3hwFOBBELiwAPwUIjZtZNKZnvwzu7s/P98s8mfv79+A3iO 0EGD4WCVLUQS
SVHI6CJLZc7n0oHF0L3in3mU8HQZvZtdCZW1GXo6G2fRROQxT+IvfJYIBivl Kwr++Fo0kXmc
Ll8ytArJc0mG5eVaxkn0mktBV02RLhjsV3Eay3OGF8H/+rqofh5NqfsFzeCi ia4HD7fINxhN
d0HDeXCww7A/jlNxuV7NRP6+BPbH2ZwnU05D0LlKWvJTXDD0x4Y3IVrrY56t GBoyY3CWQl7q
mXvByDS1U2wK+oapFPUOWUzKp/E3HtdzKfxTD7twqbLYVh4EpgewyepNulCa xx7aSmMXOsXg
TrJ1PhdvYzVhZzPOM+WCUxI06WvR2lBPRX+MhuqpY1tHh+49dGjdo9MHylsU 3fAn9sOnP+B/
07U9WvfIBaSyoLg76NMpLKtxiNuA3qkuTO+O6Gvo3R24muMu7lV9IoqqqhV+ h/9128LWya62
9sqCyprhGCeV+JyqlbFdAyzb9UjT1w6HZdUWzq7gGO7jgQFkUAc5MoI8xCMT yKAOckyakxtA
1G+gGp8ZQYZ1kIER5IkZZFgHOSPN8AaQdgUSaM3oH1BLBwi2LdG78QEAAD4E AABQSwMEFAAI
AAgAJ3j2NgAAAAAAAAAAAAAAACYAAABtb2RlbC50ZXN0L2Jpbi9tb2RlbC90 ZXN0L1BlcnNv
bi5jbGFzc51Va3MTVRh+Tppk6fZI29xoEbAoYDa9RBRBm1qBQBUJobollXqb 03QpyyS7zmbb
Af8J/gG/4oyEQWccP/FB/5P6nrObJZfNMMN0unv2vTzv8z7vOSd///v7nwDO 4wcNCYbZtrtn
tcq+1fHLm5bXcR0NSYaZB+JQlFvC2S/f3n1gNX0NaYacstpu2bQ8W7Tsn8Ru y2JIOqJNr0zt
ZZLpe7azX2GYbLqO74mm32HIBwEHvt0qX/E88ahmd3wZY9r7jvAPPAJZiotZ q/WxrIaAlXVK
Ta/Zju2vE3ZxtLrRIG5VytQxgVmON5BhmCgaDQ05hmxMIR1ZzE6C4RjHJHS5 mufQcIRhumY7
Vv2gvWt5W0HbmZrbFK2GICnoOzQm/fs2tZqtjehKbLV9y68rrXJFI04trdML 4BRafSndsV78
iHgr8Z7xkvHOAPJcMRZYaleOdY1DlhmFQUke/diTZUrs7fViVc04DKMh9V/k WMIyDYpShuYa
bMWKscNwpBmh5WPBGI56Vts9tHoWif0+xwcSOx24aIb9Mm94bnvLZbjU3/c1 4VuV4e9xw6i/
XuY4SXXafx9xnMbbkvwqRwVr1LrtW57wXY/0Hhj+jdBemcI6Lmv4lPob9XJc wVV5aK2H/vBG
DAXWcI22cAwnHVVscHyGz4kGSWf6wiOQzAAN1aeOL1DTcJPGMOjhuIU6TWDX uufKA58dkczY
kWU2Ob6UZdJU5rqzJ/FMji2ZmxL3qBfZZINjG1/TubkvOnXVDx1v2h1a23Yk Fl1kw+jSKR4G
zoR3yKCb7oHXtDZstU+Ds7oik0h3wqP/FBL0R7cA3ZsJeS+QbUqtOdkY3StH 6TlNljsUn6B3
vvQMM6U/kL37DPmnKJQWn2LuV5VynJ4ZJOk5Rc9JSuPIEcSbZCkEyTiBk4Ba aaoAwym8FZYo
q28gVfoNc08iyLQyzigYHgSEMAwLEb911QlFDxHSlTVHOfk+IumISDoiQnuR fEH374wQKgwT
mosldAZnI5BzCmSzn1hBEpvoI3aCck+OIRaM492oirRwRakII2z7aoiuS4qL XZS2h1tfoKzT
fRX0qIKOlbDF98binR/BO0N4Z1+BdwEfRipcVLj/0CpNbzPcOfVSF5e6+Hg1 9Qsuzqee4xOG
v1BdTc4nu7hOhW88xim5vv0C0+q91MVXj6Evy4/Stky5w/Dzfy+Wn0SSHlcl ijRPg9ou4TIW
6UAbdNrKivAFEpsoRIRN3MWOktbEN7RKUOZNfAv5o7pAwst2ktEAAh9X5+Y7 1dr3/wNQSwcI
1PpS/8EDAAByCAAAUEsDBBQACAAIACd49jYAAAAAAAAAAAAAAAAqAAAAbW9k ZWwudGVzdC9i
aW4vbW9kZWwvdGVzdC9QZXJzb25MaXN0LmNsYXNzjVTbThNRFF2H20yHgV4o gohcvLYVqNxE
KSLXQmWESqHY+jS0ExzSzjTTqQmf4Bf47qO+KCZtYhM/wD/yxbjPFKjQktgm Pefss/Y6+7J2
f/358RPAJNICWhh682ZWy4VtrWiH45pVNA1FL9oC2hg8x+p7NZxTjaPwzuGx lrEZhIIDKZKf
4tyWbD0XXrYs9YS7RRhcCf3IUO2SpTGEmmEWlIYXI4vkKC5kcrqh24sMrYFg kqFtlXACuhh6
mtBIkOGW4YHE0LHgOLrA4JPRjg4BfgZvwzsibhD5npmX0IN+7nyTEgko9TwT tqUbR5FgUsAt
evcfhlXTsC01Y4u4zdCSnBQwzNBdD2xNtTUJQxjltHcopkAsFgsmJQzgHjfd Z5ht8pJymaHh
zBl68FBGAEGGTjWbPQ+EoT+gNAmQXEQ84jFO8RqNy5hAmNIm1yvJ1poaCaZF TBJgP2uKmOaO
0yJm+TrD4FZ0Q9su5Q81a089zFFTfYqZUXNJ1dL5+czIClStJo2V0Ao3tdJ+ p5Nm+hoRZ6qR
jjQ7fi6tvkDwGnGNNb9pLikXlrEqYOWSkBMnRVvLy1jDOqWsWdaFknUzHKeW 2NQYTc1HBGxQ
JFf7tVLSc1nNEhEjfUXX91Y3Y9sbI/H13cTO9vyIhCj6+Y8i4xW2SQRqoaAZ VPfxZnVvUMMZ
e4RTxGW8xi6NhW3WLhn8gUYXwu6B1Lp/PiWX05BxwDUuFLgpZ1ChE2bJymhR nXfNXe/BBHfG
KE1QK/05EI6PEa0CnVogklWEi6ykQbL8dnbAlyrkVAXd3+Gtoifl662gbytU xUDKN1jFUMqT
bm2rYKS29XR6hulQwd0yHtRAIefmrQNitYtTeENljB04fI/rfFP/wzdzPd83 J5En9Bui4EHp
SJSKnybkGbqwi26kaUqz8OIDfPhEQ/eZkp8jpEyp+vERTwnJS+O5KEOYVl6G 9lAF8/UHOhxj
3ZkAiGCBVheeY5FQtaq+cEiW0Ab+GTzFUhXRlG+zgpcUdRlbZeyUkaD91wtu iVagD/30nXOs
PKQ3zi71F1BLBwh4NPxFEwMAANsFAABQSwMEFAAIAAgAJ3j2NgAAAAAAAAAA AAAAABsAAABt
b2RlbC50ZXN0L2J1aWxkLnByb3BlcnRpZXMrzi8tSk7V01OwVSguStbnyi8t KSgtAfOTMvP0
uYCEXmZeck5pSmoxUMzXNcRR19PPTV8nhksBFehxAQBQSwcIH3Tt+TwAAABM AAAAUEsDBBQA
CAAIACd49jYAAAAAAAAAAAAAAAAoAAAAbW9kZWwudGVzdC9zcmMvbW9kZWwv dGVzdC9BY3Rp
dmF0b3IuamF2Ya1SXU/jMBB8dn7FintpK5H8gAgJuJ5QETohPp6RcbaphWtb 9rqAEP+dTZym
BXS6A91TpM3MeGZ3vFQPskVYuwZNSRipLgq99i4QuNCWqIz2EcukS29Sq215 ch8pSEW3i8t+
UO/DXWx1uQxyjY8uPJSnyTYGfzpL+NQJV7NZATO4WSGwgt5IcgGUkTGCYlBw JgLxz+6pQ23B
6CWCelYGmVYVPt0brQbCySjA2mgbnnxwBi9FIaqqf26ruJgXYpCJJIk/S22l gWsK2rZweXF7
tvh9t5jDERzsdnJQ75TiSgZsQFvmW4UsFzofuNXb+fLDfgRzObgYknNS9pkU Q7pZNRoamZMp
Wxev3ZuZNrHOHp7LjWycmvaT44j4jwf6wcYCTf52nul7MxunG8jMd7D+UB2c DxXcY4RfTwo9
adetW4iYPIYy87ZI3oDI3nirtNKx/q/hnP9mNiZ+JdoYwSZj6r2srLMXNSfL 0a6QUrC50596
AxlzHHrQnzDVx77u+tUizXEpk6FcGDEojb1jK6/FG1BLBwhqnM0TjwEAAOID AABQSwMEFAAI
AAgAJ3j2NgAAAAAAAAAAAAAAACcAAABtb2RlbC50ZXN0L3NyYy9tb2RlbC90 ZXN0L0NvbnRy
YWN0LmphdmGNkD1SxDAMhev1KVQuM4wvsEMFtDQ5gTYRweCfjK2kWGbvjryO F4dJQWc9Pb3P
0oT9F44ELgxkNVPik1LGTSEyfOKC2gTdUTRozQXPlk6b5szG6hdkkdU0n63p obeYEjwHzxF7
BnFbcuQ5QRsD3+owRbPIKHQcjR/Bo5OYu5pTITFG/iuSH0QSsQAr6tjkPBbn ewxufXJ4yMwD
f5ikswWeKvGq7llrxEj8Jr1jGYnEc/Q77iWYAdLqbej/Id0+JZwub7gF1aV3 SMX9e5qGdKsF
tTNdWa9+2JLKJXc42Vlv3TCkEkKduqofUEsHCJhyZJHoAAAAPQIAAFBLAwQU AAgACAAnePY2
AAAAAAAAAAAAAAAAJQAAAG1vZGVsLnRlc3Qvc3JjL21vZGVsL3Rlc3QvUGVy c29uLmphdmGV
UttOwzAMfW6/wk9TKqF8AGNIiMsTQkjjB7LWG4E0qZy03LZ/J1m7rKNl0x6q xPW52I4rkb+L
FUJpClTcoXXTNJVlZcjBm2gEl4bPkaRQ8lssFE4PkrWTit8Qia9HGZiD3J1w npJW9ULJHHIl
rIVnJGs0eKzCErWz0DeAnzSpSDaeCHNHUq9Ai9KLxL/R7+rWaEcid9eQdzcL M9D4MYZhmdfw
Km0pbRGs55AF58S9SstDGIRa300aWR18he7J51hLIXQ16RF0Y2QBtsOe6TTW pLfdBfbQO7Y/
XsCedXR2vbr68zwmLopiJ8R2l0gY0+OewSJgq5gcShKWpsEzVVvSv8KnpvlA pnwxLGwrlFKH
8wLaSHyGszUdk6HmxMolS0MMBm1c/n3O1iKRSxYx3EPmTpBjGV+g10HWVZfB ZAKsj7vXhReZ
+VpqpWC9hkGSi6VDYrGjaJlQM3iWJMxv++23jJrtWDfpL1BLBwint6raZwEA ADUEAABQSwME
FAAIAAgAJ3j2NgAAAAAAAAAAAAAAACkAAABtb2RlbC50ZXN0L3NyYy9tb2Rl bC90ZXN0L1Bl
cnNvbkxpc3QuamF2Ya1RXUvDMBR9bn7FpU8plrA4X3QqyJwfIHPs6z22YVTT JiS3kyH77yZt
N9QhKviU5NxzTk5yjMhexEpCqXOpGEqHA0KK0miL8CzWgtVYKHZlrdg8FGF4 MLsWKL2GmPpJ
FRlkSjgHE2mdroIC3khkbLH2LHAo0FP2buct7RJMszq4gEq+Hs5pMiARiTq5 N4zaAZhO0R5p
PNdlHLiRYSLPh7pCKzKkgbI/xEsepwEJwelpL+2lPPkEcJ72eZL8bHT80Yh3 RrVSnbR9VDCg
pkEC+CXxIte/SNz/r8Qnf0u8Dd/eFftteSuJ7dbRpClntnEoSyatZb75CpV/ 581oPry7H9/C
ZDSdPY7PIIajXe3N3VZibasd1Ny9Je9QSwcI9wCK1BgBAACeAgAAUEsBAhQA FAAIAAgAJ3j2
Nj8cV6ijAAAALAEAACcAAAAAAAAAAAAAAAAAAAAAAGF0LmJpc2NhdC5zb2Np YWwuc2xpLnJl
cG9ydHMvLmNsYXNzcGF0aFBLAQIUABQACAAIACd49jbA52Vj8AAAAJUCAAAl AAAAAAAAAAAA
AAAAAPgAAABhdC5iaXNjYXQuc29jaWFsLnNsaS5yZXBvcnRzLy5wcm9qZWN0 UEsBAhQAFAAI
AAgAJ3j2Nk3na1KpAAAALQEAADEAAAAAAAAAAAAAAAAAOwIAAGF0LmJpc2Nh dC5zb2NpYWwu
c2xpLnJlcG9ydHMvTUVUQS1JTkYvTUFOSUZFU1QuTUZQSwECFAAUAAgACAAn ePY2qU02C/0B
AACWAwAATQAAAAAAAAAAAAAAAABDAwAAYXQuYmlzY2F0LnNvY2lhbC5zbGku cmVwb3J0cy9i
aW4vYXQvYmlzY2F0L3NvY2lhbC9zbGkvcmVwb3J0cy9BY3RpdmF0b3IuY2xh c3NQSwECFAAU
AAgACAAnePY2H3Tt+TwAAABMAAAALQAAAAAAAAAAAAAAAAC7BQAAYXQuYmlz Y2F0LnNvY2lh
bC5zbGkucmVwb3J0cy9idWlsZC5wcm9wZXJ0aWVzUEsBAhQAFAAIAAgAJ3j2 Nuwja4nrBwAA
EzkAADkAAAAAAAAAAAAAAAAAUgYAAGF0LmJpc2NhdC5zb2NpYWwuc2xpLnJl cG9ydHMvcmVw
b3J0cy9UZXN0UmVwb3J0LnJwdGRlc2lnblBLAQIUABQACAAIACd49jbMv3Gh nQEAAAYEAABM
AAAAAAAAAAAAAAAAAKQOAABhdC5iaXNjYXQuc29jaWFsLnNsaS5yZXBvcnRz L3NyYy9hdC9i
aXNjYXQvc29jaWFsL3NsaS9yZXBvcnRzL0FjdGl2YXRvci5qYXZhUEsBAhQA FAAIAAgAJ3j2
Nj8cV6ijAAAALAEAABUAAAAAAAAAAAAAAAAAuxAAAG1vZGVsLnRlc3QvLmNs YXNzcGF0aFBL
AQIUABQACAAIACd49jYiHjar5gAAAIMCAAATAAAAAAAAAAAAAAAAAKERAABt b2RlbC50ZXN0
Ly5wcm9qZWN0UEsBAhQAFAAIAAgAJ3j2NmwCD0KeAAAAFAEAAB8AAAAAAAAA AAAAAAAAyBIA
AG1vZGVsLnRlc3QvTUVUQS1JTkYvTUFOSUZFU1QuTUZQSwECFAAUAAgACAAn ePY24FCV4+oB
AABOAwAAKQAAAAAAAAAAAAAAAACzEwAAbW9kZWwudGVzdC9iaW4vbW9kZWwv dGVzdC9BY3Rp
dmF0b3IuY2xhc3NQSwECFAAUAAgACAAnePY2ti3Ru/EBAAA+BAAAKAAAAAAA AAAAAAAAAAD0
FQAAbW9kZWwudGVzdC9iaW4vbW9kZWwvdGVzdC9Db250cmFjdC5jbGFzc1BL AQIUABQACAAI
ACd49jbU+lL/wQMAAHIIAAAmAAAAAAAAAAAAAAAAADsYAABtb2RlbC50ZXN0 L2Jpbi9tb2Rl
bC90ZXN0L1BlcnNvbi5jbGFzc1BLAQIUABQACAAIACd49jZ4NPxFEwMAANsF AAAqAAAAAAAA
AAAAAAAAAFAcAABtb2RlbC50ZXN0L2Jpbi9tb2RlbC90ZXN0L1BlcnNvbkxp c3QuY2xhc3NQ
SwECFAAUAAgACAAnePY2H3Tt+TwAAABMAAAAGwAAAAAAAAAAAAAAAAC7HwAA bW9kZWwudGVz
dC9idWlsZC5wcm9wZXJ0aWVzUEsBAhQAFAAIAAgAJ3j2NmqczROPAQAA4gMA ACgAAAAAAAAA
AAAAAAAAQCAAAG1vZGVsLnRlc3Qvc3JjL21vZGVsL3Rlc3QvQWN0aXZhdG9y LmphdmFQSwEC
FAAUAAgACAAnePY2mHJkkegAAAA9AgAAJwAAAAAAAAAAAAAAAAAlIgAAbW9k ZWwudGVzdC9z
cmMvbW9kZWwvdGVzdC9Db250cmFjdC5qYXZhUEsBAhQAFAAIAAgAJ3j2Nqe3 qtpnAQAANQQA
ACUAAAAAAAAAAAAAAAAAYiMAAG1vZGVsLnRlc3Qvc3JjL21vZGVsL3Rlc3Qv UGVyc29uLmph
dmFQSwECFAAUAAgACAAnePY29wCK1BgBAACeAgAAKQAAAAAAAAAAAAAAAAAc JQAAbW9kZWwu
dGVzdC9zcmMvbW9kZWwvdGVzdC9QZXJzb25MaXN0LmphdmFQSwUGAAAAABMA EwCGBgAAiyYA
AAAA
--------------070406010205050601010208
Content-Type: image/tiff;
name="screen.tiff"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="screen.tiff"

TU0AKgAAyxaAORzu1/gCDQeEQmFQuGQ2HQ+IRGJROKRWLReMRmNRuOR2PR+Q SGRSOSSWTSeU
SmVSuWS2XS+YTGZTOaTWbTecTmdTueT2fT+gUGhUOiUWjUekUmlUumU2nU+o R6BQSo1WrVes
VmtVuuV2vV+wWGxWOyWWzWe0Wm1Wu2W23W+4XG5WupwW53e8Xm9Xu+X2/X/A YHBYPCYXDYfE
YnFYvGY2tXXHZHJZPKZXLZfMZnNZvOZ3PZ/QaHRaPCZDSafUanVavWa3Xa/Y bHZbPabXbbeh
abcbveb3fb/gcHhcPicXjcfkcm8brlc3nc/odHpdPqdXrdfsdntTrmdvvd/w eHxePyeXzef0
en1S/uzd8Pl8gB4O94AB9fcAP67ev+bMBACgwDQEAAIAiCAAAQA4Dv7BkGwd B8IQjCUJwo7i
Bv2mp/w0AB0HSdIAAOA0Fg0DQMwrE7RHMcxzgAfJ9PiDALguAAAxrFEbxxHM dR3Hkex82z2p
kf0hgAchyHKAAMSUAAHAcBsfygxR5HkeaAAB0QMABwOBsAAKFACGQ2HQ+IRG JROKRWLReMRm
NRuOR2PR+QSGRSOSSWTSeUSmVSuWS2XS+YTGZTOaTWbTecTmdTueT2fT+gUG hUOiUWjUekUm
lUumUByOd2v+fP2qABxuRzAANhoMgAGg0GAB3O93w8JBEI021Wu2W23W+4Ru x2WHWe0vN5vQ
AOVzOcAB0OBoAAPCXHDYfEYnFYvGY3HY/IZHJZPKZXLZfMZnNZvOZ3KU+o1O q1es1uu1+w3O
zWjPa3Xa/YW3VXXWXi9Xy/YDBYQB7Hfb/gcHhcPicXjcfkcnlcvmc3nc/O6C pT2qP2rVitVy
vWCdvh5PEAPrBgAEguwgXewx+u4ANBjt6CjkaAAKenoff8fmQba932/sCwbC v1AcCQLA0DwR
BMFQXBkGwdB8IQizTpNE6zSOy07uJmfR0AAXRSlEABsvAiIFgAJo0DWAAQAA bQAEmTBYAAJQ
0DsAARgQyhxmIT4AFgZh1omCYUCEAAniQ+cTP0e4AGKUZJgAZx2okAsbh2J4 ACOGoRPHCThP
43D/t3AUvTLM0zzRNM1TXNk2zdN84TjCEKOo0bsNM7awok6aHgChs+IdPyKH eaxWAAUhdH4A
ArDULAAAsAcmHMcR1AACAPA+AAFn6+BOksW4ACGNUVBAAyIUAhtBI/VCGVUj 1WABVyInGYBN
R8aAL0WNAjAAfJtGEABYl8aIABeKY2gAHwOgSjdYVkjlnJDaKIH6cxggASxV GyAAoDUMy/1M
AFpobJhhE1KBog0JIADKIwPAAcRlFkABcmYdgACMMo4gAE8lVeiNn2bgFpYG kFxnMYlbFaaw
TgANAzB+AEq1PgtV4qk1x3GiUwP83UAvtOWQ5FkeSZLk2T5RlOVZXljkzonj quu0rtAYBl/J
gdJmFIABVmKfd8C8LwABMCOQIgfT4E8S5cWKIoXgAapdmMAB5IaE4fC6AAih iDCGvEbpiFmA
Bbma+CHAUDgbAAJwoYiAZsliABVGcCgAC+LgdgBHL2F+UEQnoFlHCaGmun6d 5oAAUpWUqKF2
gAByKnGYJLWCbQUAAM4yyKAtOAAShKFbfgljTrQST0fsgmEVhSgAaR0Z/iSu iSLgsxuBzenM
ZBUyaesWAudhj9b16GAfLgmCkKEV9u9T2GSWHQmWch4IeDYZiYAAmB4FOJAB JhmlTnZ3BGFQ
AHgYupncE+IgsbNrnKiILhmKwACqHlMopcpNkoABuBEKYAAxBDS41RxAlBPi 7AADUKob0bjs
F4AAVovxqgAdgQwApXQjBZdq0R3DuneAcPoOxqY1R2tPDCGcGIABjCjdYiOC pDALgweuFIH7
2wBj6feK8UIxAAAhBu10ZwvxlAAHs9wGQSwqgAAU3AAAxBuD1eICt+gWglAA AuuEfY7Bro+F
ULQAA6XYAFAw2oLIV2IgJHSMUAAmRUNTIglUGQUgzgAB0BovTqnWOujC7J2j tjej7HNGoU4v
ooArAy+8Y41EmBJDOGo8g1xbAAFmMKCcFQHAwf+F4H8Ayaj0HpFBMLHjeMtl JKWU0p5USplV
KuVkrZXIJZeTtmKF08AKAWAoABZHpm0AguJVKfyMqqH+hwAAvBRM7G1EWKwK AgqhCGDNSx6Q
AtIAAKcTArixH0AAEILQUQAAMHA0wWQxgGgADAG6Ko+hpu7FML9KYQQtBhAA CkBxehgCiFCA
AawDZmuOAAJsUcPAkBmgYCMeLUxKipjcA5tQaAwA+AAtZygsh40QDWE4Fkvl WzAIYOQYImwA
CyGi5AIoUQagAHYM8XoABnjglwE4MwWy/gIOsNMVojwALAmaGgKc0JAigpCN sEwAAzBgB0QK
j9IRongBED0KQAAegjAOAAY4qhTotASD1hwWz5jXpuAAYI7wXAACwF4IZXh6 jbAAKkUcXqsh
fAAFMGJYRiCgEq60eSVQcBOCuAAFAGAJHhG80wUwvBvgAB+FcMCNwIlhASAZ oyfE/LlE5Xcb
AGgkAAC8EJuozhas7GeOUDtZA3V9AIOOtQ8wGKZA2BE8QwxOCYf4CV+YYQfr vHLUkWNSwAAe
B1U+GppwEJMG2NxJgIQTkIHyOAXQABQiyHC9gNAZbej+PgKQTU2K82jCWFuz I9xiOsF8NyIo
EgXvXCWDFUwtRQTYAoEsNAAAiAjSYLASU+QAg9rgE+udVK7AAG6Ch2oXAcAV AANgWwlwAXjB
CAAKIYwigAAqAhUw2BYU4p0w6ntERi1AFlUJdlRgAD9HGL4AAnhXjOYkCCrQ UwgRSAcA5Jgt
L74jv1XEGID2qD1OsA8BazCHKwIlMKX5DCxy7IaWiXo9h6xFlCgCUcr8pZTy plXK2V8sZZy1
lvKUsSdSzTudoBIClmDwHeiSXwEAIy9InZIjNkjxDhGgtcXYwxpQUAAV0JQY gtAAA+Aaw4oJ
rwJC2HMAAK7AwUHHAgTiMgABhDaxEbIqkoDLAgE4AAZAiglIePscmjBYFZCg Gh5I0hMCcIYE
oMgAAXDlRkLUdGQB0pMCQGV5I2RN6oAOt0AAPFlkUOmOQYU+RZjSXuAliY93 YA6C5oYF5aT1
IdFiJZ1g5gFFdA9hMAA+B32HHUPJ8gXg2rrHeL7BQuB+WZ01g0hw8hrzYFKL 2coXg1AtAALj
ailglRzCGCNPR0xwi/wULYcbTwyBfhSMkTDlKK6rCWCrHRDh8DiF+AAT4sRs IzDQ6QD7EyMJ
MGOKFyg0GqkPASBesYQQkJFA+8s9QABzjacQNkcilR4jfGtLkENTwwBCwaOT c0kh6UQDSE6K
RDzpj9Hk+8ag1OcjsHiWUbQ3WqhHDLqsEQA9AiYbEDgMIbq/JKHwOFUAnxZg E0eG3CKOTxDE
EwlAfISI5hAARzkTQqxhnkAvaPbT5RwjjaoCPTAaQlac2FqgWY1gR6PDPM0B A/tpb52ttjbW
3Nvbgs0GxdYA9F8WFiPgAAWw2hNceQ88QztKAAGSOlKoHgXMRB2Dlp4EFwsC o2RPM2SE/Zqx
0PceyTMnpjaNlz4nxfjfH+R8n5Xy/mfNKNl4nOYGZldAR9WX2Qsi0aVj9v7G biGfeIYPiw4q
hOoyAQD9rITQTjzAAKITVzQgBjjmB5HKvRyQPFA3Gcwa6IDXFOruGcAweSDG CC3Ya8HIGAxO
Fi8ACYDMayH6GAEybGHYIQAsHmfeBOCqfmHeFeqAHaA6wa5iZ+CqDWiSAmIi /AHIGHAkFoG2
fIDKDEPmYStkGuASPmDAC6q0AOH6HSkkEwFM22BcV4B+BInKH2OsMGAMnKAs AsLSHIF/Akge
XXAIXeIcHeGoFWrWGCLSC6DQe2FqEwFUisCYviB8A+WYVU4DAkFuHIfJBwPm GSE0tkH4COvi
CHDO+0Hy/uAA/yG6AACS/kz8/qIsKkSYGKE8tkGyBCeSDFAK+2IkigGIFGVs GoAIe2CMCGhS
HoGVCyGWAOCWAAwgwbDUmKH4V5FE+0HsHDASraGeAABKB49IBaAmaqFmFiGW AACDEC6ysOFC
/eqhF2/qHvD2FC/0DADWCIb0e6rBDkABDoW+CAAS5yE2FWh4SIf+BOnKxGIa AMAWwNCaWZFI
FuG2YaDADMCAABB3B6FnB/CCV4CBCKPDCQAHCUUfCagpD2FAkinMDNGTEGWo 5gGuiGGOGGGQ
AAHUH2waCi1IUemkIqKkyI9u+0IgT8T8HxIuP6NyygTI+dI7I9I/JBJDJFJH JJJKTg+gJw+k
QwAAAMAOXC/AY1BQ+yOmHmHIG4ao2uK0AkRMH6HmW2FUFIVAAu6sm2A8UqFG E2gQB4DCW+BC
yAHwHGgeFEbEs0DVGSHqGgFQggGMZ+CQC8ayA8AWigGYFapAGcH4byDGCwpO H8HOh4E+FeGY
gscuC4DIsyHeR4AAFqGmPAASBSSwC7Ec6RJmIYHKYTL0GwS4C8DJH8HizuE+ FMxMAYkwfojq
n0FgSgGIHeoyCmC5GSAmAIOsHsHm9AAOAcRMHQGGR6FqGwwMCWCsXWA2Ac9A GSFSpAGiAYV4
DMCYYaGmFYSgGOH4PmC4CwB4iUHosOFeFEbjOEdqCqBqx0GEtjGcXzKKSUUF B5FwE6FaiGB+
C0viBOAfIcYoVa9AGKE+tkG8BBMBME/AH28AFOE2dCAYB8rgCaBQOsGEFGZ2 G6A6euDCCGBI
XgGCVsF6H4wjQA3YUEHKGNNWGgLSUYeSRageFUF4PgCKC/KaAKsOFGE5KVKY h6/qHwHLKkXn
KrH822pyE3DnOqCEA8SYFuEuZ2HYBMV4CwCGfIAKmmAAHmigK8AUVMHWGfK0 FeGQLCCsDSeu
AgACOsGtMwibM2rjM8ABNBNFNJHSAaRMH2HDKlH2C8DTH8VUH6lAHMSYAwA6 bqH8Vo4sFmgm
CKDERUBCqnIk/AT2Yq+8H0HyPE+CY/JNT9T/UBUDUFUHUJULUM+eKg+wJrJU TwAIAK7Q9tEe
+0YCIbMMqAFuGo5KIiASA8bUCcCUBwK8H2HArWE6geBsDA1WBDREHIpWFIFy IYC4DGrORy9A
GmFyZ2GSG+mUIcASRYCSCo0wA2X9B5L0E2d2HwBgm8CmBwtGH2HPINGKiGBi CkviBmAs9qIx
UsbGG604C4C+bzEGHcGkXmFcGNVIBpWqAABhFohUFbCAGsPYIgASafW+YiHa rqbGW2AAAIH2
aqUUIaATQECeiowk48HwKyF4FSUMHASY5Mt8wcCUPmlw9AGNF8V6/jFyA+Zu IaLKGGFKFGRE
/YK8BYm8Cu18Iq9AGVYuG+BHZNZQIoPEGsFzCAGMG/U0SqAyA0cgHOHMSmBV Aaz8HAZ2F2Hz
GSDACGRYIcH8HaGmmqFW4rYdX4AkIQAbAulyAJXqC0UyFjVMABVRVVVZVdVg ABVlVpRSGME6
VtaMDHY1S0Ha5yFsFWgeSDXmBS0wC2B+RYH8Hg5yFWFQgfZGABaAW+B0AyL0 GNXen1Xk5NXq
C+YiABVaUPbJbNGUIbPeggE6FelyIiAiBSCOwcB+YaAFEJMJIkIyH4H2UVT4 yjUPdddfdhdj
dldndpdqy1JQJvUYO0AEAHdIIxIiT6o4ImT8H8H2SZIujCWYAUAQ48yC+zed dPIeABeKHzHk
N6+rUhUldLei+/efele5Umzfe8H2HwSYOs7Q+reaKsGEE6AA4qwiC8B8IQHs HsZ+AUAVTne0
InfJfNJYb0AQPtTre/f1fIPEAGwoISIvgFe7fAIhf4IYAQWZYPfLJZgjgTe3 EeH6Z+HwH2Kk
+qXCH69AHwH8SreZgDe9gZf02BhRGc22HxYAAHhKPRJkIYUVg5ghUffHIwOt euAReyYDgWIj
geH7Hob1hnhSIteAUDeEIoH8H6H9IyTFT7dtipiritivixizi1i2OLdwJtd0 K6IcLyL0IcZq
LDeBjQT+UEACYziRefiVdMY1jhTpjddPjnUkOnjliZjiYvjvIiVhAQpAF6H6 rPaQk5j5IpiX
jrjxkWVdj8o5j1kbkhj7j3jpInjfkrkZkvjtkzj/kpklgZkjk3k1lFjblHkd k7khjXjzdNk0
AAk9jIIaLAT1UqY7I2+Hi5lzl1l3l5l7l9l/mAJLi9UWTs+mxHidlek+IeZr Y5gbgHiAmDfF
d/mkIvUphpmrmpiTmyIheKV7iJHTiOzbmiIxUVeDnJnHgVnRgxm1nPmnnbmx nfnZnTndnnnh
nrmthWIck9R8IbmYMHd5iilFI5mDoJoLoNoPoRoToVI/mGJpjAgoH4UUskH+ VYACT9ooVbjZ
UnlYYKyJIrowyDos+5lOmBo+VQH/pFovpJe7pM6RpS+vTu+3jZpPpeKljbpb pDIrphkTpYVj
pBjVp1ptpjpxqBpHpvp9ppqDpWl9qI+/prqXIhqRpdqVqPpnqnqNqHqlpzqx p5qZq1qLpVqr
p/qdqpqzqtq3rDrNrGXFqeYzorjVTppQVimFqTUlUe7RdZoHoXr3r5r7r9r/ sBsCQloaJmZi
HIHIfeAzsUPCH2PE9uyE+8UFomyLpBpEmBopjXhpotiDptrlhUo1s3hZs7sz PJtDfBtHtPoz
s4XFs9mhrntXsxtTtftFtZtJMHtntTtjs+OntNt3trtlt7mht1tduDJluHs1 o1tztbuRthuX
tLuTt9uPufubttehuKYpultvuvMHtjsso1udiRgWVcKkAMAKVMHPvQIKIPin sFvbvdvfvhvj
vlvmMbsIJkZiHVvzHSAORznLvpv+JmVUHyHy9BCYAtvZwBwTwVwXwZwbwdwe o7USJ8H9woiI
9+aoO+AAHqyblHwhw8I2VUAWluceAcx1fuWYIVd9w/xXxZxbxdxfxhUBvsJj ooKkZjojolpB
rXxjx5pTpEAJyBT7otnxx5yLyNyPyRyTyUTdxmJpxrtZs7v9yXw/yHrnIru9 ynyzy1y3y5y7
y8OFyby/zFzHzJzLzNzPzRzSMvzDzVzbzdzfzhzjzlznzoIrzZzrzxzzz1z3 z5z7z9sBzvz/
0F0H0J0L0N0P0Q+V0D0T0Z0b0d0f0h0j0kQX0X0n0t0v0x0z010304Ld0r07 1B1D1F1H1J1L
1MIj0/1P1V1X1Z1b1d1fzR1T1h1n1p1r1t1v1xsF1l1z1517191/2B2Dxlwl 2F2L2N2P2R2T
2Vdv2J2X2d2f2h2j2l2mQj132p2v2x2z212324LaICCAORzu1/gCDQeEQmFQ uGQ2HQ+IRGJR
OKRWLReMRmNRuOR2PR+QSGRSOSSWTSeUSmVSuWS2XS+YTGZTOaTWbTecTmdT ueT2fT+gUGhU
OiUWjUekUmlUumU2nU+oR6BQSKJNIIqo1mtVuuV2vV+wWGxWOyWWzWe0Wm1W u2W23W+4XG5X
O6XW7VypwWJ1asIi/XfAYHBYPCYXDYfEYnFYvGY3HY/IZHJZPKZXLUG81Wrg C/IjL5/QaHRa
PSaXTafUanVavWa3Xa/YbG3Zm95vO7Lcbndbveb3fb/gcHhcPicXjcfkSzaR K+Zy/8nodHpd
PqdXrdfsdntduIPh1uYAO4CBIABoIgjuen1UXlxHm7f1/HEPMAKAoA4AGFYw wggBVmuWwACo
FD0IQfBsFMAAEhSLaGk+aR5AAMAWga+ULQvDEMw1DcOOw+hTC6/AtlIhQuQe ABRwmjJ8G7BI
EhJBqEFicB7gAJwPwKoB8HeAB3n3CoIgaAkOyI1z2og97nyLJa1HmbAAEGJ4 UgAPxfoYJ4AG
EdxYAAHoIoUfh1l8AAZgsIYAD6a8IwHCsmTdN84TjOU5zosh5mSAD7hwAD9o MJ5ImaABYDcG
SMnmaZMgABwXDQhJIwgAA3Qon76FAIT8HGQ53TQG8vzrT7HSOh8ks9UFTKeb BQC6AAUjDEiG
hcQQAG4Zo+gAEchoO+hJCFVYbljLgbzbU9iWLY1j2RZNTnwZwAC6BIZgBV4A CeTBr0EM4UI2
dYAFwUxXAAcIDBUAArCoHoAU8nZ8AAXxFCwAAhju/ZMGlGozhbHNlX22aBr0 5jbSVfmBpvRA
oAAFxUwqJ5fxJPsSk+8MU3THoAV4MIABjYEu2GAB+AAbBcE6ABHkwVIAGQb8 rGkAD+jMJYrg
AM44i+AAZAqfYAFYPQ1T4doKAABR7IMH4zCkAB5lIP4AEsZB2oMCc9kSTZCA AEBq4iNQ+lKA
GngmAAljiQ4AEEMAbgBXIAHwc08EWO48yoUkrBcIIuAANQ7EBmQkBHgm/b/w HA8E4r6Z3npY
5/oOhgBouj6Tpem6eAGogBqeq6vrOt67yewbFsmzbQhB3yeTJBEKAA0EhaYX AALg8jiABADy
MFb2HZlnWhaSEywLgnm/aXf5aHEGkiRA7AAFtPH4cJcAANY3lfyYZg4gx3Rq Hw2D8AG+PRte
27fuO57ru+873vqEnmbr6kPvQwkPlggiDr4HBeJEqZ4ABvDlCoq2mg7dD+gT A2/YTYn3jq4c
HAkp6oiHKkgVA8kwzleAADoAcSyfAfrNAcgwhoQREjCXaHYGrFghLwY0lwHq bUDigQUq1PzE
R5EAWBcADFPRGABJQ6/AAAFyRADqaJuAANcK4AA3EBJADShkehhmRKJAD2Up 3ACkjsfhhBOA
AQQlaIAPyahcfTDSeQAM4YZYAIQWIYAhcDZrySwAeCHHgAIaHjqRZDuABuG4 RldYrNardcrt
er9gsNisdkstms9otNqtdsttut9wuNyud0ut2u94vN6vd8vt+v+AwOCweEwu Gw+Ivj4i0YjU
crMhkclk8prMtl8xmc1lc4nRnEDbABdBwzlEezoALT7UwA0hoj0ubj7R4AEb 8Z2iBOlUkrJ4
AWLI16/M0bSEqhiCADgf59AAfjzhXyDAAgIZ+laRZtTNwdZ8/oNDAFFo9Jpd Np4AqPbF7knY
JFwATUeVbgqYdVJTAA4O82MyxAA3RiVMUQ4GFj0MHAny9aIM3PCoLQjAACGJ hSFYWheGIZhq
G0fOQ5ztP9YiTJAigAIiJ4cimKoriyLYuW4ziSEIABhPgjAANEdgygAsh6AA JBPIdWx5LEwg
ABgnnyDEoyjAAPQNQw8zTJlrQua+CAAOU/20BIySSAACQ4G9Hm+Mg8iwRgBW 4F1ummQwTyJM
gACwHYNwANgmRdAAKRobxDR5co0SGc48zDT8Dg+eFDHZVMPDEgYMxvf8ABPJ gAD3LAZ5ZKam
gkFt8gAHB/2zE4AAEi+qKpqqq6sq2rqvrCsayrOtK1rat64rU+Jrm2fqUnGc 51neeZ7n1DAu
oA4KCoShhCoiinpdoABBMtE5Wn4QUPO4vkTBE+DTbl8K+GYpTXAAmRSPZuW7 mROJzGcLQAO+
XgABKYmcTlOwtlCUpUA6VnYtKjqQpKb6WpimjlpyP6fgh/zPC8qwADEYZ+pW l6ZAA6SsHF1B
VJDDgAPsiwhjQBbiac0j3vqE65y7L8wzGtYeiCIokiaKMyzrO88z1YoxjONY 3jmO0fMMiozD
5/Fdb5RpoDKUEMPg6wAMkwDBAA11TAADDzbggxokJx5vADTgADKarrm6lHZn Mbo7lOerXwYA
JnpoDa72qvnZOJrSCB6NKTWNDgAO5EgAVfPuK4vjON47j+Q5HkuT5TleWXje Zsuyb9tLDbwA
3FDbGpSlt2RTma9R7fGtI/gMVR4QaWtumreNh7gpfFHguIKCzRHUEN6mTnef Pg2CgmAKYGR+
5LmJkWgoAC/ZVlfqjN30Dt/4FZQuiUjghHYABy4LF+mlA+AAOs5lTAgFgaRR t/Bou0tv4nl/
2/f+KxzSIVhiOJUTiIfzAKAcBC0tARojZHCOisjvAAKALoEkaK+N62VM7Z2o gAMXA4QQfEaC
HN4EEPInwABXHabQNAmjjtNgs2hXjm22DNbc3BYjc1pulF83d1EL3VgHeyGh wQLiRjlGaHJe
o/B+ErAIARCcSoCxOifFCKMUopxUirFaK8WIMwubWE94cM25Ojdi3WHDp4tt 7esACHrgIfuw
W0txxAABwgAEGC8EBMzjqiUuIcDgAAyupc5DFzyOx+DhFkAAGYIDfHHDyLcc AABDBIOe9Jf7
1H5N9jUACNix4hREiNEgj8Sh9gAE6FQB0mYgEjIi+ACpXodNrOyTpt8GIsy0 lrLZ/bNn/s5l
tLyXqtBpoyPFAlohXB+DdAAHoAoJAAJCI/Ctp7URktIP00skAABuD/SoAQUy egQBbV8QNlST
V4xmeFIFz7oYavkYy3icr8ipgsFqfk6xNiGgAPpDEKgH1TpRAAM4ZI5SGg3e hPyX1BqD0IoT
QqhdDKG0OVfK5X0XZzxfdExZ0s7KIvVKmDGeQAAfB+JtOuHJuAoJtfGu4WAX 5ROai5F6DKU0
wMAJuvleC/KYyUYDPCj09HdT3HBPmfZHh5z+GS30cQqAtAACicanwsagAACd UIj4+B51EAIA
U0IYY/gATiTpYT0R8JQAay2h9Zqzqylw/1m8AK0VureXho4L6PjnOmPcR6pa ylbHWoYKAFlE
n/mfBd84sg4p2CfU0lgABMCxDUncPoVQAWJWPV0WMIw0hBIYaM0r46XpTCg6 JwRsTZm1UKT8
CSiZ6qMRoAAVRrQZyVWOS4XonwpAAGoI9RKY2JD3FGFRCVcLg3CuHcS4txrj 3IVq14AAUDSG
/nNDJ0AmbQJWtFNe0gI7TBCtQtC1YagJqGALIl2AABerbJ+Pwi4LwLEbI7Zk Xo6hfE/AbO4h
geUFj/EMjMaYoFNAuDCqB3aWRonNfclGnFM6N2stca4rALrZ21tvbkAFu15B 7Ho4h5JWSBix
GaHsAAFxvCiP0FUds1x3hiAAHMCIOLnrHJCAAJYyCTgQE/V9qFycc46LxWos D/mcQBx3kKuF
RFOFMU+2M2DWa7gABRXorCUnjr/NoMIeRMknkMIsdMjR1ysWZEETAmZNCsBc EvYsAAaZMwTI
/ZkTApbQCpC2mOery0FAAB+NFjoW7JkfnDb0AABRdHTBSE/LpWgzQjHKJkMA AMDZD0fpDSOk
tJ6U0rLXIpowATfK1m3N4AM45zMhnbPGes+Eez8k0DA1jWBXBmFs8NmbMkLI Wb4VY0oRhUBa
4kfAySfphAAC8kQABvh3JON8IJ8BpC/JUnAjgn3wa6Kwt9Kh77Y2rfoncWWg 9Clc0QlnRejT
oC+S+E4IaY8kkfJcMgdQiyMAVZXkbTUKSVhBd4AAXQfUZ0F0tvzS2PSv4/rb v3geQx3jmHMq
YDT7pZkeH4PNqg6h8KnAkBUq9ZeH8I4klDivDEK1VfQO6oiYII8VyfwTk/KO U8q5Xyzlrj+H
AAHMOUqcogC4gA++7k3DXojviQA0CLLeYDmHVyIAqUANAVgxA3bQeJ7j3B+A AOwTx9ENQLTo
qgMn6ke4+OvkJDAE8k6AWAfEDRzDpJ0AABUpukdaKzEgeY74GvnQnxzl3drj 7/K9wGXfd++9
+7/4DwPgvB+E8L4aKdpgXrPI6QMW4wihBJB88paYABhXnB723w/mvN95K73v IPm/Q+i9H6T0
vpvT+o9T4WojHCmMf3QR4PIpSOiGC0vH1XuOWedK55/3Pvvf/A+D8L4fxPi/ GVxxgiA9pRAS
Auc/sXx/o5C92Vv3v0vr/Y+z9r7f3Pu/e+/+D8MUvqFa+t+L8/6P0/q/X+z9 v7v3/w+1+QrP
5v4/2/v/j/P+v9/8/7/5/85R/MVh/WACAWAaAeAiAmAqAuAyA1/6AISuASA6 BOBSBWBaBeBi
BmBqBtcSBAR93th9A9KY68W8FwJhDEKMGc0WByCyC2C6C+DCDGDKDODQWSB4 R6CAucs4AAMQ
FcgsIkFYDUvUPcNAAAFgBtYBEEcoMkRMA4OkNYAAJsGEaULgFBDEtyCuDWFq FuFyF2F6F+GC
GF7+DcQx3sScJIF0JQpQKMc0c91tGZSMRRw08YjQLI7gKNWCGKHqHuHyH2H6 H+ICIFL2GQAC
BIVpRGHFx0VwPM7YJIHRY4J0aEQwL8QsshCMIAHlowCM1EO8N0bgLcLUk0Jw MsyUHxZEAAHE
E9ucC5ZkJEI9CMFkBoTIHIFcb4ZUpQIILcACGwEiHKIKL+MCMGMKMOMSMWF+ ISIYVmIhRg3d
K0uAGce8fEGYxIPIJlb8ncKwAADwClZER0S4NcPdu0PEKgdcGYGE2JmwSMMI Ic9AKQGYb5vM
mRPcMIoAO2O5JlvNLB1iIqMaP2P6P+QCQGQKQN8eMhWx3wVyMs3VOwV0NhNw nsFsR1fATIEJ
KwSsN0xwj8x8eIJ8uYKMGBMsKAFBzYGEPJKkL5KsR5Z86ITpfBfKRUR4OYRc AEBsRttd1mQS
TmTqTuTyT2T6T9kOQZLp6AV2Qo+UVtEgLgHoaUQkyU2ZjgSs8U8cAlhpRM24 CVA5c0jQPJDe
M0QyRgx0CQFUN9BVNB1suBSYfAEI/OTiUCW6W+XCXGXKXOXQ46UJkB2OHCMy L6MoAAxwAkAA
x8b55Ymh5iMouAmwfAOU20tyViSKCOVxGOV5Bkng8gKlBVfKVBFpr4aWFYdu W2XWaGaKaOaS
aWaaacXmXdwKM4uESiIkV1OksaPpLIStIRIZeIb4pUR0plHaY+VuV2XwvMl8 vZfKU9Bg3lSY
aUEIvkG4vuaic+dCdGdKdOdSUCaqQgVuTJsCTURwtk4VG95kVidoC+dwNJvU coL6G0R6Q4po
CkFsaEVJfIVY+eSKYCSWcBBiSslaWSRMT+RY+hfJesUIEsLdQFJBo6dWgmgq gugyg2g6Byde
USRdtoj9twVsC4b4LEK4KhVECNzoQwO8NONkGEC5ZFYEqEGYToJAqALENcf8 E4ChzYL4IoGU
U0HdmsFwIIKUAAGYC8OwAAGyKogdbIAALcJRZkLkH8b4JBnQfAJEL1IYG4EK G6g+lWlaleli
lmlp9ihEYU+c+kOk3UPtzYBtzhcClumimmmqmumym1+ql2m6nGnKnOnSnWnZ /+nCnenqnuny
n2n6n96enmoCoOoSoWoaoeohcaoKomoyo2o6o+pCpE5WoupKpWpapepipmpo hmpSpup6p+qC
qGqKqMV0QECAORzu1/gCDQeEQkAJNIIoAIiIQqJROKRWLReMRmNRuOR2PR+Q SGRAB+PgAO93
vODAQCAACAkGgAGgiWwZ+AB5vObg2ZyOfT+gUGhUOiUWjUekUmlUumU2nU+o VGpVOqVWrVes
VmtVuuV2vV+wWGxWOyWWzWe0Wm1Wu2W23W+4WSBQSNwyHRBEXG9XuRusALhJ IYAEk3pCDi4A
E8nwZYrFpAAgmZEgArhxjABUgA8gBfH0VABQF0HAAwqSFJhmvIAGcZTG+a/Y bHZV6VKYzjwA
FtNY+MC7Ntdk4IUAiyPh3yd9zEIg2a7Pnc/odHpdPqdXrdfsdntdvud3vd/w eG3XOCxq7Q+I
+L1Ut5tMAHEHYjDQcuJgAOVRmcABqEPNugASQuhIAA3ligwnkiZoAFgNwZIM dZcAAF4LCSAD
eABBJ3ABBoIvXD0PxApBnEyLoABmNDTIQIJBGEzg+h6tCVFAITRnGQ8ND6G8 OxDHkex9H8gS
DIUhyJIsjSPJEkyVJafPIuqGvQvMmSE45QCgCTSQMg7FmQeRYAAG7XIqcwAE UF4NgAUoxwUa
MGoMfBnAALoEhmAEUwwZsNQ5Kc+T6vj2kyAD4jQhMEQVBkHLGkxfEULAACGO 8DEwaR7tWFri
T9TNNU3TlO09T9QVDUVR1JUsPyc80oLwsCTFkQY3gAVZyAUAAKAAewAASDgR gAe5mlKABIS0
IIniWAA+EizYhA/MU3nMZIAEWO7Nj8UhfgAFwgi4AA1DsQDViRNFXVhWVaVp XAViKKNBGvYB
Hj8x4XEiR4AE+NQUQWQ5AgAQY/E0g1s2wFzRgoIZBgAR4wBagx3mwABMkEQo ADQSE7sQLg8j
iABADyMAABGBqVFYPQ1AAWJ21sBVcAAH4wiaAB2FSQgAE6ZB2oMCYhAARJNk EAAkZAAB8GxQ
IEhTQiEjMVdekyKgAUwjB+HDCJDl/NA+4VN84znOs7wzDbWgAbBcE7hBMMyZ Bv2ux4ggAMwl
iu1Y4i+AAZArTB+TIVl9X5f2AbaF2B1rg2EC4CYAb3fd+3/bHAcFguD4ThdT KzVtX1jWda1v
XNd17X9g2HYtj2SAFl2boVn2jaYAWra9s23btvjPcIAXHzFzc3dN1gdduEXh bF53re988Vv3
G4FgnCclhmHYhiWKYsAGMY1jmPZBkWSZNlAAZUg2W5fmOZ5rm4AZznee5/oL +mnQNB0LBMFj
cEvEezk+U5X7+YZlmmbZxnTPGfNANc3lxDfHFt/eQ4MPgAAdi9BqAAKqdzDh BbaBMDYSAACb
E+HIAA+xeNlEe2cADaW1mQbc3BuTdG7D7foyV+z3H8Muf0+J/r5X/vogEQo/ xoBDrfDCIdtg
QXDgOBfBgPweoON2JaPh1K0lqLWca7Bby4FeOUitFeLEWYtRbi5F2L0X4wHX VQRk86qywj4a
mAAJQIEKrXIUIIWItwAAPFWHdAgpELrbNSKNuo+BfOlAsEMAC149DyEsAAeA hzcBDiAhgZCG
gzAUF6rkEgVSOryhGHEZYAAcGlekKscAABRhQJuIoGaAxShbTYGkgxomukHU maoLQ+xTKCRO
QcOAABuD7XoBscIrJKSWImGYQTPh0h+D8yZFQnwADyF8x4cptgAApN0oVSaC wzuTKCnBOSdE
7EHa+GYBSBmjBhQPMxLy2xih6CMYNqrABIgAHUm0AA7TQzTk8FyUEopSJllO mmVRmALL0BTP
mfco5Sz/lSmwOyiYwlNjQhGNcbSJRwjlHSOwb48H0ABHuPsfwhSBkG9Kjshp ESKUfI0SMj23
SSmDJeeIyJNScoNKGhE/pUUBGjKxOQDpXkGliACWctafNIABLmXcvZf0vmHM UAEx5kpaIMEG
dEzyZEHUAoIF1RkDvwUQ0IbswAEyVIpMSY0yJlEHqpM2qw5Z70FNNPqm0/ZT U5QULIH5jwnS
dQtLgT8kwugzA+AAEQBRhgAAjQWc8zRYTqnZO6N0mJ5huJlWGphEqzVPrRVI yFVWPANHwe4M
4CTEOMViOBDQHRUhTk4HeNwZkDD7EIAwAARqRSEpLIeRMi6VUsDcjqh9wbhX DuJcW41x7kXJ
uUeqMZGIynpjO1ubyd0EDIfiDdoQzhJK5BmrAhAghejlAAEsajJbupaCefYe 4sD9TRP0CSat
R7YiHA4AAKk3qpBBDzHIWIdU0CQDcH0AA7ghwcBmMcH6cnGAuCez4TQljNg3 AKi0RQuwKmDH
mQ6raKQgzxHcL6ygEbQzdMQncMwpRrsPCkrgKF+K1CJRaL4OyMH2BQWwGhYZ 9sPn6HSKA/VB
bTVdUOm4oU3GuTfIM18MIBRVVaqNLkco/16ASGTdsBIOLvGJhGPIVAABuh0A SbnBeDQAYPwj
hNMouzRgcGDA++ODMHYQTBmjCuFw7Bam1cubd0qfmJpXde7OVrukJvBeK8l5 kCoHvVew+80r
4OMDhfO+t90635v2ya/ywcA4DwKibBGCmAZkzNnPCmFsMYaRRVPD2ILEYjTn iUg+J8UiZxWA
DFulcX4xxmADGuN8c4DF8fpHZOH2ZOffkNRM3Nb1pMhjAzmu9e1b1/h9ugt7 R5i1DnHM+pc7
BWlaAXWFQFKKWOJVl9xBsoZSABlTK2WEt5bS/hJOOy787OxljQTONtpVTx1s EAA5J7guk8Yn
RePBWMaBAFU+ekQADKBCJ4AANtE8EV7oy9wANH7otiI8JxLs9cf5ByHkXI+S clIAAIFA4JBY
NB4RCYVC4ZDYdD4hEYlE4pFYtF4xGY1G45HY9H4m5HO7X/EEmkEUAERK5BHn wzgAXQSMwApI
GT0izQAsDcMoE72SACgEhwAFjAyCkWGAC8vh6ADDR4kLkiAHcyR4ADdM5rN0 xOlgZ59CGmmS
gABcaKlByCZkwAE+kS0AF+ZQdUJtAiDb3cvjOAAi+GwADOCRSAE1Axcgl6AG idQhMa5eQBOL
BPQBZS7aDReb2AHlfgA5VBfxSYcTBJwyJ2bhvLphMpplJy7q0Kn4AGSwGCAG vtgADHnMEGaE
OAGlBSeAGa8lgAAKprPabXBrbb7jf3koenaoT17gkb+HwRLfN5/R6Y5L8ls5 vOdbY6BQqJRq
RSqZTqh1YfVKsrCtMmrywLEhKyu6/iCPAuK5rqu4wsoz6+r+wLBsKw7UrQxj HMg9quoEyz4s
yTLNrSzy3tCv4GoGeaygABy0uU+CeLG9jZQ+ysZswzTORO0DRHAszOQSpC3P C8YANjASBNqr
QZAigR8HW3TeN84DhOI4zkOU5jnAAGQCyU90QR0n0eRMvUUF8ubpLu70QRQs IARWfAAHWczb
AQC0VlaKkHyIhj/HcaI3MA9VD0RRNFUXRlG0dR9IUjSVJ0pStLUvTFM01TdO U7T1P1BUNRVH
UlS1NU9RJEkiTJQlSWU7G0lxyy8ammyQXRwnCliS/U3rQRLRmaOQAAkfjcoI AgCPKAh+TFXM
yoWd4AFYPQwgAKpD0BEBOgASYADGAA2rWpKrF9QsoHCABBheEAAD85KBDgo5 7kODgADLWUQx
pEcSs7NMfr/EcXxigrPxTOb12c2hmtsNwVHkABQEEPioEOmwgjyT4ACudpHg ANBNXgysuueG
QG2lalrWxbTKlKAB7lgJIAFpatr2yhQn5dmC5vLVGfUtWMx1nEQAHxWyZVwy ldABXin18F1g
HLYViWMgtk2XZsPaVaCFZRmuV5xblvXBcT73Lc4AXTdd23egd5Zfet73zaEz 38AGDNFFaBRa
TOBjRGVaSjhT38DusfYPFevZVm6E5zl5UBRuWhJziCe70fF04ligw4tu+M43 juP5Cm+SS/MO
tcJEXDX+0M2ChNy16gAB1GiOwAAqhJ5gAs3YMVqOp2LY6B6uAFk5/4/keT5X l+Z5vnef6Ho+
l6fqer63r+x7Pte3T9VJKh6TpSlZEU9oNckw5KwhaAB+G6VjoBIKqCkSZB1A AGhdCuAAhj8X
7FAAFWOAnQVAPgERYkkZI5S0AvHsVBubgSDJ1FYHEPIAARCHY8C4dxMBLCLE EAAN4kC1hwJq
H8aIAAuCBf8ZVOKKj2BQK4WsJ76CdhfH26hMjhUSI9TgaBOSKxzLqBeBtdzI i0FGgEAAJ0BS
Gj4fcAALAih9AAFGJkuYDXzGUfQxAGAtzlg4DvCsAAZgADcH+30AgpjNggC2 ZQLhyB7ibAAN
kPMFYLwZg2ACDsH4QlrDYAASIboDA8ETHiDkHoQQibcb4fbHgUQGe5JEgsWS vPpDO+t9r7wC
vxfm/V+7+X9v9f/AGAcTG9wIgUC6BkDmhL6MxBFacFILQYLRHmPciYRwlhPC mFcM4fQuJhDA
mkMoaCwhtDhoa+3Vwsl+whKKLgEsEdSvtorg4cuqh2miZhzgvgAFzLKO8tZD x8kUvE3w8zNi
FAa0J+jEA7GvAAL4Qxywhh7jFGSM0aI1AAjZG6OAowAPrmtMlHc2W7S+OcuA X4cSaBPEgyJX
AsYkxLkgQMfA83dDDEgcsI0oiBK4lIACAlFXdDOgSWgG7kaKySpZS2l1L6YU xplTOmlNabU3
pxTmnVO6dveVY+JV6nJKGKgqNIYAcQADfEW/oJ4h57m+Hu30DY1m+gOBm38g oLoSC9E+FIAA
1BHg+hBABl4mwRRQhifc1i5p4EFd0JkIRdxLBBMaM0PoQnitZCEAUmgv0JCf AysQEByy9AAF
6X0AAQh+C4AAC8CzMjkhBsMOoX1iQETBqsfaa6+xkiSLODgN5UggrAso7Z3B Ah+DhFkAAI1g
y6IKgqM0VIfkvgVZ6PxaQzhYCUAADMKttA8ixG4AAQwTgRk/KWUOsRawzClG gAAJYywvGVoe
UgAAmBYhqAANgPr8rqv/ESLESoAADiQKeJ6uhzK715JhXuvoQRIAAvjCS9Fd b1rMvbXwujeE
VU8ejUOj9Raj1JqWZWpxA4yDXqiACqdVarkGq1YartX6w1jFXWWs4WK0l6Ej Ws1xB631xj1e
mu1eL8WJv1X4vlgLBWEbvYaxFirGWOshi8XtlLLWYmHNMzFnbP2hL1aQX1pi BjOh3VcymQRh
TxDsU8ABwyhWZhktDHwALQWiyEGkAArsRVzvtiavWKWDCxBgTEBxRXYhmWAE sZAdwADmBYCs
AAoRTDVutdi7V3LvRGVxeFjQabJZmx3ZvHtnsrZAbvkJ2wDRsCgAAYZaxBo3 ixGaHsAAFxvC
iysFUdpjhlE+BeDarBBMI1cq9WCsQb6yD3FGFQADPb/ax1lrPWmtdba31xrn XWu9ea918qin
z4FWvjfLQMhxyxYjXoAE4FDeiBjYFkIMAAKQn20ISGZjQ5RMhTAAMAM5dwto ZIOFwT5yRRhg
fXKeuCboxHfAAKUaQrQABaBalAdYzhTMbBmFu19krJP+f8csVY0mNBUBbAaN W4MkoKkAJ8JA
ABOhhzdEaSpO5LkGHeYMTIgg8MfnKQ3gQ0o5cGtPk9iIXUH8LIKJETwfYQBi 2kdYAAghBAlX
cH7cRAguCXAAIscuWg67tIRZLeAocnhvA8x/oRbN37x3nvXX6p8AbHKNsqJW zSC7Q2ltTaxC
NsGj23t3b4ANwkK3JubdEB919KIZ0Tp29N7b431vx/2/rX8BgBwSkXBwAcJ7 JyqwokeHcQ4k
lsg0MzWBWGdGTcPFDvsUEcBkQgAA5b56Z4Lh/EeJkH8Q0wVJRQ0dL5lvDeW9 OEBnKz41gqGx
OA1GKAAEYSeu8M5pzYP3ONJc8Lflpu3MvMeE834eYvFxwi+ElEoIeqvHSLfq IsAANwKwG61t
PapCuv7aDAAADXUdYp1HMOF3QFgPu4pWR1Oo4RsDgReCRyIEfy/c/geqi60q MD3ABDcAujwJ
JQAiAj955pOpO42wfYAoBL7QCpKAiQ3Id4dZaQfhZR24CLZwiEAJPD+8AsA8 BIj4d4cIbp9g
C6462z+MEcEkEsE0E8FC/zYIhx8JVx8hWCgbs6KgLhdocwdR3QBoCz7YBr/4 hCi5Owdx3T/U
CLWAlwd5aQAgCJKC3BKYdwe6G8HMHcHogYfh3QcwcsAY6DS4D77cIpS8KpKY cIcrTqG4gQAo
BwC4AELhKEKYi0MB2YfCAwCUBDV5FhO5ooAhFcBBOkI54sJR9kBgq0J5OcHR OaSAfEPsJMJc
QMJ0KEQsHkFJULAEGQUcGjN8G8QkKQh8H4dcIIgQBICUIglsREJEP8JkQUR0 TQhUKrN8LD+8
LQC8LkOql8UkP0RcJsQcKMQwhA3IecPpOo8sPYgsN4dUOJYkOjWAecO8OMPU CRR0RDN4dJiA
AABQu4DUOiJp3UTsIUUEUUSKmA3L4wNZ/YN41JQRQhQwjBOoXwRQMp/YO4yh XAZAeSE4G8Ca
mpOoWQPQJTAz0RnAMyD4NANhv4JAFrksb4gwcwZy1YRYOg5YSDdpXBXA5KIw J6D4ZASIOr54
8hRsKpdIWAS5igKoXArJxBaIaZ94KYFx+UfwJ5YAbgVB2wEcLxOzuQMrfazS rILgqoWQTZQs
jggod8lAAElUlghElyMsmL2EmgggZwSQzYGYN7wA1SOA54FspkhErMrUrcrk rsrxQ8FYhsFr
YhTofho4AppLHgscr8tktpSsswmMtBZ6CEt0usu0u8VaIISQIyIjVRNS/o9a eIRUfgIYO4u4
5pkse4hy1IAAXAYQ3IJAIS45TMxkx0yEyQispws8qIo4RIYSBQOwHJFYboZo WYAAOYHDfgtY
RIXs0AIT7cFJrzbhbB/0nczoMIJz7UxUQA3QVT501I45JonsDQ8yJx94LAKQ SwowaSFa/iZw
gweYoKuIooKAXo5ILIFD/IWoRa7QMMiAAAPM1q4k165CxoCSsRqBlwMJXAAA VIO7fh0YgQPI
W7+4Qzh4Ak6KxLM4oU6wAE7E7U7gqE788KBQQ08itwoJ14ooC6OoAACYgYe4 e7ToDIHapAOw
KhyMvFDVDdDlDtDynksIhksaoJTEcIRTV0wpbQPIUo1gQQLQ18NtD9GVD1E1 FAO9FVFjmdF5
4tGdHtHzXpOqNUAwLYcsv854jhA4zggUxBL83Z3JabsYQYEYnR2stZSh3QVl KNKYxwO1KwiJ
1ZyhJ0e44bByrAJ5jQ5z7NJzXo3IXAPT/IJIQ6yQVYa7eVDBKAfAcwwYYwaT 9QAoCxdoEYDE
AzR8NIBodwWj9Yo4a4fagCR5RBOoUCGAqAeVI03ZFrfIVoeAIoAAMAHsg5wS xIrgDYUoa6Kg
LRyIaYSSvARQCk5QUdVCCJWwwpXATRcgvpQoAgadTNTdTtT6CK9tUdUtU9DL ItVa3oTrh4bg
YBQoEb/tH9aFaNaVadahT1EIhdEcF8yhOwbq4bTr/L/IgiG6G9B4FAEdUFat dMrg3IddboAF
b8LVcUV9ctc9dVe1e4d4bomAW4WqgATgZYEIAAPh+QAAOIJ75QFyyQSIR5jQ LIDSE4OQK45Y
UheEi0+gUYPrh8CYeYwYSQOi7QTobYgYX5/wFxz4QAPL7IEdS4wYRQNR/QO4 aVB7f4uhkShC
H8KgcwpYPwLisTA4vSN4UoQ5YFF82AgdJJglJhkwhwWQM4AIyrcUiQAFgIQc mAAAJQBIZZd1
noAFn5u9oNobeYG9oxOoYYTKCoNgSwb9qYCZiFtYooUgWIQypIOlp4J9qKI9 qlqy40rAgtMB
hhJ04h9jRo6A05EFNAWD7IBNnVrdnyMQINsFogG4CxtIaYY8xoU4xIbAD7fg IIfJl1g4mwQQ
W4bIAAIAcLnltNtYENtqpLKwmtuSgLZ1jgAFj1kFkQgVkgtFk9lL2ABo3Ibo ZIWwAAVoVDC4
Uob4EwAAPoKwgQKoLbro5YUoZpjQLRJ8oKzpYi0CQAZBhoG5KAZKHYHBfyrQ t4NQBM5Q4xeA
IJjQfYXz7IYQOKvAZgLreVLsDQ3IaYWQRyEBxwBywgWIWNB96YVLeYGVdCtx 3Z15j9SpgFI4
iYboWSpAEgJ8AzBVuYFBnsZSIIAoCsLohNINSYLeBpCcdIhuCOCeCqqGDDWB owoSaMnIhAQQ
VYnQPoKlL1e+HOHWHeHlada4hVbOHuIWIeImIuIwjQ3IZIUC2gMxzjwzIIAA YQQ5yIUgMw5c
+JECAAYSCoduKp0Q5NMJhz9VWgxAMzC4eQTLVy7Z94HgFJ+Q5KEjBSRwAkDw OKTa+QOGM4R7
V1xayoKgDYIYo05xk4pYIU84oQZCBQNwGaG4SQKhdrRAUobj+wLUmZEY7tJZ L1pYhoeeCIAA
HmClB10c9oNg15FYalq+Q4KGRIrWRl2uR6EAqWST+wKwAlRIAoEB+QWIdQko JwCpdIPQALVQ
JJLwGAdS1eUA5YCeUYVOUpOcP9vogx1Z9D+yS+DUD0p4EmWLnVYYUYJJKeQy sWVeRWV2R2SG
WQbAcQAAAwVQNpa4Pw/gtqMgdoTQxIFoRgRrd4OgOYo2XiJWX4AGYOYZLwHo AtWeGATWMw0G
NIgQbGNmNxLeOIe75zbs5QK4JL5QghIwYQKIgQP4JJv7FWBzZ1VSvAFwTos8 ehQpJNMrnVND
c7R5F0tBv8+b9U+wD4zLQwWAGJjQPoHsBIcyxgAIDZmU8J+1Ax3AYZdYAAHw PzVwcof7l1o0
6BiOBYMOBskwhweYcImAT4QwOiEATSFYxY3wZLl2DIiZ9tguO4aI+Bc2HBFm rguGr+sOsaD4
a+swAGtCixtIbr9QdAbYmAWIUpYBizimmq4gJGnGI+xmxux2x7WeH4hOIOyG yuy2y+zFGmqr
/Oq7RR29o5IQtJiDG6yoITkuoIAGoZmRJoIwbBQoFILY5LG6E+0wgx92CYKq +LclUwQgCRvq
waE8eaysewglSNSeq9IwawRSvCMAgQT4WJ2wCQAwgQcAV5mUcqj5+lLg19pC rFpVNdWWF89g
r7iwnwZO5bKzNwuG6BYm6YAG6u68c27QYgJK55GBv4OF6YAAR96wAAoB995L VwGQBJWyGG8Z
AmuAhyZaI4FwF0ijxwOATAxoQQM6vG5W5m9W5+6O92+GsO7I1h2oFR3bERv4 qo0JQqLBOoeA
bbowCJGO/InW/gn2/6pIEzVwBQW4ze2G2R2ixNdG24AB+O3QT9Uzc6IgSQF4 u4N4CYqtXBQw
3KNT/NIlSwgYX2pYIYZqpAfdxI5DQ0zguDBVTutEzS3oN+0bHG01SIIQ14Aw TYoOSpnodeQo
CysQMgbiG+SogQYdE+pgO5iG4T59Jx3VSRB+rBvKJo3QVgVA3weh+wWDwo6t M6H1NQh7RvHQ
MIBQ5GNF2UH3RPRYa/RonfSA1VxHSgh2CLaWCjaxCQ0VwWzPV/WHWPWR7okZ 78FjYdEnWfXX
XfXnXqnHQeq3Q0wAAHIB+Nte76i3AuGAIQZp+wEwVgIhpgQ9gPZCSdwjSBHI ZRj4b4GxpgSD
BLBevaU/QlShNQuYVuq08Dd4LgFggSKYgQA26YBggYAwEQH4AAJGA+S9JR0u TaJqYIrgeWtw
Nzm3chayCoUvdnd3eneXene3fAEocbQRHAtDSYUj44JzqCauF4mngQnWt4ip 1YQTSgpgF4B5
9jR4AACwDcVXcfdPhHhQAHd+dfhveHh/fI8vg3YVI7KDlBoXioo3i6JQFpFd NwmlOPamTUxQ
wTR3bCV3gvYPKggVpASxmUenYcpyvAGYWB/Qe40Qbe0INFtYYUegAAHoBIwe Oww4SBcnrxQo
fcpxF4GZOodwf523V2vl/QxIN9g614giN45qgHf2BPnXqQiwwRdQJQw5/o5c eY5+4mEAbDfI
wzfgW4cqG4JADVGIhfxAQfxRdwX/xpL3yAiHPavAH0wwAHx3QPX31v131/2A iOyQhGyn2P23
2/3H3JT/YHQvwwwRvow2Ao5qyvfw9gIQrgKAZqIIDQUb7e3I5YYQdw5+n4g+ FxpA0YSJ/wKA
WCyQN4X6N4aTVigMIv3ncpH/c7lAqAed9vLnzYg+7uTMxMTfgHjvgfgv9IMP 9b+/9utIgDrZ
wAQ5lGYAPyxAELhiJYTqAB2GrjABQBMHeSRZoAXxuGUMkEhkUMaaZLoAFxoU gATDSeQAM4tB
sjmjzACgLoOABheafAD7WBgAAEmlFmygKE6MLyTAAeS+M4AmcifkCgkGhEKk MOcQAESuDwAK
qQJ4AYTuWAAHoRkb4aYALoJFwAcsajhuEs3pM7plOqFSkiZIUoSxXpzRqNTA DYU0nFJbhbXf
ajAATXhxAAWJKQACCWLCAAjX4+ABbzkMLgAVaxHliJ5o1Tce4AKgjBFUboAQ YzEkIaR5ADXe
6Ghaox08ADNeVpGWKkNHvdLptPxNF600bE4AApMLlADIp4AG/OhjzZIAIQOH EVZruAEetnX+
Uh7PH73gX3i8nzZySwYZjevLhEyAAUNu+cEQTBUFwZBsHQfCEIwlCcKQrC0L wxDMNQ3DkOw9
D8QRDEURxJEsTRPFEUwychznaf8FEmSBFAAREaxCfAAHCbBwAABwSBQAAIqJ FUiSLI0jyRJM
lSXJkmydJ8oSjKUpypKsHOgpS+uowCFneZJJAACQcPy5TmMUfCBosg4hJcAA gmMNSUJUACNJ
ejzyH4cJZAAAoQLKJ6WvecLUiGQ5pAAT7hAAMEDIZHCkASnZvkiw4zAAWa4t KlYAFKa6Xi0F
D9neYaKimZ9EI6AByEyKE5IXMoAObBM0Iqi6F0CWAzryxtIi3TdO0/UKRVHU tTkmRgDgAV59
i097xgAbpcTAKQkjeABpDMVYAHuSIRAALFbJZQ9chbB6SpOlKVpal6Yv2osc V5TSF2AAFQVF
UgoVNVAwgAWLooyAB3VS+IAHmZ0CE/ZlnJnaNp2ra9sgAZYZIUGs5zq99ZJB PM9z7P9cDOEC
9SypuBKjgiS1aFxLCSw7qoYfjcjiArekgOCFH2R4nAAbhZQIR5PFuAAOCs4A 0CAhZPkWVAAH
OBIQgAKQx34HoR3chZulMqISC2TV+nLF4nA0hZsVY7bYOSe7mQOkUsJ2linV zLkJ7KwYUjQJ
AAHUf47AACuNnC3QZ5EA5KIgOwe7+kXAkyRRo3qO2d6uke67PvO977xUFmSR QXgAHBjDvbZY
WbtkrdP1HU9V1fWdb13X9h2PZdnI0WRdGEZRpG0MRwXxFDKAAhjvTaUO+eXH 2f2nleX5nm+d
5/oej6Xp+pKlHosvjpr+xWUzkb4AF6dXHiFzR1vyF4LCGAAllu7xDBdQ4Xg3 lppCCQQAHAXw
+gAD6GMYVEx42zvsCAACob6BAHAzbQAA1IvRuCOAAC0fZGwrgpZaL8ABZRPi 9EG8EBbQgPA4
dEQsuYiRViPAADkBhXQ/hJX4Dh8IABDPkAANMSTKlrNpbWQsfBjAAAJMfAxR IABRhYHsrUg4
sQuFNGkHYDIABai0VIHkPQjCGQlhPCmFYAIWwvhiHkCAp0eh0WSyZIIAB+AA EyC8AoAA0BUN
AP8OoC4kL9iWteJwABfjZBMAAMwLCBxAMgFyIYo1GAAP6q1ABCg8ixR4IYJz /UFJeRmmKEbx
YTQohVCyFzn4YwzIWIoIQFgAB3F+/cdw/39sEYMmAB0ZGAl/LZGmNcbY3xxD GPUAD8n6P2fw
/p/j/mtHbC3AIZEBAbgRJsYInRsCmj3L+bdeCmVfBwZ4P+FAIy2rRAAEoEkF wniJWuJsN0EQ
KumJGTYZwshLgABmE8t40h7mUBbOiGp2gXBhJWGYTDQg4g1HoAANQMwqx6Tc SwWIfAAA/Bya
QFAFUhgAeupEMIsVLDgH+gSSRIR8TcDyIAXMuwzBsgY1WNA4RcHiBAy0MZ7W MsEHWXqUlFSF
iCEipQAA8R4khG0KwPwAAFB9G4nQGMAqP0hBfSOks2k80pBvSsAFLT3HwMWK YzBj3vifGEI1
RdJiBCgMyDNfgqzZG0Ns9WtFaa1VrrZW2t1b64VxJG7ZF6CUYozRqIhDrvRF BKeCHcnSsGNV
ysJYWw1h7EWJsVYuxh86+PAeE8QhYXBBClj8C8dgAA2BPWsoeK81hbiUCCAA XIfyyiQgxFdO
gvU9hdAqMsnYLqCkKLKHAMxLxINeX6NchQTlhEgGmKwPRKAqiHPmC4Lk1gxh PCkXAKgOQADa
FAHVz4YTTkjEEKtQ4fQqF5F8JJawQw326iuEGawjxP3GBsPKsADQXBpAAE4S BGxYhvLmL4QY
Rngh+tTBl8A5SVgLF0/sHF1ii3Zu2FRco8ySo9JSQsIKlg4AbGQAASA0jBjC FvcYHoGiiX4v
0EO/hDCyi9HK0wGw7b23vviJAY1UR0ziCeIcrRIwnyNAAKiSAAJ7EjjSMm6d 1brkiwQAAPoU
AFAAEUFS5odxY2eIZhEpopBKmJGvAjB6bsJYUwthgs2Gy1AaNuO+4NsbZ3+t tbi3QsbeXxBR
G0XAgwsAACSQkkIZhIkKCiAeDASQ0ZDTdjgW2O8e0ScCKwSVCgqvDtUEG0YA B2i/UPlDG5Ph
EBxznQ/QtJ6UhUqhjVNz9xSheNmFsMNxiFqWPagQFw91SB1DUH/Cwsb+4QCf NYOwjbjBIrPR
0U0P2uFFBdhEAAiRLV6CQChghCxpz4n08UheUDrGpOUZQFQ6tfgJ2CTTYalt jbI2USFPRmE/
aAJCC6a1rH7hCA+5Oxu794bx3lvPem9d7IMro7ivDu0OvdyzYLd29+BcD4Jw Xg3B+EcJLaAA
dY5h0lOH3G0DYH2x6bLaTYd5sypARJmAQfkaSh0ROsPweY7wADvHxGkBAEW/ gN5EhQfA9KAg
EAYAwoZIY08lNmAnjnNyqcl5PynHnLCpcvKKPwfBNh58aAjz3kbBeMw/570a iXMih8158iPk
nJuUcq6Jy5DnSOldM6dY7hnDuIcS4pjxJ/SOGDqPcnyNpCyicsLZ1RBiOB5k 2KkA2dHSEcAE
ARxZC3bulj7IWAVSPfu8Ik8MPfxCfPFgI8aTTsTBR78gAIpHjnhOFef9B6H0 Xo/SelIXvmuz
ua8nWHmNgAAkg6JxvHf0udlHRCJDys3D2zGzb/OWrEBsaRpiyggG8J9lgHFl X6LECanBmipX
qDJzSOBhiZOAGwSz3wQgTJe989YpBYnEJl9T61mvsgA+391z4APwfi4D6b+H 8f5fz/p/X+39
/8f5/1/v/n/f/P/wAN5PUEEK7ndK9OcPXGZgUgAFJjQBWA3AekchWDMASCxo GFOoiFQIavem
0LBB5qUgAn5gAA8pPoaBhhBnPAfA/AqC6JVDMhwhWE+AQLZm9r4gKnAg9AAl rAkvfgch3QYk
+waGwwbgAQcwdvfgev3wAwlwmQmwnQnwoQowpQpwqQqwrQrwsQsv4wBj5wCv ViQBuhWCTwKg
KH8JsJgjyi3g9LOH+BDvoAzgbm/t/QOvfgZB8FSJRjSAyBuPEAtJtAABhslg AAfA7iXj8ICh
wMsDYA4BSiNhHgtCPkvQYhvgTQWASlVsHRFxGgARHxIhkxJxKlYtlwtRSRSx TRTxURUxVRVx
WRWxXRXxYRYnlwuD5QvN+EcBWAzlIgqhkFKHjpywlCRQ5lXw6jnEcPhmvPjF rNaoGDkh5DKC
PiBiciDrJLkF+hSEwAnAWj4mDC4IEv2CQRrBYxsL4xtxZRzx0R0x1R1x2R2x 3R3x4R4x5R5n
TxaDrxbQDmCgADGidFfH7mwH9mxkGRhxnDmAEjcjdjeg/DfjgjhjijjibOAC FiqiBiCiDs7C
tiHiInEo0CrSLCsiRCHHDyOR6SSyTSTyUSUyVSVyWSWyXSXyYRZkWq6wCPVN +I0hfA9CDlCl
DhEsTCIghSBGYE9DaA+KAhUBRlmhtwORiC0gHhZmtmumvmwyBGylWm7lXm1A AAShrGEGFA3F
nmGmomHlsFtB1gzh2x9yvywlpSxrOmIh7hMwWPPSYx5EcBzBwibALAPm/vKk IkcEdEeEfEgE
hS6nqukuTO9jZvEI2gEgJC2AIvKK1h5h1nAhwBvB0KgATCDgRzCkLh8KYhwh 3DbuKRgzDTTz
UTUzVTVzWTWkUx7DrR8DnsGgHMsiGA4BMFtAggGhvIMgtnRBSqyw/DbobIcS si0gCjjCUNnp
+J/KAKBKCKDLRhMKEgAAaAFlDgaBClIozJZo1I2I3I4CnAllTpXoypZI0Tvp bTxJVQIzXR2y
cBJA1ngrxoSFKB3BopyxRkHLHq/niC5jwHkTTK1kcBZA9K/MZxmD5AngzH7g 0A2DYAkAWnNP
8hzJ1gABFg6LTtai5i5tJiQAnn7xerqAbgPy6EJlaC4xqEGhMDlCYLBiRB1h pqUg+AuGWhNB
pC5g4BEjMAxAwjU0Jy/Drk8slAwl+HhoMAXBEsKhog7Abz30oUo0pUp0qUqz VzYCizZCaFok
ZlqHRNpHihMMNCYAegJCOLwT6LyISLzAABGBCLRhKgdiytQJfNRtStTiGFLB hhiCPgegeG0N
iMJsKsLsMswAYB2hQxMsIMt1BsvMNMOMxUrR0h+BzPXgjANgAFrHtGXkKq+K /HhLAxikG0iB
cBhI0gkAhQ/kl1SVTAAVUVVEGJEp3A3iFCHDvA7AcmGBmhZgAA5gcDIMayfV bygv5OTLhApi
xBDoMAuM8tigwmdgNF3B+OTBkhVBFnPgtrjCNKpgZT9kKwwmtgqoBBBBEm8l kiGPBmmhOlrM
Liypji0pkmNxABMz5gfA0GvAghEmhBYg7G80BkGqOk9ttE/i7BYCPVJWEWE2 FWF2GWGwp0sC
aUtD5O3B3ulofgGi2TJVOmCu+AGu/OcB8PA10vLOkvMCFumwlPL2LEguy2HR zpplehy1Nm5k
LSCSJEEibRcidBBgRiN0miPkk2cgz2d2egAWflzCTE5CVmME7jnmDkeoFCFg nifDlihV/t6I
0hcA9I2gkhDrRhVhrhWjaNwh8BzPXBjBpEeACgLGRARgMFIofgLipB3BaEeg SCFDJDKAUUhE
FCbBTA9DOAUA8n90YCRBnJRJ3BjAyHRnSiGQwwKQLH7GhH9G8kRlaE1Fblxi Y2XXOXO3PXP3
QXQrFWICR2JXRSSh3huiBhbhajKBOBlmoA+KCgAA4w2UcrRhIr0AAAsgNHHg 5AriyhSLPUQm
hBRg+1/CQPWvXvYgABOoBCFhf0kg8ifBAA8ihGrJ0vXBFA1DDA7hpPmrRoMN JMSDpm5DFVKF
SA/AuDSVlMojUhShDpxAtAbyhPeGVQ6EzEEBZAzgAoM01UOv0DdBuGmAlAEr YX1X2L+gg333
4l636FHV5vrvzv0wGP1v2wGA6X+gn3/nimoBB4Br4qzj5Fz2lE6KXKqGNjsk +DuWpWqCgofh
zX031iCYFYGX5AbpSBwhphjgABcBTmvBsAPjIAgh8rLLOCVhBBbhsgAAgBwp 2vsPtPuYKvvv
woIjFXlPYE43nCGXoiUXpgAXq3rvgloBkhbAABWhUFtBSxKMjArCFgqgtqf2 pPnCfRIRRkvE
wExFrBIpjlnC2Bk2kgcE5t0Cmg1AEhLI3FDMICfB9hfChBhA4jBhmAu2xA7V uucYYiEYZ32s
IYbYHX6kEGYiYGaKgH2xOAkSBBzKUpeFrqDhShehAgAAGB3OHgDALgTgAAdg elyk8IaviVMv
jkevlBYvmPnPoRIHFXLlbB5A8imjDGhA0MaCUYFsjBIkwMFGCPhZfvjPkZh5 ixG5jvpXT5x5
yZy5zZz50Dr3SCRXTZ0x1MfhQKfgzU8NpV8izBDkgBSAzCy0cUQDVBhDgB25 9I3Z+2mAVEeR
dC5hNGIh5S5GyQYgeAUqClDprDhIUW9mZZSGbFtB5BHwWAEhzD8gqANn1BYg g2ZgGliAhAJD
SAoBkDvA3AZvEBJNPVMitTgjZzhwN37ymvgEEB5huk9geASCygJ4kgABUg2U niZhqJu6WCK6
Xj36ZPX6a1aF5qygrACW6wgl+wagnQiQjM6PfgYB1ahaiDK6j6k6lumu2EEY SF0lxDZiYkD6
gPXguje6rQLhroiAkqY6V6W6o6Y6Z6q6bhsCugDBVA2ixSMMogzFLB2hNGvA WhGKuBSg6A56
uwhwcQdaxC0gegCi36EgAaF6OaHDF6IaJZW6Kh71rgABgZEAryyCQJ+CzAoi FoWjYBf6Ti/V
OIbDBgXBOlWxfiF2noEm0JCCnJDIfsGgCsHg8hbpHgkH+zigABYAYifA+i1k uw8an6XaYap6
aGRa86cF64RDrsGMsPoJjj814uGL8DMsRNzgzDgAcBtrjBNL+gnlKBy2DAAA NZVAAQQmWwSC
IIZm/wTwUwVwWyA0UlbHiUQifArAHnHgtg3rrrRnwj8ghB9wQQRcCIZQTQUR B8FSAb/Z3cT8
UcU8VcVzDZ1iQ528WRZI0ikI2ilpxB1BfHMjA37iX8Mj0HNcAcBYTD3AjBsJ yjHlDnwnx0KG
sQJgAQKjOJCa9hCAJECE/HHxDnkoeC9KKEtC/hrXEIRGk1+EwgDCFhwBXmWz 6iUUl2jUnadl
XSC6fEEC3Fai5iWCNlciPnODB8xFEcyAJczH8c01MrdUlMKhiAkhoVFRGRHR IOTxPwGRQgZA
Ei3iLc70W7qgz2gEG63k5oSCUH4Fr0wAATcBejOgzjB8wc+oRhP9AdBc0c1d Dc20mgVI1D0o
3E6C/RgWQgAB4Bt1EgIsH9GxOdHxJdJQWAFBbjHAt8knxcfiRXH8nwLcpIiA wVMBJAXidA3g
Jz7mBz0jGo2gt2ZbeG5r8HPAhhmjMCgChBpIb1ZiFFEjZlGDb1ZEAce8ccfl HghUngDBNjz6
dc+HP9W9X8z9Cc19D83Unj5QT3+gfBmrLG1XGveF0E57n7oqNuTCcUzNno/K yI1Af1Kw8gAQ
9w+w/xAwWRCRDDwgbgCk05liHCOHECQtmiop8mvFAFxgpB4D0ALQ9Q+byiF+ URBxCnjb2Wr8
Y+k+lel+memwAcXCQcYenRVG3DpdyjFdpQKnv2bqJdLC5D0BmiIATBWAiM6B DmoeuFHYVIgF
+b9BlI3BvgbM6BIFLEBkCnTeq8vFmhWjowRlOAuAWCFh9CGADczObCFgDARA f1XZxWbVRc6e
XiMC7COi8ikCle/BS/AfBfCfDfCfFVXASiKRpxwIrjUxxxsxzKJfIinfJ2Dk HdPYkBYiNgvA
XgHz0lIgLANmxuwDymRm3jgfM/AgAfB/EfO/EfPgkAZDb/LHs+r3kxpRvxq/ TRyRtCZ2tCD2
u+0fHiQIeqwe2IM2Ci8fferEtnuPemWGXG5j+j/hYDDJoCoyl37nvhhHji1A EwEgCwFhIAgl
KCAPdfG4APtnJIAA4ZvgAO5/nYABEAPMAKAoA4AGEAHkAKUuCwAAB9SEAAYD AAGSQDCIfgAk
DIKySZSR+N0AGcCiQAApYuAAI8nB+ZtNQF0AC4wqSOtx7gAtCMETN8NhQAAE imNE9Is0ALA3
DKSQxprJNAA3k83gBfzMuABmvJRgAZAVnAAoAkZyFMVxYGewTN1rgAC8LEkA CGt12v2EAWOy
2e02uZW233EZA2Z5nNZvOZ3PZ/QaHRaPSaXTafUanVavWa3Xa/YbHZbPabXb bfcbndbveb3f
b/gcHhcPicXjcfkcnlcvmc3na1yOd2v/RpNIIoAIjtc/ud3vd/weHSxSLRgw vJMAB5L4zgDM
SGppmrClU2713L3gB8XUhXi7GacwAA0UYNAAKpICeABhHcWAAB6iTMnwaYAC 6BIXAAcpIrWK
BYCCsxfraaR7riFqopI8iLoy9D1F8LQAFaLrzHmT6ClgMAAAI0xpkyKCjjQk K3way7RP2uz/
HkxKBhKisYozGcaxvHLSn4da6kOMq8j8WLMkSYR1AAOwanHIy8yQriBr/HRM qMFw0KUTBpHk
m4Wvyz7ySaMMnn3G0cNJFDzRW9b2zqmkqgBK8sy2mcunEAARFcD0DQRBUGQd CCpQnCsLwzM4
3SW8sVPTQT3JJHYhKOSwrvUaNBpIbBTKMFItpCa59riCZeDiADCkgABBFiYQ ABGX4fAALdep
ItpVliHkDCfH5VqYAAqKhE8mRlGk9yi1x5x2hIXEtSho0szMdzZNwAThOQzz ozJ+UyAtNySN
QHgAQYZp0PxpI4a57kMkJUVjPL7SEukyPVJLF0xCkLQxed63vfN9gBft/gBg IAKwikgvw8WP
Y/kGQ5FkeSZLk2T5RlOVZXlmW5dl+YZjmWVui6bquu7Lt5m0iGHMcKKAsD6Y yk2SGHCbCfAc
EgUIjomd6fqDTz/UMWVakJ3mShAJBwX2CY6+C6ruvIhTiAAgmMNUfKUrc5K/ Qh+HCWQAAKEE
EifOAADccK2iGQ5pAAT9+gAMAURM/SKrujJvkjVYzAAWcK2MpSOmvOQtBRQg AHeYa7CmZ/AI
GAByR5H0gHlIXMs5IuxL1v6+yXWAE8kkJS8qp3MMzzfO8+SZGAOABXn3Fw3B uzBulwhApCSt
JpDMVYAHuSIRAALD/XT112NRc21evdd2tChnY9nynLdwmfdChz3QI0WMUvPx h3dDS55mc+RP
+FvPigB4/k+WADzXnjLBklsGq6G2N5SGTJuDcm6N2bwX0EDiFAHpfie1S6O0 ergMMPJVipCa
E2DiTkAAkA4JbH2UAAA3BZHyEeJ4W4AAOBWI4GgIBIRPiLFQAAc4CQQgACkG MjQPQRupfC5E
Lbk3avlcy+h9Qn35GaGGIMAIAAfC/RoetG8RBuimKsCRWYcFok/WoZkcxggX gbMMC4T7fxAA
GEoACLxZRYjlOoE5AoABsOkBSj8tw90hAAbC9YvZXS/RkMEAGNAAISk+DYPR f8cQARzjrHeP
KPY9pAj8XJwzUZOSdk9J+UEoZRSjlJKWU0p5USplVKs8LNTqGiOsdg7QiJQj 8AAL4SQawABD
DeWUo78BokEUuakhgvhFBll2HdyZRwADIg4AB/UrHDiyD0EoAATxDmSNEE8M wggABoDYj8JA
LSYzSNsQwizsjzqiPZB4xrpE2jfAAL0dS4whTlAAOtrphAhgACWLccoABDAu b/Gcww0ggzeH
AL4PoAChEhVee1WQ25mvxAACob58iFR8AAW0Xo3BHAABaPsrgVwUmGLWgkT4 vRBy7AXC8DwO
A7kkQuIkVYjwAA5AYo0P4SSNA4npQKe5jRJQZLTH1ISJipxcKurMLjgQACjC wPZg4sQuHpGk
HYDIABai0c4HkPQjKaAAptTinVPKfAAqAl8PIEBTkJDo7+CpEQAS2EyC8As3 wqLBH+HUBdVa
rv/q0WobIJgABmBYXWptHaoCjcJICooAAZhvS2HkntAigmkawdhrdMyQ01pv TmnYAKe0/qCI
ZU4ABFBCAsAAO4v5vEOoa/Mg9cK5TtIlXavFeq+BjHqYORNCKFUMocq4U1Eg t0UGRRYG4ESK
CZCERhH56SBHtKjEV2URw4QpH/TgEZmh8PHAAEoElKAniJf+Jsgk5JNmaIoM 4WQl7JBPQmiJ
El7XNDJs5TKsdZbRVotMl+1E+IPk3hEACMImYxmdIYKwM7sgqiaLbcsuNzSQ lETYwNjgBUYF
HKTYcTELw4g1HoAANQMwqlqbMukWIfAAA/Ba78NQIlmi/hKQWFCOSKTUIxNi b0dKGjtKLh4p
QZsQgAxHiXE+KS1oeExi3F4OVigoAq06c2V8sZZy1lvLmXcvZfzBmHMWY8uS uZvLJnUoh+IB
EkEYDZZl0tVnca2YoiprBDDuRhjkCTSNwAALgYUtgkBCu+czP2gNBaENQQdH tk0tpdoCHYHL
xhmizAAHMHCs1FVkF7pEIUd8yGezrMjPEyyQhcEEKWw4Lx2AADYWh/5MgXXb FuJRDwuQ/oJE
hNqZgkRetyC6BUZZGQXYpS2gkOAZk5CQl8LEa6WwnPmVKKwPRRwqiHNAC4Ll 2wxhPCkhQKgO
QADaFAHWtQYVkGaEEKtv4fQqJLlwWmXkvqaBBu2I8T+2AbDyKqA0FwaQABOE gVwWIb0Li+EG
EaXYfptIJ06UoBYuqGg43QZzde7QqAtImt4BybSQhBccHADYyIRjSVOMIW+2 AegaRzwjhQQ+
GEk4cOWHINshHu3/wESAxgABjHTeibGmzMhPssxcQwTgAX4M1LYZO5dz7pMz xcAAfQoAKtUF
Tb4dxYt/JlyA9IpBKqDGvRrjzZuQ8j5LyflKDgNFRHeNMVmxNjTXkVsqEezd n8BBRXkXAgws
AACSlomYZhIpbCiActYSQ0dQbN0UW3R+kmbHwOEAArBJYuCrMqsYQUPAAHaL 9v/XJrh5RoIg
OPf8qdKgUADpu5uKeMJl1Ld3GjNrdIRx0tM9DqVDNEOvyoelVbXHbNcJ7fxY ixQSLEbhcQnR
DrqOEwQVAQGG6FQkjoXimhbDDtgkLjhmjurEOoTbaQk+as+STrgXHGDXEsQR 8zcPo/Tkj12b
wpfsLG+2ST7w7j5AymG1DABADAFAHAJALANAPARATAVAWOIzMlgZwlmlKuwW MHKnYasNggwd
Ka8z4NAIowcIwEGBGK4GiDsTSOPA8DPBBBEABBJBMNIe2TabWLegQUIfoo0B mj4CeiuT4dTA
YOKIYHWHMHSPUH2ryA2A+QK9U8kIoHeKaPcAiMwAIH4lsRwysM2H4HmHec0H wlsAQAiJiAbC
sNWHwHoxKAIAYJSysltCyKaATCgT6XdCzC3C7C+PdDE6WHwIoHnCcAjDeM7D XCaKtDfDFDJD
NDRDgN5CxC0HfC46TDrDCNqH5DyInD5D8NBCBCFCJCNCQ8iOdEknyHUHcJCA KryJCRzC+IlD
uNNEVDnEdDBFUXcIZD2H2PcAbB6Z5DkHmIYPcAqIlCUJlFkIpFqvbEkIYAIA RF/E/D2Kalsd
lChF+KkInGFFtGIHxGNGRB9GzG1G3G5G7G9G/HBHDHFHGNlAcNCliZyloJkH eG6LqFuFqLiE
4GWh6D4xSyQ1gGkBcQ8Ei3wAACyA0XGDkCuQSFI64CeEEheFGD6CQzmHmGwA AEkDobSE6ooJ
CF+LWBc9IAAEADyRu+cMzIctUDUVUDuGkAmxWLW9A5kVEL6nczWc4D8C4WKm yJICCLaFKEOv
QC0Bu1Awungj4z3FuJmFkDOimCe3omYQuh6EGG4hyCUAS2HJjJmm1JsI7JyK dJ4MYGGEyI4D
YEsnkBCAmTknkBwAAFIFiX+G+DpKNKQQvKUXtKa4CWqM/BggM++gQ/+H4Kob mKwJDB0PUT4A
SHNJhJkUPKpJvKvJ2taHCGmGOz+FOLKGwA+VmCCHy1ULQKVIQGyAACAHCvlK 9LBLEABLJLNL
QpEPzJDIjInIqLVIxI1I5I8AalsG6GSFsReFQeeFKG+sMD6CsJCCqC2D85kI 6GaRoC0/9HJO
TOVOXOZObOdOfOhOjOlOnOpOrOsZoOklfHPAgzS6YFBOEDM/y9EbMvQGEEOa YFIDMQSE1PGQ
SFWGEI4HbPSm/PYAAgODcBUJ8weQuE0ecPUwUog7iB4BSxSb+u2X6pwBQAIh AhEhIeeHkEeC
oKsHMa6CoA2n6FiCDAsPcd0CEAkWKCgGQoCDcBnFoEk+kLMUUFKWkKeKjAy7 LKCNCHmG6bkB
4BIQSAnIQAAFSDYBuVIGovHQ+LtREbzRLIhRQsodoWkCsAIFobmBA2MHUjqA q8oD0ACLSCSd
OAABgHVRrRuABRyhfR5R8AbD7E6NBLqTeRETmRNRnIgC6J1SSo6dqqiCS99Q 9RBSJRJRNSRR
UGwUaAMFUDaQM8E66DMccHaE0LKBaEYEaI6DoDmkjSk4DSoABStSxS0B6AKQ nP2ABP7QfQAj
xQFQI1jQOHuEWJCGAXCCuf9PGyMQUCiJCp6R+F/Q0zlKFOvVzV1V3V5V7V9V /WBWDWFWHWJW
KNaICIA5HO7X+AINB4RCQAk0gigAiIhCgA/AAoCgBQAYXkiQA6l8dgAFYO00 yUAALjQ8gAvY
8ACFIoM5lwAACGySAEizXcACM2DcABSW2lK3U0ZdMIQ3VYcQAJCqkAAXE+1w AhAkmQAICfRm
Q8l8ABuDYQ+IqUATGXkmABXjOAGsiiEABwd4Mn1jIAkBoM4FfNzemoMLkSyA A0TsNwBJJNKI
MzXksAAMrFEok+GmALMLoMmGaAFgZxkAGTcLldABdrxegBfL9gJPgwAxCS0A ADsYcFLnUeWt
C72SrAA3xMVMiCcvmc3nc/ocpzZGmS7JzQpIPmhcLqG0qHCTgmF6AEEZ7jb7 jc7rdwBeb3fQ
Bf8DsMMKgAmSEDgAaJxa19Pwa+LIeBtlCAAItu3IAN23rfuC4YAAUW7oqCoa WKMl6FKUpinK
gqSqFGMANgASQXvsN4JkiAB3P3AaJgAUwuowLZyrUtgAMm50bRvHEcx1HceR 7H0fyBIMhSHI
kiyNI8kSTJUlyZJsnSfKEoylKcqSrK0ryxLMtS3Lkuy9L8wTDMUxzJMszTPN E0zVNc2TbN03
zhOMoIEgkdoYhyIEQiR5rK+yNRkXy2xrC6miqb4AMcyDJIOyzMASzQhGadQA BMVgiAAJJDhD
RDHsjGtGGwUAAASFIwgAJ5ImU+5vhtTBIDMABrnurAUAQhE+ItPy0v0LQAFa KE/AAPIAFKLg
WIMfSDgMvQGWUEQfgAJAZJExTpMbTtFxyfBnUcGa1pyAD9hLPqM2FYljWRZV mWdaAkBKcYAC
6B1vOo6ouAAWJSEkAAnBaCKDW3btvs6/bmR8kjopQ6hBFizovBeB8VrOCwNg 1GgCVvclTWHY
tjgBZKDWWAFm5DZ9ohlW1crRQFBVvbl5XohAXXvfN936sRcD1b1M03RNPIUf FQ1HUtT3AWA3
XHlU/v1lqDWqFxLJueRo6bOWravrGs61reua7r2v7BsOxbHsmy7Ns+0bTtW1 7Ztu3bfuG4xv
OiCx1O6HoihVcWBlemRpUCsVIVNOK/bIAYCIQE28KBmnMAANFHiynieABhHc yAe3/oDLi7R4
AHKSJfswWAgvaX97mke5RgAFtbIPvddUBXpW3kjJ5k+AB9lgMAAYxHunvxTl FU/G2ArNbx5X
BcSK9qMPb9z3fex8fh124Q4y28PxYoURJhUmOwa3h4+B3CN2Dd+6DpOoTBpJ UM4W+I51ceb5
/dd530ddhvsZ/iifqgAeu9l7ZCXujiAACIVwHgAOTcq5cADmTKucc86BgjSG NK7f4c8uLUAr
lrao39uUIYRQjhJCWE0J4UQphVCuFkLYXQvhhDGGUM4aQ1S03ROxDW8J6b1B dlkIAAG+X2BI
HBX2fOGeM4olz7QABBGMGp9RODHAAfM8Qfg4RZAAAKVpU77IqDhXuEMQ5Qyp j3AAGBWqjCyl
nDCN9EzU1YCzc6AALa9RSjXJUFoFD8R3jDMwFMZ5p0UjkJKtZ4TP1tLcfGAC Lxn1xotLPHUg
0d48x7IVH2P8gRJiMAOAAV4+1ehuLCAAbouF9hSCSG8AA0gzCrAAPcSIIgAB YiVIwoZnwWpA
YRFF9j7n4I6LJJCOkdo8AAj1HyPwUJASCVMLFvhGkTIoJ+5oAA8xnFYE/KCK ko5SynlTKuVo
ABlgye2DU6cUiVRVITFeLMW3KBPkaGcEEPkTqBRU06QrUGpQff7Daf0/6AUB oFQOglBaDUHo
RQmhVC6GUNodP6HDdodJ5MrGt/c9kavAUOhMo5Bx1lfBeBYIYAAli3HKAAQx 2AAAvJtKsIIg
jVi+D6AAD5BxsCmLaUEbYABkIoAACob5WF5vBKiSsbgjnWD7M6FcFJN3ROUE +L0QYAAhgLFu
AADx5jAgAESKsR4AAcgMgMH8JKpgcEspQhUaYkjFyqUQPdRTrmgimaGFsqJU wACjCwPZgQsQ
uFqGkHYDIABai0j8HkPQjDq1cq9WCsQAKyVmrQHkCApzah0k6igtq/yKCZBe RgNAVBhAAH+H
UBdfa/yrsEAAX42QTAADMCxbipK7IbrzGgAAzq2AABmG97YeRYjgpQE6mqOz fEOiIaYk9jKv
1hrHWUuVaBDFxAAXACwAA7i/pgO4f9M5qTWX2A6zE9bNors9aC0VpAxj1pXS 0aVL6Y0zuKAC
m9OQt07p6V8G4EU+H0PsfgtQ957K2mDHOOocAADcH/V8EdD8HYPwhhHCWE8K YVwthfDGGcNY
bw5DOiKOW70UYAuERQZaqB3XqQcLgghS2wBeOwAAbAnyqO2YHBAtxKOlFyH9 ygkHRWLEiL2L
IXQKjLIyC4Kq+FTgADgGYlQkDXCxGu9sJ0liEDTFYHok4VRDo4ZnggMYTwpL xCoDkAA2hQB1
LkGEqBlBBCrKGH0Ki4xfCSlUEM9zMgg4IEeJ/LoNh5KiAaC4NK/BIGdFiG8z QvhBhGqoH7H+
SxejlOoAsXVMwcZsObm/OIVJcjzJIbUxkTVYBwA2YQSA0i4jCFvl0HoGmMaM 0cEPSBB3KaTF
QAAGw7dBaE0MMYAAYx0kcCeIeAZEgn3AAAKgQwTgAOuRsRQZOac15tIlpwAA fQoAKuqFTMYd
xY41IMEEMxahSCVUENeoWo9yZM1OADVOq9WwPA0rYd+WMj5Je25TJuT8o5TX 4CgjAuBBhYUw
9ohIZhIvbCiAd0QSQ0bW3HsoW2zdn4d4xxnjXG+Ocd49x/kHIeRcj5JyVJOH 0cYhbymgsg6x
zDpLWPsjAGwPsW2gjgfCfB3xmRoBEsQBB+EUd6/g5w/B5jviCPgigCAIkiAb 0RIo+B6D0d6A
xZvUCKdHjMAnnz0iFdG6QO/pWz+msXRyPznM1eeAR670WavO1R9d6gwDqfVe rpW7B0npfZen
pN7Qnwefa+284ABy7mA8uZAA5pzbk3jfHeP8h5HyXk/KeV8t5fzHmUm8oRvy qHnmvQeh9F6P
0npfTen9R6n1Xq/WethuQNuuIKJ8r9d7X23t/ce5917v3nvffe/+B8FJ3nEb ee+F8f5Hyflf
L+Z8353z/ofR+knD4hzvjfT+x9n7X2/ufd+99/8H4fxUN+qc36/4/0fp/V+v 9n7f3fv/h/H9
f5TKfn/l/f/H+f9f7/5/3/z/8ACGr+giT+0AMA0A8BEBMBUBcBkBsB0B0AYh
Re: Scriped Datasource and Parent/Child relationship [message #249341 is a reply to message #249339] Sun, 22 July 2007 09:21 Go to previous message
Eclipse UserFriend
Tom Schindl schrieb:
> Hi,
>
> But what I don't really understand is that I was able to pass an object
> to a subreport. I'll attach the projects.
>
> The strange thing is that the subreport always gets the last object as
> person parameter. So to me it seems that I can pass any type of Object
> to the subform which is a good thing but the problem is the object I
> want to pass (See the attached screenshot).
>

My current solution for now is to restore objects with a primary key
(e.g. "person_" + node.getId() ) and pass the person as a parameter to
the subform which can use the passed Object.

Tom

--
B e s t S o l u t i o n . at
------------------------------------------------------------ --------
Tom Schindl JFace-Committer
------------------------------------------------------------ --------
Previous Topic:"Source not found" for BIRT classes
Next Topic:high priority :Quarey problem in BIRT and thanks for Tianli
Goto Forum:
  


Current Time: Fri Jul 18 04:13:40 EDT 2025

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

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

Back to the top