Re: chipsec-1.5.0 in EFI Shell

Abu Cishubis <[email protected]> Mon, 04 Jan 2021 16:53:27 +0100
Newsgroups dev.linux.lists.oe-chipsec
Message-ID <CAPwg83hKi=HsmztgArOeHJDw2kdOm6pM9b_amuqhGxTpy9ZkLg@mail.gmail.com>
--===============8388754188546763709==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

Hi Aaron,

The issue was solved. I run chipsec in a separate directory. It works also
without the =E2=80=98-^#=E2=80=99 option.

Thanks a lot.
Philipp

Am Di., 29. Dez. 2020 um 18:59 Uhr schrieb Holtsclaw, Brent <
[email protected]>:

> Please try putting the chipsec files in a chipsec folder and running.
> There have been problems in the past when the chipsec files are placed
> within the root directory.
>
>
>
> Thanks,
>
> Brent
>
>
>
> *From:* Vorname Nachname <[email protected]>
> *Sent:* Friday, June 5, 2020 2:20 AM
> *To:* chipsec(a)lists.01.org
> *Subject:* [chipsec] Re: chipsec-1.5.0 in EFI Shell
>
>
>
> Hello,
>
> I saw a new chipsec version 1.5.1 is released now. I followed the
> instructions
> from chipsec-manual.pdf and used the python version from chipsec archive.
> I took
> the shell from edk2 package again. See this both links:
>
> https://github.com/chipsec/chipsec/archive/1.5.1.tar.gz
> https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz
>
> I got almost the same error as before with a different number. I attached=
 a
> screenshot.
>
> Can anyone verify this issue?
>
> Best Regards,
> Philipp
>
>
>
> Am Fr., 29. Mai 2020 um 17:16 Uhr schrieb Vorname Nachname <
> ldevlzero(a)gmail.com>:
>
> Hello,
>
> Many thanks for the quick answers. I followed the instructions from the
> chipsec-manual.pdf of chipsec-1.5.0. In my first test I used python versi=
on
> from chipsec-1.5.0 (chipsec_uefi_x64.zip) and UEFI-Shell from edk2 release
> 2019-03-08 (
> https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz). This
> includes a precompiled UEFI-Shell binary which I used
> (edk2-edk2-stable201903/ShellBinPkg/UefiShell/X64). With this setup I got
> this error:
>
> OSError: [Errno 22] Invalid argument: 'FS0:FS0:chipsec'
>
> Can you tell me your working setup (UEFI-Binary and pyhton version)?
>
> Best regards
> Philipp
>
>
>
> Am Fr., 29. Mai 2020 um 17:13 Uhr schrieb Vorname Nachname <
> ldevlzero(a)gmail.com>:
>
> Hello,
>
> Many thanks for the quick answers. I followed the instructions from the
> chipsec-manual.pdf of chipsec-1.5.0. In my first test I used python versi=
on
> from chipsec-1.5.0 (chipsec_uefi_x64.zip) and UEFI-Shell from edk2 release
> 2019-03-08 (
> https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz). This
> includes a precompiled UEFI-Shell binary which I used
> (edk2-edk2-stable201903/ShellBinPkg/UefiShell/X64). With this setup I got
> this error:
>
> OSError: [Errno 22] Invalid argument: 'FS0:FS0:chipsec'
>
> Can you tell me your working setup (UEFI-Binary and pyhton version)?
>
> Best regards
> Philipp
>
>
>
> Am Fr., 29. Mai 2020 um 00:24 Uhr schrieb Holtsclaw, Brent <
> brent.holtsclaw(a)intel.com>:
>
> Did you follow the instructions from
> https://github.com/chipsec/chipsec/wiki/Creating-a-Bootable-USB-drive-wit=
h-UEFI-Shell?
> They should have enough information to help out.  It sounds like UEFI SHE=
LL
> is not the problem in this case.  Can you elaborate on the python that you
> are using.  There is a python.efi module within the chipsec_uefi zipfile.
> Python has been modified to include some chipsec specific commands with
> chipsec.  There are steps to reproduce the build, however I'm not sure th=
at
> they work with the latest EDK and you may need to build from an older
> version.  To my knowledge the code within chipsec is still compatible with
> python2 at this point and you should be able to use 1.5.0.  If you can run
> chipsec with the debug flag and let us know where it is failing that would
> help.
>
> Thanks,
> Brent
>
> -----Original Message-----
> From: Blibbet <[email protected]>
> Sent: Thursday, May 28, 2020 2:55 PM
> To: Vorname Nachname <[email protected]>
> Cc: chipsec(a)lists.01.org
> Subject: [chipsec] Re: chipsec-1.5.0 in EFI Shell
>
> What UEFI Shell are you using? "EFI Shell" may mean an ancient one. I
> think I recall some thread where someone was trying to get CHIPSEC running
> using an old (1.x?) OEM's shell (Apple?), and they had to provide their o=
wn
> instead. There is an older and a newer UEFI Shell.
>
> You should also include info about other Python code you were able to
> successfully run in this EFI Shell. Maybe CHIPSEC is not the issue, the
> issue is your EFI Shell and Python.
>
> Instead of building your own UEFI Python, what happens when you use the
> CHIPSEC instructions and use their supplied python.efi? Wasn't there some
> special CHIPSEC-centric options needed to build Python with? If so, that
> should be clarified better in build docs.
>
> (Granted, it sucks having a security tool ship a pre-compiled Python
> binary in their source tree, built in an unknown manner, with no checksum=
s,
> and no reproducable builds, and have the tool rely on this for determining
> platform security. But that's another issue...)
>
> Intel has abandoned CPython V2 for UEFI patch, and is instead is working
> on MicroPython for UEFI (which has some Python V3 support). Though Python
> V2 is deprecated and most of world has moved to Python V3, CHIPSEC team is
> still using/bundling CPython V2, and hasn't switched over to
> using/relying-on/bundling MicroPython for UEFI.
>
> FWIW, I rarely see replies from the team for support questions on this
> mailing list nor the Google Groups lists. It I was looking for a reply, I=
'd
> file a Github issue (and include more info), or use Twitter.
>
> You might want to clarify that you're trying to run this on an Intel
> system, not another ISA (like AMD or ARM or RISC-V), as that'd also not
> work.
>
> HTH,
> Lee
>
> On 5/28/20 7:36 AM, Vorname Nachname wrote:
> > Hello,
> >
> > I tried to run chipsec-1.5.0 in EFI Shell without operating system but
> > unfortunately it doesn't run in the EFI Shell. I ran these commands:
> >
> > Shell> fs0:
> > FS0:\> python -^# chipsec_main.py -m debugenabled
> >
> > This results in a traceback with the last file chipsec/defines.py
> > called function get_version().
> >
> > OSError: [Errno 22] Invalud argument: 'FS0:FS0:chipsec'
> >
> > After that I compiled python 2.7.2 and python 2.7.10 from edk2 package
> > version edk2-stable201903. This is the last package version with
> > pyhton inside. With this version of pyhton I received another error
> > message with the last line:
> >
> > ImportError: No module named expat; use SimpleXMLTreeBuilder instead.
> >
> > What is the best way to start the latest version of chipsec in the EFI
> > Shell? What version of EFI Shell and pyhton is required?
> >
> > best wishes
> > Philipp
> >
> >
> > _______________________________________________
> > chipsec mailing list -- chipsec(a)lists.01.org To unsubscribe send an
> > email to chipsec-leave(a)lists.01.org
> _______________________________________________
> chipsec mailing list -- chipsec(a)lists.01.org To unsubscribe send an ema=
il
> to chipsec-leave(a)lists.01.org
> _______________________________________________
> chipsec mailing list -- chipsec(a)lists.01.org
> To unsubscribe send an email to chipsec-leave(a)lists.01.org
>
>

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

PGRpdiBkaXI9Imx0ciI+PGRpdj5IaSBBYXJvbiw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRo
ZSBpc3N1ZSB3YXMgc29sdmVkLiBJIHJ1biBjaGlwc2VjIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5
LiBJdCB3b3JrcyBhbHNvIHdpdGhvdXQgdGhlIOKAmC1eI+KAmSBvcHRpb24uPC9kaXY+PGRpdj48
YnI+PC9kaXY+PGRpdj5UaGFua3MgYSBsb3QuPC9kaXY+PGRpdj5QaGlsaXBwPGJyPjwvZGl2Pjwv
ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9Imdt
YWlsX2F0dHIiPkFtIERpLiwgMjkuIERlei4gMjAyMCB1bSAxODo1OcKgVWhyIHNjaHJpZWIgSG9s
dHNjbGF3LCBCcmVudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmJyZW50LmhvbHRzY2xhd0BpbnRlbC5j
b20iPmJyZW50LmhvbHRzY2xhd0BpbnRlbC5jb208L2E+Jmd0Ozo8YnI+PC9kaXY+PGJsb2NrcXVv
dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2Jv
cmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPgoK
CgoKCjxkaXYgbGFuZz0iRU4tVVMiPgo8ZGl2IGNsYXNzPSJnbWFpbC1tXzI4MzE1NDMzNDM2MjYw
OTU0OTdXb3JkU2VjdGlvbjEiPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5QbGVhc2UgdHJ5IHB1dHRp
bmcgdGhlIGNoaXBzZWMgZmlsZXMgaW4gYSBjaGlwc2VjIGZvbGRlciBhbmQgcnVubmluZy7CoCBU
aGVyZSBoYXZlIGJlZW4gcHJvYmxlbXMgaW4gdGhlIHBhc3Qgd2hlbiB0aGUgY2hpcHNlYyBmaWxl
cyBhcmUgcGxhY2VkIHdpdGhpbiB0aGUgcm9vdCBkaXJlY3RvcnkuwqAKPHU+PC91Pjx1PjwvdT48
L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT7CoDx1PjwvdT48L3A+CjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlRoYW5rcyw8dT48L3U+PHU+PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
QnJlbnQ8dT48L3U+PHU+PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+
PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IFZvcm5hbWUgTmFjaG5h
bWUgJmx0OzxhIGhyZWY9Im1haWx0bzpsZGV2bHplcm9AZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFu
ayI+bGRldmx6ZXJvQGdtYWlsLmNvbTwvYT4mZ3Q7IDxicj4KPGI+U2VudDo8L2I+IEZyaWRheSwg
SnVuZSA1LCAyMDIwIDI6MjAgQU08YnI+CjxiPlRvOjwvYj4gPGEgaHJlZj0ibWFpbHRvOmNoaXBz
ZWNAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+Y2hpcHNlY0BsaXN0cy4wMS5vcmc8L2E+
PGJyPgo8Yj5TdWJqZWN0OjwvYj4gW2NoaXBzZWNdIFJlOiBjaGlwc2VjLTEuNS4wIGluIEVGSSBT
aGVsbDx1PjwvdT48dT48L3U+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48
L3U+PC9wPgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IZWxsbyw8YnI+Cjxicj4KSSBzYXcg
YSBuZXcgY2hpcHNlYyB2ZXJzaW9uIDEuNS4xIGlzIHJlbGVhc2VkIG5vdy4gSSBmb2xsb3dlZCB0
aGUgaW5zdHJ1Y3Rpb25zPGJyPgpmcm9tIGNoaXBzZWMtbWFudWFsLnBkZiBhbmQgdXNlZCB0aGUg
cHl0aG9uIHZlcnNpb24gZnJvbSBjaGlwc2VjIGFyY2hpdmUuIEkgdG9vazxicj4KdGhlIHNoZWxs
IGZyb20gZWRrMiBwYWNrYWdlIGFnYWluLiBTZWUgdGhpcyBib3RoIGxpbmtzOjxicj4KPGJyPgo8
YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlwc2VjL2FyY2hpdmUvMS41LjEu
dGFyLmd6IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNl
Yy9hcmNoaXZlLzEuNS4xLnRhci5nejwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS90aWFub2NvcmUvZWRrMi9hcmNoaXZlL2VkazItc3RhYmxlMjAxOTAzLnRhci5neiIgdGFyZ2V0
PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9hcmNoaXZlL2VkazIt
c3RhYmxlMjAxOTAzLnRhci5nejwvYT48YnI+Cjxicj4KSSBnb3QgYWxtb3N0IHRoZSBzYW1lIGVy
cm9yIGFzIGJlZm9yZSB3aXRoIGEgZGlmZmVyZW50IG51bWJlci4gSSBhdHRhY2hlZCBhPGJyPgpz
Y3JlZW5zaG90Ljxicj4KPGJyPgpDYW4gYW55b25lIHZlcmlmeSB0aGlzIGlzc3VlPzxicj4KPGJy
PgpCZXN0IFJlZ2FyZHMsPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAxNzoxNsKgVWhyIHNjaHJpZWIg
Vm9ybmFtZSBOYWNobmFtZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5jb20i
IHRhcmdldD0iX2JsYW5rIj5sZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs6PHU+PC91Pjx1Pjwv
dT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWNvbG9yOmN1cnJlbnRjb2xv
ciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0LDIwNCk7Ym9yZGVyLXN0eWxl
Om5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRpdW0gbWVkaXVtIG1lZGl1bSAx
cHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAwaW4gNXB0IDQuOHB0Ij4KPGRp
dj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8sPGJyPgo8YnI+Ck1hbnkgdGhhbmtzIGZvciB0
aGUgcXVpY2sgYW5zd2Vycy4gSSBmb2xsb3dlZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhlIGNo
aXBzZWMtbWFudWFsLnBkZiBvZiBjaGlwc2VjLTEuNS4wLiBJbiBteSBmaXJzdCB0ZXN0IEkgdXNl
ZCBweXRob24gdmVyc2lvbiBmcm9tIGNoaXBzZWMtMS41LjAgKGNoaXBzZWNfdWVmaV94NjQuemlw
KSBhbmQgVUVGSS1TaGVsbCBmcm9tIGVkazIgcmVsZWFzZSAyMDE5LTAzLTA4ICg8YSBocmVmPSJo
dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkw
My50YXIuZ3oiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk
azIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkwMy50YXIuZ3o8L2E+KS4KIFRoaXMgaW5jbHVkZXMg
YSBwcmVjb21waWxlZCBVRUZJLVNoZWxsIGJpbmFyeSB3aGljaCBJIHVzZWQgKGVkazItZWRrMi1z
dGFibGUyMDE5MDMvU2hlbGxCaW5Qa2cvVWVmaVNoZWxsL1g2NCkuIFdpdGggdGhpcyBzZXR1cCBJ
IGdvdCB0aGlzIGVycm9yOjxicj4KPGJyPgpPU0Vycm9yOiBbRXJybm8gMjJdIEludmFsaWQgYXJn
dW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+Cjxicj4KQ2FuIHlvdSB0ZWxsIG1l
IHlvdXIgd29ya2luZyBzZXR1cCAoVUVGSS1CaW5hcnkgYW5kIHB5aHRvbiB2ZXJzaW9uKT88YnI+
Cjxicj4KQmVzdCByZWdhcmRzPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAxNzoxM8KgVWhyIHNjaHJp
ZWIgVm9ybmFtZSBOYWNobmFtZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5j
b20iIHRhcmdldD0iX2JsYW5rIj5sZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs6PHU+PC91Pjx1
PjwvdT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWNvbG9yOmN1cnJlbnRj
b2xvciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0LDIwNCk7Ym9yZGVyLXN0
eWxlOm5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRpdW0gbWVkaXVtIG1lZGl1
bSAxcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAwaW4gNXB0IDQuOHB0Ij4K
PGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8sPGJyPgo8YnI+Ck1hbnkgdGhhbmtzIGZv
ciB0aGUgcXVpY2sgYW5zd2Vycy4gSSBmb2xsb3dlZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhl
IGNoaXBzZWMtbWFudWFsLnBkZiBvZiBjaGlwc2VjLTEuNS4wLiBJbiBteSBmaXJzdCB0ZXN0IEkg
dXNlZCBweXRob24gdmVyc2lvbiBmcm9tIGNoaXBzZWMtMS41LjAgKGNoaXBzZWNfdWVmaV94NjQu
emlwKSBhbmQgVUVGSS1TaGVsbCBmcm9tIGVkazIgcmVsZWFzZSAyMDE5LTAzLTA4ICg8YSBocmVm
PSJodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIw
MTkwMy50YXIuZ3oiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl
L2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkwMy50YXIuZ3o8L2E+KS4KIFRoaXMgaW5jbHVk
ZXMgYSBwcmVjb21waWxlZCBVRUZJLVNoZWxsIGJpbmFyeSB3aGljaCBJIHVzZWQgKGVkazItZWRr
Mi1zdGFibGUyMDE5MDMvU2hlbGxCaW5Qa2cvVWVmaVNoZWxsL1g2NCkuIFdpdGggdGhpcyBzZXR1
cCBJIGdvdCB0aGlzIGVycm9yOjxicj4KPGJyPgpPU0Vycm9yOiBbRXJybm8gMjJdIEludmFsaWQg
YXJndW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+Cjxicj4KQ2FuIHlvdSB0ZWxs
IG1lIHlvdXIgd29ya2luZyBzZXR1cCAoVUVGSS1CaW5hcnkgYW5kIHB5aHRvbiB2ZXJzaW9uKT88
YnI+Cjxicj4KQmVzdCByZWdhcmRzPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2
Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAwMDoyNMKgVWhyIHNj
aHJpZWIgSG9sdHNjbGF3LCBCcmVudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmJyZW50LmhvbHRzY2xh
d0BpbnRlbC5jb20iIHRhcmdldD0iX2JsYW5rIj5icmVudC5ob2x0c2NsYXdAaW50ZWwuY29tPC9h
PiZndDs6PHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy
LWNvbG9yOmN1cnJlbnRjb2xvciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0
LDIwNCk7Ym9yZGVyLXN0eWxlOm5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRp
dW0gbWVkaXVtIG1lZGl1bSAxcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAw
aW4gNXB0IDQuOHB0Ij4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RGlkIHlvdSBmb2xsb3cgdGhlIGlu
c3RydWN0aW9ucyBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaGlwc2VjL2NoaXBz
ZWMvd2lraS9DcmVhdGluZy1hLUJvb3RhYmxlLVVTQi1kcml2ZS13aXRoLVVFRkktU2hlbGwiIHRh
cmdldD0iX2JsYW5rIj4KaHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy93aWtpL0Ny
ZWF0aW5nLWEtQm9vdGFibGUtVVNCLWRyaXZlLXdpdGgtVUVGSS1TaGVsbDwvYT4/wqAgVGhleSBz
aG91bGQgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaGVscCBvdXQuwqAgSXQgc291bmRzIGxp
a2UgVUVGSSBTSEVMTCBpcyBub3QgdGhlIHByb2JsZW0gaW4gdGhpcyBjYXNlLsKgIENhbiB5b3Ug
ZWxhYm9yYXRlIG9uIHRoZSBweXRob24gdGhhdCB5b3UgYXJlIHVzaW5nLsKgIFRoZXJlCiBpcyBh
IHB5dGhvbi5lZmkgbW9kdWxlIHdpdGhpbiB0aGUgY2hpcHNlY191ZWZpIHppcGZpbGUuwqAgUHl0
aG9uIGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgc29tZSBjaGlwc2VjIHNwZWNpZmljIGNv
bW1hbmRzIHdpdGggY2hpcHNlYy7CoCBUaGVyZSBhcmUgc3RlcHMgdG8gcmVwcm9kdWNlIHRoZSBi
dWlsZCwgaG93ZXZlciBJJiMzOTttIG5vdCBzdXJlIHRoYXQgdGhleSB3b3JrIHdpdGggdGhlIGxh
dGVzdCBFREsgYW5kIHlvdSBtYXkgbmVlZCB0byBidWlsZAogZnJvbSBhbiBvbGRlciB2ZXJzaW9u
LsKgIFRvIG15IGtub3dsZWRnZSB0aGUgY29kZSB3aXRoaW4gY2hpcHNlYyBpcyBzdGlsbCBjb21w
YXRpYmxlIHdpdGggcHl0aG9uMiBhdCB0aGlzIHBvaW50IGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUg
dG8gdXNlIDEuNS4wLsKgIElmIHlvdSBjYW4gcnVuIGNoaXBzZWMgd2l0aCB0aGUgZGVidWcgZmxh
ZyBhbmQgbGV0IHVzIGtub3cgd2hlcmUgaXQgaXMgZmFpbGluZyB0aGF0IHdvdWxkIGhlbHAuPGJy
Pgo8YnI+ClRoYW5rcyw8YnI+CkJyZW50PGJyPgo8YnI+Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tPGJyPgpGcm9tOiBCbGliYmV0ICZsdDs8YSBocmVmPSJtYWlsdG86YmxpYmJldEBnbWFpbC5j
b20iIHRhcmdldD0iX2JsYW5rIj5ibGliYmV0QGdtYWlsLmNvbTwvYT4mZ3Q7Cjxicj4KU2VudDog
VGh1cnNkYXksIE1heSAyOCwgMjAyMCAyOjU1IFBNPGJyPgpUbzogVm9ybmFtZSBOYWNobmFtZSAm
bHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5s
ZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs8YnI+CkNjOiA8YSBocmVmPSJtYWlsdG86Y2hpcHNl
Y0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2VjQGxpc3RzLjAxLm9yZzwvYT48
YnI+ClN1YmplY3Q6IFtjaGlwc2VjXSBSZTogY2hpcHNlYy0xLjUuMCBpbiBFRkkgU2hlbGw8YnI+
Cjxicj4KV2hhdCBVRUZJIFNoZWxsIGFyZSB5b3UgdXNpbmc/ICZxdW90O0VGSSBTaGVsbCZxdW90
OyBtYXkgbWVhbiBhbiBhbmNpZW50IG9uZS4gSSB0aGluayBJIHJlY2FsbCBzb21lIHRocmVhZCB3
aGVyZSBzb21lb25lIHdhcyB0cnlpbmcgdG8gZ2V0IENISVBTRUMgcnVubmluZyB1c2luZyBhbiBv
bGQgKDEueD8pIE9FTSYjMzk7cyBzaGVsbCAoQXBwbGU/KSwgYW5kIHRoZXkgaGFkIHRvIHByb3Zp
ZGUgdGhlaXIgb3duIGluc3RlYWQuIFRoZXJlIGlzIGFuIG9sZGVyIGFuZCBhIG5ld2VyCiBVRUZJ
IFNoZWxsLjxicj4KPGJyPgpZb3Ugc2hvdWxkIGFsc28gaW5jbHVkZSBpbmZvIGFib3V0IG90aGVy
IFB5dGhvbiBjb2RlIHlvdSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IHJ1biBpbiB0aGlzIEVG
SSBTaGVsbC4gTWF5YmUgQ0hJUFNFQyBpcyBub3QgdGhlIGlzc3VlLCB0aGUgaXNzdWUgaXMgeW91
ciBFRkkgU2hlbGwgYW5kIFB5dGhvbi48YnI+Cjxicj4KSW5zdGVhZCBvZiBidWlsZGluZyB5b3Vy
IG93biBVRUZJIFB5dGhvbiwgd2hhdCBoYXBwZW5zIHdoZW4geW91IHVzZSB0aGUgQ0hJUFNFQyBp
bnN0cnVjdGlvbnMgYW5kIHVzZSB0aGVpciBzdXBwbGllZCBweXRob24uZWZpPyBXYXNuJiMzOTt0
IHRoZXJlIHNvbWUgc3BlY2lhbCBDSElQU0VDLWNlbnRyaWMgb3B0aW9ucyBuZWVkZWQgdG8gYnVp
bGQgUHl0aG9uIHdpdGg/IElmIHNvLCB0aGF0IHNob3VsZCBiZSBjbGFyaWZpZWQgYmV0dGVyIGlu
IGJ1aWxkIGRvY3MuPGJyPgo8YnI+CihHcmFudGVkLCBpdCBzdWNrcyBoYXZpbmcgYSBzZWN1cml0
eSB0b29sIHNoaXAgYSBwcmUtY29tcGlsZWQgUHl0aG9uIGJpbmFyeSBpbiB0aGVpciBzb3VyY2Ug
dHJlZSwgYnVpbHQgaW4gYW4gdW5rbm93biBtYW5uZXIsIHdpdGggbm8gY2hlY2tzdW1zLCBhbmQg
bm8gcmVwcm9kdWNhYmxlIGJ1aWxkcywgYW5kIGhhdmUgdGhlIHRvb2wgcmVseSBvbiB0aGlzIGZv
ciBkZXRlcm1pbmluZyBwbGF0Zm9ybSBzZWN1cml0eS4gQnV0IHRoYXQmIzM5O3MgYW5vdGhlcgog
aXNzdWUuLi4pPGJyPgo8YnI+CkludGVsIGhhcyBhYmFuZG9uZWQgQ1B5dGhvbiBWMiBmb3IgVUVG
SSBwYXRjaCwgYW5kIGlzIGluc3RlYWQgaXMgd29ya2luZyBvbiBNaWNyb1B5dGhvbiBmb3IgVUVG
SSAod2hpY2ggaGFzIHNvbWUgUHl0aG9uIFYzIHN1cHBvcnQpLiBUaG91Z2ggUHl0aG9uIFYyIGlz
IGRlcHJlY2F0ZWQgYW5kIG1vc3Qgb2Ygd29ybGQgaGFzIG1vdmVkIHRvIFB5dGhvbiBWMywgQ0hJ
UFNFQyB0ZWFtIGlzIHN0aWxsIHVzaW5nL2J1bmRsaW5nIENQeXRob24gVjIsIGFuZAogaGFzbiYj
Mzk7dCBzd2l0Y2hlZCBvdmVyIHRvIHVzaW5nL3JlbHlpbmctb24vYnVuZGxpbmcgTWljcm9QeXRo
b24gZm9yIFVFRkkuPGJyPgo8YnI+CkZXSVcsIEkgcmFyZWx5IHNlZSByZXBsaWVzIGZyb20gdGhl
IHRlYW0gZm9yIHN1cHBvcnQgcXVlc3Rpb25zIG9uIHRoaXMgbWFpbGluZyBsaXN0IG5vciB0aGUg
R29vZ2xlIEdyb3VwcyBsaXN0cy4gSXQgSSB3YXMgbG9va2luZyBmb3IgYSByZXBseSwgSSYjMzk7
ZCBmaWxlIGEgR2l0aHViIGlzc3VlIChhbmQgaW5jbHVkZSBtb3JlIGluZm8pLCBvciB1c2UgVHdp
dHRlci48YnI+Cjxicj4KWW91IG1pZ2h0IHdhbnQgdG8gY2xhcmlmeSB0aGF0IHlvdSYjMzk7cmUg
dHJ5aW5nIHRvIHJ1biB0aGlzIG9uIGFuIEludGVsIHN5c3RlbSwgbm90IGFub3RoZXIgSVNBIChs
aWtlIEFNRCBvciBBUk0gb3IgUklTQy1WKSwgYXMgdGhhdCYjMzk7ZCBhbHNvIG5vdCB3b3JrLjxi
cj4KPGJyPgpIVEgsPGJyPgpMZWU8YnI+Cjxicj4KT24gNS8yOC8yMCA3OjM2IEFNLCBWb3JuYW1l
IE5hY2huYW1lIHdyb3RlOjxicj4KJmd0OyBIZWxsbyw8YnI+CiZndDs8YnI+CiZndDsgSSB0cmll
ZCB0byBydW4gY2hpcHNlYy0xLjUuMCBpbiBFRkkgU2hlbGwgd2l0aG91dCBvcGVyYXRpbmcgc3lz
dGVtIGJ1dCA8YnI+CiZndDsgdW5mb3J0dW5hdGVseSBpdCBkb2VzbiYjMzk7dCBydW4gaW4gdGhl
IEVGSSBTaGVsbC4gSSByYW4gdGhlc2UgY29tbWFuZHM6PGJyPgomZ3Q7PGJyPgomZ3Q7IFNoZWxs
Jmd0OyBmczA6PGJyPgomZ3Q7IEZTMDpcJmd0OyBweXRob24gLV4jIGNoaXBzZWNfbWFpbi5weSAt
bSBkZWJ1Z2VuYWJsZWQ8YnI+CiZndDs8YnI+CiZndDsgVGhpcyByZXN1bHRzIGluIGEgdHJhY2Vi
YWNrIHdpdGggdGhlIGxhc3QgZmlsZSBjaGlwc2VjL2RlZmluZXMucHkgPGJyPgomZ3Q7IGNhbGxl
ZCBmdW5jdGlvbiBnZXRfdmVyc2lvbigpLjxicj4KJmd0Ozxicj4KJmd0OyBPU0Vycm9yOiBbRXJy
bm8gMjJdIEludmFsdWQgYXJndW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+CiZn
dDs8YnI+CiZndDsgQWZ0ZXIgdGhhdCBJIGNvbXBpbGVkIHB5dGhvbiAyLjcuMiBhbmQgcHl0aG9u
IDIuNy4xMCBmcm9tIGVkazIgcGFja2FnZSA8YnI+CiZndDsgdmVyc2lvbiBlZGsyLXN0YWJsZTIw
MTkwMy4gVGhpcyBpcyB0aGUgbGFzdCBwYWNrYWdlIHZlcnNpb24gd2l0aCA8YnI+CiZndDsgcHlo
dG9uIGluc2lkZS4gV2l0aCB0aGlzIHZlcnNpb24gb2YgcHlodG9uIEkgcmVjZWl2ZWQgYW5vdGhl
ciBlcnJvciA8YnI+CiZndDsgbWVzc2FnZSB3aXRoIHRoZSBsYXN0IGxpbmU6PGJyPgomZ3Q7PGJy
PgomZ3Q7IEltcG9ydEVycm9yOiBObyBtb2R1bGUgbmFtZWQgZXhwYXQ7IHVzZSBTaW1wbGVYTUxU
cmVlQnVpbGRlciBpbnN0ZWFkLjxicj4KJmd0Ozxicj4KJmd0OyBXaGF0IGlzIHRoZSBiZXN0IHdh
eSB0byBzdGFydCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgY2hpcHNlYyBpbiB0aGUgRUZJIDxicj4K
Jmd0OyBTaGVsbD8gV2hhdCB2ZXJzaW9uIG9mIEVGSSBTaGVsbCBhbmQgcHlodG9uIGlzIHJlcXVp
cmVkPzxicj4KJmd0Ozxicj4KJmd0OyBiZXN0IHdpc2hlczxicj4KJmd0OyBQaGlsaXBwPGJyPgom
Z3Q7PGJyPgomZ3Q7PGJyPgomZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fPGJyPgomZ3Q7IGNoaXBzZWMgbWFpbGluZyBsaXN0IC0tIDxhIGhyZWY9Im1h
aWx0bzpjaGlwc2VjQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmNoaXBzZWNAbGlzdHMu
MDEub3JnPC9hPiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuCjxicj4KJmd0OyBlbWFpbCB0byA8YSBo
cmVmPSJtYWlsdG86Y2hpcHNlYy1sZWF2ZUBsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5j
aGlwc2VjLWxlYXZlQGxpc3RzLjAxLm9yZzwvYT48YnI+Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpjaGlwc2VjIG1haWxpbmcgbGlzdCAtLSA8YSBo
cmVmPSJtYWlsdG86Y2hpcHNlY0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2Vj
QGxpc3RzLjAxLm9yZzwvYT4gVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0bwo8YSBocmVm
PSJtYWlsdG86Y2hpcHNlYy1sZWF2ZUBsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlw
c2VjLWxlYXZlQGxpc3RzLjAxLm9yZzwvYT48YnI+Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fPGJyPgpjaGlwc2VjIG1haWxpbmcgbGlzdCAtLSA8YSBocmVm
PSJtYWlsdG86Y2hpcHNlY0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2VjQGxp
c3RzLjAxLm9yZzwvYT48YnI+ClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gPGEgaHJl
Zj0ibWFpbHRvOmNoaXBzZWMtbGVhdmVAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+CmNo
aXBzZWMtbGVhdmVAbGlzdHMuMDEub3JnPC9hPjx1PjwvdT48dT48L3U+PC9wPgo8L2Jsb2NrcXVv
dGU+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8L2Rp
dj4KPC9kaXY+Cgo8L2Jsb2NrcXVvdGU+PC9kaXY+Cg==

--===============8388754188546763709==--