Subject: sk(4) entropy collection (was Re: CVS commit: src/sys/dev/pci)
To: Jason Thorpe <thorpej@shagadelic.org>
From: Jeff Rizzo <riz@NetBSD.org>
List: tech-net
Date: 03/29/2006 08:31:46
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig1FF801DE32736A1AA1BE5DD9
Content-Type: multipart/mixed;
 boundary="------------080308030800080301050408"

This is a multi-part message in MIME format.
--------------080308030800080301050408
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Jeff Rizzo wrote:
> Jason Thorpe wrote:
>  =20
>> On Feb 11, 2006, at 10:38 AM, Rui Paulo wrote:
>>
>>    =20
>>> Jason Thorpe <thorpej@shagadelic.org> writes:
>>>
>>>      =20
>>>> Has anyone measured the performance impact of this at Gig-E speeds?
>>>>        =20
>>> No, I have to buy a Gig-E switch first.
>>>      =20
>> This needs to be done.  rnd_add_uint32() seems to do an awful lot of
>> work.
>>
>> -- thorpej
>>    =20
>
> I will undertake to do this testing as soon as I get my own pending
> sk(4) changes in-tree.  (consider this a plug for people who care about=

>  =20

Unfortunately, I've been having some hardware troubles with the box I
was doing this testing on, so I haven't been able to be as thorough as
I'd like.  Also, netperf seems to be having some sort of systematic
trouble that I don't have the energy to debug right now;  at least some
of these runs are suspect.

I did two passes, with a -current kernel over a 2.1-ish userland; one
with "rndctl -e -c -d skc0", and one without.  From these (flawed)
results, it looks like with the rnd stuff enabled, most tests are 2-3%
slower.  (unfortunately, this is a 32-bit card on a 32-bit PCI bus, so
it's not going to stress things as hard as it might if I could saturate
the gigE)  As you'll note, one of the UDP request/response runs shows a
very large decrease in performance, but netperf also complains about not
being able to establish desired confidence in the results.

If anyone has suggestions about specific better tests or benchmarks to
do, I'd be happy to hear about them.  I may or may not eventually find
time to run them, too.  :)

(These tests are the "snapshot_script" from netperf, in pkgsrc, run
against a wm(4) card in a NetBSD/macppc box, through an SMC gigE switch)

+j




--------------080308030800080301050408
Content-Type: application/octet-stream; x-mac-type="0"; x-mac-creator="0";
 name="sk-snapshot-current-rnd-1500"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="sk-snapshot-current-rnd-1500"

U2NyaXB0IHN0YXJ0ZWQgb24gV2VkIE1hciAyMiAwNjozMDo0NiAyMDA2Cmtlcm4tdGVzdDpy
aXogIC91c3IvcGtnL25ldHBlcmY+IGV4aXQICAgILi9zbmFwc2hvdF9zY3JpcHQgMTkyLjE2
OC40LjMbWzI5RGV4aXQbW0sICAgIc3VkbyBzaHV0ZG93biAtciBub3cbWzE1RGNwIC90bXAv
bmV0YnNkIC9ubmV0YnNkG1syOEQuL3NuYXBzaG90X3NjcmlwdCAxOTIuMTY4LjQuMxtbMjlE
Y2QgL3Vzci9wa2cvbmV0cGVyZi8bW0sbWzIwRC4vc25hcHNob3Rfc2NyaXB0IDE5Mi4xNjgu
NC4zDQ0KTmV0cGVyZiBzbmFwc2hvdCBzY3JpcHQgc3RhcnRlZCBhdCBXZWQgTWFyIDIyIDA2
OjMwOjUzIFBTVCAyMDA2DQpTdGFydGluZyA1Nng0IFRDUF9TVFJFQU0gdGVzdHMgYXQgV2Vk
IE1hciAyMiAwNjozMTozNyBQU1QgMjAwNg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NClRlc3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZToN
Ci91c3IvcGtnL25ldHBlcmYvbmV0cGVyZiAtdCBUQ1BfU1RSRUFNIC1sIDYwIC1IIDE5Mi4x
NjguNC4zIC1pIDEwLDMgLUkgOTksNSAtLSAtcyA1NzM0NCAtUyA1NzM0NCAtbSA0MDk2DQoN
ClRDUCBTVFJFQU0gVEVTVCB0byAxOTIuMTY4LjQuMyA6ICsvLTIuNSUgQCA5OSUgY29uZi4g
OiBoaXN0b2dyYW0NClJlY3YgICBTZW5kICAgIFNlbmQgICAgICAgICAgICAgICAgICAgICAg
ICAgIA0KU29ja2V0IFNvY2tldCAgTWVzc2FnZSAgRWxhcHNlZCAgICAgICAgICAgICAgDQpT
aXplICAgU2l6ZSAgICBTaXplICAgICBUaW1lICAgICBUaHJvdWdocHV0ICANCmJ5dGVzICBi
eXRlcyAgIGJ5dGVzICAgIHNlY3MuICAgIDEwXjZiaXRzL3NlYyAgDQoNCiA1NzM0NCAgNTcz
NDQgICA0MDk2ICAgIDYwLjAyICAgICAzMTcuMTAgICANCg0KDQpTdGFydGluZyAzMng0IFRD
UF9TVFJFQU0gdGVzdHMgYXQgV2VkIE1hciAyMiAwNjozNjozNyBQU1QgMjAwNg0KDQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRlc3Rpbmcgd2l0aCB0aGUgZm9s
bG93aW5nIGNvbW1hbmQgbGluZToNCi91c3IvcGtnL25ldHBlcmYvbmV0cGVyZiAtdCBUQ1Bf
U1RSRUFNIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMgLUkgOTksNSAtLSAtcyAzMjc2
OCAtUyAzMjc2OCAtbSA0MDk2DQoNClRDUCBTVFJFQU0gVEVTVCB0byAxOTIuMTY4LjQuMyA6
ICsvLTIuNSUgQCA5OSUgY29uZi4gOiBoaXN0b2dyYW0NClJlY3YgICBTZW5kICAgIFNlbmQg
ICAgICAgICAgICAgICAgICAgICAgICAgIA0KU29ja2V0IFNvY2tldCAgTWVzc2FnZSAgRWxh
cHNlZCAgICAgICAgICAgICAgDQpTaXplICAgU2l6ZSAgICBTaXplICAgICBUaW1lICAgICBU
aHJvdWdocHV0ICANCmJ5dGVzICBieXRlcyAgIGJ5dGVzICAgIHNlY3MuICAgIDEwXjZiaXRz
L3NlYyAgDQoNCiAzMjc2OCAgMzI3NjggICA0MDk2ICAgIDYwLjAyICAgICAzMTcuMzIgICAN
Cg0KDQpTdGFydGluZyAxLDEgVENQX1JSIHRlc3RzIGF0IFdlZCBNYXIgMjIgMDY6Mzk6Mzcg
UFNUIDIwMDYNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUZXN0
aW5nIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmU6DQovdXNyL3BrZy9uZXRwZXJm
L25ldHBlcmYgLXQgVENQX1JSIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMgLUkgOTks
NSAtLSAtciAxLDENCg0KVENQIFJFUVVFU1QvUkVTUE9OU0UgVEVTVCB0byAxOTIuMTY4LjQu
MyA6ICsvLTIuNSUgQCA5OSUgY29uZi4gOiBoaXN0b2dyYW0NCkxvY2FsIC9SZW1vdGUNClNv
Y2tldCBTaXplICAgUmVxdWVzdCAgUmVzcC4gICBFbGFwc2VkICBUcmFucy4NClNlbmQgICBS
ZWN2ICAgU2l6ZSAgICAgU2l6ZSAgICBUaW1lICAgICBSYXRlICAgICAgICAgDQpieXRlcyAg
Qnl0ZXMgIGJ5dGVzICAgIGJ5dGVzICAgc2Vjcy4gICAgcGVyIHNlYyAgIA0KDQozMjc2OCAg
MzI3NjggIDEgICAgICAgIDEgICAgICAgNjAuMDIgICAgMzk2OS40NyAgIA0KMzI3NjggIDMy
NzY4IA0KDQoNClN0YXJ0aW5nIDEsMSBVRFBfUlIgdGVzdHMgYXQgV2VkIE1hciAyMiAwNjo0
Mjo1MCBQU1QgMjAwNg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
ClRlc3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZToNCi91c3IvcGtnL25l
dHBlcmYvbmV0cGVyZiAtdCBVRFBfUlIgLWwgNjAgLUggMTkyLjE2OC40LjMgLWkgMTAsMyAt
SSA5OSw1IC0tIC1yIDEsMQ0KDQpVRFAgUkVRVUVTVC9SRVNQT05TRSBURVNUIHRvIDE5Mi4x
NjguNC4zIDogKy8tMi41JSBAIDk5JSBjb25mLiA6IGhpc3RvZ3JhbQ0KTG9jYWwgL1JlbW90
ZQ0KU29ja2V0IFNpemUgICBSZXF1ZXN0ICBSZXNwLiAgIEVsYXBzZWQgIFRyYW5zLg0KU2Vu
ZCAgIFJlY3YgICBTaXplICAgICBTaXplICAgIFRpbWUgICAgIFJhdGUgICAgICAgICANCmJ5
dGVzICBCeXRlcyAgYnl0ZXMgICAgYnl0ZXMgICBzZWNzLiAgICBwZXIgc2VjICAgDQoNCjky
MTYgICA0MTYwMCAgMSAgICAgICAgMSAgICAgICA2MC4wMSAgICAzOTcyLjE5ICAgDQo5MjE2
ICAgNDE2MDAgDQoNCg0KU3RhcnRpbmcgNTEyLDQgVURQX1JSIHRlc3RzIGF0IFdlZCBNYXIg
MjIgMDY6NDY6MDIgUFNUIDIwMDYNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpUZXN0aW5nIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmU6DQovdXNy
L3BrZy9uZXRwZXJmL25ldHBlcmYgLXQgVURQX1JSIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1p
IDEwLDMgLUkgOTksNSAtLSAtciA1MTYsNA0KDQpVRFAgUkVRVUVTVC9SRVNQT05TRSBURVNU
IHRvIDE5Mi4xNjguNC4zIDogKy8tMi41JSBAIDk5JSBjb25mLiA6IGhpc3RvZ3JhbQ0KISEh
IFdBUk5JTkcNCiEhISBEZXNpcmVkIGNvbmZpZGVuY2Ugd2FzIG5vdCBhY2hpZXZlZCB3aXRo
aW4gdGhlIHNwZWNpZmllZCBpdGVyYXRpb25zLg0KISEhIFRoaXMgaW1wbGllcyB0aGF0IHRo
ZXJlIHdhcyB2YXJpYWJpbGl0eSBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudCB0aGF0DQohISEg
bXVzdCBiZSBpbnZlc3RpZ2F0ZWQgYmVmb3JlIGdvaW5nIGZ1cnRoZXIuDQohISEgQ29uZmlk
ZW5jZSBpbnRlcnZhbHM6IFRocm91Z2hwdXQgICAgICA6IDExNi41JQ0KISEhICAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbCBDUFUgdXRpbCAgOiAgMC4wJQ0KISEhICAgICAgICAgICAg
ICAgICAgICAgICBSZW1vdGUgQ1BVIHV0aWwgOiAgMC4wJQ0KDQpMb2NhbCAvUmVtb3RlDQpT
b2NrZXQgU2l6ZSAgIFJlcXVlc3QgIFJlc3AuICAgRWxhcHNlZCAgVHJhbnMuDQpTZW5kICAg
UmVjdiAgIFNpemUgICAgIFNpemUgICAgVGltZSAgICAgUmF0ZSAgICAgICAgIA0KYnl0ZXMg
IEJ5dGVzICBieXRlcyAgICBieXRlcyAgIHNlY3MuICAgIHBlciBzZWMgICANCg0KOTIxNiAg
IDQxNjAwICA1MTYgICAgICA0ICAgICAgIDYwLjAyICAgICA5ODMuNDMgICANCjkyMTYgICA0
MTYwMCANClN0YXJ0aW5nIDMyeDQgVURQX1NUUkVBTSB0ZXN0cyBhdCBXZWQgTWFyIDIyIDA2
OjU1OjM4IFBTVCAyMDA2DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KVGVzdGluZyB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lOg0KL3Vzci9wa2cv
bmV0cGVyZi9uZXRwZXJmIC10IFVEUF9TVFJFQU0gLWwgNjAgLUggMTkyLjE2OC40LjMgLWkg
MTAsMyAtSSA5OSw1IC0tIC1zIDMyNzY4IC1TIDMyNzY4IC1tIDQwOTYNCg0KVURQIFVOSURJ
UkVDVElPTkFMIFNFTkQgVEVTVCB0byAxOTIuMTY4LjQuMyA6ICsvLTIuNSUgQCA5OSUgY29u
Zi4gOiBoaXN0b2dyYW0NClNvY2tldCAgTWVzc2FnZSAgRWxhcHNlZCAgICAgIE1lc3NhZ2Vz
ICAgICAgICAgICAgICAgIA0KU2l6ZSAgICBTaXplICAgICBUaW1lICAgICAgICAgT2theSBF
cnJvcnMgICBUaHJvdWdocHV0DQpieXRlcyAgIGJ5dGVzICAgIHNlY3MgICAgICAgICAgICAj
ICAgICAgIyAgIDEwXjZiaXRzL3NlYw0KDQogMzI3NjggICAgNDA5NiAgIDYwLjAyICAgICAg
OTM5Nzc0ICAgIDE5MiAgICAgNTEzLjExDQogNDE2MDAgICAgICAgICAgIDYwLjAyICAgICAg
ODQ5Njk2ICAgICAgICAgICAgNDYzLjkzDQoNCg0KDQpTdGFydGluZyAzMngxIFVEUF9TVFJF
QU0gdGVzdHMgYXQgV2VkIE1hciAyMiAwNjo1OTo1NCBQU1QgMjAwNg0KDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRlc3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5n
IGNvbW1hbmQgbGluZToNCi91c3IvcGtnL25ldHBlcmYvbmV0cGVyZiAtdCBVRFBfU1RSRUFN
IC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMgLUkgOTksNSAtLSAtcyAzMjc2OCAtUyAz
Mjc2OCAtbSAxMDI0DQoNClVEUCBVTklESVJFQ1RJT05BTCBTRU5EIFRFU1QgdG8gMTkyLjE2
OC40LjMgOiArLy0yLjUlIEAgOTklIGNvbmYuIDogaGlzdG9ncmFtDQpTb2NrZXQgIE1lc3Nh
Z2UgIEVsYXBzZWQgICAgICBNZXNzYWdlcyAgICAgICAgICAgICAgICANClNpemUgICAgU2l6
ZSAgICAgVGltZSAgICAgICAgIE9rYXkgRXJyb3JzICAgVGhyb3VnaHB1dA0KYnl0ZXMgICBi
eXRlcyAgICBzZWNzICAgICAgICAgICAgIyAgICAgICMgICAxMF42Yml0cy9zZWMNCg0KIDMy
NzY4ICAgIDEwMjQgICA2MC4wMiAgICAgMjQzNTU1NiAgICAgIDAgICAgIDMzMi40Mw0KIDQx
NjAwICAgICAgICAgICA2MC4wMiAgICAgMjQxODg5NSAgICAgICAgICAgIDMzMC4xNg0KDQoN
Cg0KVGVzdHMgY29tcGxldGVkIGF0IFdlZCBNYXIgMjIgMDc6MDQ6MTAgUFNUIDIwMDYNCg0K
SWYgeW91IHdpc2ggdG8gc3VibWl0IHRoZXNlIHJlc3VsdHMgdG8gdGhlIG5ldHBlcmYgZGF0
YWJhc2UgYXQNCmh0dHA6Ly93d3cuY3VwLmhwLmNvbS9uZXRwZXJmL05ldHBlcmZQYWdlLmh0
bWwsIHBsZWFzZSBzdWJtaXQgZWFjaA0KZGF0YXBvaW50IGluZGl2aWR1YWxseS4gSW5kaXZp
ZHVhbCBkYXRhcG9pbnRzIGFyZSBzZXBhcmF0ZWQgYnkNCmxpbmVzIG9mIGRhc2hlcy4NCmtl
cm4tdGVzdDpyaXogIC91c3IvcGtnL25ldHBlcmY+IGV4aXQNDQpleGl0DQoKU2NyaXB0IGRv
bmUgb24gV2VkIE1hciAyMiAwNzowNzo0NSAyMDA2Cg==
--------------080308030800080301050408
Content-Type: application/octet-stream; x-mac-type="0"; x-mac-creator="0";
 name="sk-snapshot-current-1500"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="sk-snapshot-current-1500"

U2NyaXB0IHN0YXJ0ZWQgb24gVHVlIE1hciAyMSAyMzozNTo1MSAyMDA2Cmtlcm4tdGVzdDpy
aXogIC91c3IvcGtnL25ldHBlcmY+IGV4aXQICAgIc3VkbyBzaHV0ZG93biAtciBub3cbWzE1
RGNwIC90bXAvbmV0YnNkIC9ubmV0YnNkG1syOEQuL3NuYXBzaG90X3NjcmlwdCAxOTIuMTY4
LjQuMxtbMjlEY2QgL3Vzci9wa2cvbmV0cGVyZi8bW0sbWzIwRC4vc25hcHNob3Rfc2NyaXB0
IDE5Mi4xNjguNC4zDQ0KTmV0cGVyZiBzbmFwc2hvdCBzY3JpcHQgc3RhcnRlZCBhdCBUdWUg
TWFyIDIxIDIzOjM1OjU2IFBTVCAyMDA2DQpTdGFydGluZyA1Nng0IFRDUF9TVFJFQU0gdGVz
dHMgYXQgVHVlIE1hciAyMSAyMzozNjozMCBQU1QgMjAwNg0KDQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NClRlc3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1h
bmQgbGluZToNCi91c3IvcGtnL25ldHBlcmYvbmV0cGVyZiAtdCBUQ1BfU1RSRUFNIC1sIDYw
IC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMgLUkgOTksNSAtLSAtcyA1NzM0NCAtUyA1NzM0NCAt
bSA0MDk2DQoNClRDUCBTVFJFQU0gVEVTVCB0byAxOTIuMTY4LjQuMyA6ICsvLTIuNSUgQCA5
OSUgY29uZi4gOiBoaXN0b2dyYW0NClJlY3YgICBTZW5kICAgIFNlbmQgICAgICAgICAgICAg
ICAgICAgICAgICAgIA0KU29ja2V0IFNvY2tldCAgTWVzc2FnZSAgRWxhcHNlZCAgICAgICAg
ICAgICAgDQpTaXplICAgU2l6ZSAgICBTaXplICAgICBUaW1lICAgICBUaHJvdWdocHV0ICAN
CmJ5dGVzICBieXRlcyAgIGJ5dGVzICAgIHNlY3MuICAgIDEwXjZiaXRzL3NlYyAgDQoNCiA1
NzM0NCAgNTczNDQgICA0MDk2ICAgIDYwLjAyICAgICAzMjAuNjggICANCg0KDQpTdGFydGlu
ZyAzMng0IFRDUF9TVFJFQU0gdGVzdHMgYXQgVHVlIE1hciAyMSAyMzo0MDozMSBQU1QgMjAw
Ng0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRlc3Rpbmcgd2l0
aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZToNCi91c3IvcGtnL25ldHBlcmYvbmV0cGVy
ZiAtdCBUQ1BfU1RSRUFNIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMgLUkgOTksNSAt
LSAtcyAzMjc2OCAtUyAzMjc2OCAtbSA0MDk2DQoNClRDUCBTVFJFQU0gVEVTVCB0byAxOTIu
MTY4LjQuMyA6ICsvLTIuNSUgQCA5OSUgY29uZi4gOiBoaXN0b2dyYW0NClJlY3YgICBTZW5k
ICAgIFNlbmQgICAgICAgICAgICAgICAgICAgICAgICAgIA0KU29ja2V0IFNvY2tldCAgTWVz
c2FnZSAgRWxhcHNlZCAgICAgICAgICAgICAgDQpTaXplICAgU2l6ZSAgICBTaXplICAgICBU
aW1lICAgICBUaHJvdWdocHV0ICANCmJ5dGVzICBieXRlcyAgIGJ5dGVzICAgIHNlY3MuICAg
IDEwXjZiaXRzL3NlYyAgDQoNCiAzMjc2OCAgMzI3NjggICA0MDk2ICAgIDYwLjAzICAgICAz
MjYuMzIgICANCg0KDQpTdGFydGluZyAxLDEgVENQX1JSIHRlc3RzIGF0IFR1ZSBNYXIgMjEg
MjM6NDQ6MzEgUFNUIDIwMDYNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQpUZXN0aW5nIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmU6DQovdXNyL3Br
Zy9uZXRwZXJmL25ldHBlcmYgLXQgVENQX1JSIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEw
LDMgLUkgOTksNSAtLSAtciAxLDENCg0KVENQIFJFUVVFU1QvUkVTUE9OU0UgVEVTVCB0byAx
OTIuMTY4LjQuMyA6ICsvLTIuNSUgQCA5OSUgY29uZi4gOiBoaXN0b2dyYW0NCkxvY2FsIC9S
ZW1vdGUNClNvY2tldCBTaXplICAgUmVxdWVzdCAgUmVzcC4gICBFbGFwc2VkICBUcmFucy4N
ClNlbmQgICBSZWN2ICAgU2l6ZSAgICAgU2l6ZSAgICBUaW1lICAgICBSYXRlICAgICAgICAg
DQpieXRlcyAgQnl0ZXMgIGJ5dGVzICAgIGJ5dGVzICAgc2Vjcy4gICAgcGVyIHNlYyAgIA0K
DQozMjc2OCAgMzI3NjggIDEgICAgICAgIDEgICAgICAgNjAuMDIgICAgMzk3Ny44MSAgIA0K
MzI3NjggIDMyNzY4IA0KDQoNClN0YXJ0aW5nIDEsMSBVRFBfUlIgdGVzdHMgYXQgVHVlIE1h
ciAyMSAyMzo0Nzo0MyBQU1QgMjAwNg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NClRlc3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZToNCi91
c3IvcGtnL25ldHBlcmYvbmV0cGVyZiAtdCBVRFBfUlIgLWwgNjAgLUggMTkyLjE2OC40LjMg
LWkgMTAsMyAtSSA5OSw1IC0tIC1yIDEsMQ0KDQpVRFAgUkVRVUVTVC9SRVNQT05TRSBURVNU
IHRvIDE5Mi4xNjguNC4zIDogKy8tMi41JSBAIDk5JSBjb25mLiA6IGhpc3RvZ3JhbQ0KISEh
IFdBUk5JTkcNCiEhISBEZXNpcmVkIGNvbmZpZGVuY2Ugd2FzIG5vdCBhY2hpZXZlZCB3aXRo
aW4gdGhlIHNwZWNpZmllZCBpdGVyYXRpb25zLg0KISEhIFRoaXMgaW1wbGllcyB0aGF0IHRo
ZXJlIHdhcyB2YXJpYWJpbGl0eSBpbiB0aGUgdGVzdCBlbnZpcm9ubWVudCB0aGF0DQohISEg
bXVzdCBiZSBpbnZlc3RpZ2F0ZWQgYmVmb3JlIGdvaW5nIGZ1cnRoZXIuDQohISEgQ29uZmlk
ZW5jZSBpbnRlcnZhbHM6IFRocm91Z2hwdXQgICAgICA6IDI0LjQlDQohISEgICAgICAgICAg
ICAgICAgICAgICAgIExvY2FsIENQVSB1dGlsICA6ICAwLjAlDQohISEgICAgICAgICAgICAg
ICAgICAgICAgIFJlbW90ZSBDUFUgdXRpbCA6ICAwLjAlDQoNCkxvY2FsIC9SZW1vdGUNClNv
Y2tldCBTaXplICAgUmVxdWVzdCAgUmVzcC4gICBFbGFwc2VkICBUcmFucy4NClNlbmQgICBS
ZWN2ICAgU2l6ZSAgICAgU2l6ZSAgICBUaW1lICAgICBSYXRlICAgICAgICAgDQpieXRlcyAg
Qnl0ZXMgIGJ5dGVzICAgIGJ5dGVzICAgc2Vjcy4gICAgcGVyIHNlYyAgIA0KDQo5MjE2ICAg
NDE2MDAgIDEgICAgICAgIDEgICAgICAgNjAuMDIgICAgMzk3NS42NyAgIA0KOTIxNiAgIDQx
NjAwIA0KDQoNClN0YXJ0aW5nIDUxMiw0IFVEUF9SUiB0ZXN0cyBhdCBUdWUgTWFyIDIxIDIz
OjU3OjE5IFBTVCAyMDA2DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KVGVzdGluZyB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lOg0KL3Vzci9wa2cv
bmV0cGVyZi9uZXRwZXJmIC10IFVEUF9SUiAtbCA2MCAtSCAxOTIuMTY4LjQuMyAtaSAxMCwz
IC1JIDk5LDUgLS0gLXIgNTE2LDQNCg0KVURQIFJFUVVFU1QvUkVTUE9OU0UgVEVTVCB0byAx
OTIuMTY4LjQuMyA6ICsvLTIuNSUgQCA5OSUgY29uZi4gOiBoaXN0b2dyYW0NCiEhISBXQVJO
SU5HDQohISEgRGVzaXJlZCBjb25maWRlbmNlIHdhcyBub3QgYWNoaWV2ZWQgd2l0aGluIHRo
ZSBzcGVjaWZpZWQgaXRlcmF0aW9ucy4NCiEhISBUaGlzIGltcGxpZXMgdGhhdCB0aGVyZSB3
YXMgdmFyaWFiaWxpdHkgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQgdGhhdA0KISEhIG11c3Qg
YmUgaW52ZXN0aWdhdGVkIGJlZm9yZSBnb2luZyBmdXJ0aGVyLg0KISEhIENvbmZpZGVuY2Ug
aW50ZXJ2YWxzOiBUaHJvdWdocHV0ICAgICAgOiAxNzguNiUNCiEhISAgICAgICAgICAgICAg
ICAgICAgICAgTG9jYWwgQ1BVIHV0aWwgIDogIDAuMCUNCiEhISAgICAgICAgICAgICAgICAg
ICAgICAgUmVtb3RlIENQVSB1dGlsIDogIDAuMCUNCg0KTG9jYWwgL1JlbW90ZQ0KU29ja2V0
IFNpemUgICBSZXF1ZXN0ICBSZXNwLiAgIEVsYXBzZWQgIFRyYW5zLg0KU2VuZCAgIFJlY3Yg
ICBTaXplICAgICBTaXplICAgIFRpbWUgICAgIFJhdGUgICAgICAgICANCmJ5dGVzICBCeXRl
cyAgYnl0ZXMgICAgYnl0ZXMgICBzZWNzLiAgICBwZXIgc2VjICAgDQoNCjkyMTYgICA0MTYw
MCAgNTE2ICAgICAgNCAgICAgICA2MC4wMSAgICAzOTQ2LjcxICAgDQo5MjE2ICAgNDE2MDAg
DQpTdGFydGluZyAzMng0IFVEUF9TVFJFQU0gdGVzdHMgYXQgV2VkIE1hciAyMiAwMDowNjo1
NSBQU1QgMjAwNg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRl
c3Rpbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZToNCi91c3IvcGtnL25ldHBl
cmYvbmV0cGVyZiAtdCBVRFBfU1RSRUFNIC1sIDYwIC1IIDE5Mi4xNjguNC4zIC1pIDEwLDMg
LUkgOTksNSAtLSAtcyAzMjc2OCAtUyAzMjc2OCAtbSA0MDk2DQoNClVEUCBVTklESVJFQ1RJ
T05BTCBTRU5EIFRFU1QgdG8gMTkyLjE2OC40LjMgOiArLy0yLjUlIEAgOTklIGNvbmYuIDog
aGlzdG9ncmFtDQpTb2NrZXQgIE1lc3NhZ2UgIEVsYXBzZWQgICAgICBNZXNzYWdlcyAgICAg
ICAgICAgICAgICANClNpemUgICAgU2l6ZSAgICAgVGltZSAgICAgICAgIE9rYXkgRXJyb3Jz
ICAgVGhyb3VnaHB1dA0KYnl0ZXMgICBieXRlcyAgICBzZWNzICAgICAgICAgICAgIyAgICAg
ICMgICAxMF42Yml0cy9zZWMNCg0KIDMyNzY4ICAgIDQwOTYgICA2MC4wMSAgICAgIDk1MjYy
NiAgICA3NzggICAgIDUyMC4xMw0KIDQxNjAwICAgICAgICAgICA2MC4wMSAgICAgIDc5ODI2
MiAgICAgICAgICAgIDQzNS44NQ0KDQoNCg0KU3RhcnRpbmcgMzJ4MSBVRFBfU1RSRUFNIHRl
c3RzIGF0IFdlZCBNYXIgMjIgMDA6MTM6MTkgUFNUIDIwMDYNCg0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUZXN0aW5nIHdpdGggdGhlIGZvbGxvd2luZyBjb21t
YW5kIGxpbmU6DQovdXNyL3BrZy9uZXRwZXJmL25ldHBlcmYgLXQgVURQX1NUUkVBTSAtbCA2
MCAtSCAxOTIuMTY4LjQuMyAtaSAxMCwzIC1JIDk5LDUgLS0gLXMgMzI3NjggLVMgMzI3Njgg
LW0gMTAyNA0KDQpVRFAgVU5JRElSRUNUSU9OQUwgU0VORCBURVNUIHRvIDE5Mi4xNjguNC4z
IDogKy8tMi41JSBAIDk5JSBjb25mLiA6IGhpc3RvZ3JhbQ0KU29ja2V0ICBNZXNzYWdlICBF
bGFwc2VkICAgICAgTWVzc2FnZXMgICAgICAgICAgICAgICAgDQpTaXplICAgIFNpemUgICAg
IFRpbWUgICAgICAgICBPa2F5IEVycm9ycyAgIFRocm91Z2hwdXQNCmJ5dGVzICAgYnl0ZXMg
ICAgc2VjcyAgICAgICAgICAgICMgICAgICAjICAgMTBeNmJpdHMvc2VjDQoNCiAzMjc2OCAg
ICAxMDI0ICAgNjAuMDIgICAgIDI1MDMzMTcgICAgICAwICAgICAzNDEuNzANCiA0MTYwMCAg
ICAgICAgICAgNjAuMDIgICAgIDI0ODUzNzQgICAgICAgICAgICAzMzkuMjUNCg0KDQoNClRl
c3RzIGNvbXBsZXRlZCBhdCBXZWQgTWFyIDIyIDAwOjE4OjM5IFBTVCAyMDA2DQoNCklmIHlv
dSB3aXNoIHRvIHN1Ym1pdCB0aGVzZSByZXN1bHRzIHRvIHRoZSBuZXRwZXJmIGRhdGFiYXNl
IGF0DQpodHRwOi8vd3d3LmN1cC5ocC5jb20vbmV0cGVyZi9OZXRwZXJmUGFnZS5odG1sLCBw
bGVhc2Ugc3VibWl0IGVhY2gNCmRhdGFwb2ludCBpbmRpdmlkdWFsbHkuIEluZGl2aWR1YWwg
ZGF0YXBvaW50cyBhcmUgc2VwYXJhdGVkIGJ5DQpsaW5lcyBvZiBkYXNoZXMuDQprZXJuLXRl
c3Q6cml6ICAvdXNyL3BrZy9uZXRwZXJmPiANDQprZXJuLXRlc3Q6cml6ICAvdXNyL3BrZy9u
ZXRwZXJmPiBleGl0DQ0KZXhpdA0KClNjcmlwdCBkb25lIG9uIFdlZCBNYXIgMjIgMDY6Mjg6
MTMgMjAwNgo=
--------------080308030800080301050408--

--------------enig1FF801DE32736A1AA1BE5DD9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBRCq2crOuUtxCgar5AQMCeAP9EISemajGpoqe/Q/I9zKSSmmmebHT+ELy
1qQ6tQ1Loz8vJYM9Co8pgtmvCceQIc2vhGx3G4acOkb5bCe7t5GSYsraaIbkGdAs
TKlVSkdqSGbM6momdpC5j7AgA3/2JUeaKnXJ471fcLIlLWBzLhxWe9xokDk5172W
68Zf2ydZqQo=
=1Gpq
-----END PGP SIGNATURE-----

--------------enig1FF801DE32736A1AA1BE5DD9--