Fwd: Regarding CHIPSEC

Naresh Bhat <[email protected]> Thu, 28 Jun 2018 12:24:16 +0530
Newsgroups dev.linux.lists.oe-chipsec
Message-ID <CAFoFrHa-aPVoi5R5kuS47rYOP+M_PWSObg-vuT18+K8aMa6MpA@mail.gmail.com>
--===============5409460440770050067==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

Hi,

Yuriy, Lee, John and Alex Thank you very much.  We (Linaro) really looking
forward to work with you guys and port CHIPSEC on ARM64.
I am taking the thread discussion on CHIPSEC mailing list which is setup by
Lee couple of months ago. Feel free to subscribe to CHIPSEC mailing list
https://lists.01.org/mailman/listinfo/chipsec

We can also have #chipsec IRC channel to discuss about development.

When can we expect a opensource codebase for CHIPSEC ?

Regards
-Naresh Bhat

Forwarded conversation
Subject: Re: Regarding CHIPSEC
------------------------

From: Lee Fisher <[email protected]>
Date: 28 June 2018 at 00:59
To: Naresh Bhat <[email protected]>, Leif Lindholm <
[email protected]>, Yuriy Bulygin <[email protected]>, "Bjorge,
Erik C" <[email protected]>


On 06/26/2018 11:21 PM, Naresh Bhat wrote:
> Hi Lee,
>
> What is the status on CHIPSEC.  Is it 100% opensource ?  Can we port on
> ARM64 ?
>
> Regards
> -Naresh Bhat

[[

Switching from my personal blibbet(a)gmail emails to my work account, as
I'm deprecating my old personal account...

Adding Leif, because I was going to email him nearly same
comments/questions before you sent this email. :-)

Adding Erik of CHIPSEC team at Intel.

Adding Yuri of Eclypsium.

Summary: can we please understand current status of ARM port of CHIPSEC,
Linaro has an interest. I'm currently porting the Windows driver to
Intel and can help with ARM port. Eclypsium already has done a port, no
use in duplicating effort. Linaro started a port of LUV, but seems to
have stopped, but without CHIPSEC LUV is a lot less useful.

]]

Hi,

Yes, CHIPSEC project is GPL. CHIPSEC team has expressed interest in
ports from other architectures. Granted, most of those who've expressed
that interest have now left Intel and are working at Eclypsium :-) but I
think Erik feels this way. Given GPL, I presume this means you could
fork CHIPSEC and have a Linaro-CHIPSEC. But I'd prefer there be a single
CHIPSEC project with multiple architectures.

Yuri, now at Eclypsium, was formerly at Intel and as I understand it,
was CHIPSEC creator. He demoed CHIPSEC running on ARM last summer at DEF
CON (or Black Hat). He mentioned on Twitter (or maybe elsewhere, I
forget) that he was going to release it. Unclear of current status. IMO,
it would seem like a bad idea for Linaro to do an ARM port, if Eclypsium
is about to release their existing ARM port: why waste effort? I'd love
to see Linaro make LUV as capable as possible, ignoring CHIPSEC for the
moment, until existing port is clarified.

I hope CHIPSEC gets both AArch32 *AND* AArch64 ports: both chips need
security, and both would share common tests, and CHIPSEC already has
32/64 codebase in place. There's a lot of overlap in the 32- and 64-bit
code, it would not be a 2x effort. Same goes for LUV, there are LUV-32
and LUV-64 builds, and needs 32- and 64-bit versions of CHIPSEC.

I'm currently updating CHIPSEC's Windows kernel driver, it currently
supports Win7-era build.exe-based build files, and Win10 build tools
require a new msbuild.exe build files -- and need Visual Studio to build
them. Note that Win10 toolchain has ARM support alongside Intel. As soon
as I have CHIPSEC Windows kernel driver ported to Win10, I can now start
targeting ARM, alongside Intel. The Linux and Windows and Mac kernel
drivers all have their own OS-centric build files, and assembler-centric
formats (NASM on *nix, MASM on Windows), and x86 and x64 versions of the
asm file. BUT, the core logic in each asm file is nearly identical. But
they're nearly all Intel-centric, x86 and x64. CHIPSEC needs ARM-centric
equivalents in the kernel driver, for EACH OS, not just Linux. I realize
the "L" in "Linaro" means LINUX. But ARM works on Windows now, so ARM
Ltd has an interest in CHIPSEC on Windows. Is there a Winaro group, with
someone like Naresh thinking about the Windows ARM port of CHIPSEC? Once
Linux CHIPSEC kernel driver tree has new AArch32 and AArch64 subdirs
alongside existing x86 and x64 subdirs, and existing NASM/MASM files are
duplicated to ARM trees and gutted of Intel-centric instructions, and
new ARM-centric instructions are added, then CHIPSEC will not but useful
for most live analysis. Without a kernel driver, it seems mostly useful
for offline analysis (eg, of a rom.bin). I'm happy to help on ARM port.
Especially with Windows side, presuming Linaro has little interest and
there is no Winaro, and I'm stuck having to have a Windows build
environment -- with Intel *AND* ARM support -- and an interest in
CHIPSEC. I'd like to help ARM with Windows ARM port of CHIPSEC. But I'd
like to understand Eclypsium port clarified before I start duplicating code.

Thanks,
Lee


----------
From: Yuriy Bulygin <[email protected]>
Date: 28 June 2018 at 01:18
To: Lee Fisher <[email protected]>
Cc: Naresh Bhat <[email protected]>, Leif Lindholm <
[email protected]>, "Bjorge, Erik C" <[email protected]>,
john(a)eclypsium.com, alex(a)eclypsium.com


Thanks Lee! Copying Alex and John on our side...
Naresh, Leif, pleasure to virtually meet you!

Perhaps a call some time in the next couple of weeks?

yuriy

=E2=80=94
Yuriy Bulygin
CEO, Eclypsium, Inc.
https://www.eclypsium.com

----------
From: Bjorge, Erik C <[email protected]>
Date: 28 June 2018 at 02:04
To: Yuriy Bulygin <[email protected]>, Lee Fisher <[email protected]>
Cc: Naresh Bhat <[email protected]>, Leif Lindholm <
[email protected]>, "john(a)eclypsium.com" <[email protected]>,=
 "
alex(a)eclypsium.com" <[email protected]>


This sounds good to me.  Improving the portability of the tool will be a
good addition.  I look forward to working with all of you on these
improvements.



Thanks,

-Erik



*From:* Yuriy Bulygin [mailto:yuriy(a)eclypsium.com]
*Sent:* Wednesday, June 27, 2018 12:49 PM
*To:* Lee Fisher <[email protected]>
*Cc:* Naresh Bhat <[email protected]>; Leif Lindholm <
[email protected]>; Bjorge, Erik C <[email protected]>;
john(a)eclypsium.com; alex(a)eclypsium.com
*Subject:* Re: Regarding CHIPSEC

--===============5409460440770050067==
Content-Type: text/html
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"

PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PkhpLDxicj48YnI+WXVyaXksIExlZSwgSm9obiBhbmQg
QWxleCBUaGFuayB5b3UgdmVyeSBtdWNoLsKgIFdlIChMaW5hcm8pIHJlYWxseSBsb29raW5nIGZv
cndhcmQgdG8gd29yayB3aXRoIHlvdSBndXlzIGFuZCBwb3J0IENISVBTRUMgb24gQVJNNjQuwqAg
PGJyPkkgYW0gdGFraW5nIHRoZSB0aHJlYWQgZGlzY3Vzc2lvbiBvbiBDSElQU0VDIG1haWxpbmcg
bGlzdCB3aGljaCBpcyBzZXR1cCBieSBMZWUgY291cGxlIG9mIG1vbnRocyBhZ28uIEZlZWwgZnJl
ZSB0byBzdWJzY3JpYmUgdG8gQ0hJUFNFQyBtYWlsaW5nIGxpc3QgPGEgaHJlZj0iaHR0cHM6Ly9s
aXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9jaGlwc2VjIj5odHRwczovL2xpc3RzLjAxLm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2NoaXBzZWM8L2E+IDxicj48YnI+PC9kaXY+V2UgY2FuIGFsc28g
aGF2ZSAjY2hpcHNlYyBJUkMgY2hhbm5lbCB0byBkaXNjdXNzIGFib3V0IGRldmVsb3BtZW50Ljxi
cj48YnI+PC9kaXY+V2hlbiBjYW4gd2UgZXhwZWN0IGEgb3BlbnNvdXJjZSBjb2RlYmFzZSBmb3Ig
Q0hJUFNFQyA/PGJyPjxkaXY+wqAgPGJyPjxkaXY+UmVnYXJkczxicj48L2Rpdj48ZGl2Pi1OYXJl
c2ggQmhhdDxicj48L2Rpdj48ZGl2PjxkaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOmxhcmdlO2ZvbnQtd2VpZ2h0OmJvbGQiPkZvcndhcmRlZCBj
b252ZXJzYXRpb248L3NwYW4+PGJyPlN1YmplY3Q6IDxiIGNsYXNzPSJnbWFpbF9zZW5kZXJuYW1l
Ij5SZTogUmVnYXJkaW5nIENISVBTRUM8L2I+PGJyPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxi
cj48YnI+PHNwYW4gY2xhc3M9ImdtYWlsX3F1b3RlIj48Zm9udCBjb2xvcj0iIzg4OCI+RnJvbTog
PGIgY2xhc3M9ImdtYWlsX3NlbmRlcm5hbWUiPkxlZSBGaXNoZXI8L2I+IDxzcGFuIGRpcj0ibHRy
Ij4mbHQ7PGEgaHJlZj0ibWFpbHRvOmxlZUBwcmVvc3NlYy5jb20iPmxlZUBwcmVvc3NlYy5jb208
L2E+Jmd0Ozwvc3Bhbj48YnI+RGF0ZTogMjggSnVuZSAyMDE4IGF0IDAwOjU5PGJyPlRvOiBOYXJl
c2ggQmhhdCAmbHQ7PGEgaHJlZj0ibWFpbHRvOm5hcmVzaC5iaGF0QGxpbmFyby5vcmciPm5hcmVz
aC5iaGF0QGxpbmFyby5vcmc8L2E+Jmd0OywgTGVpZiBMaW5kaG9sbSAmbHQ7PGEgaHJlZj0ibWFp
bHRvOmxlaWYubGluZGhvbG1AbGluYXJvLm9yZyI+bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPC9h
PiZndDssIFl1cml5IEJ1bHlnaW4gJmx0OzxhIGhyZWY9Im1haWx0bzp5dXJpeUBlY2x5cHNpdW0u
Y29tIj55dXJpeUBlY2x5cHNpdW0uY29tPC9hPiZndDssICZxdW90O0Jqb3JnZSwgRXJpayBDJnF1
b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86ZXJpay5jLmJqb3JnZUBpbnRlbC5jb20iPmVyaWsuYy5i
am9yZ2VAaW50ZWwuY29tPC9hPiZndDs8YnI+PC9mb250Pjxicj48L3NwYW4+PGJyPk9uIDA2LzI2
LzIwMTggMTE6MjEgUE0sIE5hcmVzaCBCaGF0IHdyb3RlOjxicj4KJmd0OyBIaSBMZWUsPGJyPgom
Z3Q7PGJyPgomZ3Q7IFdoYXQgaXMgdGhlIHN0YXR1cyBvbiBDSElQU0VDLsKgIElzIGl0IDEwMCUg
b3BlbnNvdXJjZSA/wqAgQ2FuIHdlIHBvcnQgb248YnI+CiZndDsgQVJNNjQgPzxicj4KJmd0Ozxi
cj4KJmd0OyBSZWdhcmRzPGJyPgomZ3Q7IC1OYXJlc2ggQmhhdDxicj4KPGJyPgpbWzxicj4KPGJy
PgpTd2l0Y2hpbmcgZnJvbSBteSBwZXJzb25hbCBibGliYmV0QGdtYWlsIGVtYWlscyB0byBteSB3
b3JrIGFjY291bnQsIGFzPGJyPgpJJiMzOTttIGRlcHJlY2F0aW5nIG15IG9sZCBwZXJzb25hbCBh
Y2NvdW50Li4uPGJyPgo8YnI+CkFkZGluZyBMZWlmLCBiZWNhdXNlIEkgd2FzIGdvaW5nIHRvIGVt
YWlsIGhpbSBuZWFybHkgc2FtZTxicj4KY29tbWVudHMvcXVlc3Rpb25zIGJlZm9yZSB5b3Ugc2Vu
dCB0aGlzIGVtYWlsLiA6LSk8YnI+Cjxicj4KQWRkaW5nIEVyaWsgb2YgQ0hJUFNFQyB0ZWFtIGF0
IEludGVsLjxicj4KPGJyPgpBZGRpbmcgWXVyaSBvZiBFY2x5cHNpdW0uPGJyPgo8YnI+ClN1bW1h
cnk6IGNhbiB3ZSBwbGVhc2UgdW5kZXJzdGFuZCBjdXJyZW50IHN0YXR1cyBvZiBBUk0gcG9ydCBv
ZiBDSElQU0VDLDxicj4KTGluYXJvIGhhcyBhbiBpbnRlcmVzdC4gSSYjMzk7bSBjdXJyZW50bHkg
cG9ydGluZyB0aGUgV2luZG93cyBkcml2ZXIgdG88YnI+CkludGVsIGFuZCBjYW4gaGVscCB3aXRo
IEFSTSBwb3J0LiBFY2x5cHNpdW0gYWxyZWFkeSBoYXMgZG9uZSBhIHBvcnQsIG5vPGJyPgp1c2Ug
aW4gZHVwbGljYXRpbmcgZWZmb3J0LiBMaW5hcm8gc3RhcnRlZCBhIHBvcnQgb2YgTFVWLCBidXQg
c2VlbXMgdG88YnI+CmhhdmUgc3RvcHBlZCwgYnV0IHdpdGhvdXQgQ0hJUFNFQyBMVVYgaXMgYSBs
b3QgbGVzcyB1c2VmdWwuPGJyPgo8YnI+Cl1dPGJyPgo8YnI+CkhpLDxicj4KPGJyPgpZZXMsIENI
SVBTRUMgcHJvamVjdCBpcyBHUEwuIENISVBTRUMgdGVhbSBoYXMgZXhwcmVzc2VkIGludGVyZXN0
IGluPGJyPgpwb3J0cyBmcm9tIG90aGVyIGFyY2hpdGVjdHVyZXMuIEdyYW50ZWQsIG1vc3Qgb2Yg
dGhvc2Ugd2hvJiMzOTt2ZSBleHByZXNzZWQ8YnI+CnRoYXQgaW50ZXJlc3QgaGF2ZSBub3cgbGVm
dCBJbnRlbCBhbmQgYXJlIHdvcmtpbmcgYXQgRWNseXBzaXVtIDotKSBidXQgSTxicj4KdGhpbmsg
RXJpayBmZWVscyB0aGlzIHdheS4gR2l2ZW4gR1BMLCBJIHByZXN1bWUgdGhpcyBtZWFucyB5b3Ug
Y291bGQ8YnI+CmZvcmsgQ0hJUFNFQyBhbmQgaGF2ZSBhIExpbmFyby1DSElQU0VDLiBCdXQgSSYj
Mzk7ZCBwcmVmZXIgdGhlcmUgYmUgYSBzaW5nbGU8YnI+CkNISVBTRUMgcHJvamVjdCB3aXRoIG11
bHRpcGxlIGFyY2hpdGVjdHVyZXMuPGJyPgo8YnI+Cll1cmksIG5vdyBhdCBFY2x5cHNpdW0sIHdh
cyBmb3JtZXJseSBhdCBJbnRlbCBhbmQgYXMgSSB1bmRlcnN0YW5kIGl0LDxicj4Kd2FzIENISVBT
RUMgY3JlYXRvci4gSGUgZGVtb2VkIENISVBTRUMgcnVubmluZyBvbiBBUk0gbGFzdCBzdW1tZXIg
YXQgREVGPGJyPgpDT04gKG9yIEJsYWNrIEhhdCkuIEhlIG1lbnRpb25lZCBvbiBUd2l0dGVyIChv
ciBtYXliZSBlbHNld2hlcmUsIEk8YnI+CmZvcmdldCkgdGhhdCBoZSB3YXMgZ29pbmcgdG8gcmVs
ZWFzZSBpdC4gVW5jbGVhciBvZiBjdXJyZW50IHN0YXR1cy4gSU1PLDxicj4KaXQgd291bGQgc2Vl
bSBsaWtlIGEgYmFkIGlkZWEgZm9yIExpbmFybyB0byBkbyBhbiBBUk0gcG9ydCwgaWYgRWNseXBz
aXVtPGJyPgppcyBhYm91dCB0byByZWxlYXNlIHRoZWlyIGV4aXN0aW5nIEFSTSBwb3J0OiB3aHkg
d2FzdGUgZWZmb3J0PyBJJiMzOTtkIGxvdmU8YnI+CnRvIHNlZSBMaW5hcm8gbWFrZSBMVVYgYXMg
Y2FwYWJsZSBhcyBwb3NzaWJsZSwgaWdub3JpbmcgQ0hJUFNFQyBmb3IgdGhlPGJyPgptb21lbnQs
IHVudGlsIGV4aXN0aW5nIHBvcnQgaXMgY2xhcmlmaWVkLjxicj4KPGJyPgpJIGhvcGUgQ0hJUFNF
QyBnZXRzIGJvdGggQUFyY2gzMiAqQU5EKiBBQXJjaDY0IHBvcnRzOiBib3RoIGNoaXBzIG5lZWQ8
YnI+CnNlY3VyaXR5LCBhbmQgYm90aCB3b3VsZCBzaGFyZSBjb21tb24gdGVzdHMsIGFuZCBDSElQ
U0VDIGFscmVhZHkgaGFzPGJyPgozMi82NCBjb2RlYmFzZSBpbiBwbGFjZS4gVGhlcmUmIzM5O3Mg
YSBsb3Qgb2Ygb3ZlcmxhcCBpbiB0aGUgMzItIGFuZCA2NC1iaXQ8YnI+CmNvZGUsIGl0IHdvdWxk
IG5vdCBiZSBhIDJ4IGVmZm9ydC4gU2FtZSBnb2VzIGZvciBMVVYsIHRoZXJlIGFyZSBMVVYtMzI8
YnI+CmFuZCBMVVYtNjQgYnVpbGRzLCBhbmQgbmVlZHMgMzItIGFuZCA2NC1iaXQgdmVyc2lvbnMg
b2YgQ0hJUFNFQy48YnI+Cjxicj4KSSYjMzk7bSBjdXJyZW50bHkgdXBkYXRpbmcgQ0hJUFNFQyYj
Mzk7cyBXaW5kb3dzIGtlcm5lbCBkcml2ZXIsIGl0IGN1cnJlbnRseTxicj4Kc3VwcG9ydHMgV2lu
Ny1lcmEgYnVpbGQuZXhlLWJhc2VkIGJ1aWxkIGZpbGVzLCBhbmQgV2luMTAgYnVpbGQgdG9vbHM8
YnI+CnJlcXVpcmUgYSBuZXcgbXNidWlsZC5leGUgYnVpbGQgZmlsZXMgLS0gYW5kIG5lZWQgVmlz
dWFsIFN0dWRpbyB0byBidWlsZDxicj4KdGhlbS4gTm90ZSB0aGF0IFdpbjEwIHRvb2xjaGFpbiBo
YXMgQVJNIHN1cHBvcnQgYWxvbmdzaWRlIEludGVsLiBBcyBzb29uPGJyPgphcyBJIGhhdmUgQ0hJ
UFNFQyBXaW5kb3dzIGtlcm5lbCBkcml2ZXIgcG9ydGVkIHRvIFdpbjEwLCBJIGNhbiBub3cgc3Rh
cnQ8YnI+CnRhcmdldGluZyBBUk0sIGFsb25nc2lkZSBJbnRlbC4gVGhlIExpbnV4IGFuZCBXaW5k
b3dzIGFuZCBNYWMga2VybmVsPGJyPgpkcml2ZXJzIGFsbCBoYXZlIHRoZWlyIG93biBPUy1jZW50
cmljIGJ1aWxkIGZpbGVzLCBhbmQgYXNzZW1ibGVyLWNlbnRyaWM8YnI+CmZvcm1hdHMgKE5BU00g
b24gKm5peCwgTUFTTSBvbiBXaW5kb3dzKSwgYW5kIHg4NiBhbmQgeDY0IHZlcnNpb25zIG9mIHRo
ZTxicj4KYXNtIGZpbGUuIEJVVCwgdGhlIGNvcmUgbG9naWMgaW4gZWFjaCBhc20gZmlsZSBpcyBu
ZWFybHkgaWRlbnRpY2FsLiBCdXQ8YnI+CnRoZXkmIzM5O3JlIG5lYXJseSBhbGwgSW50ZWwtY2Vu
dHJpYywgeDg2IGFuZCB4NjQuIENISVBTRUMgbmVlZHMgQVJNLWNlbnRyaWM8YnI+CmVxdWl2YWxl
bnRzIGluIHRoZSBrZXJuZWwgZHJpdmVyLCBmb3IgRUFDSCBPUywgbm90IGp1c3QgTGludXguIEkg
cmVhbGl6ZTxicj4KdGhlICZxdW90O0wmcXVvdDsgaW4gJnF1b3Q7TGluYXJvJnF1b3Q7IG1lYW5z
IExJTlVYLiBCdXQgQVJNIHdvcmtzIG9uIFdpbmRvd3Mgbm93LCBzbyBBUk08YnI+Ckx0ZCBoYXMg
YW4gaW50ZXJlc3QgaW4gQ0hJUFNFQyBvbiBXaW5kb3dzLiBJcyB0aGVyZSBhIFdpbmFybyBncm91
cCwgd2l0aDxicj4Kc29tZW9uZSBsaWtlIE5hcmVzaCB0aGlua2luZyBhYm91dCB0aGUgV2luZG93
cyBBUk0gcG9ydCBvZiBDSElQU0VDPyBPbmNlPGJyPgpMaW51eCBDSElQU0VDIGtlcm5lbCBkcml2
ZXIgdHJlZSBoYXMgbmV3IEFBcmNoMzIgYW5kIEFBcmNoNjQgc3ViZGlyczxicj4KYWxvbmdzaWRl
IGV4aXN0aW5nIHg4NiBhbmQgeDY0IHN1YmRpcnMsIGFuZCBleGlzdGluZyBOQVNNL01BU00gZmls
ZXMgYXJlPGJyPgpkdXBsaWNhdGVkIHRvIEFSTSB0cmVlcyBhbmQgZ3V0dGVkIG9mIEludGVsLWNl
bnRyaWMgaW5zdHJ1Y3Rpb25zLCBhbmQ8YnI+Cm5ldyBBUk0tY2VudHJpYyBpbnN0cnVjdGlvbnMg
YXJlIGFkZGVkLCB0aGVuIENISVBTRUMgd2lsbCBub3QgYnV0IHVzZWZ1bDxicj4KZm9yIG1vc3Qg
bGl2ZSBhbmFseXNpcy4gV2l0aG91dCBhIGtlcm5lbCBkcml2ZXIsIGl0IHNlZW1zIG1vc3RseSB1
c2VmdWw8YnI+CmZvciBvZmZsaW5lIGFuYWx5c2lzIChlZywgb2YgYSByb20uYmluKS4gSSYjMzk7
bSBoYXBweSB0byBoZWxwIG9uIEFSTSBwb3J0Ljxicj4KRXNwZWNpYWxseSB3aXRoIFdpbmRvd3Mg
c2lkZSwgcHJlc3VtaW5nIExpbmFybyBoYXMgbGl0dGxlIGludGVyZXN0IGFuZDxicj4KdGhlcmUg
aXMgbm8gV2luYXJvLCBhbmQgSSYjMzk7bSBzdHVjayBoYXZpbmcgdG8gaGF2ZSBhIFdpbmRvd3Mg
YnVpbGQ8YnI+CmVudmlyb25tZW50IC0tIHdpdGggSW50ZWwgKkFORCogQVJNIHN1cHBvcnQgLS0g
YW5kIGFuIGludGVyZXN0IGluPGJyPgpDSElQU0VDLiBJJiMzOTtkIGxpa2UgdG8gaGVscCBBUk0g
d2l0aCBXaW5kb3dzIEFSTSBwb3J0IG9mIENISVBTRUMuIEJ1dCBJJiMzOTtkPGJyPgpsaWtlIHRv
IHVuZGVyc3RhbmQgRWNseXBzaXVtIHBvcnQgY2xhcmlmaWVkIGJlZm9yZSBJIHN0YXJ0IGR1cGxp
Y2F0aW5nIGNvZGUuPGJyPgo8YnI+ClRoYW5rcyw8YnI+CkxlZTxicj4KPGJyPgo8YnI+LS0tLS0t
LS0tLTxicj48c3BhbiBjbGFzcz0iZ21haWxfcXVvdGUiPjxmb250IGNvbG9yPSIjODg4Ij5Gcm9t
OiA8YiBjbGFzcz0iZ21haWxfc2VuZGVybmFtZSI+WXVyaXkgQnVseWdpbjwvYj4gPHNwYW4gZGly
PSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86eXVyaXlAZWNseXBzaXVtLmNvbSI+eXVyaXlAZWNs
eXBzaXVtLmNvbTwvYT4mZ3Q7PC9zcGFuPjxicj5EYXRlOiAyOCBKdW5lIDIwMTggYXQgMDE6MTg8
YnI+VG86IExlZSBGaXNoZXIgJmx0OzxhIGhyZWY9Im1haWx0bzpsZWVAcHJlb3NzZWMuY29tIj5s
ZWVAcHJlb3NzZWMuY29tPC9hPiZndDs8YnI+Q2M6IE5hcmVzaCBCaGF0ICZsdDs8YSBocmVmPSJt
YWlsdG86bmFyZXNoLmJoYXRAbGluYXJvLm9yZyI+bmFyZXNoLmJoYXRAbGluYXJvLm9yZzwvYT4m
Z3Q7LCBMZWlmIExpbmRob2xtICZsdDs8YSBocmVmPSJtYWlsdG86bGVpZi5saW5kaG9sbUBsaW5h
cm8ub3JnIj5sZWlmLmxpbmRob2xtQGxpbmFyby5vcmc8L2E+Jmd0OywgJnF1b3Q7QmpvcmdlLCBF
cmlrIEMmcXVvdDsgJmx0OzxhIGhyZWY9Im1haWx0bzplcmlrLmMuYmpvcmdlQGludGVsLmNvbSI+
ZXJpay5jLmJqb3JnZUBpbnRlbC5jb208L2E+Jmd0OywgPGEgaHJlZj0ibWFpbHRvOmpvaG5AZWNs
eXBzaXVtLmNvbSI+am9obkBlY2x5cHNpdW0uY29tPC9hPiwgPGEgaHJlZj0ibWFpbHRvOmFsZXhA
ZWNseXBzaXVtLmNvbSI+YWxleEBlY2x5cHNpdW0uY29tPC9hPjxicj48L2ZvbnQ+PGJyPjwvc3Bh
bj48YnI+PGRpdiBkaXI9ImF1dG8iPlRoYW5rcyBMZWUhIENvcHlpbmcgQWxleCBhbmQgSm9obiBv
biBvdXIgc2lkZS4uLjxkaXY+TmFyZXNoLCBMZWlmLCBwbGVhc3VyZSB0byB2aXJ0dWFsbHkgbWVl
dCB5b3UhPGRpdj48YnI+PC9kaXY+PGRpdj5QZXJoYXBzIGEgY2FsbCBzb21lIHRpbWUgaW4gdGhl
IG5leHQgY291cGxlIG9mIHdlZWtzPzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+eXVyaXk8YnI+
PGRpdj48YnI+PGRpdiBpZD0iZ21haWwtbV8tMzUyMTgyMTEwMTcyOTg4NjI1MkFwcGxlTWFpbFNp
Z25hdHVyZSI+PGRpdj7igJQ8L2Rpdj48c3BhbiBjbGFzcz0iZ21haWwtSE9FblpiIj48Zm9udCBj
b2xvcj0iIzg4ODg4OCI+WXVyaXkgQnVseWdpbjxkaXY+Q0VPLMKgPHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxM3B0Ij5FY2x5cHNpdW0sIEluYy48L3NwYW4+PC9kaXY+PGRpdj48YSBocmVmPSJodHRw
czovL3d3dy5lY2x5cHNpdW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cuZWNseXBz
aXVtLmNvbTwvYT48L2Rpdj48L2ZvbnQ+PC9zcGFuPjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+PGJyPi0tLS0tLS0tLS08YnI+PHNwYW4gY2xhc3M9ImdtYWlsX3F1b3Rl
Ij48Zm9udCBjb2xvcj0iIzg4OCI+RnJvbTogPGIgY2xhc3M9ImdtYWlsX3NlbmRlcm5hbWUiPkJq
b3JnZSwgRXJpayBDPC9iPiA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzplcmlr
LmMuYmpvcmdlQGludGVsLmNvbSI+ZXJpay5jLmJqb3JnZUBpbnRlbC5jb208L2E+Jmd0Ozwvc3Bh
bj48YnI+RGF0ZTogMjggSnVuZSAyMDE4IGF0IDAyOjA0PGJyPlRvOiBZdXJpeSBCdWx5Z2luICZs
dDs8YSBocmVmPSJtYWlsdG86eXVyaXlAZWNseXBzaXVtLmNvbSI+eXVyaXlAZWNseXBzaXVtLmNv
bTwvYT4mZ3Q7LCBMZWUgRmlzaGVyICZsdDs8YSBocmVmPSJtYWlsdG86bGVlQHByZW9zc2VjLmNv
bSI+bGVlQHByZW9zc2VjLmNvbTwvYT4mZ3Q7PGJyPkNjOiBOYXJlc2ggQmhhdCAmbHQ7PGEgaHJl
Zj0ibWFpbHRvOm5hcmVzaC5iaGF0QGxpbmFyby5vcmciPm5hcmVzaC5iaGF0QGxpbmFyby5vcmc8
L2E+Jmd0OywgTGVpZiBMaW5kaG9sbSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxlaWYubGluZGhvbG1A
bGluYXJvLm9yZyI+bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPC9hPiZndDssICZxdW90OzxhIGhy
ZWY9Im1haWx0bzpqb2huQGVjbHlwc2l1bS5jb20iPmpvaG5AZWNseXBzaXVtLmNvbTwvYT4mcXVv
dDsgJmx0OzxhIGhyZWY9Im1haWx0bzpqb2huQGVjbHlwc2l1bS5jb20iPmpvaG5AZWNseXBzaXVt
LmNvbTwvYT4mZ3Q7LCAmcXVvdDs8YSBocmVmPSJtYWlsdG86YWxleEBlY2x5cHNpdW0uY29tIj5h
bGV4QGVjbHlwc2l1bS5jb208L2E+JnF1b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86YWxleEBlY2x5
cHNpdW0uY29tIj5hbGV4QGVjbHlwc2l1bS5jb208L2E+Jmd0Ozxicj48L2ZvbnQ+PGJyPjwvc3Bh
bj48YnI+CgoKCgoKPGRpdiBsYW5nPSJFTi1VUyI+CjxkaXYgY2xhc3M9ImdtYWlsLW1fNjIxNzE3
MzUwNjY2OTc0NjY2N1dvcmRTZWN0aW9uMSI+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6cmdiKDMxLDczLDEyNSkiPlRoaXMgc291bmRzIGdvb2QgdG8gbWUuwqAgSW1w
cm92aW5nIHRoZSBwb3J0YWJpbGl0eSBvZiB0aGUgdG9vbCB3aWxsIGJlIGEgZ29vZCBhZGRpdGlv
bi7CoCBJIGxvb2sgZm9yd2FyZCB0byB3b3JraW5nIHdpdGggYWxsIG9mIHlvdSBvbiB0aGVzZSBp
bXByb3ZlbWVudHMuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOnJnYigzMSw3MywxMjUpIj48dT48L3U+wqA8dT48L3U+PC9z
cGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpyZ2IoMzEs
NzMsMTI1KSI+VGhhbmtzLDx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpyZ2IoMzEsNzMsMTI1KSI+LUVyaWs8dT48L3U+PHU+
PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxhIG5hbWU9Im1fNjIxNzE3MzUw
NjY2OTc0NjY2N19fTWFpbEVuZENvbXBvc2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6cmdiKDMxLDcz
LDEyNSkiPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9hPjwvcD4KPGRpdj4KPGRpdiBzdHlsZT0i
Ym9yZGVyLXdpZHRoOjFwdCBtZWRpdW0gbWVkaXVtO2JvcmRlci1zdHlsZTpzb2xpZCBub25lIG5v
bmU7Ym9yZGVyLWNvbG9yOnJnYigyMjUsMjI1LDIyNSkgY3VycmVudGNvbG9yIGN1cnJlbnRjb2xv
cjtwYWRkaW5nOjNwdCAwaW4gMGluIj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGEgbmFtZT0ibV82
MjE3MTczNTA2NjY5NzQ2NjY3X19fX19fcmVwbHlzZXBhcmF0b3IiPjwvYT48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IFl1cml5IEJ1bHlnaW4gW21haWx0
bzo8YSBocmVmPSJtYWlsdG86eXVyaXlAZWNseXBzaXVtLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnl1
cml5QGVjbHlwc2l1bS5jb208L2E+XQo8YnI+CjxiPlNlbnQ6PC9iPiBXZWRuZXNkYXksIEp1bmUg
MjcsIDIwMTggMTI6NDkgUE08YnI+CjxiPlRvOjwvYj4gTGVlIEZpc2hlciAmbHQ7PGEgaHJlZj0i
bWFpbHRvOmxlZUBwcmVvc3NlYy5jb20iIHRhcmdldD0iX2JsYW5rIj5sZWVAcHJlb3NzZWMuY29t
PC9hPiZndDs8YnI+CjxiPkNjOjwvYj4gTmFyZXNoIEJoYXQgJmx0OzxhIGhyZWY9Im1haWx0bzpu
YXJlc2guYmhhdEBsaW5hcm8ub3JnIiB0YXJnZXQ9Il9ibGFuayI+bmFyZXNoLmJoYXRAbGluYXJv
Lm9yZzwvYT4mZ3Q7OyBMZWlmIExpbmRob2xtICZsdDs8YSBocmVmPSJtYWlsdG86bGVpZi5saW5k
aG9sbUBsaW5hcm8ub3JnIiB0YXJnZXQ9Il9ibGFuayI+bGVpZi5saW5kaG9sbUBsaW5hcm8ub3Jn
PC9hPiZndDs7IEJqb3JnZSwgRXJpayBDICZsdDs8YSBocmVmPSJtYWlsdG86ZXJpay5jLmJqb3Jn
ZUBpbnRlbC5jb20iIHRhcmdldD0iX2JsYW5rIj5lcmlrLmMuYmpvcmdlQGludGVsLmNvbTwvYT4m
Z3Q7OyA8YSBocmVmPSJtYWlsdG86am9obkBlY2x5cHNpdW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+
am9obkBlY2x5cHNpdW0uY29tPC9hPjsgPGEgaHJlZj0ibWFpbHRvOmFsZXhAZWNseXBzaXVtLmNv
bSIgdGFyZ2V0PSJfYmxhbmsiPmFsZXhAZWNseXBzaXVtLmNvbTwvYT48YnI+CjxiPlN1YmplY3Q6
PC9iPiBSZTogUmVnYXJkaW5nIENISVBTRUM8dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjwvZGl2
Pgo8L2Rpdj48ZGl2PjwvZGl2PjwvZGl2Pgo8L2Rpdj4KCjxicj48L2Rpdj48YnI+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+Cg==

--===============5409460440770050067==--