Can IRQL change in CompletionRoutine?

Hi,
I have developed a USB driver.

My driver’s operation is that if an user set the BULK_START transfer flag,
the driver retrieves streaming data through a BULK pipe.
And in the completion routine, the driver writes the retrieved data to RingBuffer,
and send an IRP to get streaming data again until the user set BULK_STOP flag.
The data size(user supplied buffer) to be retrived can be changed from user.
When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.

My problem is:

When a user change data size from small to large, the system is crashed.
Change from large to small is okay.

The bugcheck code is
STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
DRIVER_IRQL_NOT_LESS_OR_EQUAL

From the SoftIce, I see the data in completion routine is not passed correctly(it’s garbage values)
and crashed in completion routine.

I think the IRQL is changed in the completion routine.
Can the IRQL be changed in the completion routine while the driver is working?
If so, how can I know the change and work around?

Regards,

Completion routines are called at the IRQL from which the driver below called IoCompleteRequest. So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL. The IRQL will not change during the course of the completion routine unless you do something to change it. For example, if your completion routine were called at PASSIVE_LEVEL and your code acquired a spinlock, the IRQL would would change to DISPATCH_LEVEL until the spinlock is released.

You MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL. Sounds like this might be your problem.


Bill McKenzie

“HyungJune Kim” wrote in message news:xxxxx@ntdev…
Hi,
I have developed a USB driver.

My driver’s operation is that if an user set the BULK_START transfer flag,
the driver retrieves streaming data through a BULK pipe.
And in the completion routine, the driver writes the retrieved data to RingBuffer,
and send an IRP to get streaming data again until the user set BULK_STOP flag.
The data size(user supplied buffer) to be retrived can be changed from user.
When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.

My problem is:

When a user change data size from small to large, the system is crashed.
Change from large to small is okay.

The bugcheck code is
STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
DRIVER_IRQL_NOT_LESS_OR_EQUAL

From the SoftIce, I see the data in completion routine is not passed correctly(it’s garbage values)
and crashed in completion routine.

I think the IRQL is changed in the completion routine.
Can the IRQL be changed in the completion routine while the driver is working?
If so, how can I know the change and work around?

Regards,

Yes certainly the IRQL can, and most likely will, be DISPATCH_LEVEL in your
completion routine. If you need to perform operations at < DISPATCH_LEVEL
from your completion routine then you must use worker threads, either your
own or system worker threads, to perform these operations at the correct
IRQL level.

-----Original Message-----
From: HyungJune Kim [mailto:xxxxx@hynix.com]
Sent: Thursday, March 20, 2003 3:00 AM
To: NT Developers Interest List
Subject: [ntdev] Can IRQL change in CompletionRoutine?

Hi,
I have developed a USB driver.

My driver’s operation is that if an user set the BULK_START transfer flag,
the driver retrieves streaming data through a BULK pipe.
And in the completion routine, the driver writes the retrieved data to
RingBuffer,
and send an IRP to get streaming data again until the user set BULK_STOP
flag.
The data size(user supplied buffer) to be retrived can be changed from user.
When the user change the size, the driver frees IRP, RingBuffer, URB and
reallocate them.

My problem is:

When a user change data size from small to large, the system is crashed.
Change from large to small is okay.

The bugcheck code is
STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
DRIVER_IRQL_NOT_LESS_OR_EQUAL

From the SoftIce, I see the data in completion routine is not passed
correctly(it’s garbage values)
and crashed in completion routine.

I think the IRQL is changed in the completion routine.
Can the IRQL be changed in the completion routine while the driver is
working?
If so, how can I know the change and work around?

Regards,

b???.???????&??'?ׯj??Dhuܬ???(?:.?˛???m??֛???zf???%y?ޞ?^?m=?b??(??
(

Despite the mentioned fact that a completion routine may get called at any IRLQ <= DISPATCH_LEVEL I think this buffer resizing process from usermode may cause bugchecks if it’s done incorrect.
What exactly happens when a user does this resizing ?
Did you accordingly adjust your MDL which covers this user buffer ?

Bugcheck code 0xD1doesn’t only mean that IRQL is too high but it indicates that your driver tried to access a memory address that has been paged out or, in most of the cases, that is otherwise completely invalid. This happens if you try to access a memory address that isn’t correctly mapped in the kernel mode address space.

Dietmar Jagonak

— Original Message —
From: “Bill McKenzie”
To: NT Developers Interest List
Sent: Thu, 20 Mar 2003 10:11:50 -0500

Completion routines are called at the IRQL from which the driver below called IoCompleteRequest.? So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL.? The IRQL will not change during the course of the completion routine unless you do something to change it.? For example, if your completion routine were called at PASSIVE_LEVEL and your code?acquired a spinlock, the IRQL would?would change to?DISPATCH_LEVEL until the spinlock is released.
?
You?MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL.? Sounds like this might be your problem.

Bill McKenzie ?

?“HyungJune Kim” wrote in message news:xxxxx@ntdev…
Hi,
I have?developed?a USB driver.
?
My?driver’s operation is that if an user?set the BULK_START transfer flag,
the driver retrieves streaming data through a BULK pipe.
And in the completion routine, the driver writes the?retrieved data to RingBuffer,
and send?an IRP to get streaming data again until the user set BULK_STOP flag.
The data size(user supplied buffer) to be retrived can be changed from user.
When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.
?
My problem is:
?
When a user change data size from small to large, the system is crashed.
Change from large to small is okay.
?
The bugcheck code is
STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
DRIVER_IRQL_NOT_LESS_OR_EQUAL
?
>From the SoftIce, I see?the data in completion routine is not passed correctly(it’s garbage?values)
and crashed in completion routine.
?
I think the IRQL is changed in the completion routine.
Can the IRQL be changed in the completion routine?while?the driver is working?
If so, how can I know the change and work around?
?
Regards,
?
?
?
?
?
?

You are currently subscribed to ntdev as: xxxxx@equisoft.de
To unsubscribe send a blank email to xxxxx@lists.osr.com

Thank you for all answers.

For Dietmar’s answer,
I don’t use the user buffer, user just pass the START flag and buffer size using DeviceIoControl.

My driver allocate TransferBuffer to get data from device and RingBuffer to convert the data. The memory is allocated to NonpagedPool.
User reads the RingBuffer.
In this case, the memory can be paged out?

----- Original Message -----
From: “EquiSoft DDev”
To: “NT Developers Interest List”
Sent: Friday, March 21, 2003 5:04 AM
Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?

> Despite the mentioned fact that a completion routine may get called at any IRLQ <= DISPATCH_LEVEL I think this buffer resizing process from usermode may cause bugchecks if it’s done incorrect.
> What exactly happens when a user does this resizing ?
> Did you accordingly adjust your MDL which covers this user buffer ?
>
> Bugcheck code 0xD1doesn’t only mean that IRQL is too high but it indicates that your driver tried to access a memory address that has been paged out or, in most of the cases, that is otherwise completely invalid. This happens if you try to access a memory address that isn’t correctly mapped in the kernel mode address space.
> –
> Dietmar Jagonak
>
> — Original Message —
> From: “Bill McKenzie”
> To: NT Developers Interest List
> Sent: Thu, 20 Mar 2003 10:11:50 -0500
>
> Completion routines are called at the IRQL from which the driver below called IoCompleteRequest.?So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL.?The IRQL will not change during the course of the completion routine unless you do something to change it.?For example, if your completion routine were called at PASSIVE_LEVEL and your code?acquired a spinlock, the IRQL would?would change to?DISPATCH_LEVEL until the spinlock is released.
> ?
> You?MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL.?Sounds like this might be your problem.
> –
> Bill McKenzie ?
>
> ?HyungJune Kim" wrote in message news:xxxxx@ntdev…
> Hi,
> I have?developed?a USB driver.
> ?
> My?driver’s operation is that if an user?set the BULK_START transfer flag,
> the driver retrieves streaming data through a BULK pipe.
> And in the completion routine, the driver writes the?retrieved data to RingBuffer,
> and send?an IRP to get streaming data again until the user set BULK_STOP flag.
> The data size(user supplied buffer) to be retrived can be changed from user.
> When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.
> ?
> My problem is:
> ?
> When a user change data size from small to large, the system is crashed.
> Change from large to small is okay.
> ?
> The bugcheck code is
> STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
> DRIVER_IRQL_NOT_LESS_OR_EQUAL
> ?
> >From the SoftIce, I see?the data in completion routine is not passed correctly(it’s garbage?values)
> and crashed in completion routine.
> ?
> I think the IRQL is changed in the completion routine.
> Can the IRQL be changed in the completion routine?while?the driver is working?
> If so, how can I know the change and work around?
> ?
> Regards,
> ?
> ?
> ?
> ?
> ?
> ?
> —
> You are currently subscribed to ntdev as: xxxxx@equisoft.de
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@hynix.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>

My guess is that the you are touching the just released ring buffer allocation. To debug this, why not store the last freed ring buffer pointer in your extension and when you bugcheck, see if the faulting memory location was within the freed buffer.

I am assuming that you are synchronizing reads / writes / reallocations to the ring buffer with a spinlock as well, otherwise that should be your first starting point.

D

This posting is provided “AS IS” with no warranties, and confers no rights

-----Original Message-----
From: HyungJune Kim [mailto:xxxxx@hynix.com]
Sent: Thursday, March 20, 2003 7:09 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?

Thank you for all answers.

For Dietmar’s answer,
I don’t use the user buffer, user just pass the START flag and buffer size using DeviceIoControl.

My driver allocate TransferBuffer to get data from device and RingBuffer to convert the data. The memory is allocated to NonpagedPool.
User reads the RingBuffer.
In this case, the memory can be paged out?

----- Original Message -----
From: “EquiSoft DDev”
To: “NT Developers Interest List”
Sent: Friday, March 21, 2003 5:04 AM
Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?

> Despite the mentioned fact that a completion routine may get called at any IRLQ <= DISPATCH_LEVEL I think this buffer resizing process from usermode may cause bugchecks if it’s done incorrect.
> What exactly happens when a user does this resizing ?
> Did you accordingly adjust your MDL which covers this user buffer ?
>
> Bugcheck code 0xD1doesn’t only mean that IRQL is too high but it indicates that your driver tried to access a memory address that has been paged out or, in most of the cases, that is otherwise completely invalid. This happens if you try to access a memory address that isn’t correctly mapped in the kernel mode address space.
> –
> Dietmar Jagonak
>
> — Original Message —
> From: “Bill McKenzie”
> To: NT Developers Interest List
> Sent: Thu, 20 Mar 2003 10:11:50 -0500
>
> Completion routines are called at the IRQL from which the driver below called IoCompleteRequest.?So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL.?The IRQL will not change during the course of the completion routine unless you do something to change it.?For example, if your completion routine were called at PASSIVE_LEVEL and your code?acquired a spinlock, the IRQL would?would change to?DISPATCH_LEVEL until the spinlock is released.
> ?
> You?MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL.?Sounds like this might be your problem.
> –
> Bill McKenzie ?
>
> ?HyungJune Kim" wrote in message news:xxxxx@ntdev…
> Hi,
> I have?developed?a USB driver.
> ?
> My?driver’s operation is that if an user?set the BULK_START transfer flag,
> the driver retrieves streaming data through a BULK pipe.
> And in the completion routine, the driver writes the?retrieved data to RingBuffer,
> and send?an IRP to get streaming data again until the user set BULK_STOP flag.
> The data size(user supplied buffer) to be retrived can be changed from user.
> When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.
> ?
> My problem is:
> ?
> When a user change data size from small to large, the system is crashed.
> Change from large to small is okay.
> ?
> The bugcheck code is
> STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
> DRIVER_IRQL_NOT_LESS_OR_EQUAL
> ?
> >From the SoftIce, I see?the data in completion routine is not passed correctly(it’s garbage?values)
> and crashed in completion routine.
> ?
> I think the IRQL is changed in the completion routine.
> Can the IRQL be changed in the completion routine?while?the driver is working?
> If so, how can I know the change and work around?
> ?
> Regards,
> ?
> ?
> ?
> ?
> ?
> ?
> —
> You are currently subscribed to ntdev as: xxxxx@equisoft.de
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@hynix.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
b???v?j???r???i?j??u?

Sure, memory allocated from NonPagedPool?will never be paged out !

But if you (your driver) happens to address memory BEHIND any allocated buffer at IRQL=DISPATCH_LEVEL the system won’t know if the page isn’t there because it has been paged out or because it has neve been allocated. The exception handler for paged memory who can decide where the addressed memory may have been gone won’t be triggered from code running at IRQL >= DISPATCH_LEVEL.

?

The matter is, what does your driver exactly do when your user demands for a larger buffer. Do you really allocate a new buffer fitting in size or do you have a maximum sized buffer which will only be used up to the size the user wanted ?

In either case there must be an MDL which provides your user with a valid virtual address to access you driver allocated buffer. And this MDL has always to be adjusted to fit with the size you want the user to able to address.

Dietmar Jagonak

?

?

— Original Message —

From: “HyungJune Kim”

To: NT Developers Interest List

Cc:

Sent: Fri, 21 Mar 2003 12:08:54 +0900

Thank you for all answers.

?

For Dietmar’s answer,

I don’t use the user buffer, user just pass the START flag and buffer size using DeviceIoControl.

?

My driver allocate TransferBuffer to get data from device and RingBuffer to convert the data. The memory is allocated to NonpagedPool.

User reads the RingBuffer.

In this case, the memory can be paged out?

?

?

?

?

----- Original Message -----

From: “EquiSoft DDev”

To: “NT Developers Interest List”

Sent: Friday, March 21, 2003 5:04 AM

Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?

?

?

>?Despite the mentioned fact that a completion routine may get called at any IRLQ <= DISPATCH_LEVEL I think this buffer resizing process from usermode may cause bugchecks if it’s done incorrect.

>?What exactly happens when a user does this resizing ?

>?Did you accordingly adjust your MDL which covers this user buffer ?

>

>?Bugcheck code 0xD1doesn’t only mean that IRQL is too high but it indicates that your driver tried to access a memory address that has been paged out or, in most of the cases, that is otherwise completely invalid. This happens if you try to access a memory address that isn’t correctly mapped in the kernel mode address space.

>?–

>?Dietmar Jagonak

>

>?— Original Message —

>?From: “Bill McKenzie”

>?To: NT Developers Interest List

>?Sent: Thu, 20 Mar 2003 10:11:50 -0500

>

>?Completion routines are called at the IRQL from which the driver below called IoCompleteRequest.?So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL.?The IRQL will not change during the course of the completion routine unless you do something to change it.?For example, if your completion routine were called at PASSIVE_LEVEL and your code?acquired a spinlock, the IRQL would?would change to?DISPATCH_LEVEL until the spinlock is released.

>??

>?You?MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL.?Sounds like this might be your problem.

>?–

>?Bill McKenzie ?

>

>??HyungJune Kim" ?wrote in message news:xxxxx@ntdev…

>?Hi,

>?I have?developed?a USB driver.

>??

>?My?driver’s operation is that if an user?set the BULK_START transfer flag,

>?the driver retrieves streaming data through a BULK pipe.

>?And in the completion routine, the driver writes the?retrieved data to RingBuffer,

>?and send?an IRP to get streaming data again until the user set BULK_STOP flag.

>?The data size(user supplied buffer) to be retrived can be changed from user.

>?When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.

>??

>?My problem is:

>??

>?When a user change data size from small to large, the system is crashed.

>?Change from large to small is okay.

>??

>?The bugcheck code is

>?STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)

>?DRIVER_IRQL_NOT_LESS_OR_EQUAL

>??

>?>From the SoftIce, I see?the data in completion routine is not passed correctly(it’s garbage?values)

>?and crashed in completion routine.

>??

>?I think the IRQL is changed in the completion routine.

>?Can the IRQL be changed in the completion routine?while?the driver is working?

>?If so, how can I know the change and work around?

>??

>?Regards,

>??

>??

>??

>??

>??

>??

>?—

>?You are currently subscribed to ntdev as: xxxxx@equisoft.de

>?To unsubscribe send a blank email to xxxxx@lists.osr.com

>

>

>

>?—

>?You are currently subscribed to ntdev as: xxxxx@hynix.com

>?To unsubscribe send a blank email to xxxxx@lists.osr.com

>

>

?

Thanks for answer.

The system crash in the completion routine is because of the waiting process at DISPATCH_LEVEL.

But another bugcheck code - PAGE_FAULT_IN_NONPAGED_AREA - occurs sometimes,
even though I don’t change the buffer size.

As you comment, my driver’s work is:

if an user sends START flag specifying to buffer size, my driver allocate a buffer with passed size and send 2 subirps to read streaming data.
And then the user read the buffer using DeviceIoControl(…). At this, user-allocated buffer is used. use MDL in driver, you right.

I looked into size checking in READ_BUFFER routine in driver. however, I cannot find any suspicious things.
The PAGE_FAULT_IN_NONPAGED_AREA error occurs though user doesn’t change the buffer size.
I think the driver refers to the same memory address( MmGetSystemAddressForMdl(Irp->MdlAddress) ) while user doesn’t reallocate the buffer.

Any comment would be helpful…

----- Original Message -----
From: EquiSoft DDev
To: NT Developers Interest List
Sent: Monday, March 24, 2003 4:39 PM
Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?

Sure, memory allocated from NonPagedPool?will never be paged out !
But if you (your driver) happens to address memory BEHIND any allocated buffer at IRQL=DISPATCH_LEVEL the system won’t know if the page isn’t there because it has been paged out or because it has neve been allocated. The exception handler for paged memory who can decide where the addressed memory may have been gone won’t be triggered from code running at IRQL >= DISPATCH_LEVEL.
?/FONT>
The matter is, what does your driver exactly do when your user demands for a larger buffer. Do you really allocate a new buffer fitting in size or do you have a maximum sized buffer which will only be used up to the size the user wanted ?
In either case there must be an MDL which provides your user with a valid virtual address to access you driver allocated buffer. And this MDL has always to be adjusted to fit with the size you want the user to able to address.

Dietmar Jagonak
?/FONT>
?/FONT>
— Original Message —
From: “HyungJune Kim”
To: NT Developers Interest List
Cc:
Sent: Fri, 21 Mar 2003 12:08:54 +0900
Thank you for all answers.
?/FONT>
For Dietmar’s answer,
I don’t use the user buffer, user just pass the START flag and buffer size using DeviceIoControl.
?/FONT>
My driver allocate TransferBuffer to get data from device and RingBuffer to convert the data. The memory is allocated to NonpagedPool.
User reads the RingBuffer.
In this case, the memory can be paged out?
?/FONT>
?/FONT>
?/FONT>
?/FONT>
----- Original Message -----
From: “EquiSoft DDev”
To: “NT Developers Interest List”
Sent: Friday, March 21, 2003 5:04 AM
Subject: [ntdev] Re: Can IRQL change in CompletionRoutine?
?/FONT>
?/FONT>
>?Despite the mentioned fact that a completion routine may get called at any IRLQ <= DISPATCH_LEVEL I think this buffer resizing process from usermode may cause bugchecks if it’s done incorrect.
>?What exactly happens when a user does this resizing ?
>?Did you accordingly adjust your MDL which covers this user buffer ?
>
>?Bugcheck code 0xD1doesn’t only mean that IRQL is too high but it indicates that your driver tried to access a memory address that has been paged out or, in most of the cases, that is otherwise completely invalid. This happens if you try to access a memory address that isn’t correctly mapped in the kernel mode address space.
>?-
>?Dietmar Jagonak
>
>?-- Original Message —
>?From: “Bill McKenzie”
>?To: NT Developers Interest List
>?Sent: Thu, 20 Mar 2003 10:11:50 -0500
>
>?Completion routines are called at the IRQL from which the driver below called IoCompleteRequest.?So, your completion routine can get called at any IRQL <= DISPATCH_LEVEL.?The IRQL will not change during the course of the completion routine unless you do something to change it.?For example, if your completion routine were called at PASSIVE_LEVEL and your code?acquired a spinlock, the IRQL would?would change to?DISPATCH_LEVEL until the spinlock is released.
>?
>?You?MUST ensure that any code that executes in a completion routine can execute at DISPATCH_LEVEL IRQL as your completion routine can be called at that IRQL.?Sounds like this might be your problem.
>?-
>?Bill McKenzie ?
>
>?HyungJune Kim" ?wrote in message news:xxxxx@ntdev…
>?Hi,
>?I have?developed?a USB driver.
>?
>?My?driver’s operation is that if an user?set the BULK_START transfer flag,
>?the driver retrieves streaming data through a BULK pipe.
>?And in the completion routine, the driver writes the?retrieved data to RingBuffer,
>?and send?an IRP to get streaming data again until the user set BULK_STOP flag.
>?The data size(user supplied buffer) to be retrived can be changed from user.
>?When the user change the size, the driver frees IRP, RingBuffer, URB and reallocate them.
>?
>?My problem is:
>?
>?When a user change data size from small to large, the system is crashed.
>?Change from large to small is okay.
>?
>?The bugcheck code is
>?STOP : 0x000000D1( 0xFFBDF000, 2, 0, 0xBEFD837E)
>?DRIVER_IRQL_NOT_LESS_OR_EQUAL
>?
>?gt;From the SoftIce, I see?the data in completion routine is not passed correctly(it’s garbage?values)
>?and crashed in completion routine.
>?
>?I think the IRQL is changed in the completion routine.
>?Can the IRQL be changed in the completion routine?while?the driver is working?
>?If so, how can I know the change and work around?
>?
>?Regards,
>?
>?
>?
>?
>?
>?
>?–
>?You are currently subscribed to ntdev as: xxxxx@equisoft.de
>?To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>?–
>?You are currently subscribed to ntdev as: xxxxx@hynix.com
>?To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
?/FONT>

You are currently subscribed to ntdev as: xxxxx@hynix.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

to “HyungJune Kim”

can you send this without mime?
So I may get a chance to read it.
thanks.

Dietmar Hoppe-Jagonak

> This is a multi-part message in MIME format.
>
> ------=_NextPart_000_0003_01C2F49D.451349D0
> Content-Type: text/plain;
> charset=“ks_c_5601-1987”
> Content-Transfer-Encoding: base64
>
> VGhhbmtzIGZvciBhbnN3ZXIuDQoNClRoZSBzeXN0ZW0gY3Jhc2ggaW4gdGhlIGNvbXBsZXRpb24g
> cm91dGluZSBpcyBiZWNhdXNlIG9mIHRoZSB3YWl0aW5nIHByb2Nlc3MgYXQgRElTUEFUQ0hfTEVW
> RUwuDQoNCkJ1dCBhbm90aGVyIGJ1Z2NoZWNrIGNvZGUgLSBQQUdFX0ZBVUxUX0lOX05PTlBBR0VE
> X0FSRUEgLSBvY2N1cnMgc29tZXRpbWVzLCANCmV2ZW4gdGhvdWdoIEkgZG9uJ3QgY2hhbmdlIHRo
> ZSBidWZmZXIgc2l6ZS4gDQoNCkFzIHlvdSBjb21tZW50LCBteSBkcml2ZXIncyB3b3JrIGlzOg0K
> DQppZiBhbiB1c2VyIHNlbmRzIFNUQVJUIGZsYWcgc3BlY2lmeWluZyB0byBidWZmZXIgc2l6ZSwg
> bXkgZHJpdmVyIGFsbG9jYXRlIGEgYnVmZmVyIHdpdGggcGFzc2VkIHNpemUgYW5kIHNlbmQgMiBz
> dWJpcnBzIHRvIHJlYWQgc3RyZWFtaW5nIGRhdGEuDQpBbmQgdGhlbiB0aGUgdXNlciByZWFkIHRo
> ZSBidWZmZXIgdXNpbmcgRGV2aWNlSW9Db250cm9sKC4uLikuIEF0IHRoaXMsIHVzZXItYWxsb2Nh
> dGVkIGJ1ZmZlciBpcyB1c2VkLiB1c2UgTURMIGluIGRyaXZlciwgeW91IHJpZ2h0Lg0KDQpJIGxv
> b2tlZCBpbnRvIHNpemUgY2hlY2tpbmcgaW4gUkVBRF9CVUZGRVIgcm91dGluZSBpbiBkcml2ZXIu
> IGhvd2V2ZXIsIEkgY2Fubm90IGZpbmQgYW55IHN1c3BpY2lvdXMgdGhpbmdzLiANClRoZSBQQUdF
> X0ZBVUxUX0lOX05PTlBBR0VEX0FSRUEgZXJyb3Igb2NjdXJzIHRob3VnaCB1c2VyIGRvZXNuJ3Qg
> Y2hhbmdlIHRoZSBidWZmZXIgc2l6ZS4NCkkgdGhpbmsgdGhlIGRyaXZlciByZWZlcnMgdG8gdGhl
> IHNhbWUgbWVtb3J5IGFkZHJlc3MoIE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbChJcnAtPk1kbEFk
> ZHJlc3MpICkgd2hpbGUgdXNlciBkb2Vzbid0IHJlYWxsb2NhdGUgdGhlIGJ1ZmZlci4gIA0KDQpB
> bnkgY29tbWVudCB3b3VsZCBiZSBoZWxwZnVsLi4uIA0KDQoNCiAgLS0tLS0gT3JpZ2luYWwgTWVz
> c2FnZSAtLS0tLSANCiAgRnJvbTogRXF1aVNvZnQgRERldiANCiAgVG86IE5UIERldmVsb3BlcnMg
> SW50ZXJlc3QgTGlzdCANCiAgU2VudDogTW9uZGF5LCBNYXJjaCAyNCwgMjAwMyA0OjM5IFBNDQog
> IFN1YmplY3Q6IFtudGRldl0gUmU6IENhbiBJUlFMIGNoYW5nZSBpbiBDb21wbGV0aW9uUm91dGlu
> ZT8NCg0KDQogIFN1cmUsIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSBOb25QYWdlZFBvb2ygd2lsbCBu
> ZXZlciBiZSBwYWdlZCBvdXQgIQ0KICBCdXQgaWYgeW91ICh5b3VyIGRyaXZlcikgaGFwcGVucyB0
> byBhZGRyZXNzIG1lbW9yeSBCRUhJTkQgYW55IGFsbG9jYXRlZCBidWZmZXIgYXQgSVJRTD1ESVNQ
> QVRDSF9MRVZFTCB0aGUgc3lzdGVtIHdvbid0IGtub3cgaWYgdGhlIHBhZ2UgaXNuJ3QgdGhlcmUg
> YmVjYXVzZSBpdCBoYXMgYmVlbiBwYWdlZCBvdXQgb3IgYmVjYXVzZSBpdCBoYXMgbmV2ZSBiZWVu
> IGFsbG9jYXRlZC4gVGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciBwYWdlZCBtZW1vcnkgd2hvIGNh
> biBkZWNpZGUgd2hlcmUgdGhlIGFkZHJlc3NlZCBtZW1vcnkgbWF5IGhhdmUgYmVlbiBnb25lIHdv
> bid0IGJlIHRyaWdnZXJlZCBmcm9tIGNvZGUgcnVubmluZyBhdCBJUlFMID49IERJU1BBVENIX0xF
> VkVMLg0KICA/L0ZPTlQ+DQogIFRoZSBtYXR0ZXIgaXMsIHdoYXQgZG9lcyB5b3VyIGRyaXZlciBl
> eGFjdGx5IGRvIHdoZW4geW91ciB1c2VyIGRlbWFuZHMgZm9yIGEgbGFyZ2VyIGJ1ZmZlci4gRG8g
> eW91IHJlYWxseSBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgZml0dGluZyBpbiBzaXplIG9yIGRvIHlv
> dSBoYXZlIGEgbWF4aW11bSBzaXplZCBidWZmZXIgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgdXAg
> dG8gdGhlIHNpemUgdGhlIHVzZXIgd2FudGVkID8NCiAgSW4gZWl0aGVyIGNhc2UgdGhlcmUgbXVz
> dCBiZSBhbiBNREwgd2hpY2ggcHJvdmlkZXMgeW91ciB1c2VyIHdpdGggYSB2YWxpZCB2aXJ0dWFs
> IGFkZHJlc3MgdG8gYWNjZXNzIHlvdSBkcml2ZXIgYWxsb2NhdGVkIGJ1ZmZlci4gQW5kIHRoaXMg
> TURMIGhhcyBhbHdheXMgdG8gYmUgYWRqdXN0ZWQgdG8gZml0IHdpdGggdGhlIHNpemUgeW91IHdh
> bnQgdGhlIHVzZXIgdG8gYWJsZSB0byBhZGRyZXNzLg0KICAtLQ0KICBEaWV0bWFyIEphZ29uYWsN
> CiAgPy9GT05UPg0KICA/L0ZPTlQ+DQogIC0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLQ0KICBGcm9t
> OiAiSHl1bmdKdW5lIEtpbSIgPGh5dW5nanVuZS5raW1AaHluaXguY29tPg0KICBUbzogTlQgRGV2
> ZWxvcGVycyBJbnRlcmVzdCBMaXN0IDxudGRldkBsaXN0cy5vc3IuY29tPg0KICBDYzoNCiAgU2Vu
> dDogRnJpLCAyMSBNYXIgMjAwMyAxMjowODo1NCArMDkwMA0KICBUaGFuayB5b3UgZm9yIGFsbCBh
> bnN3ZXJzLg0KICA/L0ZPTlQ+DQogIEZvciBEaWV0bWFyJ3MgYW5zd2VyLA0KICBJIGRvbid0IHVz
> ZSB0aGUgdXNlciBidWZmZXIsIHVzZXIganVzdCBwYXNzIHRoZSBTVEFSVCBmbGFnIGFuZCBidWZm
> ZXIgc2l6ZSB1c2luZyBEZXZpY2VJb0NvbnRyb2wuDQogID8vRk9OVD4NCiAgTXkgZHJpdmVyIGFs
> bG9jYXRlIFRyYW5zZmVyQnVmZmVyIHRvIGdldCBkYXRhIGZyb20gZGV2aWNlIGFuZCBSaW5nQnVm
> ZmVyIHRvIGNvbnZlcnQgdGhlIGRhdGEuIFRoZSBtZW1vcnkgaXMgYWxsb2NhdGVkIHRvIE5vbnBh
> Z2VkUG9vbC4NCiAgVXNlciByZWFkcyB0aGUgUmluZ0J1ZmZlci4NCiAgSW4gdGhpcyBjYXNlLCB0
> aGUgbWVtb3J5IGNhbiBiZSBwYWdlZCBvdXQ/DQogID8vRk9OVD4NCiAgPy9GT05UPg0KICA/L0ZP
> TlQ+DQogID8vRk9OVD4NCiAgLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQ0KICBGcm9tOiAi
> RXF1aVNvZnQgRERldiIgPGRkZXZAZXF1aXNvZnQuZGU+DQogIFRvOiAiTlQgRGV2ZWxvcGVycyBJ
> bnRlcmVzdCBMaXN0IiA8bnRkZXZAbGlzdHMub3NyLmNvbT4NCiAgU2VudDogRnJpZGF5LCBNYXJj
> aCAyMSwgMjAwMyA1OjA0IEFNDQogIFN1YmplY3Q6IFtudGRldl0gUmU6IENhbiBJUlFMIGNoYW5n
> ZSBpbiBDb21wbGV0aW9uUm91dGluZT8NCiAgPy9GT05UPg0KICA/L0ZPTlQ+DQogID6gRGVzcGl0
> ZSB0aGUgbWVudGlvbmVkIGZhY3QgdGhhdCBhIGNvbXBsZXRpb24gcm91dGluZSBtYXkgZ2V0IGNh
> bGxlZCBhdCBhbnkgSVJMUSA8PSBESVNQQVRDSF9MRVZFTCBJIHRoaW5rIHRoaXMgYnVmZmVyIHJl
> c2l6aW5nIHByb2Nlc3MgZnJvbSB1c2VybW9kZSBtYXkgY2F1c2UgYnVnY2hlY2tzIGlmIGl0J3Mg
> ZG9uZSBpbmNvcnJlY3QuDQogID6gV2hhdCBleGFjdGx5IGhhcHBlbnMgd2hlbiBhIHVzZXIgZG9l
> cyB0aGlzIHJlc2l6aW5nID8NCiAgPqBEaWQgeW91IGFjY29yZGluZ2x5IGFkanVzdCB5b3VyIE1E
> TCB3aGljaCBjb3ZlcnMgdGhpcyB1c2VyIGJ1ZmZlciA/DQogID4NCiAgPqBCdWdjaGVjayBjb2Rl
> IDB4RDFkb2Vzbid0IG9ubHkgbWVhbiB0aGF0IElSUUwgaXMgdG9vIGhpZ2ggYnV0IGl0IGluZGlj
> YXRlcyB0aGF0IHlvdXIgZHJpdmVyIHRyaWVkIHRvIGFjY2VzcyBhIG1lbW9yeSBhZGRyZXNzIHRo
> YXQgaGFzIGJlZW4gcGFnZWQgb3V0IG9yLCBpbiBtb3N0IG9mIHRoZSBjYXNlcywgdGhhdCBpcyBv
> dGhlcndpc2UgY29tcGxldGVseSBpbnZhbGlkLiBUaGlzIGhhcHBlbnMgaWYgeW91IHRyeSB0byBh
> Y2Nlc3MgYSBtZW1vcnkgYWRkcmVzcyB0aGF0IGlzbid0IGNvcnJlY3RseSBtYXBwZWQgaW4gdGhl
> IGtlcm5lbCBtb2RlIGFkZHJlc3Mgc3BhY2UuDQogID4/LQ0KICA+oERpZXRtYXIgSmFnb25haw0K
> ICA+DQogID4/LS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0NCiAgPqBGcm9tOiAiQmlsbCBNY0tlbnpp
> ZSIgPGJpbGwubWNrZW56aWVAY29tcHV3YXJlLmNvbT4NCiAgPqBUbzogTlQgRGV2ZWxvcGVycyBJ
> bnRlcmVzdCBMaXN0IDxudGRldkBsaXN0cy5vc3IuY29tPg0KICA+oFNlbnQ6IFRodSwgMjAgTWFy
> IDIwMDMgMTA6MTE6NTAgLTA1MDANCiAgPg0KICA+oENvbXBsZXRpb24gcm91dGluZXMgYXJlIGNh
> bGxlZCBhdCB0aGUgSVJRTCBmcm9tIHdoaWNoIHRoZSBkcml2ZXIgYmVsb3cgY2FsbGVkIElvQ29t
> cGxldGVSZXF1ZXN0Lj9TbywgeW91ciBjb21wbGV0aW9uIHJvdXRpbmUgY2FuIGdldCBjYWxsZWQg
> YXQgYW55IElSUUwgPD0gRElTUEFUQ0hfTEVWRUwuP1RoZSBJUlFMIHdpbGwgbm90IGNoYW5nZSBk
> dXJpbmcgdGhlIGNvdXJzZSBvZiB0aGUgY29tcGxldGlvbiByb3V0aW5lIHVubGVzcyB5b3UgZG8g
> c29tZXRoaW5nIHRvIGNoYW5nZSBpdC4/Rm9yIGV4YW1wbGUsIGlmIHlvdXIgY29tcGxldGlvbiBy
> b3V0aW5lIHdlcmUgY2FsbGVkIGF0IFBBU1NJVkVfTEVWRUwgYW5kIHlvdXIgY29kZaBhY3F1aXJl
> ZCBhIHNwaW5sb2NrLCB0aGUgSVJRTCB3b3VsZKB3b3VsZCBjaGFuZ2UgdG+gRElTUEFUQ0hfTEVW
> RUwgdW50aWwgdGhlIHNwaW5sb2NrIGlzIHJlbGVhc2VkLg0KICA+Pw0KICA+oFlvdaBNVVNUIGVu
> c3VyZSB0aGF0IGFueSBjb2RlIHRoYXQgZXhlY3V0ZXMgaW4gYSBjb21wbGV0aW9uIHJvdXRpbmUg
> Y2FuIGV4ZWN1dGUgYXQgRElTUEFUQ0hfTEVWRUwgSVJRTCBhcyB5b3VyIGNvbXBsZXRpb24gcm91
> dGluZSBjYW4gYmUgY2FsbGVkIGF0IHRoYXQgSVJRTC4/U291bmRzIGxpa2UgdGhpcyBtaWdodCBi
> ZSB5b3VyIHByb2JsZW0uDQogID4/LQ0KICA+oEJpbGwgTWNLZW56aWUgPw0KICA+DQogID4/SHl1
> bmdKdW5lIEtpbSIgPGh5dW5nanVuZS5raW1AaHluaXguY29tPqB3cm90ZSBpbiBtZXNzYWdlIG5l
> d3M6NDE3MjRAbnRkZXYuLi4NCiAgPqBIaSwNCiAgPqBJIGhhdmWgZGV2ZWxvcGVkoGEgVVNCIGRy
> aXZlci4NCiAgPj8NCiAgPqBNeaBkcml2ZXIncyBvcGVyYXRpb24gaXMgdGhhdCBpZiBhbiB1c2Vy
> oHNldCB0aGUgQlVMS19TVEFSVCB0cmFuc2ZlciBmbGFnLA0KICA+oHRoZSBkcml2ZXIgcmV0cmll
> dmVzIHN0cmVhbWluZyBkYXRhIHRocm91Z2ggYSBCVUxLIHBpcGUuDQogID6gQW5kIGluIHRoZSBj
> b21wbGV0aW9uIHJvdXRpbmUsIHRoZSBkcml2ZXIgd3JpdGVzIHRoZaByZXRyaWV2ZWQgZGF0YSB0
> byBSaW5nQnVmZmVyLA0KICA+oGFuZCBzZW5koGFuIElSUCB0byBnZXQgc3RyZWFtaW5nIGRhdGEg
> YWdhaW4gdW50aWwgdGhlIHVzZXIgc2V0IEJVTEtfU1RPUCBmbGFnLg0KICA+oFRoZSBkYXRhIHNp
> emUodXNlciBzdXBwbGllZCBidWZmZXIpIHRvIGJlIHJldHJpdmVkIGNhbiBiZSBjaGFuZ2VkIGZy
> b20gdXNlci4NCiAgPqBXaGVuIHRoZSB1c2VyIGNoYW5nZSB0aGUgc2l6ZSwgdGhlIGRyaXZlciBm
> cmVlcyBJUlAsIFJpbmdCdWZmZXIsIFVSQiBhbmQgcmVhbGxvY2F0ZSB0aGVtLg0KICA+Pw0KICA+
> oE15IHByb2JsZW0gaXM6DQogID4/DQogID6gV2hlbiBhIHVzZXIgY2hhbmdlIGRhdGEgc2l6ZSBm
> cm9tIHNtYWxsIHRvIGxhcmdlLCB0aGUgc3lzdGVtIGlzIGNyYXNoZWQuDQogID6gQ2hhbmdlIGZy
> b20gbGFyZ2UgdG8gc21hbGwgaXMgb2theS4NCiAgPj8NCiAgPqBUaGUgYnVnY2hlY2sgY29kZSBp
> cw0KICA+oFNUT1AgOiAweDAwMDAwMEQxKCAweEZGQkRGMDAwLCAyLCAwLCAweEJFRkQ4MzdFKQ0K
> ICA+oERSSVZFUl9JUlFMX05PVF9MRVNTX09SX0VRVUFMDQogID4/DQogID4/Z3Q7RnJvbSB0aGUg
> U29mdEljZSwgSSBzZWWgdGhlIGRhdGEgaW4gY29tcGxldGlvbiByb3V0aW5lIGlzIG5vdCBwYXNz
> ZWQgY29ycmVjdGx5KGl0J3MgZ2FyYmFnZaB2YWx1ZXMpDQogID6gYW5kIGNyYXNoZWQgaW4gY29t
> cGxldGlvbiByb3V0aW5lLg0KICA+Pw0KICA+oEkgdGhpbmsgdGhlIElSUUwgaXMgY2hhbmdlZCBp
> biB0aGUgY29tcGxldGlvbiByb3V0aW5lLg0KICA+oENhbiB0aGUgSVJRTCBiZSBjaGFuZ2VkIGlu
> IHRoZSBjb21wbGV0aW9uIHJvdXRpbmWgd2hpbGWgdGhlIGRyaXZlciBpcyB3b3JraW5nPw0KICA+
> oElmIHNvLCBob3cgY2FuIEkga25vdyB0aGUgY2hhbmdlIGFuZCB3b3JrIGFyb3VuZD8NCiAgPj8N
> CiAgPqBSZWdhcmRzLA0KICA+Pw0KICA+Pw0KICA+Pw0KICA+Pw0KICA+Pw0KICA+Pw0KICA+Py0t
> DQogID6gWW91IGFyZSBjdXJyZW50bHkgc3Vic2NyaWJlZCB0byBudGRldiBhczogZGRldkBlcXVp
> c29mdC5kZQ0KICA+oFRvIHVuc3Vic2NyaWJlIHNlbmQgYSBibGFuayBlbWFpbCB0byBsZWF2ZS1u
> dGRldi04MDZPQGxpc3RzLm9zci5jb20NCiAgPg0KICA+DQogID4NCiAgPj8tLQ0KICA+oFlvdSBh
> cmUgY3VycmVudGx5IHN1YnNjcmliZWQgdG8gbnRkZXYgYXM6IGh5dW5nanVuZS5raW1AaHluaXgu
> Y29tDQogID6gVG8gdW5zdWJzY3JpYmUgc2VuZCBhIGJsYW5rIGVtYWlsIHRvIGxlYXZlLW50ZGV2
> LTgwNk9AbGlzdHMub3NyLmNvbQ0KICA+DQogID4NCiAgPy9GT05UPg0KICAtLS0NCiAgWW91IGFy
> ZSBjdXJyZW50bHkgc3Vic2NyaWJlZCB0byBudGRldiBhczogaHl1bmdqdW5lLmtpbUBoeW5peC5j
> b20NCiAgVG8gdW5zdWJzY3JpYmUgc2VuZCBhIGJsYW5rIGVtYWlsIHRvIGxlYXZlLW50ZGV2LTgw
> Nk9AbGlzdHMub3NyLmNvbSANCg==
>
> ------=_NextPart_000_0003_01C2F49D.451349D0
> Content-Type: text/html;
> charset=“ks_c_5601-1987”
> Content-Transfer-Encoding: base64
>
> PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
> L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
> dD0idGV4dC9odG1sOyBjaGFyc2V0PWtzX2NfNTYwMS0xOTg3Ij4NCjxNRVRBIGNvbnRlbnQ9Ik1T
> SFRNTCA2LjAwLjI2MDAuMCIgbmFtZT1HRU5FUkFUT1I+DQo8U1RZTEU+PC9TVFlMRT4NCjwvSEVB
> RD4NCjxCT0RZIGJnQ29sb3I9I2ZmZmZmZj4NCjxESVY+PEZPTlQgc2l6ZT0yPlRoYW5rcyBmb3Ig
> YW5zd2VyLjwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgc2l6ZT0yPjwvRk9OVD4mbmJzcDs8L0RJ
> Vj4NCjxESVY+PEZPTlQgc2l6ZT0yPlRoZSBzeXN0ZW0gY3Jhc2ggaW4gdGhlIGNvbXBsZXRpb24g
> cm91dGluZSBpcyBiZWNhdXNlIG9mIHRoZSANCndhaXRpbmcgcHJvY2VzcyBhdCBESVNQQVRDSF9M
> RVZFTC48L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+
> DQo8RElWPjxGT05UIHNpemU9Mj5CdXQgPC9GT05UPjxGT05UIHNpemU9Mj5hbm90aGVyIGJ1Z2No
> ZWNrIGNvZGUmbmJzcDstIA0KUEFHRV9GQVVMVF9JTl9OT05QQUdFRF9BUkVBIC0gb2NjdXJzJm5i
> c3A7c29tZXRpbWVzLCA8L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj5ldmVuIHRob3Vn
> aCBJJm5ic3A7ZG9uJ3QgY2hhbmdlIHRoZSBidWZmZXIgc2l6ZS4gPC9GT05UPjwvRElWPg0KPERJ
> Vj48Rk9OVCBzaXplPTI+PC9GT05UPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBzaXplPTI+QXMg
> eW91IGNvbW1lbnQsIG15IGRyaXZlcidzIHdvcmsgaXM6PC9GT05UPjwvRElWPg0KPERJVj48Rk9O
> VCBzaXplPTI+PC9GT05UPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBzaXplPTI+aWYgYW4gdXNl
> ciBzZW5kcyBTVEFSVCBmbGFnIHNwZWNpZnlpbmcgdG8gYnVmZmVyIHNpemUsIG15IA0KZHJpdmVy
> IGFsbG9jYXRlJm5ic3A7YSBidWZmZXIgd2l0aCBwYXNzZWQgc2l6ZSBhbmQmbmJzcDtzZW5kIDIg
> c3ViaXJwcyB0byByZWFkIA0Kc3RyZWFtaW5nIGRhdGEuPC9GT05UPjwvRElWPg0KPERJVj48Rk9O
> VCBzaXplPTI+QW5kIHRoZW4gdGhlIHVzZXIgPC9GT05UPjxGT05UIHNpemU9Mj5yZWFkIHRoZSBi
> dWZmZXIgdXNpbmcgDQpEZXZpY2VJb0NvbnRyb2woLi4uKS4gQXQgdGhpcywgdXNlci1hbGxvY2F0
> ZWQgYnVmZmVyIGlzIHVzZWQuIHVzZSBNREwgaW4gZHJpdmVyLCANCnlvdSByaWdodC48L0ZPTlQ+
> PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05U
> IHNpemU9Mj5JJm5ic3A7bG9va2VkIGludG8gc2l6ZSZuYnNwO2NoZWNraW5nIGluIFJFQURfQlVG
> RkVSIHJvdXRpbmUgDQppbiBkcml2ZXIuIGhvd2V2ZXIsIEkgY2Fubm90IGZpbmQgYW55IHN1c3Bp
> Y2lvdXMgdGhpbmdzLiA8L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj5UaGUgUEFHRV9G
> QVVMVF9JTl9OT05QQUdFRF9BUkVBIGVycm9yIG9jY3VycyZuYnNwO3Rob3VnaCB1c2VyIA0KZG9l
> c24ndCBjaGFuZ2UgdGhlIGJ1ZmZlciBzaXplLjwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgc2l6
> ZT0yPkkgdGhpbmsmbmJzcDt0aGUgZHJpdmVyIHJlZmVycyB0byB0aGUmbmJzcDtzYW1lIG1lbW9y
> eSANCmFkZHJlc3MoIE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbChJcnAtJmd0O01kbEFkZHJlc3Mp
> ICkgd2hpbGUgdXNlciANCmRvZXNuJ3QmbmJzcDtyZWFsbG9jYXRlIHRoZSBidWZmZXIuJm5ic3A7
> IDwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgc2l6ZT0yPjwvRk9OVD48Rk9OVCBzaXplPTI+PC9G
> T05UPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBzaXplPTI+QW55IGNvbW1lbnQgd291bGQgYmUg
> aGVscGZ1bC4uLiA8L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7
> PC9ESVY+DQo8RElWPjxGT05UIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+DQo8QkxPQ0tRVU9U
> RSANCnN0eWxlPSJQQURESU5HLVJJR0hUOiAwcHg7IFBBRERJTkctTEVGVDogNXB4OyBNQVJHSU4t
> TEVGVDogNXB4OyBCT1JERVItTEVGVDogIzAwMDAwMCAycHggc29saWQ7IE1BUkdJTi1SSUdIVDog
> MHB4Ij4NCiAgPERJViBzdHlsZT0iRk9OVDogMTBwdCCxvLiyIj4tLS0tLSBPcmlnaW5hbCBNZXNz
> YWdlIC0tLS0tIDwvRElWPg0KICA8RElWIA0KICBzdHlsZT0iQkFDS0dST1VORDogI2U0ZTRlNDsg
> Rk9OVDogMTBwdCCxvLiyOyBmb250LWNvbG9yOiBibGFjayI+PEI+RnJvbTo8L0I+IDxBIA0KICB0
> aXRsZT1kZGV2QGVxdWlzb2Z0LmRlIGhyZWY9Im1haWx0bzpkZGV2QGVxdWlzb2Z0LmRlIj5FcXVp
> U29mdCBERGV2PC9BPiA8L0RJVj4NCiAgPERJViBzdHlsZT0iRk9OVDogMTBwdCCxvLiyIj48Qj5U
> bzo8L0I+IDxBIHRpdGxlPW50ZGV2QGxpc3RzLm9zci5jb20gDQogIGhyZWY9Im1haWx0bzpudGRl
> dkBsaXN0cy5vc3IuY29tIj5OVCBEZXZlbG9wZXJzIEludGVyZXN0IExpc3Q8L0E+IDwvRElWPg0K
> ICA8RElWIHN0eWxlPSJGT05UOiAxMHB0ILG8uLIiPjxCPlNlbnQ6PC9CPiBNb25kYXksIE1hcmNo
> IDI0LCAyMDAzIDQ6MzkgUE08L0RJVj4NCiAgPERJViBzdHlsZT0iRk9OVDogMTBwdCCxvLiyIj48
> Qj5TdWJqZWN0OjwvQj4gW250ZGV2XSBSZTogQ2FuIElSUUwgY2hhbmdlIGluIA0KICBDb21wbGV0
> aW9uUm91dGluZT88L0RJVj4NCiAgPERJVj48Rk9OVCBzaXplPTI+PC9GT05UPjxGT05UIHNpemU9
> Mj48L0ZPTlQ+PEZPTlQgc2l6ZT0yPjwvRk9OVD48Rk9OVCANCiAgc2l6ZT0yPjwvRk9OVD48Rk9O
> VCBzaXplPTI+PC9GT05UPjxGT05UIHNpemU9Mj48L0ZPTlQ+PEJSPjwvRElWPg0KICA8RElWPjxG
> T05UIGZhY2U9QXJpYWwgc2l6ZT0yPlN1cmUsIG1lbW9yeSBhbGxvY2F0ZWQgZnJvbSBOb25QYWdl
> ZFBvb2ygd2lsbCANCiAgbmV2ZXIgYmUgcGFnZWQgb3V0ICE8L0ZPTlQ+PC9ESVY+DQogIDxESVY+
> PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+QnV0IGlmIHlvdSAoeW91ciBkcml2ZXIpIGhhcHBlbnMg
> dG8gYWRkcmVzcyANCiAgbWVtb3J5IEJFSElORCBhbnkgYWxsb2NhdGVkIGJ1ZmZlciBhdCBJUlFM
> PURJU1BBVENIX0xFVkVMIHRoZSBzeXN0ZW0gd29uJ3QgDQogIGtub3cgaWYgdGhlIHBhZ2UgaXNu
> J3QgdGhlcmUgYmVjYXVzZSBpdCBoYXMgYmVlbiBwYWdlZCBvdXQgb3IgYmVjYXVzZSBpdCBoYXMg
> DQogIG5ldmUgYmVlbiBhbGxvY2F0ZWQuIFRoZSBleGNlcHRpb24gaGFuZGxlciBmb3IgcGFnZWQg
> bWVtb3J5IHdobyBjYW4gZGVjaWRlIA0KICB3aGVyZSB0aGUgYWRkcmVzc2VkIG1lbW9yeSBtYXkg
> aGF2ZSBiZWVuIGdvbmUgd29uJ3QgYmUgdHJpZ2dlcmVkIGZyb20gY29kZSANCiAgcnVubmluZyBh
> dCBJUlFMICZndDs9IERJU1BBVENIX0xFVkVMLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBm
> YWNlPUFyaWFsIHNpemU9Mz4/L0ZPTlQmZ3Q7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1Bcmlh
> bCBzaXplPTI+VGhlIG1hdHRlciBpcywgd2hhdCBkb2VzIHlvdXIgZHJpdmVyIGV4YWN0bHkgZG8g
> DQogIHdoZW4geW91ciB1c2VyIGRlbWFuZHMgZm9yIGEgbGFyZ2VyIGJ1ZmZlci4gRG8geW91IHJl
> YWxseSBhbGxvY2F0ZSBhIG5ldyANCiAgYnVmZmVyIGZpdHRpbmcgaW4gc2l6ZSBvciBkbyB5b3Ug
> aGF2ZSBhIG1heGltdW0gc2l6ZWQgYnVmZmVyIHdoaWNoIHdpbGwgb25seSANCiAgYmUgdXNlZCB1
> cCB0byB0aGUgc2l6ZSB0aGUgdXNlciB3YW50ZWQgPzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9O
> VCBmYWNlPUFyaWFsIHNpemU9Mj5JbiBlaXRoZXIgY2FzZSB0aGVyZSBtdXN0IGJlIGFuIE1ETCB3
> aGljaCANCiAgcHJvdmlkZXMgeW91ciB1c2VyIHdpdGggYSB2YWxpZCB2aXJ0dWFsIGFkZHJlc3Mg
> dG8gYWNjZXNzIHlvdSBkcml2ZXIgYWxsb2NhdGVkIA0KICBidWZmZXIuIEFuZCB0aGlzIE1ETCBo
> YXMgYWx3YXlzIHRvIGJlIGFkanVzdGVkIHRvIGZpdCB3aXRoIHRoZSBzaXplIHlvdSB3YW50IA0K
> ICB0aGUgdXNlciB0byBhYmxlIHRvIGFkZHJlc3MuPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05U
> IGZhY2U9QXJpYWwgc2l6ZT0yPi0tPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJp
> YWwgc2l6ZT0yPkRpZXRtYXIgSmFnb25hazwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNl
> PUFyaWFsIHNpemU9Mz4/L0ZPTlQmZ3Q7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBz
> aXplPTM+Py9GT05UJmd0OzwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPi0t
> LSBPcmlnaW5hbCBNZXNzYWdlIC0tLTwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFy
> aWFsIHNpemU9Mj5Gcm9tOiAiSHl1bmdKdW5lIEtpbSIgDQogICZsdDtoeXVuZ2p1bmUua2ltQGh5
> bml4LmNvbSZndDs8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+
> VG86IE5UIERldmVsb3BlcnMgSW50ZXJlc3QgTGlzdCANCiAgJmx0O250ZGV2QGxpc3RzLm9zci5j
> b20mZ3Q7PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkNjOjwv
> Rk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5TZW50OiBGcmksIDIx
> IE1hciAyMDAzIDEyOjA4OjU0IA0KKzA5MDA8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFj
> ZT1BcmlhbCBzaXplPTI+VGhhbmsgeW91IGZvciBhbGwgYW5zd2Vycy48L0ZPTlQ+PC9ESVY+DQog
> IDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTM+Py9GT05UJmd0OzwvRElWPg0KICA8RElWPjxG
> T05UIGZhY2U9QXJpYWwgc2l6ZT0yPkZvciBEaWV0bWFyJ3MgYW5zd2VyLDwvRk9OVD48L0RJVj4N
> CiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5JIGRvbid0IHVzZSB0aGUgdXNlciBidWZm
> ZXIsIHVzZXIganVzdCBwYXNzIHRoZSANCiAgU1RBUlQgZmxhZyBhbmQgYnVmZmVyIHNpemUgdXNp
> bmcgRGV2aWNlSW9Db250cm9sLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFs
> IHNpemU9Mz4/L0ZPTlQmZ3Q7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+
> TXkgZHJpdmVyIGFsbG9jYXRlIFRyYW5zZmVyQnVmZmVyIHRvIGdldCBkYXRhIA0KICBmcm9tIGRl
> dmljZSBhbmQgUmluZ0J1ZmZlciB0byBjb252ZXJ0IHRoZSBkYXRhLiBUaGUgbWVtb3J5IGlzIGFs
> bG9jYXRlZCB0byANCiAgTm9ucGFnZWRQb29sLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBm
> YWNlPUFyaWFsIHNpemU9Mj5Vc2VyIHJlYWRzIHRoZSBSaW5nQnVmZmVyLjwvRk9OVD48L0RJVj4N
> CiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5JbiB0aGlzIGNhc2UsIHRoZSBtZW1vcnkg
> Y2FuIGJlIHBhZ2VkIA0KICBvdXQ/PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJp
> YWwgc2l6ZT0zPj8vRk9OVCZndDs8L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9
> Mz4/L0ZPTlQmZ3Q7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTM+Py9GT05U
> Jmd0OzwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0zPj8vRk9OVCZndDs8L0RJ
> Vj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4tLS0tLSBPcmlnaW5hbCBNZXNzYWdl
> IC0tLS0tPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPkZyb206
> ICJFcXVpU29mdCBERGV2IiANCiAgJmx0O2RkZXZAZXF1aXNvZnQuZGUmZ3Q7PC9GT05UPjwvRElW
> Pg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlRvOiAiTlQgRGV2ZWxvcGVycyBJbnRl
> cmVzdCBMaXN0IiANCiAgJmx0O250ZGV2QGxpc3RzLm9zci5jb20mZ3Q7PC9GT05UPjwvRElWPg0K
> ICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPlNlbnQ6IEZyaWRheSwgTWFyY2ggMjEsIDIw
> MDMgNTowNCBBTTwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj5T
> dWJqZWN0OiBbbnRkZXZdIFJlOiBDYW4gSVJRTCBjaGFuZ2UgaW4gDQogIENvbXBsZXRpb25Sb3V0
> aW5lPzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mz4/L0ZPTlQm
> Z3Q7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTM+Py9GT05UJmd0OzwvRElW
> Pg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugRGVzcGl0ZSB0aGUgbWVudGlv
> bmVkIGZhY3QgdGhhdCBhIGNvbXBsZXRpb24gDQogIHJvdXRpbmUgbWF5IGdldCBjYWxsZWQgYXQg
> YW55IElSTFEgJmx0Oz0gRElTUEFUQ0hfTEVWRUwgSSB0aGluayB0aGlzIGJ1ZmZlciANCiAgcmVz
> aXppbmcgcHJvY2VzcyBmcm9tIHVzZXJtb2RlIG1heSBjYXVzZSBidWdjaGVja3MgaWYgaXQncyBk
> b25lIA0KICBpbmNvcnJlY3QuPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwg
> c2l6ZT0yPiZndDugV2hhdCBleGFjdGx5IGhhcHBlbnMgd2hlbiBhIHVzZXIgZG9lcyB0aGlzIA0K
> ICByZXNpemluZyA/PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0y
> PiZndDugRGlkIHlvdSBhY2NvcmRpbmdseSBhZGp1c3QgeW91ciBNREwgd2hpY2ggDQogIGNvdmVy
> cyB0aGlzIHVzZXIgYnVmZmVyID88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1Bcmlh
> bCBzaXplPTI+Jmd0OzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9
> Mj4mZ3Q7oEJ1Z2NoZWNrIGNvZGUgMHhEMWRvZXNuJ3Qgb25seSBtZWFuIHRoYXQgSVJRTCANCiAg
> aXMgdG9vIGhpZ2ggYnV0IGl0IGluZGljYXRlcyB0aGF0IHlvdXIgZHJpdmVyIHRyaWVkIHRvIGFj
> Y2VzcyBhIG1lbW9yeSBhZGRyZXNzIA0KICB0aGF0IGhhcyBiZWVuIHBhZ2VkIG91dCBvciwgaW4g
> bW9zdCBvZiB0aGUgY2FzZXMsIHRoYXQgaXMgb3RoZXJ3aXNlIGNvbXBsZXRlbHkgDQogIGludmFs
> aWQuIFRoaXMgaGFwcGVucyBpZiB5b3UgdHJ5IHRvIGFjY2VzcyBhIG1lbW9yeSBhZGRyZXNzIHRo
> YXQgaXNuJ3QgDQogIGNvcnJlY3RseSBtYXBwZWQgaW4gdGhlIGtlcm5lbCBtb2RlIGFkZHJlc3Mg
> c3BhY2UuPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs/
> LTwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oERpZXRt
> YXIgSmFnb25hazwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4m
> Z3Q7PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs/LS0g
> T3JpZ2luYWwgTWVzc2FnZSAtLS08L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1Bcmlh
> bCBzaXplPTI+Jmd0O6BGcm9tOiAiQmlsbCBNY0tlbnppZSIgDQogICZsdDtiaWxsLm1ja2Vuemll
> QGNvbXB1d2FyZS5jb20mZ3Q7PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwg
> c2l6ZT0yPiZndDugVG86IE5UIERldmVsb3BlcnMgSW50ZXJlc3QgTGlzdCANCiAgJmx0O250ZGV2
> QGxpc3RzLm9zci5jb20mZ3Q7PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwg
> c2l6ZT0yPiZndDugU2VudDogVGh1LCAyMCBNYXIgMjAwMyAxMDoxMTo1MCANCiAgLTA1MDA8L0ZP
> TlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0OzwvRk9OVD48L0RJ
> Vj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oENvbXBsZXRpb24gcm91dGlu
> ZXMgYXJlIGNhbGxlZCBhdCB0aGUgSVJRTCANCiAgZnJvbSB3aGljaCB0aGUgZHJpdmVyIGJlbG93
> IGNhbGxlZCBJb0NvbXBsZXRlUmVxdWVzdC4/U28sIHlvdXIgY29tcGxldGlvbiANCiAgcm91dGlu
> ZSBjYW4gZ2V0IGNhbGxlZCBhdCBhbnkgSVJRTCAmbHQ7PSBESVNQQVRDSF9MRVZFTC4/VGhlIElS
> UUwgd2lsbCBub3QgDQogIGNoYW5nZSBkdXJpbmcgdGhlIGNvdXJzZSBvZiB0aGUgY29tcGxldGlv
> biByb3V0aW5lIHVubGVzcyB5b3UgZG8gc29tZXRoaW5nIHRvIA0KICBjaGFuZ2UgaXQuP0ZvciBl
> eGFtcGxlLCBpZiB5b3VyIGNvbXBsZXRpb24gcm91dGluZSB3ZXJlIGNhbGxlZCBhdCANCiAgUEFT
> U0lWRV9MRVZFTCBhbmQgeW91ciBjb2RloGFjcXVpcmVkIGEgc3BpbmxvY2ssIHRoZSBJUlFMIHdv
> dWxkoHdvdWxkIGNoYW5nZSANCiAgdG+gRElTUEFUQ0hfTEVWRUwgdW50aWwgdGhlIHNwaW5sb2Nr
> IGlzIHJlbGVhc2VkLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9
> Mj4mZ3Q7PzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7
> oFlvdaBNVVNUIGVuc3VyZSB0aGF0IGFueSBjb2RlIHRoYXQgZXhlY3V0ZXMgaW4gDQogIGEgY29t
> cGxldGlvbiByb3V0aW5lIGNhbiBleGVjdXRlIGF0IERJU1BBVENIX0xFVkVMIElSUUwgYXMgeW91
> ciBjb21wbGV0aW9uIA0KICByb3V0aW5lIGNhbiBiZSBjYWxsZWQgYXQgdGhhdCBJUlFMLj9Tb3Vu
> ZHMgbGlrZSB0aGlzIG1pZ2h0IGJlIHlvdXIgDQogIHByb2JsZW0uPC9GT05UPjwvRElWPg0KICA8
> RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs/LTwvRk9OVD48L0RJVj4NCiAgPERJVj48
> Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oEJpbGwgTWNLZW56aWUgPzwvRk9OVD48L0RJVj4N
> CiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7PC9GT05UPjwvRElWPg0KICA8RElW
> PjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs/SHl1bmdKdW5lIEtpbSIgDQogICZsdDtoeXVu
> Z2p1bmUua2ltQGh5bml4LmNvbSZndDugd3JvdGUgaW4gbWVzc2FnZSANCiAgbmV3czo0MTcyNEBu
> dGRldi4uLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7
> oEhpLDwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oEkg
> aGF2ZaBkZXZlbG9wZWSgYSBVU0IgZHJpdmVyLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBm
> YWNlPUFyaWFsIHNpemU9Mj4mZ3Q7PzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFy
> aWFsIHNpemU9Mj4mZ3Q7oE15oGRyaXZlcidzIG9wZXJhdGlvbiBpcyB0aGF0IGlmIGFuIHVzZXKg
> c2V0IA0KICB0aGUgQlVMS19TVEFSVCB0cmFuc2ZlciBmbGFnLDwvRk9OVD48L0RJVj4NCiAgPERJ
> Vj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oHRoZSBkcml2ZXIgcmV0cmlldmVzIHN0cmVh
> bWluZyBkYXRhIHRocm91Z2ggYSANCiAgQlVMSyBwaXBlLjwvRk9OVD48L0RJVj4NCiAgPERJVj48
> Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oEFuZCBpbiB0aGUgY29tcGxldGlvbiByb3V0aW5l
> LCB0aGUgZHJpdmVyIA0KICB3cml0ZXMgdGhloHJldHJpZXZlZCBkYXRhIHRvIFJpbmdCdWZmZXIs
> PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugYW5kIHNl
> bmSgYW4gSVJQIHRvIGdldCBzdHJlYW1pbmcgZGF0YSBhZ2FpbiANCiAgdW50aWwgdGhlIHVzZXIg
> c2V0IEJVTEtfU1RPUCBmbGFnLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFs
> IHNpemU9Mj4mZ3Q7oFRoZSBkYXRhIHNpemUodXNlciBzdXBwbGllZCBidWZmZXIpIHRvIGJlIA0K
> ICByZXRyaXZlZCBjYW4gYmUgY2hhbmdlZCBmcm9tIHVzZXIuPC9GT05UPjwvRElWPg0KICA8RElW
> PjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugV2hlbiB0aGUgdXNlciBjaGFuZ2UgdGhlIHNp
> emUsIHRoZSBkcml2ZXIgDQogIGZyZWVzIElSUCwgUmluZ0J1ZmZlciwgVVJCIGFuZCByZWFsbG9j
> YXRlIHRoZW0uPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZn
> dDs/PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugTXkg
> cHJvYmxlbSBpczo8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+
> Jmd0Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0O6BX
> aGVuIGEgdXNlciBjaGFuZ2UgZGF0YSBzaXplIGZyb20gc21hbGwgdG8gDQogIGxhcmdlLCB0aGUg
> c3lzdGVtIGlzIGNyYXNoZWQuPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwg
> c2l6ZT0yPiZndDugQ2hhbmdlIGZyb20gbGFyZ2UgdG8gc21hbGwgaXMgDQogIG9rYXkuPC9GT05U
> PjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs/PC9GT05UPjwvRElW
> Pg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugVGhlIGJ1Z2NoZWNrIGNvZGUg
> aXM8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0O6BTVE9Q
> IDogMHgwMDAwMDBEMSggMHhGRkJERjAwMCwgMiwgMCwgDQogIDB4QkVGRDgzN0UpPC9GT05UPjwv
> RElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugRFJJVkVSX0lSUUxfTk9U
> X0xFU1NfT1JfRVFVQUw8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXpl
> PTI+Jmd0Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0
> Oz9ndDtGcm9tIHRoZSBTb2Z0SWNlLCBJIHNlZaB0aGUgZGF0YSBpbiANCiAgY29tcGxldGlvbiBy
> b3V0aW5lIGlzIG5vdCBwYXNzZWQgY29ycmVjdGx5KGl0J3MgZ2FyYmFnZaB2YWx1ZXMpPC9GT05U
> PjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugYW5kIGNyYXNoZWQg
> aW4gY29tcGxldGlvbiANCiAgcm91dGluZS48L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFj
> ZT1BcmlhbCBzaXplPTI+Jmd0Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1Bcmlh
> bCBzaXplPTI+Jmd0O6BJIHRoaW5rIHRoZSBJUlFMIGlzIGNoYW5nZWQgaW4gdGhlIGNvbXBsZXRp
> b24gDQogIHJvdXRpbmUuPC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwgc2l6
> ZT0yPiZndDugQ2FuIHRoZSBJUlFMIGJlIGNoYW5nZWQgaW4gdGhlIGNvbXBsZXRpb24gDQogIHJv
> dXRpbmWgd2hpbGWgdGhlIGRyaXZlciBpcyB3b3JraW5nPzwvRk9OVD48L0RJVj4NCiAgPERJVj48
> Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oElmIHNvLCBob3cgY2FuIEkga25vdyB0aGUgY2hh
> bmdlIGFuZCB3b3JrIA0KICBhcm91bmQ/PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9
> QXJpYWwgc2l6ZT0yPiZndDs/PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05UIGZhY2U9QXJpYWwg
> c2l6ZT0yPiZndDugUmVnYXJkcyw8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1Bcmlh
> bCBzaXplPTI+Jmd0Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXpl
> PTI+Jmd0Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0
> Oz88L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0Oz88L0ZP
> TlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0Oz88L0ZPTlQ+PC9E
> SVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0Oz88L0ZPTlQ+PC9ESVY+DQog
> IDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0Oz8tLTwvRk9OVD48L0RJVj4NCiAgPERJ
> Vj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7oFlvdSBhcmUgY3VycmVudGx5IHN1YnNjcmli
> ZWQgdG8gbnRkZXYgYXM6IA0KICBkZGV2QGVxdWlzb2Z0LmRlPC9GT05UPjwvRElWPg0KICA8RElW
> PjxGT05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDugVG8gdW5zdWJzY3JpYmUgc2VuZCBhIGJsYW5r
> IGVtYWlsIHRvIA0KICBsZWF2ZS1udGRldi04MDZPQGxpc3RzLm9zci5jb208L0ZPTlQ+PC9ESVY+
> DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jmd0OzwvRk9OVD48L0RJVj4NCiAgPERJ
> Vj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mZ3Q7PC9GT05UPjwvRElWPg0KICA8RElWPjxGT05U
> IGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1B
> cmlhbCBzaXplPTI+Jmd0Oz8tLTwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFs
> IHNpemU9Mj4mZ3Q7oFlvdSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgdG8gbnRkZXYgYXM6IA0K
> ICBoeXVuZ2p1bmUua2ltQGh5bml4LmNvbTwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNl
> PUFyaWFsIHNpemU9Mj4mZ3Q7oFRvIHVuc3Vic2NyaWJlIHNlbmQgYSBibGFuayBlbWFpbCB0byAN
> CiAgbGVhdmUtbnRkZXYtODA2T0BsaXN0cy5vc3IuY29tPC9GT05UPjwvRElWPg0KICA8RElWPjxG
> T05UIGZhY2U9QXJpYWwgc2l6ZT0yPiZndDs8L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFj
> ZT1BcmlhbCBzaXplPTI+Jmd0OzwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFs
> IHNpemU9Mz4/L0ZPTlQmZ3Q7PC9ESVY+LS0tPEJSPllvdSBhcmUgY3VycmVudGx5IA0KICBzdWJz
> Y3JpYmVkIHRvIG50ZGV2IGFzOiBoeXVuZ2p1bmUua2ltQGh5bml4LmNvbTxCUj5UbyB1bnN1YnNj
> cmliZSBzZW5kIGEgYmxhbmsgDQogIGVtYWlsIHRvIGxlYXZlLW50ZGV2LTgwNk9AbGlzdHMub3Ny
> LmNvbSANCiAgPC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05U
> PjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9CTE9DS1FVT1RFPjwvQk9EWT48
> L0hUTUw+DQo=
>
> ------=_NextPart_000_0003_01C2F49D.451349D0–