public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* ada/7624: Internal error occurs while building Gtkada-1.2.12 package using gcc 3.2
@ 2002-08-18  2:51 zhenggen
  0 siblings, 0 replies; 2+ messages in thread
From: zhenggen @ 2002-08-18  2:51 UTC (permalink / raw)
  To: gcc-gnats


>Number:         7624
>Category:       ada
>Synopsis:       Internal error occurs while building Gtkada-1.2.12 package using gcc 3.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Aug 18 01:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     zhenggen
>Release:        gcc 3.2 release
>Organization:
>Environment:
Redhat 7.2 with custom-building kernel 2.4.17

Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/3.2/specs
Configured with: /home/zhenggen/gcc/configure --enable-languages=c,f77,ada,c++
Thread model: posix
gcc version 3.2
Linux localhost.localdomain 2.4.7-10custom #3 ? 4? 19 21:07:24 CST 2002 i586 unknown
Redhat 7.2
>Description:
Gnat 3.13p passed the building of package Gtkada-1.2.12.
Internal error occurs while building Gtkada-1.2.12 package using Ada-enabled GCC 3.2 . The error message suggests to submit a bug report.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="error.report"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="error.report"

PT09PT09PT09PT09PT09PT09PT09Cj09PT09PUdDQyBpbmZvPT09PT09PQo9PT09PT09PT09PT09
PT09PT09PT0KClt6aGVuZ2dlbkBsb2NhbGhvc3QgR3RrQWRhLTEuMi4xMl0kIGdjYyAtdiA+PmVy
cm9yLnJlcG9ydCAyPiYxCgpSZWFkaW5nIHNwZWNzIGZyb20gL3Vzci9sb2NhbC9saWIvZ2NjLWxp
Yi9pNTg2LXBjLWxpbnV4LWdudS8zLjIvc3BlY3MKQ29uZmlndXJlZCB3aXRoOiAvaG9tZS96aGVu
Z2dlbi9nY2MvY29uZmlndXJlIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGY3NyxhZGEsYysrClRocmVh
ZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24gMy4yCgo9PT09PT09PT09PT09PT09PT09PQo9PT1C
b3ggaW5mbz09PT09PT09PQo9PT09PT09PT09PT09PT09PT09PQoKTGludXggbG9jYWxob3N0Lmxv
Y2FsZG9tYWluIDIuNC43LTEwY3VzdG9tICMzIM7lIDTUwiAxOSAyMTowNzoyNCBDU1QgMjAwMiBp
NTg2IHVua25vd24KUmVkaGF0IDcuMgoKPT09PT09PT09PT09PT09PT09PT0KPT09IEpvYiAgPT09
PT09PT09PT0KPT09PT09PT09PT09PT09PT09PT0KCmJ1aWxkaW5nIHBhY2thZ2UgR3RrQWRhLTEu
Mi4xMgoKPT09PT09PT09PT09PT09PT09PT0KPT09IFN0YXR1cyAgID09PT09PT0KPT09PT09PT09
PT09PT09PT09PT0KR25hdCAzLjEzcCBidWlsdCAgdGhlIHBhY2thZ2Ugc3VjY2Vzc2Z1bGx5IHdo
aWxlIGdjYy0zLjIgZmFpbHMuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPT0g
RXJyb3JzIGR1cmluZyBidWlsZGluZyAgPT09PT09Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQoKbWFrZSAtQyBzcmMKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS96
aGVuZ2dlbi91bnppcC9HdGtBZGEtMS4yLjEyL3NyYycKbWtkaXIgLXAgbGliLW9iagpjaG1vZCAr
eCBnYXRlIGd0a2FkYS1jb25maWcKbWFrZSAtQyBndGtleHRyYQptYWtlWzJdOiBFbnRlcmluZyBk
aXJlY3RvcnkgYC9ob21lL3poZW5nZ2VuL3VuemlwL0d0a0FkYS0xLjIuMTIvc3JjL2d0a2V4dHJh
JwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yIGBhbGwnLgptYWtlWzJdOiBMZWF2aW5n
IGRpcmVjdG9yeSBgL2hvbWUvemhlbmdnZW4vdW56aXAvR3RrQWRhLTEuMi4xMi9zcmMvZ3RrZXh0
cmEnCgpnY2MgLWMgLUkuLi8gLU8yIC1nbmF0biAtZ25hdHd1d2wgLWZQSUMgLUktIC4uL2d0ay1l
eHRyYS1wbG90X2RhdGEuYWRiCgorPT09PT09PT09PT09PT09PT09PT09PT09PT09R05BVCBCVUcg
REVURUNURUQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCnwgMy4yIDIwMDIwODE0IChy
ZWxlYXNlKSAoaTU4Ni1wYy1saW51eC1nbnUpIEdDQyBlcnJvcjogICAgICAgICAgICAgICAgICAg
IHwKfCBJbnRlcm5hbCBjb21waWxlciBlcnJvciBpbiBhc3NpZ25fc3RhY2tfdGVtcF9mb3JfdHlw
ZSwgYXQgICAgICAgICAgICAgICAgfAp8ICAgIGZ1bmN0aW9uLmM6Njc0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRXJyb3IgZGV0ZWN0
ZWQgYXQgL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNTg2LXBjLWxpbnV4LWdudS8zLjIvYWRhaW5j
bHVkZS9zLXNlY3N0YS5hZHM6NjY6MTR8CnwgUGxlYXNlIHN1Ym1pdCBhIGJ1ZyByZXBvcnQsIHNl
ZSBodHRwOi8vZ2NjLmdudS5vcmcvYnVncy5odG1sLiAgICAgICAgICAgIHwKfCBJbmNsdWRlIHRo
ZSBlbnRpcmUgY29udGVudHMgb2YgdGhpcyBidWcgYm94IGluIHRoZSByZXBvcnQuICAgICAgICAg
ICAgICAgfAp8IEluY2x1ZGUgdGhlIGV4YWN0IGdjYyBvciBnbmF0bWFrZSBjb21tYW5kIHRoYXQg
eW91IGVudGVyZWQuICAgICAgICAgICAgICB8CnwgQWxzbyBpbmNsdWRlIHNvdXJjZXMgbGlzdGVk
IGJlbG93IGluIGduYXRjaG9wIGZvcm1hdCAgICAgICAgICAgICAgICAgICAgIHwKfCAoY29uY2F0
ZW5hdGVkIHRvZ2V0aGVyIHdpdGggbm8gaGVhZGVycyBiZXR3ZWVuIGZpbGVzKS4gICAgICAgICAg
ICAgICAgICAgfAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCgpQbGVhc2UgaW5jbHVkZSB0aGVzZSBzb3Vy
Y2UgZmlsZXMgd2l0aCBlcnJvciByZXBvcnQKCi4uL2d0ay1leHRyYS1wbG90X2RhdGEuYWRiCi4u
L2d0ay1leHRyYS1wbG90X2RhdGEuYWRzCi4uL2d0ay1leHRyYS5hZHMKLi4vZ3RrLmFkcwouLi9n
bGliLmFkcwouLi9nZGsuYWRzCi4uL2d0ay13aWRnZXQuYWRzCi4uL2dkay1jb2xvci5hZHMKLi4v
Z2RrLXZpc3VhbC5hZHMKLi4vZ2xpYi1nbGlzdC5hZHMKLi4vZ2RrLXR5cGVzLmFkcwouLi9nZGst
ZXZlbnQuYWRzCi4uL2dkay1yZWN0YW5nbGUuYWRzCi4uL2dkay13aW5kb3cuYWRzCi4uL2dkay1j
dXJzb3IuYWRzCi4uL2dkay13aW5kb3dfYXR0ci5hZHMKLi4vZ2RrLWJpdG1hcC5hZHMKLi4vZ3Rr
LWFjY2VsX2dyb3VwLmFkcwouLi9ndGstb2JqZWN0LmFkcwouLi9ndGthZGEuYWRzCi4uL2d0a2Fk
YS10eXBlcy5hZHMKLi4vZ3RrLWFkanVzdG1lbnQuYWRzCi4uL2d0ay1kYXRhLmFkcwouLi9ndGst
ZW51bXMuYWRzCi4uL2d0ay1zdHlsZS5hZHMKLi4vZ2RrLWdjLmFkcwouLi9nZGstZm9udC5hZHMK
Li4vZ2RrLXJlZ2lvbi5hZHMKLi4vZ2RrLXBpeG1hcC5hZHMKLi4vZ2xpYi1nc2xpc3QuYWRzCi4u
L2dsaWItZ2xpc3QuYWRiCi4uL2dsaWItZ3NsaXN0LmFkYgoKY29tcGlsYXRpb24gYWJhbmRvbmVk
CmduYXRtYWtlOiAiLi4vZ3RrLWV4dHJhLXBsb3RfZGF0YS5hZGIiIGNvbXBpbGF0aW9uIGVycm9y
Cm1ha2VbMV06ICoqKiBbbGliLW9iai9tYWtlLm9dIEVycm9yIDQKbWFrZVsxXTogTGVhdmluZyBk
aXJlY3RvcnkgYC9ob21lL3poZW5nZ2VuL3VuemlwL0d0a0FkYS0xLjIuMTIvc3JjJwptYWtlOiAq
KiogW2FsbF0gRXJyb3IgMgoKPT09PT09PT09PT09PT09PT09PQo9PSBzb3VyY2UgZHVtcGluZz09
Cj09PT09PT09PT09PT09PT09PT0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEg
LSBBZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwMCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwg
QnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAt
LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VSAtLQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAg
ICAgICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBB
cyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmlj
cyBmcm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVy
IGZpbGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2Vz
IG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRv
IGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQot
LSBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25z
IHdoeSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhl
ICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKd2l0aCBHbGliOyAg
ICAgICAgIHVzZSBHbGliOwp3aXRoIEd0ay5XaWRnZXQ7ICAgdXNlIEd0ay5XaWRnZXQ7CndpdGgg
R3RrYWRhLlR5cGVzOyB1c2UgR3RrYWRhLlR5cGVzOwp3aXRoIEdkay5Db2xvcjsgICAgdXNlIEdk
ay5Db2xvcjsKd2l0aCBJbnRlcmZhY2VzLkM7IHVzZSBJbnRlcmZhY2VzLkM7CgpwYWNrYWdlIGJv
ZHkgR3RrLkV4dHJhLlBsb3RfRGF0YSBpcwoKICAgLS0tLS0tLS0tLS0tLQogICAtLSBHdGtfTmV3
IC0tCiAgIC0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHdGtfTmV3CiAgICAgKERhdGEgOiBv
dXQgR3RrX1Bsb3RfRGF0YTsgRnVuYyA6IFBsb3RfRnVuY3Rpb24gOj0gbnVsbCkgaXMKICAgYmVn
aW4KICAgICAgRGF0YSA6PSBuZXcgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIEluaXRpYWxp
emUgKERhdGEsIEZ1bmMpOwogICBlbmQgR3RrX05ldzsKCiAgIC0tLS0tLS0tLS0tLS0tLS0KICAg
LS0gSW5pdGlhbGl6ZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSW5pdGlh
bGl6ZQogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkJ0NsYXNzOyBGdW5j
IDogUGxvdF9GdW5jdGlvbiA6PSBudWxsKQogICBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCBy
ZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAi
Z3RrX3Bsb3RfZGF0YV9uZXciKTsKCiAgICAgIGZ1bmN0aW9uIEludGVybmFsMiAoRnVuYyA6IFBs
b3RfRnVuY3Rpb24pIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwyLCAiZ3RrX3Bsb3RfZGF0YV9uZXdfZnVuY3Rpb24iKTsKICAgYmVnaW4KICAg
ICAgaWYgRnVuYyA9IG51bGwgdGhlbgogICAgICAgICBTZXRfT2JqZWN0IChEYXRhLCBJbnRlcm5h
bCk7CiAgICAgIGVsc2UKICAgICAgICAgU2V0X09iamVjdCAoRGF0YSwgSW50ZXJuYWwyIChGdW5j
KSk7CiAgICAgIGVuZCBpZjsKICAgICAgSW5pdGlhbGl6ZV9Vc2VyX0RhdGEgKERhdGEpOwogICBl
bmQgSW5pdGlhbGl6ZTsKCiAgIC0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9OYW1lIC0tCiAgIC0t
LS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X05hbWUgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQ7IE5hbWUgOiBTdHJpbmcpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5h
bCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBOYW1lIDogaW4gU3RyaW5nKTsKICAgICAgcHJhZ21h
IEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9uYW1lIik7CiAgIGJlZ2lu
CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTmFtZSAmIEFTQ0lJLk5VTCk7CiAg
IGVuZCBTZXRfTmFtZTsKCiAgIC0tLS0tLS0tLS0tCiAgIC0tIFBhaW50IC0tCiAgIC0tLS0tLS0t
LS0tCgogICBwcm9jZWR1cmUgUGFpbnQgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNv
cmQpIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKTsK
ICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3BhaW50Iik7
CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSk7CiAgIGVuZCBQYWlu
dDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIERyYXdfUG9pbnRzIC0tCiAgIC0tLS0tLS0t
LS0tLS0tLS0tCgogICBwcm9jZWR1cmUgRHJhd19Qb2ludHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQ7IE4gOiBHaW50KSBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERh
dGEgOiBTeXN0ZW0uQWRkcmVzczsgTiA6IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJ
bnRlcm5hbCwgImd0a19wbG90X2RhdGFfZHJhd19wb2ludHMiKTsKICAgYmVnaW4KICAgICAgSW50
ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBOKTsKICAgZW5kIERyYXdfUG9pbnRzOwoKICAgLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gRHJhd19TeW1ib2wgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0K
CiAgIHByb2NlZHVyZSBEcmF3X1N5bWJvbAogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0Rh
dGFfUmVjb3JkOyBYLCBZIDogR2RvdWJsZSkKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFs
IChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IFgsIFkgOiBHZG91YmxlKTsKICAgICAgcHJhZ21hIElt
cG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2RyYXdfc3ltYm9sIik7CiAgIGJlZ2lu
CiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgWCwgWSk7CiAgIGVuZCBEcmF3X1N5
bWJvbDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X1BvaW50cyAtLQogICAtLS0tLS0t
LS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1BvaW50cwogICAgIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBYICAgIDogR2RvdWJsZV9BcnJheV9BY2Nlc3M7CiAg
ICAgIFkgICAgOiBHZG91YmxlX0FycmF5X0FjY2VzczsKICAgICAgRHggICA6IEdkb3VibGVfQXJy
YXlfQWNjZXNzOwogICAgICBEeSAgIDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpCiAgIGlzCiAgICAg
IHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSAgICAgICA6IGluIFN5c3RlbS5BZGRyZXNzOwogICAg
ICAgICAgICAgICAgICAgICAgICAgIFggICAgICAgICAgOiBpbiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgICAgICAgICAgICAgICAgICAgICBZICAgICAgICAgIDogaW4gU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgRHggICAgICAgICA6IGluIFN5c3RlbS5BZGRyZXNzOwog
ICAgICAgICAgICAgICAgICAgICAgICAgIER5ICAgICAgICAgOiBpbiBTeXN0ZW0uQWRkcmVzczsK
ICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1fUG9pbnRzIDogaW4gR2ludCk7CiAgICAgIHBy
YWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfcG9pbnRzIik7CiAg
ICAgIFhhLCBZYSwgRHhhLCBEeWEgOiBTeXN0ZW0uQWRkcmVzcyA6PSBTeXN0ZW0uTnVsbF9BZGRy
ZXNzOwogICBiZWdpbgogICAgICBpZiBYIC89IG51bGwgdGhlbgogICAgICAgICBYYSA6PSBYIChY
J0ZpcnN0KSdBZGRyZXNzOwogICAgICBlbmQgaWY7CgogICAgICBpZiBZIC89IG51bGwgdGhlbgog
ICAgICAgICBZYSA6PSBZIChZJ0ZpcnN0KSdBZGRyZXNzOwogICAgICBlbmQgaWY7CgogICAgICBp
ZiBEeCAvPSBudWxsIHRoZW4KICAgICAgICAgRHhhIDo9IER4IChEeCdGaXJzdCknQWRkcmVzczsK
ICAgICAgZW5kIGlmOwoKICAgICAgaWYgRHkgLz0gbnVsbCB0aGVuCiAgICAgICAgIER5YSA6PSBE
eSAoRHknRmlyc3QpJ0FkZHJlc3M7CiAgICAgIGVuZCBpZjsKCiAgICAgIEludGVybmFsIChHZXRf
T2JqZWN0IChEYXRhKSwgWGEsIFlhLCBEeGEsIER5YSwgWCdMZW5ndGgpOwogICBlbmQgU2V0X1Bv
aW50czsKCiAgIC0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X1BvaW50cyAtLQogICAtLS0tLS0t
LS0tLS0tLS0tCgogICBwcm9jZWR1cmUgR2V0X1BvaW50cwogICAgIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBYICAgIDogb3V0IFBvaW50c19BcnJheTsKICAgICAg
WSAgICA6IG91dCBQb2ludHNfQXJyYXk7CiAgICAgIER4ICAgOiBvdXQgUG9pbnRzX0FycmF5Owog
ICAgICBEeSAgIDogb3V0IFBvaW50c19BcnJheSkKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVy
bmFsIChEYXRhICAgICAgIDogaW4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgWCAgICAgICAgICA6IG91dCBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAg
ICAgICAgICBZICAgICAgICAgIDogb3V0IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAg
ICAgICAgICAgIER4ICAgICAgICAgOiBvdXQgU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgRHkgICAgICAgICA6IG91dCBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAg
ICAgICAgICAgICAgICBOdW1fUG9pbnRzIDogb3V0IEdpbnQpOwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X3BvaW50cyIpOwogICAgICBOdW1fUG9p
bnRzIDogR2ludDsKICAgICAgWDEsIFkxLCBEeDEsIER5MSA6IFN5c3RlbS5BZGRyZXNzOwogICBi
ZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFgxLCBZMSwgRHgxLCBEeTEs
IE51bV9Qb2ludHMpOwogICAgICBYICA6PSAoUG9pbnRzID0+IFRvX0RvdWJsZV9BcnJheSAoWDEp
LCAgTnVtX1BvaW50cyA9PiBOdW1fUG9pbnRzKTsKICAgICAgWSAgOj0gKFBvaW50cyA9PiBUb19E
b3VibGVfQXJyYXkgKFkxKSwgIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgICAgIER4IDo9
IChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5IChEeDEpLCBOdW1fUG9pbnRzID0+IE51bV9Qb2lu
dHMpOwogICAgICBEeSA6PSAoUG9pbnRzID0+IFRvX0RvdWJsZV9BcnJheSAoRHkxKSwgTnVtX1Bv
aW50cyA9PiBOdW1fUG9pbnRzKTsKICAgZW5kIEdldF9Qb2ludHM7CgogICAtLS0tLS0tLS0tLQog
ICAtLSBTZXRfWCAtLQogICAtLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9YCiAgICAgKERh
dGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IFggOiBHZG91YmxlX0FycmF5X0FjY2Vz
cykKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7
IFggOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAi
Z3RrX3Bsb3RfZGF0YV9zZXRfeCIpOwogICBiZWdpbgogICAgICBwcmFnbWEgQXNzZXJ0IChHZXRf
TnVtcG9pbnRzIChEYXRhKSA9IFgnTGVuZ3RoKTsKICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3Qg
KERhdGEpLCBYIChYJ0ZpcnN0KSdBZGRyZXNzKTsKICAgZW5kIFNldF9YOwoKICAgLS0tLS0tLS0t
LS0KICAgLS0gU2V0X1kgLS0KICAgLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfWQogICAg
IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBZIDogR2RvdWJsZV9BcnJheV9B
Y2Nlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRy
ZXNzOyBZIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5h
bCwgImd0a19wbG90X2RhdGFfc2V0X3kiKTsKICAgYmVnaW4KICAgICAgcHJhZ21hIEFzc2VydCAo
R2V0X051bXBvaW50cyAoRGF0YSkgPSBZJ0xlbmd0aCk7CiAgICAgIEludGVybmFsIChHZXRfT2Jq
ZWN0IChEYXRhKSwgWSAoWSdGaXJzdCknQWRkcmVzcyk7CiAgIGVuZCBTZXRfWTsKCiAgIC0tLS0t
LS0tLS0tCiAgIC0tIFNldF9aIC0tCiAgIC0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1oK
ICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgWiA6IEdkb3VibGVfQXJy
YXlfQWNjZXNzKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0u
QWRkcmVzczsgWiA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50
ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF96Iik7CiAgIGJlZ2luCiAgICAgIHByYWdtYSBBc3Nl
cnQgKEdldF9OdW1wb2ludHMgKERhdGEpID0gWidMZW5ndGgpOwogICAgICBJbnRlcm5hbCAoR2V0
X09iamVjdCAoRGF0YSksIFogKFonRmlyc3QpJ0FkZHJlc3MpOwogICBlbmQgU2V0X1o7CgogICAt
LS0tLS0tLS0tLQogICAtLSBTZXRfQSAtLQogICAtLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNl
dF9BCiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IEEgOiBHZG91Ymxl
X0FycmF5X0FjY2VzcykKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lz
dGVtLkFkZHJlc3M7IEEgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMs
IEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9zZXRfYSIpOwogICBiZWdpbgogICAgICBwcmFnbWEg
QXNzZXJ0IChHZXRfTnVtcG9pbnRzIChEYXRhKSA9IEEnTGVuZ3RoKTsKICAgICAgSW50ZXJuYWwg
KEdldF9PYmplY3QgKERhdGEpLCBBIChBJ0ZpcnN0KSdBZGRyZXNzKTsKICAgZW5kIFNldF9BOwoK
ICAgLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9EeCAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHByb2Nl
ZHVyZSBTZXRfRHgKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgRHgg
OiBHZG91YmxlX0FycmF5X0FjY2VzcykKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChE
YXRhIDogU3lzdGVtLkFkZHJlc3M7IER4IDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEg
SW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2R4Iik7CiAgIGJlZ2luCiAg
ICAgIHByYWdtYSBBc3NlcnQgKEdldF9OdW1wb2ludHMgKERhdGEpID0gRHgnTGVuZ3RoKTsKICAg
ICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBEeCAoRHgnRmlyc3QpJ0FkZHJlc3MpOwog
ICBlbmQgU2V0X0R4OwoKICAgLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9EeSAtLQogICAtLS0tLS0t
LS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfRHkKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9E
YXRhX1JlY29yZDsgRHkgOiBHZG91YmxlX0FycmF5X0FjY2VzcykKICAgaXMKICAgICAgcHJvY2Vk
dXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IER5IDogU3lzdGVtLkFkZHJlc3Mp
OwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2R5
Iik7CiAgIGJlZ2luCiAgICAgIHByYWdtYSBBc3NlcnQgKEdldF9OdW1wb2ludHMgKERhdGEpID0g
RHknTGVuZ3RoKTsKICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBEeSAoRHknRmly
c3QpJ0FkZHJlc3MpOwogICBlbmQgU2V0X0R5OwoKICAgLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9E
eiAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfRHoKICAgICAoRGF0YSA6IGFj
Y2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgRHogOiBHZG91YmxlX0FycmF5X0FjY2VzcykKICAg
aXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IER6IDog
U3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19w
bG90X2RhdGFfc2V0X2R6Iik7CiAgIGJlZ2luCiAgICAgIHByYWdtYSBBc3NlcnQgKEdldF9OdW1w
b2ludHMgKERhdGEpID0gRHonTGVuZ3RoKTsKICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERh
dGEpLCBEeiAoRHonRmlyc3QpJ0FkZHJlc3MpOwogICBlbmQgU2V0X0R6OwoKICAgLS0tLS0tLS0t
LS0tCiAgIC0tIFNldF9EYSAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfRGEK
ICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgRGEgOiBHZG91YmxlX0Fy
cmF5X0FjY2VzcykKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVt
LkFkZHJlc3M7IERhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJ
bnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2RhIik7CiAgIGJlZ2luCiAgICAgIHByYWdtYSBB
c3NlcnQgKEdldF9OdW1wb2ludHMgKERhdGEpID0gRGEnTGVuZ3RoKTsKICAgICAgSW50ZXJuYWwg
KEdldF9PYmplY3QgKERhdGEpLCBEYSAoRGEnRmlyc3QpJ0FkZHJlc3MpOwogICBlbmQgU2V0X0Rh
OwoKICAgLS0tLS0tLS0tLS0KICAgLS0gR2V0X1ggLS0KICAgLS0tLS0tLS0tLS0KCiAgIGZ1bmN0
aW9uIEdldF9YIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9p
bnRzX0FycmF5IGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJl
c3M7IE51bV9Qb2ludHMgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgcmV0dXJuIFN5c3RlbS5B
ZGRyZXNzOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFf
Z2V0X3giKTsKCiAgICAgIE51bV9Qb2ludHMgOiBhbGlhc2VkIEdpbnQ7CiAgICAgIFMgOiBTeXN0
ZW0uQWRkcmVzcyA6PSBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE51bV9Qb2ludHMnQWRk
cmVzcyk7CiAgIGJlZ2luCiAgICAgIHJldHVybiAoUG9pbnRzID0+IFRvX0RvdWJsZV9BcnJheSAo
UyksIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRfWDsKCiAgIC0tLS0tLS0t
LS0tCiAgIC0tIEdldF9ZIC0tCiAgIC0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRfWSAoRGF0
YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19BcnJheSBpcwog
ICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBOdW1fUG9pbnRz
IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAg
cHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF95Iik7CgogICAg
ICBOdW1fUG9pbnRzIDogYWxpYXNlZCBHaW50OwogICAgICBTIDogU3lzdGVtLkFkZHJlc3MgOj0g
SW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBOdW1fUG9pbnRzJ0FkZHJlc3MpOwogICBiZWdp
bgogICAgICByZXR1cm4gKFBvaW50cyA9PiBUb19Eb3VibGVfQXJyYXkgKFMpLCBOdW1fUG9pbnRz
ID0+IE51bV9Qb2ludHMpOwogICBlbmQgR2V0X1k7CgogICAtLS0tLS0tLS0tLQogICAtLSBHZXRf
WiAtLQogICAtLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0X1ogKERhdGEgOiBhY2Nlc3MgR3Rr
X1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNfQXJyYXkgaXMKICAgICAgZnVuY3Rpb24g
SW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsgTnVtX1BvaW50cyA6IFN5c3RlbS5BZGRy
ZXNzKQogICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9nZXRfeiIpOwoKICAgICAgTnVtX1BvaW50cyA6
IGFsaWFzZWQgR2ludDsKICAgICAgUyA6IFN5c3RlbS5BZGRyZXNzIDo9IEludGVybmFsIChHZXRf
T2JqZWN0IChEYXRhKSwgTnVtX1BvaW50cydBZGRyZXNzKTsKICAgYmVnaW4KICAgICAgcmV0dXJu
IChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5IChTKSwgTnVtX1BvaW50cyA9PiBOdW1fUG9pbnRz
KTsKICAgZW5kIEdldF9aOwoKICAgLS0tLS0tLS0tLS0KICAgLS0gR2V0X0EgLS0KICAgLS0tLS0t
LS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9BIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVj
b3JkKSByZXR1cm4gUG9pbnRzX0FycmF5IGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRh
IDogU3lzdGVtLkFkZHJlc3M7IE51bV9Qb2ludHMgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAg
cmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwg
Imd0a19wbG90X2RhdGFfZ2V0X2EiKTsKCiAgICAgIE51bV9Qb2ludHMgOiBhbGlhc2VkIEdpbnQ7
CiAgICAgIFMgOiBTeXN0ZW0uQWRkcmVzcyA6PSBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSks
IE51bV9Qb2ludHMnQWRkcmVzcyk7CiAgIGJlZ2luCiAgICAgIHJldHVybiAoUG9pbnRzID0+IFRv
X0RvdWJsZV9BcnJheSAoUyksIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRf
QTsKCiAgIC0tLS0tLS0tLS0tLQogICAtLSBHZXRfRHggLS0KICAgLS0tLS0tLS0tLS0tCgogICBm
dW5jdGlvbiBHZXRfRHggKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVy
biBQb2ludHNfQXJyYXkgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0u
QWRkcmVzczsgTnVtX1BvaW50cyA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICByZXR1cm4gU3lz
dGVtLkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3Rf
ZGF0YV9nZXRfZHgiKTsKCiAgICAgIE51bV9Qb2ludHMgOiBhbGlhc2VkIEdpbnQ7CiAgICAgIFMg
OiBTeXN0ZW0uQWRkcmVzcyA6PSBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE51bV9Qb2lu
dHMnQWRkcmVzcyk7CiAgIGJlZ2luCiAgICAgIHJldHVybiAoUG9pbnRzID0+IFRvX0RvdWJsZV9B
cnJheSAoUyksIE51bV9Qb2ludHMgPT4gTnVtX1BvaW50cyk7CiAgIGVuZCBHZXRfRHg7CgogICAt
LS0tLS0tLS0tLS0KICAgLS0gR2V0X0R5IC0tCiAgIC0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24g
R2V0X0R5IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRz
X0FycmF5IGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7
IE51bV9Qb2ludHMgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRy
ZXNzOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0
X2R5Iik7CgogICAgICBOdW1fUG9pbnRzIDogYWxpYXNlZCBHaW50OwogICAgICBTIDogU3lzdGVt
LkFkZHJlc3MgOj0gSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBOdW1fUG9pbnRzJ0FkZHJl
c3MpOwogICBiZWdpbgogICAgICByZXR1cm4gKFBvaW50cyA9PiBUb19Eb3VibGVfQXJyYXkgKFMp
LCBOdW1fUG9pbnRzID0+IE51bV9Qb2ludHMpOwogICBlbmQgR2V0X0R5OwoKICAgLS0tLS0tLS0t
LS0tCiAgIC0tIEdldF9EeiAtLQogICAtLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9EeiAo
RGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgcmV0dXJuIFBvaW50c19BcnJheSBp
cwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBOdW1fUG9p
bnRzIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9keiIpOwoK
ICAgICAgTnVtX1BvaW50cyA6IGFsaWFzZWQgR2ludDsKICAgICAgUyA6IFN5c3RlbS5BZGRyZXNz
IDo9IEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTnVtX1BvaW50cydBZGRyZXNzKTsKICAg
YmVnaW4KICAgICAgcmV0dXJuIChQb2ludHMgPT4gVG9fRG91YmxlX0FycmF5IChTKSwgTnVtX1Bv
aW50cyA9PiBOdW1fUG9pbnRzKTsKICAgZW5kIEdldF9EejsKCiAgIC0tLS0tLS0tLS0tLQogICAt
LSBHZXRfRGEgLS0KICAgLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRfRGEgIChEYXRhIDog
YWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5IGlzCiAgICAg
IGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IE51bV9Qb2ludHMgOiBT
eXN0ZW0uQWRkcmVzcykKICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICBwcmFn
bWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2RhIik7CgogICAgICBO
dW1fUG9pbnRzIDogYWxpYXNlZCBHaW50OwogICAgICBTIDogU3lzdGVtLkFkZHJlc3MgOj0gSW50
ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBOdW1fUG9pbnRzJ0FkZHJlc3MpOwogICBiZWdpbgog
ICAgICByZXR1cm4gKFBvaW50cyA9PiBUb19Eb3VibGVfQXJyYXkgKFMpLCBOdW1fUG9pbnRzID0+
IE51bV9Qb2ludHMpOwogICBlbmQgR2V0X0RhOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLQogICAt
LSBTZXRfTnVtcG9pbnRzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBT
ZXRfTnVtcG9pbnRzIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBOdW0gOiBH
aW50KSBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsg
TnVtIDogR2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3Rf
ZGF0YV9zZXRfbnVtcG9pbnRzIik7CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0
IChEYXRhKSwgTnVtKTsKICAgZW5kIFNldF9OdW1wb2ludHM7CgogICAtLS0tLS0tLS0tLS0tLS0t
LS0tCiAgIC0tIEdldF9OdW1wb2ludHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVu
Y3Rpb24gR2V0X051bXBvaW50cyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkg
cmV0dXJuIEdpbnQgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRk
cmVzcykgcmV0dXJuIEdpbnQ7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3Rr
X3Bsb3RfZGF0YV9nZXRfbnVtcG9pbnRzIik7CiAgIGJlZ2luCiAgICAgIHJldHVybiBJbnRlcm5h
bCAoR2V0X09iamVjdCAoRGF0YSkpOwogICBlbmQgR2V0X051bXBvaW50czsKCiAgIC0tLS0tLS0t
LS0tLS0tLS0KICAgLS0gU2V0X0xhYmVscyAtLQogICAtLS0tLS0tLS0tLS0tLS0tCgogICBwcm9j
ZWR1cmUgU2V0X0xhYmVscwogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3Jk
OwogICAgICBMYWJlbHMgOiBHdGthZGEuVHlwZXMuQ2hhcnNfUHRyX0FycmF5KQogICBpcwogICAg
ICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsgTGFiZWxzIDogQ2hh
cnNfUHRyX0FycmF5KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxv
dF9kYXRhX3NldF9sYWJlbHMiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3Qg
KERhdGEpLCBMYWJlbHMpOwogICBlbmQgU2V0X0xhYmVsczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0K
ICAgLS0gR2V0X0xhYmVscyAtLQogICAtLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRf
TGFiZWxzIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4g
R3RrYWRhLlR5cGVzLkNoYXJzX1B0cl9BcnJheQogICBpcwogICAgICB0eXBlIFN0cl9BcnJheSBp
cyBhcnJheSAoTmF0dXJhbCkgb2YgQ2hhcnNfUHRyOwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAo
RGF0YSA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gU3RyX0FycmF5OwogICAgICBwcmFnbWEgSW1w
b3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2xhYmVscyIpOwoKICAgICAgTiA6
IGNvbnN0YW50IHNpemVfdCA6PSBzaXplX3QgKEdldF9OdW1wb2ludHMgKERhdGEpKTsKICAgYmVn
aW4KICAgICAgcmV0dXJuIENoYXJzX1B0cl9BcnJheQogICAgICAgIChJbnRlcm5hbCAoR2V0X09i
amVjdCAoRGF0YSkpKDAgLi4gSW50ZWdlciAoTikgLSAxKSk7CiAgIGVuZCBHZXRfTGFiZWxzOwoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2hvd19MYWJlbHMgLS0KICAgLS0tLS0tLS0tLS0t
LS0tLS0KCiAgIHByb2NlZHVyZSBTaG93X0xhYmVscwogICAgIChEYXRhIDogYWNjZXNzIEd0a19Q
bG90X0RhdGFfUmVjb3JkOyBTaG93IDogQm9vbGVhbikKICAgaXMKICAgICAgcHJvY2VkdXJlIElu
dGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IFNob3cgOiBHaW50KTsKICAgICAgcHJhZ21h
IEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3Nob3dfbGFiZWxzIik7CiAgIGJl
Z2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgQm9vbGVhbidQb3MgKFNob3cp
KTsKICAgZW5kIFNob3dfTGFiZWxzOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
IC0tIExhYmVsc19TZXRfQXR0cmlidXRlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiAgIHByb2NlZHVyZSBMYWJlbHNfU2V0X0F0dHJpYnV0ZXMKICAgICAoRGF0YSA6IGFjY2Vz
cyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgRm9udCA6IFN0cmluZzsKICAgICAgSGVpZ2h0
IDogR2ludDsKICAgICAgQW5nbGUgIDogR2ludDsKICAgICAgRm9yZWdyb3VuZCA6IEdkay5Db2xv
ci5HZGtfQ29sb3I7CiAgICAgIEJhY2tncm91bmQgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBp
cwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAgICAoRGF0YSA6IFN5c3RlbS5BZGRyZXNz
OwogICAgICAgICBGb250IDogU3RyaW5nOwogICAgICAgICBIZWlnaHQsIEFuZ2xlIDogR2ludDsK
ICAgICAgICAgRm9yZWdyb3VuZCwgQmFja2dyb3VuZCA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAg
cHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2xhYmVsc19zZXRfYXR0
cmlidXRlcyIpOwoKICAgICAgRiA6IGFsaWFzZWQgR2RrX0NvbG9yIDo9IEZvcmVncm91bmQ7CiAg
ICAgIEIgOiBhbGlhc2VkIEdka19Db2xvciA6PSBCYWNrZ3JvdW5kOwogICBiZWdpbgogICAgICBJ
bnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIEZvbnQgJiBBU0NJSS5OVUwsIEhlaWdodCwgQW5n
bGUsCiAgICAgICAgICAgICAgICBGJ0FkZHJlc3MsIEInQWRkcmVzcyk7CiAgIGVuZCBMYWJlbHNf
U2V0X0F0dHJpYnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9TeW1ib2wgLS0K
ICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9TeW1ib2wKICAgICAoRGF0YSAg
ICAgICAgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBUaGVfVHlwZSAgICAg
OiBQbG90X1N5bWJvbF9UeXBlOwogICAgICBTdHlsZSAgICAgICAgOiBQbG90X1N5bWJvbF9TdHls
ZTsKICAgICAgU2l6ZSAgICAgICAgIDogR2ludDsKICAgICAgTGluZV9XaWR0aCAgIDogR2Zsb2F0
OwogICAgICBDb2xvciAgICAgICAgOiBHZGsuQ29sb3IuR2RrX0NvbG9yOwogICAgICBCb3JkZXJf
Q29sb3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJu
YWwKICAgICAgICAoRGF0YSAgICAgICAgICAgICAgICAgIDogU3lzdGVtLkFkZHJlc3M7CiAgICAg
ICAgIFRoZV9UeXBlLCBTdHlsZSwgU2l6ZSA6IEdpbnQ7CiAgICAgICAgIExpbmVfV2lkdGggICAg
ICAgICAgICA6IEdmbG9hdDsKICAgICAgICAgQ29sb3IsIEJvcmRlcl9Db2xvciAgIDogU3lzdGVt
LkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2Rh
dGFfc2V0X3N5bWJvbCIpOwogICAgICBDIDogYWxpYXNlZCBHZGtfQ29sb3IgOj0gQ29sb3I7CiAg
ICAgIEIgOiBhbGlhc2VkIEdka19Db2xvciA6PSBCb3JkZXJfQ29sb3I7CiAgIGJlZ2luCiAgICAg
IEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgUGxvdF9TeW1ib2xfVHlwZSdQb3MgKFRoZV9U
eXBlKSwKICAgICAgICAgICAgICAgIFBsb3RfU3ltYm9sX1N0eWxlJ1BvcyAoU3R5bGUpLCBTaXpl
LCBMaW5lX1dpZHRoLAogICAgICAgICAgICAgICAgQydBZGRyZXNzLCBCJ0FkZHJlc3MpOwogICBl
bmQgU2V0X1N5bWJvbDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X1N5bWJvbCAtLQog
ICAtLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgR2V0X1N5bWJvbAogICAgIChEYXRhICAg
ICAgICAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFRoZV9UeXBlICAgICA6
IG91dCBQbG90X1N5bWJvbF9UeXBlOwogICAgICBTdHlsZSAgICAgICAgOiBvdXQgUGxvdF9TeW1i
b2xfU3R5bGU7CiAgICAgIFNpemUgICAgICAgICA6IG91dCBHaW50OwogICAgICBMaW5lX1dpZHRo
ICAgOiBvdXQgR2ludDsKICAgICAgQ29sb3IgICAgICAgIDogb3V0IEdkay5Db2xvci5HZGtfQ29s
b3I7CiAgICAgIEJvcmRlcl9Db2xvciA6IG91dCBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwog
ICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAgICAoRGF0YSAgICAgICAgIDogU3lzdGVtLkFk
ZHJlc3M7CiAgICAgICAgIFRoZV9UeXBlICAgICA6IG91dCBQbG90X1N5bWJvbF9UeXBlOwogICAg
ICAgICBTdHlsZSAgICAgICAgOiBvdXQgUGxvdF9TeW1ib2xfU3R5bGU7CiAgICAgICAgIFNpemUg
ICAgICAgICA6IG91dCBHaW50OwogICAgICAgICBMaW5lX1dpZHRoICAgOiBvdXQgR2ludDsKICAg
ICAgICAgQ29sb3IgICAgICAgIDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIEJvcmRlcl9Db2xv
ciA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJn
dGtfcGxvdF9kYXRhX2dldF9zeW1ib2wiKTsKICAgICAgQywgQiA6IGFsaWFzZWQgR2RrX0NvbG9y
OwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIFRoZV9UeXBlLCBT
dHlsZSwgU2l6ZSwgTGluZV9XaWR0aCwKICAgICAgICAgICAgICAgIEMnQWRkcmVzcywgQidBZGRy
ZXNzKTsKICAgICAgQ29sb3IgOj0gQzsKICAgICAgQm9yZGVyX0NvbG9yIDo9IEI7CiAgIGVuZCBH
ZXRfU3ltYm9sOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTZXRfQ29ubmVjdG9yIC0t
CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfQ29ubmVjdG9yCiAgICAg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IENvbm5lY3RvciA6IFBsb3RfQ29u
bmVjdG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRk
cmVzczsgQ29ubmVjdG9yIDogR2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFs
LCAiZ3RrX3Bsb3RfZGF0YV9zZXRfY29ubmVjdG9yIik7CiAgIGJlZ2luCiAgICAgIEludGVybmFs
IChHZXRfT2JqZWN0IChEYXRhKSwgUGxvdF9Db25uZWN0b3InUG9zIChDb25uZWN0b3IpKTsKICAg
ZW5kIFNldF9Db25uZWN0b3I7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9Db25u
ZWN0b3IgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0X0Nvbm5lY3Rv
ciAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkKICAgICAgcmV0dXJuIFBsb3Rf
Q29ubmVjdG9yCiAgIGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFk
ZHJlc3MpIHJldHVybiBHaW50OwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0
a19wbG90X2RhdGFfZ2V0X2Nvbm5lY3RvciIpOwogICBiZWdpbgogICAgICByZXR1cm4gUGxvdF9D
b25uZWN0b3InVmFsIChJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpKTsKICAgZW5kIEdldF9D
b25uZWN0b3I7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9MaW5lX0F0
dHJpYnV0ZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNl
dF9MaW5lX0F0dHJpYnV0ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNv
cmQ7CiAgICAgIFN0eWxlIDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsK
ICAgICAgQ29sb3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUg
SW50ZXJuYWwKICAgICAgICAoRGF0YSAgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgU3R5bGUg
OiBHaW50OwogICAgICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgICAgQ29sb3IgOiBTeXN0ZW0u
QWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0
YV9zZXRfbGluZV9hdHRyaWJ1dGVzIik7CiAgICAgIEMgOiBhbGlhc2VkIEdka19Db2xvciA6PSBD
b2xvcjsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpLCBQbG90X0xp
bmVfU3R5bGUnUG9zIChTdHlsZSksIFdpZHRoLAogICAgICAgICAgICAgICAgQydBZGRyZXNzKTsK
ICAgZW5kIFNldF9MaW5lX0F0dHJpYnV0ZXM7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgIC0tIEdldF9MaW5lX0F0dHJpYnV0ZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQoKICAgcHJvY2VkdXJlIEdldF9MaW5lX0F0dHJpYnV0ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxlIDogb3V0IFBsb3RfTGluZV9TdHlsZTsK
ICAgICAgV2lkdGggOiBvdXQgR2Zsb2F0OwogICAgICBDb2xvciA6IG91dCBHZGsuQ29sb3IuR2Rr
X0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwKICAgICAgICAoRGF0YSAgOiBT
eXN0ZW0uQWRkcmVzczsKICAgICAgICAgU3R5bGUgOiBvdXQgUGxvdF9MaW5lX1N0eWxlOwogICAg
ICAgICBXaWR0aCA6IG91dCBHZmxvYXQ7CiAgICAgICAgIENvbG9yIDogU3lzdGVtLkFkZHJlc3Mp
OwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfZ2V0X2xp
bmVfYXR0cmlidXRlcyIpOwogICAgICBDIDogYWxpYXNlZCBHZGtfQ29sb3I7CiAgIGJlZ2luCiAg
ICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgU3R5bGUsIFdpZHRoLCBDJ0FkZHJlc3Mp
OwogICAgICBDb2xvciA6PSBDOwogICBlbmQgR2V0X0xpbmVfQXR0cmlidXRlczsKCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X1hfQXR0cmlidXRlcyAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1hfQXR0cmlidXRlcwogICAgIChEYXRhICA6
IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgU3R5bGUgOiBQbG90X0xpbmVfU3R5
bGU7CiAgICAgIFdpZHRoIDogR2Zsb2F0OwogICAgICBDb2xvciA6IEdkay5Db2xvci5HZGtfQ29s
b3IpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbAogICAgICAgIChEYXRhICA6IFN5c3Rl
bS5BZGRyZXNzOwogICAgICAgICBTdHlsZSA6IEdpbnQ7CiAgICAgICAgIFdpZHRoIDogR2Zsb2F0
OwogICAgICAgICBDb2xvciA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF94X2F0dHJpYnV0ZXMiKTsKICAgICAgQyA6
IGFsaWFzZWQgR2RrX0NvbG9yIDo9IENvbG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0
X09iamVjdCAoRGF0YSksIFBsb3RfTGluZV9TdHlsZSdQb3MgKFN0eWxlKSwgV2lkdGgsCiAgICAg
ICAgICAgICAgICBDJ0FkZHJlc3MpOwogICBlbmQgU2V0X1hfQXR0cmlidXRlczsKCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X1lfQXR0cmlidXRlcyAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1lfQXR0cmlidXRlcwogICAgIChEYXRhICA6
IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgU3R5bGUgOiBQbG90X0xpbmVfU3R5
bGU7CiAgICAgIFdpZHRoIDogR2Zsb2F0OwogICAgICBDb2xvciA6IEdkay5Db2xvci5HZGtfQ29s
b3IpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbAogICAgICAgIChEYXRhICA6IFN5c3Rl
bS5BZGRyZXNzOwogICAgICAgICBTdHlsZSA6IEdpbnQ7CiAgICAgICAgIFdpZHRoIDogR2Zsb2F0
OwogICAgICAgICBDb2xvciA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF95X2F0dHJpYnV0ZXMiKTsKICAgICAgQyA6
IGFsaWFzZWQgR2RrX0NvbG9yIDo9IENvbG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0
X09iamVjdCAoRGF0YSksIFBsb3RfTGluZV9TdHlsZSdQb3MgKFN0eWxlKSwgV2lkdGgsCiAgICAg
ICAgICAgICAgICBDJ0FkZHJlc3MpOwogICBlbmQgU2V0X1lfQXR0cmlidXRlczsKCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X1pfQXR0cmlidXRlcyAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X1pfQXR0cmlidXRlcwogICAgIChEYXRhICA6
IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgU3R5bGUgOiBQbG90X0xpbmVfU3R5
bGU7CiAgICAgIFdpZHRoIDogR2Zsb2F0OwogICAgICBDb2xvciA6IEdkay5Db2xvci5HZGtfQ29s
b3IpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbAogICAgICAgIChEYXRhICA6IFN5c3Rl
bS5BZGRyZXNzOwogICAgICAgICBTdHlsZSA6IEdpbnQ7CiAgICAgICAgIFdpZHRoIDogR2Zsb2F0
OwogICAgICAgICBDb2xvciA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF96X2F0dHJpYnV0ZXMiKTsKICAgICAgQyA6
IGFsaWFzZWQgR2RrX0NvbG9yIDo9IENvbG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0
X09iamVjdCAoRGF0YSksIFBsb3RfTGluZV9TdHlsZSdQb3MgKFN0eWxlKSwgV2lkdGgsCiAgICAg
ICAgICAgICAgICBDJ0FkZHJlc3MpOwogICBlbmQgU2V0X1pfQXR0cmlidXRlczsKCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gU2hvd19YZXJyYmFycyAtLQogICAtLS0tLS0tLS0tLS0tLS0t
LS0tCgogICBwcm9jZWR1cmUgU2hvd19YZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9E
YXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFk
ZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFf
c2hvd194ZXJyYmFycyIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0
YSkpOwogICBlbmQgU2hvd19YZXJyYmFyczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0g
U2hvd19ZZXJyYmFycyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2hv
d19ZZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAg
cHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEg
SW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2hvd195ZXJyYmFycyIpOwogICBi
ZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpOwogICBlbmQgU2hvd19ZZXJy
YmFyczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2hvd19aZXJyYmFycyAtLQogICAt
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2hvd19aZXJyYmFycyAoRGF0YSA6IGFj
Y2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChE
YXRhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwg
Imd0a19wbG90X2RhdGFfc2hvd196ZXJyYmFycyIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAo
R2V0X09iamVjdCAoRGF0YSkpOwogICBlbmQgU2hvd19aZXJyYmFyczsKCiAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0KICAgLS0gSGlkZV9YZXJyYmFycyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCgog
ICBwcm9jZWR1cmUgSGlkZV9YZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3Mp
OwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfaGlkZV94
ZXJyYmFycyIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpOwog
ICBlbmQgSGlkZV9YZXJyYmFyczsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSGlkZV9Z
ZXJyYmFycyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSGlkZV9ZZXJy
YmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2Vk
dXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfaGlkZV95ZXJyYmFycyIpOwogICBiZWdpbgog
ICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpOwogICBlbmQgSGlkZV9ZZXJyYmFyczsK
CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSGlkZV9aZXJyYmFycyAtLQogICAtLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSGlkZV9aZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBH
dGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDog
U3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19w
bG90X2RhdGFfaGlkZV96ZXJyYmFycyIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09i
amVjdCAoRGF0YSkpOwogICBlbmQgSGlkZV9aZXJyYmFyczsKCiAgIC0tLS0tLS0tLS0tLS0tLQog
ICAtLSBGaWxsX0FyZWEgLS0KICAgLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgRmlsbF9B
cmVhIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBGaWxsIDogQm9vbGVhbikg
aXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7IEZpbGwg
OiBHaW50KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRh
X2ZpbGxfYXJlYSIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSks
IEJvb2xlYW4nUG9zIChGaWxsKSk7CiAgIGVuZCBGaWxsX0FyZWE7CgogICAtLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAtLSBBcmVhX0lzX0ZpbGxlZCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoK
ICAgZnVuY3Rpb24gQXJlYV9Jc19GaWxsZWQgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9S
ZWNvcmQpCiAgICAgIHJldHVybiBCb29sZWFuCiAgIGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFs
IChEYXRhIDogU3lzdGVtLkFkZHJlc3MpIHJldHVybiBHaW50OwogICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfYXJlYV9pc19maWxsZWQiKTsKICAgYmVnaW4K
ICAgICAgcmV0dXJuIEJvb2xlYW4nVmFsIChJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpKTsK
ICAgZW5kIEFyZWFfSXNfRmlsbGVkOwoKICAgLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTZXRfTGVn
ZW5kIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfTGVnZW5kIChEYXRh
IDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBMZWdlbmQgOiBTdHJpbmcpCiAgIGlzCiAg
ICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBMZWdlbmQgOiBT
dHJpbmcpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFf
c2V0X2xlZ2VuZCIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSks
IExlZ2VuZCAmIEFTQ0lJLk5VTCk7CiAgIGVuZCBTZXRfTGVnZW5kOwoKICAgLS0tLS0tLS0tLS0t
LS0tLS0KICAgLS0gU2hvd19MZWdlbmQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2Nl
ZHVyZSBTaG93X0xlZ2VuZCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkgaXMK
ICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBw
cmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2hvd19sZWdlbmQiKTsK
ICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIFNob3df
TGVnZW5kOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSGlkZV9MZWdlbmQgLS0KICAgLS0t
LS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBIaWRlX0xlZ2VuZCAoRGF0YSA6IGFjY2VzcyBH
dGtfUGxvdF9EYXRhX1JlY29yZCkgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDog
U3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImd0a19w
bG90X2RhdGFfaGlkZV9sZWdlbmQiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmpl
Y3QgKERhdGEpKTsKICAgZW5kIEhpZGVfTGVnZW5kOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgLS0gU2V0X0xlZ2VuZF9QcmVjaXNpb24gLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfTGVnZW5kX1ByZWNpc2lvbgogICAgIChEYXRhIDog
YWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBQcmVjaXNpb24gOiBHaW50KQogICBpcwogICAg
ICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsgUHJlY2lzaW9uIDog
R2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9z
ZXRfbGVnZW5kX3ByZWNpc2lvbiIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVj
dCAoRGF0YSksIFByZWNpc2lvbik7CiAgIGVuZCBTZXRfTGVnZW5kX1ByZWNpc2lvbjsKCiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9MZWdlbmRfUHJlY2lzaW9uIC0tCiAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRfTGVnZW5kX1ByZWNp
c2lvbiAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkKICAgICAgcmV0dXJuIEdp
bnQKICAgaXMKICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzcykg
cmV0dXJuIEdpbnQ7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3Rf
ZGF0YV9nZXRfbGVnZW5kX3ByZWNpc2lvbiIpOwogICBiZWdpbgogICAgICByZXR1cm4gSW50ZXJu
YWwgKEdldF9PYmplY3QgKERhdGEpKTsKICAgZW5kIEdldF9MZWdlbmRfUHJlY2lzaW9uOwoKICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X0dyYWRpZW50X01hc2sgLS0KICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfR3JhZGllbnRfTWFzawogICAg
IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBNYXNrIDogUGxvdF9HcmFkaWVu
dCkKICAgaXMKICAgICAgcHJvY2VkdXJlIEludGVybmFsIChEYXRhIDogU3lzdGVtLkFkZHJlc3M7
IE1hc2sgOiBHaW50KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxv
dF9kYXRhX3NldF9ncmFkaWVudF9tYXNrIik7CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRf
T2JqZWN0IChEYXRhKSwgUGxvdF9HcmFkaWVudCdQb3MgKE1hc2spKTsKICAgZW5kIFNldF9HcmFk
aWVudF9NYXNrOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X0dyYWRpZW50
X01hc2sgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9HcmFk
aWVudF9NYXNrIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1
cm4gUGxvdF9HcmFkaWVudAogICBpcwogICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5
c3RlbS5BZGRyZXNzKSByZXR1cm4gR2ludDsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJu
YWwsICJndGtfcGxvdF9kYXRhX2dldF9ncmFkaWVudF9tYXNrIik7CiAgIGJlZ2luCiAgICAgIHJl
dHVybiBQbG90X0dyYWRpZW50J1ZhbCAoSW50ZXJuYWwgKEdldF9PYmplY3QgKERhdGEpKSk7CiAg
IGVuZCBHZXRfR3JhZGllbnRfTWFzazsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
IC0tIEdyYWRpZW50X1NldF9WaXNpYmxlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CgogICBwcm9jZWR1cmUgR3JhZGllbnRfU2V0X1Zpc2libGUKICAgICAoRGF0YSA6IGFjY2VzcyBH
dGtfUGxvdF9EYXRhX1JlY29yZDsgVmlzaWJsZSA6IEJvb2xlYW4pCiAgIGlzCiAgICAgIHByb2Nl
ZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzOyBWaXNpYmxlIDogR2ludCk7CiAg
ICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9ncmFkaWVudF9z
ZXRfdmlzaWJsZSIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSks
IEJvb2xlYW4nUG9zIChWaXNpYmxlKSk7CiAgIGVuZCBHcmFkaWVudF9TZXRfVmlzaWJsZTsKCiAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR3JhZGllbnRfVmlzaWJsZSAtLQogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHcmFkaWVudF9WaXNpYmxlIChEYXRhIDog
YWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gQm9vbGVhbgogICBpcwog
ICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR2lu
dDsKICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dyYWRp
ZW50X3Zpc2libGUiKTsKICAgYmVnaW4KICAgICAgcmV0dXJuIEJvb2xlYW4nVmFsIChJbnRlcm5h
bCAoR2V0X09iamVjdCAoRGF0YSkpKTsKICAgZW5kIEdyYWRpZW50X1Zpc2libGU7CgogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNldF9HcmFkaWVudF9Db2xvcnMgLS0KICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNldF9HcmFkaWVudF9Db2xvcnMK
ICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgTWluLCBNYXgg
OiBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERh
dGEsIE1pbiwgTWF4IDogU3lzdGVtLkFkZHJlc3MpOwogICAgICBwcmFnbWEgSW1wb3J0IChDLCBJ
bnRlcm5hbCwgImd0a19wbG90X2RhdGFfc2V0X2dyYWRpZW50X2NvbG9ycyIpOwogICAgICBNaSA6
IGFsaWFzZWQgR2RrX0NvbG9yIDo9IE1pbjsKICAgICAgTWEgOiBhbGlhc2VkIEdka19Db2xvciA6
PSBNYXg7CiAgIGJlZ2luCiAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTWknQWRk
cmVzcywgTWEnQWRkcmVzcyk7CiAgIGVuZCBTZXRfR3JhZGllbnRfQ29sb3JzOwoKICAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfR3JhZGllbnRfQ29sb3JzIC0tCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHZXRfR3JhZGllbnRfQ29sb3JzCiAg
ICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIE1pbiwgTWF4IDog
b3V0IEdkay5Db2xvci5HZGtfQ29sb3IpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAo
RGF0YSwgTWluLCBNYXggOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMs
IEludGVybmFsLCAiZ3RrX3Bsb3RfZGF0YV9nZXRfZ3JhZGllbnRfY29sb3JzIik7CiAgICAgIE1p
LCBNYSA6IGFsaWFzZWQgR2RrX0NvbG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09i
amVjdCAoRGF0YSksIE1pJ0FkZHJlc3MsIE1hJ0FkZHJlc3MpOwogICAgICBNaW4gOj0gTWk7CiAg
ICAgIE1heCA6PSBNYTsKICAgZW5kIEdldF9HcmFkaWVudF9Db2xvcnM7CgogICAtLS0tLS0tLS0t
LS0tLS0tLS0KICAgLS0gU2V0X0dyYWRpZW50IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAg
cHJvY2VkdXJlIFNldF9HcmFkaWVudAogICAgIChEYXRhICAgICA6IGFjY2VzcyBHdGtfUGxvdF9E
YXRhX1JlY29yZDsKICAgICAgTWluLCBNYXggOiBHZG91YmxlOwogICAgICBObGV2ZWxzICA6IEdp
bnQpCiAgIGlzCiAgICAgIHByb2NlZHVyZSBJbnRlcm5hbCAoRGF0YSA6IFN5c3RlbS5BZGRyZXNz
OyBNaW4sIE1heCA6IEdkb3VibGU7IE4gOiBHaW50KTsKICAgICAgcHJhZ21hIEltcG9ydCAoQywg
SW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9ncmFkaWVudCIpOwogICBiZWdpbgogICAgICBJ
bnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIE1pbiwgTWF4LCBObGV2ZWxzKTsKICAgZW5kIFNl
dF9HcmFkaWVudDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRfR3JhZGllbnQgLS0K
ICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgR2V0X0dyYWRpZW50CiAgICAgKERh
dGEgICAgIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBNaW4sIE1heCA6IG91
dCBHZG91YmxlOwogICAgICBObGV2ZWxzICA6IG91dCBHaW50KQogICBpcwogICAgICBwcm9jZWR1
cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAg
ICAgICBNaW4sIE1heCA6IG91dCBHZG91YmxlOwogICAgICAgICAgICAgICAgICAgICAgICAgIE4g
OiBvdXQgR2ludCk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bsb3Rf
ZGF0YV9nZXRfZ3JhZGllbnQiKTsKICAgYmVnaW4KICAgICAgSW50ZXJuYWwgKEdldF9PYmplY3Qg
KERhdGEpLCBNaW4sIE1heCwgTmxldmVscyk7CiAgIGVuZCBHZXRfR3JhZGllbnQ7CgogICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X0dyYWRpZW50X0xldmVsIC0tCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEdldF9HcmFkaWVudF9MZXZlbAogICAg
IChEYXRhICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgTGV2ZWwgOiBHZG91
YmxlOwogICAgICBDb2xvciA6IG91dCBHZGsuQ29sb3IuR2RrX0NvbG9yKQogICBpcwogICAgICBw
cm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAg
ICAgICAgICAgICBMZXZlbCA6IEdkb3VibGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29s
b3IgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAi
Z3RrX3Bsb3RfZGF0YV9nZXRfZ3JhZGllbnRfbGV2ZWwiKTsKICAgICAgQyA6IGFsaWFzZWQgR2Rr
X0NvbG9yOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSksIExldmVs
LCBDJ0FkZHJlc3MpOwogICAgICBDb2xvciA6PSBDOwogICBlbmQgR2V0X0dyYWRpZW50X0xldmVs
OwoKICAgLS0tLS0tLS0tLS0tLS0KICAgLS0gU2V0X0xpbmsgLS0KICAgLS0tLS0tLS0tLS0tLS0K
CiAgIHByb2NlZHVyZSBTZXRfTGluawogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFf
UmVjb3JkOwogICAgICBMaW5rIDogU3lzdGVtLkFkZHJlc3MpCiAgIGlzCiAgICAgIHByb2NlZHVy
ZSBJbnRlcm5hbCAoRGF0YSwgTGluayA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgcHJhZ21hIElt
cG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX3NldF9saW5rIik7CiAgIGJlZ2luCiAg
ICAgIEludGVybmFsIChHZXRfT2JqZWN0IChEYXRhKSwgTGluayk7CiAgIGVuZCBTZXRfTGluazsK
CiAgIC0tLS0tLS0tLS0tLS0tCiAgIC0tIEdldF9MaW5rIC0tCiAgIC0tLS0tLS0tLS0tLS0tCgog
ICBmdW5jdGlvbiBHZXRfTGluayAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkK
ICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzCiAgIGlzCiAgICAgIGZ1bmN0aW9uIEludGVybmFs
IChEYXRhIDogU3lzdGVtLkFkZHJlc3MpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJndGtfcGxvdF9kYXRhX2dldF9saW5rIik7CiAgIGJl
Z2luCiAgICAgIHJldHVybiBJbnRlcm5hbCAoR2V0X09iamVjdCAoRGF0YSkpOwogICBlbmQgR2V0
X0xpbms7CgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBSZW1vdmVfTGluayAtLQogICAtLS0t
LS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFJlbW92ZV9MaW5rIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkKSBpcwogICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKERhdGEgOiBT
eXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ3RrX3Bs
b3RfZGF0YV9yZW1vdmVfbGluayIpOwogICBiZWdpbgogICAgICBJbnRlcm5hbCAoR2V0X09iamVj
dCAoRGF0YSkpOwogICBlbmQgUmVtb3ZlX0xpbms7CmVuZCBHdGsuRXh0cmEuUGxvdF9EYXRhOwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUg
R2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg
ICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
LQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hh
cmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAg
ICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQot
LSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBp
ZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQs
IG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAt
LQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0
aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93
ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRh
YmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAg
ICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4KLS0gIFRoaXMgcGFja2FnZSBk
ZWZpbmVzIHRoZSByb290IG9mIHRoZSBwbG90IGhpZXJhcmNoeS4gSXQgZGVmaW5lcyBzZXZlcmFs
Ci0tICBkaXNwbGF5IHN0cmF0ZWdpZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBzaG93IHNjaWVudGlm
aWMgZGF0YSBvbiB0aGUKLS0gIHNjcmVlbiAoc2VlIHRoZSBjaGlsZHJlbiBmb3IgM0QsIHBvbGFy
LCBiYXJzLC4uLikKLS0KLS0gIEFsbCBjb29yZGluYXRlcyBhcmUgaW4gcGVyY2VudCBvZiB0aGUg
dG90YWwgc2l6ZSBhbGxvY2F0ZXMgZm9yIHRoZSBkYXRhCi0tICBzZXQgKGllIHRoZSBhY3R1YWwg
cG9zaXRpb24gaXMgKHggKiB3aWR0aCwgeSAqIGhlaWdodCksIHdoZXJlICh4LCB5KSBpcwotLSAg
dGhlIHZhbHVlIHN0b3JlZCBpbiB0aGUgZGF0YSBzZXQgYW5kICh3aWR0aCwgaGVpZ2h0KSBpdHMg
YWxsb2NhdGVkIHNjcmVlbgotLSAgc2l6ZS4KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192ZXJz
aW9uPmd0aytleHRyYSAwLjk5LjE0PGNfdmVyc2lvbj4KCndpdGggR2xpYjsgdXNlIEdsaWI7Cndp
dGggR3RrLldpZGdldDsKd2l0aCBHdGthZGEuVHlwZXM7CndpdGggR2RrLkNvbG9yOwp3aXRoIFVu
Y2hlY2tlZF9Db252ZXJzaW9uOwoKcGFja2FnZSBHdGsuRXh0cmEuUGxvdF9EYXRhIGlzCgogICB0
eXBlIEd0a19QbG90X0RhdGFfUmVjb3JkIGlzIG5ldyBHdGsuV2lkZ2V0Lkd0a19XaWRnZXRfUmVj
b3JkIHdpdGggcHJpdmF0ZTsKICAgdHlwZSBHdGtfUGxvdF9EYXRhIGlzIGFjY2VzcyBhbGwgR3Rr
X1Bsb3RfRGF0YV9SZWNvcmQnQ2xhc3M7CiAgIC0tICBBIHNldCBvZiB2YWx1ZXMgdGhhdCBjYW4g
YmUgcmVwcmVzZW50ZWQgb24gdGhlIHNjcmVlbi4gVGhlcmUgYXJlCiAgIC0tICBzZXZlcmFsIHN0
cmF0ZWdpZXMgdG8gc2V0IHRoZSB2YWx1ZXMsIGVpdGhlciBleHBsaWNpdGVseSBpbiB5b3VyCiAg
IC0tICBhcHBsaWNhdGlvbiwgb3IgYnkgaGF2aW5nIHRoZW0gYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgYSBmdW5jdGlvbi4KCiAgIC0tLS0tLS0tLS0tCiAgIC0tIFR5cGVzIC0tCiAgIC0tLS0t
LS0tLS0tCgogICB0eXBlIE5vX1JhbmdlX0dkb3VibGVfQXJyYXkgaXMgYXJyYXkgKE5hdHVyYWwp
IG9mIEdkb3VibGU7CiAgIC0tICBBbiBhcnJheSBvZiB2YWx1ZXMuCiAgIC0tICBUaGlzIGlzIHVz
ZWQgdG8gcmVwcmVzZW50IHRoZSBkYXRhIHZhbHVlcyBkaXNwbGF5ZWQgaW4gdGhlIHBsb3QuCiAg
IC0tICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgYW55IHJhbmdlIGluZm9ybWF0aW9uIChzbyB0
aGF0IGl0IGNhbiBiZQogICAtLSAgZWFzaWx5IHJldHVybmVkIGZyb20gYSBDIGZ1bmN0aW9uLCB3
aXRob3V0IHJlcXVpcmluZyBhbiBleHRyYQogICAtLSAgY29weSBvZiB0aGUgdGFibGUpLiBZb3Ug
Y2FuIG5vdCB1c2UgJ1JhbmdlIG9uIHRoaXMgYXJyYXkuCgogICB0eXBlIE5vX1JhbmdlX0dkb3Vi
bGVfQXJyYXlfQWNjZXNzIGlzIGFjY2VzcyBhbGwgTm9fUmFuZ2VfR2RvdWJsZV9BcnJheTsKICAg
LS0gIEFuIGFjY2VzcyB0byBhIGZsYXQgYXJyYXkuCgogICB0eXBlIEdkb3VibGVfQXJyYXlfQWNj
ZXNzIGlzIGFjY2VzcyBhbGwgR2xpYi5HZG91YmxlX0FycmF5OwogICAtLSAgVGhlIHJlYXNvbiB3
ZSB1c2UgdGhpcyB0eXBlIGluIHRoZSBmdW5jdGlvbnMgYmVsb3cgaXMgYmVjYXVzZQogICAtLSAg
Z3RrKy1leHRyYSBkb2VzIG5vdCBrZWVwIGEgY29weSBvZiB0aGUgYXJyYXlzLCBidXQgcG9pbnRz
IHRvIHRoZSBvbmUKICAgLS0gIGdpdmVuIGluIGFyZ3VtZW50LiBUaHVzLCB0aGUgQWRhIGFycmF5
cyBzaG91bGQgbm90IGJlIGFsbG9jYXRlZCBvbiB0aGUKICAgLS0gIHN0YWNrLCBvciBhdCBsZWFz
dCB0aGV5IHNob3VsZCBiZSBhdCBsaWJyYXJ5IGxldmVsLiBVc2luZyB0aGlzICdBY2Nlc3MKICAg
LS0gIHdpbGwgZm9yY2UgdGhlIGNvbXBpbGVyIHRvIGRvIHRoZSBjaGVjayBmb3IgdXMuCgogICB0
eXBlIFBvaW50c19BcnJheSBpcyByZWNvcmQKICAgICAgUG9pbnRzICAgICA6IE5vX1JhbmdlX0dk
b3VibGVfQXJyYXlfQWNjZXNzOwogICAgICBOdW1fUG9pbnRzIDogR2ludCA6PSAwOwogICBlbmQg
cmVjb3JkOwogICAtLSAgVGhlIHBvaW50cyBhcmUgaW5kZXhlZCBmcm9tIDAgdG8gTnVtX1BvaW50
cy0xLgogICAtLSAgTm90ZSB0aGF0IHlvdSBjYW4ndCB1c2UgJ1JhbmdlLCAnRmlyc3Qgb3IgJ0xh
c3Qgb24gUG9pbnRzLgoKCiAgIHR5cGUgUGxvdF9Db25uZWN0b3IgaXMgKENvbm5lY3RfTm9uZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gIE5vIGNvbm5lY3Rpb24KCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvbm5lY3RfU3RyYWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tICBzdHJhaWdodCBsaW5lCgogICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0
X1NwbGluZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gIHNwbGluZSBvciBCZXppZXIg
Y3VydmUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3RfSHZfU3RlcCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0gIEhvcml6b250YWwgdGhlbiB2ZXJ0aWNhbAoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ29ubmVjdF9WaF9TdGVwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLSAgVmVydGljYWwgdGhlbiBob3Jpem9udGFsCgogICAgICAgICAgICAgICAgICAg
ICAgICAgICBDb25uZWN0X01pZGRsZV9TdGVwCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
ICBTcGxpdCBpbiB0aGUgbWlkZGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgIC0t
ICBUaGUgdHlwZSBvZiBjb25uZWN0aW9uIGJldHdlZW4gdHdvIGFkamFjZW50IHBvaW50cyBpbiBh
IGdyYXBoLgoKICAgdHlwZSBQbG90X0dyYWRpZW50IGlzIG5ldyBJbnRlZ2VyOwogICAtLSAgSW5k
aWNhdGUgd2hpY2ggY29sb3IgY29tcG9uZW50cyB2YXJ5IGFsb25nIHRoZSBncmFkaWVudAoKICAg
R3JhZGllbnRfSCA6IGNvbnN0YW50IFBsb3RfR3JhZGllbnQ7IC0tICBIdWUKICAgR3JhZGllbnRf
ViA6IGNvbnN0YW50IFBsb3RfR3JhZGllbnQ7IC0tICBWYWx1ZQogICBHcmFkaWVudF9TIDogY29u
c3RhbnQgUGxvdF9HcmFkaWVudDsgLS0gIFNhdHVyYXRpb24KCiAgIHR5cGUgUGxvdF9TeW1ib2xf
VHlwZSBpcyAoU3ltYm9sX05vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9s
X1NxdWFyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xfQ2lyY2xlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbF9VcF9UcmlhbmdsZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTeW1ib2xfRG93bl9UcmlhbmdsZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTeW1ib2xfUmlnaHRfVHJpYW5nbGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3ltYm9sX0xlZnRfVHJpYW5nbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3ltYm9sX0RpYW1vbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX1BsdXMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX0Nyb3NzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFN5bWJvbF9TdGFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFN5bWJvbF9Eb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sX0ltcHVsc2Up
OwogICAtLSAgVHlwZSBvZiBzeW1ib2wgdXNlZCB0byByZXByZXNlbnQgdGhlIHBvaW50cyBpbiBh
IGdyYXBoLgoKICAgdHlwZSBQbG90X1N5bWJvbF9TdHlsZSBpcyAoU3ltYm9sX0VtcHR5LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xfRmlsbGVkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTeW1ib2xfT3BhcXVlKTsKICAgLS0gIFN0eWxlIHVzZWQgdG8gZHJhdyB0
aGUgcG9pbnRzIGluIGEgZ3JhcGguCgogICB0eXBlIFBsb3RfTGluZV9TdHlsZSBpcyAoTGluZV9O
b25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9Tb2xpZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExpbmVfRG90dGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGluZV9EYXNoZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lX0RvdF9EYXNoLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9Eb3RfRG90X0Rhc2gsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMaW5lX0RvdF9EYXNoX0Rhc2gpOwogICAtLSAgTGluZXMgdXNlZCB0
byBjb25uZWN0IHR3byBhZGphY2VudCBwb2ludHMgaW4gYSBncmFwaC4KCiAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAgIC0tIFBsb3QgZnVuY3Rpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgIC0tICBQbG90IGZ1bmN0aW9ucyBzaG91bGQgZ2VuZXJhdGUgYSB1bmlxdWUgWSB2YWx1ZSBn
aXZlbiBhIHBhcmFtZXRlci4KICAgLS0gIFRoZXNlIGNhbiBiZSB1c2VkIGZvciBpbnN0YW5jZSB0
byByZXByZXNlbnQgZXhhY3RseSBtYXRoZW1hdGljYWwKICAgLS0gIGZ1bmN0aW9ucy4KICAgLS0g
IE5vdGUgdGhhdCBkdWUgdG8gdGhlIEMgaW50ZXJmYWNlLCB0aGUgc3VicHJvZ3JhbXMgaW4gR3Rr
LkV4dHJhLlBsb3QgYW5kCiAgIC0tICBpbiB0aGlzIHBhY2thZ2UgZXhwZWN0IGZ1bmN0aW9ucyB0
aGF0IHRha2UgYSBTeXN0ZW0uQWRkcmVzcyBhcyBhCiAgIC0tICBwYXJhbWV0ZXIuIEhvd2V2ZXIs
IHNpbmNlIGl0IGlzIG11Y2ggbW9yZSBjb252ZW5pZW50IGluIHlvdXIgYXBwbGljYXRpb24KICAg
LS0gIHRvIGdldCBhIEd0a19QbG90X1JlY29yZCBkaXJlY3RseSwgR3RrQWRhIGluY2x1ZGVzIGEg
Z2VuZXJpYyBmdW5jdGlvbgogICAtLSAgdGhhdCBhdXRvbWF0aWNhbGx5IGRvZXMgdGhlIGNvbnZl
cnNpb24gZm9yIHlvdSAoc2VlCiAgIC0tICBHdGsuUGxvdC5HZW5lcmljX1Bsb3RfRnVuY3Rpb24p
LgoKICAgdHlwZSBQbG90X0Z1bmN0aW9uIGlzIGFjY2VzcyBmdW5jdGlvbgogICAgIChQbG90ICA6
IFN5c3RlbS5BZGRyZXNzOwogICAgICBTZXQgICA6IEd0a19QbG90X0RhdGE7CiAgICAgIFggICAg
IDogR2RvdWJsZTsKICAgICAgRXJyb3IgOiBhY2Nlc3MgR2Jvb2xlYW4pCiAgICAgcmV0dXJuIEdk
b3VibGU7CiAgIC0tICBGdW5jdGlvbiB1c2VkIGZvciBwbG90dGluZy4KICAgLS0gIEl0IHNob3Vs
ZCByZXR1cm4gdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBYIGluIGl0cyBncmFwaCwgYW5kIHNl
dAogICAtLSAgRXJyb3IgdG8gVHJ1ZSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgY2FsY3Vs
YXRpbmcgdGhlIHZhbHVlLgoKICAgcHJhZ21hIENvbnZlbnRpb24gKEMsIFBsb3RfRnVuY3Rpb24p
OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBDcmVhdGluZyBhIERhdGEgc2V0
IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBHdGtfTmV3IChE
YXRhIDogb3V0IEd0a19QbG90X0RhdGE7IEZ1bmMgOiBQbG90X0Z1bmN0aW9uIDo9IG51bGwpOwog
ICAtLSAgQ3JlYXRlcyBhIG5ldyBkYXRhIHNldC4gSXRzIHZhbHVlcyBjYW4gZWl0aGVyIGJlIGdl
bmVyYXRlZCBhdXRvbWF0aWNhbGx5CiAgIC0tICBmcm9tIEZ1bmMsIG9yIHdpbGwgaGF2ZSB0byBi
ZSBzZXQgZXhwbGljaXRlbHkgdXNpbmcgdGhlIG90aGVyCiAgIC0tICBzdWJwcm9ncmFtcyBpbiB0
aGlzIHBhY2thZ2UuCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZQogICAgIChEYXRhIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkJ0NsYXNzOyBGdW5jIDogUGxvdF9GdW5jdGlvbiA6PSBudWxs
KTsKICAgLS0gIEludGVybmFsIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgogICAtLSAgU2VlIHRo
ZSBzZWN0aW9uICJDcmVhdGluZyB5b3VyIG93biB3aWRnZXRzIiBpbiB0aGUgZG9jdW1lbnRhdGlv
bi4KCiAgIGZ1bmN0aW9uIEdldF9UeXBlIHJldHVybiBHdGsuR3RrX1R5cGU7CiAgIC0tICBSZXR1
cm4gdGhlIGludGVybmFsIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIEd0a19QbG90X0RhdGEuCgog
ICBwcm9jZWR1cmUgU2V0X05hbWUgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7
IE5hbWUgOiBTdHJpbmcpOwogICAtLSAgU2V0IHRoZSBuYW1lIHVzZWQgaW50ZXJuYWxseSBmb3Ig
dGhhdCBkYXRhc2V0LgogICAtLSAgVGhpcyBuYW1lIGRvZXMgbm90IGFwcGVhciBhbnl3aGVyZSBv
biB0aGUgc2NyZWVuLCBidXQgaXQgaXMgZWFzaWVyIHRvCiAgIC0tICBmaW5kIHRoZSBkYXRhc2V0
IGFmdGVyd2FyZCBieSB1c2luZyB0aGlzIG5hbWUuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAg
IC0tIERyYXdpbmcgYSBzZXQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgQWx0aG91
Z2ggYSBzZXQgaXMgYmFzaWNhbGx5IGEgbGlzdCBvZiB2YWx1ZXMsIGl0IGlzIGNsb3NlbHkgYXNz
b2NpYXRlZAogICAtLSAgd2l0aCBpdHMgcmVwcmVzZW50YXRpb24gb24gdGhlIHNjcmVlbiAoc2Vl
IHRoZSBjaGlsZHJlbiBvZiBHdGtfUGxvdF9EYXRhCiAgIC0tICBmb3IgdmFyaW91cyBwb3NzaWJs
ZSByZXByZXNlbnRhdGlvbnMpLgogICAtLSAgVGhlIEd0ay5FeHRyYSBwYWNrYWdlcyBhcmUgZGVz
aWduZWQgc28gdGhhdCB0aGUgZHJhd2luZyBjYW4gYmUgZG9uZQogICAtLSAgZWl0aGVyIHRvIHRo
ZSBzY3JlZW4gKHRocm91Z2ggYSBHZGsgYWRhcHRlciksIHRvIGEgcG9zdHNjcmlwdCBmaWxlIGZv
cgogICAtLSAgZWFzeSBwcmludGluZywgb3IgdG8gYW55IG90aGVyIG1lZGlhLgoKICAgcHJvY2Vk
dXJlIFBhaW50IChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKTsKICAgLS0gIEVt
aXRzIHRoZSAiZHJhd19kYXRhIiBzaWduYWwgdG8gcmVxdWVzdCBhIHJlZHJhd2luZyBvZiB0aGUg
ZGF0YSBzZXQuCgogICBwcm9jZWR1cmUgRHJhd19Qb2ludHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQ7IE4gOiBHaW50KTsKICAgLS0gIERyYXcgYXQgbW9zdCBOIHZhbHVlcyBv
ZiB0aGUgRGF0YSBzZXQgb24gdGhlIHNjcmVlbi4gSWYgTiBpcyBncmVhdGVyCiAgIC0tICB0aGFu
IHRoZSBhY3R1YWwgbnVtYmVyIG9mIHZhbHVlcyBpbiBEYXRhLCB0aGVuIHRoZXkgYXJlIGFsbCBk
aXNwbGF5ZWQuCgogICBwcm9jZWR1cmUgRHJhd19TeW1ib2wgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQ7IFgsIFkgOiBHZG91YmxlKTsKICAgLS0gIERyYXcgdGhlIGN1cnJlbnQg
c3ltYm9sIChzZWUgU2V0X1N5bWJvbCkgYXQgc3BlY2lmaWMgY29vcmRpbmF0ZXMgb24KICAgLS0g
IHRoZSBzY3JlZW4uCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE1hbmlwdWxh
dGluZyB2YWx1ZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJl
IFNldF9Qb2ludHMKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAg
ICAgWCAgICA6IEdkb3VibGVfQXJyYXlfQWNjZXNzOwogICAgICBZICAgIDogR2RvdWJsZV9BcnJh
eV9BY2Nlc3M7CiAgICAgIER4ICAgOiBHZG91YmxlX0FycmF5X0FjY2VzczsKICAgICAgRHkgICA6
IEdkb3VibGVfQXJyYXlfQWNjZXNzKTsKICAgLS0gIFNldCBzb21lIGV4cGxpY2l0IHBvaW50cyBp
biB0aGUgc2V0LgogICAtLSAgTm90ZSB0aGF0IHRoZSBzZXQgbXVzdCBub3QgYmUgYXNzb2NpYXRl
ZCB3aXRoIGEgZnVuY3Rpb24sIG9yIHRoZSBwb2ludHMKICAgLS0gIHdpbGwgc2ltcGx5IGJlIGln
bm9yZWQuCiAgIC0tICBBbGwgb2YgdGhlIGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3Ro
LCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkCiAgIC0tICBvdGhlcndpc2UuCiAgIC0tICBYIGFu
ZCBZIGFyZSB0aGUgbGlzdCBvZiBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnRzLgogICAtLSAgRHgg
YW5kIER5IGFyZSB0aGUgbGlzdCBvZiBzaXplIChwcmVjaXNpb24pIG9mIHRoZXNlIHBvaW50cy4g
QSBiaWdnZXIKICAgLS0gIHN5bWJvbCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhlIHBvaW50IHdo
b3NlIChEeCwgRHkpIHZhbHVlIGlzIGJpZ2dlci4KCiAgIHByb2NlZHVyZSBHZXRfUG9pbnRzCiAg
ICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFggICAgOiBvdXQg
UG9pbnRzX0FycmF5OwogICAgICBZICAgIDogb3V0IFBvaW50c19BcnJheTsKICAgICAgRHggICA6
IG91dCBQb2ludHNfQXJyYXk7CiAgICAgIER5ICAgOiBvdXQgUG9pbnRzX0FycmF5KTsKICAgLS0g
IFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHBvaW50cyBpbiB0aGUgc2V0LgogICAtLSAgTnVsbC1s
ZW5ndGggYXJyYXlzIGFyZSByZXR1cm5lZCBpZiB0aGUgc2V0IGlzIGFzc29jaWF0ZWQgd2l0aCBh
CiAgIC0tICBmdW5jdGlvbiwgc2luY2Ugbm8gZXhwbGljaXQgcG9pbnQgaGFzIGJlZW4gc2V0Lgog
ICAtLSAgU2VlIFNldF9Qb2ludHMgZm9yIGEgZGVmaW5pdGlvbiBvZiBYLCBZLCBEeCBhbmQgRHku
CgogICBwcm9jZWR1cmUgU2V0X1gKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZDsgWCA6IEdkb3VibGVfQXJyYXlfQWNjZXNzKTsKICAgcHJvY2VkdXJlIFNldF9ZCiAgICAg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IFkgOiBHZG91YmxlX0FycmF5X0Fj
Y2Vzcyk7CiAgIHByb2NlZHVyZSBTZXRfWgogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0Rh
dGFfUmVjb3JkOyBaIDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpOwogICBwcm9jZWR1cmUgU2V0X0EK
ICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgQSA6IEdkb3VibGVfQXJy
YXlfQWNjZXNzKTsKICAgLS0gIFNldCB0aGUgdmFsdWVzIGZvciBvbmUgc3BlY2lmaWMgY29vcmRp
bmF0ZSBpbiB0aGUgc2V0LgogICAtLSAgVGhlIGFycmF5IG11c3QgaGF2ZSBhIGxlbmd0aCBvZiBH
ZXRfTnVtcG9pbnRzIChpZiBHdGtBZGEgd2FzCiAgIC0tICBjb21waWxlZCB3aXRoIGFzc2VydGlv
bnMgZW5hYmxlZCwgYW4gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlmIHRoZQogICAtLSAgbGVu
Z3RoIGFyZSBkaWZmZXJlbnQpLgogICAtLSAgTm8gY29weSBvZiB0aGUgYXJyYXkgaXMgbWFkZSBm
b3IgZWZmaWNpZW5jeSByZWFzb25zLCB0aHVzIG1vZGlmeWluZwogICAtLSAgdGhlIGFycmF5IGNv
bnRlbnQgbGF0ZXIgb24gd2lsbCBhbHNvIG1vZGlmeSB0aGUgcGxvdC4KICAgLS0KICAgLS0gICJB
IiBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIHN5bWJvbHMuIFdoZW4gcGxvdHRp
bmcgYm94ZXMgaW4KICAgLS0gIHR3byBkaW1lbnNpb25zLCAiWiIgaXMgdXNlZCB0byBzcGVjaWZ5
IHRoZSBzaXplIG9mIHRoZSBib3guCgogICBwcm9jZWR1cmUgU2V0X0R4CiAgICAgKERhdGEgOiBh
Y2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IER4IDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpOwog
ICBwcm9jZWR1cmUgU2V0X0R5CiAgICAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNv
cmQ7IER5IDogR2RvdWJsZV9BcnJheV9BY2Nlc3MpOwogICBwcm9jZWR1cmUgU2V0X0R6CiAgICAg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IER6IDogR2RvdWJsZV9BcnJheV9B
Y2Nlc3MpOwogICAtLSAgU2V0IHRoZSBwcmVjaXNpb24gb2YgdGhlIHBvaW50cyBpbiB0aGUgc2V0
LiBBIGJpZ2dlciBzeW1ib2wgaXMgZGlzcGxheWVkCiAgIC0tICBmb3IgdGhlIHBvaW50cyB3aG9z
ZSAoRHgsIER5LCBEeikgaXMgYmlnZ2VyLgogICAtLSAgVGhlIGFycmF5IG11c3QgaGF2ZSBhIGxl
bmd0aCBvZiBHZXRfTnVtcG9pbnRzIChpZiBHdGtBZGEgd2FzCiAgIC0tICBjb21waWxlZCB3aXRo
IGFzc2VydGlvbnMgZW5hYmxlZCwgYW4gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlmIHRoZQog
ICAtLSAgbGVuZ3RoIGFyZSBkaWZmZXJlbnQpLgogICAtLSAgTm8gY29weSBvZiB0aGUgYXJyYXkg
aXMgbWFkZSBmb3IgZWZmaWNpZW5jeSByZWFzb25zLCB0aHVzIG1vZGlmeWluZwogICAtLSAgdGhl
IGFycmF5IGNvbnRlbnQgbGF0ZXIgb24gd2lsbCBhbHNvIG1vZGlmeSB0aGUgcGxvdC4KCiAgIHBy
b2NlZHVyZSBTZXRfRGEKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsg
RGEgOiBHZG91YmxlX0FycmF5X0FjY2Vzcyk7CiAgIC0tICBTcGVjaWZpZXMgdGhlIGNvbG9ycyB0
byB1c2UgZm9yIHRoZSBwb2ludHMuCiAgIC0tICBUaGUgY29sb3Igb2YgdGhlIHN5bWJvbHMgaXMg
ZGV0ZW1pbmVkIHVzaW5nIHRoZSBncmFkaWVudC4gdGhlIGdyYWRpZW50CiAgIC0tICBoYXMgKG1p
biwgbWF4KSB2YWx1ZXMsIGFuZCBjb3JyZXNwb25kaW5nIGNvbG9ycy4gVGhlIHN5bWJvbCdzIGNv
bG9yIGlzCiAgIC0tICBpbnRlcnBvbGF0ZWQgYmV0d2VlbiB0aGVzZSB2YWx1ZXMgdXNpbmcgaHVl
L3NhdHVyYXRpb24vdmFsdWUgZGVwZW5kaW5nCiAgIC0tICBvbiB0aGUgZ3JhZGllbnRfbWFzay4K
CiAgIGZ1bmN0aW9uIEdldF9YICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkg
cmV0dXJuIFBvaW50c19BcnJheTsKICAgZnVuY3Rpb24gR2V0X1kgIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5OwogICBmdW5jdGlvbiBHZXRf
WiAgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNfQXJy
YXk7CiAgIGZ1bmN0aW9uIEdldF9BICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZCkgcmV0dXJuIFBvaW50c19BcnJheTsKICAgZnVuY3Rpb24gR2V0X0R4IChEYXRhIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5OwogICBmdW5jdGlvbiBH
ZXRfRHkgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpIHJldHVybiBQb2ludHNf
QXJyYXk7CiAgIGZ1bmN0aW9uIEdldF9EeiAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCkgcmV0dXJuIFBvaW50c19BcnJheTsKICAgZnVuY3Rpb24gR2V0X0RhIChEYXRhIDogYWNj
ZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKSByZXR1cm4gUG9pbnRzX0FycmF5OwogICAtLSAgUmV0
dXJuIHRoZSBjb29yZGluYXRlcyBmb3IgdGhlIHBvaW50cyBpbiB0aGUgc2V0LgogICAtLSAgVGhp
cyBpcyBhIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgQyBhcnJheSwgdGh1cyBtb2Rp
ZnlpbmcgdGhpcwogICAtLSAgYXJyYXkncyBjb250ZW50cyBhbHNvIG1vZGlmaWVzIHRoZSBncmFw
aC4KICAgLS0gIFNlZSB0aGUgY29ycmVzcG9uZGluZyBTZXRfKiBmdW5jdGlvbnMgZm9yIGEgZGVm
aW5pdGlvbiBvZiB0aGUKICAgLS0gIGNvb3JkaW5hdGVzCgogICBwcm9jZWR1cmUgU2V0X051bXBv
aW50cyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsgTnVtIDogR2ludCk7CiAg
IC0tICBTZXQgdGhlIG51bWJlciBvZiBwb2ludHMgdGhhdCBzaG91bGQgYmUgZXhwZWN0ZWQgaW4g
dGhlIGdyYXBoLgogICAtLSAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYXV0b21hdGljYWxseSBy
ZXNpemUgYWxsIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUsCiAgIC0tICBpdCBqdXN0IGluZGljYXRl
cyB3aGF0IHNpemUgdGhlIHBhcmFtZXRlcnMgdG8gU2V0X1gsIFNldF9ZLC4uLiBzaG91bGQKICAg
LS0gIGhhdmUuCgogICBmdW5jdGlvbiBHZXRfTnVtcG9pbnRzIChEYXRhIDogYWNjZXNzIEd0a19Q
bG90X0RhdGFfUmVjb3JkKSByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgbnVtYmVyIG9m
IHBvaW50cyBleHBlY3RlZCBpbiB0aGUgZ3JhcGguCgogICAtLS0tLS0tLS0tLS0KICAgLS0gTGFi
ZWxzIC0tCiAgIC0tLS0tLS0tLS0tLQogICAtLSAgRWFjaCBwb2ludCBpbiB0aGUgZGF0YSBzZXQg
Y2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGxhYmVsIHRoYXQgZGVzY3JpYmVzCiAgIC0tICBpdC4g
VGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciBkYXRhIHNldHMgd2hlcmUgeW91IGV4cGxpY2l0ZWx5
IGdpdmUKICAgLS0gIHZhbHVlcywgbm90IHdoZW4gdGhlIHZhbHVlcyBhcmUgZ2VuZXJhdGVkIGJ5
IGEgZnVuY3Rpb24uCgogICBwcm9jZWR1cmUgU2V0X0xhYmVscwogICAgIChEYXRhIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBMYWJlbHMgOiBHdGthZGEuVHlwZXMuQ2hhcnNf
UHRyX0FycmF5KTsKICAgLS0gIFNldCB0aGUgbGFiZWxzIGFzc29jaWF0ZWQgd2hpY2ggZWFjaCBw
b2ludCBpbiB0aGUgY2FudmFzLgogICAtLSAgVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBHZXRfTnVt
cG9pbnRzIGVsZW1lbnRzIGluIExhYmVscywgb3IgdGhlCiAgIC0tICBiZWhhdmlvciBpcyB1bmRl
ZmluZWQKCiAgIGZ1bmN0aW9uIEdldF9MYWJlbHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0
YV9SZWNvcmQpCiAgICAgIHJldHVybiBHdGthZGEuVHlwZXMuQ2hhcnNfUHRyX0FycmF5OwogICAt
LSAgUmV0dXJuIHRoZSBsYWJlbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwb2ludHMgaW4gdGhlIGRh
dGEgc2V0LgogICAtLSAgTm90ZSB0aGF0IHRoaXMgcmV0dXJucyBhICpjb3B5KiBvZiB0aGUgYWN0
dWFsIGFycmF5LCBhbmQgdGh1cyBtaWdodAogICAtLSAgYmUgZXhwZW5zaXZlIHRvIGNhbGwuCgog
ICBwcm9jZWR1cmUgU2hvd19MYWJlbHMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNv
cmQ7IFNob3cgOiBCb29sZWFuKTsKICAgLS0gIEluZGljYXRlIHdoZXRoZXIgdGhlIGxhYmVscyBz
aG91bGQgYmUgZGlzcGxheWVkIG5leHQgdG8gZWFjaCBwb2ludCBpbgogICAtLSAgdGhlIGRhdGEg
c2V0LiBUaGlzIGhhcyBubyBlZmZlY3QgaWYgbm8gbGFiZWxzIHdlcmUgc3BlY2lmaWVkLgoKICAg
cHJvY2VkdXJlIExhYmVsc19TZXRfQXR0cmlidXRlcwogICAgIChEYXRhIDogYWNjZXNzIEd0a19Q
bG90X0RhdGFfUmVjb3JkOwogICAgICBGb250IDogU3RyaW5nOwogICAgICBIZWlnaHQgOiBHaW50
OwogICAgICBBbmdsZSAgOiBHaW50OwogICAgICBGb3JlZ3JvdW5kIDogR2RrLkNvbG9yLkdka19D
b2xvcjsKICAgICAgQmFja2dyb3VuZCA6IEdkay5Db2xvci5HZGtfQ29sb3IpOwogICAtLSAgU2V0
IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBsYWJlbHMKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgLS0gU3ltYm9scyBhbmQgQ29ubmVjdG9ycyAtLQogICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAgIC0tICBFYWNoIHBvaW50IHRoYXQgaXMgZXhwbGljaXRlbHkgc2V0IGlu
IHRoZSBkYXRhIHNldCB0aHJvdWdoIHRoZQogICAtLSAgU2V0X1gsIFNldF9ZLC4uLiBzdWJwcm9n
cmFtcyBpcyB2aXN1YWxseSBhc3NvY2lhdGVkIHdpdGggYSBzeW1ib2wuIFRoZXJlCiAgIC0tICBh
cmUgc2V2ZXJhbCByZXByZXNlbnRhdGlvbnMgZm9yIHRoZSBzeW1ib2xzLgogICAtLQogICAtLSAg
QWxsIHRoZXNlIHN5bWJvbHMgYXJlIHRoZW4gY29ubmVjdGVkIGJ5IGEgbGluZSwgYSBjdXJ2ZSBv
ciBhbnkgb3RoZXIKICAgLS0gIGxpbmsuIFRoZXNlIGFyZSBjYWxsZWQgY29ubmVjdG9ycy4KICAg
LS0KICAgLS0gIEVhY2ggc3ltYm9sLCBpbiBhZGRpdGlvbiB0byBiZWluZyBjb25uZWN0ZWQgdG8g
dGhlIG5leHQgb25lIHdpdGggYQogICAtLSAgY29ubmVjdG9yLCBjYW4gYWxzbyBiZSBsaW5rZWQg
dG8gdGhlIGF4aXMgWD0wLCBZPTAgb3IgWj0wIHNvIHRoYXQgaXQgaXMKICAgLS0gIGVhc2llciB0
byByZWFkIGl0cyBjb29yZGluYXRlcy4gVGhlc2UgYXJlIGNhbGxlZCBlcnJiYXJzLCBhbmQgdGhl
eSBtdXN0CiAgIC0tICBiZSBleHBsaWNpdGVseSBzaG93bi4KCiAgIHByb2NlZHVyZSBTZXRfU3lt
Ym9sCiAgICAgKERhdGEgICAgICAgICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAg
ICAgVGhlX1R5cGUgICAgIDogUGxvdF9TeW1ib2xfVHlwZTsKICAgICAgU3R5bGUgICAgICAgIDog
UGxvdF9TeW1ib2xfU3R5bGU7CiAgICAgIFNpemUgICAgICAgICA6IEdpbnQ7CiAgICAgIExpbmVf
V2lkdGggICA6IEdmbG9hdDsKICAgICAgQ29sb3IgICAgICAgIDogR2RrLkNvbG9yLkdka19Db2xv
cjsKICAgICAgQm9yZGVyX0NvbG9yIDogR2RrLkNvbG9yLkdka19Db2xvcik7CiAgIC0tICBTZXQg
dGhlIHZpc3VhbCBhc3BlY3Qgb2YgdGhlIHN5bWJvbHMuCgogICBwcm9jZWR1cmUgR2V0X1N5bWJv
bAogICAgIChEYXRhICAgICAgICAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAg
IFRoZV9UeXBlICAgICA6IG91dCBQbG90X1N5bWJvbF9UeXBlOwogICAgICBTdHlsZSAgICAgICAg
OiBvdXQgUGxvdF9TeW1ib2xfU3R5bGU7CiAgICAgIFNpemUgICAgICAgICA6IG91dCBHaW50Owog
ICAgICBMaW5lX1dpZHRoICAgOiBvdXQgR2ludDsKICAgICAgQ29sb3IgICAgICAgIDogb3V0IEdk
ay5Db2xvci5HZGtfQ29sb3I7CiAgICAgIEJvcmRlcl9Db2xvciA6IG91dCBHZGsuQ29sb3IuR2Rr
X0NvbG9yKTsKICAgLS0gIFJldHVybiB0aGUgdmlzdWFsIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUg
c3ltYm9scy4KCiAgIHByb2NlZHVyZSBTZXRfQ29ubmVjdG9yCiAgICAgKERhdGEgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IENvbm5lY3RvciA6IFBsb3RfQ29ubmVjdG9yKTsKICAgLS0g
IFNldCB0aGUgc3R5bGUgb2YgdGhlIGNvbm5lY3RvcnMuCgogICBmdW5jdGlvbiBHZXRfQ29ubmVj
dG9yIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKQogICAgICByZXR1cm4gUGxv
dF9Db25uZWN0b3I7CiAgIC0tICBSZXR1cm4gdGhlIGNvbm5lY3RvciBzdHlsZSB1c2VkIGZvciB0
aGUgZGF0YSBzZXQuCgogICBwcm9jZWR1cmUgU2V0X0xpbmVfQXR0cmlidXRlcwogICAgIChEYXRh
ICA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZDsKICAgICAgU3R5bGUgOiBQbG90X0xpbmVf
U3R5bGU7CiAgICAgIFdpZHRoIDogR2Zsb2F0OwogICAgICBDb2xvciA6IEdkay5Db2xvci5HZGtf
Q29sb3IpOwogICAtLSAgU2V0IHRoZSBsaW5lIHN0eWxlIHVzZWQgZm9yIHRoZSBjb25uZWN0b3Jz
LgoKICAgcHJvY2VkdXJlIEdldF9MaW5lX0F0dHJpYnV0ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3Mg
R3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxlIDogb3V0IFBsb3RfTGluZV9TdHlsZTsK
ICAgICAgV2lkdGggOiBvdXQgR2Zsb2F0OwogICAgICBDb2xvciA6IG91dCBHZGsuQ29sb3IuR2Rr
X0NvbG9yKTsKICAgLS0gIFJldHVybiB0aGUgbGluZSBhdHRyaWJ1dGVzIHVzZWQgZm9yIHRoZSBj
b25uZWN0b3JzLgoKICAgcHJvY2VkdXJlIFNldF9YX0F0dHJpYnV0ZXMKICAgICAoRGF0YSAgOiBh
Y2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxlIDogUGxvdF9MaW5lX1N0eWxl
OwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9y
KTsKICAgLS0gIFNldCB0aGUgc3R5bGUgb2YgdGhlIGxpbmVzIHVzZWQgdG8gY29ubmVjdCB0aGUg
c3ltYm9scyB0byB0aGUgWCBheGlzLgoKICAgcHJvY2VkdXJlIFNldF9ZX0F0dHJpYnV0ZXMKICAg
ICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIFN0eWxlIDogUGxv
dF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29sb3IgOiBHZGsuQ29s
b3IuR2RrX0NvbG9yKTsKICAgLS0gIFNldCB0aGUgc3R5bGUgb2YgdGhlIGxpbmVzIHVzZWQgdG8g
Y29ubmVjdCB0aGUgc3ltYm9scyB0byB0aGUgWSBheGlzLgoKICAgcHJvY2VkdXJlIFNldF9aX0F0
dHJpYnV0ZXMKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAg
IFN0eWxlIDogUGxvdF9MaW5lX1N0eWxlOwogICAgICBXaWR0aCA6IEdmbG9hdDsKICAgICAgQ29s
b3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKICAgLS0gIFNldCB0aGUgc3R5bGUgb2YgdGhlIGxp
bmVzIHVzZWQgdG8gY29ubmVjdCB0aGUgc3ltYm9scyB0byB0aGUgWiBheGlzLgoKICAgcHJvY2Vk
dXJlIFNob3dfWGVycmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpOwog
ICBwcm9jZWR1cmUgU2hvd19ZZXJyYmFycyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCk7CiAgIHByb2NlZHVyZSBTaG93X1plcnJiYXJzIChEYXRhIDogYWNjZXNzIEd0a19QbG90
X0RhdGFfUmVjb3JkKTsKICAgLS0gIEluZGljYXRlIHRoYXQgZWFjaCBzeW1ib2wgc2hvdWxkIGJl
IGNvbm5lY3RlZCB0byB0aGUgdmFyaW91cyBheGlzCgogICBwcm9jZWR1cmUgSGlkZV9YZXJyYmFy
cyAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCk7CiAgIHByb2NlZHVyZSBIaWRl
X1llcnJiYXJzIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkKTsKICAgcHJvY2Vk
dXJlIEhpZGVfWmVycmJhcnMgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQpOwog
ICAtLSAgSW5kaWNhdGUgdGhlIHRoZSBzeW1ib2wgc2hvdWxkIG5vdCBiZSBjb25uZWN0ZWQgdG8g
dGhlIGF4aXMuCgogICBwcm9jZWR1cmUgRmlsbF9BcmVhIChEYXRhIDogYWNjZXNzIEd0a19QbG90
X0RhdGFfUmVjb3JkOyBGaWxsIDogQm9vbGVhbik7CiAgIC0tICBJbmRpY2F0ZSB3aGV0aGVyIHRo
ZSBhcmVhIGJldHdlZW4gdHdvIHBvaW50cyBzaG91bGQgYmUgZmlsbGVkIG9yIG5vdC4KCiAgIGZ1
bmN0aW9uIEFyZWFfSXNfRmlsbGVkIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3Jk
KQogICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0gIEluZGljYXRlIHdoZXRoZXIgdGhlIGFyZWEg
YmV0d2VlbiB0d28gcG9pbnRzIGlzIGZpbGxlZC4KCiAgIC0tLS0tLS0tLS0tLS0KICAgLS0gTGVn
ZW5kcyAtLQogICAtLS0tLS0tLS0tLS0tCiAgIC0tICBJbiBhZGRpdGlvbiB0byB0aGUgZHJhd2lu
ZyBjb3JyZXNwb25kaW5nIHRvIHRoZSBkYXRhIHNldCwgaXQgaXMgcG9zc2libGUKICAgLS0gIHRv
IGRpc3BsYXkgYSBib3ggdGhhdCBjb250YWlucyBhIGxlZ2VuZC4gVGhpcyBpcyBwYXJ0aWN1bGFy
eSB1c2VmdWwgd2hlbgogICAtLSAgbXVsdGlwbGUgZGF0YSBzZXRzIGFyZSBkaXNwbGF5ZWQgb24g
dGhlIHNhbWUgcGxvdC4KCiAgIHByb2NlZHVyZSBTZXRfTGVnZW5kIChEYXRhIDogYWNjZXNzIEd0
a19QbG90X0RhdGFfUmVjb3JkOyBMZWdlbmQgOiBTdHJpbmcpOwogICAtLSAgU2V0IHRoZSBzdHJp
bmcgcHJpbnRlZCBpbiB0aGUgbGVnZW5kIGZvciB0aGF0IGRhdGEgc2V0LgogICAtLSAgTm90ZSB0
aGF0IGFuIGVudHJ5IGNhbiBleGlzdCBpbiB0aGUgbGVnZW5kIGV2ZW4gaWYgdGhlcmUgaXMgbm8g
bmFtZQogICAtLSAgYXNzb2NpYXRlZCB3aXRoIHRoZSBncmFwaC4KCiAgIHByb2NlZHVyZSBTaG93
X0xlZ2VuZCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCk7CiAgIC0tICBBbiBl
bnRyeSB3aWxsIGJlIG1hZGUgaW4gdGhlIHBsb3QncyBsZWdlbmQgZm9yIHRoYXQgZGF0YXNldC4K
CiAgIHByb2NlZHVyZSBIaWRlX0xlZ2VuZCAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1Jl
Y29yZCk7CiAgIC0tICBObyBlbnRyeSB3aWxsIGFwcGVhciBpbiB0aGUgcGxvdCdzIGxlZ2VuZCBm
b3IgdGhhdCBkYXRhc2V0LgoKICAgcHJvY2VkdXJlIFNldF9MZWdlbmRfUHJlY2lzaW9uCiAgICAg
KERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7IFByZWNpc2lvbiA6IEdpbnQpOwog
ICAtLSAgTnVtYmVyIG9mIGRpZ2l0cyB0byBkaXNwbGF5IHdoZW4gdGhlIGxlZ2VuZHMgaXMgYXNz
b2NpYXRlZCB3aXRoIHZhbHVlcywKICAgLS0gIGFzIGlzIHRoZSBjYXNlIGZvciBncmFkaWVudHMu
CgogICBmdW5jdGlvbiBHZXRfTGVnZW5kX1ByZWNpc2lvbiAoRGF0YSA6IGFjY2VzcyBHdGtfUGxv
dF9EYXRhX1JlY29yZCkKICAgICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIG51bWJl
ciBvZiBkaWdpdHMgdXNlZCBmb3IgdmFsdWVzIGluIHRoZSBsZWdlbmQKCiAgIC0tLS0tLS0tLS0t
LS0tLQogICAtLSBHcmFkaWVudHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBUaGUgc3lt
Ym9scyBkaXNwbGF5ZWQgaW4gdGhlIHBsb3QgY2FuIGJlIGFzc2lnbmVkIHNwZWNpZmljIGNvbG9y
cy4gQnV0CiAgIC0tICB0aGV5IGNhbiBhbHNvIGNvbXB1dGUgdGhlaXIgb3duIGNvbG9yIGJ5IHBp
Y2tpbmcgaXQgaW4gYSBncmFkaWVudCwKICAgLS0gIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUuCgog
ICBwcm9jZWR1cmUgU2V0X0dyYWRpZW50X01hc2sKICAgICAoRGF0YSA6IGFjY2VzcyBHdGtfUGxv
dF9EYXRhX1JlY29yZDsgTWFzayA6IFBsb3RfR3JhZGllbnQpOwogICAtLSAgSW5kaWNhdGVzIHdo
aWNoIGNvbXBvbmVudCBvZiB0aGUgY29sb3JzIHZhcnkgYWxvbmcgdGhlIGdyYWRpZW50LgoKICAg
ZnVuY3Rpb24gR2V0X0dyYWRpZW50X01hc2sgKERhdGEgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9S
ZWNvcmQpCiAgICAgIHJldHVybiBQbG90X0dyYWRpZW50OwogICAtLSAgUmV0dXJuIHRoZSBtYXNr
IHVzZWQgZm9yIHRoZSBncmFkaWVudC4KCiAgIHByb2NlZHVyZSBHcmFkaWVudF9TZXRfVmlzaWJs
ZQogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOyBWaXNpYmxlIDogQm9v
bGVhbik7CiAgIC0tICBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JhZGllbnQgc2hvdWxkIGJlIHZp
c2libGUKCiAgIGZ1bmN0aW9uIEdyYWRpZW50X1Zpc2libGUgKERhdGEgOiBhY2Nlc3MgR3RrX1Bs
b3RfRGF0YV9SZWNvcmQpCiAgICAgIHJldHVybiBCb29sZWFuOwogICAtLSAgUmV0dXJuIFRydWUg
aWYgdGhlIGdyYWRpZW50IGlzIGN1cnJlbnRseSB2aXNpYmxlCgogICBwcm9jZWR1cmUgU2V0X0dy
YWRpZW50X0NvbG9ycwogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwog
ICAgICBNaW4sIE1heCA6IEdkay5Db2xvci5HZGtfQ29sb3IpOwogICAtLSAgU2V0IHRoZSBjb2xv
cnMgdGhhdCBkZWZpbmUgdGhlIGdyYWRpZW50LiBUaGUgY29sb3JzIHdpbGwgdmFyeSBmcm9tCiAg
IC0tICBNaW4gdG8gTWF4IGFsb25nIHRoZSBjb21wb25lbnRzIHNwZWNpZmllZCBpbiBTZXRfR3Jh
ZGllbnRfTWFzay4KCiAgIHByb2NlZHVyZSBHZXRfR3JhZGllbnRfQ29sb3JzCiAgICAgKERhdGEg
OiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIE1pbiwgTWF4IDogb3V0IEdkay5D
b2xvci5HZGtfQ29sb3IpOwogICAtLSAgUmV0dXJuIHRoZSBjb2xvcnMgdGhhdCBkZWZpbmUgdGhl
IHJhbmdlCgogICBwcm9jZWR1cmUgU2V0X0dyYWRpZW50CiAgICAgKERhdGEgICAgIDogYWNjZXNz
IEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBNaW4sIE1heCA6IEdkb3VibGU7CiAgICAgIE5s
ZXZlbHMgIDogR2ludCk7CiAgIC0tICBEZWZpbmUgdGhlIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgg
dGhlIG1pbmltYWwgY29sb3IgYW5kIHRoZSBtYXhpbWFsCiAgIC0tICBjb2xvci4gQW55IHZhbHVl
IGluIGJldHdlZW4gd2lsbCBoYXZlIGEgY29sb3IgY29tcHV0ZWQgaW4gYmV0d2Vlbi4KICAgLS0g
IE5sZXZlbHMgaXMgdGhlIG51bWJlciBvZiB0aWNrcyB0byBkaXNwbGF5IGluIHRoZSBncmFkaWVu
dC4KCiAgIHByb2NlZHVyZSBHZXRfR3JhZGllbnQKICAgICAoRGF0YSAgICAgOiBhY2Nlc3MgR3Rr
X1Bsb3RfRGF0YV9SZWNvcmQ7CiAgICAgIE1pbiwgTWF4IDogb3V0IEdkb3VibGU7CiAgICAgIE5s
ZXZlbHMgIDogb3V0IEdpbnQpOwogICAtLSAgUmV0dXJuIHRoZSB2YWx1ZXMgYXNzb2NpYXRlZCB3
aXRoIHRoZSBtaW5pbWFsIGFuZCBtYXhpbWFsIGNvbG9ycy4KCiAgIHByb2NlZHVyZSBHZXRfR3Jh
ZGllbnRfTGV2ZWwKICAgICAoRGF0YSAgOiBhY2Nlc3MgR3RrX1Bsb3RfRGF0YV9SZWNvcmQ7CiAg
ICAgIExldmVsIDogR2RvdWJsZTsKICAgICAgQ29sb3IgOiBvdXQgR2RrLkNvbG9yLkdka19Db2xv
cik7CiAgIC0tICBSZXR1cm4gdGhlIGNvbG9yIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGxl
dmVsLgogICAtLSAgVGhlIGNvbG9yIGRlcGVuZHMgb24gdGhlIHBhcmFtZXRlcnMgdG8gU2V0X0dy
YWRpZW50IGFuZAogICAtLSAgU2V0X0dyYWRpZW50X0NvbG9ycy4KCiAgIC0tLS0tLS0tLS0tLS0t
LQogICAtLSBVc2VyIERhdGEgLS0KICAgLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBJdCBpcyBwb3Nz
aWJsZSB0byBhc3NvY2lhdGVkIHlvdXIgb3duIHVzZXIgZGF0YSB3aXRoIGEgcGxvdC4gVGhpcyBp
cwogICAtLSAgdGhlIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgQyB2ZXJzaW9uIG9mIGd0a2V4
dHJhLiBIb3dldmVyLCB0aGUgYmVzdAogICAtLSAgd2F5IHRvIGRvIHRoaXMgaW4gQWRhIGlzIHRv
IGluaGVyaXQgZnJvbSBHdGtfUGxvdF9EYXRhX1JlY29yZCAob3Igb25lCiAgIC0tICBvZiBpdHMg
Y2hpbGRyZW4pLCBhbmQgYWRkIHlvdXIgb3duIGZpZWxkcy4KCiAgIHByb2NlZHVyZSBTZXRfTGlu
awogICAgIChEYXRhIDogYWNjZXNzIEd0a19QbG90X0RhdGFfUmVjb3JkOwogICAgICBMaW5rIDog
U3lzdGVtLkFkZHJlc3MpOwogICAtLSAgQXNzb2NpYXRlIHNvbWUgdXNlciBkYXRhIHdpdGggRGF0
YS4KICAgLS0gIEl0IGlzIHRoZSByZXNwb25zYWJpbGl0eSBvZiB0aGUgdXNlciB0byBkbyBzb21l
IGNvbnZlcnQgY29udmVyc2lvbiB0bwogICAtLSAgU3lzdGVtLkFkZHJlc3MuCgogICBmdW5jdGlv
biBHZXRfTGluayAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29yZCkKICAgICAgcmV0
dXJuIFN5c3RlbS5BZGRyZXNzOwogICAtLSAgUmV0dXJuIHRoZSB1c2VyIGRhdGEgYXNzb2NpYXRl
ZCB3aXRoIERhdGEsIG9yIE51bGxfQWRkcmVzcyBpZiB0aGVyZSBpcwogICAtLSAgbm9uZS4KCiAg
IHByb2NlZHVyZSBSZW1vdmVfTGluayAoRGF0YSA6IGFjY2VzcyBHdGtfUGxvdF9EYXRhX1JlY29y
ZCk7CiAgIC0tICBSZW1vdmUgdGhlIHVzZXIgZGF0YSBhc3NvY2lhdGVkIHdpdGggRGF0YS4KCgog
ICAtLSAgPGRvY19pZ25vcmU+CiAgIGZ1bmN0aW9uIFRvX0RvdWJsZV9BcnJheSBpcyBuZXcgVW5j
aGVja2VkX0NvbnZlcnNpb24KICAgICAoU3lzdGVtLkFkZHJlc3MsIE5vX1JhbmdlX0dkb3VibGVf
QXJyYXlfQWNjZXNzKTsKICAgLS0gIDwvZG9jX2lnbm9yZT4KCnByaXZhdGUKICAgdHlwZSBHdGtf
UGxvdF9EYXRhX1JlY29yZCBpcyBuZXcgR3RrLldpZGdldC5HdGtfV2lkZ2V0X1JlY29yZCB3aXRo
CiAgICAgbnVsbCByZWNvcmQ7CgogICBHcmFkaWVudF9IIDogY29uc3RhbnQgUGxvdF9HcmFkaWVu
dCA6PSAxOwogICBHcmFkaWVudF9WIDogY29uc3RhbnQgUGxvdF9HcmFkaWVudCA6PSAyOwogICBH
cmFkaWVudF9TIDogY29uc3RhbnQgUGxvdF9HcmFkaWVudCA6PSA0OwoKICAgcHJhZ21hIEltcG9y
dCAoQywgR2V0X1R5cGUsICJndGtfcGxvdF9kYXRhX2dldF90eXBlIik7CmVuZCBHdGsuRXh0cmEu
UGxvdF9EYXRhOwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5k
aW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFu
ZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAt
LQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
ICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwg
ZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQot
LSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHBy
b2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRz
ZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQg
YnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24g
ZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAt
LQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGlj
IExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4KLS0gIFRo
aXMgaXMgdGhlIHRvcCBsZXZlbCBwYWNrYWdlIG9mIHRoZSBHdGsuRXh0cmEgd2lkZ2V0IGhpZXJh
cmNoeS4KLS0gIDwvZGVzY3JpcHRpb24+CgpwYWNrYWdlIEd0ay5FeHRyYSBpcwplbmQgR3RrLkV4
dHJhOwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZv
ciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg
ICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0yMDAxICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5h
dWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAg
ICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAt
LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAg
ICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0
aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlz
IHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2Ug
YW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNh
dXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBu
b3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBl
eGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vu
c2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4KLS0KLS0gIFRoaXMg
cGFja2FnZSBwcm92aWRlcyBzb21lIGJhc2ljIEd0aysgZnVuY3Rpb25hbGl0aWVzIHN1Y2ggYXMg
Z2V0dGluZyB0aGUKLS0gIHZlcnNpb24gbnVtYmVyLiBUaGlzIGlzIHRoZSB0b3AgbGV2ZWwgcGFj
a2FnZSBvZiB0aGUgR3RrIHdpZGdldCBoaWVyYXJjaHkuCi0tICBGb3IgZ2VuZXJhbCBHdGtBZGEg
aW5pdGlhbGl6YXRpb25zLCBAcHhyZWZ7UGFja2FnZV9HdGsuTWFpbn0uCi0tCi0tICA8L2Rlc2Ny
aXB0aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNzwvY192ZXJzaW9uPgoKd2l0aCBHbGliOyAgICAg
ICAgICAgICAgICB1c2UgR2xpYjsKd2l0aCBHZGs7ICAgICAgICAgICAgICAgICB1c2UgR2RrOwp3
aXRoIFN5c3RlbTsKCnBhY2thZ2UgR3RrIGlzCgogICB0eXBlIFJvb3RfVHlwZSBpcyB0YWdnZWQg
cHJpdmF0ZTsKICAgLS0gIFRoZSBiYXNlIHR5cGUgb2YgdGhlIGhpZXJhcmNoeSBpbiBHdGtBZGEu
IEl0IGJhc2ljYWxseSBnaXZlcyBhY2Nlc3MKICAgLS0gIHRvIGFuIHVuZGVybHlpbmcgQyBvYmpl
Y3QuIFRoaXMgaXMgbm90IGEgY29udHJvbGxlZCB0eXBlLCBmb3IgZWZmaWNpZW5jeQogICAtLSAg
cmVhc29ucywgYW5kIGJlY2F1c2UgZ3RrKyB0YWtlcyBjYXJlIG9mIG1lbW9yeSBtYW5hZ2VtZW50
IG9uIGl0cyBvd24uCgogICAtLSAgPGRvY19pZ25vcmU+CiAgIHR5cGUgUm9vdF9UeXBlX0FjY2Vz
cyBpcyBhY2Nlc3MgYWxsIFJvb3RfVHlwZSdDbGFzczsKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAg
IHR5cGUgR3RrX1JjX1N0eWxlIGlzIG5ldyBHZGsuQ19Qcm94eTsKICAgLS0gIFR5cGUgdXNlZCB0
byBoYW5kbGUgcmVzb3VyY2Ugc3R5bGVzLgogICAtLSAgU2VlIHBhY2thZ2UgR3RrLlJjIGZvciBt
b3JlIGRldGFpbHMuCgogICBmdW5jdGlvbiBNYWpvcl9WZXJzaW9uIHJldHVybiBHdWludDsKICAg
LS0gIFJldHVybiB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIgZm9yIEd0aysuCiAgIC0tICBOb3Rl
IHRoYXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMgZm9yIEd0a0FkYS4KICAg
LS0gIElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCByZXR1cm5zIDEuCgogICBmdW5jdGlvbiBNaW5v
cl9WZXJzaW9uIHJldHVybiBHdWludDsKICAgLS0gIFJldHVybiB0aGUgbWlub3IgdmVyc2lvbiBu
dW1iZXIgZm9yIEd0aysuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkg
dGhlIHNhbWUgYXMgZm9yIEd0a0FkYS4KICAgLS0gIElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCBy
ZXR1cm5zIDIuCgogICBmdW5jdGlvbiBNaWNyb19WZXJzaW9uIHJldHVybiBHdWludDsKICAgLS0g
IFJldHVybiB0aGUgbWljcm8gdmVyc2lvbiBudW1iZXIgZm9yIEd0aysuCiAgIC0tICBOb3RlIHRo
YXQgdGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMgZm9yIEd0a0FkYS4KICAgLS0g
IElmIHRoZSB2ZXJzaW9uIGlzIDEuMi42LCByZXR1cm5zIDYuCgogICB0eXBlIEd0a19UeXBlIGlz
IG5ldyBHdWludDsKICAgLS0gIFRoaXMgdHlwZSBkZXNjcmliZXMgYW4gaW50ZXJuYWwgdHlwZSBp
biBHdGsrLgogICAtLSAgWW91IHNob3VsZG4ndCBoYXZlIHRvIHVzZSBpdCBpbiB5b3VyIG93biBh
cHBsaWNhdGlvbnMsIGhvd2V2ZXIgaXQgbWlnaHQKICAgLS0gIGJlIHVzZWZ1bCBzb21ldGltZXMu
CiAgIC0tICBFdmVyeSB3aWRnZXQgdHlwZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2
YWx1ZSwgY3JlYXRlZAogICAtLSAgZHluYW1pY2FsbHkgYXQgcnVuIHRpbWUgdGhlIGZpcnN0IHRp
bWUgeW91IGluc3RhbnRpYXRlIGEgd2lkZ2V0IG9mIHRoYXQKICAgLS0gIHR5cGUgKHRodXMgaWYg
eW91IGhhdmUgbmV2ZXIgdXNlZCBhIEd0a19GaWxlX1NlbGVjdGlvbiwgaXQgd29uJ3QgaGF2ZQog
ICAtLSAgYW55IEd0a19UeXBlIGFzc29jaWF0ZWQgd2l0aCBpdCkuCiAgIC0tICBZb3UgY2FuIGdl
dCB0aGUgZXhhY3QgdHlwZSB2YWx1ZSBmb3IgZWFjaCB0eXBlIGJ5IHVzaW5nIHRoZSBmdW5jdGlv
bnMKICAgLS0gIEdldF9UeXBlIHByb3ZpZGVkIGluIGFsbCB0aGUgcGFja2FnZXMgaW4gR3RrQWRh
LgogICAtLSAgWW91IGNhbiBnZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciBhbiBleGlzdGluZyB3
aWRnZXQgYnkgdXNpbmcgdGhlCiAgIC0tICBmdW5jdGlvbiBHdGsuT2JqZWN0LkdldF9UeXBlLgoK
ICAgR3RrX1R5cGVfSW52YWxpZCA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDA7CiAgIEd0a19UeXBl
X05vbmUgICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAxOwogICBHdGtfVHlwZV9DaGFyICAgIDog
Y29uc3RhbnQgR3RrX1R5cGUgOj0gMjsKICAgR3RrX1R5cGVfVWNoYXIgICA6IGNvbnN0YW50IEd0
a19UeXBlIDo9IDM7CiAgIEd0a19UeXBlX0Jvb2wgICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSA0
OwogICBHdGtfVHlwZV9JbnQgICAgIDogY29uc3RhbnQgR3RrX1R5cGUgOj0gNTsKICAgR3RrX1R5
cGVfVWludCAgICA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDY7CiAgIEd0a19UeXBlX0xvbmcgICAg
OiBjb25zdGFudCBHdGtfVHlwZSA6PSA3OwogICBHdGtfVHlwZV9VbG9uZyAgIDogY29uc3RhbnQg
R3RrX1R5cGUgOj0gODsKICAgR3RrX1R5cGVfRmxvYXQgICA6IGNvbnN0YW50IEd0a19UeXBlIDo9
IDk7CiAgIEd0a19UeXBlX0RvdWJsZSAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAxMDsKICAgR3Rr
X1R5cGVfU3RyaW5nICA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDExOyAgLS0gIE51bGwgdGVybWlu
YXRlZCBzdHJpbmcuCiAgIEd0a19UeXBlX0VudW0gICAgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAx
MjsKICAgR3RrX1R5cGVfRmxhZ3MgICA6IGNvbnN0YW50IEd0a19UeXBlIDo9IDEzOwogICBHdGtf
VHlwZV9Cb3hlZCAgIDogY29uc3RhbnQgR3RrX1R5cGUgOj0gMTQ7CiAgIEd0a19UeXBlX1BvaW50
ZXIgOiBjb25zdGFudCBHdGtfVHlwZSA6PSAxNTsgIC0tICBhIGdlbmVyYWwgcG9pbnRlciB0eXBl
LgogICBHdGtfVHlwZV9PYmplY3QgIDogY29uc3RhbnQgR3RrX1R5cGUgOj0gMjE7ICAtLSAgT25l
IG9mIHRoZSB3aWRnZXRzL29iamVjdHMKCiAgIHR5cGUgR3RrX05vdGVib29rX1BhZ2UgaXMgbmV3
IEdkay5DX1Byb3h5OwogICAtLSAgQSBwYWdlIG9mIHRoZSBub3RlYm9vay4KICAgLS0gIEl0IGNh
biBjb250YWluIGEgc2luZ2xlIGNoaWxkLCBhbmQgaXMgYWxzbyBhc3NvY2lhdGVkIHdpdGggYSB0
YWIKICAgLS0gIGxhYmVsIHVzZWQgdG8gc2VsZWN0IHRoYXQgcGFnZSBpbiB0aGUgbm90ZWJvb2su
CgogICBmdW5jdGlvbiBHdGtfVHlwZV9HZGtfRXZlbnQgcmV0dXJuIEd0a19UeXBlOwogICAtLSAg
UmV0dXJuIHRoZSB0eXBlIGNvcnJlc3BvbmRpbmcgdG8gYSBHZGtfRXZlbnQuCiAgIC0tICBOb3Rl
IHRoYXQgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBhZnRlciBHdGsrIGhhcyBiZWVuIGlu
aXRpYWxpemVkLgoKICAgZnVuY3Rpb24gVHlwZV9OYW1lIChUeXBlX051bSA6IGluIEd0a19UeXBl
KSByZXR1cm4gU3RyaW5nOwogICAtLSAgUmV0dXJuIHRoZSB0eXBlIG5hbWUgY29ycmVzcG9uZGlu
ZyB0byBhIEd0a19UeXBlLgogICAtLSAgVGhpcyBtaWdodCBiZSB1c2VmdWwgaW4gZGVidWcgbWVz
c2FnZXMuCgogICBmdW5jdGlvbiBUeXBlX0Zyb21fTmFtZSAoTmFtZSA6IGluIFN0cmluZykgcmV0
dXJuIEd0a19UeXBlOwogICAtLSAgQ29udmVydCBhIHN0cmluZyB0byB0aGUgbWF0Y2hpbmcgdHlw
ZS4KICAgLS0gIE5hbWUgc2hvdWxkIGJlIHRoZSBDIHdpZGdldCdzIG5hbWUsIHN1Y2ggYXMgR3Rr
U2Nyb2xsYmFyIG9yIEd0a0J1dHRvbiwKICAgLS0gIHJhdGhlciB0aGFuIHRoZSBBZGEgbmFtZS4K
CiAgIGZ1bmN0aW9uIElzX0NyZWF0ZWQgKE9iamVjdCA6IGluIFJvb3RfVHlwZSdDbGFzcykgcmV0
dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm4gVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCBDIG9iamVj
dCBoYXMgYmVlbiBjcmVhdGVkLCBGYWxzZSBpZiBubwogICAtLSAgQyBvYmplY3QgaXMgYXNzb2Np
YXRlZCB3aXRoIE9iamVjdC4KICAgLS0gIFRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIHRlc3Rpbmcg
d2hldGhlciBhbiBhY2Nlc3MgdHlwZSAoZm9yIGluc3RhbmNlCiAgIC0tICBhbnkgb2YgdGhlIHdp
ZGdldHMpIGlzICJudWxsIiwgc2luY2UgdGhpcyByZWxhdGVzIHRvIHRoZSB1bmRlcmx5aW5nCiAg
IC0tICBDIG9iamVjdC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBJbnRlcmZh
Y2luZyB3aXRoIEMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBUaGUgZm9s
bG93aW5nIGZ1bmN0aW9ucyBhcmUgbWFkZSBwdWJsaWMgc28gdGhhdCBvbmUgY2FuIGVhc2lseSBj
cmVhdGUKICAgLS0gIG5ldyB3aWRnZXRzIG91dHNpZGUgdGhlIEd0ayBwYWNrYWdlIGhpZXJhcmNo
eS4KICAgLS0gIE9ubHkgZXhwZXJpZW5jZWQgdXNlcnMgc2hvdWxkIG1ha2UgdXNlIG9mIHRoZXNl
IGZ1bmN0aW9ucy4KCiAgIGZ1bmN0aW9uIEdldF9PYmplY3QgKE9iamVjdCA6IGFjY2VzcyBSb290
X1R5cGUnQ2xhc3MpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgLS0gIEFjY2VzcyB0aGUgdW5k
ZXJseWluZyBDIHBvaW50ZXIuCgogICBwcm9jZWR1cmUgU2V0X09iamVjdAogICAgIChPYmplY3Qg
OiBhY2Nlc3MgUm9vdF9UeXBlJ0NsYXNzOwogICAgICBWYWx1ZSAgOiBpbiAgICAgU3lzdGVtLkFk
ZHJlc3MpOwogICAtLSAgTW9kaWZ5IHRoZSB1bmRlcmx5aW5nIEMgcG9pbnRlci4KCiAgIHByb2Nl
ZHVyZSBJbml0aWFsaXplX1VzZXJfRGF0YSAoT2JqIDogYWNjZXNzIFJvb3RfVHlwZSdDbGFzcyk7
CiAgIC0tICBTZXRzIGEgdXNlciBkYXRhIGZpZWxkIGZvciB0aGUgQyBvYmplY3QgYXNzb2NpYXRl
ZCB3aXRoIE9iai4KICAgLS0gIFRoaXMgZmllbGQgd2lsbCBiZSB1c2VkIHNvIHRoYXQgaXQgaXMg
cG9zc2libGUsIGtub3dpbmcgYQogICAtLSAgQyBvYmplY3QsIHRvIGdldCB0aGUgZnVsbCBhZGEg
b2JqZWN0LgoKICAgZnVuY3Rpb24gR2V0X1VzZXJfRGF0YQogICAgIChPYmogIDogaW4gU3lzdGVt
LkFkZHJlc3M7CiAgICAgIFN0dWIgOiBpbiBSb290X1R5cGUnQ2xhc3MpIHJldHVybiBSb290X1R5
cGVfQWNjZXNzOwogICAtLSAgR2V0IHRoZSB1c2VyIGRhdGEgdGhhdCB3YXMgc2V0IGJ5IEd0a0Fk
YS4KICAgLS0gIElmIHRoZSBEYXRhIGlzIG5vdCBzZXQsIHJldHVybiBhIG5ldyBhY2Nlc3MgdHlw
ZSwgdGhhdCBwb2ludHMgdG8KICAgLS0gIGEgc3RydWN0dXJlIHdpdGggdGhlIHNhbWUgdGFnIGFz
IFN0dWIuCgogICBmdW5jdGlvbiBVbmNoZWNrZWRfQ2FzdAogICAgIChPYmogIDogYWNjZXNzIFJv
b3RfVHlwZSdDbGFzczsKICAgICAgU3R1YiA6IFJvb3RfVHlwZSdDbGFzcykgcmV0dXJuIFJvb3Rf
VHlwZV9BY2Nlc3M7CiAgIC0tICBDYXN0IE9iaiBpbiBhbiBvYmplY3Qgb2YgdGFnIFN0dWInQ2xh
c3MuCiAgIC0tICBSZXR1cm4gdGhlIHJlc3VsdGluZyBvYmplY3QgYW5kIGZyZWUgdGhlIG1lbW9y
eSBwb2ludGVkIGJ5IE9iai4KCiAgIGZ1bmN0aW9uIENvdW50X0FyZ3VtZW50cwogICAgIChUaGVf
VHlwZSA6IEd0a19UeXBlOyBOYW1lIDogaW4gU3RyaW5nKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBS
ZXR1cm4gdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdXNlZCBpbiB0aGUgaGFuZGxlcnMgZm9yIHRo
ZSBzaWduYWwuCiAgIC0tICBOb3RlIHRoYXQgaW4gdGhlIENvbm5lY3QgZnVuY3Rpb25zLCB3ZSBh
bHdheXMgdGVzdCB3aGV0aGVyIHRoZSB1c2VyCiAgIC0tICBoYXMgYXNrZWQgZm9yICphdCBtb3N0
KiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBkZWZpbmVkIGJ5IGd0aysgZm9yIHRoZQogICAtLSAg
Y2FsbGJhY2suIFRoaXMgaXMgYmVjYXVzZSBoYXZpbmcgbGVzcyBhcmd1bWVudCBpcyBhdXRob3Jp
emVkICh0aGUKICAgLS0gIGV4dHJhIHBhcmFtZXRlcnMgcGFzc2VkIGJ5IGd0aysgd2lsbCBzaW1w
bHkgYmUgaWdub3JlZCksIHdoZXJlYXMgaGF2aW5nCiAgIC0tICBtb3JlIGFyZ3VtZW50cyBpcyBp
bXBvc3NpYmxlICh0aGV5IHdvdWxkIG5ldmVyIGJlIHNldCkuCiAgIC0tICBOb3RlIHRoYXQgd2Ug
cHJvdmlkZSB0aGlzIHByb2NlZHVyZSBoZXJlIHRvIGF2b2lkIGNpcmN1bGFyaXRpZXMuCgogICBm
dW5jdGlvbiBBcmd1bWVudF9UeXBlCiAgICAgKFRoZV9UeXBlIDogR3RrX1R5cGU7CiAgICAgIE5h
bWUgICAgIDogaW4gU3RyaW5nOwogICAgICBOdW0gICAgICA6IGluIEdpbnQpIHJldHVybiBHdGtf
VHlwZTsKICAgLS0gIFJldHVybiB0aGUgdHlwZSBvZiB0aGUgbnVtLXRoIGFyZ3VtZW50IGZvciB0
aGUgaGFuZGxlcnMgb2Ygc2lnbmFsIG5hbWUuCiAgIC0tICBJZiBOdW0gaXMgbmVnYXRpdmUsIHJl
dHVybiB0aGUgdHlwZSByZXR1cm5lZCBieSB0aGUgaGFuZGxlcnMgZm9yIHRoaXMKICAgLS0gIHNp
Z25hbC4KICAgLS0gIE5vdGUgdGhhdCB3ZSBwcm92aWRlIHRoaXMgcHJvY2VkdXJlIGhlcmUgdG8g
YXZvaWQgY2lyY3VsYXJpdGllcy4KCnByaXZhdGUKCiAgIHR5cGUgUm9vdF9UeXBlIGlzIHRhZ2dl
ZCByZWNvcmQKICAgICAgUHRyIDogU3lzdGVtLkFkZHJlc3MgOj0gU3lzdGVtLk51bGxfQWRkcmVz
czsKICAgZW5kIHJlY29yZDsKCiAgIC0tICA8ZG9jX2lnbm9yZT4KCiAgIC0tICBOb3RlOiB0aGUg
Zm9sbG93aW5nIGZ1bmN0aW9ucyBhbmQgdHlwZXMgc2hvdWxkIG9ubHkgYmUgdXNlZAogICAtLSAg
Zm9yIGludGVybmFsIHVzYWdlLCBub3QgaW4gdGhlIHVzZXIncyBhcHBsaWNhdGlvbnMuCiAgIC0t
ICBJZiB5b3UgdXNlIHR5cGUgaW5oZXJpdGFuY2UgZm9yIG5ldyB3aWRnZXRzLCB5b3Ugc2hvdWxk
IG5vdCBuZWVkCiAgIC0tICB0aGVzZSBmdW5jdGlvbnMuCgogICBHdGtBZGFfU3RyaW5nIDogY29u
c3RhbnQgU3RyaW5nIDo9ICJfR3RrQWRhIiAmIEFTQ0lJLk5VTDsKICAgR3RrQWRhX1N0cmluZ19R
dWFyayA6IEdsaWIuR1F1YXJrIDo9IEdsaWIuVW5rbm93bl9RdWFyazsKICAgLS0gIFRoZSBuYW1l
IGZvciB0aGUgdXNlciBkYXRhIHRoYXQgd2Ugc2V0IGluIHRoZSBvYmplY3RzLgogICAtLSAgVGhl
IFF1YXJrIHZlcnNpb24gaXMgdG8gc3BlZWQgdXAgdGhlIHN0cmluZyBsb29rdXAgKHRoaXMgaXMg
ZG9uZQogICAtLSAgb25seSBvbmNlKS4KCiAgIGZ1bmN0aW9uIENvbnZlcnNpb25fRnVuY3Rpb24K
ICAgICAoT2JqIDogU3lzdGVtLkFkZHJlc3M7IFN0dWIgOiBSb290X1R5cGUnQ2xhc3MpIHJldHVy
biBSb290X1R5cGVfQWNjZXNzOwogICAtLSAgVGhpcyBmdW5jdGlvbiBoYXMgdG8gY29udmVydCBh
IEMgb2JqZWN0IHRvIGFuIEFkYSBvYmplY3QuCiAgIC0tICBJdCB3aWxsIGZpcnN0IHRyeSBhbGwg
dGhlIHJlZ2lzdGVyZWQgZnVuY3Rpb25zIChpbgogICAtLSAgR3RrLlR5cGVfQ29udmVyc2lvbl9I
b29rcykgYW5kIGJ5IGRlZmF1bHQsIHdpbGwgY3JlYXRlIGEgU3R1YidDbGFzcwogICAtLSAgb2Jq
ZWN0LCBubyBtYXR0ZXIgd2hhdCB0aGUgcmVhbCBDIHR5cGUgaXMuCiAgIC0tICBTdHViIGlzIHRo
ZSBleHBlY3RlZCB0eXBlLgoKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIHByYWdtYSBJbmxpbmUg
KEdldF9PYmplY3QpOwogICBwcmFnbWEgSW5saW5lIChTZXRfT2JqZWN0KTsKCiAgIHByYWdtYSBJ
bXBvcnQgKEMsIE1ham9yX1ZlcnNpb24sICJhZGFfZ3RrX21ham9yX3ZlcnNpb24iKTsKICAgcHJh
Z21hIEltcG9ydCAoQywgTWlub3JfVmVyc2lvbiwgImFkYV9ndGtfbWlub3JfdmVyc2lvbiIpOwog
ICBwcmFnbWEgSW1wb3J0IChDLCBNaWNyb19WZXJzaW9uLCAiYWRhX2d0a19taWNyb192ZXJzaW9u
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEd0a19UeXBlX0dka19FdmVudCwgImFkYV9ndGtfdHlw
ZV9nZGtfZXZlbnQiKTsKZW5kIEd0azsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRh
IC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAw
MCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2Vs
IEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAg
ICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
QXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJp
Y3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhl
ciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9l
cyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0
byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0K
LS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29u
cyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRo
ZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3Jp
cHRpb24+Ci0tCi0tICBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBi
YXNpYyB0eXBlcyB1c2VkIGluIEdsaWIsCi0tICBHZGsgYW5kIEd0ay4KLS0KLS0gIDwvZGVzY3Jp
cHRpb24+Cgp3aXRoIEFkYS5VbmNoZWNrZWRfRGVhbGxvY2F0aW9uOwp3aXRoIEFkYS5VbmNoZWNr
ZWRfQ29udmVyc2lvbjsKd2l0aCBTeXN0ZW07CndpdGggSW50ZXJmYWNlcy5DOwoKcGFja2FnZSBH
bGliIGlzCiAgIHByYWdtYSBQcmVlbGFib3JhdGU7CgogICBwYWNrYWdlIEMgcmVuYW1lcyBJbnRl
cmZhY2VzLkM7CiAgIHVzZSB0eXBlIEMuaW50OwogICB1c2UgdHlwZSBDLnVuc2lnbmVkOwoKICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBUaGUgYmFzaWMgdHlw
ZXMgZGVmaW5lZCBieSBnbGliIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KCiAgIHR5cGUgR3Nob3J0IGlzIG5ldyBDLnNob3J0OwogICB0eXBlIEdsb25nICBpcyBu
ZXcgQy5sb25nOwogICB0eXBlIEdpbnQgICBpcyBuZXcgQy5pbnQ7CiAgIHR5cGUgR2NoYXIgIGlz
IG5ldyBDLmNoYXI7CiAgIHR5cGUgR2Jvb2xlYW4gaXMgbmV3IEdpbnQ7CgogICB0eXBlIEd1c2hv
cnQgaXMgbmV3IEMudW5zaWduZWRfc2hvcnQ7CiAgIHR5cGUgR3Vsb25nICBpcyBuZXcgQy51bnNp
Z25lZF9sb25nOwogICB0eXBlIEd1aW50ICAgaXMgbmV3IEMudW5zaWduZWQ7CiAgIHR5cGUgR3Vj
aGFyICBpcyBuZXcgQy51bnNpZ25lZF9jaGFyOwoKICAgdHlwZSBHZmxvYXQgIGlzIG5ldyBDLkNf
ZmxvYXQ7CiAgIHR5cGUgR2RvdWJsZSBpcyBuZXcgQy5kb3VibGU7CgogICBzdWJ0eXBlIEdpbnQ4
ICBpcyBHaW50IHJhbmdlIC0oMiAqKiA3KSAuLiAoMiAqKiA3IC0gMSk7CiAgIHN1YnR5cGUgR2lu
dDE2IGlzIEdpbnQgcmFuZ2UgLSgyICoqIDE1KSAuLiAoMiAqKiAxNSAtIDEpOwogICBzdWJ0eXBl
IEdpbnQzMiBpcyBHaW50IHJhbmdlIC0oMiAqKiAzMSkgLi4gKDIgKiogMzEgLSAxKTsKCiAgIHN1
YnR5cGUgR3VpbnQ4ICBpcyBHdWludCByYW5nZSBHdWludCdGaXJzdCAuLiAoMiAqKiA4IC0gMSk7
CiAgIHN1YnR5cGUgR3VpbnQxNiBpcyBHdWludCByYW5nZSBHdWludCdGaXJzdCAuLiAoMiAqKiAx
NiAtIDEpOwogICBzdWJ0eXBlIEd1aW50MzIgaXMgR3VpbnQgcmFuZ2UgR3VpbnQnRmlyc3QgLi4g
KDIgKiogMzIgLSAxKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU29tZSBBcnJh
eSB0eXBlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIEdib29sZWFuX0Fy
cmF5IGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHYm9vbGVhbjsKICAgdHlwZSBHc2hv
cnRfQXJyYXkgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgR3Nob3J0OwogICB0eXBl
IEdsb25nX0FycmF5ICAgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHbG9uZzsKICAg
dHlwZSBHaW50X0FycmF5ICAgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgR2ludDsK
ICAgdHlwZSBHdWludF9BcnJheSAgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgR3Vp
bnQ7CiAgIHR5cGUgR3VpbnQzMl9BcnJheSAgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9m
IEd1aW50MzI7CiAgIHR5cGUgR3VzaG9ydF9BcnJheSAgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2Ug
PD4pIG9mIEd1c2hvcnQ7CiAgIHR5cGUgR3Vsb25nX0FycmF5ICAgaXMgYXJyYXkgKE5hdHVyYWwg
cmFuZ2UgPD4pIG9mIEd1bG9uZzsKICAgdHlwZSBHZmxvYXRfQXJyYXkgICBpcyBhcnJheSAoTmF0
dXJhbCByYW5nZSA8Pikgb2YgR2Zsb2F0OwogICB0eXBlIEd1Y2hhcl9BcnJheSAgIGlzIGFycmF5
IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBHdWNoYXI7CiAgIHR5cGUgR2RvdWJsZV9BcnJheSAgaXMg
YXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pIG9mIEdkb3VibGU7CgogICB0eXBlIEJvb2xlYW5fQXJy
YXkgIGlzIGFycmF5IChOYXR1cmFsIHJhbmdlIDw+KSBvZiBCb29sZWFuOwoKICAgdHlwZSBTaG9y
dF9BcnJheSAgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgQy5zaG9ydDsKICAgdHlw
ZSBMb25nX0FycmF5ICAgICBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgQy5sb25nOwoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBDb252ZXJzaW9uIHNlcnZpY2VzIC0t
CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIFRvX0Jvb2xlYW5fQXJy
YXkgKEEgOiBpbiBHYm9vbGVhbl9BcnJheSkgcmV0dXJuIEJvb2xlYW5fQXJyYXk7CiAgIC0tICBD
b252ZXJ0IGEgQy1zdHlsZSBib29sZWFuIGFycmF5IGludG8gYW4gQWRhLXN0eWxlIGFycmF5LgoK
ICAgZnVuY3Rpb24gVG9fQm9vbGVhbiAoVmFsdWUgOiBpbiBHYm9vbGVhbikgcmV0dXJuIEJvb2xl
YW47CiAgIC0tICBDb252ZXJ0IGEgQyBib29sZWFuIGludG8gYW4gQWRhIGJvb2xlYW4uCgogICBm
dW5jdGlvbiBUb19Cb29sZWFuIChWYWx1ZSA6IGluIEdpbnQpIHJldHVybiBCb29sZWFuOwogICAt
LSAgQ29udmVydCBhIEMgaW50IGludG8gYW4gQWRhIGJvb2xlYW4uCgogICBmdW5jdGlvbiBUb19C
b29sZWFuIChWYWx1ZSA6IGluIEd1aW50KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIENvbnZlcnQg
YSBDIHVpbnQgaW50byBhbiBBZGEgYm9vbGVhbi4KCiAgIGZ1bmN0aW9uIFRvX0dib29sZWFuIChC
b29sIDogaW4gQm9vbGVhbikgcmV0dXJuIEdib29sZWFuOwogICAtLSAgQ29udmVydCBhbiBBZGEg
Ym9vbGVhbiBpbnRvIGEgQyBib29sZWFuLgoKICAgZnVuY3Rpb24gVG9fR2ludCAoQm9vbCA6IGlu
IEJvb2xlYW4pIHJldHVybiBHaW50OwogICAtLSAgQ29udmVydCBhbiBBZGEgYm9vbGVhbiBpbnRv
IGEgQyBpbnQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTb21lIEFjY2VzcyB0
eXBlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgdHlwZSBHdWNoYXJfQXJyYXlf
QWNjZXNzIGlzIGFjY2VzcyBHdWNoYXJfQXJyYXk7CgogICB0eXBlIFN0cmluZ19QdHIgaXMgYWNj
ZXNzIGFsbCBTdHJpbmc7CgogICAtLSAgPGRvY19pZ25vcmU+CiAgIHByb2NlZHVyZSBGcmVlIGlz
IG5ldyBBZGEuVW5jaGVja2VkX0RlYWxsb2NhdGlvbgogICAgIChPYmplY3QgPT4gR3VjaGFyX0Fy
cmF5LCBOYW1lID0+IEd1Y2hhcl9BcnJheV9BY2Nlc3MpOwoKICAgcHJvY2VkdXJlIEZyZWUgaXMg
bmV3IEFkYS5VbmNoZWNrZWRfRGVhbGxvY2F0aW9uCiAgICAgKE9iamVjdCA9PiBTdHJpbmcsIE5h
bWUgPT4gU3RyaW5nX1B0cik7CiAgIC0tICA8L2RvY19pZ25vcmU+CgogICAtLSAgPGRvY19pZ25v
cmU+CiAgIHR5cGUgQ19EdW1teSBpcyBsaW1pdGVkIHByaXZhdGU7CiAgIC0tICA8L2RvY19pZ25v
cmU+CgogICB0eXBlIENfUHJveHkgaXMgYWNjZXNzIENfRHVtbXk7CiAgIC0tICBHZW5lcmFsIHBy
b3h5IGZvciBDIHN0cnVjdHVyZXMuCiAgIC0tICBUaGlzIHR5cGUgaXMgdXNlZCBpbnN0ZWFkIG9m
IFN5c3RlbS5BZGRyZXNzIHNvIHRoYXQgdGhlIHZhcmlhYmxlcyBhcmUKICAgLS0gIGF1dG9tYXRp
Y2FsbHkgaW5pdGlhbGl6ZWQgdG8gJ251bGwnLgogICAtLSAgVGhlIHZhbHVlIHBvaW50ZWQgdG8g
aXMgaXJyZWxldmFudCwgYW5kIGluIGZhY3Qgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZC4KICAgLS0g
IEl0IGhhcyB0aHVzIGJlZW4gbWFkZSBsaW1pdGVkIHByaXZhdGUgd2l0aCBubyBzdWJwcm9ncmFt
IHRvIGFjY2VzcyBpdC4KICAgLS0gIENfUHJveHkgaXMgYSBwdWJsaWMgdHlwZSBzbyB0aGF0IG9u
ZSBjYW4gY29tcGFyZSBkaXJlY3RseSB0aGUgdmFsdWUKICAgLS0gIG9mIHRoZSB2YXJpYWJsZXMg
d2l0aCAnbnVsbCcuCgogICAtLSAgPGRvY19pZ25vcmU+CiAgIHByYWdtYSBDb252ZW50aW9uIChD
LCBDX1Byb3h5KTsKCiAgIGZ1bmN0aW9uIENvbnZlcnQgaXMgbmV3IEFkYS5VbmNoZWNrZWRfQ29u
dmVyc2lvbiAoU3lzdGVtLkFkZHJlc3MsIENfUHJveHkpOwogICBmdW5jdGlvbiBDb252ZXJ0IGlz
IG5ldyBBZGEuVW5jaGVja2VkX0NvbnZlcnNpb24gKENfUHJveHksIFN5c3RlbS5BZGRyZXNzKTsK
ICAgLS0gIENvbnZlcnRzIGZyb20gYSBTeXN0ZW0uQWRkcmVzcyByZXR1cm5lZCBieSBhIEMgZnVu
Y3Rpb24gdG8gYW4KICAgLS0gIGludGVybmFsIENfUHJveHkuCgogICAtLSAgPC9kb2NfaWdub3Jl
PgoKICAgLS0tLS0tLS0tLS0tCiAgIC0tIFF1YXJrcyAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHR5
cGUgR1F1YXJrIGlzIG5ldyBHdWludDMyOwogICAtLSAgUmVwcmVzZW50cyBhIHN0cmluZyBpbnRl
cm5hbGx5IGluIEd0a0FkYS4gT25jZSB5b3Uga25vdyB0aGUKICAgLS0gIGVxdWl2YWxlbnQgZm9y
IGEgc3RyaW5nLCB5b3UgY2FuIGFsd2F5cyB1c2UgaXQgaW5zdGVhZCBvZiB0aGUgc3RyaW5nLAog
ICAtLSAgd2hpY2ggcHJvdmlkZXMgYSBmYXN0ZXIgYWNjZXNzIGZvciBhbGwgdGhlIGZ1bmN0aW9u
cyB0aGF0IHVzZSBodGFibGVzCiAgIC0tICBpbiBHdGtBZGEuCiAgIC0tICBUaGVyZSBpcyBhIGds
b2JhbCBodGFibGUgdGhhdCBjb250YWlucyBhbGwgdGhlIHF1YXJrcyBkZWZpbmVkIGluCiAgIC0t
ICB5b3VyIGFwcGxpY2F0aW9uIGFuZCBHdGtBZGEgaXRzZWxmLgoKICAgVW5rbm93bl9RdWFyayA6
IGNvbnN0YW50IEdRdWFyayA6PSAwOwoKICAgZnVuY3Rpb24gUXVhcmtfRnJvbV9TdHJpbmcgKElk
IDogaW4gU3RyaW5nKSByZXR1cm4gR1F1YXJrOwogICAtLSAgUmV0dXJuLCBvciBjcmVhdGUgdGhl
IHF1YXJrIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RyaW5nLgogICAtLSAgTm90ZSB0aGF0IGlmIHRo
ZSBxdWFyayBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LCBhbiBlbnRyeSBpcyBjcmVhdGVkIGZvcgog
ICAtLSAgaXQgaW4gdGhlIGdsb2JhbCBodGFibGUgZm9yIHF1YXJrcy4KCiAgIGZ1bmN0aW9uIFF1
YXJrX1RyeV9TdHJpbmcgKElkIDogaW4gU3RyaW5nKSByZXR1cm4gR1F1YXJrOwogICAtLSAgUmV0
dXJuIHRoZSBxdWFyayBhc3NvY2lhdGVkIHdpdGggdGhlIHN0cmluZywgaWYgaXQgZXhpc3RzLgog
ICAtLSAgSWYgaXQgZG9lcyBub3QgZXhpc3QsIHJldHVybiBVbmtub3duX1F1YXJrLgoKcHJpdmF0
ZQogICB0eXBlIENfRHVtbXkgaXMgbnVsbCByZWNvcmQ7CiAgIC0tICBUaGlzIGFycmF5IGNhbiBj
b250YWluIGFueXRoaW5nLCBzaW5jZSBpdCBpcyBuZXZlciB1c2VkIG9uIHRoZSBBZGEgc2lkZQog
ICAtLSAgYW55d2F5LgoKZW5kIEdsaWI7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0Fk
YSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIw
MDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9l
bCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4g
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAg
ICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
IEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVy
aWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3Ro
ZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRv
ZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUg
dG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0t
Ci0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNv
bnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0
aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2Ny
aXB0aW9uPgotLQotLSAgVGhpcyBpcyB0aGUgdG9wIGxldmVsIHBhY2thZ2Ugb2YgdGhlIEdkayBo
aWVyYXJjaHkuCi0tICBJdCBwcm92aWRlcyB0aGUgdHlwZSBkZWZpbml0aW9ucyB1c2VkIHRvIGFj
Y2VzcyB1bmRlcmx5aW5nIEMgc3RydWN0dXJlcy4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Cgp3aXRo
IEdsaWI7CgpwYWNrYWdlIEdkayBpcwogICBwcmFnbWEgUHJlZWxhYm9yYXRlOwoKICAgc3VidHlw
ZSBDX1Byb3h5IGlzIEdsaWIuQ19Qcm94eTsKICAgdHlwZSBHZGtfR0MgaXMgbmV3IENfUHJveHk7
CiAgIHR5cGUgR2RrX1dpbmRvdyBpcyBuZXcgQ19Qcm94eTsKICAgc3VidHlwZSBHZGtfRHJhd2Fi
bGUgaXMgR2RrX1dpbmRvdzsKICAgc3VidHlwZSBHZGtfUGl4bWFwIGlzIEdka19EcmF3YWJsZTsK
ICAgc3VidHlwZSBHZGtfQml0bWFwIGlzIEdka19EcmF3YWJsZTsKCmVuZCBHZGs7Ci0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRv
b2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0t
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0t
Ci0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVy
IGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91
IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4
ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1
bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGlu
dmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmls
ZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyB3aWRnZXQgaXMgdGhl
IGJhc2Ugb2YgdGhlIHRyZWUgZm9yIGRpc3BsYXlhYmxlIG9iamVjdHMuCi0tICAoQSBkaXNwbGF5
YWJsZSBvYmplY3QgaXMgb25lIHdoaWNoIHRha2VzIHVwIHNvbWUgYW1vdW50Ci0tICBvZiBzY3Jl
ZW4gcmVhbCBlc3RhdGUpLiBJdCBwcm92aWRlcyBhIGNvbW1vbiBiYXNlIGFuZCBpbnRlcmZhY2UK
LS0gIHdoaWNoIGFjdHVhbCB3aWRnZXRzIG11c3QgYWRoZXJlIHRvLgotLQotLSAgVGhpcyBwYWNr
YWdlIHByb3ZpZGVzIHNvbWUgc2VydmljZXMgd2hpY2ggbWlnaHQgaGF2ZSBiZWVuIG1vcmUgYXBw
cm9wcmlhdGUKLS0gIGluIHNvbWUgb3RoZXIgcGFja2FnZXMsIGJ1dCBjb3VsZCBub3QgYmVjYXVz
ZSBvZiBkZXBlbmRlbmN5IGNpcmN1bGFyaXRpZXMKLS0gICh0aGVyZSBhcmUgZm9yIGluc3RhbmNl
IHNvbWUgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIGNvbG9ycyBhbmQgY29sb3JtYXBzKS4KLS0gIFdl
IGhhdmUgdHJpZWQgdG8gcmVmZXJlbmNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgb3RoZXIgcGFj
a2FnZXMgYXMgd2VsbC4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192ZXJzaW9uPjEuMi42
PC9jX3ZlcnNpb24+Cgp3aXRoIEdkay5Db2xvcjsKd2l0aCBHZGsuRXZlbnQ7CndpdGggR2RrLkJp
dG1hcDsKd2l0aCBHZGsuUmVjdGFuZ2xlOwp3aXRoIEdkay5UeXBlczsKd2l0aCBHZGsuVmlzdWFs
Owp3aXRoIEdkay5XaW5kb3c7CndpdGggR3RrLkFjY2VsX0dyb3VwOwp3aXRoIEd0ay5BZGp1c3Rt
ZW50Owp3aXRoIEd0ay5FbnVtczsKd2l0aCBHdGsuT2JqZWN0Owp3aXRoIEd0ay5TdHlsZTsKd2l0
aCBHbGliLkdsaXN0Owp3aXRoIEdsaWIuR1NsaXN0Owp3aXRoIFN5c3RlbTsKcHJhZ21hIEVsYWJv
cmF0ZV9BbGwgKEdsaWIuR1NsaXN0KTsKCnBhY2thZ2UgR3RrLldpZGdldCBpcwoKICAgdHlwZSBH
dGtfV2lkZ2V0X1JlY29yZCBpcyBuZXcgT2JqZWN0Lkd0a19PYmplY3RfUmVjb3JkIHdpdGggcHJp
dmF0ZTsKICAgdHlwZSBHdGtfV2lkZ2V0IGlzIGFjY2VzcyBhbGwgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3M7CgogICB0eXBlIEd0a19SZXF1aXNpdGlvbiBpcyByZWNvcmQKICAgICAgV2lkdGggIDog
R2ludDE2OwogICAgICBIZWlnaHQgOiBHaW50MTY7CiAgIGVuZCByZWNvcmQ7CiAgIC0tICBHdGtf
UmVxdWlzaXRpb24gaXMgdGhlIGRlc2lyZWQgYW1vdW50IG9mIHNjcmVlbiByZWFsLWVzdGF0ZSBh
IHdpZGdldAogICAtLSAgcmVxdWVzdHMgdG8gdGhlIHNlcnZlci4gSXRzIHJlYWwgYWxsb2NhdGVk
IHNpemUgbWlnaHQgYmUgZGlmZmVyZW50LgogICAtLSAgU2VlIHRoZSBzZWN0aW9uIGluIHRoZSBH
dGtBZGEgdXNlciBndWlkZSBvbiBob3cgdG8gY3JlYXRlIG5ldyB3aWRnZXRzCiAgIC0tICBpbiBB
ZGEsIGFuZCB0aGUgZXhhbXBsZXMvYmFzZV93aWRnZXQgZGlyZWN0b3J5IGZvciBhbiBleGFtcGxl
IG9uIGhvdyB0bwogICAtLSAgdXNlIHRoaXMuCiAgIHByYWdtYSBQYWNrIChHdGtfUmVxdWlzaXRp
b24pOwoKICAgdHlwZSBHdGtfUmVxdWlzaXRpb25fQWNjZXNzIGlzIGFjY2VzcyBhbGwgR3RrX1Jl
cXVpc2l0aW9uOwogICAtLSAgVGhpcyB0eXBlIGlzIHVzZWQgdG8gY3JlYXRlIG5ldyB3aWRnZXRz
LgoKICAgdHlwZSBHdGtfQWxsb2NhdGlvbiBpcyByZWNvcmQKICAgICAgWCAgICAgIDogR2ludDE2
OwogICAgICBZICAgICAgOiBHaW50MTY7CiAgICAgIFdpZHRoICA6IEd1aW50MTY7CiAgICAgIEhl
aWdodCA6IEd1aW50MTY7CiAgIGVuZCByZWNvcmQ7CiAgIC0tICBHdGtfQWxsb2NhdGlvbiBpbmRp
Y2F0ZXMgYSBzaXplIGFuZCBwb3NpdGlvbiBhIHdpZGdldCB3YXMgYWxsb2NhdGVkLgogICAtLSAg
U2VlIHRoZSBzZWN0aW9uIGluIHRoZSB1c2VyIGd1aWRlIG9uIGhvdyB0byBjcmVhdGUgbmV3IHdp
ZGdldHMgZm9yIG1vcmUKICAgLS0gIGluZm9ybWF0aW9uLgogICBwcmFnbWEgUGFjayAoR3RrX0Fs
bG9jYXRpb24pOwoKICAgdHlwZSBHdGtfQWxsb2NhdGlvbl9BY2Nlc3MgaXMgYWNjZXNzIGFsbCBH
dGtfQWxsb2NhdGlvbjsKICAgLS0gIFRoaXMgdHlwZSBpcyB1c2VkIHRvIGNyZWF0ZSBuZXcgd2lk
Z2V0cy4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gV2lkZ2V0cycgbGlmZSBj
eWNsZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSW5pdGlh
bGl6ZV9XaWRnZXQgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzcyk7CiAg
IC0tICBJbnRlcm5hbCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4KICAgLS0gIFNlZSB0aGUgc2Vj
dGlvbiAiQ3JlYXRpbmcgeW91ciBvd24gd2lkZ2V0cyIgaW4gdGhlIGRvY3VtZW50YXRpb24uCgog
ICBwcm9jZWR1cmUgRGVzdHJveV9DYiAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3Jk
J0NsYXNzKTsKICAgLS0gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgYXMgYSBjYWxsYmFj
ayB0byBkZXN0cm95IGEgd2lkZ2V0LgogICAtLSAgQWxsIGl0IGRvZXMgaXMgY2FsbCBEZXN0cm95
IG9uIGl0cyBhcmd1bWVudCwgYnV0IGl0cyBwcm9maWxlIGlzCiAgIC0tICBjb21wYXRpYmxlIHdp
dGggdGhlIGhhbmRsZXJzIGZvdW5kIGluIEd0ay5IYW5kbGVycy4KCiAgIHByb2NlZHVyZSBVbnBh
cmVudCAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0gIERl
dGFjaCB0aGUgd2lkZ2V0IGZyb20gaXRzIHBhcmVudC4KICAgLS0gIEFzIGEgc2lkZSBlZmZlY3Qs
IHRoZSB3aWRnZXQgd2lsbCBiZSBlcmFzZWQgZnJvbSB0aGUgc2NyZWVuLgogICAtLSAgTm90ZSB0
aGF0IFdpZGdldCB3aWxsIGJlIGRlc3Ryb3llZCBpZiBpdHMgcmVmZXJlbmNlIGNvdW50IHJlYWNo
ZXMgMC4KICAgLS0gIFRodXMsIGlmIHlvdSB3YW50IHRvIHJldXNlIGl0LCB5b3Ugc2hvdWxkIGZp
cnN0IEd0ay5PYmplY3QuUmVmIGl0LAogICAtLSAgYmVmb3JlIGNhbGxpbmcgVW5wYXJlbnQuCgog
ICBwcm9jZWR1cmUgU2hvdyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAg
LS0gIFNjaGVkdWxlIHRoZSB3aWRnZXQgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gd2hl
biBpdHMgcGFyZW50IGlzCiAgIC0tICBhbHNvIHNob3duIChlbWl0cyB0aGUgInNob3ciIHNpZ25h
bCkuCiAgIC0tICBJZiBpdHMgYW5jZXN0b3JzIGFyZSBhbHJlYWR5IG1hcHBlZCB0byB0aGUgc2Ny
ZWVuLCB0aGVuIHRoZSB3aWRnZXQgaXMKICAgLS0gIGltbWVkaWF0ZWx5IGRpc3BsYXllZCB0aHJv
dWdoIGEgY2FsbCB0byBNYXAgYmVsb3cuCgogICBwcm9jZWR1cmUgU2hvd19Ob3cgKFdpZGdldCA6
IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBTaG93IHRoZSB3aWRnZXQuCiAgIC0t
ICBJZiBpdCBpcyBhbiB1bm1hcHBlZCB0b3BsZXZlbCB3aWRnZXQsIHdhaXQgZm9yIGl0IHRvIGJl
IG1hcHBlZC4gVGhpcwogICAtLSAgY3JlYXRlcyBhIHJlY3Vyc2l2ZSBtYWluX2xvb3AuCgogICBw
cm9jZWR1cmUgSGlkZSAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0g
IEhpZGUgdGhlIHdpZGdldCBmcm9tIHRoZSBzY3JlZW4gKGVtaXRzIHRoZSAiaGlkZSIgc2lnbmFs
KS4KICAgLS0gIElmIFdpZGdldCB3YXMgdmlzaWJsZSwgaXQgaXMgaW1tZWRpYXRlbHkgaGlkZGVu
LgogICAtLSAgSWYgb25lIG9mIGl0cyBhbmNlc3RvciBpcyBsYXRlciBzaG93biBvbiB0aGUgc2Ny
ZWVuLCBXaWRnZXQgd29uJ3QKICAgLS0gIGFwcGVhci4KCiAgIHByb2NlZHVyZSBTaG93X0FsbCAo
V2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIFNob3cgV2lkZ2V0IGFu
ZCBhbGwgaXRzIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5LgoKICAgcHJvY2VkdXJlIEhpZGVfQWxsIChX
aWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgSGlkZSBXaWRnZXQgYW5k
IGFsbCBpdHMgY2hpbGRyZW4uCiAgIC0tICBOb3RlIHRoYXQgaWYgeW91IHNpbXBseSB3YW50IHRv
IGRlbGV0ZSBXaWRnZXQgZnJvbSB0aGUgc2NyZWVuLCB5b3UgY2FuCiAgIC0tICBzaW1wbHkgY2Fs
bCB0aGUgSGlkZSBzdWJwcm9ncmFtIG9uIGl0LiBUaGlzIHByb2NlZHVyZSBIaWRlX0FsbCBzaG91
bGQKICAgLS0gIG9ubHkgYmUgdXNlZCBpZiB5b3Ugd2FudCB0byB1bnNjaGVkdWxlIGEgd2lkZ2V0
IHRvIGJlIGRpc3BsYXllZCBsYXRlciwKICAgLS0gIG5vdCB0byByZW1vdmUgYW4gYWN0dWFsIHdp
ZGdldCBmcm9tIHRoZSBzY3JlZW4uCgogICBwcm9jZWR1cmUgTWFwIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgTWFwIGEgd2lkZ2V0IHRvIHRoZSBzY3JlZW4uCiAg
IC0tICBBIHdpbmRvdyBpcyBjcmVhdGVkIGZvciBpdCBvbiB0aGUgc2NyZWVuICh0aHJvdWdoIGEg
Y2FsbCB0byBSZWFsaXplKSBhbmQKICAgLS0gIFdpZGdldCBpcyB0aGVuIGRyYXduIG9uIHRoZSBz
Y3JlZW4gKGlmIGl0cyBhbmNlc3RvcnMgYXJlIGFsc28gbWFwcGVkKS4KICAgLS0gIFRoaXMgZnVu
Y3Rpb24gaXMgcmVjdXJzaXZlIGFuZCB3aWxsIGFsc28gbWFwIGFsbCB0aGUgY2hpbGRyZW4gb2Yg
V2lkZ2V0LgogICAtLQogICAtLSAgSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSBoaWdoZXIt
bGV2ZWwgU2hvdyBpbnN0ZWFkLgoKICAgcHJvY2VkdXJlIFVubWFwIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgVW5tYXAgYSB3aWRnZXQgZnJvbSB0aGUgc2NyZWVu
LgogICAtLSAgVGhpcyByZXN1bHRzIGluIHRoZSB3aWRnZXQgYmVpbmcgaGlkZGVuLCBidXQgbm90
IGRlc3Ryb3llZC4gSXQgY2FuIGJlCiAgIC0tICBzaG93biBhZ2FpbiBhbnkgdGltZSB0aHJvdWdo
IGEgY2FsbCB0byBNYXAgKHByb3ZpZGVkIGl0cyBhbmNlc3RvcnMgYXJlCiAgIC0tICBhbHNvIG1h
cHBlZCkuCiAgIC0tCiAgIC0tICBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIGhpZ2hlci1s
ZXZlbCBIaWRlIGluc3RlYWQuCgogICBwcm9jZWR1cmUgUmVhbGl6ZSAoV2lkZ2V0IDogYWNjZXNz
IEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIENyZWF0ZSBhIHdpbmRvdyBmb3IgV2lkZ2V0IGFu
ZCBpdHMgYW5jZXN0b3JzIChlbWl0IHRoZSAicmVhbGl6ZSIgc2lnbmFsKQogICAtLSAgVGhpcyBk
b2VzIG5vdCBtZWFuIHRoYXQgdGhlIHdpZGdldCB3aWxsIGFwcGVhciBvbiB0aGUgc2NyZWVuLCBi
dXQKICAgLS0gIHJlc291cmNlcyBzdWNoIGFzIGNvbG9ybWFwcywgZXRjLiBiZWNvbWUgYXZhaWxh
YmxlLgogICAtLSAgU29tZSByb3V0aW5lcyByZXF1aXJlIHRoYXQgdGhlIHdpZGdldCBpcyByZWFs
aXplZCBiZWZvcmUgYW55IGNhbGwuCiAgIC0tICBZb3UgbXVzdCBzZXQgdGhlIEV2ZW50X01hc2sg
YmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lIGlmIHlvdSB3YW50IHRvCiAgIC0tICBjaGFuZ2Ug
aXQgZnJvbSBpdHMgZGVmYXVsdCB2YWx1ZS4KCiAgIHByb2NlZHVyZSBVbnJlYWxpemUgKFdpZGdl
dCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBIaWRlIHRoZSB3aWRnZXQgZnJv
bSB0aGUgc2NyZWVuIGFuZCBkZWxldGVzIHRoZSBhc3NvY2lhdGVkIHdpbmRvdy4KICAgLS0gIFRo
aXMgZG9lcyBub3QgZGVzdHJveSB0aGUgd2lkZ2V0IGl0c2VsZiwgb25seSBpdHMgc2VydmVyLXNp
ZGUKICAgLS0gIHJlc291cmNlcy4KCiAgIGdlbmVyaWMKICAgICAgdHlwZSBXaWRnZXRfVHlwZSBp
cyBuZXcgR3RrX1dpZGdldF9SZWNvcmQgd2l0aCBwcml2YXRlOwogICAgICB3aXRoIHByb2NlZHVy
ZSBSZWFsaXplX1Byb2MgKFdpZGdldCA6IGFjY2VzcyBXaWRnZXRfVHlwZSdDbGFzcyk7CiAgIHBh
Y2thZ2UgUmVhbGl6ZV9IYW5kbGluZyBpcwoKICAgICAgcHJvY2VkdXJlIFNldF9SZWFsaXplIChX
aWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAgICAtLSAgU2V0IHRo
ZSByZWFsaXplIGhhbmRsZXIgYXQgdGhlIGxvdyBsZXZlbC4KICAgICAgLS0gIFRoaXMgaXMgbmVl
ZGVkIHRvIHJlcGxhY2UgdGhlIGRlZmF1bHQgcmVhbGl6ZSBpbiBuZXcgd2lkZ2V0cy4KCiAgIGVu
ZCBSZWFsaXplX0hhbmRsaW5nOwoKICAgZnVuY3Rpb24gR2V0X1R5cGUgcmV0dXJuIEd0ay5HdGtf
VHlwZTsKICAgLS0gIFJldHVybiB0aGUgaW50ZXJuYWwgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEg
R3RrX1dpZGdldC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRHJhd2luZyBhIHdp
ZGdldCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgUXVldWVfRHJh
dyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIEFkZCBhIGRyYXdp
bmcgcmVxdWVzdCB0byB0aGUgZXZlbnQgcXVldWUgZm9yIHRoZSB3aG9sZSB3aWRnZXQuCiAgIC0t
ICBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gY2FsbGluZyBEcmF3IGRpcmVjdGx5LCBzaW5j
ZSBHdGtBZGEgZ3JvdXBzCiAgIC0tICBkcmF3aW5nIHJlcXVlc3RzIGFzIG11Y2ggYXMgcG9zc2li
bGUgdG8gc3BlZWQgdXAgdGhlIGRyYXdpbmcgcHJvY2Vzcy4KICAgLS0gIFRoZSBhY3R1YWwgZHJh
d2luZyB3aWxsIHRha2UgcGxhY2UgYXMgc29vbiBhcyBHdGtBZGEgaXMgbm90IGJ1c3kKICAgLS0g
IHByb2Nlc3Npbmcgb3RoZXIgZXZlbnRzLCBidXQgYmVmb3JlIGlkbGUgZXZlbnRzLgoKICAgcHJv
Y2VkdXJlIFF1ZXVlX0RyYXdfQXJlYQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9S
ZWNvcmQ7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6IEdpbnQ7CiAgICAgIFdp
ZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwogICAtLSAgQWRkIGEgZHJhd2luZyBy
ZXF1ZXN0IHRvIHRoZSBldmVudCBxdWV1ZSBmb3IgcGFydCBvZiB0aGUgd2lkZ2V0LgogICAtLSAg
VGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGF0IGNhbGxpbmcgRHJhdyBkaXJlY3RseSAoc2VlIFF1
ZXVlX0RyYXcpLgoKICAgcHJvY2VkdXJlIFF1ZXVlX0NsZWFyIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQpOwogICAtLSAgQWRkIGEgY2xlYXIgcmVxdWVzdCB0byB0aGUgZXZlbnQg
cXVldWUgZm9yIHRoZSB3aG9sZSB3aWRnZXQuCiAgIC0tICBUaGlzIGlzIGFkZGVkIHRvIHRoZSBz
YW1lIGxpc3QgYXMgZm9yIFF1ZXVlX0RyYXcsIGFuZCB0aHVzIGlzIGNvYWxlc2NlZAogICAtLSAg
YXMgbXVjaCBhcyBwb3NzaWJsZSB3aXRoIG90aGVyIGRyYXdpbmcgcmVxdWVzdHMuCgogICBwcm9j
ZWR1cmUgUXVldWVfQ2xlYXJfQXJlYQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9S
ZWNvcmQ7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6IEdpbnQ7CiAgICAgIFdp
ZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwogICAtLSAgQWRkIGEgY2xlYXIgcmVx
dWVzdCB0byB0aGUgZXZlbnQgcXVldWUgZm9yIHBhcnQgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRo
aXMgaXMgYWRkZWQgdG8gdGhlIHNhbWUgbGlzdCBhcyBmb3IgUXVldWVfRHJhdywgYW5kIHRodXMg
aXMgY29hbGVzY2VkCiAgIC0tICBhcyBtdWNoIGFzIHBvc3NpYmxlIHdpdGggb3RoZXIgZHJhd2lu
ZyByZXF1ZXN0cy4KCiAgIHByb2NlZHVyZSBRdWV1ZV9SZXNpemUgKFdpZGdldCA6IGFjY2VzcyBH
dGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBRdWV1ZSBkcmF3aW5nIHJlcXVlc3RzIGFmdGVyIGEg
cmVzaXppbmcgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgY2xlYXJzIHRoZSB3aWRnZXQsIGFu
ZCBpdHMgcGFyZW50IGlmIGFueSwgc28gdGhhdCBldmVyeXRoaW5nIGlzCiAgIC0tICBjb3JyZWN0
bHkgcmVkcmF3bi4KICAgLS0gIFlvdSBzaG91bGQgbm90IGhhdmUgdG8gY2FsbCB0aGlzIGZ1bmN0
aW9uIGRpcmVjdGx5LgoKICAgcHJvY2VkdXJlIERyYXcKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkOwogICAgICBBcmVhICAgOiBpbiBHZGsuUmVjdGFuZ2xlLkdka19SZWN0
YW5nbGUgOj0gR2RrLlJlY3RhbmdsZS5GdWxsX0FyZWEpOwogICAtLSAgRW1pdCBhICJkcmF3IiBz
aWduYWwgZm9yIGEgc3BlY2lmaWMgYXJlYSBvZiB0aGUgd2lkZ2V0LgogICAtLSAgVGhlIHZpc3Vh
bCBhc3BlY3QgbWlnaHQgYmUgZGlmZmVyZW50IHdoZXRoZXIgdGhlIHdpZGdldCBoYXMgdGhlIGZv
Y3VzCiAgIC0tICBvciBub3QuCgogICBwcm9jZWR1cmUgRHJhd19Gb2N1cyAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAgLS0gIEVtaXQgYSAiZHJhd19mb2N1cyIgc2lnbmFs
IGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhlIHdpZGdldCB3aWxsIGJlIHBhaW50ZWQgYXMgaXQg
YXBwZWFycyB3aGVuIGl0IGhhcyB0aGUgZm9jdXMuCgogICBwcm9jZWR1cmUgRHJhd19EZWZhdWx0
IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgRW1pdCBhICJkcmF3
X2RlZmF1bHQiIHNpZ25hbCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoZSB3aWRnZXQgd2lsbCBi
ZSBwYWludGVkIGFzIGl0IGFwcGVhcnMgd2hlbiBpdCBkb2Vzbid0IGhhdmUgdGhlIGZvY3VzLgoK
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2l6ZSBhbmQgcG9zaXRpb24gLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTaXplX1JlcXVlc3QKICAgICAo
V2lkZ2V0ICAgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFJlcXVpc2l0aW9u
IDogaW4gb3V0IEd0a19SZXF1aXNpdGlvbik7CiAgIC0tICBFbWl0IGEgInNpemVfcmVxdWVzdCIg
ZXZlbnQgZm9yIHRoZSB3aWRnZXQKCiAgIHByb2NlZHVyZSBTaXplX0FsbG9jYXRlCiAgICAgKFdp
ZGdldCAgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIEFsbG9jYXRpb24gOiBp
biBvdXQgR3RrX0FsbG9jYXRpb24pOwogICAtLSAgRW1pdCBhICJzaXplX2FsbG9jYXRlIiBldmVu
dCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIEFsbG9jYXRpb24nc2l6ZSBpcyBmaXJzdCBjb25zdHJh
aW5lZCB0byBhIHJhbmdlIGJldHdlZW4gMXgxIGFuZAogICAtLSAgMzI3Njd4MzI3NjcuCiAgIC0t
ICBBIGNsZWFyIGFuZCBkcmF3IHJlcXVlc3QgaXMgYWxzbyBxdWV1ZWQgaWYgcmVxdWlyZWQuCgog
ICBmdW5jdGlvbiBHZXRfQ2hpbGRfUmVxdWlzaXRpb24KICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR3RrX1JlcXVpc2l0aW9uOwogICAtLSAgUmV0dXJuIHRo
ZSBzaXplIHJlcXVlc3RzIGJ5IHRoZSB3aWRnZXQuCiAgIC0tICBUaGlzIGlzIHRoZSBpZGVhbCBz
aXplIGZvciB0aGUgd2lkZ2V0LCBub3QgbmVjZXNzYXJpbHkgaXRzIGFjdHVhbCBzaXplLgogICAt
LSAgU2VlIHRoZSB1c2VyIGd1aWRlJ3Mgc2VjdGlvbiBvbiBob3cgdG8gY3JlYXRlIG5ldyB3aWRn
ZXRzIGZvciBtb3JlCiAgIC0tICBpbmZvcm1hdGlvbiBvbiB0aGUgc2l6ZSByZXF1aXNpdGlvbiBh
bmQgYWxsb2NhdGlvbi4KCiAgIHByb2NlZHVyZSBTZXRfVVBvc2l0aW9uCiAgICAgKFdpZGdldCA6
IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgWCwgWSAgIDogaW4gR2ludCk7CiAgIC0t
ICBNb2RpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSB3aWRnZXQuCiAgIC0tICBUaGlzIHNob3VsZCBi
ZSB1c2VkIG9ubHkgZm9yIHRvcGxldmVsIHdpZGdldHMgKHdpbmRvd3MgYW5kIGRpYWxvZ3MpLAog
ICAtLSAgc2luY2Ugb3RoZXIgd2lkZ2V0cycgcG9zaXRpb25zIGFyZSBoYW5kbGVkIGJ5IHRoZWly
IHBhcmVudC4KCiAgIHByb2NlZHVyZSBTZXRfVVNpemUKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkOwogICAgICBXaWR0aCwgSGVpZ2h0IDogaW4gR2ludCk7CiAgIC0tICBN
b2RpZnkgdGhlIHNpemUgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgc2V0cyBhbiBhYnNvbHV0
ZSBzaXplIGZvciB0aGUgd2lkZ2V0LCBubyBtYXR0ZXIgd2hhdCBpdHMgcmVxdWVzdGVkCiAgIC0t
ICBzaXplIHdvdWxkIGJlLiBGb3IgR3RrX1dpbmRvd3MsIHlvdSBzaG91bGQgY29uc2lkZXIgdXNp
bmcKICAgLS0gIFNldF9EZWZhdWx0X1NpemUgaW5zdGVhZCwgd2hpY2ggc2V0cyBhIG1pbmltYWwg
c2l6ZSwgYnV0IHVzZSB0aGUKICAgLS0gIHdpZGdldCdzIHJlcXVlc3RlZCBzaXplIGlmIGl0IGlz
IGJpZ2dlci4KICAgLS0gIElmIFdpZHRoIG9yIEhlaWdodCBpcyBuZWdhdGl2ZSwgdGhleSBhcmUg
aWdub3JlZCwgYW5kIHRoZSB3aWRnZXQncwogICAtLSAgZGVmYXVsdCB3aWR0aCBpcyBrZXB0LgoK
ICAgZnVuY3Rpb24gR2V0X0FsbG9jYXRpb25fV2lkdGgKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkKSByZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIGN1cnJlbnQg
d2lkdGggb2YgdGhlIHdpZGdldC4KCiAgIGZ1bmN0aW9uIEdldF9BbGxvY2F0aW9uX0hlaWdodAog
ICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBHdWludDsKICAg
LS0gIFJldHVybiB0aGUgY3VycmVudCBoZWlnaHQgb2YgdGhlIHdpZGdldC4KCiAgIGZ1bmN0aW9u
IEdldF9BbGxvY2F0aW9uX1ggKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCkgcmV0
dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIHdpZGdl
dCwgcmVsYXRpdmUgdG8gaXRzIHBhcmVudC4KCiAgIGZ1bmN0aW9uIEdldF9BbGxvY2F0aW9uX1kg
KFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCkgcmV0dXJuIEdpbnQ7CiAgIC0tICBS
ZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIHdpZGdldCwgcmVsYXRpdmUgdG8gaXRz
IHBhcmVudC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBBY2NlbGVyYXRvcnMgLS0KICAg
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgQWRkX0FjY2VsZXJhdG9yCiAgICAgKFdp
ZGdldCAgICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQWNjZWxfU2lnbmFs
IDogaW4gU3RyaW5nOwogICAgICBBY2NlbF9Hcm91cCAgOiBpbiBHdGsuQWNjZWxfR3JvdXAuR3Rr
X0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICAgOiBpbiBHZGsuVHlwZXMuR2RrX0tleV9U
eXBlOwogICAgICBBY2NlbF9Nb2RzICAgOiBpbiBHZGsuVHlwZXMuR2RrX01vZGlmaWVyX1R5cGU7
CiAgICAgIEFjY2VsX0ZsYWdzICA6IGluIEd0ay5BY2NlbF9Hcm91cC5HdGtfQWNjZWxfRmxhZ3Mp
OwogICAtLSAgQWRkIGEgbmV3IGFjY2VsZXJhdG9yIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhl
IHNpZ25hbCBBY2NlbF9TaWduYWwgd2lsbCBiZSBzZW50IHRvIFdpZGdldCB3aGVuIHRoZSBtYXRj
aGluZwogICAtLSAga2V5IGlzIHByZXNzZWQgYW5kIHRoZSB3aWRnZXQgaGFzIHRoZSBmb2N1cy4K
CiAgIHByb2NlZHVyZSBSZW1vdmVfQWNjZWxlcmF0b3IKICAgICAoV2lkZ2V0ICAgICAgIDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBY2NlbF9Hcm91cCAgOiBpbiBHdGsuQWNjZWxf
R3JvdXAuR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICAgOiBpbiBHZGsuVHlwZXMu
R2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9Nb2RzICAgOiBpbiBHZGsuVHlwZXMuR2RrX01vZGlm
aWVyX1R5cGUpOwogICAtLSAgUmVtb3ZlIGFuIGFjY2VsZXJhdG9yIGZvciB0aGUgd2lkZ2V0LgoK
ICAgcHJvY2VkdXJlIFJlbW92ZV9BY2NlbGVyYXRvcnMKICAgICAoV2lkZ2V0ICAgICAgIDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBY2NlbF9TaWduYWwgOiBpbiBTdHJpbmc7CiAg
ICAgIFZpc2libGVfT25seSA6IGluIEJvb2xlYW4gOj0gVHJ1ZSk7CiAgIC0tICBSZW1vdmUgYWxs
IHRoZSBhY2NlbGVyYXRvcnMgZm9yIHRoZSB3aWRnZXQgdGhhdCBlbWl0cyB0aGUgQWNjZWxfU2ln
bmFsCiAgIC0tICBzaWduYWwgd2hlbiB0aGUga2V5IGlzIHByZXNzZWQuCiAgIC0tICBWaXNpYmxl
X09ubHkgaXMgY3VycmVudGx5IHVudXNlZCBpbiB0aGUgY29kZSBvZiBndGsrLgoKICAgZnVuY3Rp
b24gQWNjZWxlcmF0b3JfU2lnbmFsCiAgICAgKFdpZGdldCAgICAgICA6IGFjY2VzcyBHdGtfV2lk
Z2V0X1JlY29yZDsKICAgICAgQWNjZWxfR3JvdXAgIDogaW4gR3RrLkFjY2VsX0dyb3VwLkd0a19B
Y2NlbF9Hcm91cDsKICAgICAgQWNjZWxfS2V5ICAgIDogaW4gR2RrLlR5cGVzLkdka19LZXlfVHlw
ZTsKICAgICAgQWNjZWxfTW9kcyAgIDogaW4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKSBy
ZXR1cm4gR3VpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIHNpZ25hbCBpZCBvZiB0aGUgc2lnbmFsIGVt
aXR0ZWQgd2hlbiBBY2NlbF9LZXkgaXMgcHJlc3NlZAogICAtLSAgaW5zaWRlIHRoZSB3aWRnZXQu
CgogICBwcm9jZWR1cmUgTG9ja19BY2NlbGVyYXRvcnMgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lk
Z2V0X1JlY29yZCk7CiAgIC0tICBMb2NrIHRoZSBhY2NlbGVyYXRvcnMgZm9yIHRoZSB3aWRnZXQu
CiAgIC0tICBObyBuZXcgYWNjZWxlcmF0b3IgY2FuIGJlIGFkZGVkIHRvIFdpZGdldCAodGhlIGRl
ZmF1bHQgYmVoYXZpb3IgaXMKICAgLS0gIHRoYXQgdGhlIHVzZXIgY2FuIGR5bmFtaWNhbGx5IGNy
ZWF0ZSBuZXcgYWNjZWxlcmF0b3JzLCBmb3IgaW5zdGFuY2UKICAgLS0gIGJ5IHByZXNzaW5nIGEg
bm90LXlldCBhc3NpZ25lZCBrZXkgb24gYW55IG1lbnUgaXRlbS4KICAgLS0gIElmIHlvdSBjYWxs
IHRoaXMgZnVuY3Rpb24gb24gdGhlIG1lbnVfaXRlbSwgdGhpcyBiZWhhdmlvciB3aWxsIG5vdAog
ICAtLSAgbG9uZ2VyIGJlIGFjdGl2YXRlZC4KCiAgIHByb2NlZHVyZSBVbmxvY2tfQWNjZWxlcmF0
b3JzIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgVW5sb2NrIHRo
ZSBhY2NlbGVyYXRvcnMgZm9yIHRoZSB3aWRnZXQuCiAgIC0tICBJdCBpcyBub3cgcG9zc2libGUg
dG8gYWRkIG5ldyBhY2NlbGVyYXRvcnMgdG8gdGhlIHdpZGdldC4KCiAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgLS0gIEV2ZW50cyBhbmQgc2lnbmFscyAtLQogICAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBFdmVudAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnQp
IHJldHVybiBHaW50OwogICAtLSAgRW1pdCBhIHNpZ25hbCBvbiB0aGUgd2lkZ2V0LgogICAtLSAg
VGhlIGV4YWN0IHNpZ25hbCBkZXBlbmRzIG9uIHRoZSBldmVudCB0eXBlIChpLmUuIGlmIHRoZSB0
eXBlIGlzCiAgIC0tICBHZGtfQnV0dG9uX1ByZXNzLCB0aGVuIGEgImJ1dHRvbl9wcmVzcyIgc2ln
bmFsIGlzIGVtaXR0ZWQpLgoKICAgcHJvY2VkdXJlIEFjdGl2YXRlIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgRW1pdCBhbiBhY3RpdmF0ZSBzaWduYWwgb24gdGhl
IHdpZGdldC4KICAgLS0gIFRoZSBleGFjdCBzaWduYWwgZW1pdHRlZCBkZXBlbmRzIG9uIHRoZSB3
aWRnZXQgdHlwZSAoaS5lLiBmb3IgYQogICAtLSAgR3RrX0J1dHRvbiB0aGlzIGVtaXRzIGEgImNs
aWNrZWQiIHNpZ25hbCwgZm9yIGEgR3RrX0VkaXRhYmxlIHRoaXMgZW1pdHMKICAgLS0gIHRoZSAi
YWN0aXZhdGUiIHNpZ25hbCwgLi4uKS4KCiAgIHByb2NlZHVyZSBHcmFiX0ZvY3VzIChXaWRnZXQg
OiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgRW1pdCB0aGUgImdyYWJfZm9jdXMi
IHNpZ25hbCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgaXMgc2VudCB3aGVuIHRoZSB3aWRn
ZXQgZ2V0cyB0aGUgZm9jdXMuIEl0cyB2aXN1YWwgYXNwZWN0IG1pZ2h0CiAgIC0tICBjaGFuZ2Uu
CiAgIC0tICBUaGUgIkNhbl9Gb2N1cyIgZmxhZyBtdXN0IGhhdmUgYmVlbiBzZXQgZmlyc3QuCgog
ICBwcm9jZWR1cmUgU2V0X0V2ZW50cwogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9S
ZWNvcmQ7CiAgICAgIEV2ZW50cyA6IGluICAgICBHZGsuVHlwZXMuR2RrX0V2ZW50X01hc2spOwog
ICAtLSAgU2V0cyB0aGUgZXZlbnQgbWFzayBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFdpZGdldCBz
aG91bGQgbm90IGhhdmUgYmVlbiByZWFsaXplZCBiZWZvcmUsIG9yIG5vdGhpbmcgaXMgZG9uZS4K
ICAgLS0gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHlvdSBjYW4gZXhwbGljaXRseSBnZXQgbW91c2Ug
b3Iga2V5Ym9hcmRzIGV2ZW50cyBvbgogICAtLSAgd2lkZ2V0cyB0aGF0IGRvIG5vdCBhdXRvbWF0
aWNhbGx5IGdldCB0aGVtLCBhcyBmb3IgaW5zdGFuY2UgaW4gYQogICAtLSAgR3RrX0RyYXdpbmdf
QXJlYS4KCiAgIGZ1bmN0aW9uIEdldF9FdmVudHMKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkKSByZXR1cm4gR2RrLlR5cGVzLkdka19FdmVudF9NYXNrOwogICAtLSAgR2V0
IHRoZSBldmVudCBtYXNrIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBpbmRpY2F0ZXMgdGhl
IGxpc3Qgb2YgZXZlbnRzIHRoYXQgdGhlIHdpZGdldCByZWNlaXZlcy4KCiAgIHByb2NlZHVyZSBB
ZGRfRXZlbnRzCiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAg
RXZlbnRzIDogaW4gICAgIEdkay5UeXBlcy5HZGtfRXZlbnRfTWFzayk7CiAgIC0tICBBZGQgc29t
ZSBldmVudHMgdG8gdGhlIGN1cnJlbnQgZXZlbnQgbWFzayBvZiB0aGUgd2lkZ2V0LgoKICAgcHJv
Y2VkdXJlIFNldF9FeHRlbnNpb25fRXZlbnRzCiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lk
Z2V0X1JlY29yZDsKICAgICAgTW9kZSAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfRXh0ZW5zaW9u
X01vZGUpOwogICAtLSAgU2V0IHRoZSBleHRlbnNpb24gZXZlbnQgbWFzayBmb3IgdGhlIHdpZGdl
dC4KICAgLS0gIFRoaXMgaXMgdXNlZCB0byBhY3RpdmF0ZSBzb21lIHNwZWNpYWwgaW5wdXQgbW9k
ZXMgZm9yIG90aGVyIGRldmljZXMgdGhhbgogICAtLSAga2V5Ym9hcmQgYW5kIG1vdXNlLgoKICAg
ZnVuY3Rpb24gR2V0X0V4dGVuc2lvbl9FdmVudHMKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkKSByZXR1cm4gR2RrLlR5cGVzLkdka19FeHRlbnNpb25fTW9kZTsKICAgLS0g
IFJldHVybiB0aGUgY3VycmVudCBleHRlbnNpb24gZXZlbnRzIG1hc2suCgogICBmdW5jdGlvbiBE
ZWZhdWx0X01vdGlvbl9Ob3RpZnlfRXZlbnQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkJ0NsYXNzOwogICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50KSByZXR1
cm4gR2ludDsKICAgLS0gIEFjY2VzcyB0byB0aGUgc3RhbmRhcmQgZGVmYXVsdCBjYWxsYmFjayBm
b3IgbW90aW9uIGV2ZW50czoKICAgLS0gIFRoaXMgaXMgbWFpbmx5IHVzZWQgZm9yIHJ1bGVycyBp
biBHdGsuUnVsZXIgKFNlZSB0aGUgZXhhbXBsZSBpbgogICAtLSAgdGVzdGd0aywgd2l0aCBjcmVh
dGVfcnVsZXJzLmFkYikKCiAgIGZ1bmN0aW9uIEhhc19EZWZhdWx0X01vdGlvbl9Ob3RpZnlfSGFu
ZGxlcgogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpIHJldHVy
biBCb29sZWFuOwogICAtLSAgUmV0dXJuIFRydWUgaWYgV2lkZ2V0IGhhcyBhIGRlZmF1bHQgaGFu
ZGxlciBmb3IgbW90aW9uX25vdGlmeSBldmVudHMuCiAgIC0tICBOb3RlIHRoYXQgdGhlIGZ1bmN0
aW9uIERlZmF1bHRfTW90aW9uX05vdGlmeV9FdmVudCBzaG91bGQgbm90IGJlIGNhbGxlZAogICAt
LSAgaWYgdGhpcyBvbmUgcmV0dXJucyBGYWxzZSwgc2luY2UgaXQgd291bGQgY3JlYXRlIGEgc2Vn
bWVudGF0aW9uIGZhdWx0LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ29s
b3JzIGFuZCBjb2xvcm1hcHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1
bmN0aW9uIEdldF9Db2xvcm1hcAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNv
cmQpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwOwogICAtLSAgUmV0dXJuIHRoZSBjb2xv
cm1hcCB1c2VkIGZvciB0aGUgd2lkZ2V0LiBUaGlzIHdpbGwgZ2VuZXJhbGx5IGJlIHRoZQogICAt
LSAgc2FtZSBvbmUgZm9yIGFsbCB3aWRnZXRzLCBidXQgbWlnaHQgYmUgZGlmZmVyZW50IGlmIGZv
ciBpbnN0YW5jZSBhCiAgIC0tICBHdGtfRHJhd2luZ19BcmVhIG5lZWRzIHRvIGRpc3BsYXkgc29t
ZSBkaWZmZXJlbnQgY29sb3JzIG9uIGEgc2NyZWVuCiAgIC0tICB0aGF0IG9ubHkgaGFzIGEgbGlt
aXRlZCBhbW91bnQgb2YgY29sb3JzLgoKICAgZnVuY3Rpb24gR2V0X1Zpc3VhbAogICAgIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBHZGsuVmlzdWFsLkdka19WaXN1
YWw7CiAgIC0tICBHZXQgdGhlIHZpc3VhbCB1c2VkIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgSS5l
LiB0aGUgc3RydWN0dXJlIHRoYXQgaW5kaWNhdGVzIHRoZSBkZXB0aCBvZiB0aGUgd2lkZ2V0IChu
dW1iZXIgb2YKICAgLS0gIGJpdHMgcGVyIHBpeGVsKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24gdXNl
ZCBpbnRlcm5hbGx5IGJ5IEd0a0FkYSB0bwogICAtLSAgaGFuZGxlIGNvbG9ycyBhbmQgY29sb3Jt
YXBzLgoKICAgcHJvY2VkdXJlIFNldF9Db2xvcm1hcAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQ7CiAgICAgIENtYXAgOiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwKTsKICAg
LS0gIE1vZGlmeSB0aGUgY29sb3JtYXAgb2YgdGhlIHdpZGdldC4KICAgLS0gIFRoZSB3aWRnZXQg
bXVzdCBub3QgaGF2ZSBiZWVuIHJlYWxpemVkLgoKICAgcHJvY2VkdXJlIFNldF9WaXN1YWwKICAg
ICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBWaXN1YWwgOiBHZGsu
VmlzdWFsLkdka19WaXN1YWwpOwogICAtLSAgTW9kaWZ5IHRoZSB2aXN1YWwgb2YgdGhlIHdpZGdl
dC4KICAgLS0gIFRoZSB3aWRnZXQgbXVzdCBub3QgaGF2ZSBiZWVuIHJlYWxpemVkLgoKICAgcHJv
Y2VkdXJlIFB1c2hfQ29sb3JtYXAgKENtYXAgOiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwKTsKICAg
LS0gIE1vZGlmeSB0ZW1wb3JhcmlseSB0aGUgZGVmYXVsdCBjb2xvcm1hcCBzZXQgZm9yIG5ld2x5
IGNyZWF0ZWQgd2lkZ2V0cy4KICAgLS0gIFlvdSBzaG91bGQgdXNlIHRoaXMgaW4gcGFpciB3aXRo
IFBvcF9Db2xvcm1hcCBiZWxvdyAoUHVzaCB0aGUgbmV3IHZhbHVlLAogICAtLSAgY3JlYXRlIHRo
ZSB3aWRnZXQsIGFuZCBwb3AgdGhlIHZhbHVlKS4KCiAgIHByb2NlZHVyZSBQb3BfQ29sb3JtYXA7
CiAgIC0tICBTZWUgUHVzaF9Db2xvcm1hcCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgIHByb2Nl
ZHVyZSBQdXNoX1Zpc3VhbCAoVmlzdWFsIDogR2RrLlZpc3VhbC5HZGtfVmlzdWFsKTsKICAgLS0g
IE1vZGlmeSB0ZW1wb3JhcmlseSB0aGUgZGVmYXVsdCB2aXN1YWwgc2V0IGZvciBuZXdseSBjcmVh
dGVkIHdpZGdldHMuCiAgIC0tICBZb3Ugc2hvdWxkIHVzZSB0aGlzIGluIHBhaXIgd2l0aCBQb3Bf
Q29sb3JtYXAgYmVsb3cgKFB1c2ggdGhlIG5ldyB2YWx1ZSwKICAgLS0gIGNyZWF0ZSB0aGUgd2lk
Z2V0LCBhbmQgcG9wIHRoZSB2YWx1ZSkuCgogICBwcm9jZWR1cmUgUG9wX1Zpc3VhbDsKICAgLS0g
IFNlZSBQdXNoX1Zpc3VhbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgIGZ1bmN0aW9uIEdldF9E
ZWZhdWx0X0NvbG9ybWFwIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwOwogICAtLSAgUmV0
dXJuIHRoZSBkZWZhdWx0IGNvbG9ybWFwIHVzZWQgd2hlbiBhIHdpZGdldCBpcyBjcmVhdGVkLgoK
ICAgcHJvY2VkdXJlIFNldF9EZWZhdWx0X0NvbG9ybWFwIChDbWFwIDogR2RrLkNvbG9yLkdka19D
b2xvcm1hcCk7CiAgIC0tICBNb2RpZnkgcGVybWFuZW50bHkgdGhlIGRlZmF1bHQgY29sb3JtYXAg
dXNlZCB3aGVuIGEgd2lkZ2V0IGlzIGNyZWF0ZWQuCiAgIC0tICBJZiB5b3Ugb25seSB3YW50IHRv
IG1vZGlmeSB0aGlzIGNvbG9ybWFwIHRlbXBvcmFyaWx5IGZvciBhIGZldyB3aWRnZXRzLAogICAt
LSAgeW91IHNob3VsZCBjb25zaWRlciB1c2luZyBQdXNoX0NvbG9ybWFwIGFuZCBQb3BfQ29sb3Jt
YXAgaW5zdGVhZC4KCiAgIGZ1bmN0aW9uIEdldF9EZWZhdWx0X1Zpc3VhbCByZXR1cm4gR2RrLlZp
c3VhbC5HZGtfVmlzdWFsOwogICAtLSAgUmV0dXJuIHRoZSBkZWZhdWx0IHZpc3VhbCB1c2VkIHdo
ZW4gYSBuZXcgd2lkZ2V0IGlzIGNyZWF0ZWQuCgogICBwcm9jZWR1cmUgU2V0X0RlZmF1bHRfVmlz
dWFsIChWaXN1YWwgOiBHZGsuVmlzdWFsLkdka19WaXN1YWwpOwogICAtLSAgTW9kaWZ5IHBlcm1h
bmVudGx5IHRoZSBkZWZhdWx0IHZpc3VhbCB1c2VkIHdoZW4gYSB3aWRnZXQgaXMgY3JlYXRlZC4K
ICAgLS0gIElmIHlvdSBvbmx5IHdhbnQgdG8gbW9kaWZ5IHRoaXMgdmlzdWFsIHRlbXBvcmFyaWx5
IGZvciBhIGZldyB3aWRnZXRzLAogICAtLSAgeW91IHNob3VsZCBjb25zaWRlciB1c2luZyBQdXNo
X1Zpc3VhbCBhbmQgUG9wX1Zpc3VhbCBpbnN0ZWFkLgoKICAgLS0tLS0tLS0tLS0tCiAgIC0tIFN0
eWxlcyAtLQogICAtLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBQdXNoX1N0eWxlIChTdHlsZSA6
IEd0ay5TdHlsZS5HdGtfU3R5bGUpOwogICAtLSAgQ2hhbmdlIHRoZSBkZWZhdWx0IHZhbHVlcyBm
b3Igc3R5bGVzLgogICAtLSAgVGhpcyBpcyBnZW5lcmFsbHkgdXNlZCBqdXN0IGJlZm9yZSBjcmVh
dGluZyBhIHdpZGdldC4gWW91IHNob3VsZCB1c2UKICAgLS0gIHRoaXMgcHJvY2VkdXJlIGluIHBh
aXIgd2l0aCBQb3BfU3R5bGUgKFB1c2ggdGhlIG5ldyB2YWx1ZSwgY3JlYXRlIHRoZQogICAtLSAg
d2lkZ2V0IHRoZW4gcG9wIHRoZSB2YWx1ZSkKCiAgIHByb2NlZHVyZSBQb3BfU3R5bGU7CiAgIC0t
ICBSZXN0b3JlIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3Igc3R5bGVzLgogICAtLSAgVGhpcyBpcyBn
ZW5lcmFsbHkgdXNlZCBqdXN0IGFmdGVyIGNyZWF0aW5nIGEgd2lkZ2V0LiBZb3Ugc2hvdWxkIHVz
ZQogICAtLSAgdGhpcyBwcm9jZWR1cmUgaW4gcGFpciB3aXRoIFB1c2hfU3R5bGUgKFB1c2ggdGhl
IG5ldyB2YWx1ZSwgY3JlYXRlIHRoZQogICAtLSAgd2lkZ2V0IHRoZW4gcG9wIHRoZSB2YWx1ZSkK
CiAgIHByb2NlZHVyZSBTZXRfU3R5bGUKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkOwogICAgICBTdHlsZSAgOiBHdGsuU3R5bGUuR3RrX1N0eWxlKTsKICAgLS0gIFNldCB0
aGUgc3R5bGUgZm9yIGEgZ2l2ZW4gd2lkZ2V0LgoKICAgZnVuY3Rpb24gR2V0X1N0eWxlIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpCiAgICAgcmV0dXJuIEd0ay5TdHlsZS5HdGtf
U3R5bGU7CiAgIC0tICBSZXR1cm4gdGhlIHN0eWxlIG9mIGEgZ2l2ZW4gd2lkZ2V0LgoKICAgcHJv
Y2VkdXJlIE1vZGlmeV9TdHlsZQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNv
cmQ7CiAgICAgIFN0eWxlICA6IEd0a19SY19TdHlsZSk7CiAgIC0tICBNb2RpZnkgdGhlIGRlZmF1
bHQgc3R5bGUgb2YgYSB3aWRnZXQuCgogICBwcm9jZWR1cmUgU2V0X0RlZmF1bHRfU3R5bGUgKFN0
eWxlIDogR3RrLlN0eWxlLkd0a19TdHlsZSk7CiAgIC0tICBTZXQgdGhlIGRlZmF1bHQgZ2xvYmFs
IHN0eWxlLgoKICAgZnVuY3Rpb24gR2V0X0RlZmF1bHRfU3R5bGUgcmV0dXJuIEd0ay5TdHlsZS5H
dGtfU3R5bGU7CiAgIC0tICBHZXQgdGhlIGRlZmF1bHQgZ2xvYmFsIHN0eWxlLgoKICAgcHJvY2Vk
dXJlIFNldF9SY19TdHlsZSAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAg
LS0gIFJlc3RvcmUgdGhlIGRlZmF1bHQgc3R5bGUgb2YgYSB3aWRnZXQuCiAgIC0tICBUaGUgZGVm
YXVsdCBzdHlsZSBpcyBnaXZlbiBieSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGluaXRpYWxseSBw
YXJzZWQKICAgLS0gIGJ5IEd0a0FkYS4KCiAgIHByb2NlZHVyZSBFbnN1cmVfU3R5bGUgKFdpZGdl
dCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCk7CiAgIC0tICBNYWtlIHN1cmUgdGhhdCB0aGUg
d2lkZ2V0IGhhcyBhIHN0eWxlIGFzc29jaWF0ZWQgdG8gaXQuCiAgIC0tICBFaXRoZXIgdGhlIGRl
ZmF1bHQgb25lIGFzIHNldCBieSBTZXRfUmNfU3R5bGUgYWJvdmUgb3Igb25lIHNldCBieSB0aGUK
ICAgLS0gIHVzZXIgd2l0aCBTZXRfU3R5bGUuCgogICBwcm9jZWR1cmUgUmVzdG9yZV9EZWZhdWx0
X1N0eWxlIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgUmVzdG9y
ZSB0aGUgZGVmYXVsdCBzdHlsZSB0aGF0IHdhcyBzZXQgZm9yIHRoZSB3aWRnZXQuCiAgIC0tICBU
aGUgZGVmYXVsdCBzdHlsZSBpcyB0aGUgZmlyc3Qgb25lIHRoYXQgd2FzIHNldCBlaXRoZXIgYnkg
YSBjYWxsCiAgIC0tICB0byBTZXRfU3R5bGUgb3IgU2V0X1JjX1N0eWxlLgoKICAgcHJvY2VkdXJl
IFJlc2V0X1JjX1N0eWxlcyAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkKTsKICAg
LS0gIFJlc3RvcmUgdGhlIFJjIHN0eWxlIHJlY3Vyc2l2ZWx5IGZvciB3aWRnZXQgYW5kIGl0cyBj
aGlsZHJlbi4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gV2lkZ2V0cycgdHJlZSAtLQog
ICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X05hbWUKICAgICAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBOYW1lICAgOiBpbiBTdHJpbmcpOwog
ICAtLSAgU2V0IHRoZSBuYW1lIGZvciB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBuYW1lIGlzIHVz
ZWQgcHVyZWx5IGludGVybmFsbHkgdG8gaWRlbnRpZnkgdGhlIHdpZGdldCwgYW5kIGRvZXMgbm90
CiAgIC0tICBnaXZlIGFueSB2aXN1YWwgY2x1ZS4KCiAgIGZ1bmN0aW9uIEdldF9OYW1lIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBTdHJpbmc7CiAgIC0tICBSZXR1
cm4gdGhlIG5hbWUgb2YgdGhlIHdpZGdldCBpZiBpdCB3YXMgc2V0IGJ5IFNldF9OYW1lLgogICAt
LSAgUmV0dXJuIHRoZSBuYW1lIG9mIGl0cyBjbGFzcyBvdGhlcndpc2UuCgogICBwcm9jZWR1cmUg
U2V0X1BhcmVudAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAg
IFBhcmVudCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzcyk7CiAgIC0tICBNb2RpZnkg
dGhlIHBhcmVudCBmb3IgdGhlIHdpZGdldC4KICAgLS0gIFRoaXMgaXMgbm90IHRoZSByZWNvbW1l
bmRlZCB3YXkgdG8gZG8gdGhpcywgeW91IHNob3VsZCB1c2UKICAgLS0gIEd0ay5Db250YWluZXIu
QWRkIG9yIEd0ay5Cb3guUGFja19TdGFydCBpbnN0ZWFkLgoKICAgcHJvY2VkdXJlIFNldF9QYXJl
bnRfV2luZG93CiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAg
V2luZG93IDogR2RrLldpbmRvdy5HZGtfV2luZG93KTsKICAgLS0gIFNldCB0aGUgcGFyZW50IHdp
bmRvdyBmb3IgdGhlIGFjdHVhbCBHZGtfV2luZG93IG9mIHRoZSB3aWRnZXQuIFRoaXMgc2V0cwog
ICAtLSAgdXAgcmVxdWlyZWQgaW50ZXJuYWwgZmllbGRzLCBhbmQgc2hvdWxkIGJlIHVzZWQgb25s
eSB3aGVuIHlvdSBpbXBsZW1lbnQKICAgLS0gIHlvdXIgb3duIGNvbnRhaW5lciwgYXMgb3Bwb3Nl
ZCB0byB1c2luZyBvbmUgb2YgdGhlIHN0YW5kYXJkIGNvbnRhaW5lcnMuCgogICBmdW5jdGlvbiBH
ZXRfUGFyZW50IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBHdGtf
V2lkZ2V0OwogICAtLSAgUmV0dXJuIHRoZSBwYXJlbnQgb2YgdGhlIHdpZGdldCwgb3IgbnVsbCBp
ZiBXaWRnZXQgaXMgYSB0b3BsZXZlbAogICAtLSAgd2lkZ2V0LgoKICAgZnVuY3Rpb24gR2V0X1Rv
cGxldmVsIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpIHJldHVybiBHdGtfV2lk
Z2V0OwogICAtLSAgUmV0dXJuIHRoZSB0b3BsZXZlbCBhbmNlc3RvciBvZiB0aGUgd2lkZ2V0Lgog
ICAtLSAgVGhpcyBpcyB0aGUgd2luZG93IG9yIGRpYWxvZyBpbiB3aGljaCB0aGUgd2lkZ2V0IGlz
IGluY2x1ZGVkLgogICAtLSAgVGhlIHdpZGdldCByZXR1cm5lZCBkb2VzIG5vdCBoYXZlIGFueSBw
YXJlbnQuCgogICBmdW5jdGlvbiBHZXRfQW5jZXN0b3IKICAgICAoV2lkZ2V0ICAgICAgICA6IGFj
Y2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQW5jZXN0b3JfVHlwZSA6IGluIEd0a19UeXBl
KSByZXR1cm4gR3RrX1dpZGdldDsKICAgLS0gIFJldHVybiB0aGUgY2xvc2VzdCBhbmNlc3RvciBv
ZiBXaWRnZXQgd2hpY2ggaXMgb2YgdHlwZSBBbmNlc3Rvcl9UeXBlLgogICAtLSAgUmV0dXJuIG51
bGwgaWYgdGhlcmUgaXMgbm9uZS4KCiAgIGZ1bmN0aW9uIElzX0FuY2VzdG9yCiAgICAgKFdpZGdl
dCAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwogICAgICBBbmNlc3RvciA6IGFjY2VzcyBH
dGtfV2lkZ2V0X1JlY29yZCdDbGFzcykgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm4gVHJ1
ZSBpZiBBbmNlc3RvciBpcyBpbiB0aGUgYW5jZXN0b3IgdHJlZSBmb3IgV2lkZ2V0LgogICAtLSAg
SS5lLiBpZiBXaWRnZXQgaXMgY29udGFpbmVkIHdpdGhpbiBBbmNlc3Rvci4KCiAgIHByb2NlZHVy
ZSBSZXBhcmVudAogICAgIChXaWRnZXQgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkOwog
ICAgICBOZXdfUGFyZW50IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0g
IENoYW5nZSB0aGUgcGFyZW50IG9mIHRoZSB3aWRnZXQgZHluYW1pY2FsbHkuCiAgIC0tICBJZiBi
b3RoIHRoZSBuZXcgcGFyZW50IGFuZCB0aGUgd2lkZ2V0IGFyZSBzaG93biwgdGhlbiB0aGUgd2lk
Z2V0IGlzCiAgIC0tICB2aXN1YWxseSByZWRyYXduIGluIGl0cyBuZXcgcGFyZW50LgoKICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTWlzYyBmdW5jdGlvbnMgLS0KICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfU2Nyb2xsX0FkanVzdG1lbnRzCiAgICAgKFdpZGdl
dCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgSGFkaiAgIDogR3RrLkFkanVzdG1l
bnQuR3RrX0FkanVzdG1lbnQ7CiAgICAgIFZhZGogICA6IEd0ay5BZGp1c3RtZW50Lkd0a19BZGp1
c3RtZW50KTsKICAgLS0gIEVtaXQgdGhlICJzZXRfc2Nyb2xsX2FkanVzdG1lbnRzIiBzaWduYWwu
CiAgIC0tICBUaGUgZXhhY3Qgc2lnbmFsIGVtaXR0ZWQgZGVwZW5kcyBvbiB0aGUgd2lkZ2V0IHR5
cGUgKHNlZQogICAtLSAgR3RrLk9iamVjdC5Jbml0aWFsaXplX0NsYXNzX1JlY29yZCkuCiAgIC0t
ICBUaGUgaGFuZGxlciBjcmVhdGVzIHRoZSBhZGp1c3RtZW50cyBpZiBudWxsIGlzIHBhc3NlZCBh
cyBhcmd1bWVudCwgYW5kCiAgIC0tICBtYWtlcyBzdXJlIGJvdGggYWRqdXN0bWVudHMgYXJlIGlu
IHRoZSBjb3JyZWN0IHJhbmdlLgoKICAgcHJvY2VkdXJlIFBvcHVwIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQ7IFgsIFkgOiBpbiBHaW50KTsKICAgLS0gIFJlYWxpemUgdGhlIHdp
ZGdldCAoc2VlIFJlYWxpemUgYWJvdmUpLCBtb3ZlcyBpdCB0byB0aGUgc2NyZWVuIHBvc2l0aW9u
CiAgIC0tICAoWCwgWSksIGFuZCBzaG93cyB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBzaG91bGQg
b25seSBiZSB1c2VkIGZvciB0b3BsZXZlbCB3aW5kb3dzIGFuZCBkaWFsb2dzLCBhcyB5b3UgY2Fu
CiAgIC0tICBubyBtb2RpZnkgdGhlIHBvc2l0aW9uIG9mIGEgd2lkZ2V0IHRoYXQgaGFzIGEgcGFy
ZW50ICh0aGUgcGFyZW50IGlzCiAgIC0tICB0aGVuIHJlc3BvbnNpYmxlIGZvciBpdHMgcG9zaXRp
b24pLgoKICAgZnVuY3Rpb24gSW50ZXJzZWN0CiAgICAgKFdpZGdldCAgICAgICA6IGFjY2VzcyBH
dGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQXJlYSAgICAgICAgIDogR2RrLlJlY3RhbmdsZS5HZGtf
UmVjdGFuZ2xlOwogICAgICBJbnRlcnNlY3Rpb24gOiBhY2Nlc3MgR2RrLlJlY3RhbmdsZS5HZGtf
UmVjdGFuZ2xlKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVlIGlmIHRoZSB3aWRn
ZXQgaW50ZXJzZWN0cyB0aGUgc2NyZWVuIGFyZWEgQXJlYS4KICAgLS0gIFRoZSBpbnRlcnNlY3Rp
b24gYXJlYSBpcyByZXR1cm5lZCBpbiBJbnRlcnNlY3Rpb24uCgogICBwcm9jZWR1cmUgR3JhYl9E
ZWZhdWx0IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQpOwogICAtLSAgVGhlIHdp
ZGdldCBiZWNvbWVzIHRoZSBkZWZhdWx0IHdpZGdldCBmb3IgaXRzIHBhcmVudCB3aW5kb3cgb3Ig
ZGlhbG9nLgogICAtLSAgQWxsIGtleWJvYXJkIGV2ZW50cyB3aWxsIGJlIHNlbnQgdG8gaXQgaWYg
bm8gb3RoZXIgd2lkZ2V0IGhhcyB0aGUgZm9jdXMuCiAgIC0tICBOb3RlIHRoYXQgdGhlICJDYW5f
RGVmYXVsdCIgZmxhZyBtdXN0IGhhdmUgYmVlbiBzZXQgZmlyc3Qgb24gV0lER0VULgoKICAgcHJv
Y2VkdXJlIFNldF9TdGF0ZQogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7
CiAgICAgIFN0YXRlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpOwogICAtLSAgTW9kaWZ5IHRo
ZSBzdGF0ZSBvZiB0aGUgd2lkZ2V0LgogICAtLSAgVGhpcyBtb2RpZmllcyBpdHMgdmlzdWFsIGFz
cGVjdCwgYW5kIHRodXMgc2hvdWxkIGJlIHVzZWQgb25seSBpZiB5b3UKICAgLS0gIGNoYW5nZSBp
dHMgYmVoYXZpb3IgYXQgdGhlIHNhbWUgdGltZSwgc28gYXMgbm90IHRvIGNvbmZ1c2UgdGhlIHVz
ZXIuCgogICBmdW5jdGlvbiBHZXRfU3RhdGUKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkKSByZXR1cm4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgIC0tICBSZXR1cm4gdGhl
IHN0YXRlIG9mIHRoZSB3aWRnZXQuCgogICBwcm9jZWR1cmUgU2V0X1NlbnNpdGl2ZQogICAgIChX
aWRnZXQgICAgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFNlbnNpdGl2ZSA6IGlu
IEJvb2xlYW4gOj0gVHJ1ZSk7CiAgIC0tICBNb2RpZnkgdGhlIHNlbnNpdGl2aXR5IG9mIHRoZSB3
aWRnZXQuCiAgIC0tICBBbiBpbnNlbnNpdGl2ZSB3aWRnZXQgaXMgZ2VuZXJhbGx5IGdyYXllZCBv
dXQsIGFuZCBjYW4gbm90IGJlIGFjdGl2YXRlZC4KICAgLS0gIEZvciBpbnN0YW5jZSwgYW4gaW5z
ZW5zaXRpdmUgbWVudSBpdGVtIGlzIGdyYXllZCwgYW5kIGNhbiBuZXZlciBiZQogICAtLSAgc2Vs
ZWN0ZWQuCgogICBwcm9jZWR1cmUgU2V0X0FwcF9QYWludGFibGUKICAgICAoV2lkZ2V0ICAgICAg
ICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgQXBwX1BhaW50YWJsZSA6IEJvb2xl
YW4pOwogICAtLSAgTW9kaWZ5IHRoZSAiQXBwX1BhaW50YWJsZSIgZmxhZyBmb3IgdGhlIHdpZGdl
dC4KCiAgIHByb2NlZHVyZSBHZXRfUG9pbnRlcgogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dp
ZGdldF9SZWNvcmQ7CiAgICAgIFggICAgICA6IG91dCBHaW50OwogICAgICBZICAgICAgOiBvdXQg
R2ludCk7CiAgIC0tICBSZXR1cm4gdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludGVyIChpLmUu
IG1vdXNlKSByZWxhdGl2ZSB0byBXaWRnZXQuCgogICBwcm9jZWR1cmUgU2V0X1dpbmRvdwogICAg
IChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQ7CiAgICAgIFdpbmRvdyA6IGluIEdk
ay5XaW5kb3cuR2RrX1dpbmRvdyk7CiAgIC0tICBTZXQgdGhlIEdkayB3aW5kb3cgYXNzb2NpYXRl
ZCB3aXRoIHRoZSB3aWRnZXQuCgogICBmdW5jdGlvbiBHZXRfV2luZG93CiAgICAgKFdpZGdldCA6
IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCkgcmV0dXJuIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsK
ICAgLS0gIEdldCB0aGUgR2RrIHdpbmRvdyBhc3NvY2lhdGVkIHdpdGggdGhlIHdpZGdldC4KICAg
LS0gIFlvdSBjYW4gdXNlIHRoaXMgd2luZG93IGlmIHlvdSBuZWVkIHRvIGRyYXcgZGlyZWN0bHkg
b24gdGhlIHdpZGdldCB1c2luZwogICAtLSAgdGhlIGZ1bmN0aW9ucyBmb3VuZCBpbiB0aGUgR2Rr
IGhpZXJhcmNoeS4KCiAgIHByb2NlZHVyZSBTaGFwZV9Db21iaW5lX01hc2sKICAgICAoV2lkZ2V0
ICAgICA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZDsKICAgICAgU2hhcGVfTWFzayA6IEdkay5C
aXRtYXAuR2RrX0JpdG1hcDsKICAgICAgT2Zmc2V0X1ggICA6IEdpbnQ7CiAgICAgIE9mZnNldF9Z
ICAgOiBHaW50KTsKICAgLS0gIE1vZGlmeSB0aGUgc2hhcGUgb2YgdGhlIHdpbmRvdyB0aGF0IGNv
bnRhaW5zIHRoZSB3aWRnZXQuCiAgIC0tICBUaGlzIGFsbG93cyBmb3IgdHJhbnNwYXJlbnQgd2lu
ZG93cywgYW5kIHJlcXVpcmVzIHRoZSBYZXh0IGxpYnJhcnkgdG8gYmUKICAgLS0gIGF2YWlsYWJs
ZSBvbiB5b3VyIHN5c3RlbS4gSWYgdGhpcyBsaWJyYXJ5IGlzIG5vdCBhdmFpbGFibGUsIHlvdXIg
cHJvZ3JhbQogICAtLSAgd2lsbCBzdGlsbCB3b3JrLgogICAtLSAgU2VlIHRoZSBtYW51YWwgcGFn
ZSBmb3IgWFNoYXBlQ29tYmluZU1hc2soM3gpIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgLS0t
LS0tLS0tLS0KICAgLS0gRmxhZ3MgLS0KICAgLS0tLS0tLS0tLS0KICAgLS0gIFNvbWUgYWRkaXRp
b25hbCBmbGFncyBhcmUgZGVmaW5lZCBmb3IgYWxsIHRoZSB2aXN1YWwgb2JqZWN0cyAod2lkZ2V0
cykuCiAgIC0tICBUaGV5IGFyZSBkZWZpbmVkIGluIGFkZGl0aW9uIHRvIHRoZSBvbmVzIGRlZmlu
ZWQgaW4gR3RrLk9iamVjdC4KICAgLS0gIFRoZXNlIGZsYWdzIGFyZSBpbXBvcnRhbnQgaW4gdGhh
dCB0aGV5IGRlZmluZSBleGFjdGx5IHRoZSBkaWZmZXJlbnQKICAgLS0gIHN0YXRlcyBhIHdpZGdl
dCBjYW4gYmUgaW4uCiAgIC0tCiAgIC0tICAtICJUb3BsZXZlbCI6CiAgIC0tICAgIFNldCBpZiB0
aGUgd2lkZ2V0IGlzIGEgdG9wbGV2ZWwgd2lkZ2V0LCBpZSBoYXMgbm8gcGFyZW50LiBUaGlzIGlz
CiAgIC0tICAgIG1vc3RseSB0cnVlIGZvciB3aW5kb3dzIGFuZCBkaWFsb2dzLgogICAtLQogICAt
LSAgLSAiTm9fV2luZG93IjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQgZG9lcyBub3QgaGF2
ZSBhbiBhc3NvY2lhdGVkIFgxMSB3aW5kb3csIGllIGNhbiBub3QKICAgLS0gICAgcmVjZWl2ZSBl
dmVudHMgZGlyZWN0bHkuIEZvciBpbnN0YW5jZSwgYSBHdGtfVG9vbGJhciBkb2VzIG5vdCBoYXZl
CiAgIC0tICAgIGFuIGFzc29jaWF0ZWQgd2luZG93LiBUaGVzZSBvYmplY3RzIGFyZSBtb3JlIGxp
Z2h0d2VpZ2h0LCBidXQgcmVxdWlyZQogICAtLSAgICBtb3JlIHdvcmsgZnJvbSBHdGtBZGEuIFRo
aXMgZmxhZyBpcyBvbmx5IHNldCBpZiB0aGUgd2lkZ2V0IHdpbGwgbmV2ZXIKICAgLS0gICAgaGF2
ZSBhIHdpbmRvdywgZXZlbiBhZnRlciBpdCBpcyByZWFsaXplZC4KICAgLS0KICAgLS0gIC0gIlJl
YWxpemVkIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQgaGFzIGJlZW4gcmVhbGl6ZWQsIGll
IGl0cyBhc3NvY2lhdGVkIFgxMSB3aW5kb3cgaGFzCiAgIC0tICAgIGJlZW4gY3JlYXRlZCAocHJv
dmlkaW5nIHRoZSB3aWRnZXQgZXhjZXB0cyBhIHdpbmRvdywgc2VlIHRoZSBOb19XaW5kb3cKICAg
LS0gICAgZmxhZwogICAtLQogICAtLSAgLSAiTWFwcGVkIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3
aWRnZXQgaXMgdmlzaWJsZSBvbiB0aGUgc2NyZWVuLiBUaGlzIGlzIG9ubHkgcG9zc2libGUgaWYK
ICAgLS0gICAgdGhlIFZpc2libGUgZmxhZyBpcyBhbHNvIHNldC4KICAgLS0KICAgLS0gIC0gIlZp
c2libGUiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdldCB3aWxsIGJlIGRpc3BsYXllZCBvbiB0
aGUgc2NyZWVuIHdoZW4gbWFwcGVkIChzZWUgdGhlCiAgIC0tICAgIGZ1bmN0aW9ucyBTaG93IGFu
ZCBIaWRlIGluIHRoaXMgcGFja2FnZSkuCiAgIC0tCiAgIC0tICAtICJTZW5zaXRpdmUiOgogICAt
LSAgICBTZXQgaWYgdGhlIHdpZGdldCBpcyBsaXN0ZW5pbmcgdG8gZXZlbnRzLiBTZWUgdGhlIGZ1
bmN0aW9uCiAgIC0tICAgIFNldF9TZW5zaXRpdmUgaW4gdGhpcyBwYWNrYWdlLiBBbiBpbnNlbnNp
dGl2ZSB3aWRnZXQgd2lsbCBnZW5lcmFsbHkKICAgLS0gICAgaGF2ZSBhIGRpZmZlcmVudCB2aXN1
YWwgYXNwZWN0IHRvIGNsdWUgdGhhdCBpdCBpcyB1bmF2YWlsYWJsZSAoZm9yCiAgIC0tICAgIGlu
c3RhbmNlIGFuIGluc2Vuc2l0aXZlIGl0ZW0gbWVudSB3aWxsIGJlIGdyYXllZCkKICAgLS0KICAg
LS0gIC0gIlBhcmVudF9TZW5zaXRpdmUiOgogICAtLSAgICBTZXQgaWYgdGhlIHBhcmVudCBpcyBz
ZW5zaXRpdmUuIEEgd2lkZ2V0IGlzIHNlbnNpdGl2ZSBvbmx5IGlmIGJvdGgKICAgLS0gICAgdGhl
IFNlbnNpdGl2ZSBhbmQgUGFyZW50X1NlbnNpdGl2ZSBhcmUgc2V0LgogICAtLQogICAtLSAgLSAi
Q2FuX0ZvY3VzIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQgY2FuIGhhdmUgdGhlIGZvY3Vz
LCBpZSBnZXQga2V5Ym9hcmQgZXZlbnRzLiBNb3N0CiAgIC0tICAgIHdpZGdldHMgY2FuIG5vdCBo
YXZlIHRoZSBmb2N1cy4KICAgLS0KICAgLS0gIC0gIkhhc19Gb2N1cyI6CiAgIC0tICAgIFNldCBp
ZiB0aGUgd2lkZ2V0IGN1cnJlbnRseSBoYXMgdGhlIGZvY3VzLiBTZWUgdGhlIGZ1bmN0aW9uIEdy
YWJfRm9jdXMKICAgLS0gICAgaW4gdGhpcyBwYWNrYWdlLgogICAtLQogICAtLSAgLSAiQ2FuX0Rl
ZmF1bHQiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdldCBjYW4gYmUgdGhlIGRlZmF1bHQgd2lk
Z2V0IGluIGEgd2luZG93LCBpZSB0aGUgb25lCiAgIC0tICAgIHRoYXQgd2lsbCBnZXQgdGhlIGtl
eWJvYXJkIGV2ZW50cyBieSBkZWZhdWx0LiBGb3IgaW5zdGFuY2UsIHRoZQogICAtLSAgICBkZWZh
dWx0IGJ1dHRvbiBpbiBhIGRpYWxvZyBpcyB0aGUgb25lIHRoYXQgZ2V0cyBjbGlja2VkIG9uIHdo
ZW4gdGhlCiAgIC0tICAgIHVzZXIgcHJlc3NlZCBFbnRlciBhbnl3aGVyZSBpbiB0aGUgZGlhbG9n
LgogICAtLQogICAtLSAgLSAiSGFzX0RlZmF1bHQiOgogICAtLSAgICBTZXQgaWYgdGhlIHdpZGdl
dCBpcyBjdXJyZW50bHkgdGhlIGRlZmF1bHQgd2lkZ2V0LiBTZWUgdGhlIGZ1bmN0aW9uCiAgIC0t
ICAgIEdyYWJfRGVmYXVsdCBpbiB0aGlzIHBhY2thZ2UuCiAgIC0tCiAgIC0tICAtICJIYXNfR3Jh
YiI6CiAgIC0tICAgIFNldCBpZiB0aGUgd2lkZ2V0IGN1cnJlbnRseSBncmFicyBhbGwgbW91c2Ug
YW5kIGtleWJvYXJkIGV2ZW50cyBpbgogICAtLSAgICB0aGUgYXBwbGljYXRpb24sIGV2ZW4gaWYg
aXQgZG9lcyBub3QgaGF2ZSB0aGUgZm9jdXMuIFRoZXJlIGNhbiBiZSBvbmx5CiAgIC0tICAgIHN1
Y2ggd2lkZ2V0IHBlciBhcHBsaWNhdGlvbiBhdCBhbnkgZ2l2ZW4gdGltZS4KICAgLS0KICAgLS0g
IC0gIlJjX1N0eWxlIjoKICAgLS0gICAgU2V0IGlmIHRoZSB3aWRnZXQncyBzdHlsZSBpcyBlaXRo
ZXIgdGhlIGRlZmF1bHQgc3R5bGUsIG9yIGluIGEKICAgLS0gICAgY3VzdG9taXphdGlvbiBmaWxl
LiBUaGlzIGlzIHVuc2V0IGlmIHRoZSBzdHlsZSBoYXMgYmVlbiBtb2RpZmllZCBieQogICAtLSAg
ICB0aGUgdXNlci4KICAgLS0KICAgLS0gIC0gIkNvbXBvc2l0ZV9DaGlsZCI6CiAgIC0tICAgID8/
PwogICAtLQogICAtLSAgLSAiTm9fUmVwYXJlbnQiOgogICAtLSAgICBUaGlzIGZsYWdzIGlzIG5l
dmVyIHVzZWQgaW4gZ3RrKy4KICAgLS0KICAgLS0gIC0gIkFwcF9QYWludGFibGUiOgogICAtLSAg
ICBGb3Igc29tZSBjb250YWluZXJzIChpbmNsdWRpbmcgR3RrX1dpbmRvdyBhbmQgR3RrX0xheW91
dCksIHRoaXMgaXMKICAgLS0gICAgdW5zZXQgd2hlbiB0aGUgY29udGFpbmVyIGl0c2VsZiBoYXMg
c29tZSBzcGVjaWFsIGRyYXdpbmcgcm91dGluZXMuCiAgIC0tCiAgIC0tICAtICJSZWNlaXZlc19E
ZWZhdWx0IjoKICAgLS0gICAgU2V0IHdoZW4gdGhlIHdpZGdldCByZWNlaXZlcyB0aGUgZGVmYXVs
dCBhdCB0aGUgdGltZSBpdCByZWNlaXZlcyB0aGUKICAgLS0gICAgZm9jdXMuIFRoaXMgaXMgaG93
IHRoZSBkZWZhdWx0IGJ1dHRvbiBpbiBhIGRpYWxvZyBpcyBhdXRvbWF0aWNhbGx5CiAgIC0tICAg
IGNoYW5nZWQgd2hlbiB5b3UgcHJlc3MgYW5vdGhlciBidXR0b24uCgogICBUb3BsZXZlbCAgICAg
ICAgIDogY29uc3RhbnQgOj0gMiAqKiA0OwogICBOb19XaW5kb3cgICAgICAgIDogY29uc3RhbnQg
Oj0gMiAqKiA1OwogICBSZWFsaXplZCAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiA2OwogICBN
YXBwZWQgICAgICAgICAgIDogY29uc3RhbnQgOj0gMiAqKiA3OwogICBWaXNpYmxlICAgICAgICAg
IDogY29uc3RhbnQgOj0gMiAqKiA4OwogICBTZW5zaXRpdmUgICAgICAgIDogY29uc3RhbnQgOj0g
MiAqKiA5OwogICBQYXJlbnRfU2Vuc2l0aXZlIDogY29uc3RhbnQgOj0gMiAqKiAxMDsKICAgQ2Fu
X0ZvY3VzICAgICAgICA6IGNvbnN0YW50IDo9IDIgKiogMTE7CiAgIEhhc19Gb2N1cyAgICAgICAg
OiBjb25zdGFudCA6PSAyICoqIDEyOwogICBDYW5fRGVmYXVsdCAgICAgIDogY29uc3RhbnQgOj0g
MiAqKiAxMzsKICAgSGFzX0RlZmF1bHQgICAgICA6IGNvbnN0YW50IDo9IDIgKiogMTQ7CiAgIEhh
c19HcmFiICAgICAgICAgOiBjb25zdGFudCA6PSAyICoqIDE1OwogICBSY19TdHlsZSAgICAgICAg
IDogY29uc3RhbnQgOj0gMiAqKiAxNjsKICAgQ29tcG9zaXRlX0NoaWxkICA6IGNvbnN0YW50IDo9
IDIgKiogMTc7CiAgIE5vX1JlcGFyZW50ICAgICAgOiBjb25zdGFudCA6PSAyICoqIDE4OwogICBB
cHBfUGFpbnRhYmxlICAgIDogY29uc3RhbnQgOj0gMiAqKiAxOTsKICAgUmVjZWl2ZXNfRGVmYXVs
dCA6IGNvbnN0YW50IDo9IDIgKiogMjA7CgogICBmdW5jdGlvbiBUb3BsZXZlbF9Jc19TZXQKICAg
ICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVh
bjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgVG9wbGV2ZWwgZmxhZyBpcyBzZXQuCgogICBmdW5j
dGlvbiBOb19XaW5kb3dfSXNfU2V0CiAgICAgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1Jl
Y29yZCdDbGFzcykgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBUZXN0IHdoZXRoZXIgdGhlIE5vX1dp
bmRvdyBmbGFnIGlzIHNldC4KCiAgIGZ1bmN0aW9uIFJlYWxpemVkX0lzX1NldAogICAgIChXaWRn
ZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpIHJldHVybiBCb29sZWFuOwogICAt
LSAgVGVzdCB3aGV0aGVyIHRoZSBSZWFsaXplZCBmbGFnIGlzIHNldC4KCiAgIGZ1bmN0aW9uIE1h
cHBlZF9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgTWFwcGVkIGZsYWcgaXMg
c2V0LgoKICAgZnVuY3Rpb24gVmlzaWJsZV9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0
a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhl
ciB0aGUgVmlzaWJsZSBmbGFnIGlzIHNldC4KCiAgIGZ1bmN0aW9uIERyYXdhYmxlX0lzX1NldAog
ICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpIHJldHVybiBCb29s
ZWFuOwogICAtLSAgVHJ1ZSBpZiB0aGUgd2lkZ2V0IGlzIGJvdGggdmlzaWJsZSBhbmQgbWFwcGVk
LgogICAtLSAgSW4gb3RoZXIgd29yZHMsIGlmIGl0IGRvZXMgYXBwZWFyIG9uIHRoZSBzY3JlZW4u
CgogICBmdW5jdGlvbiBJc19TZW5zaXRpdmUKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRn
ZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUg
d2lkZ2V0IGlzIFNlbnNpdGl2ZS4KCiAgIGZ1bmN0aW9uIENhbl9Gb2N1c19Jc19TZXQKICAgICAo
V2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsK
ICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgQ2FuX0ZvY3VzIGZsYWcgaXMgc2V0LgoKICAgZnVuY3Rp
b24gSGFzX0ZvY3VzX0lzX1NldAogICAgIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNv
cmQnQ2xhc3MpIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVzdCB3aGV0aGVyIHRoZSBIYXNfRm9j
dXMgZmxhZyBpcyBzZXQuCgogICBmdW5jdGlvbiBIYXNfRGVmYXVsdF9Jc19TZXQKICAgICAoV2lk
Z2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAg
LS0gIFRlc3Qgd2hldGhlciB0aGUgSGFzX0RlZmF1bHQgZmxhZyBpcyBzZXQuCgogICBmdW5jdGlv
biBIYXNfR3JhYl9Jc19TZXQKICAgICAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3Jk
J0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3Qgd2hldGhlciB0aGUgSGFzX0dyYWIg
ZmxhZyBpcyBzZXQuCgogICBmdW5jdGlvbiBSY19TdHlsZV9Jc19TZXQKICAgICAoV2lkZ2V0IDog
YWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRl
c3Qgd2hldGhlciB0aGUgUmNfU3R5bGUgZmxhZyBpcyBzZXQuCgogICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBEZWZpbml0aW9ucyBmb3IgbGlzdHMgb2Ygd2lk
Z2V0cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0g
IDxkb2NfaWdub3JlPgoKICAgZnVuY3Rpb24gQ29udmVydCAoVyA6IGluIEd0a19XaWRnZXQpIHJl
dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgZnVuY3Rpb24gQ29udmVydCAoVyA6IFN5c3RlbS5BZGRy
ZXNzKSByZXR1cm4gR3RrX1dpZGdldDsKICAgcGFja2FnZSBXaWRnZXRfTGlzdCBpcyBuZXcgR2xp
Yi5HbGlzdC5HZW5lcmljX0xpc3QgKEd0a19XaWRnZXQpOwogICBwYWNrYWdlIFdpZGdldF9TTGlz
dCBpcyBuZXcgR2xpYi5HU2xpc3QuR2VuZXJpY19TTGlzdCAoR3RrX1dpZGdldCk7CgogICAtLSAg
PC9kb2NfaWdub3JlPgoKICAgLS0tLS0tLS0tLS0tLQogICAtLSBTaWduYWxzIC0tCiAgIC0tLS0t
LS0tLS0tLS0KCiAgIC0tICA8c2lnbmFscz4KICAgLS0gIFRoZSBmb2xsb3dpbmcgbmV3IHNpZ25h
bHMgYXJlIGRlZmluZWQgZm9yIHRoaXMgd2lkZ2V0OgogICAtLQogICAtLSAgLSAic2hvdyIKICAg
LS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29y
ZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIEVtaXR0ZWQgd2hlbiBhIHdpZGdldCBpcyB0byBiZSBz
aG93biAoc2VlIGV4cGxhbmF0aW9uIGZvciB0aGUgU2hvdwogICAtLSAgICBzdWJwcm9nYW0pLiBU
aGlzIHNjaGVkdWxlcyB0aGUgd2lkZ2V0IHRvIGJlIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuLAog
ICAtLSAgICBhbmQgaWYgdGhpcyBpcyBhIHRvcGxldmVsIHdpZGdldCBpdCBhY3R1YWxseSBhcHBl
YXJzIG9uIHRoZSBzY3JlZW4KICAgLS0gICAgYW5kIGFsbCBpdHMgY2hpbGRyZW4gdGhhdCBoYXZl
IGJlZW4gc2hvd24uCiAgIC0tCiAgIC0tICAtICJoaWRlIgogICAtLSAgICBwcm9jZWR1cmUgSGFu
ZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAg
LS0gICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0IGlzIHRvIGJlIGhpZGRlbiAoc2VlIGV4cGxhbmF0
aW9uIGZvciB0aGUgSGlkZQogICAtLSAgICBzdWJwcm9ncmFtKS4gSGlkZXMgdGhlIHdpZGdldCBm
cm9tIHRoZSBzY3JlZW4sIGFuZCBpZiBpdHMgcGFyZW50IGlzCiAgIC0tICAgIHNob3duLCB0aGUg
d2lkZ2V0IHdpbGwgbm90IGFwcGVhciBvbiB0aGUgc2NyZWVuIGFnYWluLgogICAtLQogICAtLSAg
LSAibWFwIgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0
IGlzIG1hcHBlZCBvbiB0aGUgc2NyZWVuICh0aGUgZGVmYXVsdCBoYW5kbGVyCiAgIC0tICAgIHNp
bXBseSBlbWl0cyB0aGUgInNob3ciIHNpZ25hbCkuCiAgIC0tCiAgIC0tICAtICJ1bm1hcCIKICAg
LS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29y
ZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIEVtaXR0ZWQgd2hlbiBhIHdpZGdldCBuZWVkcyB0byBi
ZSB1bm1hcHBlZCBvbiB0aGUgc2NyZWVuICh0aGUgZGVmYXVsdAogICAtLSAgICBoYW5kbGVyIHNp
bXBseSBlbWl0cyB0aGUgImhpZGUiIHNpZ25hbCkuCiAgIC0tCiAgIC0tICAtICJyZWFsaXplIgog
ICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVj
b3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0IGlzIHJlYWxp
emVkLiBUaGUgZGVmYXVsdCBoYW5kbGVyIGNyZWF0ZXMgdGhlCiAgIC0tICAgIEdkayB3aW5kb3cg
YXNzb2NpYXRlZCB3aXRoIHRoZSB3aWRnZXQsIGFuZCBpdHMgYW5jZXN0b3JzLgogICAtLQogICAt
LSAgLSAidW5yZWFsaXplIgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAgRW1pdHRlZCB3aGVu
IGEgd2lkZ2V0IGlzIHVucmVhbGl6ZWQuIFRoZSBkZWZhdWx0IGhhbmRsZXIgZGVzdHJveXMgdGhl
CiAgIC0tICAgIEdkayB3aW5kb3dzIG9mIHRoZSB3aWRnZXQgYW5kIGFsbCBpdHMgY2hpbGRyZW4u
CiAgIC0tCiAgIC0tICAtICJkcmF3IgogICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0
IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAg
ICAgICAgQXJlYSAgIDogR2RrLlJlY3RhbmdsZS5HZGtfUmVjdGFuZ2xlKTsKICAgLS0KICAgLS0g
ICAgRW1pdHRlZCB3aGVuIGEgd2lkZ2V0IG5lZWRzIHRvIGJlIGRyYXduLiBUaGUgZGVmYXVsdCBo
YW5kbGVyIGVtaXRzCiAgIC0tICAgIHRoZSAiZXhwb3NlIiBldmVudC4KICAgLS0KICAgLS0gIC0g
ImRyYXdfZm9jdXMiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3Mg
R3RrX1dpZGdldF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBFbWl0dGVkIHdoZW4gYSB3
aWRnZXQgbmVlZHMgdG8gYmUgZHJhd24gYW5kIGl0IGhhcyB0aGUgZm9jdXMuIFNvbWUKICAgLS0g
ICAgd2lkZ2V0cyBtaWdodCB3YW50IHRvIHByb3ZpZGUgdmlzdWFsIGNsdWVzIHRoYXQgdGhleSBo
YXZlIHRoZSBmb2N1cywKICAgLS0gICAgbGlrZSBhIGJsYWNrIGJvcmRlci4gVGhpcyBpcyBuZXZl
ciBjYWxsZWQgaWYgdGhlIHdpZGdldCBjYW4gbm90IGhhdmUKICAgLS0gICAgdGhlIGZvY3VzIChp
ZSB0aGUgIkNhbl9Gb2N1cyIgZmxhZyBpcyB1bnNldCkuCiAgIC0tCiAgIC0tICAtICJkcmF3X2Rl
ZmF1bHQiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dp
ZGdldF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBFbWl0dGVkIHdoZW4gYSB3aWRnZXQg
bmVlZHMgdG8gYmUgZHJhd24gYW5kIGl0IGRvZXMgbm90IGhhdmUgdGhlCiAgIC0tICAgIGZvY3Vz
LiBUaGlzIGlzIG5ldmVyIGNhbGxlZCBpZiB0aGUgd2lkZ2V0IGNhbiBub3QgaGF2ZSB0aGUgZm9j
dXMKICAgLS0gICAgKGllIHRoZSAiQ2FuX0ZvY3VzIiBmbGFnIGlzIHVuc2V0KS4KICAgLS0KICAg
LS0gIC0gInNpemVfcmVxdWVzdCIKICAgLS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKFdpZGdldCAg
ICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAg
ICAgICAgICAgUmVxdWlzaXRpb24gOiBhY2Nlc3MgR3RrX1JlcXVpc2l0aW9uKTsKICAgLS0KICAg
LS0gICAgU2hvdWxkIHJldHVybiAoaW4gUmVxdWlzaXRpb24pIHRoZSBpZGVhbCBzaXplIHRoZSB3
aWRnZXQgd291bGQgbGlrZSB0bwogICAtLSAgICBoYXZlLiBJdCBpcyBub3Qgc3VyZSB0aGlzIGlz
IHRoZSBzaXplIHRoYXQgd2lsbCBiZSBhc3NpZ25lZCB0byBpdCwKICAgLS0gICAgc2luY2UgaXQg
ZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiBpdHMgcGFyZW50KS4KICAgLS0KICAgLS0gIC0gInNpemVf
YWxsb2NhdGUiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChXaWRnZXQgICAgIDogYWNjZXNz
IEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICAgQWxs
b2NhdGlvbiA6IEd0a19BbGxvY2F0aW9uKTsKICAgLS0KICAgLS0gICAgQSBzaXplIGFuZCBwb3Np
dGlvbiB3ZXJlIGFzc2lnbmVkIHRvIHRoZSB3aWRnZXQuIFRoaXMgaXMgY2FsbGVkIGV2ZXJ5CiAg
IC0tICAgIHRpbWUgdGhlIHNpemUgb2YgdGhlIHdpZGdldCBjaGFuZ2VzLgogICAtLSAgICBUaGUg
ZGVmYXVsdCBoYW5kbGVyIHRha2VzIGNhcmUgb2YgcmVzaXppbmcgYW5kIG1vdmluZyB0aGUgd2lk
Z2V0LgogICAtLQogICAtLSAgLSAic3RhdGVfY2hhbmdlZCIKICAgLS0gICAgcHJvY2VkdXJlIEhh
bmRsZXIgKFdpZGdldCAgICAgICAgIDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwog
ICAtLSAgICAgICAgICAgICAgICAgICAgICAgUHJldmlvdXNfU3RhdGUgOiBHdGsuRW51bXMuR3Rr
X1N0YXRlX1R5cGUpOwogICAtLQogICAtLSAgICBUaGUgc3RhdGUgb2YgdGhlIHdpZGdldCBoYXMg
Y2hhbmdlZC4KICAgLS0KICAgLS0gIC0gInBhcmVudF9zZXQiCiAgIC0tICAgIHByb2NlZHVyZSBI
YW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAg
ICAgICAgICAgICAgICAgICAgICBQcmV2aW91c19QYXJlbnQgOiBhY2Nlc3MgR3RrX1dpZGdldF9S
ZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBBIG5ldyBwYXJlbnQgaGFzIGJlZW4gc2V0IGZv
ciB0aGUgd2lkZ2V0LiBUaGUgcHJldmlvdXMgcGFyZW50IGlzCiAgIC0tICAgIGdpdmVuIGluIGFy
Z3VtZW50cyAoaWYgdGhlcmUgd2FzIG5vbmUsCiAgIC0tICAgIEdkay5Jc19DcmVhdGVkIChQcmV2
aW91c19QYXJlbnQpIHJldHVybnMgRmFsc2UpLgogICAtLQogICAtLSAgLSAic3R5bGVfc2V0Igog
ICAtLSAgICBwcm9jZWR1cmUgSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVj
b3JkJ0NsYXNzKTsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgIFByZXZpb3VzX1N0eWxlIDog
R3RrLlN0eWxlLkd0a19TdHlsZSk7CiAgIC0tCiAgIC0tICAgIFRoZSB3aWRnZXQncyBzdHlsZSBo
YXMgYmVlbiBjaGFuZ2VkICh0aGlzIGlzIG5vdCBjYWxsIHdoZW4gc29tZQogICAtLSAgICBzZXR0
aW5ncyBpbiB0aGUgc3R5bGUgYXJlIGNoYW5nZWQsIG9ubHkgd2hlbiB0aGUgc3R5bGUgaXRzZWxm
IGlzCiAgIC0tICAgIGNvbXBsZXRlbHkgY2hhbmdlZCB3aXRoIGEgY2FsbCB0byBTZXRfU3R5bGUg
b3IgU2V0X1JjX1N0eWxlKS4KICAgLS0KICAgLS0gIC0gImFkZF9hY2NlbGVyYXRvciIKICAgLS0K
ICAgLS0gID8/PwogICAtLQogICAtLSAgLSAicmVtb3ZlX2FjY2VsZXJhdG9yIgogICAtLQogICAt
LSAgPz8/CiAgIC0tCiAgIC0tICAtICJncmFiX2ZvY3VzIgogICAtLSAgICBwcm9jZWR1cmUgSGFu
ZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAg
LS0gICAgVGhlIHdpZGdldCBoYXMgZ290IHRoZSBmb2N1cywgaWUgd2lsbCBub3cgZ2V0IHRoZSBr
ZXlib2FyZCBldmVudHMKICAgLS0gICAgc2VudCB0byBhIHdpbmRvdy4gVGhpcyBpcyBvbmx5IGNh
bGxlZCBpZiB0aGUgIkNhbl9Gb2N1cyIgZmxhZyBpcwogICAtLSAgICBzZXQuIFRoZSAiSGFzX0Zv
Y3VzIiBmbGFnIG1pZ2h0IG5vdCBiZSBzZXQgd2hlbiB0aGlzIHNpZ25hbCBpcwogICAtLSAgICBl
bWl0dGVkLgogICAtLQogICAtLSAgLSAiZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIg
KFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAg
ICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudCkKICAgLS0gICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgU29tZSBldmVudCB3YXMg
c2VudCB0byB0aGUgd2lkZ2V0LiBUaGlzIGNvdmVycyBhbGwgdGhlIGNhc2VzCiAgIC0tICAgIGJl
bG93LCBhbmQgYWN0cyBhcyBhIGdlbmVyYWwgaGFuZGxlci4gVGhpcyBpcyBjYWxsZWQgaW4gYWRk
aXRpb24gdG8KICAgLS0gICAgdGhlIHJlbGV2YW50IHNwZWNpZmljIGhhbmRsZXIgYmVsb3cuCiAg
IC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBtaWdodCBiZSBw
YXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhlciBoYW5kbGVy
IG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJidXR0b25fcHJl
c3NfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtf
V2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDog
R2RrLkV2ZW50Lkdka19FdmVudF9CdXR0b24pCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIEEgYnV0dG9uIHdhcyBwcmVzc2VkIHdoaWxlIHRo
ZSBwb2ludGVyIHdhcyBpbnNpZGUgdGhlIHdpZGdldC4KICAgLS0gICAgVG8gZ2V0IHRoaXMgc2ln
bmFsLCBzb21lIHdpZGdldHMgYnkgaGF2ZSB0byB1c2UgdGhlIFNldF9FdmVudHMKICAgLS0gICAg
c3VicHJvZ3JhbSBmaXJzdCB0byBnZXQgdGhpcyBldmVudC4KICAgLS0gICAgSWYgdGhlIGhhbmRs
ZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAog
ICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1
cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImJ1dHRvbl9yZWxlYXNlX2V2ZW50IgogICAtLSAg
ICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xh
c3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZl
bnRfQnV0dG9uKQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAt
LQogICAtLSAgICBBIGJ1dHRvbiB3YXMgcmVsZWFzZWQgd2hpbGUgdGhlIHBvaW50ZXIgd2FzIGlu
c2lkZSB0aGUgd2lkZ2V0LgogICAtLSAgICBOb3RlIHRoYXQgaW4gc29tZSBjYXNlcyAoR3RrX0J1
dHRvbnMgZm9yIGluc3RhbmNlKSwgYW5vdGhlciAiY2xpY2tlZCIKICAgLS0gICAgc2lnbmFsIGNv
dWxkIGJlIGVtaXR0ZWQpLiBUaGlzICJidXR0b25fcmVsZWFzZV9ldmVudCIgc2hvdWxkIG1haW5s
eQogICAtLSAgICBiZSB1c2VkIGZvciB3aWRnZXRzIHRoYXQgZG9uJ3QgYWxyZWFkeSBoYXZlIHNw
ZWNpZmljIHNpZ25hbHMgdG8gY292ZXIKICAgLS0gICAgdGhhdCBjYXNlIChHdGtfRHJhd2luZ19B
cmVhIGZvciBpbnN0YW5jZSkuCiAgIC0tCiAgIC0tICAgIFRvIGdldCB0aGlzIHNpZ25hbCwgc29t
ZSB3aWRnZXRzIG1heSBoYXZlIHRvIHVzZSB0aGUgU2V0X0V2ZW50cwogICAtLSAgICBzdWJwcm9n
cmFtIGZpcnN0IHRvIGdldCB0aGlzIGV2ZW50LgogICAtLQogICAtLSAgICBJZiB0aGUgaGFuZGxl
ciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAg
IC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVy
bmVkIFRydWUpLgogICAtLQogICAtLSAgLSAibW90aW9uX25vdGlmeV9ldmVudCIKICAgLS0gICAg
ZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNz
OwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50
X01vdGlvbikKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0K
ICAgLS0gICAgVGhlIHBvaW50ZXIgaGFzIG1vdmVkIHdoaWxlIHJlbWFpbmluZyBpbnNpZGUgdGhl
IHdpZGdldC4KICAgLS0gICAgVGhlIFNldF9FdmVudHMgc3VicHJvZ3JhbSBoYXMgdG8gYmUgY2Fs
bGVkIGZpcnN0IHRvIGdldCB0aGlzIGV2ZW50LgogICAtLQogICAtLSAgICBJZiB0aGUgaGFuZGxl
ciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAg
IC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVy
bmVkIFRydWUpLgogICAtLQogICAtLSAgLSAiZGVsZXRlX2V2ZW50IgogICAtLSAgICBmdW5jdGlv
biBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0t
ICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnQpCiAgIC0t
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIFRoZSB1
c2VyIGhhcyBjbGlja2VkIG9uIHRoZSAiY2xvc2UiIGJ1dHRvbiBpbiB0aGUgd2luZG93J3MgZnJh
bWUKICAgLS0gICAgKHRoZSBidXR0b24gdGhhdCBpcyBhdXRvbWF0aWNhbGx5IHNldCBieSB0aGUg
d2luZG93IG1hbmFnZXIpLiBJZiB0aGUKICAgLS0gICAgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0
aGUgd2lkZ2V0IHdpbGwgYmUgZGVzdHJveWVkIChhbmQgdGhlIHdpbmRvdwogICAtLSAgICBjbG9z
ZWQpLCBidXQgaWYgdGhlIGhhbmRsZXIgcmV0dXJucyBUcnVlLCBub3RoaW5nIHdpbGwgYmUgZG9u
ZS4KICAgLS0gICAgVGhpcyBpcyBhIGdvb2Qgd2F5IHRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBj
bG9zaW5nIHlvdXIgYXBwbGljYXRpb24ncwogICAtLSAgICB3aW5kb3cgaWYgdGhlcmUgc2hvdWxk
IGJlIHNvbWUgY2xlYW4gdXBzIGZpcnN0IChsaWtlIHNhdmluZyB0aGUKICAgLS0gICAgZG9jdW1l
bnQpLgogICAtLQogICAtLSAgLSAiZGVzdHJveV9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFu
ZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAg
ICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50KQogICAtLSAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICBUaGlzIHNpZ25h
bCBpcyBhcHBhcmVudGx5IG5ldmVyIGVtaXR0ZWQgYnkgR3RrKy4gWW91IG1pZ2h0IHdhbnQgdG8K
ICAgLS0gICAgdXNlICJkZXN0cm95IiBpbnN0ZWFkLCB3aGljaCBpcyBkb2N1bWVudGVkIGluIEd0
ay5PYmplY3QuCiAgIC0tCiAgIC0tICAtICJleHBvc2VfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9u
IEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0g
ICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudF9FeHBvc2Up
CiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAg
IFRoZSB3aWRnZXQgbmVlZHMgdG8gYmUgcGFydGx5IHJlZHJhd24uIFRoZSBleGFjdCBhcmVhIHRv
IHJlZHJhdyBpcwogICAtLSAgICBmb3VuZCBpbiBFdmVudC4gRm9yIHNvbWUgd2lkZ2V0cywgeW91
IHNob3VsZCByYXRoZXIgY29ubmVjdCB0byB0aGUKICAgLS0gICAgImRyYXciIHNpZ25hbC4gSG93
ZXZlciwgZm9yIGluc3RhbmNlIGZvciBHdGtfRHJhd2luZ19BcmVhIHdpZGdldHMsCiAgIC0tICAg
IHlvdSBoYXZlIHRvIHVzZSB0aGlzLCBhZnRlciBzZXR0aW5nIHRoZSBjb3JyZWN0IGV2ZW50IG1h
c2sgd2l0aAogICAtLSAgICBTZXRfRXZlbnRzLgogICAtLSAgICBJZiB0aGUgaGFuZGxlciByZXR1
cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAgIC0tICAg
IG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVybmVkIFRy
dWUpLgogICAtLQogICAtLSAgLSAia2V5X3ByZXNzX2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBI
YW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAg
ICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfS2V5KQogICAt
LSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICBBIGtl
eSBoYXMgYmVlbiBwcmVzc2VkIHdoaWxlIFdpZGdldCBoYWQgdGhlIGZvY3VzLiBOb3RlIHRoYXQg
c29tZQogICAtLSAgICB3aWRnZXRzIGxpa2UgR3RrX0VkaXRhYmxlIHByb3ZpZGUgc29tZSBoaWdo
ZXItbGV2ZWwgc2lnbmFscyB0byBoYW5kbGUKICAgLS0gICAgdGhpcy4KICAgLS0gICAgSWYgdGhl
IGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhlIHBh
cmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0IGhh
cyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImtleV9yZWxlYXNlX2V2ZW50IgogICAt
LSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtf
RXZlbnRfS2V5KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAt
LQogICAtLSAgICBBIGtleSBoYXMgYmVlbiByZWxlYXNlZCB3aGlsZSBXaWRnZXQgaGFkIHRoZSBm
b2N1cy4KICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1p
Z2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVy
IGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImVu
dGVyX25vdGlmeV9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNj
ZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBF
dmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2ZW50X0Nyb3NzaW5nKQogICAtLSAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICBUaGUgcG9pbnRlciBoYXMganVz
dCBlbnRlcmVkIHRoZSB3aWRnZXQuIElmIHRoZSAiQ2FuX0ZvY3VzIiBmbGFnIGlzCiAgIC0tICAg
IHNldCwgV2lkZ2V0IHdpbGwgZ2FpbiB0aGUgZm9jdXMsIGFuZCB0aGUgd2lkZ2V0IG1pZ2h0IGJl
IGRyYXduCiAgIC0tICAgIGRpZmZlcmVudGx5LgogICAtLSAgICBJZiB0aGUgaGFuZGxlciByZXR1
cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFzcyB0byB0aGUgcGFyZW50CiAgIC0tICAg
IG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBvZiB3aWRnZXQgaGFzIHJldHVybmVkIFRy
dWUpLgogICAtLQogICAtLSAgLSAibGVhdmVfbm90aWZ5X2V2ZW50IgogICAtLSAgICBmdW5jdGlv
biBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0t
ICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfQ3Jvc3Np
bmcpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0t
ICAgIFRoZSBwb2ludGVyIGhhcyBqdXN0IGxlYXZlZCB0aGUgd2lkZ2V0LiBJZiB0aGUgIkNhbl9G
b2N1cyIgZmxhZyBpcwogICAtLSAgICBzZXQsIFdpZGdldCB3aWxsIGdhaW4gdGhlIGZvY3VzLCBh
bmQgdGhlIHdpZGdldCBtaWdodCBiZSBkcmF3bgogICAtLSAgICBkaWZmZXJlbnRseS4KICAgLS0g
ICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3Mg
dG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Yg
d2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImNvbmZpZ3VyZV9ldmVu
dCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRf
UmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZl
bnQuR2RrX0V2ZW50X0NvbmZpZ3VyZSkKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Qm9vbGVhbjsKICAgLS0KICAgLS0gICAgU29tZSBjb25maWd1cmF0aW9uIG9mIHRoZSB3aW5kb3cg
aGFzIGNoYW5nZWQgKGl0IGhhcyBiZWVuCiAgIC0tICAgIG1vdmVkIG9yIHJlc2l6ZWQpLgogICAt
LSAgICBJZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQgYmUgcGFz
cyB0byB0aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFuZGxlciBv
ZiB3aWRnZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAiZm9jdXNfaW5fZXZl
bnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0
X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2
ZW50Lkdka19FdmVudF9Gb2N1cykKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9v
bGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHdpZGdldCBoYXMganVzdCBnYWluZWQgdGhlIGZvY3Vz
LgogICAtLSAgICBJZiB0aGUgaGFuZGxlciByZXR1cm5zIEZhbHNlLCB0aGUgZXZlbnQgbWlnaHQg
YmUgcGFzcyB0byB0aGUgcGFyZW50CiAgIC0tICAgIG9mIHdpZGdldCAoaWYgbm8gb3RoZXIgaGFu
ZGxlciBvZiB3aWRnZXQgaGFzIHJldHVybmVkIFRydWUpLgogICAtLQogICAtLSAgLSAiZm9jdXNf
b3V0X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3Rr
X1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6
IEdkay5FdmVudC5HZGtfRXZlbnRfRm9jdXMpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEJvb2xlYW47CiAgIC0tCiAgIC0tICAgIFRoZSB3aWRnZXQgaGFzIGp1c3QgbG9zdCB0aGUg
Zm9jdXMuCiAgIC0tICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBt
aWdodCBiZSBwYXNzIHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhl
ciBoYW5kbGVyIG9mIHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJt
YXBfZXZlbnQiCiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtf
V2lkZ2V0X1JlY29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDog
R2RrLkV2ZW50Lkdka19FdmVudCkKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9v
bGVhbjsKICAgLS0KICAgLS0gICAgVGhlIHdpZGdldCBoYXMganVzdCBiZWVuIG1hcHBlZC4gVGhp
cyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgIm1hcCIKICAgLS0gICAgc2lnbmFsLCB3aGljaCBpcyBj
YWxsZWQgKmJlZm9yZSogdGhlIHdpZGdldCBpcyBhY3R1YWxseSBtYXBwZWQuCiAgIC0tICAgIElm
IHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBtaWdodCBiZSBwYXNzIHRvIHRo
ZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhlciBoYW5kbGVyIG9mIHdpZGdl
dCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJ1bm1hcF9ldmVudCIKICAgLS0g
ICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0Ns
YXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2
ZW50KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAt
LSAgICBUaGUgd2lkZ2V0IGhhcyBqdXN0IGJlZW4gdW5tYXBwZWQuIFRoaXMgaXMgZGlmZmVyZW50
IGZyb20gdGhlICJ1bm1hcCIKICAgLS0gICAgc2lnbmFsLCB3aGljaCBpcyBjYWxsZWQgKmJlZm9y
ZSogdGhlIHdpZGdldCBpcyBhY3R1YWxseSB1bm1hcHBlZC4KICAgLS0gICAgSWYgdGhlIGhhbmRs
ZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhlIHBhcmVudAog
ICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1
cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gInByb3BlcnR5X25vdGlmeV9ldmVudCIKICAgLS0g
ICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVjb3JkJ0Ns
YXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQuR2RrX0V2
ZW50X1Byb3BlcnR5KQogICAtLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwog
ICAtLQogICAtLSAgICA/Pz8KICAgLS0KICAgLS0gIC0gInNlbGVjdGlvbl9jbGVhcl9ldmVudCIK
ICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19XaWRnZXRfUmVj
b3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBHZGsuRXZlbnQu
R2RrX0V2ZW50X1NlbGVjdGlvbikKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9v
bGVhbjsKICAgLS0KICAgLS0gICAgPz8/CiAgIC0tCiAgIC0tICAtICJzZWxlY3Rpb25fcmVxdWVz
dF9ldmVudCIKICAgLS0gICAgZnVuY3Rpb24gSGFuZGxlciAoV2lkZ2V0IDogYWNjZXNzIEd0a19X
aWRnZXRfUmVjb3JkJ0NsYXNzOwogICAtLSAgICAgICAgICAgICAgICAgICAgICBFdmVudCAgOiBH
ZGsuRXZlbnQuR2RrX0V2ZW50X1NlbGVjdGlvbikKICAgLS0gICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gQm9vbGVhbjsKICAgLS0KICAgLS0gICAgPz8/CiAgIC0tCiAgIC0tICAtICJzZWxlY3Rp
b25fbm90aWZ5X2V2ZW50IgogICAtLSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nl
c3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2
ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfU2VsZWN0aW9uKQogICAtLSAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLQogICAtLSAgICA/Pz8KICAgLS0KICAgLS0gIC0g
InNlbGVjdGlvbl9yZWNlaXZlZCIKICAgLS0gICAgUmVsYXRlZCB0byB0aGUgc2VsZWN0aW9uIG1l
Y2hhbmlzbSwgc2VlIEd0ay5TZWxlY3Rpb24KICAgLS0KICAgLS0gIC0gInNlbGVjdGlvbl9nZXQi
CiAgIC0tICAgIFJlbGF0ZWQgdG8gdGhlIHNlbGVjdGlvbiBtZWNoYW5pc20sIHNlZSBHdGsuU2Vs
ZWN0aW9uCiAgIC0tCiAgIC0tICAtICJwcm94aW1pdHlfaW5fZXZlbnQiCiAgIC0tICAgIGZ1bmN0
aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1JlY29yZCdDbGFzczsKICAg
LS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50Lkdka19FdmVudF9Qcm94
aW1pdHkpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAg
IC0tICAgIFVzZWQgZm9yIHNwZWNpYWwgaW5wdXQgZGV2aWNlcy4gU2VlIHRoZSBkZXNjcmlwdGlv
biBvZgogICAtLSAgICBHZGsuRXZlbnQuR2RrX0V2ZW50X1Byb3hpbWl0eS4KICAgLS0gICAgSWYg
dGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0IGJlIHBhc3MgdG8gdGhl
IHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhhbmRsZXIgb2Ygd2lkZ2V0
IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gInByb3hpbWl0eV9vdXRfZXZlbnQi
CiAgIC0tICAgIGZ1bmN0aW9uIEhhbmRsZXIgKFdpZGdldCA6IGFjY2VzcyBHdGtfV2lkZ2V0X1Jl
Y29yZCdDbGFzczsKICAgLS0gICAgICAgICAgICAgICAgICAgICAgRXZlbnQgIDogR2RrLkV2ZW50
Lkdka19FdmVudF9Qcm94aW1pdHkpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJv
b2xlYW47CiAgIC0tCiAgIC0tICAgIFVzZWQgZm9yIHNwZWNpYWwgaW5wdXQgZGV2aWNlcy4gU2Vl
IHRoZSBkZXNjcmlwdGlvbiBvZgogICAtLSAgICBHZGsuRXZlbnQuR2RrX0V2ZW50X1Byb3hpbWl0
eS4KICAgLS0gICAgSWYgdGhlIGhhbmRsZXIgcmV0dXJucyBGYWxzZSwgdGhlIGV2ZW50IG1pZ2h0
IGJlIHBhc3MgdG8gdGhlIHBhcmVudAogICAtLSAgICBvZiB3aWRnZXQgKGlmIG5vIG90aGVyIGhh
bmRsZXIgb2Ygd2lkZ2V0IGhhcyByZXR1cm5lZCBUcnVlKS4KICAgLS0KICAgLS0gIC0gImRyYWdf
bGVhdmUiCiAgIC0tICAgIEV2ZW50IHJlbGF0ZWQgdG8gZHJhZy1hbmQtZHJvcCBzdXBwb3J0LiBT
ZWUgdGhlIEd0ay5EbmQgZG9jdW1lbnRhdGlvbi4KICAgLS0KICAgLS0gIC0gImRyYWdfYmVnaW4i
CiAgIC0tICAgIEV2ZW50IHJlbGF0ZWQgdG8gZHJhZy1hbmQtZHJvcCBzdXBwb3J0LiBTZWUgdGhl
IEd0ay5EbmQgZG9jdW1lbnRhdGlvbi4KICAgLS0KICAgLS0gIC0gImRyYWdfZW5kIgogICAtLSAg
ICBFdmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5k
IGRvY3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfZGVsZXRlIgogICAtLSAg
ICBFdmVudCByZWxhdGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5k
IGRvY3VtZW50YXRpb24uCiAgIC0tCiAgIC0tICAtICJkcmFnX21vdGlvbiIKICAgLS0gICAgRXZl
bnQgcmVsYXRlZCB0byBkcmFnLWFuZC1kcm9wIHN1cHBvcnQuIFNlZSB0aGUgR3RrLkRuZCBkb2N1
bWVudGF0aW9uLgogICAtLQogICAtLSAgLSAiZHJhZ19kcm9wIgogICAtLSAgICBFdmVudCByZWxh
dGVkIHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5kIGRvY3VtZW50YXRp
b24uCiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfZ2V0IgogICAtLSAgICBFdmVudCByZWxhdGVk
IHRvIGRyYWctYW5kLWRyb3Agc3VwcG9ydC4gU2VlIHRoZSBHdGsuRG5kIGRvY3VtZW50YXRpb24u
CiAgIC0tCiAgIC0tICAtICJkcmFnX2RhdGFfcmVjZWl2ZWQiCiAgIC0tICAgIEV2ZW50IHJlbGF0
ZWQgdG8gZHJhZy1hbmQtZHJvcCBzdXBwb3J0LiBTZWUgdGhlIEd0ay5EbmQgZG9jdW1lbnRhdGlv
bi4KICAgLS0KICAgLS0gIC0gInZpc2liaWxpdHlfbm90aWZ5X2V2ZW50IgogICAtLSAgICBmdW5j
dGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQnQ2xhc3M7CiAg
IC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtfRXZlbnRfVmlz
aWJpbGl0eSkKICAgLS0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbjsKICAgLS0K
ICAgLS0gICAgVGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHdpZGdldCBoYXMgY2hhbmdlZCAo
cGFydGlhbGx5IHZpc2libGUsCiAgIC0tICAgIGZ1bGx5IHZpc2libGUsIC4uLikuIFlvdSBtaWdo
dCB3YW50IHRvIHVzZSB0aGUgImV4cG9zZSIgc2lnbmFsCiAgIC0tICAgIGluc3RlYWQuCiAgIC0t
ICAgIElmIHRoZSBoYW5kbGVyIHJldHVybnMgRmFsc2UsIHRoZSBldmVudCBtaWdodCBiZSBwYXNz
IHRvIHRoZSBwYXJlbnQKICAgLS0gICAgb2Ygd2lkZ2V0IChpZiBubyBvdGhlciBoYW5kbGVyIG9m
IHdpZGdldCBoYXMgcmV0dXJuZWQgVHJ1ZSkuCiAgIC0tCiAgIC0tICAtICJjbGllbnRfZXZlbnQi
CiAgIC0tCiAgIC0tICAgID8/PwogICAtLQogICAtLSAgLSAibm9fZXhwb3NlX2V2ZW50IgogICAt
LSAgICBmdW5jdGlvbiBIYW5kbGVyIChXaWRnZXQgOiBhY2Nlc3MgR3RrX1dpZGdldF9SZWNvcmQn
Q2xhc3M7CiAgIC0tICAgICAgICAgICAgICAgICAgICAgIEV2ZW50ICA6IEdkay5FdmVudC5HZGtf
RXZlbnQpCiAgIC0tICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW47CiAgIC0tCiAg
IC0tICAgID8/PwogICAtLQogICAtLSAgPC9zaWduYWxzPgpwcml2YXRlCgogICB0eXBlIEd0a19X
aWRnZXRfUmVjb3JkIGlzIG5ldyBPYmplY3QuR3RrX09iamVjdF9SZWNvcmQgd2l0aCBudWxsIHJl
Y29yZDsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIFB1c2hfU3R5bGUsICJndGtfd2lkZ2V0X3B1c2hf
c3R5bGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUG9wX1N0eWxlLCAiZ3RrX3dpZGdldF9wb3Bf
c3R5bGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0RlZmF1bHRfU3R5bGUsICJndGtfd2lk
Z2V0X3NldF9kZWZhdWx0X3N0eWxlIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9EZWZhdWx0
X1N0eWxlLCAiZ3RrX3dpZGdldF9nZXRfZGVmYXVsdF9zdHlsZSIpOwogICBwcmFnbWEgSW1wb3J0
IChDLCBQb3BfQ29sb3JtYXAsICJndGtfd2lkZ2V0X3BvcF9jb2xvcm1hcCIpOwogICBwcmFnbWEg
SW1wb3J0IChDLCBQb3BfVmlzdWFsLCAiZ3RrX3dpZGdldF9wb3BfdmlzdWFsIik7CiAgIHByYWdt
YSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX3dpZGdldF9nZXRfdHlwZSIpOwogICBwcmFnbWEg
SW1wb3J0IChDLCBHZXRfRGVmYXVsdF9Db2xvcm1hcCwgImd0a193aWRnZXRfZ2V0X2RlZmF1bHRf
Y29sb3JtYXAiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0RlZmF1bHRfVmlzdWFsLCAiZ3Rr
X3dpZGdldF9nZXRfZGVmYXVsdF92aXN1YWwiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUHVzaF9D
b2xvcm1hcCwgImd0a193aWRnZXRfcHVzaF9jb2xvcm1hcCIpOwogICBwcmFnbWEgSW1wb3J0IChD
LCBQdXNoX1Zpc3VhbCwgImd0a193aWRnZXRfcHVzaF92aXN1YWwiKTsKICAgcHJhZ21hIEltcG9y
dCAoQywgU2V0X0RlZmF1bHRfQ29sb3JtYXAsICJndGtfd2lkZ2V0X3NldF9kZWZhdWx0X2NvbG9y
bWFwIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9EZWZhdWx0X1Zpc3VhbCwgImd0a193aWRn
ZXRfc2V0X2RlZmF1bHRfdmlzdWFsIik7CiAgIHByYWdtYSBJbmxpbmUgKFRvcGxldmVsX0lzX1Nl
dCk7CiAgIHByYWdtYSBJbmxpbmUgKE5vX1dpbmRvd19Jc19TZXQpOwogICBwcmFnbWEgSW5saW5l
IChSZWFsaXplZF9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChNYXBwZWRfSXNfU2V0KTsKICAg
cHJhZ21hIElubGluZSAoVmlzaWJsZV9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChEcmF3YWJs
ZV9Jc19TZXQpOwogICBwcmFnbWEgSW5saW5lIChJc19TZW5zaXRpdmUpOwogICBwcmFnbWEgSW5s
aW5lIChDYW5fRm9jdXNfSXNfU2V0KTsKICAgcHJhZ21hIElubGluZSAoSGFzX0ZvY3VzX0lzX1Nl
dCk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19EZWZhdWx0X0lzX1NldCk7CiAgIHByYWdtYSBJbmxp
bmUgKEhhc19HcmFiX0lzX1NldCk7CiAgIHByYWdtYSBJbmxpbmUgKFJjX1N0eWxlX0lzX1NldCk7
CmVuZCBHdGsuV2lkZ2V0OwoKLS0gIEZ1bmN0aW9ucyB0aGF0IGhhdmUgbm8gQWRhIGVxdWl2YWxl
bnQ6Ci0tICAtIGd0a193aWRnZXRfbmV3Ci0tICAtIGd0a193aWRnZXRfZ2V0Ci0tICAtIGd0a193
aWRnZXRfZ2V0dgotLSAgLSBndGtfd2lkZ2V0X3NldAotLSAgLSBndGtfd2lkZ2V0X3NldHYKLS0g
IC0gZ3RrX3dpZGdldF9nZXRfcGFyZW50X3dpbmRvdyAgPD0gbWFpbmx5IGludGVybmFsCi0tICAt
IGd0a193aWRnZXRfaGlkZV9vbl9kZWxldGUgICAgIDw9IHVzZWQgYXMgY2FsbGJhY2sKLS0gIC0g
Z3RrX3dpZGdldF9zZXRfY29tcG9zaXRlX25hbWUKLS0gIC0gZ3RrX3dpZGdldF9nZXRfY29tcG9z
aXRlX25hbWUKLS0gIC0gZ3RrX3dpZGdldF9wdXNoX2NvbXBvc2l0ZV9jaGlsZAotLSAgLSBndGtf
d2lkZ2V0X3BvcF9jb21wb3NpdGVfY2hpbGQKLS0gIC0gZ3RrX3dpZGdldF9wYXRoCi0tICAtIGd0
a193aWRnZXRfY2xhc3NfcGF0aAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBB
ZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0yMDAwICAg
ICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJv
YmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQot
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAt
LQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAg
ICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt
IFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBh
IHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBm
cm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZp
bGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5v
dCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJl
IGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBl
eGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdo
eSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBH
TlUgUHVibGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlv
bj4KLS0KLS0gIFRoaXMgcGFja2FnZSBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdG8gdGhlIGNvbG9y
IGhhbmRsaW5nIGZhY2lsaXRpZXMgaW4KLS0gIGd0aysuIEl0IGlzIGFibGUgdG8gaGFuZGxlIGFu
eSBraW5kIG9mIHZpc3VhbCAobW9ub2Nocm9tZSwgZ3JleXNjYWxlLAotLSAgY29sb3Igd2l0aCBk
aWZmZXJlbnQgZGVwdGhzLCAuLi4pLCBidXQgcHJvdmlkZXMgYSBjb21tb24gYW5kIGVhc3kKLS0g
IGludGVyZmFjZSBmb3IgYWxsIG9mIHRoZW0uCi0tICBTb21lIG9mIHRoZXNlIGZ1bmN0aW9ucyBl
eHBlY3QgYSBDb2xvcm1hcC4gVGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4KLS0gIGdldCBzdWNo
IGEgY29sb3JtYXAsIGVpdGhlciBhIHN5c3RlbSBkZWZhdWx0IGNvbG9ybWFwIG9yIGEgcGVyLXdp
ZGdldAotLSAgY29sb3JtYXAuIEl0IGlzIHJlY29tbWVuZGVkLCB1bmxlc3MgeW91IGFyZSB3cml0
aW5nIHlvdXIgb3duIG5ldyB3aWRnZXQsCi0tICB0byBhbHdheXMgdXNlIHRoZSBzeXN0ZW0gZGVm
YXVsdCBDb2xvcm1hcC4gQWxsIHRoZSBmdW5jdGlvbnMgdG8gZ2V0Ci0tICB0aGVzZSBjb2xvcm1h
cHMgYXJlIGZvdW5kIGluIEd0ay5XaWRnZXQuCi0tCi0tICBHZXR0aW5nIHRoZSBSZWQvR3JlZW4v
Qmx1ZSBjb21wb25lbnRzIGNhbiBiZSBkb25lIHRocm91Z2ggUGFyc2UsIGFuZCBpcwotLSAgYWN0
dWFsbHkgcmVjb21tZW5kZWQsIHNpbmNlIHRoZSBleGFjdCBjb2xvciBnZW5lcmFsbHkgZGVwZW5k
cyBvbiB0aGUKLS0gIHZpc3VhbCB5b3VyIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgb24uCi0tCi0t
ICA8L2Rlc2NyaXB0aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBH
bGliOyB1c2UgR2xpYjsKd2l0aCBHZGsuVmlzdWFsOwoKcGFja2FnZSBHZGsuQ29sb3IgaXMKCiAg
IHR5cGUgR2RrX0NvbG9yIGlzIHByaXZhdGU7CiAgIC0tICBBIGNvbG9yIHRvIGJlIGRpc3BsYXll
ZCBvbiB0aGUgc2NyZWVuLgogICAtLSAgQ3VycmVudGx5LCBHdGtBZGEgb25seSBzdXBwb3J0cyB0
aGUgUkdCIHN0YW5kYXJkLCBpZSBlYWNoIGNvbG9yIGlzCiAgIC0tICBzZXQgYnkgaXRzIHJlZCwg
Z3JlZW4gYW5kIGJsdWUgY29tcG9uZW50cy4KICAgLS0gIEFuIGV4dHJhIGZpZWxkIChQaXhlbCkg
aXMgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2xvciwKICAgLS0gIHdoaWNo
IGlzIHNldCBvbmNlIHRoZSBjb2xvciBoYXMgYmVlbiBhbGxvY2F0ZWQuCgogICB0eXBlIEdka19D
b2xvcl9BcnJheSBpcyBhcnJheSAoTmF0dXJhbCByYW5nZSA8Pikgb2YgR2RrX0NvbG9yOwogICAt
LSAgQW4gYXJyYXkgb2YgY29sb3JzLgoKICAgTnVsbF9Db2xvciA6IGNvbnN0YW50IEdka19Db2xv
cjsKICAgLS0gIE5vIGNvbG9yLiBGb3IgbW9zdCBmdW5jdGlvbnMsIHRoaXMgd2lsbCBzZWxlY3Qg
dGhlIGRlZmF1bHQgY29sb3IgaW4gdGhlCiAgIC0tICBjb250ZXh0LCBhbHRob3VnaCB0aGlzIGV4
YWN0IHNwZWNpZmljYXRpb24gZGVwZW5kcyBvbiB0aGUgZnVuY3Rpb24geW91CiAgIC0tICB3YW50
IHRvIHVzZS4KCiAgIHR5cGUgR2RrX0NvbG9ybWFwIGlzIG5ldyBDX1Byb3h5OwogICAtLSAgVGhl
IHNldCBvZiBjb2xvcnMgdGhlIGNhbiBiZSBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbi4KICAgLS0g
IFdoZW4gdGhlIHNjcmVlbiBpcyBub3QgYSB0cnVlLWNvbG9yIHNjcmVlbiAoaWUgdGhlcmUgaXMg
b25seSBhIGxpbWl0ZWQKICAgLS0gIG51bWJlciBvZiBwb3NzaWJsZSBjb2xvcnMsIGxpa2UgMjU2
KSwgdGhlIGNvbG9ycyBhcmUgaW4gZmFjdCBpbmRleGVzCiAgIC0tICBpbnRvIGEgY29sb3JtYXAs
IHdoaWNoIGdpdmVzIHRoZSBjb21wb25lbnRzIG9mIHRoZSBjb2xvci4KICAgLS0gIFRoaXMgaXMg
dGhlIHNhbWUgY29uY2VwdCBhcyBhIHBhbGV0dGUuCgogICBOdWxsX0NvbG9ybWFwIDogY29uc3Rh
bnQgR2RrX0NvbG9ybWFwOwoKICAgV3JvbmdfQ29sb3IgOiBleGNlcHRpb247CiAgIC0tICBFeGNl
cHRpb24gcmFpc2VkIHdoZW4gc29tZSBmdW5jdGlvbnMgYmVsb3cgY291bGQgbm90IGZpbmQgb3Ig
YWxsb2NhdGUKICAgLS0gIGEgY29sb3Igb24gdGhlIHVzZXIncyBzeXN0ZW0uCgogICAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ3JlYXRpbmcgYW5kIERlc3Ryb3lp
bmcgY29sb3JzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg
ZnVuY3Rpb24gUGFyc2UgKFNwZWMgOiBpbiBTdHJpbmcpIHJldHVybiBHZGtfQ29sb3I7CiAgIC0t
ICBQYXJzZSB0aGUgc3RyaW5nIFNwZWMsIGFuZCBnZXQgaXRzIFJlZC9HcmVlbi9CbHVlIGNvbXBv
bmVudHMuCiAgIC0tICBUaGUgY29sb3IgaXMgbm90IGFsbG9jYXRlZCwgYW5kIHlvdSBuZWVkIHRv
IGNhbGwgQWxsb2NfQ29sb3IuCiAgIC0tICBJZiB0aGUgc3RyaW5nIGNvdWxkIG5vdCBiZSBwYXJz
ZWQgdG8gYW4gZXhpc3RpbmcgY29sb3IsIFdyb25nX0NvbG9yIGlzCiAgIC0tICByYWlzZWQuCiAg
IC0tICBUaGUgc3RyaW5nIGNhbiBiZSBvbmUgb2YgOgogICAtLQogICAtLSAgLSAiUkJHOkZGL0ZG
L0ZGIiB3aGVyZSB0aGUgIkZGIiBzdWJzdHJpbmdzIGFyZSByZXNwZWN0aXZlbHkgdGhlIHZhbHVl
CiAgIC0tICAgIG9mIHRoZSByZWQsIGdyZWVuIGFuZCBibHVlIGNvbXBvbmVudHMuIFNvbWUgb3Ro
ZXIgcHJlZml4ZXMgdGhhbiBSR0IKICAgLS0gICAgYXJlIGRlZmluZWQgaW4gdGhlIFgxMSBkZWZp
bml0aW9uLCBwbGVhc2Ugc2VlIHNvbWUgWDExIGRvY3VtZW50YXRpb24KICAgLS0gICAgKG9yIHRo
ZSBtYW4gcGFnZSBYUGFyc2VDb2xvciBvbiB1bml4IHN5c3RlbXMpLgogICAtLQogICAtLSAgLSAi
Y29sb3JfbmFtZSIgd2hpY2ggY2FuIGJlIGFueSBjb2xvciBuYW1lIGRlZmluZWQgaW4gdGhlIGZp
bGUgcmdiLnR4dAogICAtLSAgICBvZiB0aGUgdXNlcidzIHN5c3RlbS4gWW91IHNob3VsZCBhbHdh
eXMgY2hlY2sgdGhhdCBXcm9uZ19Db2xvciB3YXMgbm90CiAgIC0tICAgIHJhaXNlZCwgaW4gY2Fz
ZSB0aGUgY29sb3Igd2FzIG5vdCBrbm93biBvbiB0aGUgdXNlcidzIHN5c3RlbS4gVGhpcwogICAt
LSAgICBzdHJpbmcgaXMgY2FzZSBpbnNlbnNpdGl2ZS4KCiAgIHByb2NlZHVyZSBBbGxvY19Db2xv
ciAoQ29sb3JtYXAgICA6IGluICAgICBHZGtfQ29sb3JtYXA7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ29sb3IgICAgICA6IGluIG91dCBHZGtfQ29sb3I7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgV3JpdGVhYmxlICA6IGluICAgICBCb29sZWFuIDo9IEZhbHNlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgIEJlc3RfTWF0Y2ggOiBpbiAgICAgQm9vbGVhbiA6PSBUcnVlOwogICAgICAg
ICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgOiAgICBvdXQgQm9vbGVhbik7CiAgIC0tICBB
bGxvY2F0ZSBhIG5ldyBjb2xvci4KICAgLS0gIFRoZSBmaWVsZHMgUkdCIHNob3VsZCBoYXZlIGJl
ZW4gc2V0IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCiAgIC0tICBJZiBXcml0ZWFibGUg
aXMgVHJ1ZSwgdGhlIGNvbG9yIHdpbGwgYmUgYWxsb2NhdGVkIHJlYWQvd3JpdGUsIHRoYXQgY2Fu
CiAgIC0tICBiZSBjaGFuZ2VkIGF0IGFueSB0aW1lLiBOb3QgYWxsIHZpc3VhbHMgc3VwcG9ydCB0
aGlzLiBPbiBtb2Rlcm4gc3lzdGVtcwogICAtLSAgdGhpcyB1c2FnZSBoYXMgYmVjb21lIGxlc3Mg
dXNlZnVsIHRoYW4gYmVmb3JlLCBzaW5jZSByZWRyYXdpbmcgdGhlCiAgIC0tICBzY3JlZW4gd2l0
aCBhIG5ldyBjb2xvciBpcyBhYm91dCBhcyBmYXN0LgogICAtLSAgSWYgQmVzdF9NYXRjaCBpcyBU
cnVlLCBhbmQgdGhlIGV4YWN0IGNvbG9yIGNhbiBub3QgYmUgYWxsb2NhdGVkLCBHdGtBZGEKICAg
LS0gIHdpbGwgZmluZCB0aGUgY2xvc2VzdCBwb3NzaWJsZSBtYXRjaCwgYW5kIG1vZGlmeSB0aGUg
ZmllbGRzIFJlZCwgR3JlZW4KICAgLS0gIGFuZCBCbHVlIG9mIENvbG9yLgogICAtLSAgTm90ZSB0
aGF0IHRoZSBhbGxvY2F0aW9uIGhhcyBtb3JlIGNoYW5jZXMgdG8gc3VjY2VlZCBpZiBXcml0ZWFi
bGUgaXMKICAgLS0gIEZhbHNlIGFuZCBCZXN0X01hdGNoIGlzIFRydWUuCiAgIC0tICBXaGVuIHlv
dSBubyBsb25nZXIgdXNlIGEgY29sb3IsIHlvdSBzaG91bGQgY2FsbCBGcmVlLgoKICAgcHJvY2Vk
dXJlIEFsbG9jX0NvbG9ycyAoQ29sb3JtYXAgICA6IGluICAgICBHZGtfQ29sb3JtYXA7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbG9ycyAgICAgOiBpbiBvdXQgR2RrX0NvbG9yX0FycmF5
OwogICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZWFibGUgIDogaW4gICAgIEJvb2xlYW4g
Oj0gRmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlc3RfTWF0Y2ggOiBpbiAgICAg
Qm9vbGVhbiA6PSBUcnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgIDog
ICAgb3V0IEJvb2xlYW5fQXJyYXk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCAg
ICAgOiAgICBvdXQgR2ludCk7CiAgIC0tICBBbGxvY2F0ZSBhIHNldCBvZiBjb2xvcnMuCiAgIC0t
ICBUaGUgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgZm9yIEFsbG9jX0NvbG9yCiAgIC0tICBS
ZXN1bHQgaXMgdGhlIG51bWJlciBvZiBjb2xvcnMgbm90IHN1Y2Nlc3NmdWxseSBhbGxvY2F0ZWQu
CiAgIC0tCiAgIC0tICBUaGUgc2l6ZSBvZiB0aGUgQm9vbGVhbl9BcnJheSBpcyBlcXVhbCB0byB0
aGUgbGVuZ3RoIG9mIHRoZQogICAtLSAgQ29sb3JzX0FycmF5LiBVc2FnZSBvZiBhbiBhcnJheSBv
ZiBhIGRpZmZlcmVudCBzaXplIHdpbGwKICAgLS0gIHByb2JhYmx5IGxlYWQgdG8gYSBDb25zdHJh
aW50X0Vycm9yLgoKICAgcHJvY2VkdXJlIEFsbG9jIChDb2xvcm1hcCAgOiBpbiBHZGtfQ29sb3Jt
YXA7CiAgICAgICAgICAgICAgICAgICAgQ29sb3IgICAgIDogaW4gb3V0IEdka19Db2xvcik7CiAg
IC0tICBTYW1lIGZ1bmN0aW9uIGFzIEFsbG9jX0NvbG9ycyBhYm92ZSwgYnV0IGZvciBhIHNpbmds
ZSBjb2xvci4KICAgLS0gIFRoZSBjb2xvciBpcyBhbGxvY2F0ZWQgbm9uLXdyaXRlYWJsZSwgYW5k
IHRoZSBiZXN0LW1hdGNoIGlzIHRha2VuLgogICAtLSAgUmFpc2VzIFdyb25nX0NvbG9yIGlmIHRo
ZSBjb2xvciBjb3VsZCBub3QgYmUgYWxsb2NhdGVkCgogICBmdW5jdGlvbiBXaGl0ZSAoQ29sb3Jt
YXAgIDogaW4gR2RrX0NvbG9ybWFwKSByZXR1cm4gR2RrX0NvbG9yOwogICAtLSAgUmV0dXJuIHRo
ZSBkZWZhdWx0IHdoaXRlIGNvbG9yIGZvciB0aGUgY29sb3JtYXAuCiAgIC0tICBJZiB0aGlzIGNv
bG9yIHdhcyBub3QgZm91bmQgb3IgY291bGQgbm90IGJlIGFsbG9jYXRlZCwgV3JvbmdfQ29sb3Ig
aXMKICAgLS0gIHJhaXNlZC4KCiAgIGZ1bmN0aW9uIEJsYWNrIChDb2xvcm1hcCAgOiBpbiBHZGtf
Q29sb3JtYXApIHJldHVybiBHZGtfQ29sb3I7CiAgIC0tICBSZXR1cm4gdGhlIGRlZmF1bHQgYmxh
Y2sgY29sb3JzIGZvciB0aGUgY29sb3JtYXAuCiAgIC0tICBJZiB0aGlzIGNvbG9yIGlzIG5vdCBm
b3VuZCBvciBjb3VsZCBub3QgYmUgYWxsb2NhdGVkLCBXcm9uZ19Db2xvciBpcwogICAtLSAgcmFp
c2VkLgoKICAgZnVuY3Rpb24gR2V0X1N5c3RlbSByZXR1cm4gR2RrX0NvbG9ybWFwOwogICAtLSAg
R2V0IHRoZSBkZWZhdWx0IGNvbG9ybWFwIGZvciB0aGUgc3lzdGVtLgogICAtLSAgVGhpcyBpcyB0
aGUgc2FtZSBmdW5jdGlvbiBhcyBHdGsuV2lkZ2V0LkdldF9EZWZhdWx0X0NvbG9ybWFwLgoKICAg
cHJvY2VkdXJlIEdldF9WaXN1YWwgKENvbG9ybWFwIDogaW4gICAgIEdka19Db2xvcm1hcDsKICAg
ICAgICAgICAgICAgICAgICAgICAgIFZpc3VhbCAgIDogICAgb3V0IEdkay5WaXN1YWwuR2RrX1Zp
c3VhbCk7CiAgIC0tICBHZXQgdGhlIHZpc3VhbCBhc3NvY2lhdGVkIHdpdGggYSBjb2xvcm1hcC4K
ICAgLS0gIFRoZSBtYWluIGluZm9ybWF0aW9uIHlvdSBjYW4gZ2V0IGZyb20gdGhlcmUgaXMgdGhl
IGRlcHRoIG9mIHRoZSBkaXNwbGF5LgoKICAgcHJvY2VkdXJlIEdka19OZXcgKENvbG9ybWFwICAg
ICA6ICAgIG91dCBHZGtfQ29sb3JtYXA7CiAgICAgICAgICAgICAgICAgICAgICBWaXN1YWwgICAg
ICAgOiBpbiAgICAgR2RrLlZpc3VhbC5HZGtfVmlzdWFsOwogICAgICAgICAgICAgICAgICAgICAg
UHJpdmF0ZV9DbWFwIDogaW4gICAgIEJvb2xlYW4pOwogICAtLSAgQ3JlYXRlIGEgbmV3IGNvbG9y
bWFwIGZvciB0aGUgdmlzdWFsLgogICAtLSAgSWYgUHJpdmF0ZV9DbWFwIGlzIHRydWUsIHRoZW4g
dGhlCiAgIC0tICBjb2xvcm1hcCB3b24ndCBiZSBtb2RpZmlhYmxlIG91dHNpZGUgdGhpcyBzY29w
ZS4gVGhpcyBtaWdodCByZXN1bHQgaW4KICAgLS0gIHNvbWUgc3RyYW5nZSBjb2xvcnMgb24gdGhl
IGRpc3BsYXkuLi4KCiAgIHByb2NlZHVyZSBVbnJlZiAoQ29sb3JtYXAgOiBpbiBHZGtfQ29sb3Jt
YXApOwogICAtLSAgVW5yZWYgaXMgdGhlIG9ubHkgd2F5IHRvIGRlc3Ryb3kgYSBjb2xvcm1hcCBv
bmNlIHlvdSBubyBsb25nZXIgbmVlZCBpdC4KICAgLS0gIE5vdGUgdGhhdCBiZWNhdXNlIGd0aysg
dXNlcyByZWZlcmVuY2UgY291bnRzLCB0aGUgY29sb3JtYXAgd2lsbCBub3QKICAgLS0gIGJlIGFj
dHVhbGx5IGRlc3Ryb3llZCB3aGlsZSBhdCBsZWFzdCBvbmUgb2JqZWN0IGlzIHVzaW5nIGl0LgoK
ICAgcHJvY2VkdXJlIFJlZiAoQ29sb3JtYXAgOiBpbiBHZGtfQ29sb3JtYXApOwogICAtLSAgSW5j
cmVtZW50IHRoZSByZWYtY291bnQgZm9yIHRoZSBjb2xvci4KICAgLS0gIFlvdSBzaG91bGQgbm90
IGhhdmUgdG8gdXNlIHRoaXMgZnVuY3Rpb24uCgogICBmdW5jdGlvbiBHZXRfU3lzdGVtX1NpemUg
cmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBk
ZWZhdWx0IGNvbG9ybWFwIG9uIHRoZSBzeXN0ZW0uCgogICBwcm9jZWR1cmUgRnJlZV9Db2xvcnMg
KENvbG9ybWFwIDogaW4gR2RrX0NvbG9ybWFwOwogICAgICAgICAgICAgICAgICAgICAgICAgIENv
bG9ycyAgIDogaW4gR2RrX0NvbG9yX0FycmF5KTsKICAgLS0gIEZyZWUgQ29sb3JzLCBhc3N1bWlu
ZyB0aGV5IGFyZSBhbGxvY2F0ZWQgaW4gQ29sb3JtYXAuCgogICBwcm9jZWR1cmUgU3RvcmUgKENv
bG9ybWFwIDogaW4gR2RrX0NvbG9ybWFwOwogICAgICAgICAgICAgICAgICAgIENvbG9ycyAgIDog
aW4gR2RrX0NvbG9yX0FycmF5KTsKICAgLS0gIFN0b3JlIHRoZSBDb2xvcnMgaW4gdGhlIENvbG9y
bWFwCgogICBwcm9jZWR1cmUgQWxsb2MgKENvbG9ybWFwICAgOiBpbiBHZGtfQ29sb3JtYXA7CiAg
ICAgICAgICAgICAgICAgICAgQ29udGlndW91cyA6IGluIEJvb2xlYW47CiAgICAgICAgICAgICAg
ICAgICAgUGxhbmVzICAgICA6IGluICAgICBHdWxvbmdfQXJyYXk7CiAgICAgICAgICAgICAgICAg
ICAgUGl4ZWxzICAgICA6IGluICAgICBHdWxvbmdfQXJyYXk7CiAgICAgICAgICAgICAgICAgICAg
U3VjY2VlZGVkICA6ICAgIG91dCBCb29sZWFuKTsKICAgLS0gIEFsbG9jYXRlIHNvbWUgUmVhZC9X
cml0ZSBjb2xvciBjZWxscy4KICAgLS0gIENvbG9yIGNlbGxzJyB2YWx1ZXMgY2FuIGJlIGNoYW5n
ZWQKICAgLS0gIGR5bmFtaWNhbGx5LiBUaGUgcGl4ZWxzIGFsbG9jYXRlZCBhcmUgcmV0dXJuZWQg
aW4gUGl4ZWxzLgogICAtLSAgU2VlIFhBbGxvY0NvbG9yQ2VsbHMoMykgb24gVW5peCBzeXN0ZW1z
LgogICAtLSAgVGhlIFBsYW5lcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gbm9uZGVzdHJ1Y3Rp
dmVseSBvdmVybGF5IG9uZQogICAtLSAgc2V0IG9mIGdyYXBoaWNzIG92ZXIgYW5vdGhlci4gU2Vl
IHRoZSBYMTEgbWFudWFsIGZvciBtb3JlIGluZm8uCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBpcyBh
IGxvdy1sZXZlbCBmdW5jdGlvbiB3aGljaCB5b3Ugc2hvdWxkIHJhcmVseQogICAtLSAgaGF2ZSB0
byB1c2UuCgogICBwcm9jZWR1cmUgRnJlZSAoQ29sb3JtYXAgOiBpbiBHZGtfQ29sb3JtYXA7CiAg
ICAgICAgICAgICAgICAgICBQaXhlbHMgICA6IGluIEd1bG9uZ19BcnJheTsKICAgICAgICAgICAg
ICAgICAgIFBsYW5lcyAgIDogaW4gR3Vsb25nKTsKICAgLS0gIEZyZWUgc29tZSBjb2xvcnMgaW4g
dGhlIGNvbG9ybWFwLgogICAtLSAgU2VlIFhGcmVlQ29sb3JzKDMpIG9uIFVuaXggc3lzdGVtcy4K
CiAgIC0tICA8ZG9jX2lnbm9yZT4KICAgZnVuY3Rpb24gSGFzaCAoQ29sb3JfQSA6IGluIEdka19D
b2xvcjsKICAgICAgICAgICAgICAgICAgQ29sb3JfQiA6IGluIEdka19Db2xvcikgcmV0dXJuIEd1
aW50OwogICAtLSAgUmV0dXJuIGEgaGFzaCBjb2RlIGZvciBDb2xvcl9BLgogICAtLSAgVGhpcyBz
ZWVtcyB0byBiZSBhIGludGVybmFsIGZ1bmN0aW9uIGZvciBndGsrIG9ubHkuCiAgIC0tICA8L2Rv
Y19pZ25vcmU+CgogICBwcm9jZWR1cmUgQ2hhbmdlIChDb2xvcm1hcCAgOiBpbiBHZGtfQ29sb3Jt
YXA7CiAgICAgICAgICAgICAgICAgICAgIENvbG9yICAgICA6IGluIG91dCBHZGtfQ29sb3I7CiAg
ICAgICAgICAgICAgICAgICAgIFN1Y2NlZWRlZCA6ICAgIG91dCBCb29sZWFuKTsKICAgLS0gIENo
YW5nZSB0aGUgUmVhZC9Xcml0ZSBjb2xvcm1hcCBjZWxsIGNvcnJlc3BvbmRpbmcgdG8gQ29sb3Iu
CiAgIC0tICBUaGUgbmV3IHZhbHVlIGlzIHRoZSBvbmUgY29udGFpbmVkIGluIHRoZSBSZWQsIEdy
ZWVuIGFuZCBCbHVlCiAgIC0tICBmaWVsZHMgb2YgQ29sb3IuCgogICBwcm9jZWR1cmUgQ2hhbmdl
IChDb2xvcm1hcCA6IGluIEdka19Db2xvcm1hcDsKICAgICAgICAgICAgICAgICAgICAgTmNvbG9y
cyAgOiBpbiBHaW50KTsKICAgLS0gIENoYW5nZXMgdGhlIGZpcnN0IE5jb2xvcnMgZGVmaW5lZCBp
biBDb2xvcm1hcC4KCiAgIHByb2NlZHVyZSBDb3B5IChTb3VyY2UgICAgICA6IGluICAgICBHZGtf
Q29sb3I7CiAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbiA6ICAgIG91dCBHZGtfQ29sb3Ip
OwogICAtLSAgQ29weSB0aGUgU291cmNlIGNvbG9yIHRvIERlc3RpbmF0aW9uLgoKICAgZnVuY3Rp
b24gRXF1YWwgKENvbG9yYSwgQ29sb3JiIDogaW4gR2RrX0NvbG9yKSByZXR1cm4gQm9vbGVhbjsK
ICAgLS0gIFRydWUgaWYgdGhlIFJlZCwgR3JlZW4gYW5kIEJsdWUgY29tcG9uZW50cyBvZiBib3Ro
IGNvbG9ycyBhcmUgZXF1YWwuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgLS0gU2V0dGluZy9HZXR0aW5nIHRoZSBmaWVsZHMgb2YgR2RrX0NvbG9y
IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg
cHJvY2VkdXJlIFNldF9SZ2IgKENvbG9yICAgOiBvdXQgR2RrX0NvbG9yOwogICAgICAgICAgICAg
ICAgICAgICAgUmVkLCBHcmVlbiwgQmx1ZSA6IGluIEd1c2hvcnQpOwogICAtLSAgTW9kaWZ5IHRo
ZSBmaWVsZHMgb2YgdGhlIGNvbG9yLgogICAtLSAgWW91IHRoZW4gaGF2ZSB0byBhbGxvY2F0ZSB0
aGUgY29sb3Igd2l0aCBvbmUgb2YgdGhlIEFsbG9jKiBmdW5jdGlvbnMKICAgLS0gIGFib3ZlLgoK
ICAgcHJvY2VkdXJlIFNldF9QaXhlbCAoQ29sb3IgOiBpbiBvdXQgR2RrX0NvbG9yOyBQaXhlbCA6
IEd1bG9uZyk7CiAgIC0tICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBhbG1vc3QgbmV2ZXIgYmUgdXNl
ZC4gSW5zdGVhZCwgdXNlIEFsbG9jX0NvbG9yCgogICBmdW5jdGlvbiBSZWQgKENvbG9yIDogaW4g
R2RrX0NvbG9yKSByZXR1cm4gR3VzaG9ydDsKICAgLS0gIFJldHVybiB0aGUgUmVkIGZpZWxkIG9m
IENvbG9yLgoKICAgZnVuY3Rpb24gR3JlZW4gKENvbG9yIDogaW4gR2RrX0NvbG9yKSByZXR1cm4g
R3VzaG9ydDsKICAgLS0gIFJldHVybiB0aGUgR3JlZW4gZmllbGQgb2YgQ29sb3IuCgogICBmdW5j
dGlvbiBCbHVlIChDb2xvciA6IGluIEdka19Db2xvcikgcmV0dXJuIEd1c2hvcnQ7CiAgIC0tICBS
ZXR1cm4gdGhlIEJsdWUgZmllbGQgb2YgQ29sb3IuCgogICBmdW5jdGlvbiBQaXhlbCAoQ29sb3Ig
OiBpbiBHZGtfQ29sb3IpIHJldHVybiBHdWxvbmc7CiAgIC0tICBSZXR1cm4gdGhlIFBpeGVsIGZp
ZWxkIG9mIENvbG9yLgoKcHJpdmF0ZQogICBOdWxsX0NvbG9ybWFwIDogY29uc3RhbnQgR2RrX0Nv
bG9ybWFwIDo9IG51bGw7CgogICB0eXBlIEdka19Db2xvciBpcwogICAgICByZWNvcmQKICAgICAg
ICAgUGl4ZWwgOiBHdWxvbmc7CiAgICAgICAgIFJlZCAgIDogR3VzaG9ydDsKICAgICAgICAgR3Jl
ZW4gOiBHdXNob3J0OwogICAgICAgICBCbHVlICA6IEd1c2hvcnQ7CiAgICAgIGVuZCByZWNvcmQ7
CiAgIC0tICBUaGUgZmllbGRzIGFyZSB0byBiZSBjaG9zZW4gYmV0d2VlbiAwIGFuZCA2NTUzNSwg
bm90IDAgYW5kIDI1NSEhIQoKICAgTnVsbF9Db2xvciA6IGNvbnN0YW50IEdka19Db2xvciA6PSAo
R3Vsb25nJ0xhc3QsIDEsIDAsIDApOwogICAtLSAgTm90ZTogaW4gdGhlIGltcGxlbWVudGF0aW9u
IG9mIEd0a0FkYSwgZXZlcnl0aW1lIGEgY29sb3IgaXMgdXNlZCwgaXQKICAgLS0gIGlzIGltcG9y
dGFudCB0byB0ZXN0IHdoZXRoZXIgdGhpcyBpcyBOdWxsX0NvbG9yIG9yIG5vdC4gSWYgaXQgaXMs
IHRoZW4KICAgLS0gIFN5c3RlbS5OdWxsX0FkZHJlc3Mgc2hvdWxkIGJlIHBhc3NlZCB0byBDIGlu
c3RlYWQgb2YgTnVsbF9Db2xvcidBZGRyZXNzCiAgIC0tICBzbyB0aGF0IGd0aysgY2FuIHByb3Zp
ZGUgYSBkZWZhdWx0IHZhbHVlIGZvciBjb2xvcnMuCgogICBwcmFnbWEgSW5saW5lIChTZXRfUmdi
KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1BpeGVsKTsKICAgcHJhZ21hIElubGluZSAoUmVkKTsK
ICAgcHJhZ21hIElubGluZSAoR3JlZW4pOwogICBwcmFnbWEgSW5saW5lIChCbHVlKTsKICAgcHJh
Z21hIElubGluZSAoUGl4ZWwpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfU3lzdGVtX1NpemUs
ICJnZGtfY29sb3JtYXBfZ2V0X3N5c3RlbV9zaXplIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdl
dF9TeXN0ZW0sICJnZGtfY29sb3JtYXBfZ2V0X3N5c3RlbSIpOwogICBwcmFnbWEgSW1wb3J0IChD
LCBSZWYsICJnZGtfY29sb3JtYXBfcmVmIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAi
Z2RrX2NvbG9ybWFwX3VucmVmIik7CmVuZCBHZGsuQ29sb3I7CgotLSAgPGV4YW1wbGU+Ci0tICAt
LSAgSGVyZSBpcyBhbiBleGFtcGxlIGhvdyB5b3UgY2FuIGFsbG9jYXRlIGEgbmV3IGNvbG9yLCB3
aGVuIHlvdSBrbm93Ci0tICAtLSAgaXRzIHJlZC9ncmVlbi9ibHVlIGNvbXBvbmVudHM6IE5vdGUg
dGhhdCB3ZSBhbGxvY2F0ZSB3aGl0ZSBpbiBmYWN0Ci0tICAtLSAgc2luY2UgdGhlIG1heGltYWwg
dmFsdWUgZm9yIGNvbG9yIGNvbXBvbmVudHMgaXMgNjU1MzUuCi0tICAgICBDb2xvciAgIDogR2Rr
X0NvbG9yOwotLSAgICAgU3VjY2VzcyA6IEJvb2xlYW47Ci0tICAgICBTZXRfUmJnIChDb2xvciwg
NjU1MzUsIDY1NTM1LCA2NTUzNSk7Ci0tICAgICBBbGxvY19Db2xvciAoQ29sb3JtYXAgICA9PiBH
dGsuV2lkZ2V0LkdldF9EZWZhdWx0X0NvbG9ybWFwLAotLSAgICAgICAgICAgICAgICAgIENvbG9y
ICAgICAgPT4gQ29sb3IsCi0tICAgICAgICAgICAgICAgICAgV3JpdGVhYmxlICA9PiBGYWxzZSwK
LS0gICAgICAgICAgICAgICAgICBCZXN0X01hdGNoID0+IFRydWUsCi0tICAgICAgICAgICAgICAg
ICAgU3VjY2VzcyAgICA9PiBTdWNjZXNzKTsKLS0gICAgIGlmIG5vdCBTdWNjZXNzIHRoZW4KLS0g
ICAgICAgICAuLi47ICAtLSAgYWxsb2NhdGlvbiBmYWlsZWQKLS0gICAgIGVuZCBpZjsKLS0gIDwv
ZXhhbXBsZT4KLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmlu
ZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMTk5OSAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBh
bmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAg
LS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
ICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0g
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFs
IGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0K
LS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBw
cm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0
c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVk
IGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9u
IGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAg
LS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1Ymxp
YyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggR2xpYjsgdXNlIEdsaWI7Cndp
dGggR2xpYi5HbGlzdDsKcHJhZ21hIEVsYWJvcmF0ZV9BbGwgKEdsaWIuR2xpc3QpOwoKd2l0aCBH
ZGsuVHlwZXM7CndpdGggU3lzdGVtOwp3aXRoIFVuY2hlY2tlZF9Db252ZXJzaW9uOwoKcGFja2Fn
ZSBHZGsuVmlzdWFsIGlzCgogICB0eXBlIEdka19WaXN1YWwgaXMgbmV3IEdkay5DX1Byb3h5Owog
ICBOdWxsX1Zpc3VhbCA6IGNvbnN0YW50IEdka19WaXN1YWw7CiAgIC0tICBUaGlzIHR5cGUgaXMg
bm90IHByaXZhdGUgYmVjYXVzZSB3ZSBuZWVkIHRoZSBmdWxsIGRlY2xhcmF0aW9uCiAgIC0tICB0
byBpbnN0YW5jaWF0ZSBHbGliLkdsaXN0LkdlbmVyaWNfTGlzdCB3aXRoIGl0LgoKICAgdHlwZSBH
ZGtfVmlzdWFsX1R5cGVfQXJyYXkgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2UgPD4pCiAgICAgb2Yg
VHlwZXMuR2RrX1Zpc3VhbF9UeXBlOwoKICAgZnVuY3Rpb24gR2V0X0Jlc3RfRGVwdGggcmV0dXJu
IEdpbnQ7CgogICBmdW5jdGlvbiBHZXRfQmVzdF9UeXBlIHJldHVybiBUeXBlcy5HZGtfVmlzdWFs
X1R5cGU7CgogICBwcm9jZWR1cmUgR2V0X1N5c3RlbSAoVmlzdWFsIDogb3V0IEdka19WaXN1YWwp
OwoKICAgcHJvY2VkdXJlIEdldF9CZXN0IChWaXN1YWwgOiBvdXQgR2RrX1Zpc3VhbCk7CgogICBw
cm9jZWR1cmUgR2V0X0Jlc3QKICAgICAoVmlzdWFsIDogICAgb3V0IEdka19WaXN1YWw7CiAgICAg
IERlcHRoICA6IGluICAgICBHaW50KTsKCiAgIHByb2NlZHVyZSBHZXRfQmVzdAogICAgIChWaXN1
YWwgICAgICA6ICAgIG91dCBHZGtfVmlzdWFsOwogICAgICBWaXN1YWxfVHlwZSA6IGluICAgICBU
eXBlcy5HZGtfVmlzdWFsX1R5cGUpOwoKICAgcHJvY2VkdXJlIEdldF9CZXN0CiAgICAgKFZpc3Vh
bCAgICAgIDogICAgb3V0IEdka19WaXN1YWw7CiAgICAgIERlcHRoICAgICAgIDogaW4gICAgIEdp
bnQ7CiAgICAgIFZpc3VhbF9UeXBlIDogaW4gICAgIFR5cGVzLkdka19WaXN1YWxfVHlwZSk7Cgog
ICBmdW5jdGlvbiBRdWVyeV9EZXB0aHMgcmV0dXJuIEdpbnRfQXJyYXk7CgogICBmdW5jdGlvbiBR
dWVyeV9WaXN1YWxfVHlwZXMgcmV0dXJuIEdka19WaXN1YWxfVHlwZV9BcnJheTsKCiAgIGZ1bmN0
aW9uIENvbnZlcnQgaXMgbmV3IFVuY2hlY2tlZF9Db252ZXJzaW9uIChHZGtfVmlzdWFsLCBTeXN0
ZW0uQWRkcmVzcyk7CiAgIGZ1bmN0aW9uIENvbnZlcnQgaXMgbmV3IFVuY2hlY2tlZF9Db252ZXJz
aW9uIChTeXN0ZW0uQWRkcmVzcywgR2RrX1Zpc3VhbCk7CgogICBwYWNrYWdlIEdka19WaXN1YWxf
TGlzdCBpcyBuZXcgR2xpYi5HbGlzdC5HZW5lcmljX0xpc3QgKEdka19WaXN1YWwpOwoKICAgZnVu
Y3Rpb24gTGlzdF9WaXN1YWxzIHJldHVybiBHZGtfVmlzdWFsX0xpc3QuR2xpc3Q7Cgpwcml2YXRl
CiAgIE51bGxfVmlzdWFsIDogY29uc3RhbnQgR2RrX1Zpc3VhbCA6PSBudWxsOwogICBwcmFnbWEg
SW1wb3J0IChDLCBHZXRfQmVzdF9EZXB0aCwgImdka192aXN1YWxfZ2V0X2Jlc3RfZGVwdGgiKTsK
ICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0Jlc3RfVHlwZSwgImdka192aXN1YWxfZ2V0X2Jlc3Rf
dHlwZSIpOwplbmQgR2RrLlZpc3VhbDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRh
IC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAw
MCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2Vs
IEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAg
ICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
QXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJp
Y3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhl
ciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9l
cyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0
byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0K
LS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29u
cyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRo
ZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3Jp
cHRpb24+Ci0tCi0tICBUaGlzIHBhY2thZ2UgaW1wbGVtZW50cyBhIGdlbmVyaWMgZG91YmxlLWxp
bmtlZCBsaXN0LgotLSAgU3VjaCBsaXN0cyBhcmUgdXNlZCB0aHJvdWdob3V0IEd0a0FkYSB0byBj
b250YWluIGxpc3RzIG9mIHdpZGdldHMKLS0gIChmb3IgdGhlIGNoaWxkcmVuIG9mIGNvbnRhaW5l
cnMsIG9yIGZvciB0aGUgbGlzdCBvZiBzZWxlY3RlZCB3aWRnZXRzCi0tICBpbiBhIEd0a19DbGlz
dCBmb3IgaW5zdGFuY2UpLCBsaXN0IG9mIHN0cmluZ3MgKGZvciBHdGtfQ29tYm9fQm94KSwuLi4K
LS0KLS0gIFRoZXkgcHJvdmlkZSBhIGNvbW1vbiBpbnRlcmZhY2UgdG8gdHJhdmVyc2UgdGhlc2Ug
bGlzdHMuCi0tCi0tICBPbmUgdXNlZnVsIG5vdGU6IHlvdSBzaG91bGQgb25seSBGcmVlIHRoZSBs
aXN0cyB0aGF0IHlvdSBoYXZlIGFsbG9jYXRlZAotLSAgeW91cnNlbGYsIGFuZCBub3QgdGhlIGxp
c3RzIHRoYXQgYXJlIHJldHVybmVkIGJ5IHRoZSBzdWJwcm9ncmFtcyBpbgotLSAgR3RrQWRhIGFu
ZCBzaG91bGQgYmUgbGVmdCB1bmRlciBHdGtBZGEncyBjb250cm9sLgotLQotLSAgU2VlIHRoZSBl
eGFtcGxlIGJlbG93IGZvciBhbiBleGFtcGxlIG9uIGhvdyB0byB0cmF2ZXJzZSBhIGxpc3QuCi0t
Ci0tICBJbnN0YW50aWF0aW5nIHRoZSBwYWNrYWdlIEdlbmVyaWNfTGlzdCByZXF1aXJlcyB0d28g
ZnVuY3Rpb25zIHRvIGNvbnZlcnQKLS0gIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4geW91ciBkYXRh
IHR5cGUgYW5kIGEgU3lzdGVtLkFkZHJlc3Mgd2hpY2ggaXMgdGhlCi0tICB0eXBlIHN0b3JlZCBh
dCB0aGUgQyBsZXZlbC4KLS0gIE5vdGUgdGhhdCB0aGUgbGlzdHMgdXNlZCBpbiBHdGtBZGEgYWxy
ZWFkeSBoYXZlIGFzc29jaWF0ZWQgcGFja2FnZXMsIGxpa2UKLS0gIEd0ay5FbnVtcy5HaW50X0xp
c3QsIEd0ay5FbnVtcy5TdHJpbmdfTGlzdCBvciBHdGsuV2lkZ2V0LldpZGdldF9MaXN0LgotLQot
LSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3N5bmNocm8+MS4yLjY8L2Nfc3luY2hybz4KCndpdGgg
U3lzdGVtOwoKcGFja2FnZSBHbGliLkdsaXN0IGlzCgoKICAgZ2VuZXJpYwogICAgICAtLSAgPGRv
Y19pZ25vcmU+CgogICAgICB0eXBlIEdwb2ludGVyICg8PikgaXMgcHJpdmF0ZTsKICAgICAgd2l0
aCBmdW5jdGlvbiBDb252ZXJ0IChQIDogR3BvaW50ZXIpIHJldHVybiBTeXN0ZW0uQWRkcmVzcyBp
cyA8PjsKICAgICAgd2l0aCBmdW5jdGlvbiBDb252ZXJ0IChTIDogU3lzdGVtLkFkZHJlc3MpIHJl
dHVybiBHcG9pbnRlciBpcyA8PjsKCiAgICAgIC0tICA8L2RvY19pZ25vcmU+CgogICBwYWNrYWdl
IEdlbmVyaWNfTGlzdCBpcwoKICAgICAgdHlwZSBHbGlzdCBpcyBwcml2YXRlOwogICAgICAtLSAg
VGhpcyB0eXBlIGlzIGJvdGggYSBsaXN0IGFuZCBhbiBpdGVtIGluIHRoZSBsaXN0LgogICAgICAt
LSAgRWFjaCBpdGVtIHBvaW50cyB0byBpdHMgc3VjY2Vzc29yLgoKICAgICAgTnVsbF9MaXN0IDog
Y29uc3RhbnQgR2xpc3Q7CgogICAgICBwcm9jZWR1cmUgQWxsb2MgKExpc3QgOiBvdXQgR2xpc3Qp
OwogICAgICAtLSAgQWxsb2NhdGUgYSBuZXcgaXRlbSBpbiB0aGUgbGlzdC4KICAgICAgLS0gIFRo
aXMgaXRlbSBpc24ndCBhc3NvY2lhdGVkIHdpdGggYW55IGRhdGEuCiAgICAgIC0tICBZb3UgcHJv
YmFibHkgZG9uJ3QgaGF2ZSB0byB1c2UgdGhpcyBzdWJwcm9ncmFtLCBzaW5jZSBBcHBlbmQsCiAg
ICAgIC0tICBJbnNlcnQsIFByZXBlbmQsIGV0Yy4gYWxyZWFkeSBoYW5kbGUgdGhlIGFsbG9jYXRp
b24gZm9yIHlvdSBhbmQKICAgICAgLS0gIGdpdmUgYSBuZXcgdmFsdWUgdG8gdGhlIGl0ZW0uCgog
ICAgICBwcm9jZWR1cmUgQXBwZW5kIChMaXN0IDogaW4gb3V0IEdsaXN0OwogICAgICAgICAgICAg
ICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpOwogICAgICAtLSAgQWRkIGEgbmV3IGl0ZW0g
YXQgdGhlIGVuZCBvZiB0aGUgbGlzdCwgYW5kIHN0b3JlcyB0aGUgbmV3IGxpc3QKICAgICAgLS0g
IGRpcmVjdGx5IGJhY2sgaW4gTGlzdC4KICAgICAgLS0gIFRoZSBjb21wbGV4aXR5IG9mIHRoaXMg
b3BlcmF0aW9uIGlzIE8obikKCiAgICAgIGZ1bmN0aW9uIENvbmNhdCAoTGlzdDEgOiBpbiBHbGlz
dDsKICAgICAgICAgICAgICAgICAgICAgICBMaXN0MiA6IGluIEdsaXN0KQogICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEdsaXN0OwogICAgICAtLSAgQ29uY2F0ZW5hdGUgdHdvIGxpc3RzLCBh
bmQgcmV0dXJuIHRoZSByZXN1bHQuCiAgICAgIC0tICBMaXN0MiBpcyBhZGRlZCBhdCB0aGUgZW5k
IG9mIExpc3QxLgogICAgICAtLSAgVGhlIGNvbXBsZXhpdHkgaXMgTyhuMSkgKGRlcGVuZHMgb24g
dGhlIHNpemUgb2YgTGlzdDEpLgoKICAgICAgcHJvY2VkdXJlIEluc2VydCAoTGlzdCA6IGluIG91
dCBHbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyOwogICAg
ICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiA6IGluIEdpbnQpOwogICAgICAtLSAgSW5zZXJ0
IGFuIGl0ZW0gaW4gdGhlIG1pZGRsZSBvZiBhIGxpc3QuCiAgICAgIC0tICBJZiBQb3NpdGlvbiBp
cyAwLCB0aGUgaXRlbSBpcyBhZGRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LCBpZgog
ICAgICAtLSAgaXQgaXMgbmVnYXRpdmUgdGhlIGl0ZW0gaXMgYWRkZWQgYXQgdGhlIGVuZC4KICAg
ICAgLS0gIFRoZSBjb21wbGV4aXR5IGlzIE8oUG9zaXRpb24pLgoKICAgICAgZnVuY3Rpb24gRmlu
ZCAoTGlzdCA6IGluIEdsaXN0OwogICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50
ZXIpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdsaXN0OwogICAgICAtLSAgRmluZCBhIHZh
bHVlIGluIHRoZSBsaXN0LCBhbmQgcmV0dXJuIHRoZSBmaXJzdCBpdGVtIHRoYXQgY29udGFpbnMg
aXQuCiAgICAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCB3b3JrIGlmIHRo
ZSBmdW5jdGlvbiBDb252ZXJ0IGRvZXMKICAgICAgLS0gIG5vdCByZXR1cm4gdGhlIHNhbWUgdmFs
dWUgZm9yIHR3byBpZGVudGljYWwgdmFsdWVzLgoKICAgICAgZnVuY3Rpb24gRmlyc3QgKExpc3Qg
OiBpbiBHbGlzdCkgcmV0dXJuIEdsaXN0OwogICAgICAtLSAgUmV0dXJuIHRoZSBmaXJzdCBpdGVt
IGluIHRoZSBsaXN0LgogICAgICAtLSAgTm90ZSB0aGF0IGlmIExpc3QgaXMgaW4gZmFjdCBhbiBp
dGVtIG9mIGEgbGFyZ2VyIGxpc3QsIHRoZSByZXR1cm4KICAgICAgLS0gIHZhbHVlIGlzIHRoZSBm
aXJzdCBpdGVtIGluIHRoZSBsYXJnZXIgbGlzdCBpdHNlbGYuCgogICAgICBwcm9jZWR1cmUgRnJl
ZSAoTGlzdCA6IGluIG91dCBHbGlzdCk7CiAgICAgIC0tICBGcmVlIHRoZSBsaXN0IChidXQgZG9l
cyBub3QgZnJlZSB0aGUgZGF0YSBpbiBlYWNoIG9mIGl0cyBlbGVtZW50cykuCiAgICAgIC0tICBU
aGlzIG9ubHkgZnJlZXMgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpc3QgaXRzZWxm
LgogICAgICAtLSAgWW91IHNob3VsZCBvbmx5IHVzZSB0aGlzIGZ1bmN0aW9uIG9uIHRoZSBsaXN0
cyB0aGF0CiAgICAgIC0tICB5b3UgaGF2ZSBjcmVhdGVkIHlvdXJzZWxmLCBub3Qgb24gdGhlIGxp
c3QgdGhhdCBhcmUgcmV0dXJuZWQgYnkgc29tZQogICAgICAtLSAgZnVuY3Rpb25zIGluIEd0a0Fk
YSAobGlrZSBHdGsuQ2xpc3QuR2V0X1NlbGVjdGlvbikuIFRoZXNlIGZ1bmN0aW9ucwogICAgICAt
LSAgcmV0dXJuIGRpcmVjdGx5IHRoZSBsaXN0IG1hbmFnZWQgYnkgdGhlIHVuZGVybHlpbmcgQyB3
aWRnZXQsIGFuZCB5b3UKICAgICAgLS0gIHNob3VsZCBuZXZlciBmcmVlIHRoZSByZXN1bHQgeW91
cnNlbGYuCiAgICAgIC0tCiAgICAgIC0tICBOb3RlIGFsc28gdGhhdCB0aGUgbWVtb3J5IG1pZ2h0
IG5vdCBiZSBhY3R1YWxseSBmcmVlZC4gRm9yIGVmZmljaWVuY3kKICAgICAgLS0gIHJlYXNvbnMs
IEd0a0FkYSB3aWxsIGtlZXAgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgYW5kIHRyeSB0byByZXVzZSBp
dCBhcwogICAgICAtLSAgbXVjaCBhcyBwb3NzaWJsZS4KCiAgICAgIGZ1bmN0aW9uIEdldF9EYXRh
IChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHcG9pbnRlcjsKICAgICAgLS0gIFJldHVybiB0aGUg
dmFsdWUgcG9pbnRlZCB0byBieSBMaXN0LgogICAgICAtLSAgVGhlIFN5c3RlbS5BZGRyZXNzIGNv
bnRhaW5lciBpbiB0aGUgQyBsaXN0IGlzIGNvbnZlcnRlZCB0byBhIEdwb2ludGVyCiAgICAgIC0t
ICB0aHJvdWdoIGEgY2FsbCB0byBDb252ZXJ0LgoKICAgICAgZnVuY3Rpb24gR2V0X0RhdGFfQWRk
cmVzcyAoTGlzdCA6IGluIEdsaXN0KSByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgIC0tICBS
ZXR1cm4gZGlyZWN0bHkgdGhlIFN5c3RlbS5BZGRyZXNzIGNvbnRhaW5lZCBpbiB0aGUgQyBsaXN0
LgogICAgICAtLSAgVGhpcyBpcyB1c2VkIG1haW5seSBpbnRlcm5hbGx5IGluIEd0a0FkYSB0byBp
bXBsZW1lbnQgU3RyaW5nIGxpc3RzLAogICAgICAtLSAgYW5kIHlvdSBzaG91bGQgbm90IGhhdmUg
dG8gdXNlIHRoaXMgc3VicHJvZ3JhbSB5b3Vyc2VsZi4KCiAgICAgIC0tICA8ZG9jX2lnbm9yZT4K
ICAgICAgZnVuY3Rpb24gR2V0X0dwb2ludGVyIChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHcG9p
bnRlcjsKICAgICAgLS0gIFNvbWV0aW1lcywgdGhlIGRhdGEgaXMgbm90IHN0b3JlZCBpbiB0aGUg
ImRhdGEiIGZpZWxkCiAgICAgIC0tICBvZiBlYWNoIGNlbGwsIGJ1dCByYXRoZXIgYXQgZWFjaCBj
ZWxsLiBJbiBzdWNoIGNhc2VzLAogICAgICAtLSAgdG8gcmV0cmlldmUgdGhlIGFkZHJlc3Mgb2Yg
dGhlIGRhdGEsIHdlIG5lZWQgdG8gcmV0dXJuCiAgICAgIC0tICB0aGUgYWRkcmVzcyBvZiB0aGUg
Y2VsbCBpdHNlbGYsIGluc3RlZCBvZiB0aGUgYWRkcmVzcwogICAgICAtLSAgcG9pbnRlZCB0byBi
eSBkYXRhLgogICAgICAtLQogICAgICAtLSAgRXg6IHRoZSBHdGtDVHJlZSByb3dfbGlzdC4KICAg
ICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgICAgIGZ1bmN0aW9uIEluZGV4IChMaXN0IDogaW4gR2xp
c3Q7CiAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBHaW50OwogICAgICAtLSAgUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUg
Zmlyc3QgZWxlbWVudCBpbiBMSVNUIHRoYXQgY29udGFpbnMgRGF0YS4KICAgICAgLS0gIE5vdGUg
dGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGlycmVsZXZhbnQgaWYgQ29udmVydCBkb2VzIG5vdCByZXR1
cm4gdGhlCiAgICAgIC0tICBzYW1lIHZhbHVlIGZvciB0d28gaWRlbnRpY2FsIGRhdGEuCgogICAg
ICBmdW5jdGlvbiBMYXN0IChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHbGlzdDsKICAgICAgLS0g
IFJldHVybiB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBsaXN0LgoKICAgICAgZnVuY3Rpb24gTGVu
Z3RoIChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHdWludDsKICAgICAgLS0gIFJldHVybiB0aGUg
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0LgogICAgICAtLSAgVGhlIGxhc3QgaXRlbSdz
IGluZGV4IGlzIExlbmd0aCAtIDEuCgogICAgICBwcm9jZWR1cmUgTGlzdF9SZXZlcnNlIChMaXN0
IDogaW4gb3V0IEdsaXN0KTsKICAgICAgLS0gIFJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZSBsaXN0
ICh0aGUgbGFzdCBpdGVtIGJlY29tZXMgdGhlIGZpcnN0LCBldGMuKQoKICAgICAgZnVuY3Rpb24g
TmV4dCAoTGlzdCA6IGluIEdsaXN0KSByZXR1cm4gR2xpc3Q7CiAgICAgIC0tICBSZXR1cm5zIHRo
ZSBJdGVtIGZvbGxvd2luZyBMSVNUIGluIHRoZSBnbG9iYWwgbGlzdCB0aGF0IGNvbnRhaW5zCiAg
ICAgIC0tICBib3RoLgogICAgICAtLSAgSWYgdGhlcmUgaXMgbm8gc3VjaCBpdGVtLCByZXR1cm4g
TnVsbF9MaXN0LiBUaGlzIGlzIGhvdyB5b3UKICAgICAgLS0gIHN0b3AgaXRlcmF0aW5nIG92ZXIg
YSBsaXN0LgoKICAgICAgZnVuY3Rpb24gTnRoIChMaXN0IDogaW4gR2xpc3Q7CiAgICAgICAgICAg
ICAgICAgICAgTiAgICA6IGluIEd1aW50KQogICAgICAgICAgICAgICAgICAgcmV0dXJuIEdsaXN0
OwogICAgICAtLSAgR2l2ZSB0aGUgbnRoIGl0ZW0gZm9sbG93aW5nIExJU1QgaW4gdGhlIGdsb2Jh
bCBsaXN0IHRoYXQKICAgICAgLS0gIGNvbnRhaW5zIGJvdGguCiAgICAgIC0tICBJZiB0aGVyZSBp
cyBubyBzdWNoIGl0ZW0sIHJldHVybiBOdWxsX0xpc3QuCgogICAgICBmdW5jdGlvbiBOdGhfRGF0
YSAoTGlzdCA6IGluIEdsaXN0OwogICAgICAgICAgICAgICAgICAgICAgICAgTiA6IGluIEd1aW50
KQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR3BvaW50ZXI7CiAgICAgIC0tICBSZXR1
cm4gdGhlIERhdGEgY29udGFpbmVkIGluIHRoZSBOLXRoIGl0ZW0gb2YgTGlzdC4KICAgICAgLS0g
IFRoZSByZXN1bHQgaXMgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIHN1Y2ggaXRlbSBpbiB0aGUg
bGlzdC4KICAgICAgLS0gIFRoZSBhY3R1YWwgcmVzdWx0IGluIHRoYXQgY2FzZSBpcyB0aGUgcmVz
dWx0IG9mCiAgICAgIC0tICAgICAgQ29udmVydCAoU3lzdGVtLk51bGxfQWRkcmVzcyk7CiAgICAg
IC0tICB3aGljaCBtaWdodCBub3QgbWVhbiBhbnl0aGluZy4KCiAgICAgIGZ1bmN0aW9uIFBvc2l0
aW9uIChMaXN0IDogaW4gR2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rIDogaW4g
R2xpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAgICAtLSAgUmV0
dXJuIHRoZSBwb3NpdGlvbiBvZiBMaW5rIGluIHRoZSBMaXN0LgogICAgICAtLSAgSWYgTGluayBp
cyBub3QgY29udGFpbmVkIGluIHRoZSBsaXN0LCAtMSBpcyByZXR1cm5lZC4KCiAgICAgIHByb2Nl
ZHVyZSBQcmVwZW5kIChMaXN0IDogaW4gb3V0IEdsaXN0OwogICAgICAgICAgICAgICAgICAgICAg
ICAgRGF0YSA6IGluIEdwb2ludGVyKTsKICAgICAgLS0gIEFkZCBhbiBpdGVtIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGxpc3QuCiAgICAgIC0tICBUaGlzIG9wZXJhdGlvbiBhbHdheXMgc3VjY2Vl
ZC4KCiAgICAgIGZ1bmN0aW9uIFByZXYgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdsaXN0Owog
ICAgICAtLSAgUmV0dXJuIHRoZSBpdGVtIGJlZm9yZSBMaXN0IGluIHRoZSBnbG9iYWwgbGlzdCB0
aGF0IGNvbnRhaW5zIGJvdGguCiAgICAgIC0tICBSZXR1cm4gTnVsbF9MaXN0IGlmIHRoZXJlIGlz
IG5vIHN1Y2ggaXRlbS4KCiAgICAgIHByb2NlZHVyZSBSZW1vdmUgKExpc3QgOiBpbiBvdXQgR2xp
c3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcik7CiAgICAgIC0t
ICBSZW1vdmUgdGhlIGZpcnN0IGl0ZW0gaW4gTGlzdCB0aGF0IGNvbnRhaW5zIERhdGEuCiAgICAg
IC0tICBOb3RlIHRoYXQgdGhpcyBvcGVyYXRpb24gY2FuIHN1Y2NlZWQgb25seSBpZiBDb252ZXJ0
IGFsd2F5cyByZXR1cm4KICAgICAgLS0gIHRoZSBzYW1lIGFkZHJlc3MgZm9yIGEgZ2l2ZW4gdmFs
dWUuCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlX0xpbmsgKExpc3QgOiBpbiBvdXQgR2xpc3Q7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluayA6IGluIEdsaXN0KTsKICAgICAgLS0gIFJl
bW92ZSBMaW5rIGZyb20gdGhlIGxpc3QgdG8gd2hpY2ggaXQgYmVsb25ncy4KICAgICAgLS0gIElm
IHRoYXQgbGlzdCBpcyBub3QgTGlzdCwgbm8gZXJyb3IgaXMgcmV0dXJuZWQsIGJ1dCBMaW5rIGlz
IHJlbW92ZWQKICAgICAgLS0gIGFueXdheS4KCiAgICAgIGZ1bmN0aW9uIElzX0NyZWF0ZWQgKExp
c3QgOiBpbiBHbGlzdCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIC0tICBSZXR1cm4gVHJ1ZSBpZiB0
aGVyZSBpcyBhIEMgd2lkZ2V0IGFzc29jaWF0ZWQgd2l0aCBMaXN0LgoKICAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIEludGVybmFsIGZ1bmN0aW9ucyAtLQogICAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gIFBsZWFzZSBkbyBub3QgdXNlIHRoZSBmb2xs
b3dpbmcgZnVuY3Rpb25zLiBUaGV5IGFyZSB1c2VkIGludGVybmFsbHkKICAgICAgLS0gIGJ5IEd0
a0FkYS4KICAgICAgLS0gIDxkb2NfaWdub3JlPgoKICAgICAgZnVuY3Rpb24gR2V0X09iamVjdCAo
T2JqIDogaW4gR2xpc3QpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgLS0gIFJldHVybnMg
dGhlIEMgb2JqZWN0IGNvbnRhaW5lZCBpbiBPQkouCiAgICAgIHByYWdtYSBJbmxpbmUgKEdldF9P
YmplY3QpOwoKICAgICAgcHJvY2VkdXJlIFNldF9PYmplY3QgKE9iaiA6IGluIG91dCBHbGlzdDsg
VmFsdWUgIDogaW4gU3lzdGVtLkFkZHJlc3MpOwogICAgICAtLSAgTW9kaWZpZXMgdGhlIEMgb2Jq
ZWN0IGNvbnRhaW5lZCBpbiBPQkouCiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9PYmplY3QpOwoK
ICAgICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIHByaXZhdGUKCiAgICAgIHR5cGUgR2xpc3QgaXMK
ICAgICAgICAgcmVjb3JkCiAgICAgICAgICAgIFB0ciA6IFN5c3RlbS5BZGRyZXNzIDo9IFN5c3Rl
bS5OdWxsX0FkZHJlc3M7CiAgICAgICAgIGVuZCByZWNvcmQ7CiAgICAgIE51bGxfTGlzdCA6IGNv
bnN0YW50IEdsaXN0IDo9IChQdHIgPT4gU3lzdGVtLk51bGxfQWRkcmVzcyk7CiAgIGVuZCBHZW5l
cmljX0xpc3Q7CgplbmQgR2xpYi5HbGlzdDsKCi0tICA8ZXhhbXBsZT4KLS0gIDxpbmNsdWRlPi4u
L2V4YW1wbGVzL2RvY3VtZW50YXRpb24vZ2xpc3RfdHJhdmVyc2UuYWRiPC9pbmNsdWRlPgotLSAg
PC9leGFtcGxlPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5k
aW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot
LSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0xOTk5ICAgICAgICAgICAg
ICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFu
ZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAt
LQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
ICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwg
ZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQot
LSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHBy
b2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRz
ZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQg
YnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24g
ZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAt
LQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGlj
IExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKd2l0aCBHbGliOyB1c2UgR2xpYjsKCnBh
Y2thZ2UgR2RrLlR5cGVzIGlzCgogICB0eXBlIEdka19HZW9tZXRyeSBpcyByZWNvcmQKICAgICAg
TWluX1dpZHRoICAgOiBHaW50OwogICAgICBNaW5fSGVpZ2h0ICA6IEdpbnQ7CiAgICAgIE1heF9X
aWR0aCAgIDogR2ludDsKICAgICAgTWF4X0hlaWdodCAgOiBHaW50OwogICAgICBCYXNlX1dpZHRo
ICA6IEdpbnQ7CiAgICAgIEJhc2VfSGVpZ2h0IDogR2ludDsKICAgICAgV2lkdGhfSW5jICAgOiBH
aW50OwogICAgICBIZWlnaHRfSW5jICA6IEdpbnQ7CiAgICAgIE1pbl9Bc3BlY3QgIDogR2RvdWJs
ZTsKICAgICAgTWF4X0FzcGVjdCAgOiBHZG91YmxlOwogICBlbmQgcmVjb3JkOwogICBwcmFnbWEg
UGFjayAoR2RrX0dlb21ldHJ5KTsKCiAgIHR5cGUgR2RrX1BvaW50IGlzIHJlY29yZAogICAgICBY
IDogR2ludDE2OwogICAgICBZIDogR2ludDE2OwogICBlbmQgcmVjb3JkOwogICBwcmFnbWEgUGFj
ayAoR2RrX1BvaW50KTsKICAgZm9yIEdka19Qb2ludCdTaXplIHVzZSBHaW50J1NpemU7CgogICB0
eXBlIEdka19Qb2ludHNfQXJyYXkgaXMgYXJyYXkgKFBvc2l0aXZlIHJhbmdlIDw+KSBvZiBHZGtf
UG9pbnQ7CiAgIHByYWdtYSBQYWNrIChHZGtfUG9pbnRzX0FycmF5KTsKCiAgIHR5cGUgR2RrX1Nl
Z21lbnQgaXMgcmVjb3JkCiAgICAgIFgxIDogR2ludDE2OwogICAgICBZMSA6IEdpbnQxNjsKICAg
ICAgWDIgOiBHaW50MTY7CiAgICAgIFkyIDogR2ludDE2OwogICBlbmQgcmVjb3JkOwogICBwcmFn
bWEgUGFjayAoR2RrX1NlZ21lbnQpOwogICBmb3IgR2RrX1NlZ21lbnQnU2l6ZSB1c2UgNjQ7Cgog
ICB0eXBlIEdka19TZWdtZW50c19BcnJheSBpcyBhcnJheSAoUG9zaXRpdmUgcmFuZ2UgPD4pIG9m
IEdka19TZWdtZW50OwogICBwcmFnbWEgUGFjayAoR2RrX1NlZ21lbnRzX0FycmF5KTsKCiAgIC0t
CiAgIC0tICBTZWUgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBhIGxpc3Qgb2YgYWxsIHRoZSB0
eXBlcyB0aGF0CiAgIC0tICBoYXZlIG5vdCBiZWVuICJib3VuZCIuCiAgIC0tCgogICB0eXBlIEdk
a19BdG9tIGlzIG5ldyBHdWxvbmc7CiAgIC0tICBUaGlzIHR5cGUgcmVwcmVzZW50cyBhIHByb3Bl
cnR5IG9mIHRoZSBYLXNlcnZlciwgdGhhdCBjYW4gYmUKICAgLS0gIG1hbmlwdWxhdGVkIHRocm91
Z2ggZnVuY3Rpb25zIGluIEdkay5Qcm9wZXJ0eS4gVGhleSBoYXZlIGFuIGFzc29jaWF0ZWQKICAg
LS0gIG5hbWUsIHRoYXQgY2FuIGJlIHByaW50ZWQsIGFzIHdlbGwgYXMgYSB2YWx1ZSB3aG9zZSB0
eXBlIG1heSB2YXJ5LgoKICAgdHlwZSBHZGtfQXhpc19Vc2UgaXMKICAgICAoQXhpc19JZ25vcmUs
CiAgICAgIEF4aXNfWCwKICAgICAgQXhpc19ZLAogICAgICBBeGlzX1ByZXNzdXJlLAogICAgICBB
eGlzX1hfVGlsdCwKICAgICAgQXhpc19ZX1RpbHQsCiAgICAgIEF4aXNfTGFzdCk7CgogICB0eXBl
IEdka19CeXRlX09yZGVyIGlzIChMc2JfRmlyc3QsIE1zYl9GaXJzdCk7CgogICB0eXBlIEdka19D
YXBfU3R5bGUgaXMgKENhcF9Ob3RfTGFzdCwgQ2FwX0J1dHQsIENhcF9Sb3VuZCwgQ2FwX1Byb2pl
Y3RpbmcpOwoKICAgdHlwZSBHZGtfQ3Jvc3NpbmdfTW9kZSBpcyAoQ3Jvc3NpbmdfTm9ybWFsLCBD
cm9zc2luZ19HcmFiLCBDcm9zc2luZ19VbmdyYWIpOwoKICAgdHlwZSBHZGtfQ3Vyc29yX1R5cGUg
aXMKICAgICAoWF9DdXJzb3IsCiAgICAgIEFycm93LAogICAgICBCYXNlZF9BcnJvd19Eb3duLAog
ICAgICBCYXNlZF9BcnJvd19VcCwKICAgICAgQm9hdCwKICAgICAgQm9nb3NpdHksCiAgICAgIEJv
dHRvbV9MZWZ0X0Nvcm5lciwKICAgICAgQm90dG9tX1JpZ2h0X0Nvcm5lciwKICAgICAgQm90dG9t
X1NpZGUsCiAgICAgIEJvdHRvbV9UZWUsCiAgICAgIEJveF9TcGlyYWwsCiAgICAgIENlbnRlcl9Q
dHIsCiAgICAgIENpcmNsZSwKICAgICAgQ2xvY2ssCiAgICAgIENvZmZlZV9NdWcsCiAgICAgIENy
b3NzLAogICAgICBDcm9zc19SZXZlcnNlLAogICAgICBDcm9zc2hhaXIsCiAgICAgIERpYW1vbmRf
Q3Jvc3MsCiAgICAgIERvdCwKICAgICAgRG90Ym94LAogICAgICBEb3VibGVfQXJyb3csCiAgICAg
IERyYWZ0X0xhcmdlLAogICAgICBEcmFmdF9TbWFsbCwKICAgICAgRHJhcGVkX0JveCwKICAgICAg
RXhjaGFuZ2UsCiAgICAgIEZsZXVyLAogICAgICBHb2JibGVyLAogICAgICBHdW1ieSwKICAgICAg
SGFuZDEsCiAgICAgIEhhbmQyLAogICAgICBIZWFydCwKICAgICAgSWNvbiwKICAgICAgSXJvbl9D
cm9zcywKICAgICAgTGVmdF9QdHIsCiAgICAgIExlZnRfU2lkZSwKICAgICAgTGVmdF9UZWUsCiAg
ICAgIExlZnRidXR0b24sCiAgICAgIExsX0FuZ2xlLAogICAgICBMcl9BbmdsZSwKICAgICAgTWFu
LAogICAgICBNaWRkbGVidXR0b24sCiAgICAgIE1vdXNlLAogICAgICBQZW5jaWwsCiAgICAgIFBp
cmF0ZSwKICAgICAgUGx1cywKICAgICAgUXVlc3Rpb25fQXJyb3csCiAgICAgIFJpZ2h0X1B0ciwK
ICAgICAgUmlnaHRfU2lkZSwKICAgICAgUmlnaHRfVGVlLAogICAgICBSaWdodGJ1dHRvbiwKICAg
ICAgUnRsX0xvZ28sCiAgICAgIFNhaWxib2F0LAogICAgICBTYl9Eb3duX0Fycm93LAogICAgICBT
Yl9IX0RvdWJsZV9BcnJvdywKICAgICAgU2JfTGVmdF9BcnJvdywKICAgICAgU2JfUmlnaHRfQXJy
b3csCiAgICAgIFNiX1VwX0Fycm93LAogICAgICBTYl9WX0RvdWJsZV9BcnJvdywKICAgICAgU2h1
dHRsZSwKICAgICAgU2l6aW5nLAogICAgICBTcGlkZXIsCiAgICAgIFNwcmF5Y2FuLAogICAgICBT
dGFyLAogICAgICBUYXJnZXQsCiAgICAgIFRjcm9zcywKICAgICAgVG9wX0xlZnRfQXJyb3csCiAg
ICAgIFRvcF9MZWZ0X0Nvcm5lciwKICAgICAgVG9wX1JpZ2h0X0Nvcm5lciwKICAgICAgVG9wX1Np
ZGUsCiAgICAgIFRvcF9UZWUsCiAgICAgIFRyZWssCiAgICAgIFVsX0FuZ2xlLAogICAgICBVbWJy
ZWxsYSwKICAgICAgVXJfQW5nbGUsCiAgICAgIFdhdGNoLAogICAgICBYdGVybSk7CgogICB0eXBl
IEdka19EZXZpY2VfSWQgaXMgbmV3IEd1aW50MzI7CiAgIC0tICBUaGlzIHR5cGUgaXMgc3BlY2lm
aWMgdG8gR3RrQWRhLiBJbiBHZGssIGd1aW50MzIgaXMgdXNlZCBpbnN0ZWFkLgoKICAgdHlwZSBH
ZGtfRXZlbnRfTWFzayBpcyBtb2QgMiAqKiAyMTsKICAgLS0gIE5vdGUgdGhhdCB5b3UgbmVlZCB0
byBjaGFuZ2UgdGhlIGV2ZW50IG1hc2sgb2YgYSB3aWRnZXQgaWYgeW91IHdhbnQKICAgLS0gIHRv
IGJlIGFibGUgdG8gZ2V0IHNvbWUgZXZlbnRzLiBUbyBjaGFuZ2UgdGhpcyBtYXNrLCB0aGUgd2lk
Z2V0CiAgIC0tICBtdXN0IGZpcnN0IGJlIFVucmVhbGl6ZWQuCgogICBOdWxsX0V2ZW50X01hc2sg
ICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsKICAgRXhwb3N1cmVfTWFzayAgICAg
ICAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2s7CgogICBQb2ludGVyX01vdGlvbl9NYXNr
ICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsKICAgLS0gIEV2ZXJ5IHRpbWUgdGhlIG1v
dXNlIG1vdmVzLCBHdGtBZGEgd2lsbCBzZW5kIGEgTW90aW9uX05vdGlmeSBldmVudC4KICAgLS0g
IFRoZXNlIGV2ZW50cyB3aWxsIGJlIHNlbnQgYXMgZmFzdCBhcyBwb3NzaWJsZSwgYW5kIHlvdXIg
YXBwbGljYXRpb24KICAgLS0gIG5lZWRzIHRvIGJlIGFibGUgdG8gcmVzcG9uZCBhcyBmYXN0IGFz
IHBvc3NpYmxlIChnZW5lcmFsbHkgYWJvdXQKICAgLS0gIDIwMCBldmVudHMgcGVyIHNlY29uZCku
CgogICBQb2ludGVyX01vdGlvbl9IaW50X01hc2sgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsK
ICAgLS0gIEd0a0FkYSB3aWxsIG9ubHkgc2VuZCBvbmUgTW90aW9uX05vdGlmeSBldmVudCB3aGVu
IHRoZSBtb3VzZSBtb3Zlcy4KICAgLS0gIFRoZSBoYW5kbGVyIHNob3VsZCBjYWxsIEdkay5XaW5k
b3cuR2V0X1BvaW50ZXIsIHRvIGdldCB0aGUgY3VycmVudAogICAtLSAgcG9zaXRpb24gYW5kIHNp
Z25hbHMgR3RrQWRhIHRoYXQgaXQgaXMgcmVhZHkgdG8gZ2V0IGFub3RoZXIKICAgLS0gIE1vdGlv
bl9Ob3RpZnkgc2lnbmFsLiBObyBuZXcgTW90aW9uX05vdGlmeSB3aWxsIGJlIHNlbnQgdW50aWwK
ICAgLS0gIEdldF9Qb2ludGVyIGhhcyBiZWVuIGNhbGxlZC4KCiAgIEJ1dHRvbl9Nb3Rpb25fTWFz
ayAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrOwogICBCdXR0b24xX01vdGlvbl9NYXNr
ICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsKICAgQnV0dG9uMl9Nb3Rpb25fTWFzayAg
ICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2s7CiAgIEJ1dHRvbjNfTW90aW9uX01hc2sgICAg
ICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrOwogICBCdXR0b25fUHJlc3NfTWFzayAgICAgICAg
OiBjb25zdGFudCBHZGtfRXZlbnRfTWFzazsKICAgQnV0dG9uX1JlbGVhc2VfTWFzayAgICAgIDog
Y29uc3RhbnQgR2RrX0V2ZW50X01hc2s7CiAgIEtleV9QcmVzc19NYXNrICAgICAgICAgICA6IGNv
bnN0YW50IEdka19FdmVudF9NYXNrOwogICBLZXlfUmVsZWFzZV9NYXNrICAgICAgICAgOiBjb25z
dGFudCBHZGtfRXZlbnRfTWFzazsKICAgRW50ZXJfTm90aWZ5X01hc2sgICAgICAgIDogY29uc3Rh
bnQgR2RrX0V2ZW50X01hc2s7CiAgIExlYXZlX05vdGlmeV9NYXNrICAgICAgICA6IGNvbnN0YW50
IEdka19FdmVudF9NYXNrOwogICBGb2N1c19DaGFuZ2VfTWFzayAgICAgICAgOiBjb25zdGFudCBH
ZGtfRXZlbnRfTWFzazsKICAgU3RydWN0dXJlX01hc2sgICAgICAgICAgIDogY29uc3RhbnQgR2Rr
X0V2ZW50X01hc2s7CiAgIFByb3BlcnR5X0NoYW5nZV9NYXNrICAgICA6IGNvbnN0YW50IEdka19F
dmVudF9NYXNrOwogICBWaXNpYmlsaXR5X05vdGlmeV9NYXNrICAgOiBjb25zdGFudCBHZGtfRXZl
bnRfTWFzazsKICAgUHJveGltaXR5X0luX01hc2sgICAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50
X01hc2s7CiAgIFByb3hpbWl0eV9PdXRfTWFzayAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9N
YXNrOwogICBBbGxfRXZlbnRzX01hc2sgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFz
azsKCiAgIHR5cGUgR2RrX0V2ZW50X1R5cGUgaXMKICAgICAoTm90aGluZywKICAgICAgRGVsZXRl
LAogICAgICBEZXN0cm95LAogICAgICBFeHBvc2UsCiAgICAgIE1vdGlvbl9Ob3RpZnksCiAgICAg
IEJ1dHRvbl9QcmVzcywKICAgICAgR2RrXzJidXR0b25fUHJlc3MsICAtLSAgRG91YmxlLWNsaWNr
CiAgICAgIEdka18zYnV0dG9uX1ByZXNzLCAgLS0gIFRyaXBsZS1jbGljawogICAgICBCdXR0b25f
UmVsZWFzZSwKICAgICAgS2V5X1ByZXNzLAogICAgICBLZXlfUmVsZWFzZSwKICAgICAgRW50ZXJf
Tm90aWZ5LAogICAgICBMZWF2ZV9Ob3RpZnksCiAgICAgIEZvY3VzX0NoYW5nZSwKICAgICAgQ29u
ZmlndXJlLAogICAgICBNYXAsCiAgICAgIFVubWFwLAogICAgICBQcm9wZXJ0eV9Ob3RpZnksCiAg
ICAgIFNlbGVjdGlvbl9DbGVhciwKICAgICAgU2VsZWN0aW9uX1JlcXVlc3QsCiAgICAgIFNlbGVj
dGlvbl9Ob3RpZnksCiAgICAgIFByb3hpbWl0eV9JbiwKICAgICAgUHJveGltaXR5X091dCwKICAg
ICAgRHJhZ19FbnRlciwKICAgICAgRHJhZ19MZWF2ZSwKICAgICAgRHJhZ19Nb3Rpb24sCiAgICAg
IERyYWdfU3RhdHVzLAogICAgICBEcm9wX1N0YXJ0LAogICAgICBEcm9wX0ZpbmlzaGVkLAogICAg
ICBDbGllbnRfRXZlbnQsCiAgICAgIFZpc2liaWxpdHlfTm90aWZ5LAogICAgICBOb19FeHBvc2Up
OwoKICAgdHlwZSBHZGtfRXh0ZW5zaW9uX01vZGUgaXMKICAgICAoRXh0ZW5zaW9uX0V2ZW50c19O
b25lLCBFeHRlbnNpb25fRXZlbnRzX0FsbCwgRXh0ZW5zaW9uX0V2ZW50c19DdXJzb3IpOwoKICAg
dHlwZSBHZGtfRmlsbCBpcyAoU29saWQsIFRpbGVkLCBTdGlwcGxlZCwgT3BhcXVlX1N0aXBwbGVk
KTsKCiAgIHR5cGUgR2RrX0ZpbGxfUnVsZSBpcyAoRXZlbl9PZGRfUnVsZSwgV2luZGluZ19SdWxl
KTsKCiAgIHR5cGUgR2RrX0Z1bmN0aW9uIGlzCiAgICAgKENvcHksCiAgICAgIEludmVydCwKICAg
ICAgR2RrX1hvciwKICAgICAgQ2xlYXIsCiAgICAgIEdka19BbmQsCiAgICAgIEFuZF9SZXZlcnNl
LAogICAgICBBbmRfSW52ZXJ0LAogICAgICBOb29wLAogICAgICBHZGtfT3IsCiAgICAgIEVxdWl2
LAogICAgICBPcl9SZXZlcnNlLAogICAgICBDb3B5X0ludmVydCwKICAgICAgT3JfSW52ZXJ0LAog
ICAgICBOYW5kLAogICAgICBTZXQpOwoKICAgdHlwZSBHZGtfSm9pbl9TdHlsZSBpcyAoSm9pbl9N
aXRlciwgSm9pbl9Sb3VuZCwgSm9pbl9CZXZlbCk7CgogICB0eXBlIEdka19JQ19BdHRyaWJ1dGVz
X1R5cGUgaXMgbmV3IEd1aW50OwogICBJY19TdHlsZSAgICAgICAgICAgICAgICA6IGNvbnN0YW50
IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX0NsaWVudF9XaW5kb3cgICAgICAgIDogY29u
c3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfRm9jdXNfV2luZG93ICAgICAgICAg
OiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19GaWx0ZXJfRXZlbnRzICAg
ICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX1Nwb3RfTG9jYXRp
b24gICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfTGluZV9T
cGFjaW5nICAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19D
dXJzb3IgICAgICAgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAg
IEljX1ByZWVkaXRfRm9udHNldCAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlw
ZTsKICAgSWNfUHJlZWRpdF9BcmVhICAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRl
c19UeXBlOwogICBJY19QcmVlZGl0X0FyZWFfTmVlZGVkICA6IGNvbnN0YW50IEdka19JQ19BdHRy
aWJ1dGVzX1R5cGU7CiAgIEljX1ByZWVkaXRfRm9yZWdyb3VuZCAgIDogY29uc3RhbnQgR2RrX0lD
X0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfUHJlZWRpdF9CYWNrZ3JvdW5kICAgOiBjb25zdGFudCBH
ZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19QcmVlZGl0X1BpeG1hcCAgICAgICA6IGNvbnN0
YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX1ByZWVkaXRfQ29sb3JtYXAgICAgIDog
Y29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfU3RhdHVzX0ZvbnRzZXQgICAg
ICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19TdGF0dXNfQXJlYSAg
ICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CiAgIEljX1N0YXR1c19B
cmVhX05lZWRlZCAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfU3Rh
dHVzX0ZvcmVncm91bmQgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJ
Y19TdGF0dXNfQmFja2dyb3VuZCAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7
CiAgIEljX1N0YXR1c19QaXhtYXAgICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNf
VHlwZTsKICAgSWNfU3RhdHVzX0NvbG9ybWFwICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmli
dXRlc19UeXBlOwogICBJY19BbGxfUmVxICAgICAgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19B
dHRyaWJ1dGVzX1R5cGU7CiAgIEljX1ByZWVkaXRfQXJlYV9SZXEgICAgIDogY29uc3RhbnQgR2Rr
X0lDX0F0dHJpYnV0ZXNfVHlwZTsKICAgSWNfUHJlZWRpdF9Qb3NpdGlvbl9SZXEgOiBjb25zdGFu
dCBHZGtfSUNfQXR0cmlidXRlc19UeXBlOwogICBJY19TdGF0dXNfQXJlYV9SZXEgICAgICA6IGNv
bnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGU7CgogICB0eXBlIEdka19JTV9TdHlsZSBpcyBu
ZXcgR3VpbnQ7CiAgIEltX1ByZWVkaXRfQXJlYSAgICAgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxl
OwogICBJbV9QcmVlZGl0X0NhbGxiYWNrcyA6IGNvbnN0YW50IEdka19JTV9TdHlsZTsKICAgSW1f
UHJlZWRpdF9Qb3NpdGlvbiAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGU7CiAgIEltX1ByZWVkaXRf
Tm90aGluZyAgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlOwogICBJbV9QcmVlZGl0X05vbmUgICAg
ICA6IGNvbnN0YW50IEdka19JTV9TdHlsZTsKICAgSW1fUHJlZWRpdF9NYXNrICAgICAgOiBjb25z
dGFudCBHZGtfSU1fU3R5bGU7CiAgIEltX1N0YXR1c19BcmVhICAgICAgIDogY29uc3RhbnQgR2Rr
X0lNX1N0eWxlOwogICBJbV9TdGF0dXNfQ2FsbGJhY2tzICA6IGNvbnN0YW50IEdka19JTV9TdHls
ZTsKICAgSW1fU3RhdHVzX05vdGhpbmcgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGU7CiAgIElt
X1N0YXR1c19Ob25lICAgICAgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlOwogICBJbV9TdGF0dXNf
TWFzayAgICAgICA6IGNvbnN0YW50IEdka19JTV9TdHlsZTsKCiAgIHR5cGUgR2RrX0lucHV0X0Nv
bmRpdGlvbiBpcyAoSW5wdXRfUmVhZCwgSW5wdXRfV3JpdGUsIElucHV0X0V4Y2VwdGlvbik7Cgog
ICB0eXBlIEdka19JbnB1dF9Nb2RlIGlzIChNb2RlX0Rpc2FibGVkLCBNb2RlX1NjcmVlbiwgTW9k
ZV9XaW5kb3cpOwoKICAgdHlwZSBHZGtfSW5wdXRfU291cmNlIGlzCiAgICAgKFNvdXJjZV9Nb3Vz
ZSwKICAgICAgU291cmNlX1BlbiwKICAgICAgU291cmNlX0VyYXNlciwKICAgICAgU291cmNlX0N1
cnNvcik7CgogICB0eXBlIEdka19LZXlfVHlwZSBpcyBuZXcgR3VpbnQ7CiAgIC0tICBzZWUgR2Rr
LlR5cGVzLktleXN5bXMgZm9yIGtleSB0eXBlIGNvbnN0YW50cwoKICAgdHlwZSBHZGtfTGluZV9T
dHlsZSBpcyAoTGluZV9Tb2xpZCwgTGluZV9Pbl9PZmZfRGFzaCwgTGluZV9Eb3VibGVfRGFzaCk7
CgogICB0eXBlIEdka19Nb2RpZmllcl9UeXBlIGlzIG5ldyBHdWludDsKICAgU2hpZnRfTWFzayAg
ICA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBMb2NrX01hc2sgICAgIDogY29uc3Rh
bnQgR2RrX01vZGlmaWVyX1R5cGU7CiAgIENvbnRyb2xfTWFzayAgOiBjb25zdGFudCBHZGtfTW9k
aWZpZXJfVHlwZTsKICAgTW9kMV9NYXNrICAgICA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBl
OwogICBNb2QyX01hc2sgICAgIDogY29uc3RhbnQgR2RrX01vZGlmaWVyX1R5cGU7CiAgIE1vZDNf
TWFzayAgICAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJfVHlwZTsKICAgTW9kNF9NYXNrICAgICA6
IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBNb2Q1X01hc2sgICAgIDogY29uc3RhbnQg
R2RrX01vZGlmaWVyX1R5cGU7CiAgIEJ1dHRvbjFfTWFzayAgOiBjb25zdGFudCBHZGtfTW9kaWZp
ZXJfVHlwZTsKICAgQnV0dG9uMl9NYXNrICA6IGNvbnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwog
ICBCdXR0b24zX01hc2sgIDogY29uc3RhbnQgR2RrX01vZGlmaWVyX1R5cGU7CiAgIEJ1dHRvbjRf
TWFzayAgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJfVHlwZTsKICAgQnV0dG9uNV9NYXNrICA6IGNv
bnN0YW50IEdka19Nb2RpZmllcl9UeXBlOwogICBSZWxlYXNlX01hc2sgIDogY29uc3RhbnQgR2Rr
X01vZGlmaWVyX1R5cGU7CiAgIE1vZGlmaWVyX01hc2sgOiBjb25zdGFudCBHZGtfTW9kaWZpZXJf
VHlwZTsKCiAgIHR5cGUgR2RrX05vdGlmeV9UeXBlIGlzCiAgICAgKE5vdGlmeV9BbmNlc3RvciwK
ICAgICAgTm90aWZ5X1ZpcnR1YWwsCiAgICAgIE5vdGlmeV9JbmZlcmlvciwKICAgICAgTm90aWZ5
X05vbl9MaW5lYXIsCiAgICAgIE5vdGlmeV9Ob25fTGluZWFyX1ZpcnR1YWwsCiAgICAgIE5vdGlm
eV9Vbmtub3duKTsKCiAgIHR5cGUgR2RrX092ZXJsYXBfVHlwZSBpcwogICAgIChPdmVybGFwX1Jl
Y3RhbmdsZV9JbiwKICAgICAgT3ZlcmxhcF9SZWN0YW5nbGVfT3V0LAogICAgICBPdmVybGFwX1Jl
Y3RhbmdsZV9QYXJ0KTsKCiAgIHR5cGUgR2RrX1Byb3BfTW9kZSBpcwogICAgIChQcm9wX01vZGVf
UmVwbGFjZSwgUHJvcF9Nb2RlX1ByZXBlbmQsIFByb3BfTW9kZV9BcHBlbmQpOwoKICAgdHlwZSBH
ZGtfU3Vid2luZG93X01vZGUgaXMgKENsaXBfQnlfQ2hpbGRyZW4sIEluY2x1ZGVfSW5mZXJpb3Jz
KTsKCiAgIHR5cGUgR2RrX0dDX1ZhbHVlc19NYXNrIGlzIG5ldyBHdWludDsKICAgR0NfRm9yZWdy
b3VuZCAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfQmFja2dyb3VuZCAg
ICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfRm9udCAgICAgICAgICA6IGNv
bnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfRnVuY3Rpb24gICAgICA6IGNvbnN0YW50
IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfRmlsbCAgICAgICAgICA6IGNvbnN0YW50IEdka19H
Q19WYWx1ZXNfTWFzazsKICAgR0NfVGlsZSAgICAgICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1
ZXNfTWFzazsKICAgR0NfU3RpcHBsZSAgICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFz
azsKICAgR0NfQ2xpcF9NYXNrICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAg
R0NfU3Vid2luZG93ICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfVHNf
WF9PcmlnaW4gICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfVHhfWV9Pcmln
aW4gICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfQ2xpcF9YX09yaWdpbiA6
IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfQ2xpcF9ZX09yaWdpbiA6IGNvbnN0
YW50IEdka19HQ19WYWx1ZXNfTWFzazsKICAgR0NfRXhwb3N1cmVzICAgICA6IGNvbnN0YW50IEdk
a19HQ19WYWx1ZXNfTWFzazsKICAgR0NfTGluZV9XaWR0aCAgICA6IGNvbnN0YW50IEdka19HQ19W
YWx1ZXNfTWFzazsKICAgR0NfTGluZV9TdHlsZSAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNf
TWFzazsKICAgR0NfQ2FwX1N0eWxlICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsK
ICAgR0NfSm9pbl9TdHlsZSAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzazsKCiAgIHR5
cGUgR2RrX1Zpc2liaWxpdHlfU3RhdGUgaXMKICAgICAoVmlzaWJpbGl0eV9Vbm9ic2N1cmVkLAog
ICAgICBWaXNpYmlsaXR5X1BhcnRpYWwsCiAgICAgIFZpc2liaWxpdHlfRnVsbHlfT2JzY3VyZWQp
OwoKICAgdHlwZSBHZGtfVmlzdWFsX1R5cGUgaXMKICAgICAoVmlzdWFsX1N0YXRpY19HcmF5LAog
ICAgICBWaXN1YWxfR3JheXNjYWxlLAogICAgICBWaXN1YWxfU3RhdGljX0NvbG9yLAogICAgICBW
aXN1YWxfUHNldWRvX0NvbG9yLAogICAgICBWaXN1YWxfVHJ1ZV9Db2xvciwKICAgICAgVmlzdWFs
X0RpcmVjdF9Db2xvcik7CgogICB0eXBlIEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlIGlzIG5l
dyBHdWludDsKICAgV2FfVGl0bGUgICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNf
VHlwZTsKICAgV2FfWCAgICAgICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlw
ZTsKICAgV2FfWSAgICAgICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsK
ICAgV2FfQ3Vyc29yICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsKICAg
V2FfQ29sb3JtYXAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsKICAgV2Ff
VmlzdWFsICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsKICAgV2FfV21j
bGFzcyAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsKICAgV2FfTm9yZWRp
ciAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZTsKCiAgIHR5cGUgR2RrX1dp
bmRvd19DbGFzcyBpcyAoSW5wdXRfT3V0cHV0LCBJbnB1dF9Pbmx5KTsKCiAgIHR5cGUgR2RrX1dp
bmRvd19IaW50cyBpcyBuZXcgR3VpbnQ7CiAgIEdka19IaW50X1BvcyAgICAgICAgOiBjb25zdGFu
dCBHZGtfV2luZG93X0hpbnRzOwogICBHZGtfSGludF9NaW5fU2l6ZSAgIDogY29uc3RhbnQgR2Rr
X1dpbmRvd19IaW50czsKICAgR2RrX0hpbnRfTWF4X1NpemUgICA6IGNvbnN0YW50IEdka19XaW5k
b3dfSGludHM7CiAgIEdka19IaW50X0Jhc2VfU2l6ZSAgOiBjb25zdGFudCBHZGtfV2luZG93X0hp
bnRzOwogICBHZGtfSGludF9Bc3BlY3QgICAgIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50czsK
ICAgR2RrX0hpbnRfUmVzaXplX0luYyA6IGNvbnN0YW50IEdka19XaW5kb3dfSGludHM7CgogICB0
eXBlIEdka19XaW5kb3dfVHlwZSBpcwogICAgIChXaW5kb3dfUm9vdCwKICAgICAgV2luZG93X1Rv
cGxldmVsLAogICAgICBXaW5kb3dfQ2hpbGQsCiAgICAgIFdpbmRvd19EaWFsb2csCiAgICAgIFdp
bmRvd19UZW1wLAogICAgICBXaW5kb3dfUGl4bWFwLAogICAgICBXaW5kb3dfRm9yZWlnbik7Cgog
ICB0eXBlIEdka19XbV9EZWNvcmF0aW9uIGlzIG5ldyBHdWludDsKICAgRGVjb3JfQWxsICAgICAg
OiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbjsKICAgRGVjb3JfQm9yZGVyICAgOiBjb25zdGFu
dCBHZGtfV21fRGVjb3JhdGlvbjsKICAgRGVjb3JfUmVzaXplX0ggOiBjb25zdGFudCBHZGtfV21f
RGVjb3JhdGlvbjsKICAgRGVjb3JfVGl0bGUgICAgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlv
bjsKICAgRGVjb3JfTWVudSAgICAgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbjsKICAgRGVj
b3JfTWluaW1pemUgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbjsKICAgRGVjb3JfTWF4aW1p
emUgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbjsKCiAgIHR5cGUgR2RrX1dtX0Z1bmN0aW9u
IGlzIG5ldyBHdWludDsKICAgRnVuY19BbGwgICAgICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlv
bjsKICAgRnVuY19SZXNpemUgICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbjsKICAgRnVuY19N
b3ZlICAgICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbjsKICAgRnVuY19NaW5pbWl6ZSA6IGNv
bnN0YW50IEdka19XbV9GdW5jdGlvbjsKICAgRnVuY19NYXhpbWl6ZSA6IGNvbnN0YW50IEdka19X
bV9GdW5jdGlvbjsKICAgRnVuY19DbG9zZSAgICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbjsK
CiAgIHN1YnR5cGUgR2RrX1dDaGFyIGlzIFN0YW5kYXJkLldpZGVfQ2hhcmFjdGVyOwogICBzdWJ0
eXBlIEdka19XU3RyaW5nIGlzIFN0YW5kYXJkLldpZGVfU3RyaW5nOwogICAtLSAgR2RrIGRvZXMg
bm90IGRlZmluZSBhIEdka19XU3RyaW5nIHR5cGUsIGJ1dCB1c2VzIHBvaW50ZXJzCiAgIC0tICB0
byBHZGtfV0NoYXIgaW5zdGVhZC4KCnByaXZhdGUKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgLS0gIFByaXZhdGUgY29uc3RhbnRzICAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCgogICBOdWxsX0V2ZW50X01hc2sgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFz
ayA6PSAwOwogICBFeHBvc3VyZV9NYXNrICAgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRf
TWFzayA6PSAyICoqIDE7CiAgIFBvaW50ZXJfTW90aW9uX01hc2sgICAgICA6IGNvbnN0YW50IEdk
a19FdmVudF9NYXNrIDo9IDIgKiogMjsKICAgUG9pbnRlcl9Nb3Rpb25fSGludF9NYXNrIDogY29u
c3RhbnQgR2RrX0V2ZW50X01hc2sgOj0gMiAqKiAzOwogICBCdXR0b25fTW90aW9uX01hc2sgICAg
ICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDQ7CiAgIEJ1dHRvbjFfTW90aW9u
X01hc2sgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9NYXNrIDo9IDIgKiogNTsKICAgQnV0dG9u
Ml9Nb3Rpb25fTWFzayAgICAgIDogY29uc3RhbnQgR2RrX0V2ZW50X01hc2sgOj0gMiAqKiA2Owog
ICBCdXR0b24zX01vdGlvbl9NYXNrICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAy
ICoqIDc7CiAgIEJ1dHRvbl9QcmVzc19NYXNrICAgICAgICA6IGNvbnN0YW50IEdka19FdmVudF9N
YXNrIDo9IDIgKiogODsKICAgQnV0dG9uX1JlbGVhc2VfTWFzayAgICAgIDogY29uc3RhbnQgR2Rr
X0V2ZW50X01hc2sgOj0gMiAqKiA5OwogICBLZXlfUHJlc3NfTWFzayAgICAgICAgICAgOiBjb25z
dGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDEwOwogICBLZXlfUmVsZWFzZV9NYXNrICAgICAg
ICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDExOwogICBFbnRlcl9Ob3RpZnlf
TWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDEyOwogICBMZWF2
ZV9Ob3RpZnlfTWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDEz
OwogICBGb2N1c19DaGFuZ2VfTWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6
PSAyICoqIDE0OwogICBTdHJ1Y3R1cmVfTWFzayAgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZl
bnRfTWFzayA6PSAyICoqIDE1OwogICBQcm9wZXJ0eV9DaGFuZ2VfTWFzayAgICAgOiBjb25zdGFu
dCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDE2OwogICBWaXNpYmlsaXR5X05vdGlmeV9NYXNrICAg
OiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDE3OwogICBQcm94aW1pdHlfSW5fTWFz
ayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDE4OwogICBQcm94aW1p
dHlfT3V0X01hc2sgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAyICoqIDE5Owog
ICBTdWJzdHJ1Y3R1cmVfTWFzayAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRfTWFzayA6PSAy
ICoqIDIwOwogICBBbGxfRXZlbnRzX01hc2sgICAgICAgICAgOiBjb25zdGFudCBHZGtfRXZlbnRf
TWFzayA6PSAxNiMxRkZGRkYjOwoKICAgSWNfU3R5bGUgICAgICAgICAgICAgICAgOiBjb25zdGFu
dCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMDsKICAgSWNfQ2xpZW50X1dpbmRvdyAg
ICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMTsKICAgSWNf
Rm9jdXNfV2luZG93ICAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9
IDIgKiogMjsKICAgSWNfRmlsdGVyX0V2ZW50cyAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0
cmlidXRlc19UeXBlIDo9IDIgKiogMzsKICAgSWNfU3BvdF9Mb2NhdGlvbiAgICAgICAgOiBjb25z
dGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogNDsKICAgSWNfTGluZV9TcGFjaW5n
ICAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogNTsKICAg
SWNfQ3Vyc29yICAgICAgICAgICAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBl
IDo9IDIgKiogNjsKICAgSWNfUHJlZWRpdF9Gb250c2V0ICAgICAgOiBjb25zdGFudCBHZGtfSUNf
QXR0cmlidXRlc19UeXBlIDo9IDIgKiogMTA7CiAgIEljX1ByZWVkaXRfQXJlYSAgICAgICAgIDog
Y29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDExOwogICBJY19QcmVlZGl0
X0FyZWFfTmVlZGVkICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAx
MjsKICAgSWNfUHJlZWRpdF9Gb3JlZ3JvdW5kICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRl
c19UeXBlIDo9IDIgKiogMTM7CiAgIEljX1ByZWVkaXRfQmFja2dyb3VuZCAgIDogY29uc3RhbnQg
R2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDE0OwogICBJY19QcmVlZGl0X1BpeG1hcCAg
ICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAxNTsKICAgSWNf
UHJlZWRpdF9Db2xvcm1hcCAgICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9
IDIgKiogMTY7CiAgIEljX1N0YXR1c19Gb250c2V0ICAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0
dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDIxOwogICBJY19TdGF0dXNfQXJlYSAgICAgICAgICA6IGNv
bnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyMjsKICAgSWNfU3RhdHVzX0Fy
ZWFfTmVlZGVkICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMjM7
CiAgIEljX1N0YXR1c19Gb3JlZ3JvdW5kICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNf
VHlwZSA6PSAyICoqIDI0OwogICBJY19TdGF0dXNfQmFja2dyb3VuZCAgICA6IGNvbnN0YW50IEdk
a19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyNTsKICAgSWNfU3RhdHVzX1BpeG1hcCAgICAg
ICAgOiBjb25zdGFudCBHZGtfSUNfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMjY7CiAgIEljX1N0
YXR1c19Db2xvcm1hcCAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNfVHlwZSA6PSAy
ICoqIDI3OwogICBJY19BbGxfUmVxICAgICAgICAgICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRy
aWJ1dGVzX1R5cGUgOj0KICAgICBJY19TdHlsZSBvciBJY19DbGllbnRfV2luZG93OwogICBJY19Q
cmVlZGl0X0FyZWFfUmVxICAgICA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0K
ICAgICBJY19QcmVlZGl0X0FyZWEgb3IgSWNfUHJlZWRpdF9Gb250c2V0OwogICBJY19QcmVlZGl0
X1Bvc2l0aW9uX1JlcSA6IGNvbnN0YW50IEdka19JQ19BdHRyaWJ1dGVzX1R5cGUgOj0KICAgICBJ
Y19QcmVlZGl0X0FyZWEgb3IgSWNfU3BvdF9Mb2NhdGlvbiBvciBJY19QcmVlZGl0X0ZvbnRzZXQ7
CiAgIEljX1N0YXR1c19BcmVhX1JlcSAgICAgIDogY29uc3RhbnQgR2RrX0lDX0F0dHJpYnV0ZXNf
VHlwZSA6PQogICAgIEljX1N0YXR1c19BcmVhIG9yIEljX1N0YXR1c19Gb250c2V0OwoKICAgSW1f
UHJlZWRpdF9BcmVhICAgICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGUgOj0gMTYjMDAwMSM7CiAg
IEltX1ByZWVkaXRfQ2FsbGJhY2tzIDogY29uc3RhbnQgR2RrX0lNX1N0eWxlIDo9IDE2IzAwMDIj
OwogICBJbV9QcmVlZGl0X1Bvc2l0aW9uICA6IGNvbnN0YW50IEdka19JTV9TdHlsZSA6PSAxNiMw
MDA0IzsKICAgSW1fUHJlZWRpdF9Ob3RoaW5nICAgOiBjb25zdGFudCBHZGtfSU1fU3R5bGUgOj0g
MTYjMDAwOCM7CiAgIEltX1ByZWVkaXRfTm9uZSAgICAgIDogY29uc3RhbnQgR2RrX0lNX1N0eWxl
IDo9IDE2IzAwMTAjOwogICBJbV9QcmVlZGl0X01hc2sgICAgICA6IGNvbnN0YW50IEdka19JTV9T
dHlsZSA6PSAxNiMwMDFGIzsKICAgSW1fU3RhdHVzX0FyZWEgICAgICAgOiBjb25zdGFudCBHZGtf
SU1fU3R5bGUgOj0gMTYjMDEwMCM7CiAgIEltX1N0YXR1c19DYWxsYmFja3MgIDogY29uc3RhbnQg
R2RrX0lNX1N0eWxlIDo9IDE2IzAyMDAjOwogICBJbV9TdGF0dXNfTm90aGluZyAgICA6IGNvbnN0
YW50IEdka19JTV9TdHlsZSA6PSAxNiMwNDAwIzsKICAgSW1fU3RhdHVzX05vbmUgICAgICAgOiBj
b25zdGFudCBHZGtfSU1fU3R5bGUgOj0gMTYjMDgwMCM7CiAgIEltX1N0YXR1c19NYXNrICAgICAg
IDogY29uc3RhbnQgR2RrX0lNX1N0eWxlIDo9IDE2IzBGMDAjOwoKICAgU2hpZnRfTWFzayAgIDog
Y29uc3RhbnQgR2RrX01vZGlmaWVyX1R5cGUgOj0gMiAqKiAwOwogICBMb2NrX01hc2sgICAgOiBj
b25zdGFudCBHZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDE7CiAgIENvbnRyb2xfTWFzayA6IGNv
bnN0YW50IEdka19Nb2RpZmllcl9UeXBlIDo9IDIgKiogMjsKICAgTW9kMV9NYXNrICAgIDogY29u
c3RhbnQgR2RrX01vZGlmaWVyX1R5cGUgOj0gMiAqKiAzOwogICBNb2QyX01hc2sgICAgOiBjb25z
dGFudCBHZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDQ7CiAgIE1vZDNfTWFzayAgICA6IGNvbnN0
YW50IEdka19Nb2RpZmllcl9UeXBlIDo9IDIgKiogNTsKICAgTW9kNF9NYXNrICAgIDogY29uc3Rh
bnQgR2RrX01vZGlmaWVyX1R5cGUgOj0gMiAqKiA2OwogICBNb2Q1X01hc2sgICAgOiBjb25zdGFu
dCBHZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDc7CiAgIEJ1dHRvbjFfTWFzayA6IGNvbnN0YW50
IEdka19Nb2RpZmllcl9UeXBlIDo9IDIgKiogODsKICAgQnV0dG9uMl9NYXNrIDogY29uc3RhbnQg
R2RrX01vZGlmaWVyX1R5cGUgOj0gMiAqKiA5OwogICBCdXR0b24zX01hc2sgOiBjb25zdGFudCBH
ZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDEwOwogICBCdXR0b240X01hc2sgOiBjb25zdGFudCBH
ZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDExOwogICBCdXR0b241X01hc2sgOiBjb25zdGFudCBH
ZGtfTW9kaWZpZXJfVHlwZSA6PSAyICoqIDEyOwogICBSZWxlYXNlX01hc2sgIDogY29uc3RhbnQg
R2RrX01vZGlmaWVyX1R5cGUgOj0gMiAqKiAxMzsKICAgTW9kaWZpZXJfTWFzayA6IGNvbnN0YW50
IEdka19Nb2RpZmllcl9UeXBlIDo9IDE2IzNGRkYjOwoKICAgV2FfVGl0bGUgICAgOiBjb25zdGFu
dCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDE7CiAgIFdhX1ggICAgICAgIDog
Y29uc3RhbnQgR2RrX1dpbmRvd19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiAyOwogICBXYV9ZICAg
ICAgICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRlc19UeXBlIDo9IDIgKiogMzsKICAg
V2FfQ3Vyc29yICAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZSA6PSAyICoq
IDQ7CiAgIFdhX0NvbG9ybWFwIDogY29uc3RhbnQgR2RrX1dpbmRvd19BdHRyaWJ1dGVzX1R5cGUg
Oj0gMiAqKiA1OwogICBXYV9WaXN1YWwgICA6IGNvbnN0YW50IEdka19XaW5kb3dfQXR0cmlidXRl
c19UeXBlIDo9IDIgKiogNjsKICAgV2FfV21jbGFzcyAgOiBjb25zdGFudCBHZGtfV2luZG93X0F0
dHJpYnV0ZXNfVHlwZSA6PSAyICoqIDc7CiAgIFdhX05vcmVkaXIgIDogY29uc3RhbnQgR2RrX1dp
bmRvd19BdHRyaWJ1dGVzX1R5cGUgOj0gMiAqKiA4OwoKICAgR0NfRm9yZWdyb3VuZCAgICA6IGNv
bnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDA7CiAgIEdDX0JhY2tncm91bmQgICAg
OiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiAxOwogICBHQ19Gb250ICAgICAg
ICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMjsKICAgR0NfRnVuY3Rp
b24gICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDM7CiAgIEdDX0Zp
bGwgICAgICAgICAgOiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiA0OwogICBH
Q19UaWxlICAgICAgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogNTsK
ICAgR0NfU3RpcHBsZSAgICAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoq
IDY7CiAgIEdDX0NsaXBfTWFzayAgICAgOiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0g
MiAqKiA3OwogICBHQ19TdWJ3aW5kb3cgICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNr
IDo9IDIgKiogODsKICAgR0NfVHNfWF9PcmlnaW4gICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNf
TWFzayA6PSAyICoqIDk7CiAgIEdDX1R4X1lfT3JpZ2luICAgOiBjb25zdGFudCBHZGtfR0NfVmFs
dWVzX01hc2sgOj0gMiAqKiAxMDsKICAgR0NfQ2xpcF9YX09yaWdpbiA6IGNvbnN0YW50IEdka19H
Q19WYWx1ZXNfTWFzayA6PSAyICoqIDExOwogICBHQ19DbGlwX1lfT3JpZ2luIDogY29uc3RhbnQg
R2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMTI7CiAgIEdDX0V4cG9zdXJlcyAgICAgOiBjb25z
dGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiAxMzsKICAgR0NfTGluZV9XaWR0aCAgICA6
IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDE0OwogICBHQ19MaW5lX1N0eWxl
ICAgIDogY29uc3RhbnQgR2RrX0dDX1ZhbHVlc19NYXNrIDo9IDIgKiogMTU7CiAgIEdDX0NhcF9T
dHlsZSAgICAgOiBjb25zdGFudCBHZGtfR0NfVmFsdWVzX01hc2sgOj0gMiAqKiAxNjsKICAgR0Nf
Sm9pbl9TdHlsZSAgICA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXNfTWFzayA6PSAyICoqIDE3OwoK
ICAgR2RrX0hpbnRfUG9zICAgICAgICA6IGNvbnN0YW50IEdka19XaW5kb3dfSGludHMgOj0gMiAq
KiAwOwogICBHZGtfSGludF9NaW5fU2l6ZSAgIDogY29uc3RhbnQgR2RrX1dpbmRvd19IaW50cyA6
PSAyICoqIDE7CiAgIEdka19IaW50X01heF9TaXplICAgOiBjb25zdGFudCBHZGtfV2luZG93X0hp
bnRzIDo9IDIgKiogMjsKICAgR2RrX0hpbnRfQmFzZV9TaXplICA6IGNvbnN0YW50IEdka19XaW5k
b3dfSGludHMgOj0gMiAqKiAzOwogICBHZGtfSGludF9Bc3BlY3QgICAgIDogY29uc3RhbnQgR2Rr
X1dpbmRvd19IaW50cyA6PSAyICoqIDQ7CiAgIEdka19IaW50X1Jlc2l6ZV9JbmMgOiBjb25zdGFu
dCBHZGtfV2luZG93X0hpbnRzIDo9IDIgKiogNTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAtLSAgUmVwcmVzZW50YXRpb24gY2xhdXNlcyAgLS0KICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBmb3IgR2RrX0V2ZW50X1R5cGUgdXNlCiAgICAgKE5vdGhp
bmcgPT4gLTEsCiAgICAgIERlbGV0ZSA9PiAwLAogICAgICBEZXN0cm95ID0+IDEsCiAgICAgIEV4
cG9zZSA9PiAyLAogICAgICBNb3Rpb25fTm90aWZ5ID0+IDMsCiAgICAgIEJ1dHRvbl9QcmVzcyA9
PiA0LAogICAgICBHZGtfMmJ1dHRvbl9QcmVzcyA9PiA1LAogICAgICBHZGtfM2J1dHRvbl9QcmVz
cyA9PiA2LAogICAgICBCdXR0b25fUmVsZWFzZSA9PiA3LAogICAgICBLZXlfUHJlc3MgPT4gOCwK
ICAgICAgS2V5X1JlbGVhc2UgPT4gOSwKICAgICAgRW50ZXJfTm90aWZ5ID0+IDEwLAogICAgICBM
ZWF2ZV9Ob3RpZnkgPT4gMTEsCiAgICAgIEZvY3VzX0NoYW5nZSA9PiAxMiwKICAgICAgQ29uZmln
dXJlID0+IDEzLAogICAgICBNYXAgPT4gMTQsCiAgICAgIFVubWFwID0+IDE1LAogICAgICBQcm9w
ZXJ0eV9Ob3RpZnkgPT4gMTYsCiAgICAgIFNlbGVjdGlvbl9DbGVhciA9PiAxNywKICAgICAgU2Vs
ZWN0aW9uX1JlcXVlc3QgPT4gMTgsCiAgICAgIFNlbGVjdGlvbl9Ob3RpZnkgPT4gMTksCiAgICAg
IFByb3hpbWl0eV9JbiA9PiAyMCwKICAgICAgUHJveGltaXR5X091dCA9PiAyMSwKICAgICAgRHJh
Z19FbnRlciA9PiAyMiwKICAgICAgRHJhZ19MZWF2ZSA9PiAyMywKICAgICAgRHJhZ19Nb3Rpb24g
PT4gMjQsCiAgICAgIERyYWdfU3RhdHVzID0+IDI1LAogICAgICBEcm9wX1N0YXJ0ID0+IDI2LAog
ICAgICBEcm9wX0ZpbmlzaGVkID0+IDI3LAogICAgICBDbGllbnRfRXZlbnQgPT4gMjgsCiAgICAg
IFZpc2liaWxpdHlfTm90aWZ5ID0+IDI5LAogICAgICBOb19FeHBvc2UgPT4gMzApOwoKICAgZm9y
IEdka19JbnB1dF9Db25kaXRpb24gdXNlCiAgICAgKElucHV0X1JlYWQgICAgICA9PiAyICoqIDAs
CiAgICAgIElucHV0X1dyaXRlICAgICA9PiAyICoqIDEsCiAgICAgIElucHV0X0V4Y2VwdGlvbiA9
PiAyICoqIDIpOwoKICAgZm9yIEdka19TdWJ3aW5kb3dfTW9kZSB1c2UgKENsaXBfQnlfQ2hpbGRy
ZW4gID0+IDAsIEluY2x1ZGVfSW5mZXJpb3JzID0+IDEpOwoKICAgLS0gIFdhcm5pbmcgOiB0aGVz
ZSB2YWx1ZXMgc2hvdWxkIGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGggZ2RrL2dkY3Vyc29ycy5o
CiAgIC0tICA/Pz8gSG93ZXZlciwgc2luY2UgdGhlc2UgdmFsdWVzIGFyZSBpbXBvcnRlZCBmcm9t
IFhsaWIsIGl0IGlzIHVubGlrZWx5CiAgIC0tICB0aGF0IHRoZXkgd2lsbCBjaGFuZ2Ugc29vbi4K
CiAgIGZvciBHZGtfQ3Vyc29yX1R5cGUgdXNlCiAgICAgKFhfQ3Vyc29yID0+IDAsCiAgICAgIEFy
cm93ICAgID0+IDIsCiAgICAgIEJhc2VkX0Fycm93X0Rvd24gPT4gNCwKICAgICAgQmFzZWRfQXJy
b3dfVXAgPT4gNiwKICAgICAgQm9hdCA9PiA4LAogICAgICBCb2dvc2l0eSA9PiAxMCwKICAgICAg
Qm90dG9tX0xlZnRfQ29ybmVyID0+IDEyLAogICAgICBCb3R0b21fUmlnaHRfQ29ybmVyID0+IDE0
LAogICAgICBCb3R0b21fU2lkZSA9PiAxNiwKICAgICAgQm90dG9tX1RlZSA9PiAxOCwKICAgICAg
Qm94X1NwaXJhbCA9PiAyMCwKICAgICAgQ2VudGVyX1B0ciA9PiAyMiwKICAgICAgQ2lyY2xlID0+
IDI0LAogICAgICBDbG9jayA9PiAyNiwKICAgICAgQ29mZmVlX011ZyA9PiAyOCwKICAgICAgQ3Jv
c3MgPT4gMzAsCiAgICAgIENyb3NzX1JldmVyc2UgPT4gMzIsCiAgICAgIENyb3NzaGFpciA9PiAz
NCwKICAgICAgRGlhbW9uZF9Dcm9zcyA9PiAzNiwKICAgICAgRG90ID0+IDM4LAogICAgICBEb3Ri
b3ggPT4gNDAsCiAgICAgIERvdWJsZV9BcnJvdyA9PiA0MiwKICAgICAgRHJhZnRfTGFyZ2UgPT4g
NDQsCiAgICAgIERyYWZ0X1NtYWxsID0+IDQ2LAogICAgICBEcmFwZWRfQm94ID0+IDQ4LAogICAg
ICBFeGNoYW5nZSA9PiA1MCwKICAgICAgRmxldXIgPT4gNTIsCiAgICAgIEdvYmJsZXIgPT4gNTQs
CiAgICAgIEd1bWJ5ID0+IDU2LAogICAgICBIYW5kMSA9PiA1OCwKICAgICAgSGFuZDIgPT4gNjAs
CiAgICAgIEhlYXJ0ID0+IDYyLAogICAgICBJY29uID0+IDY0LAogICAgICBJcm9uX0Nyb3NzID0+
IDY2LAogICAgICBMZWZ0X1B0ciA9PiA2OCwKICAgICAgTGVmdF9TaWRlID0+IDcwLAogICAgICBM
ZWZ0X1RlZSA9PiA3MiwKICAgICAgTGVmdGJ1dHRvbiA9PiA3NCwKICAgICAgTGxfQW5nbGUgPT4g
NzYsCiAgICAgIExyX0FuZ2xlID0+IDc4LAogICAgICBNYW4gPT4gODAsCiAgICAgIE1pZGRsZWJ1
dHRvbiA9PiA4MiwKICAgICAgTW91c2UgPT4gODQsCiAgICAgIFBlbmNpbCA9PiA4NiwKICAgICAg
UGlyYXRlID0+IDg4LAogICAgICBQbHVzID0+IDkwLAogICAgICBRdWVzdGlvbl9BcnJvdyA9PiA5
MiwKICAgICAgUmlnaHRfUHRyID0+IDk0LAogICAgICBSaWdodF9TaWRlID0+IDk2LAogICAgICBS
aWdodF9UZWUgPT4gOTgsCiAgICAgIFJpZ2h0YnV0dG9uID0+IDEwMCwKICAgICAgUnRsX0xvZ28g
PT4gMTAyLAogICAgICBTYWlsYm9hdCA9PiAxMDQsCiAgICAgIFNiX0Rvd25fQXJyb3cgPT4gMTA2
LAogICAgICBTYl9IX0RvdWJsZV9BcnJvdyA9PiAxMDgsCiAgICAgIFNiX0xlZnRfQXJyb3cgPT4g
MTEwLAogICAgICBTYl9SaWdodF9BcnJvdyA9PiAxMTIsCiAgICAgIFNiX1VwX0Fycm93ID0+IDEx
NCwKICAgICAgU2JfVl9Eb3VibGVfQXJyb3cgPT4gMTE2LAogICAgICBTaHV0dGxlID0+IDExOCwK
ICAgICAgU2l6aW5nID0+IDEyMCwKICAgICAgU3BpZGVyID0+IDEyMiwKICAgICAgU3ByYXljYW4g
PT4gMTI0LAogICAgICBTdGFyID0+IDEyNiwKICAgICAgVGFyZ2V0ID0+IDEyOCwKICAgICAgVGNy
b3NzID0+IDEzMCwKICAgICAgVG9wX0xlZnRfQXJyb3cgPT4gMTMyLAogICAgICBUb3BfTGVmdF9D
b3JuZXIgPT4gMTM0LAogICAgICBUb3BfUmlnaHRfQ29ybmVyID0+IDEzNiwKICAgICAgVG9wX1Np
ZGUgPT4gMTM4LAogICAgICBUb3BfVGVlID0+IDE0MCwKICAgICAgVHJlayA9PiAxNDIsCiAgICAg
IFVsX0FuZ2xlID0+IDE0NCwKICAgICAgVW1icmVsbGEgPT4gMTQ2LAogICAgICBVcl9BbmdsZSA9
PiAxNDgsCiAgICAgIFdhdGNoID0+IDE1MCwKICAgICAgWHRlcm0gPT4gMTUyKTsKCiAgIERlY29y
X0FsbCAgICAgIDogY29uc3RhbnQgR2RrX1dtX0RlY29yYXRpb24gOj0gMiAqKiAwOwogICBEZWNv
cl9Cb3JkZXIgICA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uIDo9IDIgKiogMTsKICAgRGVj
b3JfUmVzaXplX0ggOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbiA6PSAyICoqIDI7CiAgIERl
Y29yX1RpdGxlICAgIDogY29uc3RhbnQgR2RrX1dtX0RlY29yYXRpb24gOj0gMiAqKiAzOwogICBE
ZWNvcl9NZW51ICAgICA6IGNvbnN0YW50IEdka19XbV9EZWNvcmF0aW9uIDo9IDIgKiogNDsKICAg
RGVjb3JfTWluaW1pemUgOiBjb25zdGFudCBHZGtfV21fRGVjb3JhdGlvbiA6PSAyICoqIDU7CiAg
IERlY29yX01heGltaXplIDogY29uc3RhbnQgR2RrX1dtX0RlY29yYXRpb24gOj0gMiAqKiA2OwoK
ICAgRnVuY19BbGwgICAgICA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbiA6PSAyICoqIDA7CiAg
IEZ1bmNfUmVzaXplICAgOiBjb25zdGFudCBHZGtfV21fRnVuY3Rpb24gOj0gMiAqKiAxOwogICBG
dW5jX01vdmUgICAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uIDo9IDIgKiogMjsKICAgRnVu
Y19NaW5pbWl6ZSA6IGNvbnN0YW50IEdka19XbV9GdW5jdGlvbiA6PSAyICoqIDM7CiAgIEZ1bmNf
TWF4aW1pemUgOiBjb25zdGFudCBHZGtfV21fRnVuY3Rpb24gOj0gMiAqKiA0OwogICBGdW5jX0Ns
b3NlICAgIDogY29uc3RhbnQgR2RrX1dtX0Z1bmN0aW9uIDo9IDIgKiogNTsKZW5kIEdkay5UeXBl
czsKCi0tICBUaGUgZm9sbG93aW5nIHR5cGVzIHdlcmUgbm90IGJvdW5kIGJlY2F1c2UgaXQgZGlk
IG5vdCBzZWVtCi0tICB0byBiZSBuZWNlc3NhcnkgKHlldCkuCi0tCi0tICArIEdka0NvbG9yQ29u
dGV4dE1vZGUKLS0gICsgR2RrQ3Jvc3NpbmdNb2RlCi0tICArIEdka0ZpbHRlclJldHVybgotLSAg
KyBHZGtGb250VHlwZQotLSAgKyBHZGtOb3RpZnlUeXBlCi0tICArIEdka1Byb3BlcnR5U3RhdGUK
LS0gICsgR2RrU3RhdHVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1
IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNr
ZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig
ICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1
YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0t
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0t
Ci0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp
dGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3Bl
Y2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20g
IC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMg
dG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBi
eSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292
ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2Vw
dGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRo
ZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQ
dWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgot
LSAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGZ1bmN0aW9ucyBkZWFsaW5nIHdpdGggZXZlbnRzIGZy
b20gdGhlIHdpbmRvdyBzeXN0ZW0uCi0tICBJbiBHdGtBZGEgYXBwbGljYXRpb25zLCB0aGUgZXZl
bnRzIGFyZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgaW4KLS0gIEd0ay5NYWluLkRvX0V2ZW50LCBh
bmQgcGFzc2VkIG9uIHRvIHRoZSBhcHByb3ByaWF0ZSB3aWRnZXRzLCBzbyB0aGVzZQotLSAgZnVu
Y3Rpb25zIGFyZSByYXJlbHkgbmVlZGVkLgotLQotLSAgISEgV2FybmluZyAhISBUaGlzIGlzIG9u
ZSBvZiB0aGUgb25seSBwYWNrYWdlIHRoYXQgcmVxdWlyZXMgbWFudWFsCi0tICBtZW1vcnkgbWFu
YWdlbWVudCBpbiBzb21lIGNhc2VzLiBJZiB5b3UgdXNlIHRoZSBmdW5jdGlvbiBBbGxvY2F0ZSwK
LS0gIHlvdSBoYXZlIHRvIHVzZSB0aGUgZnVuY3Rpb24gRnJlZSB0b28uLi4KLS0gIDwvZGVzY3Jp
cHRpb24+Cgp3aXRoIFN5c3RlbTsKd2l0aCBHbGliOyB1c2UgR2xpYjsKd2l0aCBHZGsuUmVjdGFu
Z2xlOwp3aXRoIEdkay5UeXBlczsKd2l0aCBHZGsuV2luZG93OwoKcGFja2FnZSBHZGsuRXZlbnQg
aXMKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgRGVmaW5pdGlvbiBv
ZiB0aGUgdHlwZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBl
IEdka19FdmVudCBpcyBuZXcgR2RrLkNfUHJveHk7CgogICBzdWJ0eXBlIEdka19FdmVudF9Bbnkg
aXMgR2RrX0V2ZW50OwogICAtLSAgQ2hhbmdlIGZyb20gR3RrQWRhMS4yLjM6IFRoZXJlIGlzIG5v
IGxvbmdlciBhIHRhZ2dlZCB0eXBlCiAgIC0tICBoaWVyYXJjaHksIG9ubHkgb25lIHR5cGUuCiAg
IC0tICBIb3dldmVyIHRoZXJlIGFyZSBub3cgYSBmZXcgcnVudGltZSB0ZXN0cyBmb3IgZWFjaCBv
ZiB0aGUKICAgLS0gIGZ1bmN0aW9uLCB0byBjaGVjayB3aGV0aGVyIGEgZ2l2ZW4gZmllbGQgaXMg
YXZhaWxhYmxlIG9yIG5vdC4KICAgLS0KICAgLS0gIEZpZWxkcyBjb21tb24gdG8gYWxsIGV2ZW50
czogV2luZG93LCBTZW5kX0V2ZW50LCBFdmVudF9UeXBlCgogICBzdWJ0eXBlIEdka19FdmVudF9C
dXR0b24gaXMgR2RrX0V2ZW50OwogICAtLSAgQSBidXR0b24gd2FzIHByZXNzZWQgb3IgcmVsZWFz
ZS4gUmVsZXZhbnQgZmllbGRzOgogICAtLSAgVGltZSwgWCwgWSwgUHJlc3N1cmUsIFh0aWx0LCBZ
dGlsdCwgU3RhdGUsIEJ1dHRvbiwgU291cmNlLAogICAtLSAgRGV2aWNlX0lkLCBYX1Jvb3QsIFlf
Um9vdCwgV2luZG93LgogICAtLSAgVHlwZTogQnV0dG9uX1ByZXNzLCBHZGtfMkJ1dHRvbl9QcmVz
cywgR2RrXzNCdXR0b25fUHJlc3Mgb3IKICAgLS0gIEJ1dHRvbl9SZWxlYXNlLgoKICAgc3VidHlw
ZSBHZGtfRXZlbnRfQ29uZmlndXJlIGlzIEdka19FdmVudDsKICAgLS0gIFRoZSB3aW5kb3cgY29u
ZmlndXJhdGlvbiBoYXMgY2hhbmdlZDogZWl0aGVyIGl0IHdhcyByZW1hcHBlZCwKICAgLS0gIHJl
c2l6ZWQsIG1vdmVkLCAuLi4KICAgLS0gIE5vdGUgdGhhdCB5b3UgdXN1YWxseSBkb24ndCBoYXZl
IHRvIHJlZHJhdyB5b3VyIHdpbmRvdyB3aGVuIHlvdQogICAtLSAgcmVjZWl2ZSBzdWNoIGFuIGV2
ZW50LCBzaW5jZSBpdCBpcyBmb2xsb3dlZCBieSBhbiBHZGtfRXZlbnRfRXhwb3NlLgogICAtLSAg
UmVsZXZhbnQgZmllbGRzOiBYLCBZLCBXaWR0aCwgSGVpZ2h0CiAgIC0tICBUeXBlOiBDb25maWd1
cmUKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X0Nyb3NzaW5nIGlzIEdka19FdmVudDsKICAgLS0gIFRo
ZSBtb3VzZSBoYXMgYmVlbiBtb3ZlZCBpbiBvciBvdXQgb2YgdGhlIHdpbmRvdwogICAtLSAgUmVs
ZXZhbnQgZmllbGRzOiBUaW1lLCBTdWJXaW5kb3csIFgsIFksIFhfUm9vdCwgWV9Sb290LCBNb2Rl
LAogICAtLSAgRGV0YWlsLCBGb2N1cywgU3RhdGUKICAgLS0gIFR5cGU6IEVudGVyX05vdGlmeSwg
TGVhdmVfTm90aWZ5CgogICBzdWJ0eXBlIEdka19FdmVudF9FeHBvc2UgaXMgR2RrX0V2ZW50Owog
ICAtLSAgVGhlIHdpbmRvdyBuZWVkcyB0byBiZSByZWRyYXduLiBGb3IgZWZmaWNpZW5jeSwgZ3Rr
IGdpdmVzIHlvdSB0aGUKICAgLS0gIHNtYWxsZXN0IGFyZWEgdGhhdCB5b3UgbmVlZCB0byByZWRy
YXcKICAgLS0gIFJlbGV2YW50IGZpZWxkczogQXJlYSwgQ291bnQsIEdyYXBoaWNzX0V4cG9zZQog
ICAtLSAgVHlwZTogRXhwb3NlCgogICBzdWJ0eXBlIEdka19FdmVudF9Ob19FeHBvc2UgaXMgR2Rr
X0V2ZW50OwogICAtLSAgSW5kaWNhdGUgdGhhdCB0aGUgc291cmNlIHJlZ2lvbiB3YXMgY29tcGxl
dGVseSBhdmFpbGFibGUgd2hlbiBwYXJ0cyBvZgogICAtLSAgYSBkcmF3YWJsZSB3ZXJlIGNvcGll
ZC4KICAgLS0gIFRoaXMgaXMgYWxzbyBlbWl0dGVkIHdoZW4gYSBnYyB3aG9zZSAiZXhwb3N1cmVz
IiBhdHRyaWJ1dGUgaXMgc2V0IHRvCiAgIC0tICBGYWxzZSBpbiBhIGNhbGwgdG8gQ29weV9BcmVh
IG9yIERyYXdfUGl4bWFwLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCiAgIC0tICBHZGsuR0Mu
U2V0X0V4cG9zdXJlcy4KICAgLS0gIE5vIFJlbGV2ZW50IGZpZWxkcyBleGNlcHQgdGhlIGNvbW1v
biBvbmVzCiAgIC0tICBUeXBlOiBOb19FeHBvc2UKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X0ZvY3Vz
IGlzIEdka19FdmVudDsKICAgLS0gIFRoZSBmb2N1cyBoYXMgY2hhbmdlZCBmb3IgYSB3aW5kb3cu
CiAgIC0tICBSZWxldmFudCBmaWVsZHM6IGluCiAgIC0tICBUeXBlOiBGb2N1c19DaGFuZ2UKCiAg
IHN1YnR5cGUgR2RrX0V2ZW50X01vdGlvbiBpcyBHZGtfRXZlbnQ7CiAgIC0tICBUaGUgbW91c2Ug
aGFzIG1vdmVkCiAgIC0tICBSZWxldmFudCBmaWVsZHM6IFRpbWUsIFgsIFksIFByZXNzdXJlLCBY
dGlsdCwgWXRpbHQsIFN0YXRlLAogICAtLSAgSXNfSGludCwgU291cmNlLCBEZXZpY2VfSWQsIFhf
Um9vdCwgWV9Sb290CiAgIC0tICBUeXBlOiBNb3Rpb25fTm90aWZ5CgogICBzdWJ0eXBlIEdka19F
dmVudF9LZXkgaXMgR2RrX0V2ZW50OwogICAtLSAgQSBrZXlib2FyZCBrZXkgd2FzIHByZXNzZWQK
ICAgLS0gIFJlbGV2YW50IGZpZWxkczogVGltZSwgU3RhdGUsIEtleV9WYWwsIFN0cmluZwogICAt
LSAgVHlwZTogS2V5X1ByZXNzLCBLZXlfUmVsZWFzZQoKICAgc3VidHlwZSBHZGtfRXZlbnRfUHJv
cGVydHkgaXMgR2RrX0V2ZW50OwogICAtLSAgU29tZSBwcm9wZXJ0eSBvZiB0aGUgd2luZG93IHdh
cyBtb2RpZmllZC4gR3RrQWRhIHByb3ZpZGVzIGEgaGlnaGVyCiAgIC0tICBsZXZlbCBpbnRlcmZh
Y2UsIGFuZCB5b3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gdXNlIHRoaXMgZXZlbnQuCiAgIC0tICBS
ZWxldmVudCBmaWVsZHM6IEF0b20sIFRpbWUsIFByb3BlcnR5X1N0YXRlCiAgIC0tICBUeXBlOiBQ
cm9wZXJ0eV9Ob3RpZnkKCiAgIHN1YnR5cGUgR2RrX0V2ZW50X1Byb3hpbWl0eSBpcyBHZGtfRXZl
bnQ7CiAgIC0tICBmcm9tIGd0ays6ICJUaGlzIGV2ZW50IHR5cGUgd2lsbCBiZSB1c2VkIHByZXR0
eSByYXJlbHkuIEl0IG9ubHkgaXMKICAgLS0gIGltcG9ydGFudCBmb3IgWElucHV0IGF3YXJlIHBy
b2dyYW1zIHRoYXQgYXJlIGRyYXdpbmcgdGhlaXIgb3duCiAgIC0tICBjdXJzb3IiLiBUaGlzIGlz
IG9ubHkgdXNlZCB3aXRoIG5vbiBzdGFuZGFyZCBpbnB1dCBkZXZpY2VzLCBsaWtlCiAgIC0tICBn
cmFwaGljIHRhYmxldHMuCiAgIC0tICBSZWxldmFudCBmaWVsZHM6IFRpbWUsIFNvdXJjZSwgRGV2
aWNlX0lkCiAgIC0tICBUeXBlOiBQcm94aW1pdHlfSW4sIFByb3hpbWl0eV9PdXQKCiAgIHN1YnR5
cGUgR2RrX0V2ZW50X1Zpc2liaWxpdHkgaXMgR2RrX0V2ZW50OwogICAtLSAgVGhlIHZpc2liaWxp
dHkgc3RhdGUgb2YgdGhlIHdpbmRvdyAocGFydGlhbGx5IHZpc2libHksIGZ1bGx5IHZpc2libGUs
CiAgIC0tICBoaWRkZW4pLiBUaGlzIGV2ZW50IGFsbW9zdCBuZXZlciBuZWVkIHRvIGJlIHVzZWQs
IHNpbmNlIG90aGVyIGV2ZW50cwogICAtLSAgYXJlIGdlbmVyYXRlZCBhdCB0aGUgc2FtZSB0aW1l
LCBsaWtlIGV4cG9zZV9ldmVudHMKICAgLS0gIFJlbGV2YW50IGZpZWxkczogVmlzaWJpbGl0eV9T
dGF0ZQogICAtLSAgdHlwZTogVmlzaWJpbGl0eV9Ob3RpZnkKCiAgIHN1YnR5cGUgR2RrX0V2ZW50
X1NlbGVjdGlvbiBpcyBHZGtfRXZlbnQ7CiAgIC0tICBUaGlzIGlzIGhvdyBYMTEgaW1wbGVtZW50
cyBhIHNpbXBsZSBjdXQtYW5kLXBhc3RlIG1lY2hhbmlzbS4gSG93ZXZlciwKICAgLS0gIEd0a0Fk
YSBwcm92aWRlcyBhIGhpZ2hlciBsZXZlbCBpbnRlcmZhY2UgdG8gdGhlIHNlbGVjdGlvbiBtZWNo
YW5pc20sCiAgIC0tICBzbyB0aGlzIGV2ZW50IHdpbGwgYWxtb3N0IG5ldmVyIGJlIHVzZWQuCiAg
IC0tICBSZWxldmFudCBmaWVsZHM6IFNlbGVjdGlvbiwgVGFyZ2V0LCBQcm9wZXJ0eSwgUmVxdWVz
dG9yLCBUaW1lCiAgIC0tICBUeXBlOiBTZWxlY3Rpb25fQ2xlYXIsIFNlbGVjdGlvbl9SZXF1ZXN0
LCBTZWxlY3Rpb25fTm90aWZ5CgogICBzdWJ0eXBlIEdka19FdmVudF9DbGllbnQgaXMgR2RrX0V2
ZW50OwogICAtLSAgVGhpcyBpcyBhbiBldmVudCB1c2VkIHRvIHNlbmQgYXJiaXRyYXJ5IGRhdGEg
ZnJvbSBvbmUgWCBhcHBsaWNhdGlvbgogICAtLSAgdG8gYW5vdGhlci4gVGhpcyBldmVudCB0b28g
aXMgYWxtb3N0IG5ldmVyIHVzZWQsIGFuZCBpcyBub3QgZG9jdW1lbnRlZAogICAtLSAgaGVyZS4g
UGxlYXNlIGNvbnN1bHQgYW4gWDExIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24u
CiAgIC0tICBSZWxldmFudCBmaWVsZHM6IE1lc3NhZ2VfVHlwZSwgRGF0YQogICAtLSAgVHlwZTog
Q2xpZW50X0V2ZW50CgogICAtLSAgVGhlIGZvbGxvd2luZyBldmVudCB0eXBlcyBkbyBub3Qgc2Vl
bSB0byBoYXZlIGFueSBhc3NvY2lhdGVkIHR5cGU6CiAgIC0tICBEZWxldGUsIERlc3Ryb3ksIE1h
cCwgVW5tYXAsIERyYWdfRW50ZXIsIERyYWdfTGVhdmUsIERyYWdfTW90aW9uLAogICAtLSAgRHJh
Z19TdGF0dXMsIERyYWdfU3RhcnQsIERyYWdfRmluaXNoZWQKCiAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU3BlY2lmaWMgZGVmaW5pdGlvbiBmb3IgdGhl
IGZpZWxkcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog
ICB0eXBlIEdka19FdmVudF9DbGllbnRfRGF0YV9Gb3JtYXQgaXMKICAgICAoQ2hhcl9BcnJheSwg
U2hvcnRfQXJyYXksIExvbmdfQXJyYXkpOwogICBmb3IgR2RrX0V2ZW50X0NsaWVudF9EYXRhX0Zv
cm1hdCB1c2UKICAgICAoQ2hhcl9BcnJheSAgPT4gOCwgU2hvcnRfQXJyYXkgPT4gMTYsIExvbmdf
QXJyYXkgID0+IDMyKTsKICAgLS0gIFZhbHVlcyBleHRyYWN0ZWQgZnJvbSB0aGUgWENsaWVudE1l
c3NhZ2VFdmVudCBtYW4gcGFnZS4KCiAgIE51bWJlcl9PZl9DaGFyYWN0ZXJzIDogY29uc3RhbnQg
Oj0gMjA7CiAgIE51bWJlcl9PZl9TaG9ydHMgICAgIDogY29uc3RhbnQgOj0gMTA7CiAgIE51bWJl
cl9PZl9Mb25ncyAgICAgIDogY29uc3RhbnQgOj0gNTsKCiAgIHR5cGUgR2RrX0V2ZW50X0NsaWVu
dF9EYXRhCiAgICAgKEZvcm1hdCA6IEdka19FdmVudF9DbGllbnRfRGF0YV9Gb3JtYXQpIGlzCiAg
IHJlY29yZAogICAgICBjYXNlIEZvcm1hdCBpcwogICAgICAgICB3aGVuIENoYXJfQXJyYXkgPT4K
ICAgICAgICAgICAgQiA6IFN0cmluZyAoMSAuLiBOdW1iZXJfT2ZfQ2hhcmFjdGVycyk7CiAgICAg
ICAgIHdoZW4gU2hvcnRfQXJyYXkgPT4KICAgICAgICAgICAgUyA6IEdzaG9ydF9BcnJheSAoMSAu
LiBOdW1iZXJfT2ZfU2hvcnRzKTsKICAgICAgICAgd2hlbiBMb25nX0FycmF5ID0+CiAgICAgICAg
ICAgIEwgOiBHbG9uZ19BcnJheSAoMSAuLiBOdW1iZXJfT2ZfTG9uZ3MpOwogICAgICBlbmQgY2Fz
ZTsKICAgZW5kIHJlY29yZDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgIC0tIEFjY2VzcyB0byBmaWVsZHMgb2YgdGhlIGV2ZW50IC0tCiAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBJbnZhbGlkX0ZpZWxkIDogZXhjZXB0aW9uOwogICAt
LSAgSWYgYSBmaWVsZCBkb2VzIG5vdCBleGlzdCBmb3IgdGhlIGV2ZW50IHlvdSBnYXZlLCBhbiBl
eGNlcHRpb24KICAgLS0gIEludmFsaWRfRmllbGQgaXMgcmFpc2VkCgogICBmdW5jdGlvbiBHZXRf
RXZlbnRfVHlwZSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBUeXBlcy5HZGtfRXZlbnRf
VHlwZTsKICAgLS0gIFRoZSB0eXBlIG9mIHRoZSBldmVudC4KCiAgIGZ1bmN0aW9uIEdldF9TZW5k
X0V2ZW50IChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBTZXQg
dG8gdHJ1ZSBpZiB0aGUgZXZlbnQgd2FzIGdlbmVyYXRlZCBieSB0aGUgYXBwbGljYXRpb24sIEZh
bHNlCiAgIC0tICBpZiBnZW5lcmF0ZWQgYnkgdGhlIFggc2VydmVyL1dpbjMyLgoKICAgZnVuY3Rp
b24gR2V0X1dpbmRvdyAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuV2luZG93
Lkdka19XaW5kb3c7CiAgIC0tICBUaGUgd2luZG93IHRoZSBldmVudCBvY2N1cmVkIG9uLgoKICAg
ZnVuY3Rpb24gR2V0X1RpbWUgICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHdWlu
dDMyOwogICAtLSAgVGltZSB3aGVuIHRoZSBldmVudCBvY2N1cmVkLgoKICAgZnVuY3Rpb24gR2V0
X1ggICAgICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZG91YmxlOwogICAtLSAg
SG9yaXpvbnRhbCBjb29yZGluYXRlIG9mIHRoZSBtb3VzZSB3aGVuIHRoZSBldmVudCBvY2N1cmVk
LgogICAtLSAgVGhlIGNvb3JkaW5hdGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgcGFyZW50IHdpbmRv
dy4KCiAgIGZ1bmN0aW9uIEdldF9ZICAgICAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1
cm4gR2RvdWJsZTsKICAgLS0gIFZlcnRpY2FsIGNvb3JkaW5hdGUgb2YgdGhlIG1vdXNlIHdoZW4g
dGhlIGV2ZW50IG9jY3VyZWQuCiAgIC0tICBUaGUgY29vcmRpbmF0ZXMgYXJlIHJlbGF0aXZlIHRv
IHRoZSBwYXJlbnQgd2luZG93LgoKICAgZnVuY3Rpb24gR2V0X1hfUm9vdCAgICAoRXZlbnQgOiBp
biBHZGtfRXZlbnQpIHJldHVybiBHZG91YmxlOwogICAtLSAgSG9yaXpvbnRhbCBjb29yZGluYXRl
IG9mIHRoZSBtb3VzZSB3aGVuIHRoZSBldmVudCBvY2N1cmVkLgogICAtLSAgUmVsYXRpdmUgdG8g
dGhlIHJvb3Qgd2luZG93LgoKICAgZnVuY3Rpb24gR2V0X1lfUm9vdCAgICAoRXZlbnQgOiBpbiBH
ZGtfRXZlbnQpIHJldHVybiBHZG91YmxlOwogICAtLSAgVmVydGljYWwgY29vcmRpbmF0ZSBvZiB0
aGUgbW91c2Ugd2hlbiB0aGUgZXZlbnQgb2NjdXJlZC4KICAgLS0gIFJlbGF0aXZlIHRvIHRoZSBy
b290IHdpbmRvdy4KCiAgIGZ1bmN0aW9uIEdldF9CdXR0b24gICAgKEV2ZW50IDogaW4gR2RrX0V2
ZW50KSByZXR1cm4gR3VpbnQ7CiAgIC0tICBOdW1iZXIgb2YgdGhlIGJ1dHRvbiB0aGF0IHdhcyBw
cmVzc2VkLgoKICAgZnVuY3Rpb24gR2V0X1N0YXRlICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJf
VHlwZTsKICAgLS0gIFN0YXRlIG9mIHRoZSBtb3VzZSBidXR0b25zIGFuZCBrZXlib2FyZCBrZXlz
IGp1c3QgcHJpb3IgdG8gdGhlIGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0X1N1YndpbmRvdyAoRXZl
bnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgIC0tICBD
aGlsZCB3aW5kb3cgZm9yIHRoZSBldmVudC4KICAgLS0gIEZvciBhbiBFbnRlcl9Ob3RpZnlfRXZl
bnQsIHRoaXMgaXMgc2V0IHRvIHRoZSBpbml0aWFsIHdpbmRvdyBmb3IgdGhlCiAgIC0tICBwb2lu
dGVyOyBmb3IgYW4gTGVhdmVfTm90aWZ5X0V2ZW50IHRoaXMgaXMgc2V0IHRvIHRoZSB3aW5kb3cg
b2NjdXBpZWQKICAgLS0gIGJ5IHRoZSBwb2ludGVyIGluIGl0cyBsYXN0IHBvc2l0aW9uLgoKICAg
ZnVuY3Rpb24gR2V0X01vZGUgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVz
Lkdka19Dcm9zc2luZ19Nb2RlOwogICAtLSAgUmV0dXJuIHRoZSBtb2RlIG9mIGFuIEV2ZW50Lgog
ICAtLSAgU2V0IHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGV2ZW50cyBhcmUgbm9ybWFsIGV2ZW50
cywgcHNldWRvLW1vdGlvbgogICAtLSAgZXZlbnRzIHdoZW4gYSBncmFiIGFjdGl2YXRlcyBvciBw
c2V1ZG8tbW90aW9uIGV2ZW50cyB3aGVuIGEgZ3JhYgogICAtLSAgZGVhdGl2YXRlcy4KCiAgIGZ1
bmN0aW9uIEdldF9EZXRhaWwgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVz
Lkdka19Ob3RpZnlfVHlwZTsKICAgLS0gIFNldCB0byBpbmRpY2F0ZSB0aGUgbm90aWZ5IGRldGFp
bHMuCiAgIC0tICBNb3N0IGFwcGxpY2F0aW9ucyBjYW4gaWdub3JlIGV2ZW50cyB3aXRoIGEgTm90
aWZ5IFZpcnR1YWwgb3IgYQogICAtLSAgTm90aWZ5X05vbl9MaW5lYXJfVmlydHVhbCBkZXRhaWwu
CgogICBmdW5jdGlvbiBHZXRfRm9jdXMgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gQm9v
bGVhbjsKICAgLS0gIFNldCB0byB0cnVlIGlmIHRoZSB3aW5kb3cgZm9yIHRoZSBldmVudCBpcyB0
aGUgZm9jdXMgd2luZG93LgoKICAgZnVuY3Rpb24gR2V0X1ByZXNzdXJlICAoRXZlbnQgOiBpbiBH
ZGtfRXZlbnQpIHJldHVybiBHZG91YmxlOwogICAtLSAgVGhpcyBpcyBzZXQgdG8gYSBjb25zdGFu
dCBpbiB0aGUgZ3RrKyBjb2RlIGl0c2VsZiwgc28gaXQKICAgLS0gIGlzIG1vc3QgcHJvYmFibHkg
dXNlbGVzcy4uLiBJdHMgdmFsdWUgaXMgMC41LgogICAtLSAgSXQgaXMgb25seSB1c2VkIHdpdGgg
c29tZSBzcGVjaWFsIGlucHV0IGRldmljZXMsIGxpa2UgZHJhd2luZwogICAtLSAgdGFibGV0cywu
Li4KCiAgIGZ1bmN0aW9uIEdldF9YdGlsdCAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1
cm4gR2RvdWJsZTsKICAgLS0gIFRoaXMgaXMgc2V0IHRvIGEgY29uc3RhbnQgaW4gdGhlIGd0aysg
Y29kZSBpdHNlbGYsIHNvIGl0CiAgIC0tICBpcyBtb3N0IHByb2JhYmx5IHVzZWxlc3MuLi4gSXRz
IHZhbHVlIGlzIDAuMC4KICAgLS0gIEl0IGlzIG9ubHkgdXNlZCB3aXRoIHNvbWUgc3BlY2lhbCBp
bnB1dCBkZXZpY2VzLCBsaWtlIGRyYXdpbmcKICAgLS0gIHRhYmxldHMsLi4uCgogICBmdW5jdGlv
biBHZXRfWXRpbHQgICAgIChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEdkb3VibGU7CiAg
IC0tICBUaGlzIGlzIHNldCB0byBhIGNvbnN0YW50IGluIHRoZSBndGsrIGNvZGUgaXRzZWxmLCBz
byBpdAogICAtLSAgaXMgbW9zdCBwcm9iYWJseSB1c2VsZXNzLi4uIEl0cyB2YWx1ZSBpcyAwLjAu
CiAgIC0tICBJdCBpcyBvbmx5IHVzZWQgd2l0aCBzb21lIHNwZWNpYWwgaW5wdXQgZGV2aWNlcywg
bGlrZSBkcmF3aW5nCiAgIC0tICB0YWJsZXRzLC4uLgoKICAgZnVuY3Rpb24gR2V0X1dpZHRoIChF
dmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEdpbnQxNjsKICAgLS0gIEdldCB0aGUgd2lkdGgg
aW4gYSBjb25maWd1cmUgZXZlbnQuCgogICBmdW5jdGlvbiBHZXRfSGVpZ2h0IChFdmVudCA6IGlu
IEdka19FdmVudCkgcmV0dXJuIEdpbnQxNjsKICAgLS0gIEdldCB0aGUgaGVpZ2h0IGluIGEgY29u
ZmlndXJlIGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0X1NvdXJjZQogICAgIChFdmVudCA6IGluIEdk
a19FdmVudCkgcmV0dXJuIEdkay5UeXBlcy5HZGtfSW5wdXRfU291cmNlOwogICAtLSAgU2V0IHRv
IGEgY29uc3RhbnQgZm9yIG5vdyBpbiB0aGUgZ3RrKyBzb3VyY2UuLi4gUHJvYmFibHkgdXNlbGVz
cy4KCiAgIGZ1bmN0aW9uIEdldF9EZXZpY2VfSWQKICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQp
IHJldHVybiBHZGsuVHlwZXMuR2RrX0RldmljZV9JZDsKICAgLS0gIFNldCB0byBhIGNvbnN0YW50
IGZvciBub3cgaW4gdGhlIGd0aysgc291cmNlLi4uIFByb2JhYmx5IHVzZWxlc3MuCiAgIC0tICBT
aW5jZSBtdWx0aXBsZSBpbnB1dCBkZXZpY2VzIGNhbiBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUs
IGxpa2UgYSBtb3VzZQogICAtLSAgYW5kIGEgZ3JhcGhpYyB0YWJsZXQsIHRoaXMgaW5kaWNhdGVk
IHdoaWNoIG9uZSBnZW5lcmF0ZWQgdGhlIGV2ZW50LgoKICAgZnVuY3Rpb24gR2V0X0FyZWEgKEV2
ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gUmVjdGFuZ2xlLkdka19SZWN0YW5nbGU7CiAgIC0t
ICBUaGUgbWluaW1hbCBhcmVhIG9uIHdoaWNoIHRoZSBldmVudCBhcHBsaWVzLgogICAtLSAgRm9y
IEV4cG9zZV9FdmVudHMsIHRoaXMgaXMgdGhlIG1pbmltYWwgYXJlYSB0byByZWRyYXcuCgogICBm
dW5jdGlvbiBHZXRfQ291bnQgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2ludDsKICAg
LS0gIE51bWJlciBvZiBFeHBvc2VfRXZlbnRzIHRoYXQgYXJlIHRvIGZvbGxvdyB0aGlzIG9uZS4K
ICAgLS0gIE1vc3QgYXBwbGljYXRpb25zIGNhbiBpZ25vcmUgdGhlIGV2ZW50IGlmIENvdW50IGlz
IG5vdCAwLCB3aGljaCBhbHNvCiAgIC0tICBhbGxvd3MgZm9yIG9wdGltaXphdGlvbnMuCgogICBm
dW5jdGlvbiBHZXRfSW4gKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gQm9vbGVhbjsKICAg
LS0gIFRydWUgaWYgdGhlIHdpbmRvdyBoYXMgZ2FpbmVkIHRoZSBmb2N1cywgRmFsc2Ugb3RoZXJ3
aXNlLgoKICAgZnVuY3Rpb24gR2V0X0lzX0hpbnQgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1
cm4gQm9vbGVhbjsKICAgLS0gID8/PwoKICAgZnVuY3Rpb24gR2V0X0tleV9WYWwgKEV2ZW50IDog
aW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgLS0gIENvZGUg
b2YgdGhlIGtleSB0aGF0IHdhcyBwcmVzc2VkIChhbmQgdGhhdCBnZW5lcmF0ZWQgdGhlIGV2ZW50
LgoKICAgZnVuY3Rpb24gR2V0X1N0cmluZyAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4g
U3RyaW5nOwogICAtLSAgU3ltYm9sIG9mIHRoZSBrZXkgdGhhdCB3YXMgcHJlc3NlZCwgYXMgYSBz
dHJpbmcuCgogICBmdW5jdGlvbiBHZXRfQXRvbSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVy
biBHZGsuVHlwZXMuR2RrX0F0b207CiAgIC0tICBJbmRpY2F0ZSB3aGljaCBwcm9wZXJ0eSBoYXMg
Y2hhbmdlZC4KICAgLS0gID8/PyBBdG9tIHNob3VsZCBub3QgYmUgYSBHdWludAoKICAgZnVuY3Rp
b24gR2V0X1Byb3BlcnR5X1N0YXRlIChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEd1aW50
OwogICAtLSAgPz8/IFRoZSByZXR1cm4gdHlwZSBzaG91bGQgYmUgY2hhbmdlZC4KCiAgIGZ1bmN0
aW9uIEdldF9WaXNpYmlsaXR5X1N0YXRlCiAgICAgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1
cm4gR2RrLlR5cGVzLkdka19WaXNpYmlsaXR5X1N0YXRlOwogICAtLSAgUmV0dXJuIHRoZSBuZXcg
dmlzaWJpbGl0eSBzdGF0ZSBmb3IgdGhlIHdpbmRvdy4KCiAgIGZ1bmN0aW9uIEdldF9TZWxlY3Rp
b24gKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR2RrLlR5cGVzLkdka19BdG9tOwogICAt
LSAgV2hhdCB3YXMgc2VsZWN0ZWQgaW4gdGhlIHdpbmRvdy4uLgoKICAgZnVuY3Rpb24gR2V0X1Rh
cmdldCAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJldHVybiBHZGsuVHlwZXMuR2RrX0F0b207CiAg
IC0tICA/Pz8KCiAgIGZ1bmN0aW9uIEdldF9Qcm9wZXJ0eSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQp
IHJldHVybiBHZGsuVHlwZXMuR2RrX0F0b207CiAgIC0tICA/Pz8KCiAgIGZ1bmN0aW9uIEdldF9S
ZXF1ZXN0b3IgKEV2ZW50IDogaW4gR2RrX0V2ZW50KSByZXR1cm4gR3VpbnQzMjsKICAgLS0gID8/
PwoKICAgZnVuY3Rpb24gR2V0X01lc3NhZ2VfVHlwZSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpIHJl
dHVybiBHZGsuVHlwZXMuR2RrX0F0b207CiAgIC0tICA/Pz8KCiAgIGZ1bmN0aW9uIEdldF9EYXRh
IChFdmVudCA6IGluIEdka19FdmVudCkgcmV0dXJuIEdka19FdmVudF9DbGllbnRfRGF0YTsKICAg
LS0gID8/PwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0g
TW9kaWZ5aW5nIHRoZSBmaWVsZHMgb2YgYW4gZXZlbnQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfV2luZG93IChFdmVudCA6IGlu
IEdka19FdmVudDsgV2luIDogR2RrLldpbmRvdy5HZGtfV2luZG93KTsKICAgLS0gIFNldCB0aGUg
V2luZG93IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9YICAgICAgKEV2ZW50
IDogaW4gR2RrX0V2ZW50OyBYIDogR2RvdWJsZSk7CiAgIC0tICBTZXQgdGhlIFggZmllbGQgb2Yg
YW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X1kgICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7
IFkgOiBHZG91YmxlKTsKICAgLS0gIFNldCB0aGUgWSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHBy
b2NlZHVyZSBTZXRfWHJvb3QgIChFdmVudCA6IGluIEdka19FdmVudDsgWHJvb3QgOiBHZG91Ymxl
KTsKICAgLS0gIFNldCB0aGUgWHJvb3QgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUg
U2V0X1lyb290ICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IFlyb290IDogR2RvdWJsZSk7CiAgIC0t
ICBTZXQgdGhlIFlyb290IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9XaWR0
aCAgKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBXaWR0aCA6IEdpbnQxNik7CiAgIC0tICBTZXQgdGhl
IFdpZHRoIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9IZWlnaHQgKEV2ZW50
IDogaW4gR2RrX0V2ZW50OyBIZWlnaHQgOiBHaW50MTYpOwogICAtLSAgU2V0IHRoZSBIZWlnaHQg
ZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X0J1dHRvbiAoRXZlbnQgOiBpbiBH
ZGtfRXZlbnQ7IEJ1dHRvbiA6IEd1aW50KTsKICAgLS0gIFNldCB0aGUgQnV0dG9uIGZpZWxkIG9m
IGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9UaW1lIChFdmVudCA6IGluIEdka19FdmVudDsg
VGltZSA6IEd1aW50MzIpOwogICAtLSAgU2V0IHRoZSB0aW1lIGZvciB0aGUgZXZlbnQuCiAgIC0t
ICBJZiBUaW1lIGlzIDAsIHRoZW4gaXQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHRpbWUuCgogICBw
cm9jZWR1cmUgU2V0X1N0YXRlICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBTdGF0ZSA6IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSk7CiAgIC0t
ICBTZXQgdGhlIFN0YXRlIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9TdWJ3
aW5kb3cgKEV2ZW50ICA6IGluIEdka19FdmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdpbmRvdyA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdyk7CiAgIC0tICBTZXQgdGhlIFN1Yndp
bmRvdyBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBTZXRfTW9kZSAgIChFdmVudCA6
IGluIEdka19FdmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIDogaW4gR2RrLlR5
cGVzLkdka19Dcm9zc2luZ19Nb2RlKTsKICAgLS0gIFNldCB0aGUgTW9kZSBmaWVsZCBvZiBhbiBl
dmVudC4KCiAgIHByb2NlZHVyZSBTZXRfRGV0YWlsIChFdmVudCAgOiBpbiBHZGtfRXZlbnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBEZXRhaWwgOiBpbiBHZGsuVHlwZXMuR2RrX05vdGlmeV9U
eXBlKTsKICAgLS0gIFNldCB0aGUgRGV0YWlsIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2Vk
dXJlIFNldF9Gb2N1cyAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IEhhc19Gb2N1cyA6IEJvb2xlYW4p
OwogICAtLSAgU2V0IHRoZSBGb2N1cyBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBT
ZXRfQXJlYSAgKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBBcmVhIDogUmVjdGFuZ2xlLkdka19SZWN0
YW5nbGUpOwogICAtLSAgU2V0IHRoZSBBcmVhIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2Vk
dXJlIFNldF9JbiAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IEZvY3VzX0luIDogQm9vbGVhbik7
CiAgIC0tICBTZXQgdGhlIEluIGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9J
c19IaW50IChFdmVudCA6IGluIEdka19FdmVudDsgSXNfSGludCA6IEJvb2xlYW4pOwogICAtLSAg
U2V0IHRoZSBJc19IaW50IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAgcHJvY2VkdXJlIFNldF9LZXlf
VmFsIChFdmVudCA6IGluIEdka19FdmVudDsgS2V5IDogR2RrLlR5cGVzLkdka19LZXlfVHlwZSk7
CiAgIC0tICBTZXQgdGhlIEtleV9WYWwgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUg
U2V0X0F0b20gKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBBdG9tIDogR2RrLlR5cGVzLkdka19BdG9t
KTsKICAgLS0gIFNldCB0aGUgQXRvbSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2NlZHVyZSBT
ZXRfUHJvcGVydHlfU3RhdGUgKEV2ZW50IDogaW4gR2RrX0V2ZW50OyBTdGF0ZSA6IEd1aW50KTsK
ICAgLS0gIFNldCB0aGUgUHJvcGVydHlfU3RhdGUgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9j
ZWR1cmUgU2V0X1Zpc2liaWxpdHlfU3RhdGUgKEV2ZW50IDogaW4gR2RrX0V2ZW50OwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRlIDogR2RrLlR5cGVzLkdka19WaXNpYmls
aXR5X1N0YXRlKTsKICAgLS0gIFNldCB0aGUgVmlzaWJpbGl0eV9TdGF0ZSBmaWVsZCBvZiBhbiBl
dmVudC4KCiAgIHByb2NlZHVyZSBTZXRfU2VsZWN0aW9uIChFdmVudCA6IGluIEdka19FdmVudDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGlvbiA6IEdkay5UeXBlcy5HZGtfQXRv
bSk7CiAgIC0tICBTZXQgdGhlIFNlbGVjdGlvbiBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHByb2Nl
ZHVyZSBTZXRfVGFyZ2V0IChFdmVudCA6IGluIEdka19FdmVudDsgVGFyZ2V0IDogR2RrLlR5cGVz
Lkdka19BdG9tKTsKICAgLS0gIFNldCB0aGUgVGFyZ2V0IGZpZWxkIG9mIGFuIGV2ZW50LgoKICAg
cHJvY2VkdXJlIFNldF9Qcm9wZXJ0eSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFByb3BlcnR5IDogR2RrLlR5cGVzLkdka19BdG9tKTsKICAgLS0gIFNl
dCB0aGUgUHJvcGVydHkgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X1JlcXVl
c3RvciAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IFJlcXVlc3RvciA6IEd1aW50MzIpOwogICAtLSAg
U2V0IHRoZSBSZXF1ZXN0b3IgZmllbGQgb2YgYW4gZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X01l
c3NhZ2VfVHlwZSAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7IFR5cCA6IEdkay5UeXBlcy5HZGtfQXRv
bSk7CiAgIC0tICBTZXQgdGhlIE1lc3NhZ2VfVHlwZSBmaWVsZCBvZiBhbiBldmVudC4KCiAgIHBy
b2NlZHVyZSBTZXRfU3RyaW5nIChFdmVudCA6IGluIEdka19FdmVudDsgU3RyIDogU3RyaW5nKTsK
ICAgLS0gIFNldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgd2l0aCBhbiBldmVudC4KCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEdlbmVyYWwgZnVuY3Rpb25zIC0tCiAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgRGVlcF9Db3B5IChGcm9tIDogR2RrX0V2ZW50
OyBUbyA6IG91dCBHZGtfRXZlbnQpOwogICAtLSAgRGVlcCBjb3B5IGZvciBhbiBldmVudC4gVGhl
IEMgc3RydWN0dXJlIGlzIGl0c2VsZiBkdXBsaWNhdGVkLgogICAtLSAgWW91IG5lZWQgdG8gZGVh
bGxvY2F0ZWQgaXQgeW91cnNlbGYgd2l0aCBhIGNhbGwgdG8gRnJlZSBiZWxvdy4KCiAgIHByb2Nl
ZHVyZSBHZXRfR3JhcGhpY3NfRXhwb3NlCiAgICAgKEV2ZW50ICA6IG91dCBHZGtfRXZlbnRfRXhw
b3NlOwogICAgICBXaW5kb3cgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3cpOwogICAtLSAgV2Fp
dHMgZm9yIGEgR3JhcGhpY3NFeHBvc2Ugb3IgTm9FeHBvc2UgZXZlbnQKICAgLS0gIElmIGl0IGdl
dHMgYSBHcmFwaGljc0V4cG9zZSBldmVudCwgaXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gaXQsCiAg
IC0tICBvdGhlcndpc2UgaXQgcmV0dXJucyBhbiBldmVudCBmb3Igd2hpY2ggSXNfQ3JlYXRlZCBp
cyBGYWxzZS4KICAgLS0KICAgLS0gIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW1wbGVt
ZW50IHNjcm9sbGluZzogeW91IG11c3QgY2FsbAogICAtLSAgR2RrLkdDLlNldF9FeHBvc3VyZXMg
d2l0aCBUcnVlIG9uIHRoZSBHQyB5b3UgYXJlIHVzaW5nIGZvciB0aGUKICAgLS0gIGRyYXdpbmcs
IHNvIHRoYXQgYSBldmVudHMgYXJlIGdlbmVyYXRlZCBmb3Igb2JzY3VyZWQgYXJlYXMgYW5kIGV2
ZXJ5CiAgIC0tICB0aW1lIGEgbmV3IHBhcnQgb2YgdGhlIHdpZGdldCBpcyBkcmF3bi4gSG93ZXZl
ciwgdGhlcmUgaXMgYSByYWNlCiAgIC0tICBjb25kaXRpb24gaWYgbXVsdGlwbGUgc2Nyb2xscyBo
YXBwZW4gYmVmb3JlIHlvdSBoYXZlIGZpbmlzaGVkCiAgIC0tICBwcm9jZXNzaW5nIHRoZSBmaXJz
dCBvbmUuIEEgd29ya2Fyb3VuZCBpcyB0byBjYWxsIEdldF9HcmFwaGljc19FeHBvc2UKICAgLS0g
IGFmdGVyIGV2ZXJ5IHNjcm9sbCB1bnRpbCBpdCByZXR1cm5zIGEgbnVsbCBldmVudC4KCiAgIGZ1
bmN0aW9uIEV2ZW50c19QZW5kaW5nIHJldHVybiBCb29sZWFuOwogICAtLSAgSXMgdGhlcmUgYW55
IGV2ZW50IHBlbmRpbmcgb24gdGhlIHF1ZXVlID8KCiAgIHByb2NlZHVyZSBHZXQgKEV2ZW50IDog
b3V0IEdka19FdmVudCk7CiAgIC0tICBHZXQgdGhlIG5leHQgZXZlbnQgb24gdGhlIHF1ZXVlLgoK
ICAgcHJvY2VkdXJlIFBlZWsgKEV2ZW50IDogb3V0IEdka19FdmVudCk7CiAgIC0tICBMb29rIGF0
IHRoZSBuZXh0IGV2ZW50IG9uIHRoZSBxdWV1ZSwgYnV0IGxlYXZlIGlmIHRoZXJlLgoKICAgcHJv
Y2VkdXJlIFB1dCAoRXZlbnQgOiBpbiBHZGtfRXZlbnQpOwogICAtLSAgQWRkIGFuIGV2ZW50IG9u
IHRoZSBxdWV1ZSAtIEJldHRlciB0byB1c2UgR3RrLlNpZ25hbC5FbWl0X0J5X05hbWUKCiAgIHBy
b2NlZHVyZSBTZXRfU2hvd19FdmVudHMgKFNob3dfRXZlbnRzIDogaW4gQm9vbGVhbiA6PSBUcnVl
KTsKICAgLS0gIEZvciBkZWJ1ZyBwdXJwb3NlcywgeW91IGNhbiBjaG9vc2Ugd2hldGhlciB5b3Ug
d2FudCB0byBzZWUgdGhlIGV2ZW50cwogICAtLSAgR3RrQWRhIHJlY2VpdmVzLgoKICAgZnVuY3Rp
b24gR2V0X1Nob3dfRXZlbnRzIHJldHVybiBCb29sZWFuOwogICAtLSAgUmV0dXJuIHRoZSBjdXJy
ZW50IHN0YXRlIG9mIFNob3dfRXZlbnRzLgoKICAgcHJvY2VkdXJlIFNlbmRfQ2xpZW50X01lc3Nh
Z2VfVG9fQWxsIChFdmVudCA6IGluIEdka19FdmVudCk7CiAgIC0tICBMb3cgbGV2ZWwgcm91dGlu
ZSB0byBzZW5kIGFuIEV2ZW50IHRvIGV2ZXJ5IHdpbmRvdy4KCiAgIGZ1bmN0aW9uIFNlbmRfQ2xp
ZW50X01lc3NhZ2UKICAgICAoRXZlbnQgOiBpbiBHZGtfRXZlbnQ7CiAgICAgIFhpZCAgIDogaW4g
R3VpbnQzMikgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBMb3cgbGV2ZWwgcm91dGluZSB0byBzZW5k
IGFuIEV2ZW50IHRvIGEgc3BlY2lmaWVkIFggd2luZG93LgoKICAgcHJvY2VkdXJlIEFsbG9jYXRl
CiAgICAgKEV2ZW50ICAgICAgOiBvdXQgR2RrX0V2ZW50OwogICAgICBFdmVudF9UeXBlIDogaW4g
VHlwZXMuR2RrX0V2ZW50X1R5cGU7CiAgICAgIFdpbmRvdyAgICAgOiBpbiBHZGsuV2luZG93Lkdk
a19XaW5kb3cpOwogICAtLSAgQ3JlYXRlIGFuIGV2ZW50LCB3aG9zZSBmaWVsZHMgYXJlIHVuaW5p
dGlhbGl6ZWQuCiAgIC0tICBZb3UgbmVlZCB0byB1c2UgdGhlIGZ1bmN0aW9uIFNldF8qIGFib3Zl
IHRvIG1vZGlmeSB0aGVtLCBiZWZvcmUgeW91IGNhbgogICAtLSAgc2VuZCB0aGUgZXZlbnQgd2l0
aCBFbWl0X0J5X05hbWUuCiAgIC0tICAhIU5vdGUhITogVGhlIGV2ZW50IGhhcyB0byBiZSBmcmVl
ZCBpZiB5b3UgaGF2ZSBjYWxsZWQgdGhpcyBmdW5jdGlvbi4KICAgLS0gIFVzZSB0aGUgZnVuY3Rp
b24gRnJlZS4KCiAgIHByb2NlZHVyZSBGcmVlIChFdmVudCA6IGluIG91dCBHZGtfRXZlbnQpOwog
ICAtLSAgRnJlZSB0aGUgbWVtb3J5IChhbmQgQyBzdHJ1Y3R1cmUpIGFzc29jaWF0ZWQgd2l0aCBh
biBldmVudC4KICAgLS0gIFlvdSBuZWVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBvbmx5IGlmIHRo
ZSBldmVudCB3YXMgY3JlYXRlZCB0aHJvdWdoCiAgIC0tICBBbGxvY2F0ZSwgbm90IGlmIGl0IHdh
cyBjcmVhdGVkIGJ5IEd0a0FkYSBpdHNlbGYgKG9yIHlvdSB3b3VsZCBnZXQKICAgLS0gIGEgc2Vn
bWVudGF0aW9uIGZhdWx0KS4KCiAgIHR5cGUgRXZlbnRfSGFuZGxlcl9GdW5jIGlzIGFjY2VzcyBw
cm9jZWR1cmUKICAgICAoRXZlbnQgOiBTeXN0ZW0uQWRkcmVzczsgRGF0YSA6IFN5c3RlbS5BZGRy
ZXNzKTsKICAgLS0gIEZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBuZXcgZXZlbnQgaGFu
ZGxlci4KICAgLS0gIFVzZSBGcm9tX0FkZHJlc3MgYmVsb3cgdG8gY29udmVydCB0byBhIHJlYWwg
ZXZlbnQgdHlwZS4KICAgLS0gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGRpc3BhdGNoIGFsbCB0aGUg
ZXZlbnRzIHByb3Blcmx5LCBzaW5jZSBpdCByZXBsYWNlcwogICAtLSAgY29tcGxldGx5IHRoZSBk
ZWZhdWx0IGV2ZW50IGhhbmRsZXIuIEhvd2V2ZXIsIGl0IGNhbiBjYWxsCiAgIC0tICBHdGsuTWFp
bi5Eb19FdmVudCB0byB0YWtlIGNhcmUgb2YgdGhlIGV2ZW50cyBpdCBkb2VzIG5vdCBrbm93IGhv
dyB0bwogICAtLSAgaGFuZGxlLgoKICAgcHJvY2VkdXJlIEV2ZW50X0hhbmRsZXJfU2V0CiAgICAg
KEZ1bmMgOiBFdmVudF9IYW5kbGVyX0Z1bmM7IERhdGEgOiBTeXN0ZW0uQWRkcmVzcyk7CiAgIC0t
ICBTZXQgdXAgYSBuZXcgZXZlbnQgaGFuZGxlci4KICAgLS0gIFRoaXMgaGFuZGxlciByZXBsYWNl
cyB0aGUgZGVmYXVsdCBHdGtBZGEgZXZlbnQgaGFuZGxlciwgYW5kIHRodXMgc2hvdWxkCiAgIC0t
ICBtYWtlIHN1cmUgdGhhdCBhbGwgZXZlbnRzIGFyZSBjb3JyZWN0bHkgaGFuZGxlZC4KICAgLS0K
ICAgLS0gIE5vdGUgdGhhdCBtYW5hZ2luZyB0aGUgbWVtb3J5IGZvciBEYXRhIGlzIHlvdXIgcmVz
cG9uc2FiaWxpdHksIGFuZAogICAtLSAgRGF0YSBpcyBwYXNzZWQgYXMgaXMgdG8gRnVuYy4KCiAg
IGZ1bmN0aW9uIEZyb21fQWRkcmVzcyAoQyA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR2RrX0V2
ZW50OwogICAtLSAgQ29udmVydCBhIEMgaGFuZGxlciB0byB0aGUgbWF0Y2hpbmcgRXZlbnQgc3Ry
dWN0dXJlLgoKICAgZnVuY3Rpb24gVG9fQWRkcmVzcyAoQyA6IEdka19FdmVudCkgcmV0dXJuIFN5
c3RlbS5BZGRyZXNzOwogICAtLSAgQ29udmVydCBhbiBldmVudCB0byB0aGUgdW5kZXJseWluZyBD
IGhhbmRsZXIuCgogICBmdW5jdGlvbiBJc19DcmVhdGVkIChFIDogR2RrX0V2ZW50KSByZXR1cm4g
Qm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIEMgZXZlbnQgaGFz
IGJlZW4gY3JlYXRlZC4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRGVzaWduIGlzc3Vl
cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBTZWUgZ2RrLWV2ZW50LmFkYiBmb3Ig
c29tZSBvZiB0aGUgZGVzaWduIGlzc3VlcyBiZWhpbmcgdGhhdCBwYWNrYWdlLgoKcHJpdmF0ZQog
ICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfRXZlbnRfVHlwZSwgImFkYV9nZGtfZXZlbnRfZ2V0X3R5
cGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1dpbmRvdywgImFkYV9nZGtfZXZlbnRfZ2V0
X3dpbmRvdyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfVGltZSwgImdka19ldmVudF9nZXRf
dGltZSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBQdXQsICJnZGtfZXZlbnRfcHV0Iik7CiAgIHBy
YWdtYSBJbXBvcnQKICAgICAoQywgU2VuZF9DbGllbnRfTWVzc2FnZV9Ub19BbGwsICJnZGtfZXZl
bnRfc2VuZF9jbGllbnRtZXNzYWdlX3RvYWxsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9X
aW5kb3csICJhZGFfZ2RrX2V2ZW50X3NldF93aW5kb3ciKTsKCmVuZCBHZGsuRXZlbnQ7Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1w
IFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg
ICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t
ICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0t
Ci0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAg
IC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90
aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3Ig
eW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0t
IGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSBy
ZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVy
IGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUg
ZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0t
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCgp3aXRoIEdsaWI7IHVzZSBHbGliOwoKcGFja2FnZSBHZGsuUmVjdGFu
Z2xlIGlzCgogICB0eXBlIEdka19SZWN0YW5nbGUgaXMgcmVjb3JkCiAgICAgIFggICAgICA6IEdp
bnQxNjsKICAgICAgWSAgICAgIDogR2ludDE2OwogICAgICBXaWR0aCAgOiBHdWludDE2OwogICAg
ICBIZWlnaHQgOiBHdWludDE2OwogICBlbmQgcmVjb3JkOwogICBwcmFnbWEgUGFjayAoR2RrX1Jl
Y3RhbmdsZSk7CgogICBGdWxsX0FyZWEgOiBjb25zdGFudCBHZGtfUmVjdGFuZ2xlOwogICAtLSAg
VGhlIGNvbnN0YW50IGFib3ZlIGNhbiBiZSB1c2VkIGluIEd0ay5XaWRnZXQuRHJhdyB3aGVuIHlv
dSB3YW50IHRvCiAgIC0tICByZWRyYXcgdGhlIHdob2xlIHdpZGdldAoKICAgcHJvY2VkdXJlIElu
dGVyc2VjdAogICAgIChTcmMxICAgICAgOiBpbiAgICAgR2RrX1JlY3RhbmdsZTsKICAgICAgU3Jj
MiAgICAgIDogaW4gICAgIEdka19SZWN0YW5nbGU7CiAgICAgIERlc3QgICAgICA6ICAgIG91dCBH
ZGtfUmVjdGFuZ2xlOwogICAgICBJbnRlcnNlY3QgOiAgICBvdXQgQm9vbGVhbik7CgogICBwcm9j
ZWR1cmUgVW5pb24KICAgICAoU3JjMSA6IGluICAgICBHZGtfUmVjdGFuZ2xlOwogICAgICBTcmMy
IDogaW4gICAgIEdka19SZWN0YW5nbGU7CiAgICAgIERlc3QgOiAgICBvdXQgR2RrX1JlY3Rhbmds
ZSk7Cgpwcml2YXRlCgogICBGdWxsX0FyZWEgOiBjb25zdGFudCBHZGtfUmVjdGFuZ2xlIDo9CiAg
ICAgKEdpbnQxNidGaXJzdCwgR2ludDE2J0ZpcnN0LCBHdWludDE2J0xhc3QsIEd1aW50MTYnTGFz
dCk7CgplbmQgR2RrLlJlY3RhbmdsZTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRh
IC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAw
MCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2Vs
IEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAg
ICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
QXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJp
Y3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhl
ciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9l
cyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0
byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0K
LS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29u
cyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRo
ZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICBBIEdka19X
aW5kb3cgaXMgdGhlIHBoeXNpY2FsIHdpbmRvdyB0aGF0IGFwcGVhcnMgb24gdGhlIHNjcmVlbi4K
LS0gIFRoaXMgaXMgdGhlIGxvdy1sZXZlbCBzdHJ1Y3R1cmUga25vd24gdG8gdGhlIFggc2VydmVy
IG9yIHRvIFdpbjMyLgotLSAgQWxsIHRoZSB3aWRnZXRzIGFyZSBpbnRlcm5hbGx5IGFzc29jaWF0
ZWQgd2l0aCBhIHNwZWNpZmljIEdka19XaW5kb3csCi0tICB0aGF0IGhvbGRzIGF0dHJpYnV0ZXMg
c3VjaCBhcyB0aGUgd2luZG93IGRlY29yYXRpb24sIHdoZXRoZXIgdGhlIHdpbmRvdwotLSAgY2Fu
IGJlIGludGVyYWN0aXZlbHkgcmVzaXplZCwuLi4KLS0KLS0gIE9uIHNvbWUgc3lzdGVtcywgdGhl
IGdyYXBoaWMgc2VydmVyIGtub3dzIGhvdyB0byBkaXNwbGF5IG5vbi1yZWN0YW5ndWxhcgotLSAg
d2luZG93cyAodGhpcyBpcyBwYXJ0IG9mIHRoZSBYIGV4dGVuc2lvbnMpLgotLQotLSAgSWYgeW91
IHNpbXBseSB3YW50IHRvIGNyZWF0ZSBhIHNpbXBseSB3aW5kb3csIHlvdSBzaG91bGQgaW5zdGVh
ZCBsb29rCi0tICBhdCB0aGUgZnVuY3Rpb25zIHByb3ZpZGVkIGluIEd0ay5XaW5kb3cgYW5kIEd0
ay5XaWRnZXQsIHdoaWNoIGFyZSBoaWdoZXIKLS0gIGxldmVsIHRoYW4gdGhlc2UuIFNlZSBhbHNv
IHRoZSBmdW5jdGlvbiBHdGsuV2lkZ2V0LkdldF9XaW5kb3cgdG8gZ2V0IHRoZQotLSAgR2RrX1dp
bmRvdyBhc3NvY2lhdGVkIHdpdGggYSB3aWRnZXQuIEJlIGF3YXJlIHRoYXQgc29tZSBvZiB0aGVt
IGRvbid0IGhhdmUKLS0gIHN1Y2ggd2luZG93cyEKLS0KLS0gIFNjcm9sbGluZyBjYW4gYmUgaW1w
bGVtZW50ZWQgaW4gc2V2ZXJhbCB3YXlzIHdpdGggR3RrQWRhICh0b3BsZXZlbAotLSAgc2Nyb2xs
aW5nIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIEd0a19TY3JvbGxlZF9XaW5kb3cgd2lkZ2V0LCBi
dXQgeW91Ci0tICBtaWdodCB3YW50IHRvIGhhbmRsZSBzY3JvbGxpbmcgeW91cnNlbGYpLiBTZWUg
dGhlIGZ1bmN0aW9uCi0tICBHZGsuRXZlbnQuR2V0X0dyYXBoaWNzX0V4cG9zZSBmb3IgbW9yZSBp
bmZvcm1hdGlvbi4KLS0gIDxjX3ZlcnNpb24+MS4yLjc8L2NfdmVyc2lvbj4KCndpdGggU3lzdGVt
Owp3aXRoIEdsaWI7IHVzZSBHbGliOwp3aXRoIEdsaWIuR2xpc3Q7CndpdGggR2RrOwp3aXRoIEdk
ay5Db2xvcjsKd2l0aCBHZGsuQ3Vyc29yOwp3aXRoIEdkay5UeXBlczsKd2l0aCBHZGsuVmlzdWFs
Owp3aXRoIEdkay5XaW5kb3dfQXR0cjsKd2l0aCBVbmNoZWNrZWRfQ29udmVyc2lvbjsKCnBhY2th
Z2UgR2RrLldpbmRvdyBpcwoKICAgc3VidHlwZSBHZGtfV2luZG93IGlzIEdkay5HZGtfV2luZG93
OwoKICAgTnVsbF9XaW5kb3cgOiBjb25zdGFudCBHZGtfV2luZG93OwoKICAgcHJvY2VkdXJlIEdk
a19OZXcKICAgICAoV2luZG93ICAgICAgICAgIDogb3V0IEdka19XaW5kb3c7CiAgICAgIFBhcmVu
dCAgICAgICAgICA6IEdka19XaW5kb3c7CiAgICAgIEF0dHJpYnV0ZXMgICAgICA6IEdkay5XaW5k
b3dfQXR0ci5HZGtfV2luZG93X0F0dHI7CiAgICAgIEF0dHJpYnV0ZXNfTWFzayA6IEdkay5UeXBl
cy5HZGtfV2luZG93X0F0dHJpYnV0ZXNfVHlwZSk7CgogICBwcm9jZWR1cmUgRm9yZWlnbl9OZXcg
KFdpbmRvdyA6IG91dCBHZGtfV2luZG93OyBBbl9JZCA6IEd1aW50MzIpOwoKICAgcHJvY2VkdXJl
IERlc3Ryb3kgKFdpbmRvdyA6IGluIG91dCBHZGtfV2luZG93KTsKICAgLS0gIERlc3Ryb3kgYSB3
aW5kb3cgYW5kIGFsbCBpdHMgY2hpbGRyZW4uCgogICBwcm9jZWR1cmUgUmVmIChXaW5kb3cgOiBH
ZGtfV2luZG93KTsKICAgLS0gIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50ZXIgYXNzb2Np
YXRlZCB3aXRoIHdpbmRvdy4KCiAgIHByb2NlZHVyZSBVbnJlZiAoV2luZG93IDogR2RrX1dpbmRv
dyk7CiAgIC0tICBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudGVyIGFzc29jaWF0ZWQgd2l0
aCB3aW5kb3cuCgogICBwcm9jZWR1cmUgV2luZG93X0F0X1BvaW50ZXIKICAgICAoV2luX1ggIDog
b3V0IEdpbnQ7CiAgICAgIFdpbl9ZICA6IG91dCBHaW50OwogICAgICBXaW5kb3cgOiBvdXQgR2Rr
X1dpbmRvdyk7CiAgIC0tICBSZXR1cm4gdGhlIHdpbmRvdyBhbmQgdGhlIGNvb3JkaW5hdGVzIGNv
cnJlc3BvbmRpbmcgdG8gdGhlIGN1cnJlbnQKICAgLS0gIHBvc2l0aW9uIG9mIHRoZSBjdXJzb3Iu
CgogICBwcm9jZWR1cmUgU2hvdyAoV2luZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUg
SGlkZSAoV2luZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgV2l0aGRyYXcgKFdpbmRv
dyA6IEdka19XaW5kb3cpOwoKICAgcHJvY2VkdXJlIE1vdmUKICAgICAoV2luZG93IDogR2RrX1dp
bmRvdzsKICAgICAgWCAgICAgIDogR2ludDsKICAgICAgWSAgICAgIDogR2ludCk7CgogICBwcm9j
ZWR1cmUgUmVzaXplCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFdpZHRoICA6IEdp
bnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwoKICAgcHJvY2VkdXJlIE1vdmVfUmVzaXplCiAgICAg
KFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICA6IEdpbnQ7CiAgICAgIFkgICAgICA6
IEdpbnQ7CiAgICAgIFdpZHRoICA6IEdpbnQ7CiAgICAgIEhlaWdodCA6IEdpbnQpOwoKICAgcHJv
Y2VkdXJlIFJlcGFyZW50CiAgICAgKFdpbmRvdyAgICAgOiBHZGtfV2luZG93OwogICAgICBOZXdf
UGFyZW50IDogR2RrX1dpbmRvdzsKICAgICAgWCAgICAgICAgICA6IEdpbnQ7CiAgICAgIFkgICAg
ICAgICAgOiBHaW50KTsKCiAgIHByb2NlZHVyZSBDbGVhciAoV2luZG93IDogR2RrX1dpbmRvdyk7
CgogICBwcm9jZWR1cmUgQ2xlYXJfQXJlYQogICAgIChXaW5kb3cgOiBHZGtfV2luZG93OwogICAg
ICBYICAgICAgOiBHaW50OwogICAgICBZICAgICAgOiBHaW50OwogICAgICBXaWR0aCAgOiBHaW50
OwogICAgICBIZWlnaHQgOiBHaW50KTsKICAgLS0gIERvZXMgbm90IGdlbmVyYXRlIGFuIGV4cG9z
ZSBldmVudC4KCiAgIHByb2NlZHVyZSBDbGVhcl9BcmVhX0UKICAgICAoV2luZG93IDogR2RrX1dp
bmRvdzsKICAgICAgWCAgICAgIDogR2ludDsKICAgICAgWSAgICAgIDogR2ludDsKICAgICAgV2lk
dGggIDogR2ludDsKICAgICAgSGVpZ2h0IDogR2ludCk7CiAgIC0tICBTYW1lIGFzIENsZWFyX0Fy
ZWEsIGJ1dCBnZW5lcmF0ZXMgYW4gZXhwb3NlIGV2ZW50LgoKICAgcHJvY2VkdXJlIENvcHlfQXJl
YQogICAgIChXaW5kb3cgICAgICAgIDogR2RrX1dpbmRvdzsKICAgICAgR2MgICAgICAgICAgICA6
IEdkay5HZGtfR0M7CiAgICAgIFggICAgICAgICAgICAgOiBHaW50OwogICAgICBZICAgICAgICAg
ICAgIDogR2ludDsKICAgICAgU291cmNlX1dpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFNvdXJj
ZV9YICAgICAgOiBHaW50OwogICAgICBTb3VyY2VfWSAgICAgIDogR2ludDsKICAgICAgV2lkdGgg
ICAgICAgICA6IEdpbnQ7CiAgICAgIEhlaWdodCAgICAgICAgOiBHaW50KTsKCiAgIHByb2NlZHVy
ZSBHZGtfUmFpc2UgKFdpbmRvdyA6IEdka19XaW5kb3cpOwoKICAgcHJvY2VkdXJlIExvd2VyIChX
aW5kb3cgOiBHZGtfV2luZG93KTsKCiAgIHByb2NlZHVyZSBTZXRfT3ZlcnJpZGVfUmVkaXJlY3QK
ICAgICAoV2luZG93ICAgICAgICAgICAgOiBHZGtfV2luZG93OwogICAgICBPdmVycmlkZV9SZWRp
cmVjdCA6IEJvb2xlYW4gOj0gVHJ1ZSk7CgogICBwcm9jZWR1cmUgU2V0X0NoaWxkX1NoYXBlcyAo
V2luZG93IDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgTWVyZ2VfQ2hpbGRfU2hhcGVzIChX
aW5kb3cgOiBHZGtfV2luZG93KTsKCiAgIGZ1bmN0aW9uIElzX1Zpc2libGUgKFdpbmRvdyA6IEdk
a19XaW5kb3cpIHJldHVybiBCb29sZWFuOwoKICAgZnVuY3Rpb24gSXNfVmlld2FibGUgKFdpbmRv
dyA6IEdka19XaW5kb3cpIHJldHVybiBCb29sZWFuOwoKICAgcHJvY2VkdXJlIFNldF9IaW50cwog
ICAgIChXaW5kb3cgICAgIDogR2RrX1dpbmRvdzsKICAgICAgWCAgICAgICAgICA6IEdpbnQ7CiAg
ICAgIFkgICAgICAgICAgOiBHaW50OwogICAgICBNaW5fV2lkdGggIDogR2ludDsKICAgICAgTWlu
X0hlaWdodCA6IEdpbnQ7CiAgICAgIE1heF9XaWR0aCAgOiBHaW50OwogICAgICBNYXhfSGVpZ2h0
IDogR2ludDsKICAgICAgRmxhZ3MgICAgICA6IEdkay5UeXBlcy5HZGtfV2luZG93X0hpbnRzKTsK
CiAgIHByb2NlZHVyZSBTZXRfR2VvbWV0cnlfSGludHMKICAgICAoV2luZG93ICAgOiBHZGtfV2lu
ZG93OwogICAgICBHZW9tZXRyeSA6IGluIG91dCBHZGsuVHlwZXMuR2RrX0dlb21ldHJ5OwogICAg
ICBGbGFncyAgICA6IEdkay5UeXBlcy5HZGtfV2luZG93X0hpbnRzKTsKCiAgIHByb2NlZHVyZSBT
ZXRfVGl0bGUgKFdpbmRvdyA6IEdka19XaW5kb3c7IFRpdGxlIDogU3RyaW5nKTsKCiAgIHByb2Nl
ZHVyZSBTZXRfUm9sZSAoV2luZG93IDogR2RrX1dpbmRvdzsgUm9sZSA6IFN0cmluZyk7CgogICBw
cm9jZWR1cmUgU2V0X1RyYW5zaWVudF9Gb3IKICAgICAoV2luZG93IDogR2RrX1dpbmRvdzsgTGVh
ZGVyIDogR2RrX1dpbmRvdyk7CgogICBwcm9jZWR1cmUgU2V0X0JhY2tncm91bmQKICAgICAoV2lu
ZG93IDogR2RrX1dpbmRvdzsgQ29sb3IgOiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKCiAgIHByb2Nl
ZHVyZSBTZXRfQmFja19QaXhtYXAKICAgICAoV2luZG93ICAgICAgICAgIDogR2RrX1dpbmRvdzsK
ICAgICAgUGl4bWFwICAgICAgICAgIDogR2RrLkdka19QaXhtYXA7CiAgICAgIFBhcmVudF9SZWxh
dGl2ZSA6IEJvb2xlYW4pOwoKICAgcHJvY2VkdXJlIFNldF9DdXJzb3IKICAgICAoV2luZG93IDog
R2RrX1dpbmRvdzsgQ3Vyc29yIDogR2RrLkN1cnNvci5HZGtfQ3Vyc29yKTsKICAgLS0gIE5vdGU6
IHRoZSB3aW5kb3cgbXVzdCBiZSByZWFsaXplZCBmaXJzdCwgaWUgaGF2ZSBhbiBhc3NvY2lhdGVk
IFgxMS9XaW4zMgogICAtLSAgd2luZG93LgoKICAgcHJvY2VkdXJlIFNldF9Db2xvcm1hcAogICAg
IChXaW5kb3cgOiBHZGtfV2luZG93OyBDb2xvcm1hcCA6IEdkay5Db2xvci5HZGtfQ29sb3JtYXAp
OwoKICAgcHJvY2VkdXJlIEdldF9HZW9tZXRyeQogICAgIChXaW5kb3cgOiBHZGtfV2luZG93Owog
ICAgICBYICAgICAgOiBvdXQgR2ludDsKICAgICAgWSAgICAgIDogb3V0IEdpbnQ7CiAgICAgIFdp
ZHRoICA6IG91dCBHaW50OwogICAgICBIZWlnaHQgOiBvdXQgR2ludDsKICAgICAgRGVwdGggIDog
b3V0IEdpbnQpOwogICAtLSAgWW91IGNhbiBnZXQgdGhlIHNpemUgb2YgdGhlIHJvb3Qgd2luZG93
IChpZSB0aGUgc2l6ZSBvZiB0aGUgc2NyZWVuKQogICAtLSAgc2ltcGx5IGJ5IGdpdmluZyBOdWxs
X1dpbmRvdyBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhpcyBwcm9jZWR1cmUuCgogICBwcm9j
ZWR1cmUgR2V0X1Bvc2l0aW9uCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFggICAg
ICA6IG91dCBHaW50OwogICAgICBZICAgICAgOiBvdXQgR2ludCk7CgogICBwcm9jZWR1cmUgR2V0
X1NpemUKICAgICAoV2luZG93IDogR2RrX1dpbmRvdzsKICAgICAgV2lkdGggIDogb3V0IEdpbnQ7
CiAgICAgIEhlaWdodCA6IG91dCBHaW50KTsKCiAgIGZ1bmN0aW9uIEdldF9WaXN1YWwgKFdpbmRv
dyA6IEdka19XaW5kb3cpIHJldHVybiBHZGsuVmlzdWFsLkdka19WaXN1YWw7CgogICBmdW5jdGlv
biBHZXRfQ29sb3JtYXAgKFdpbmRvdyA6IEdka19XaW5kb3cpIHJldHVybiBHZGsuQ29sb3IuR2Rr
X0NvbG9ybWFwOwoKICAgZnVuY3Rpb24gR2V0X1R5cGUgKFdpbmRvdyA6IEdka19XaW5kb3cpIHJl
dHVybiBHZGsuVHlwZXMuR2RrX1dpbmRvd19UeXBlOwoKICAgcHJvY2VkdXJlIEdldF9PcmlnaW4K
ICAgICAoV2luZG93ICA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICAgOiBvdXQgR2ludDsKICAg
ICAgWSAgICAgICA6IG91dCBHaW50OwogICAgICBTdWNjZXNzIDogb3V0IEJvb2xlYW4pOwoKICAg
cHJvY2VkdXJlIEdldF9EZXNrX1JlbGF0aXZlX09yaWdpbgogICAgIChXaW5kb3cgIDogR2RrX1dp
bmRvdzsKICAgICAgWCAgICAgICA6IG91dCBHaW50OwogICAgICBZICAgICAgIDogb3V0IEdpbnQ7
CiAgICAgIFN1Y2Nlc3MgOiBvdXQgQm9vbGVhbik7CgogICBwcm9jZWR1cmUgR2V0X1Jvb3RfT3Jp
Z2luCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFggICAgICA6IG91dCBHaW50Owog
ICAgICBZICAgICAgOiBvdXQgR2ludCk7CgogICBwcm9jZWR1cmUgR2V0X1BvaW50ZXIKICAgICAo
V2luZG93IDogR2RrX1dpbmRvdzsKICAgICAgWCAgICAgIDogb3V0IEdpbnQ7CiAgICAgIFkgICAg
ICA6IG91dCBHaW50OwogICAgICBNYXNrICAgOiBvdXQgR2RrLlR5cGVzLkdka19Nb2RpZmllcl9U
eXBlOwogICAgICBSZXN1bHQgOiBvdXQgR2RrX1dpbmRvdyk7CgogICBmdW5jdGlvbiBHZXRfUGFy
ZW50IChXaW5kb3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrX1dpbmRvdzsKCiAgIGZ1bmN0aW9u
IEdldF9Ub3BsZXZlbCAoV2luZG93IDogR2RrX1dpbmRvdykgcmV0dXJuIEdka19XaW5kb3c7Cgog
ICBmdW5jdGlvbiBHZXRfRXZlbnRzIChXaW5kb3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrLlR5
cGVzLkdka19FdmVudF9NYXNrOwoKICAgcHJvY2VkdXJlIFNldF9FdmVudHMKICAgICAoV2luZG93
IDogR2RrX1dpbmRvdzsgRXZlbnRfTWFzayA6IEdkay5UeXBlcy5HZGtfRXZlbnRfTWFzayk7Cgog
ICBwcm9jZWR1cmUgU2V0X0ljb24KICAgICAoV2luZG93ICAgICAgOiBHZGtfV2luZG93OwogICAg
ICBJY29uX1dpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIFBpeG1hcCAgICAgIDogR2RrX1BpeG1h
cDsKICAgICAgTWFzayAgICAgICAgOiBHZGtfQml0bWFwKTsKCiAgIHByb2NlZHVyZSBTZXRfSWNv
bl9OYW1lCiAgICAgKFdpbmRvdyA6IEdka19XaW5kb3c7CiAgICAgIE5hbWUgICA6IFN0cmluZyk7
CgogICBwcm9jZWR1cmUgU2V0X0dyb3VwIChXaW5kb3cgOiBHZGtfV2luZG93OyBMZWFkZXIgOiBH
ZGtfV2luZG93KTsKCiAgIHByb2NlZHVyZSBTZXRfRGVjb3JhdGlvbnMKICAgICAoV2luZG93ICAg
ICAgOiBHZGtfV2luZG93OwogICAgICBEZWNvcmF0aW9ucyA6IEdkay5UeXBlcy5HZGtfV21fRGVj
b3JhdGlvbik7CgogICBwcm9jZWR1cmUgU2V0X0Z1bmN0aW9ucwogICAgIChXaW5kb3cgICAgOiBH
ZGtfV2luZG93OwogICAgICBGdW5jdGlvbnMgOiBHZGsuVHlwZXMuR2RrX1dtX0Z1bmN0aW9uKTsK
CiAgIC0tICBHZGtfV2luZG93X0xpc3QKICAgLS0KICAgZnVuY3Rpb24gQ29udmVydCBpcyBuZXcg
VW5jaGVja2VkX0NvbnZlcnNpb24gKEdka19XaW5kb3csIFN5c3RlbS5BZGRyZXNzKTsKICAgZnVu
Y3Rpb24gQ29udmVydCBpcyBuZXcgVW5jaGVja2VkX0NvbnZlcnNpb24gKFN5c3RlbS5BZGRyZXNz
LCBHZGtfV2luZG93KTsKCiAgIHBhY2thZ2UgR2RrX1dpbmRvd19MaXN0IGlzIG5ldwogICAgIEds
aWIuR2xpc3QuR2VuZXJpY19MaXN0IChHcG9pbnRlciA9PiBHZGtfV2luZG93KTsKCiAgIGZ1bmN0
aW9uIEdldF9DaGlsZHJlbgogICAgIChXaW5kb3cgOiBHZGtfV2luZG93KSByZXR1cm4gR2RrX1dp
bmRvd19MaXN0LkdsaXN0OwoKICAgZnVuY3Rpb24gR2V0X1RvcGxldmVscyByZXR1cm4gR2RrX1dp
bmRvd19MaXN0LkdsaXN0OwoKcHJpdmF0ZQoKICAgTnVsbF9XaW5kb3cgOiBjb25zdGFudCBHZGtf
V2luZG93IDo9IG51bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENsZWFyLCAiZ2RrX3dpbmRvd19j
bGVhciIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBDbGVhcl9BcmVhLCAiZ2RrX3dpbmRvd19jbGVh
cl9hcmVhIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENsZWFyX0FyZWFfRSwgImdka193aW5kb3df
Y2xlYXJfYXJlYV9lIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENvcHlfQXJlYSwgImdka193aW5k
b3dfY29weV9hcmVhIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9FdmVudHMsICJnZGtfd2lu
ZG93X2dldF9ldmVudHMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X0dlb21ldHJ5LCAiZ2Rr
X3dpbmRvd19nZXRfZ2VvbWV0cnkiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1BhcmVudCwg
Imdka193aW5kb3dfZ2V0X3BhcmVudCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfUG9zaXRp
b24sICJnZGtfd2luZG93X2dldF9wb3NpdGlvbiIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRf
Um9vdF9PcmlnaW4sICJnZGtfd2luZG93X2dldF9yb290X29yaWdpbiIpOwogICBwcmFnbWEgSW1w
b3J0IChDLCBHZXRfU2l6ZSwgImdka193aW5kb3dfZ2V0X3NpemUiKTsKICAgcHJhZ21hIEltcG9y
dCAoQywgR2V0X1RvcGxldmVsLCAiZ2RrX3dpbmRvd19nZXRfdG9wbGV2ZWwiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgR2V0X1R5cGUsICJnZGtfd2luZG93X2dldF90eXBlIik7CiAgIHByYWdtYSBJ
bXBvcnQgKEMsIEhpZGUsICJnZGtfd2luZG93X2hpZGUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
TG93ZXIsICJnZGtfd2luZG93X2xvd2VyIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIE1lcmdlX0No
aWxkX1NoYXBlcywgImdka193aW5kb3dfbWVyZ2VfY2hpbGRfc2hhcGVzIik7CiAgIHByYWdtYSBJ
bXBvcnQgKEMsIE1vdmUsICJnZGtfd2luZG93X21vdmUiKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
TW92ZV9SZXNpemUsICJnZGtfd2luZG93X21vdmVfcmVzaXplIik7CiAgIHByYWdtYSBJbXBvcnQg
KEMsIEdka19SYWlzZSwgImdka193aW5kb3dfcmFpc2UiKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
UmVmLCAiZ2RrX3dpbmRvd19yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUmVwYXJlbnQsICJn
ZGtfd2luZG93X3JlcGFyZW50Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlc2l6ZSwgImdka193
aW5kb3dfcmVzaXplIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9DaGlsZF9TaGFwZXMsICJn
ZGtfd2luZG93X3NldF9jaGlsZF9zaGFwZXMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0Rl
Y29yYXRpb25zLCAiZ2RrX3dpbmRvd19zZXRfZGVjb3JhdGlvbnMiKTsKICAgcHJhZ21hIEltcG9y
dCAoQywgU2V0X0V2ZW50cywgImdka193aW5kb3dfc2V0X2V2ZW50cyIpOwogICBwcmFnbWEgSW1w
b3J0IChDLCBTZXRfRnVuY3Rpb25zLCAiZ2RrX3dpbmRvd19zZXRfZnVuY3Rpb25zIik7CiAgIHBy
YWdtYSBJbXBvcnQgKEMsIFNldF9HZW9tZXRyeV9IaW50cywgImdka193aW5kb3dfc2V0X2dlb21l
dHJ5X2hpbnRzIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9Hcm91cCwgImdka193aW5kb3df
c2V0X2dyb3VwIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9IaW50cywgImdka193aW5kb3df
c2V0X2hpbnRzIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9UcmFuc2llbnRfRm9yLCAiZ2Rr
X3dpbmRvd19zZXRfdHJhbnNpZW50X2ZvciIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTaG93LCAi
Z2RrX3dpbmRvd19zaG93Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAiZ2RrX3dpbmRv
d191bnJlZiIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBXaXRoZHJhdywgImdka193aW5kb3dfd2l0
aGRyYXciKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0N1cnNvciwgImdka193aW5kb3dfc2V0
X2N1cnNvciIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfQ29sb3JtYXAsICJnZGtfd2luZG93
X2dldF9jb2xvcm1hcCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfVmlzdWFsLCAiZ2RrX3dp
bmRvd19nZXRfdmlzdWFsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9Db2xvcm1hcCwgImdk
a193aW5kb3dfc2V0X2NvbG9ybWFwIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9JY29uLCAi
Z2RrX3dpbmRvd19zZXRfaWNvbiIpOwplbmQgR2RrLldpbmRvdzsKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0g
ICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmln
aHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFu
dWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAg
LS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg
ICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAg
ICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5z
dGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlz
IHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwg
dGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0K
LS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBh
bnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBi
ZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tICBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgdGhlIGNhcGFi
aWxpdHkgdG8gY3JlYXRlIHByZWRlZmluZWQgbW91c2UgY3Vyc29ycwotLSAgYXMgd2VsbCBhcyB1
c2VyIGRlZmluZWQgb25lcy4KLS0gIDwvZGVzY3JpcHRpb24+Ci0tICA8Y192ZXJzaW9uPjEuMi44
PC9jX3ZlcnNpb24+Cgp3aXRoIEdsaWI7CndpdGggR2RrLlR5cGVzOwp3aXRoIEdkay5Db2xvcjsK
CnBhY2thZ2UgR2RrLkN1cnNvciBpcwoKICAgdHlwZSBHZGtfQ3Vyc29yIGlzIG5ldyBHZGsuQ19Q
cm94eTsKICAgTnVsbF9DdXJzb3IgOiBjb25zdGFudCBHZGtfQ3Vyc29yOwoKICAgcHJvY2VkdXJl
IEdka19OZXcKICAgICAoV2lkZ2V0ICAgICAgOiBvdXQgR2RrX0N1cnNvcjsKICAgICAgQ3Vyc29y
X1R5cGUgOiBpbiAgR2RrLlR5cGVzLkdka19DdXJzb3JfVHlwZSk7CiAgIC0tICBDcmVhdGUgYSBu
ZXcgc3RhbmRhcmQgY3Vyc29yLgoKICAgcHJvY2VkdXJlIEdka19OZXcKICAgICAoV2lkZ2V0IDog
b3V0IEdka19DdXJzb3I7CiAgICAgIFNvdXJjZSA6IGluIEdkay5HZGtfUGl4bWFwOwogICAgICBN
YXNrICAgOiBpbiBHZGsuR2RrX1BpeG1hcDsKICAgICAgRmcgICAgIDogaW4gR2RrLkNvbG9yLkdk
a19Db2xvcjsKICAgICAgQmcgICAgIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcjsKICAgICAgWCAg
ICAgIDogaW4gR2xpYi5HaW50OwogICAgICBZICAgICAgOiBpbiBHbGliLkdpbnQpOwogICAtLSAg
Q3JlYXRlIGEgbmV3IGN1cnNvciBmcm9tIGEgZ2l2ZW4gcGl4bWFwIGFuZCBtYXNrLgogICAtLSAg
Qm90aCB0aGUgcGl4bWFwIGFuZCBtYXNrIG11c3QgaGF2ZSBhIGRlcHRoIG9mIDEgKGkuZS4gZWFj
aCBwaXhlbCBoYXMKICAgLS0gIG9ubHkgMiB2YWx1ZXMgLSBvbiBvciBvZmYpLiBUaGUgc3RhbmRh
cmQgY3Vyc29yIHNpemUgaXMgMTYgYnkgMTYgcGl4ZWxzLgogICAtLSAgIC0gU291cmNlIGlzIHRo
ZSBwaXhtYXAgc3BlY2lmeWluZyB0aGUgY3Vyc29yLgogICAtLSAgIC0gTWFzayBpcyB0aGUgcGl4
bWFwIHNwZWNpZnlpbmcgdGhlIG1hc2ssIHdoaWNoIG11c3QgYmUgdGhlIHNhbWUgc2l6ZQogICAt
LSAgIGFzIHNvdXJjZS4KICAgLS0gICAtIEZnIGlzIHRoZSBmb3JlZ3JvdW5kIGNvbG9yLCB1c2Vk
IGZvciB0aGUgYml0cyBpbiB0aGUgc291cmNlIHdoaWNoIGFyZQogICAtLSAgIGVuYWJsZWQuIFRo
ZSBjb2xvciBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsbG9jYXRlZCBmaXJzdC4KICAgLS0gICAtIEJn
IGlzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLCB1c2VkIGZvciB0aGUgYml0cyBpbiB0aGUgc291cmNl
IHdoaWNoIGFyZQogICAtLSAgIGRpc2FibGVkLiBUaGUgY29sb3IgZG9lcyBub3QgaGF2ZSB0byBi
ZSBhbGxvY2F0ZWQgZmlyc3QuCiAgIC0tICAgLSBYIGlzIHRoZSBob3Jpem9udGFsIG9mZnNldCBv
ZiB0aGUgJ2hvdHNwb3QnIG9mIHRoZSBjdXJzb3IuCiAgIC0tICAgLSBZIGlzIHRoZSB2ZXJ0aWNh
bCBvZmZzZXQgb2YgdGhlICdob3RzcG90JyBvZiB0aGUgY3Vyc29yLgoKICAgcHJvY2VkdXJlIERl
c3Ryb3kgKEN1cnNvciA6IGluIEdka19DdXJzb3IpOwogICAtLSAgRGVzdHJveSBhIGN1cnNvciwg
ZnJlZWluZyBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBmb3IgaXQuCgpwcml2YXRlCiAgIE51bGxf
Q3Vyc29yIDogY29uc3RhbnQgR2RrX0N1cnNvciA6PSBudWxsOwogICBwcmFnbWEgSW1wb3J0IChD
LCBEZXN0cm95LCAiZ2RrX2N1cnNvcl9kZXN0cm95Iik7CmVuZCBHZGsuQ3Vyc29yOwotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciB0aGUgR2ltcCBU
b29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg
ICAgIENvcHlyaWdodCAoQykgMTk5OC0xOTk5ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg
ICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2VyIGFuZCBBcm5hdWQgQ2hhcmxldCAg
ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAgICAtLQotLSBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAgICAgICAtLQot
LSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgICAt
LQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQotLSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgICAgICAtLQotLSBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhl
ciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAtLQotLSB0aGlzIHVuaXQsIG9yIHlv
dSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gICAtLQotLSBl
eGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVz
dWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBp
bnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgICAtLQotLSBleGVjdXRhYmxlIGZp
bGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAtLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQoKd2l0aCBHZGsuQ29sb3I7CndpdGggR2RrLkN1cnNvcjsKd2l0aCBHZGsu
VHlwZXM7CndpdGggR2RrLlZpc3VhbDsKd2l0aCBHbGliOwoKcGFja2FnZSBHZGsuV2luZG93X0F0
dHIgaXMKCiAgIHR5cGUgR2RrX1dpbmRvd19BdHRyIGlzIG5ldyBDX1Byb3h5OwogICBOdWxsX1dp
bmRvd19BdHRyIDogY29uc3RhbnQgR2RrX1dpbmRvd19BdHRyOwoKICAgcHJvY2VkdXJlIEdka19O
ZXcKICAgICAoV2luZG93X0F0dHIgICAgICAgOiAgICBvdXQgR2RrX1dpbmRvd19BdHRyOwogICAg
ICBUaXRsZSAgICAgICAgICAgICA6IGluICAgICBTdHJpbmcgOj0gIiI7CiAgICAgIEV2ZW50X01h
c2sgICAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfRXZlbnRfTWFzayA6PQogICAgICAgIEdk
ay5UeXBlcy5OdWxsX0V2ZW50X01hc2s7CiAgICAgIFgsIFkgICAgICAgICAgICAgIDogaW4gICAg
IEdsaWIuR2ludDE2IDo9IDA7CiAgICAgIFdpZHRoICAgICAgICAgICAgIDogaW4gICAgIEdsaWIu
R2ludDE2IDo9IDA7CiAgICAgIEhlaWdodCAgICAgICAgICAgIDogaW4gICAgIEdsaWIuR2ludDE2
IDo9IDA7CiAgICAgIFdjbGFzcyAgICAgICAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfV2lu
ZG93X0NsYXNzIDo9CiAgICAgICAgR2RrLlR5cGVzLklucHV0X091dHB1dDsKICAgICAgVmlzdWFs
ICAgICAgICAgICAgOiBpbiAgICAgR2RrLlZpc3VhbC5HZGtfVmlzdWFsIDo9CiAgICAgICAgR2Rr
LlZpc3VhbC5OdWxsX1Zpc3VhbDsKICAgICAgQ29sb3JtYXAgICAgICAgICAgOiBpbiAgICAgR2Rr
LkNvbG9yLkdka19Db2xvcm1hcCA6PQogICAgICAgIEdkay5Db2xvci5OdWxsX0NvbG9ybWFwOwog
ICAgICBXaW5kb3dfVHlwZSAgICAgICA6IGluICAgICBHZGsuVHlwZXMuR2RrX1dpbmRvd19UeXBl
IDo9CiAgICAgICAgR2RrLlR5cGVzLldpbmRvd19Sb290OwogICAgICBDdXJzb3IgICAgICAgICAg
ICA6IGluICAgICBHZGsuQ3Vyc29yLkdka19DdXJzb3IgOj0KICAgICAgICBHZGsuQ3Vyc29yLk51
bGxfQ3Vyc29yOwogICAgICBXbWNsYXNzX05hbWUgICAgICA6IGluICAgICBTdHJpbmcgOj0gIiI7
CiAgICAgIFdtY2xhc3NfQ2xhc3MgICAgIDogaW4gICAgIFN0cmluZyA6PSAiIjsKICAgICAgT3Zl
cnJpZGVfUmVkaXJlY3QgOiBpbiAgICAgQm9vbGVhbiA6PSBUcnVlKTsKCiAgIHByb2NlZHVyZSBE
ZXN0cm95IChXaW5kb3dfQXR0ciA6IGluIG91dCBHZGtfV2luZG93X0F0dHIpOwoKICAgcHJvY2Vk
dXJlIFNldF9UaXRsZQogICAgIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cjsKICAg
ICAgVGl0bGUgICAgICAgOiBpbiBTdHJpbmcpOwoKICAgZnVuY3Rpb24gR2V0X1RpdGxlIChXaW5k
b3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIFN0cmluZzsKCiAgIHByb2NlZHVy
ZSBTZXRfRXZlbnRfTWFzawogICAgIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cjsK
ICAgICAgRXZlbnRfTWFzayAgOiBpbiBHZGsuVHlwZXMuR2RrX0V2ZW50X01hc2spOwoKICAgZnVu
Y3Rpb24gR2V0X0V2ZW50X01hc2sKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0
dHIpCiAgICAgIHJldHVybiBHZGsuVHlwZXMuR2RrX0V2ZW50X01hc2s7CgogICBwcm9jZWR1cmUg
U2V0X1gKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIFggICAg
ICAgICAgIDogaW4gR2xpYi5HaW50MTYpOwoKICAgZnVuY3Rpb24gR2V0X1ggKFdpbmRvd19BdHRy
IDogaW4gR2RrX1dpbmRvd19BdHRyKSByZXR1cm4gR2xpYi5HaW50MTY7CgoKICAgcHJvY2VkdXJl
IFNldF9ZCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyOwogICAgICBZICAg
ICAgICAgICA6IGluIEdsaWIuR2ludDE2KTsKCiAgIGZ1bmN0aW9uIEdldF9ZIChXaW5kb3dfQXR0
ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIEdsaWIuR2ludDE2OwoKICAgcHJvY2VkdXJl
IFNldF9XaWR0aAogICAgIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cjsKICAgICAg
V2lkdGggICAgICAgOiBpbiBHbGliLkdpbnQxNik7CgogICBmdW5jdGlvbiBHZXRfV2lkdGggKFdp
bmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyKSByZXR1cm4gR2xpYi5HaW50MTY7CgogICBw
cm9jZWR1cmUgU2V0X0hlaWdodAogICAgIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0
cjsKICAgICAgSGVpZ2h0ICAgICAgOiBpbiBHbGliLkdpbnQxNik7CgogICBmdW5jdGlvbiBHZXRf
SGVpZ2h0IChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIEdsaWIuR2lu
dDE2OwoKICAgcHJvY2VkdXJlIFNldF9XaW5kb3dfQ2xhc3MKICAgICAoV2luZG93X0F0dHIgOiBp
biBHZGtfV2luZG93X0F0dHI7CiAgICAgIFdjbGFzcyAgICAgIDogaW4gR2RrLlR5cGVzLkdka19X
aW5kb3dfQ2xhc3MpOwoKICAgZnVuY3Rpb24gR2V0X1dpbmRvd19DbGFzcwogICAgIChXaW5kb3df
QXR0ciA6IGluIEdka19XaW5kb3dfQXR0cikgcmV0dXJuIEdkay5UeXBlcy5HZGtfV2luZG93X0Ns
YXNzOwoKICAgcHJvY2VkdXJlIFNldF9WaXN1YWwKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtf
V2luZG93X0F0dHI7CiAgICAgIFZpc3VhbCAgICAgIDogaW4gR2RrLlZpc3VhbC5HZGtfVmlzdWFs
KTsKCiAgIGZ1bmN0aW9uIEdldF9WaXN1YWwKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2lu
ZG93X0F0dHIpIHJldHVybiBHZGsuVmlzdWFsLkdka19WaXN1YWw7CgogICBwcm9jZWR1cmUgU2V0
X0NvbG9ybWFwCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyOwogICAgICBD
b2xvcm1hcCAgICA6IGluIEdkay5Db2xvci5HZGtfQ29sb3JtYXApOwoKICAgZnVuY3Rpb24gR2V0
X0NvbG9ybWFwCiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19BdHRyKSByZXR1cm4g
R2RrLkNvbG9yLkdka19Db2xvcm1hcDsKCiAgIHByb2NlZHVyZSBTZXRfV2luZG93X1R5cGUKICAg
ICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIFdpbmRvd19UeXBlIDog
aW4gR2RrLlR5cGVzLkdka19XaW5kb3dfVHlwZSk7CgogICBmdW5jdGlvbiBHZXRfV2luZG93X1R5
cGUKICAgICAoV2luZG93X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHIpIHJldHVybiBHZGsuVHlw
ZXMuR2RrX1dpbmRvd19UeXBlOwoKICAgcHJvY2VkdXJlIFNldF9DdXJzb3IKICAgICAoV2luZG93
X0F0dHIgOiBpbiBHZGtfV2luZG93X0F0dHI7CiAgICAgIEN1cnNvciAgICAgIDogaW4gR2RrLkN1
cnNvci5HZGtfQ3Vyc29yKTsKCiAgIGZ1bmN0aW9uIEdldF9DdXJzb3IKICAgICAoV2luZG93X0F0
dHIgOiBpbiBHZGtfV2luZG93X0F0dHIpCiAgICAgIHJldHVybiBHZGsuQ3Vyc29yLkdka19DdXJz
b3I7CgogICBwcm9jZWR1cmUgU2V0X1dtY2xhc3NfTmFtZQogICAgIChXaW5kb3dfQXR0ciAgOiBp
biBHZGtfV2luZG93X0F0dHI7CiAgICAgIFdtY2xhc3NfTmFtZSA6IGluIFN0cmluZyk7CgogICBm
dW5jdGlvbiBHZXRfV21jbGFzc19OYW1lIChXaW5kb3dfQXR0ciA6IGluIEdka19XaW5kb3dfQXR0
cikgcmV0dXJuIFN0cmluZzsKCgogICBwcm9jZWR1cmUgU2V0X1dtY2xhc3NfQ2xhc3MKICAgICAo
V2luZG93X0F0dHIgICA6IGluIEdka19XaW5kb3dfQXR0cjsKICAgICAgV21jbGFzc19DbGFzcyA6
IGluIFN0cmluZyk7CgogICBmdW5jdGlvbiBHZXRfV21jbGFzc19DbGFzcyAoV2luZG93X0F0dHIg
OiBpbiBHZGtfV2luZG93X0F0dHIpIHJldHVybiBTdHJpbmc7CgogICBwcm9jZWR1cmUgU2V0X092
ZXJyaWRlX1JlZGlyZWN0CiAgICAgKFdpbmRvd19BdHRyICAgICAgIDogaW4gR2RrX1dpbmRvd19B
dHRyOwogICAgICBPdmVycmlkZV9SZWRpcmVjdCA6IGluIEJvb2xlYW4pOwoKICAgZnVuY3Rpb24g
R2V0X092ZXJyaWRlX1JlZGlyZWN0CiAgICAgKFdpbmRvd19BdHRyIDogaW4gR2RrX1dpbmRvd19B
dHRyKSByZXR1cm4gQm9vbGVhbjsKCnByaXZhdGUKICAgTnVsbF9XaW5kb3dfQXR0ciA6IGNvbnN0
YW50IEdka19XaW5kb3dfQXR0ciA6PSBudWxsOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfQ29s
b3JtYXAsICJhZGFfZ2RrX3dpbmRvd19hdHRyX2dldF9jb2xvcm1hcCIpOwogICBwcmFnbWEgSW1w
b3J0IChDLCBHZXRfQ3Vyc29yLCAiYWRhX2dka193aW5kb3dfYXR0cl9nZXRfY3Vyc29yIik7CiAg
IHByYWdtYSBJbXBvcnQgKEMsIEdldF9FdmVudF9NYXNrLCAiYWRhX2dka193aW5kb3dfYXR0cl9n
ZXRfZXZlbnRfbWFzayIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfSGVpZ2h0LCAiYWRhX2dk
a193aW5kb3dfYXR0cl9nZXRfaGVpZ2h0Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9WaXN1
YWwsICJhZGFfZ2RrX3dpbmRvd19hdHRyX2dldF92aXN1YWwiKTsKICAgcHJhZ21hIEltcG9ydCAo
QywgR2V0X1dpZHRoLCAiYWRhX2dka193aW5kb3dfYXR0cl9nZXRfd2lkdGgiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgR2V0X1dpbmRvd19DbGFzcywgImFkYV9nZGtfd2luZG93X2F0dHJfZ2V0X3dj
bGFzcyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfV2luZG93X1R5cGUsICJhZGFfZ2RrX3dp
bmRvd19hdHRyX2dldF93aW5kb3dfdHlwZSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfWCwg
ImFkYV9nZGtfd2luZG93X2F0dHJfZ2V0X3giKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1ks
ICJhZGFfZ2RrX3dpbmRvd19hdHRyX2dldF95Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9D
b2xvcm1hcCwgImFkYV9nZGtfd2luZG93X2F0dHJfc2V0X2NvbG9ybWFwIik7CiAgIHByYWdtYSBJ
bXBvcnQgKEMsIFNldF9DdXJzb3IsICJhZGFfZ2RrX3dpbmRvd19hdHRyX3NldF9jdXJzb3IiKTsK
ICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X0V2ZW50X01hc2ssICJhZGFfZ2RrX3dpbmRvd19hdHRy
X3NldF9ldmVudF9tYXNrIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9IZWlnaHQsICJhZGFf
Z2RrX3dpbmRvd19hdHRyX3NldF9oZWlnaHQiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X1Zp
c3VhbCwgImFkYV9nZGtfd2luZG93X2F0dHJfc2V0X3Zpc3VhbCIpOwogICBwcmFnbWEgSW1wb3J0
IChDLCBTZXRfV2lkdGgsICJhZGFfZ2RrX3dpbmRvd19hdHRyX3NldF93aWR0aCIpOwogICBwcmFn
bWEgSW1wb3J0IChDLCBTZXRfV2luZG93X0NsYXNzLCAiYWRhX2dka193aW5kb3dfYXR0cl9zZXRf
d2NsYXNzIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9XaW5kb3dfVHlwZSwgImFkYV9nZGtf
d2luZG93X2F0dHJfc2V0X3dpbmRvd190eXBlIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNldF9Y
LCAiYWRhX2dka193aW5kb3dfYXR0cl9zZXRfeCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRf
WSwgImFkYV9nZGtfd2luZG93X2F0dHJfc2V0X3kiKTsKZW5kIEdkay5XaW5kb3dfQXR0cjsKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBiaW5kaW5nIGZvciBH
dGsrL0dub21lICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICBDb3B5cmlnaHQg
KEMpIDE5OTgtMjAwMCBFLiBCcmlvdCwgSi4gQnJvYmVja2VyIGFuZCBBLiBDaGFybGV0ICAgLS0K
LS0gICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgQUNULUV1cm9wZSAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAg
LS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
ICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0g
Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYg
b3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBv
ciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0K
LS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhl
IHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2
ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJs
ZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAg
LS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBQaXhtYXBzIGFyZSBv
ZmYtc2NyZWVuIGRyYXdhYmxlcy4gVGhleSBjYW4gYmUgZHJhd24gdXBvbiB3aXRoIHRoZSBzdGFu
ZGFyZAotLSAgZHJhd2luZyBwcmltaXRpdmVzLCB0aGVuIGNvcGllZCB0byBhbm90aGVyIGRyYXdh
YmxlIChzdWNoIGFzIGEgR2RrX1dpbmRvdykKLS0gIHdpdGggR2RrLlBpeG1hcC5EcmF3LiBUaGUg
ZGVwdGggb2YgYSBwaXhtYXAgaXMgdGhlIG51bWJlciBvZiBiaXRzIHBlcgotLSAgcGl4ZWxzLiBC
aXRtYXBzIGFyZSBzaW1wbHkgcGl4bWFwcyB3aXRoIGEgZGVwdGggb2YgMS4gKFRoYXQgaXMsIHRo
ZXkgYXJlCi0tICBtb25vY2hyb21lIGJpdG1hcHMgLSBlYWNoIHBpeGVsIGNhbiBiZSBlaXRoZXIg
b24gb3Igb2ZmKS4KLS0gIEBweHJlZntQYWNrYWdlX0dkay5QaXhtYXB9IGZvciBtb3JlIGRldGFp
bHMgb24gcGl4bWFwIGhhbmRsaW5nLgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3ZlcnNp
b24+MS4yLjc8L2NfdmVyc2lvbj4KCndpdGggR2xpYjsgdXNlIEdsaWI7Cgp3aXRoIEdkay5XaW5k
b3c7CgpwYWNrYWdlIEdkay5CaXRtYXAgaXMKCiAgIHN1YnR5cGUgR2RrX0JpdG1hcCBpcyBHZGsu
R2RrX0JpdG1hcDsKICAgLS0gIEEgYmxhY2sgYW5kIHdoaXRlIGltYWdlLgogICAtLSAgVGhpcyB0
eXBlIGlzIG1haW5seSB1c2VkIGFzIGEgbWFzayB3aGVuIGRyYXdpbmcgb3RoZXIgY29sb3JlZCBp
bWFnZXMuCiAgIC0tICBFYWNoIHBpeGVsIGNhbiBoYXZlIHR3byB2YWx1ZXMsIDAgb3IgMS4KCiAg
IE51bGxfQml0bWFwIDogY29uc3RhbnQgR2RrX0JpdG1hcDsKCiAgIHByb2NlZHVyZSBHZGtfTmV3
IChCaXRtYXAgOiBvdXQgR2RrX0JpdG1hcDsKICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyA6
IGluICBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgICAgICAgICAgICAgICAgICAgICBXaWR0aCAg
OiBpbiAgR2ludDsKICAgICAgICAgICAgICAgICAgICAgIEhlaWdodCA6IGluICBHaW50KTsKICAg
LS0gIENyZWF0ZSBhIG5ldyBiaXRtYXAgd2l0aCBhIGdpdmVuIHNpemUuCiAgIC0tICBXaW5kb3cg
aXMgdXNlZCB0byBkZXRlcm1pbmUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBuZXcgYml0bWFwLgog
ICAtLSAgQ2FuIGJlIGV2ZW50dWFsbHkgbnVsbCBpbiB3aGljaCBjYXNlIHRoZSByb290IHdpbmRv
dyBpcyB1c2VkLgogICAtLSAgV2lkdGggaXMgdGhlIHdpZHRoIG9mIHRoZSBuZXcgYml0bWFwIGlu
IHBpeGVscy4KICAgLS0gIEhlaWdodCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSBuZXcgYml0bWFwIGlu
IHBpeGVscy4KCiAgIHByb2NlZHVyZSBSZWYgKEJpdG1hcCA6IGluIEdka19CaXRtYXApOwogICAt
LSAgQWRkIGEgcmVmZXJlbmNlIHRvIGEgYml0bWFwLgoKICAgcHJvY2VkdXJlIFVucmVmIChCaXRt
YXAgOiBpbiBHZGtfQml0bWFwKTsKICAgLS0gIFRoaXMgaXMgdGhlIHVzdWFsIHdheSB0byBkZXN0
cm95IGEgYml0bWFwLiBUaGUgbWVtb3J5IGlzIGZyZWVkIHdoZW4KICAgLS0gIHRoZXJlIGlzIG5v
IG1vcmUgcmVmZXJlbmNlCgogICBwcm9jZWR1cmUgQ3JlYXRlX0Zyb21fRGF0YSAoQml0bWFwIDog
ICAgb3V0IEdka19CaXRtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3cg
OiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRGF0YSAgIDogaW4gICAgIFN0cmluZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdpZHRoICA6IGluICAgICBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SGVpZ2h0IDogaW4gICAgIEdpbnQpOwogICAtLSAgQ3JlYXRlIGEgYml0bWFwIGZyb20gZGF0YSBp
biBYQk0gZm9ybWF0LgogICAtLSAgV2luZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1bHQg
dmFsdWVzIGZvciB0aGUgbmV3IGJpdG1hcCwgY2FuIGJlCiAgIC0tICBudWxsIGluIHdoaWNoIGNh
c2UgdGhlIHJvb3Qgd2luZG93IGlzIHVzZWQuCiAgIC0tICBEYXRhIGlzIHRoZSBYQk0gZGF0YS4K
ICAgLS0gIFdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMuCiAg
IC0tICBIZWlnaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgbmV3IGJpdG1hcCBpbiBwaXhlbHMuCgpw
cml2YXRlCiAgIE51bGxfQml0bWFwIDogY29uc3RhbnQgR2RrX0JpdG1hcCA6PSBudWxsOwogICBw
cmFnbWEgSW1wb3J0IChDLCBSZWYsICJnZGtfYml0bWFwX3JlZiIpOwogICBwcmFnbWEgSW1wb3J0
IChDLCBVbnJlZiwgImdka19iaXRtYXBfdW5yZWYiKTsKZW5kIEdkay5CaXRtYXA7Ci0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRv
b2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgQ29weXJpZ2h0IChDKSAxOTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0t
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0t
Ci0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVy
IGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91
IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4
ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1
bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGlu
dmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmls
ZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgp3aXRoIEdkazsgdXNlIEdkazsKd2l0aCBHZGsuVHlwZXM7CndpdGggR3Rr
Lk9iamVjdDsKCnBhY2thZ2UgR3RrLkFjY2VsX0dyb3VwIGlzCgogICB0eXBlIEd0a19BY2NlbF9H
cm91cCBpcyBuZXcgR2RrLkNfUHJveHk7CiAgIHR5cGUgR3RrX0FjY2VsX0VudHJ5IGlzIG5ldyBH
ZGsuQ19Qcm94eTsKCiAgIHR5cGUgR3RrX0FjY2VsX0ZsYWdzIGlzIG5ldyBHdWludDsKICAgQWNj
ZWxfVmlzaWJsZSAgICAgICAgOiBjb25zdGFudCBHdGtfQWNjZWxfRmxhZ3M7CiAgIEFjY2VsX1Np
Z25hbF9WaXNpYmxlIDogY29uc3RhbnQgR3RrX0FjY2VsX0ZsYWdzOwogICBBY2NlbF9Mb2NrZWQg
ICAgICAgICA6IGNvbnN0YW50IEd0a19BY2NlbF9GbGFnczsKICAgQWNjZWxfTWFzayAgICAgICAg
ICAgOiBjb25zdGFudCBHdGtfQWNjZWxfRmxhZ3M7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogICAtLSAgQWNjZWxlcmF0b3IgR3JvdXBzICAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQoKICAgcHJvY2VkdXJlIEd0a19OZXcgKFdpZGdldCA6IG91dCBHdGtfQWNjZWxfR3Jv
dXApOwoKICAgZnVuY3Rpb24gR2V0X0RlZmF1bHQgcmV0dXJuIEd0a19BY2NlbF9Hcm91cDsKCiAg
IC0tICBwcm9jZWR1cmUgUmVmCiAgIC0tICBwcm9jZWR1cmUgVW5yZWYKCiAgIGZ1bmN0aW9uIEFj
dGl2YXRlCiAgICAgKEFjY2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2Nl
bF9LZXkgICA6IGluIEdkay5UeXBlcy5HZGtfS2V5X1R5cGU7CiAgICAgIEFjY2VsX01vZHMgIDog
aW4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKSByZXR1cm4gQm9vbGVhbjsKCiAgIGZ1bmN0
aW9uIEFjY2VsX0dyb3Vwc19BY3RpdmF0ZQogICAgIChPYmplY3QgICAgIDogYWNjZXNzIEd0ay5P
YmplY3QuR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgIEFjY2VsX0tleSAgOiBpbiBHZGsu
VHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9Nb2RzIDogaW4gR2RrLlR5cGVzLkdka19N
b2RpZmllcl9UeXBlKSByZXR1cm4gQm9vbGVhbjsKCiAgIHByb2NlZHVyZSBBdHRhY2gKICAgICAo
QWNjZWxfR3JvdXAgOiBpbiBHdGtfQWNjZWxfR3JvdXA7CiAgICAgIE9iamVjdCAgICAgIDogYWNj
ZXNzIEd0ay5PYmplY3QuR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpOwogICAtLSAgT2JqZWN0IHNo
b3VsZCBiZSBhYmxlIHRvIGdldCBrZXlfcHJlc3MgYW5kIGtleV9yZWxlYXNlIGV2ZW50cyAoaWUK
ICAgLS0gIHRoaXMgd29uJ3Qgd29yayBpbiBhIEd0a19Cb3ggd2hpY2ggaGFzIG5vIHdpbmRvdyku
CiAgIC0tICBUaGUgcmVjb21tZW5kZWQgd2F5IGlzIHRvIGF0dGFjaCB0aGUgQWNjZWxfR3JvdXAg
dG8gdGhlIHRvcGxldmVsIHdpbmRvdy4KCiAgIHByb2NlZHVyZSBEZXRhY2gKICAgICAoQWNjZWxf
R3JvdXAgOiBpbiBHdGtfQWNjZWxfR3JvdXA7CiAgICAgIE9iamVjdCAgICAgIDogYWNjZXNzIEd0
ay5PYmplY3QuR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpOwoKICAgcHJvY2VkdXJlIExvY2sgKEFj
Y2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwKTsKCiAgIHByb2NlZHVyZSBVbmxvY2sgKEFj
Y2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogICAtLSAgQWNjZWxlcmF0b3IgR3JvdXAgRW50cmllcyAgLS0KICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBHZXRfRW50cnkKICAg
ICAoQWNjZWxfR3JvdXAgOiBpbiBHdGtfQWNjZWxfR3JvdXA7CiAgICAgIEFjY2VsX0tleSAgIDog
aW4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgICAgQWNjZWxfTW9kcyAgOiBpbiBHZGsuVHlw
ZXMuR2RrX01vZGlmaWVyX1R5cGUpIHJldHVybiBHdGtfQWNjZWxfRW50cnk7CgogICBwcm9jZWR1
cmUgTG9ja19FbnRyeQogICAgIChBY2NlbF9Hcm91cCA6IGluIEd0a19BY2NlbF9Hcm91cDsKICAg
ICAgQWNjZWxfS2V5ICAgOiBpbiBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbF9N
b2RzICA6IGluIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSk7CgogICBwcm9jZWR1cmUgVW5s
b2NrX0VudHJ5CiAgICAgKEFjY2VsX0dyb3VwIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBB
Y2NlbF9LZXkgICA6IGluIEdkay5UeXBlcy5HZGtfS2V5X1R5cGU7CiAgICAgIEFjY2VsX01vZHMg
IDogaW4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKTsKCiAgIHByb2NlZHVyZSBBZGQKICAg
ICAoQWNjZWxfR3JvdXAgIDogaW4gR3RrX0FjY2VsX0dyb3VwOwogICAgICBBY2NlbF9LZXkgICAg
OiBpbiAgICAgR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgICAgQWNjZWxfTW9kcyAgIDogaW4g
ICAgIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZTsKICAgICAgQWNjZWxfRmxhZ3MgIDogaW4g
ICAgIEd0a19BY2NlbF9GbGFnczsKICAgICAgT2JqZWN0ICAgICAgIDogYWNjZXNzIEd0ay5PYmpl
Y3QuR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgIEFjY2VsX1NpZ25hbCA6IGluICAgICBT
dHJpbmcpOwoKICAgcHJvY2VkdXJlIFJlbW92ZQogICAgIChBY2NlbF9Hcm91cCA6IGluIEd0a19B
Y2NlbF9Hcm91cDsKICAgICAgQWNjZWxfS2V5ICAgOiBpbiAgICAgR2RrLlR5cGVzLkdka19LZXlf
VHlwZTsKICAgICAgQWNjZWxfTW9kcyAgOiBpbiAgICAgR2RrLlR5cGVzLkdka19Nb2RpZmllcl9U
eXBlOwogICAgICBPYmplY3QgICAgICA6IGFjY2VzcyBHdGsuT2JqZWN0Lkd0a19PYmplY3RfUmVj
b3JkJ0NsYXNzKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgQWNjZWxl
cmF0b3IgU2lnbmFscyAgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9j
ZWR1cmUgSGFuZGxlX0FkZAogICAgIChPYmplY3QgICAgICAgICAgOiBhY2Nlc3MgR3RrLk9iamVj
dC5HdGtfT2JqZWN0X1JlY29yZCdDbGFzczsKICAgICAgQWNjZWxfU2lnbmFsX0lkIDogaW4gICAg
IEd1aW50OwogICAgICBBY2NlbF9Hcm91cCAgICAgOiBpbiAgICAgR3RrX0FjY2VsX0dyb3VwOwog
ICAgICBBY2NlbF9LZXkgICAgICAgOiBpbiAgICAgR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAg
ICAgQWNjZWxfTW9kcyAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZTsK
ICAgICAgQWNjZWxfRmxhZ3MgICAgIDogaW4gICAgIEd0a19BY2NlbF9GbGFncyk7CgogICBwcm9j
ZWR1cmUgSGFuZGxlX1JlbW92ZQogICAgIChPYmplY3QgICAgICA6IGFjY2VzcyBHdGsuT2JqZWN0
Lkd0a19PYmplY3RfUmVjb3JkJ0NsYXNzOwogICAgICBBY2NlbF9Hcm91cCA6IGluICAgICBHdGtf
QWNjZWxfR3JvdXA7CiAgICAgIEFjY2VsX0tleSAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfS2V5
X1R5cGU7CiAgICAgIEFjY2VsX01vZHMgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfTW9kaWZpZXJf
VHlwZSk7CgogICAtLSAgZnVuY3Rpb24gQ3JlYXRlX0FkZAogICAtLSAgZnVuY3Rpb24gQ3JlYXRl
X1JlbW92ZQogICAtLSAgcHJvY2VkdXJlIE1hcnNoYWxfQWRkCiAgIC0tICBwcm9jZWR1cmUgTWFy
c2hhbF9SZW1vdmUKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgTWlzY2VsbGFuZW91
cyAgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgZnVuY3Rpb24gQWNjZWxfR3Jv
dXBzX0Zyb21fT2JqZWN0CiAgIC0tICBmdW5jdGlvbiBFbnRyaWVzX0Zyb21fT2JqZWN0CgogICAt
LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSAgQWNjZWxlcmF0b3JzICAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gQWNjZWxlcmF0b3JfVmFsaWQKICAgICAoS2V5dmFsICAg
IDogaW4gR2RrLlR5cGVzLkdka19LZXlfVHlwZTsKICAgICAgTW9kaWZpZXJzIDogaW4gR2RrLlR5
cGVzLkdka19Nb2RpZmllcl9UeXBlKSByZXR1cm4gQm9vbGVhbjsKCiAgIHByb2NlZHVyZSBBY2Nl
bGVyYXRvcl9QYXJzZQogICAgIChBY2NlbGVyYXRvciAgICAgIDogaW4gICAgIFN0cmluZzsKICAg
ICAgQWNjZWxlcmF0b3JfS2V5ICA6ICAgIG91dCBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAg
ICBBY2NlbGVyYXRvcl9Nb2RzIDogICAgb3V0IEdkay5UeXBlcy5HZGtfTW9kaWZpZXJfVHlwZSk7
CgogICBmdW5jdGlvbiBBY2NlbGVyYXRvcl9OYW1lCiAgICAgKEFjY2VsZXJhdG9yX0tleSAgOiBp
biBHZGsuVHlwZXMuR2RrX0tleV9UeXBlOwogICAgICBBY2NlbGVyYXRvcl9Nb2RzIDogaW4gR2Rr
LlR5cGVzLkdka19Nb2RpZmllcl9UeXBlKSByZXR1cm4gU3RyaW5nOwoKICAgcHJvY2VkdXJlIEFj
Y2VsZXJhdG9yX1NldF9EZWZhdWx0X01vZF9NYXNrCiAgICAgKERlZmF1bHRfTW9kX01hc2sgOiBp
biBHZGsuVHlwZXMuR2RrX01vZGlmaWVyX1R5cGUpOwoKICAgZnVuY3Rpb24gQWNjZWxlcmF0b3Jf
R2V0X0RlZmF1bHRfTW9kX01hc2sKICAgICByZXR1cm4gR2RrLlR5cGVzLkdka19Nb2RpZmllcl9U
eXBlOwoKcHJpdmF0ZQoKICAgQWNjZWxfVmlzaWJsZSAgICAgICAgOiBjb25zdGFudCBHdGtfQWNj
ZWxfRmxhZ3MgOj0gMiAqKiAwOwogICBBY2NlbF9TaWduYWxfVmlzaWJsZSA6IGNvbnN0YW50IEd0
a19BY2NlbF9GbGFncyA6PSAyICoqIDE7CiAgIEFjY2VsX0xvY2tlZCAgICAgICAgIDogY29uc3Rh
bnQgR3RrX0FjY2VsX0ZsYWdzIDo9IDIgKiogMjsKICAgQWNjZWxfTWFzayAgICAgICAgICAgOiBj
b25zdGFudCBHdGtfQWNjZWxfRmxhZ3MgOj0gMTYjMDcjOwoKICAgcHJhZ21hIEltcG9ydCAoQywg
QWNjZWxlcmF0b3JfU2V0X0RlZmF1bHRfTW9kX01hc2ssCiAgICAgICAgICAgICAgICAgICJndGtf
YWNjZWxlcmF0b3Jfc2V0X2RlZmF1bHRfbW9kX21hc2siKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
QWNjZWxlcmF0b3JfR2V0X0RlZmF1bHRfTW9kX01hc2ssCiAgICAgICAgICAgICAgICAgICJndGtf
YWNjZWxlcmF0b3JfZ2V0X2RlZmF1bHRfbW9kX21hc2siKTsKICAgcHJhZ21hIEltcG9ydCAoQywg
R2V0X0RlZmF1bHQsICJndGtfYWNjZWxfZ3JvdXBfZ2V0X2RlZmF1bHQiKTsKICAgcHJhZ21hIElt
cG9ydCAoQywgTG9jaywgImd0a19hY2NlbF9ncm91cF9sb2NrIik7CiAgIHByYWdtYSBJbXBvcnQg
KEMsIFVubG9jaywgImd0a19hY2NlbF9ncm91cF91bmxvY2siKTsKZW5kIEd0ay5BY2NlbF9Hcm91
cDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3Ig
dGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVk
IENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAg
ICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAg
LS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlv
biwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1
bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFu
ICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVz
ZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBH
TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90
IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhl
Y3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNl
LiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tICBUaGlzIGlzIHRo
ZSBiYXNlIGNsYXNzIG9mIHRoZSB3aWRnZXQgaGllcmFyY2h5LgotLSAgRXZlcnl0aGluZyBpbiBH
dGtBZGEgaW5oZXJpdHMgZnJvbSB0aGlzIGNsYXNzIEd0a19PYmplY3QsIGV4Y2VwdCBmb3IgYSBm
ZXcKLS0gIHN0cnVjdHVyZXMgaW4gdGhlIEdkay4qIHBhY2thZ2VzIChsb3ctbGV2ZWwgZHJhd2lu
ZyByb3V0aW5lcykuCi0tCi0tICBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2V0IG9mIGhhbmRmdWwg
ZmVhdHVyZXMgdGhhdCB5b3UgY2FuIGNob29zZSB0byByZXVzZQotLSAgaW4geW91ciBhcHBsaWNh
dGlvbnM6Ci0tCi0tICAtIFJlZmVyZW5jZSBjb3VudGluZzogYW4gb2JqZWN0IGlzIG5vdCBkZWxl
dGVkIHdoaWxlIHRoZXJlIGV4aXN0cyBhdCBsZWFzdAotLSAgICBvbmUgcmVmZXJlbmNlIHRvIGl0
LiBBbHRob3VnaCBHdGtBZGEgbW9zdGx5IHRha2VzIGNhcmUgb2YgdGhhdCBhc3BlY3QKLS0gICAg
dHJhbnNwYXJlbnRseSwgeW91IG1pZ2h0IG5lZWQgaW4gc29tZSBvYnNjdXJlIGNhc2VzIHRvIGlu
Y3JlbWVudCBvcgotLSAgICBkZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBmb3IgYSB3
aWRnZXQgbWFudWFsbHksIHNvIHRoYXQgaXQgaXMgbm90Ci0tICAgIHJlbW92ZWQgZnJvbSBtZW1v
cnkgd2hpbGUgeW91IHN0aWxsIG5lZWQgaXQuCi0tCi0tICAtIFVzZXIgZGF0YTogYW55IG51bWJl
ciBvZiBkYXRhIGNhbiBiZSBhdHRhY2hlZCB0byBhIEd0a19PYmplY3Qgb3Igb25lIG9mCi0tICAg
IGl0cyBjaGlsZHJlbi4gVGhlc2VzIGRhdGEgYXJlIHJlZmVyZW5jZXMgYnkgYSBTdHJpbmcsIGlu
IGEgaGFzaC10YWJsZS4KLS0gICAgR3RrQWRhIGl0c2VsZiB1c2VzIHRoaXMgZmVhdHVyZSB0byBw
cm92aWRlIGFuIGVhc3kgY29udmVyc2lvbiBiZXR3ZWVuIEMKLS0gICAgYW5kIEFkYSB3aWRnZXRz
LgotLSAgICBBbHRob3VnaCB5b3UgbWlnaHQgcHJlZmVyIHRvIGhhdmUgYSBjb21wbGV0ZWx5IG9i
amVjdC1vcmllbnRlZAotLSAgICBhcHBsaWNhdGlvbiAoYW5kIHRodXMgYXNzb2NpYXRlIGRhdGEg
dGhyb3VnaCBjbGFzcyBpbmhlcml0YW5jZSksIGl0Ci0tICAgIG1pZ2h0IGJlIGNvbnZlbmllbnQg
dG8gZGlyZWN0bHkgYXR0YWNoIHNvbWUgZGF0YSB0byB5b3VyIG9iamVjdHMuCi0tCi0tICAtIEl0
IGFsc28gY29udGFpbnMgdGhlIGJhc2ljIHN0cnVjdHVyZXMgYW5kIHN1YnByb2dyYW1zIHJlcXVp
cmVkIGZvciBzaWduYWwKLS0gICAgZW1pc3Npb24uIFRoaXMgaXMgb2YgY291cnNlIHVzZWQgdG8g
aW1wbGVtZW50IHRoZSBzaWduYWwgbWVjaGFuaXNtIGluCi0tICAgIEd0a0FkYSBpdHNlbGYsIGJ1
dCBjYW4gYWxzbyBiZSB1c2VkIHRvIGltcGxlbWVudCBhIE1vZGVsL1ZpZXcvQ29udHJvbGxlcgot
LSAgICBmcmFtZXdvcmsuCi0tCi0tICBOb3RlIHRoYXQgYSBsb3Qgb2YgZnVuY3Rpb25zIHByb3Zp
ZGVkIGluIHRoZSBDIGludGVyZmFjZSBhcmUgbm90IHByb3ZpZGVkCi0tICBoZXJlLiBUaGV5IGFy
ZSB1c2VkIHRvIGVtdWxhdGUgYW4gb2JqZWN0LW9yaWVudGVkIGxhbmd1YWdlIGluIEMsIHdoaWNo
IGNhbgotLSAgb2YgY291cnNlIGJlIGRvbmUgbXVjaCBtb3JlIGNvbnZlbmllbnRseSBpbiBBZGEu
IFRoZXJlZm9yZSBtb3N0IG9mIHRoZXNlCi0tICBmdW5jdGlvbnMgYXJlIG5vdCBuZWVkZWQuCi0t
Ci0tICBIZXJlIGlzIGEgYnJpZWYgZXhwbGFuYXRpb24gb24gaG93IHRoZSByZWZlcmVuY2UgY291
bnRpbmcgYW5kIGRlc3RydWN0aW9uCi0tICBwcm9jZXNzIHdvcmsuIFlvdSBzaG91bGQgbm90IGhh
dmUgdG8gdW5kZXJzdGFuZCBhbGwgdGhpcyB0byB1c2UgR3RrQWRhLCBidXQKLS0gIGl0IG1pZ2h0
IGhlbHAgYW55d2F5LgotLQotLSAgV2hlbiBhbiBvYmplY3QgKGRlc2NlbmRhbnQgb2YgR3RrLk9i
amVjdCkgaXMgY3JlYXRlZCwgaXQgaGFzIGluaXRpYWxseSBhCi0tICByZWZfY291bnQgb2YgMS4g
QSBmbGFnIGlzIHNldCB0byBzYXkgdGhlIG9iamVjdCBpcyAiZmxvYXRpbmciLiAgU2VlIHRoZQot
LSAgRmxhZ3MgZnVuY3Rpb25zIGluIHRoaXMgcGFja2FnZSBmb3IgaG93IHRvIHJldHJpZXZlIHRo
ZSBzdGF0dXMgb2YgdGhpcwotLSAgZmxhZy4KLS0KLS0gIFdoZW4gdGhlIG9iamVjdCBnZXRzIGEg
cGFyZW50IChpZSBHdGsuV2lkZ2V0LlNldF9QYXJlbnQgaXMgY2FsbGVkLCBwb3NzaWJseQotLSAg
ZnJvbSBvdGhlciBzdWJwcm9ncmFtcyBsaWtlIEd0ay5Db250YWluZXIuQWRkLCBHdGsuQm94LlBh
Y2tfU3RhcnQsIC4uLiksCi0tICB0aGUgcmVmX2NvdW50IG9mIHRoZSBvYmplY3QgaXMgaW5jcmVt
ZW50ZWQgdG8gMi4KLS0gIElmIHRoZSBvYmplY3Qgd2FzIHN0aWxsICJmbG9hdGluZyIsIGl0IGlz
IGFsc28gInNpbmtlZCIsIGllIGl0cyByZWZfY291bnQKLS0gIGlzIGRlY3JlbWVudGVkIHRvIDEs
IGFuZCB0aGUgImZsb2F0aW5nIiBmbGFnIGlzIGNsZWFyZWQuCi0tCi0tICBUaGUgc2FtZSBiZWhh
dmlvciBhcyBhYm92ZSBoYXBwZW5zIHdoZW4gdGhlIG9iamVjdCBpcyByZWdpc3RlcmVkIGFzIGEK
LS0gIHRvcC1sZXZlbCB3aWRnZXQgKGkuZS4gd2Uga25vdyBpdCB3b24ndCBoYXZlIGFueSBwYXJl
bnQpLgotLQotLSAgVGh1cyB0aGUgbm9ybWFsIGxpZmUgY3ljbGUgb2YgYW4gb2JqZWN0IGlzIHRv
IGhhdmUgYSByZWZfY291bnQgdG8gMSwgYW5kCi0tICBub3QgYmUgYSAiZmxvYXRpbmciIG9iamVj
dC4KLS0KLS0gIFdoZW4gdGhlIG9iamVjdCBpcyBkZXN0cm95ZWQsIHRoZSBmb2xsb3dpbmcgaGFw
cGVuczoKLS0gICAgIEEgdGVtcG9yYXJ5IHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IGlzIGNyZWF0
ZWQgKGNhbGwgdG8gUmVmKSwgYW5kCi0tICAgICAgICByZWZfY291bnQgdG8gMi4KLS0gICAgIFRo
ZSBvYmplY3QgaXMgc2h1dGRvd246Ci0tICAgICAgICBJdCBpcyByZW1vdmVkIGZyb20gaXRzIHBh
cmVudCAoaWYgYW55KSwgYW5kIGl0cyByZWZfY291bnQgaXMKLS0gICAgICAgICAgZGVjcmVtZW50
ZWQgdG8gMS4KLS0gICAgICAgIFRoZSAiZGVzdHJveSIgc2lnbmFsIGlzIGVtaXR0ZWQsIHRoZSB1
c2VyJ3MgaGFuZGxlcnMgYXJlIGNhbGxlZCwKLS0gICAgICAgICAgYW5kIHRoZW4gYWxsIHRoZSBo
YW5kbGVycyBjb25uZWN0ZWQgdG8gdGhlIG9iamVjdCBhcmUgZGVzdHJveWVkLgotLSAgICAgVGhl
IG9iamVjdCBpcyB1bnJlZi1lZC4gSWYgaXRzIHJlZl9jb3VudCBnb2VzIGRvd24gdG8gMCAobm9y
bWFsIGNhc2UpLAotLSAgICAgICAgdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZSBvYmplY3QgYW5kIGl0
cyB1c2VyX2RhdGEgaXMgZnJlZWQuCi0tCi0tICA8L2Rlc2NyaXB0aW9uPgotLSAgPGNfdmVyc2lv
bj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBTeXN0ZW07CndpdGggR3RrYWRhLlR5cGVzOwoKcGFj
a2FnZSBHdGsuT2JqZWN0IGlzCgogICB0eXBlIEd0a19PYmplY3RfUmVjb3JkIGlzIG5ldyBHdGsu
Um9vdF9UeXBlIHdpdGggcHJpdmF0ZTsKICAgdHlwZSBHdGtfT2JqZWN0IGlzIGFjY2VzcyBhbGwg
R3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CgogICBwcm9jZWR1cmUgUmVmIChPYmplY3QgOiBhY2Nl
c3MgR3RrX09iamVjdF9SZWNvcmQpOwogICAtLSAgSW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291
bnQgb24gdGhlIG9iamVjdC4KICAgLS0gIFNpbmNlIGFuIG9iamVjdCBpcyBub3QgZGVsZXRlZCB3
aGlsZSBpdHMgcmVmZXJlbmNlIGNvdW50IGlzIG5vdCBudWxsLAogICAtLSAgdGhpcyBpcyBhIHdh
eSB0byBrZWVwIGFuIG9iamVjdCBpbiBtZW1vcnkuCiAgIC0tICBHdGtBZGEgbW9zdGx5IHRha2Vz
IGNhcmUgb2YgZXZlcnl0aGluZywgYW5kIHlvdSBzaG91bGQgbm90IG5lZWQgdGhpcwogICAtLSAg
ZnVuY3Rpb24gZXhjZXB0IGluIHNwZWNpYWwgY2FzZXMuCgogICBwcm9jZWR1cmUgVW5yZWYgKE9i
amVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCk7CiAgIC0tICBEZWNyZW1lbnQgdGhlIHJl
ZmVyZW5jZSBjb3VudCBmb3IgYW4gb2JqZWN0LgogICAtLSAgSWYgaXQgcGFzc2VkIGZyb20gMSB0
byAwLCB0aGVuIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgb2JqZWN0IGlzCiAgIC0tICBm
cmVlZCwgYW5kIHRoZSBvYmplY3Qgbm8gbG9uZ2VyIHVzYWJsZS4KICAgLS0gIEl0IGlzIGJldHRl
ciB0byB1c2UgRGVzdHJveSB0aGFuIFVucmVmIHRvIGRlc3Ryb3kgYW4gb2JqZWN0LCBhbHRob3Vn
aAogICAtLSAgYm90aCBtaWdodCBiZSBhY2NlcHRhYmxlLgoKICAgcHJvY2VkdXJlIFNpbmsgKE9i
amVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCk7CiAgIC0tICBTaW5rIHRoZSBvYmplY3Qu
CiAgIC0tICBJZiB0aGUgb2JqZWN0IGlzIGZsb2F0aW5nIChkb2VzIG5vdCBoYXZlIGEgcGFyZW50
IHlldCksIGl0IGlzIHVucmVmLWVkCiAgIC0tICBvbmNlIGFuZCB0aGUgZmxvYXRpbmcgZmxhZyBp
cyBjbGVhcmVkLgoKICAgcHJvY2VkdXJlIERlc3Ryb3kgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2Jq
ZWN0X1JlY29yZCk7CiAgIC0tICBEZXN0cm95IHRoZSBvYmplY3QuCiAgIC0tICBUaGlzIGVtaXRz
IGEgImRlc3Ryb3kiIHNpZ25hbCwgY2FsbHMgYWxsIHlvdXIgaGFuZGxlcnMsIGFuZCB0aGVuCiAg
IC0tICB1bmNvbm5lY3RzIHRoZW0gYWxsLiBUaGUgb2JqZWN0IGlzIHRoZW4gdW5yZWYtZWQsIGFu
ZCBpZiBpdHMgcmVmZXJlbmNlCiAgIC0tICBjb3VudCBnb2VzIGRvd24gdG8gMCwgdGhlIG1lbW9y
eSBhc3NvY2lhdGVkIHdpdGggdGhlIG9iamVjdCBhbmQgaXRzCiAgIC0tICB1c2VyIGRhdGEgaXMg
ZnJlZWQuCiAgIC0tICBOb3RlIHRoYXQgd2hlbiB5b3UgZGVzdHJveSBoYW5kbGVycyBhcmUgY2Fs
bGVkLCB0aGUgdXNlcl9kYXRhIGlzIHN0aWxsCiAgIC0tICBhdmFpbGFibGUuCgogICBmdW5jdGlv
biBHZXRfVHlwZSByZXR1cm4gR3RrLkd0a19UeXBlOwogICAtLSAgUmV0dXJuIHRoZSBpbnRlcm5h
bCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBHdGtfT2JqZWN0IGludGVybmFsbHkuCiAgIHByYWdt
YSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX29iamVjdF9nZXRfdHlwZSIpOwoKICAgZnVuY3Rp
b24gR2V0X1R5cGUgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCkgcmV0dXJuIEd0
a19UeXBlOwogICAtLSAgUmV0dXJuIHRoZSB0eXBlIG9mIE9iamVjdC4KICAgLS0gIFRoaXMgZnVu
Y3Rpb24gaXMgbW9zdGx5IHVzZWQgaW50ZXJuYWxseSwgc2luY2UgaW4gQWRhIHlvdSBjYW4gc2lt
cGx5CiAgIC0tICB0ZXN0IHdoZXRoZXIgYW4gb2JqZWN0IGJlbG9uZyB0byBhIGNsYXNzIHdpdGgg
YSBzdGF0ZW1lbnQgbGlrZToKICAgLS0KICAgLS0gICAgIGlmIE9iamVjdCBpbiBHdGtfQnV0dG9u
X1JlY29yZCdDbGFzcyB0aGVuIC4uLgogICAtLQogICAtLSAgd2hpY2ggaXMgZWFzaWVyLgoKICAg
LS0tLS0tLS0tLS0tLQogICAtLSAgRmxhZ3MgIC0tCiAgIC0tLS0tLS0tLS0tLS0KICAgLS0gIEVh
Y2ggb2JqZWN0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNldCBvZiBmbGFncywgdGhhdCByZXBvcnRz
IHRoZSBzdGF0ZQogICAtLSAgb2YgdGhlIG9iamVjdC4KICAgLS0gIFRoZSBmb2xsb3dpbmcgZmxh
Z3MgYXJlIGtub3duIGJ5IGFsbCBvYmplY3RzOgogICAtLQogICAtLSAgLSAiRGVzdHJveWVkIjoK
ICAgLS0gICAgIFNldCBpZiB0aGUgb2JqZWN0IGlzIG1hcmtlZCBhcyBkZXN0cm95ZWQgKGlmIGl0
cyByZWZlcmVuY2UgY291bnQgaXMKICAgLS0gICAgIG5vdCB5ZXQgMCwgdGhlIG1lbW9yeSBoYXMg
bm90IGJlZW4gZnJlZWQsIGJ1dCB5b3Ugc2hvdWxkIG5vdCB1c2UgaXQKICAgLS0gICAgIGFueXdh
eSkuCiAgIC0tCiAgIC0tICAtICJGbG9hdGluZyI6CiAgIC0tICAgICBUaGUgb2JqZWN0IGhhcyBu
byBwYXJlbnQgeWV0LCBzaW5jZSBpdCB3YXMganVzdCBjcmVhdGVkLiBJdHMKICAgLS0gICAgIHJl
ZmVyZW5jZSBjb3VudCBpcyBzdGlsbCAxIChhcyBpdCB3YXMgaW5pdGlhbGx5KS4gVGhpcyBmbGFn
IGlzCiAgIC0tICAgICBjbGVhcmVkIGFzIHNvb24gYXMgU2V0X1BhcmVudCBpcyBjYWxsZWQgb24g
dGhlIHdpZGdldCBvciB0aGUgd2lkZ2V0CiAgIC0tICAgICBpcyBxdWFsaWZpZWQgYXMgYSB0b3Bs
ZXZlbCB3aWRnZXQgKHNlZQogICAtLSAgICAgR3RrLkNvbnRhaW5lci5SZWdpc3Rlcl9Ub3BsZXZl
bCkuCiAgIC0tCiAgIC0tICAtICJDb25uZWN0ZWQiOgogICAtLSAgICAgU2V0IGlmIHRoZSBvYmpl
Y3QgaXMgY29ubmVjdGVkIHRvIGF0IGxlYXN0IG9uZSBoYW5kbGVyCiAgIC0tCiAgIC0tICAtICJD
b25zdHJ1Y3RlZCI6CiAgIC0tICAgICBTZXQgaWYgdGhlIG9iamVjdCBoYXMgYmVlbiBmdWxseSBj
b25zdHJ1Y3RlZCwgYW5kIGlzIG5vdyB1c2FibGUuCiAgIC0tICAgICBFdmVyeSB0aW1lIHlvdSBj
cmVhdGUgYW4gb2JqZWN0IGF0IHRoZSBHdGtBZGEgbGV2ZWwsIHRoZSBvYmplY3Qgd2lsbAogICAt
LSAgICAgYmUgZnVsbHkgY29uc3RydWN0ZWQsIGFuZCB5b3Ugc2hvdWxkbid0IGhhdmUgdG8gd29y
cnkgYWJvdXQgdGhhdAogICAtLSAgICAgZmxhZy4KCiAgIERlc3Ryb3llZCAgIDogY29uc3RhbnQg
Oj0gMiAqKiAwOwogICBGbG9hdGluZyAgICA6IGNvbnN0YW50IDo9IDIgKiogMTsKICAgQ29ubmVj
dGVkICAgOiBjb25zdGFudCA6PSAyICoqIDI7CiAgIENvbnN0cnVjdGVkIDogY29uc3RhbnQgOj0g
MiAqKiAzOwoKICAgZnVuY3Rpb24gRmxhZ3MgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1Jl
Y29yZCkgcmV0dXJuIEd1aW50MzI7CiAgIC0tICBSZXR1cm4gdGhlIGZsYWdzIHRoYXQgYXJlIHNl
dCBmb3IgdGhlIG9iamVjdCwgYXMgYSBiaW5hcnkgbWFzay4KCiAgIHByb2NlZHVyZSBTZXRfRmxh
Z3MgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZDsKICAgICAgICAgICAgICAgICAg
ICAgICAgRmxhZ3MgIDogaW4gICAgIEd1aW50MzIpOwogICAtLSAgU2V0IHNvbWUgc3BlY2lmaWMg
ZmxhZ3MgZm9yIHRoZSBvYmplY3QuCiAgIC0tICBGbGFncyBpcyBhIG1hc2sgdGhhdCB3aWxsIGJl
IGFkZGVkIHRvIHRoZSBjdXJyZW50IGZsYWdzIG9mIHRoZSBvYmplY3QuCgogICBwcm9jZWR1cmUg
VW5zZXRfRmxhZ3MgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICBGbGFncyAgOiBpbiAgICAgR3VpbnQzMik7CiAgIC0tICBVbnNldCBz
b21lIHNwZWNpZmljIGZsYWdzIGZvciB0aGUgb2JqZWN0LgogICAtLSAgRmxhZ3MgaXMgYSBtYXNr
IHRoYXQgd2lsbCBiZSBkZWxldGVkIGZyb20gdGhlIGN1cnJlbnQgZmxhZ3Mgb2YgdGhlCiAgIC0t
ICBvYmplY3QuCgogICBmdW5jdGlvbiBGbGFnX0lzX1NldCAoT2JqZWN0IDogYWNjZXNzIEd0a19P
YmplY3RfUmVjb3JkOwogICAgICAgICAgICAgICAgICAgICAgICAgRmxhZyAgIDogaW4gICAgIEd1
aW50MzIpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuOwogICAtLSAgUmV0
dXJuIFRydWUgaWYgdGhlIHNwZWNpZmljIGZsYWcgRmxhZyBpcyBzZXQgZm9yIHRoZSBvYmplY3Qu
CgogICBmdW5jdGlvbiBEZXN0cm95ZWRfSXNfU2V0IChPYmplY3QgOiBhY2Nlc3MgR3RrX09iamVj
dF9SZWNvcmQnQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xl
YW47CiAgIC0tICBUZXN0IGlmIHRoZSBEZXN0cm95ZWQgZmxhZyBpcyBzZXQgZm9yIHRoZSBvYmpl
Y3QuCgogICBmdW5jdGlvbiBGbG9hdGluZ19Jc19TZXQgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2Jq
ZWN0X1JlY29yZCdDbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29s
ZWFuOwogICAtLSAgVGVzdCBpZiB0aGUgRmxvYXRpbmcgZmxhZyBpcyBzZXQgZm9yIHRoZSBvYmpl
Y3QuCgogICBmdW5jdGlvbiBDb25uZWN0ZWRfSXNfU2V0IChPYmplY3QgOiBhY2Nlc3MgR3RrX09i
amVjdF9SZWNvcmQnQ2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJv
b2xlYW47CiAgIC0tICBUZXN0IGlmIHRoZSBDb25uZWN0ZWQgZmxhZyBpcyBzZXQgZm9yIHRoZSBv
YmplY3QuCgogICBmdW5jdGlvbiBDb25zdHJ1Y3RlZF9Jc19TZXQgKE9iamVjdCA6IGFjY2VzcyBH
dGtfT2JqZWN0X1JlY29yZCdDbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBCb29sZWFuOwogICAtLSAgVGVzdCBpZiB0aGUgQ29uc3RydWN0ZWQgZmxhZyBpcyBzZXQg
Zm9yIHRoZSBvYmplY3QKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIENyZWF0
aW5nIG5ldyB3aWRnZXRzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBU
aGVzZSB0eXBlcyBhbmQgZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgd2hlbiBjcmVhdGluZyBuZXcg
d2lkZ2V0IHR5cGVzCiAgIC0tICBkaXJlY3RseSBpbiBBZGEuIFRoZXNlIGZ1bmN0aW9ucyBpbml0
aWFsaXplIHRoZSBjbGFzc2VzIHNvIHRoYXQgdGhleSBhcmUKICAgLS0gIGNvcnJlY3RseSByZWNv
Z25pemVkIGJ5IGd0aysgaXRzZWxmCiAgIC0tICBTZWUgdGhlIEd0a0FkYSB1c2VyJ3MgZ3VpZGUg
Zm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGNyZWF0ZSB5b3VyCiAgIC0tICBvd24gd2lk
Z2V0IHR5cGVzIGluIEFkYS4KCiAgIHR5cGUgU2lnbmFsX1BhcmFtZXRlcl9UeXBlcyBpcyBhcnJh
eSAoTmF0dXJhbCByYW5nZSA8PiwgTmF0dXJhbCByYW5nZSA8PikKICAgICBvZiBHdGtfVHlwZTsK
ICAgLS0gIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW1ldGVycyBmb3IgZWFjaCBldmVudC4K
ICAgLS0gIEVhY2ggZXZlbnQgZGVmaW5lZCB3aXRoIEluaXRpYWxpemVfQ2xhc3NfUmVjb3JkIGJl
bG93IHNob3VsZCBoYXZlIGFuCiAgIC0tICBlbnRyeSBpbiB0aGlzIHRhYmxlLiBJZiBHdGtfVHlw
ZV9Ob25lIGlzIGZvdW5kIGluIHRoZSB0YWJsZSwgaXQgaXMKICAgLS0gIGlnbm9yZWQuIEZvciBp
bnN0YW5jZSwgYSBTaWduYWxfUGFyYW1ldGVyX1R5cGUgbGlrZToKICAgLS0gICAgKDEgPT4gKDEg
PT4gR2RrX1R5cGVfR2RrX0V2ZW50LCAyID0+IEdka19UeXBlX05vbmRlKSwKICAgLS0gICAgIDIg
PT4gKDEgPT4gR2RrX1R5cGVfSW50LCAgICAgICAyID0+IEdka19UeXBlX0ludCkpOwogICAtLSAg
ZGVmaW5lcyB0d28gc2lnbmFscywgdGhlIGZpcnN0IHdpdGggYSBzaW5nbGUgR2RrX0V2ZW50IHBh
cmFtZXRlciwgdGhlCiAgIC0tICBzZWNvbmQgd2l0aCB0d28gaW50cyBwYXJhbWV0ZXJzLgoKICAg
TnVsbF9QYXJhbWV0ZXJfVHlwZXMgOiBjb25zdGFudCBTaWduYWxfUGFyYW1ldGVyX1R5cGVzICgx
IC4uIDAsIDEgLi4gMCkgOj0KICAgICAob3RoZXJzID0+IChvdGhlcnMgPT4gR3RrX1R5cGVfTm9u
ZSkpOwogICAtLSAgQW4gZW1wdHkgYXJyYXksIHVzZWQgYXMgYSBkZWZhdWx0IHBhcmFtZXRlciBp
biBJbml0aWFsaXplX0NsYXNzX1JlY29yZC4KCiAgIHByb2NlZHVyZSBJbml0aWFsaXplX0NsYXNz
X1JlY29yZAogICAgIChPYmplY3QgICAgICAgICAgICAgICAgICAgIDogYWNjZXNzIEd0a19PYmpl
Y3RfUmVjb3JkJ0NsYXNzOwogICAgICBTaWduYWxzICAgICAgICAgICAgICAgICAgIDogR3RrYWRh
LlR5cGVzLkNoYXJzX1B0cl9BcnJheTsKICAgICAgQ2xhc3NfUmVjb3JkICAgICAgICAgICAgICA6
IGluIG91dCBTeXN0ZW0uQWRkcmVzczsKICAgICAgUGFyYW1ldGVycyAgICAgICAgICAgICAgICA6
IFNpZ25hbF9QYXJhbWV0ZXJfVHlwZXMgOj0KICAgICAgICBOdWxsX1BhcmFtZXRlcl9UeXBlczsK
ICAgICAgU2Nyb2xsX0FkanVzdG1lbnRzX1NpZ25hbCA6IEd1aW50IDo9IDApOwogICAtLSAgQ3Jl
YXRlIHRoZSBjbGFzcyByZWNvcmQgZm9yIGEgbmV3IHdpZGdldCB0eXBlLgogICAtLSAgSXQgaXMg
YXNzb2NpYXRlZCB3aXRoIFNpZ25hbHMnTGVuZ3RoIG5ldyBzaWduYWxzLiBBIHBvaW50ZXIgdG8g
dGhlCiAgIC0tICBuZXdseSBjcmVhdGVkIHN0cnVjdHVyZSBpcyBhbHNvIHJldHVybmVkIGluIENs
YXNzX1JlY29yZC4KICAgLS0gIElmIENsYXNzX1JlY29yZCAvPSBTeXN0ZW0uTnVsbF9BZGRyZXNz
LCBubyBtZW1vcnkgYWxsb2NhdGlvbiBpcwogICAtLSAgcGVyZm9ybWVkLCB3ZSBqdXN0IHJldXNl
IGl0LgogICAtLSAgTm90ZTogVGhlIHVuZGVybHlpbmcgQyB3aWRnZXQgbXVzdCBhbHJlYWR5IGhh
dmUgYmVlbiBpbml0aWFsaXplZAogICAtLSAgYnkgYSBjYWxsIHRvIGl0cyBwYXJlbnQncyBJbml0
aWFsaXplIGZ1bmN0aW9uLgogICAtLSAgUGFyYW1ldGVycydMZW5ndGggc2hvdWxkIGJlIHRoZSBz
YW1lIGFzIFNpZ25hbHMnTGVuZ3RoLCBvciB0aGUgcmVzdWx0CiAgIC0tICBpcyB1bmRlZmluZWQu
CiAgIC0tICBBcyBhIHNwZWNpYWwgY2FzZSwgaWYgUGFyYW1ldGVycyBoYXMgaXRzIGRlZmF1bHQg
dmFsdWUsIGFsbCBzaWduYWxzIGFyZQogICAtLSAgY3JlYXRlZCB3aXRoIG5vIGFyZ3VtZW50LiBU
aGlzIGlzIGRvbmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgLS0gIG1haW5seSwgYW5k
IHlvdSBzaG91bGQgaW5zdGVhZCBnaXZlIGl0IGFuIGV4cGxpY2l0IHZhbHVlLgogICAtLQogICAt
LSAgU2Nyb2xsX0FkanVzdG1lbnRzX1NpZ25hbCBpcyB0aGUgaW5kZXggb2YgdGhlIG5ldyBzaWdu
YWwgdGhhdCB3aWxsIGJlCiAgIC0tICBlbWl0dGVkIHdoZW4gR3RrLldpZGdldC5TZXRfU2Nyb2xs
X0FkanVzdG1lbnRzIGlzIGNhbGxlZC4gSWYgaXQgaXMgMCwKICAgLS0gIG5vIHNpZ25hbCBpcyBl
bWl0dGVkLiBUaGUgZmlyc3Qgc2lnbmFsIGluIFNpZ25hbHMgaGFzIGluZGV4IDEuIE5vdGUKICAg
LS0gIHRoYXQgdGhlIGhhbmRsZXJzIGZvciB0aGlzIHNpZ25hbCB0YWtlIHR3byBhcmd1bWVudHMg
aW4gYWRkaXRpb24gdG8gdGhlCiAgIC0tICB3aWRnZXQgKHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0
aWNhbCBhZGp1c3RtZW50cyB0byBiZSB1c2VkKS4gU2VlCiAgIC0tICBHdGsuU2Nyb2xsZWRfV2lu
ZG93IGFuZCBHdGsuV2lkZ2V0LlNldF9TY3JvbGxfQWR1c3RtZW50IGZvciBtb3JlCiAgIC0tICBp
bmZvcm1hdGlvbiBvbiB0aGlzIHNpZ25hbC4KICAgLS0KICAgLS0gIE9ubHkgdGhlIHNpZ25hbHMg
d2l0aCBubyBwYXJhbWV0ZXIgY2FuIGJlIGNvbm5lY3RlZCBmcm9tIEMuIEhvd2V2ZXIsCiAgIC0t
ICBhbnkgc2lnbmFsIGNhbiBiZSBjb25uZWN0ZWQgZnJvbSBBZGEuIFRoaXMgaXMgZHVlIHRvIHRo
ZSB3YXkgd2UgZGVmaW5lCiAgIC0tICBkZWZhdWx0IG1hcnNoYWxsZXJzIGZvciB0aGUgc2lnbmFs
cy4KCiAgIC0tLS0tLS0tLS0tLS0tLQogICAtLSBVc2VyX0RhdGEgLS0KICAgLS0tLS0tLS0tLS0t
LS0tCiAgIC0tICBUaGlzIHBhY2thZ2UgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSB5b3VyIG93biBE
YXRhIHRvIHRoZSBDIHdpZGdldHMuIE5vCiAgIC0tICB0eXBlIHZlcmlmaWNhdGlvbiBpcyBtYWRl
IHRvIGNoZWNrIGlmIHlvdSBhcmUgdXNpbmcgdGhlIGNvcnJlY3QKICAgLS0gIG1hdGNoaW5nIEdl
dCBmdW5jdGlvbi4gVGhpcyBpcyB5b3VyIG93biByZXNwb25zYWJpbGl0eS4KICAgLS0KICAgLS0g
IFdlIHJlY29tbWVuZCB1c2luZyB0aGlzIHBhY2thZ2Ugb25seSBpZiB5b3Ugd2FudCB5b3VyIGRh
dGEgdG8gYmUKICAgLS0gIGF2YWlsYWJsZSBmcm9tIHlvdXIgb3duIEMgY29kZS4gSWYgeW91IGp1
c3Qgd2FudCB0byBhY2Nlc3MgaXQgZnJvbSBBZGEsCiAgIC0tICB5b3Ugc2hvdWxkIGNvbnNpZGVy
IGNyZWF0aW5nIGEgbmV3IHRhZ2dlZCB0eXBlIGluc3RlYWQuCgogICAtLSAgPGRvY19pZ25vcmU+
CgogICBnZW5lcmljCiAgICAgIHR5cGUgRGF0YV9UeXBlICg8PikgaXMgcHJpdmF0ZTsKICAgcGFj
a2FnZSBVc2VyX0RhdGEgaXMKICAgICAgZnVuY3Rpb24gR2V0IChPYmplY3QgOiBhY2Nlc3MgR3Rr
X09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgICAgICAgICAgICAgICAgSWQgICAgIDogaW4gU3Ry
aW5nIDo9ICJ1c2VyX2RhdGEiKSByZXR1cm4gRGF0YV9UeXBlOwogICAgICAtLSAgR2V0IHRoZSBp
bmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSBJRC4KICAgICAgLS0gIFJhaXNlIEd0
a2FkYS5UeXBlcy5EYXRhX0Vycm9yIGlmIHRoZXJlIGlzIG5vbmUuCgogICAgICBwcm9jZWR1cmUg
U2V0IChPYmplY3QgOiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgICAgICAg
ICAgICAgICAgIERhdGEgICA6IGluIERhdGFfVHlwZTsKICAgICAgICAgICAgICAgICAgICAgSWQg
ICAgIDogaW4gU3RyaW5nIDo9ICJ1c2VyX2RhdGEiKTsKICAgICAgLS0gIEFzc29jaWF0ZSBzb21l
IG5ldyB1c2VyIGRhdGEgd2l0aCB0aGUgb2JqZWN0LgogICAgICAtLSAgVGhlIHN0cmluZ3Mgc3Rh
cnRpbmcgd2l0aCAiZ3RrYWRhXyIgYXJlIHJlc2VydmVkIGZvciBHdGtBZGEncwogICAgICAtLSAg
aW50ZXJuYWwgdXNlLCBwbGVhc2UgYXZvaWQgdXNpbmcgdGhlbS4KCiAgICAgIHByb2NlZHVyZSBS
ZW1vdmUgKE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCdDbGFzczsKICAgICAgICAg
ICAgICAgICAgICAgICAgSWQgICAgIDogaW4gU3RyaW5nIDo9ICJ1c2VyX2RhdGEiKTsKICAgICAg
LS0gIFJlbW92ZSBzb21lIGRhdGEgZnJvbSB0aGUgb2JqZWN0CgogICAgICBmdW5jdGlvbiBHZXQg
KE9iamVjdCA6IGFjY2VzcyBHdGtfT2JqZWN0X1JlY29yZCdDbGFzczsKICAgICAgICAgICAgICAg
ICAgICBJZCAgICAgOiBpbiBHbGliLkdRdWFyaykKICAgICAgICAgICAgICAgICAgIHJldHVybiBE
YXRhX1R5cGU7CiAgICAgIC0tICBTYW1lIGZ1bmN0aW9uIGFzIEdldCBhYm92ZSwgYnV0IHVzZXMg
ZGlyZWN0bHkgdGhlIFF1YXJrIGFzc29jaWF0ZWQKICAgICAgLS0gIHdpdGggdGhlIHN0cmluZywg
d2hpY2ggc3BlZWRzIHVwIHRoZSBhY2Nlc3MgdGltZSBzaWduaWZpY2FudGx5LgoKICAgICAgcHJv
Y2VkdXJlIFNldCAoT2JqZWN0IDogYWNjZXNzIEd0a19PYmplY3RfUmVjb3JkJ0NsYXNzOwogICAg
ICAgICAgICAgICAgICAgICBEYXRhICAgOiBpbiBEYXRhX1R5cGU7CiAgICAgICAgICAgICAgICAg
ICAgIElkICAgICA6IGluIEdsaWIuR1F1YXJrKTsKICAgICAgLS0gIFNhbWUgZnVuY3Rpb24gYXMg
U2V0IGFib3ZlLCBidXQgdXNlcyBkaXJlY3RseSB0aGUgUXVhcmsgYXNzb2NpYXRlZAogICAgICAt
LSAgd2l0aCB0aGUgc3RyaW5nLCB3aGljaCBzcGVlZHMgdXAgdGhlIGFjY2VzcyB0aW1lIHNpZ25p
ZmljYW50bHkuCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlIChPYmplY3QgOiBhY2Nlc3MgR3RrX09i
amVjdF9SZWNvcmQnQ2xhc3M7CiAgICAgICAgICAgICAgICAgICAgICAgIElkICAgICA6IGluIEds
aWIuR1F1YXJrKTsKICAgICAgLS0gIFNhbWUgZnVuY3Rpb24gYXMgUmVtb3ZlIGFib3ZlLCBidXQg
dXNlcyBkaXJlY3RseSB0aGUgUXVhcmsgYXNzb2NpYXRlZAogICAgICAtLSAgd2l0aCB0aGUgc3Ry
aW5nLCB3aGljaCBzcGVlZHMgdXAgdGhlIGFjY2VzcyB0aW1lIHNpZ25pZmljYW50bHkuCgogICBl
bmQgVXNlcl9EYXRhOwoKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIC0tLS0tLS0tLS0tLS0KICAg
LS0gU2lnbmFscyAtLQogICAtLS0tLS0tLS0tLS0tCgogICAtLSAgPHNpZ25hbHM+CiAgIC0tICBU
aGUgZm9sbG93aW5nIG5ldyBzaWduYWxzIGFyZSBkZWZpbmVkIGZvciB0aGlzIHdpZGdldDoKICAg
LS0KICAgLS0gIC0gImRlc3Ryb3kiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChPYmplY3Qg
OiBhY2Nlc3MgR3RrX09iamVjdF9SZWNvcmQnQ2xhc3MpOwogICAtLQogICAtLSAgICBSYWlzZWQg
d2hlbiB0aGUgb2JqZWN0IGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gVGhlICJkZXN0cm95ZWQi
CiAgIC0tICAgIGZsYWcgaGFzIGJlZW4gc2V0IG9uIHRoZSBvYmplY3QgZmlyc3QuIEhhbmRsZXJz
IHNob3VsZCBub3Qga2VlcAogICAtLSAgICBhIHJlZmVyZW5jZSBvbiB0aGUgb2JqZWN0LgogICAt
LSAgICBOb3RlIHRoYXQgd2hlbiB5b3VyIGRlc3Ryb3kgaGFuZGxlcnMgYXJlIGNhbGxlZCwgdGhl
IHVzZXJfZGF0YSBpcwogICAtLSAgICBzdGlsbCBhdmFpbGFibGUuCiAgIC0tICAgIFRoZSBkZWZh
dWx0IGltcGxlbWVudGF0aW9uIGRlc3Ryb3lzIGFsbCB0aGUgaGFuZGxlcnMuCiAgIC0tICA8L3Np
Z25hbHM+Cgpwcml2YXRlCiAgIHR5cGUgR3RrX09iamVjdF9SZWNvcmQgaXMgbmV3IEd0ay5Sb290
X1R5cGUgd2l0aCBudWxsIHJlY29yZDsKCiAgIHByYWdtYSBJbmxpbmUgKERlc3Ryb3llZF9Jc19T
ZXQpOwogICBwcmFnbWEgSW5saW5lIChGbG9hdGluZ19Jc19TZXQpOwogICBwcmFnbWEgSW5saW5l
IChDb25uZWN0ZWRfSXNfU2V0KTsKICAgcHJhZ21hIElubGluZSAoQ29uc3RydWN0ZWRfSXNfU2V0
KTsKCmVuZCBHdGsuT2JqZWN0OwoKLS0gIEZ1bmN0aW9ucyB0aGF0IGhhdmUgbm8gQWRhIGVxdWl2
YWxlbnQ6Ci0tICAtIGd0a19vYmplY3RfY2xhc3NfdXNlcl9zaWduYWxfbmV3Ci0tICAtIGd0a19v
YmplY3RfY2xhc3NfdXNlcl9zaWduYWxfbmV3dgotLSAgLSBndGtfb2JqZWN0X25ldwotLSAgLSBn
dGtfb2JqZWN0X25ld3YKLS0gIC0gZ3RrX29iamVjdF9kZWZhdWx0X2NvbnN0cnVjdAotLSAgLSBn
dGtfb2JqZWN0X2NvbnN0cnVjdGVkCi0tICAtIGd0a19vYmplY3Rfd2Vha3JlZgotLSAgLSBndGtf
b2JqZWN0X3dlYWt1bnJlZgotLSAgLSBndGtfb2JqZWN0X2dldHYKLS0gIC0gZ3RrX29iamVjdF9n
ZXQKLS0gIC0gZ3RrX29iamVjdF9zZXQKLS0gIC0gZ3RrX29iamVjdF9zZXR2Ci0tICAtIGd0a19v
YmplY3RfcXVlcnlfYXJncwotLSAgLSBndGtfb2JqZWN0X2NsYXNzX2FkZF9zaWduYWxzID0+IGlu
IEluaXRpYWxpemVfQ2xhc3NfUmVjb3JkCi0tICAtIGd0a19vYmplY3RfYWRkX2FyZ190eXBlCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBH
aW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFy
bGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0t
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlm
IG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwg
b3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0t
Ci0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRo
ZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dl
dmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFi
bGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAg
IC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBpcyB0aGUg
cGFyZW50IHBhY2thZ2UgZm9yIHRoZSBHdGtBZGEgc3BlY2lmaWMgdW5pdHMuCi0tCi0tICA8L2Rl
c2NyaXB0aW9uPgoKcGFja2FnZSBHdGthZGEgaXMKCiAgIHByYWdtYSBQdXJlIChHdGthZGEpOwoK
ZW5kIEd0a2FkYTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmlu
ZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBh
bmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAg
LS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
ICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0g
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFs
IGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0K
LS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBw
cm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0
c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVk
IGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9u
IGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAg
LS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1Ymxp
YyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0t
ICBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgR3RrQWRhIHNwZWNpZmljIHR5cGVzIGFuZCB0aGVpciBh
c3NvY2lhdGVkIGZ1bmN0aW9ucy4KLS0KLS0gIDwvZGVzY3JpcHRpb24+Cgp3aXRoIEludGVyZmFj
ZXMuQy5TdHJpbmdzOwoKcGFja2FnZSBHdGthZGEuVHlwZXMgaXMKCiAgIHByYWdtYSBQcmVlbGFi
b3JhdGU7CgogICBEYXRhX0Vycm9yIDogZXhjZXB0aW9uOwoKICAgLS0gIDxkb2NfaWdub3JlPgog
ICBzdWJ0eXBlIENoYXJzX1B0ciBpcyBJbnRlcmZhY2VzLkMuU3RyaW5ncy5jaGFyc19wdHI7CiAg
IHN1YnR5cGUgQ2hhcnNfUHRyX0FycmF5IGlzIEludGVyZmFjZXMuQy5TdHJpbmdzLmNoYXJzX3B0
cl9hcnJheTsKICAgLS0gIDwvZG9jX2lnbm9yZT4KCiAgIE51bGxfUHRyIDogQ2hhcnNfUHRyIHJl
bmFtZXMgSW50ZXJmYWNlcy5DLlN0cmluZ3MuTnVsbF9QdHI7CgogICBmdW5jdGlvbiBOdWxsX0Fy
cmF5IHJldHVybiBDaGFyc19QdHJfQXJyYXk7CiAgIC0tICBSZXR1cm4gYSBudWxsIGFycmF5Lgog
ICBwcmFnbWEgSW5saW5lIChOdWxsX0FycmF5KTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgLS0gIEhhbmRsaW5nIG9mIGFycmF5cyBvZiBTdHJpbmdzICAtLQog
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tICBUaGUgZm9sbG93
aW5nIGZ1bmN0aW9ucyBwcm92aWRlIGEgdmVyeSBjb252ZW5pZW50IHdheSB0byBjcmVhdGUKICAg
LS0gIEMgYXJyYXlzIG9mIG51bGwgdGVybWluYXRlZCBzdHJpbmdzIGluIEFkYS4KICAgLS0KICAg
LS0gIFlvdSBjYW4gZWl0aGVyIGNyZWF0ZSBzdWNoIGEgU3RyaW5nIG9uIHRoZSBmbHksIG9yIGRl
Y2xhcmUgYSB2YXJpYWJsZToKICAgLS0KICAgLS0gICAgIFNpZ25hbHMgOiBDaGFyc19QdHJfQXJy
YXkgOj0gImNsaWNrZWQiICsgIm1pc3NlZCIgKyAibmV3IHNpZ25hbCI7CiAgIC0tCiAgIC0tICB3
aGljaCBjb3JyZXNwb25kcyB0byB0aGUgQyBkZWNsYXJhdGlvbjoKICAgLS0KICAgLS0gICAgIGNo
YXIgKnNpZ25hbHNbXSA9IEB7ImNsaWNrZWQiLCAibWlzc2VkIiwgIm5ldyBzaWduYWwiQH07CiAg
IC0tCiAgIC0tICBOb3RlIHRoYXQgeW91IHN0aWxsIG5lZWQgdG8gbWFudWFsbHkgY2FsbCBGcmVl
IChTaWduYWxzKSBpZiB5b3Ugd2FudCB0bwogICAtLSAgcmVsZWFzZSB0aGUgbWVtb3J5IGR5bmFt
aWNhbGx5IGFsbG9jYXRlZCBieSB0aGUgIisiIGZ1bmN0aW9ucy4KCiAgIGZ1bmN0aW9uICIrIiAo
UzEsIFMyIDogU3RyaW5nKSByZXR1cm4gQ2hhcnNfUHRyX0FycmF5OwogICAtLSAgQ3JlYXRlIGFu
IGFycmF5IGNvbnRhaW5pbmcgUzEgYW5kIFMyLgogICAtLSAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rp
b24gYWxsb2NhdGVzIG1lbW9yeSB0byBzdG9yZSBTMSBhbmQgUzIgYXMgbnVsbAogICAtLSAgdGVy
bWluYXRlZCBTdHJpbmdzLiBUaGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBGcmVl
IG9uIHRoZQogICAtLSAgcmVzdWx0aW5nIGFycmF5LgoKICAgZnVuY3Rpb24gIisiIChTMSA6IENo
YXJzX1B0cl9BcnJheTsgUzIgOiBTdHJpbmcpIHJldHVybiBDaGFyc19QdHJfQXJyYXk7CiAgIC0t
ICBBcHBlbmQgUzIgdG8gUzEuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0
ZXMgbWVtb3J5IHRvIHN0b3JlIFMyIGFzIGEgbnVsbAogICAtLSAgdGVybWluYXRlZCBTdHJpbmdz
LiBUaGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBGcmVlIG9uIHRoZQogICAtLSAg
cmVzdWx0aW5nIGFycmF5LgoKICAgZnVuY3Rpb24gIisiIChTMSA6IENoYXJzX1B0cl9BcnJheTsg
UzIgOiBDaGFyc19QdHIpIHJldHVybiBDaGFyc19QdHJfQXJyYXk7CiAgIC0tICBBcHBlbmQgUzIg
dG8gUzEuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRv
IHN0b3JlIFMyIGFzIGEgbnVsbAogICAtLSAgdGVybWluYXRlZCBTdHJpbmdzLiBUaGUgdXNlciBp
cyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBGcmVlIG9uIHRoZQogICAtLSAgcmVzdWx0aW5nIGFy
cmF5LgoKICAgZnVuY3Rpb24gIisiIChTMSA6IENoYXJzX1B0cjsgUzIgOiBTdHJpbmcpIHJldHVy
biBDaGFyc19QdHJfQXJyYXk7CiAgIC0tICBDcmVhdGUgYW4gYXJyYXkgY29udGFpbmluZyBTMSBh
bmQgUzIuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IHRv
IHN0b3JlIFMyIGFzIGEgbnVsbAogICAtLSAgdGVybWluYXRlZCBzdHJpbmcuIFRoZSB1c2VyIGlz
IHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIEZyZWUgb24gdGhlCiAgIC0tICByZXN1bHRpbmcgYXJy
YXkuCgogICBwcm9jZWR1cmUgRnJlZSAoQSA6IGluIG91dCBDaGFyc19QdHJfQXJyYXkpOwogICAt
LSAgRnJlZSBhbGwgdGhlIHN0cmluZ3MgaW4gQS4KCmVuZCBHdGthZGEuVHlwZXM7Ci0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRv
b2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0t
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0t
Ci0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVy
IGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91
IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4
ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1
bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGlu
dmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmls
ZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBvYmplY3QgcmVwcmVz
ZW50cyBhbiBhZGp1c3RhYmxlIGJvdW5kZWQgdmFsdWUuCi0tICBJdCBpcyB1c2VkIGluIG1hbnkg
b3RoZXIgd2lkZ2V0cyB0aGF0IGhhdmUgc3VjaCBpbnRlcm5hbCB2YWx1ZXMsCi0tICBsaWtlIEd0
a19TY3JvbGxiYXIsIEd0a19TcGluX0J1dHRvbiwgR3RrX1JhbmdlLCAuLi4KLS0gIE1vZGlmeWlu
ZyB0aGUgdmFsdWUgb2YgdGhlc2Ugd2lkZ2V0cyBpcyBkb25lIHRocm91Z2ggdGhlaXIKLS0gIGFz
c29jaWF0ZWQgYWRqdXN0bWVudHMuCi0tCi0tICBUaGUgbW9kaWZpY2F0aW9uIG9mIHRoZSB2YWx1
ZSBpcyBsZWZ0IHRvIHRoZSB1c2VyLCB3aG8gc2hvdWxkCi0tICBjYWxsIFZhbHVlX0NoYW5nZWQg
b3IgQ2hhbmdlZCB0byBlbWl0IHRoZSByZWxldmFudCBzaWduYWxzLgotLQotLSAgPC9kZXNjcmlw
dGlvbj4KLS0gIDxleGFtcGxlPgotLQotLSAgVGhlIG1lYW5pbmcgb2YgdGhlIG1vc3QgaW1wb3J0
YW50IGZpZWxkcyBjYW4gYmUgZXhwbGFpbmVkIG9uIHRoZQotLSAgZm9sbG93aW5nIGZpZ3VyZSAo
aW1hZ2luZSB0aGlzIGlzIGEgc2Nyb2xsYmFyKToKLS0KLS0gICAgIFstLS0tLS0tfD09PT09PT09
PT09PT09PT09fC0tLS0tLS0tLS0tLS0tLS0tLS1dCi0tICAgIGxvd2VyICAgIHZhbHVlICAgICAg
ICB2YWx1ZSArIHBhZ2Vfc2l6ZSAgICAgICB1cHBlcgotLQotLSAgPC9leGFtcGxlPgotLSAgPGNf
dmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBHdGsuRGF0YTsKCnBhY2thZ2UgR3RrLkFk
anVzdG1lbnQgaXMKCiAgIHR5cGUgR3RrX0FkanVzdG1lbnRfUmVjb3JkIGlzIG5ldyBEYXRhLkd0
a19EYXRhX1JlY29yZCB3aXRoIHByaXZhdGU7CiAgIHR5cGUgR3RrX0FkanVzdG1lbnQgaXMgYWNj
ZXNzIGFsbCBHdGtfQWRqdXN0bWVudF9SZWNvcmQnQ2xhc3M7CgogICBOdWxsX0FkanVzdG1lbnQg
OiBjb25zdGFudCBHdGtfQWRqdXN0bWVudDsKCiAgIHByb2NlZHVyZSBHdGtfTmV3IChBZGp1c3Rt
ZW50ICAgICA6IG91dCBHdGtfQWRqdXN0bWVudDsKICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
ICAgICAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgIExvd2VyICAg
ICAgICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgIFVwcGVyICAgICAg
ICAgIDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgIFN0ZXBfSW5jcmVtZW50
IDogaW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgIFBhZ2VfSW5jcmVtZW50IDog
aW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgIFBhZ2VfU2l6ZSAgICAgIDogaW4g
ICAgIEdmbG9hdCk7CiAgIC0tICBDcmVhdGUgYSBuZXcgYWRqdXN0bWVudC4KICAgLS0gIFZhbHVl
IGlzIHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBhZGp1c3RtZW50LiBJdCBtdXN0IGJlIGluIHRo
ZQogICAtLSAgcmFuZ2UgKExvd2VyIC4uIFVwcGVyKSBhbmQgdGhlIGFkanVzdG1lbnQncyB2YWx1
ZSB3aWxsIG5ldmVyIGJlCiAgIC0tICBvdXRzaWRlIHRoaXMgcmFuZ2UuCiAgIC0tICBTdGVwX0lu
Y3JlbWVudCBpcyB0aGUgdmFsdWUgdXNlZCB0byBtYWtlIG1pbm9yIGFkanVzdG1lbnRzLCBzdWNo
CiAgIC0tICBhcyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgYXJyb3dzIG9mIGEgc2Nyb2xs
YmFyLgogICAtLSAgUGFnZV9JbmNyZW1lbnQgaXMgdXNlZCB0byBtYWtlIG1ham9yIGFkanVzdG1l
bnRzLCBzdWNoIGFzIHdoZW4KICAgLS0gIHRoZSB1c2VyIGNsaWNrcyBpbiB0aGUgdGhyb3VnaCBv
biBhIHNjcm9sbGJhci4KICAgLS0gIFBhZ2VfU2l6ZSBpcyB0aGUgc2l6ZSBvZiB0aGUgYXJlYSB0
aGF0IGlzIGN1cnJlbnRseSB2aXNpYmxlCiAgIC0tICAoZm9yIGluc3RhbmNlIGluIGEgR3RrX1Nj
cm9sbGVkX1dpbmRvdykuCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZSAoQWRqdXN0bWVudCAgICAg
OiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkJ0NsYXNzOwogICAgICAgICAgICAgICAgICAg
ICAgICAgVmFsdWUgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgTG93ZXIgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgVXBwZXIgICAgICAgICAgOiBpbiAgICAgR2Zsb2F0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgU3RlcF9JbmNyZW1lbnQgOiBpbiAgICAgR2Zsb2F0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgUGFnZV9JbmNyZW1lbnQgOiBpbiAgICAgR2Zsb2F0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgUGFnZV9TaXplICAgICAgOiBpbiAgICAgR2Zsb2F0KTsKICAgLS0gIEludGVybmFsIGlu
aXRpYWxpemF0aW9uIGZ1bmN0aW9uLgogICAtLSAgU2VlIHRoZSBzZWN0aW9uICJDcmVhdGluZyB5
b3VyIG93biB3aWRnZXRzIiBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KCiAgIGZ1bmN0aW9uIEdldF9U
eXBlIHJldHVybiBHdGsuR3RrX1R5cGU7CiAgIC0tICBSZXR1cm4gdGhlIGludGVybmFsIHZhbHVl
IGFzc29jaWF0ZWQgd2l0aCBhIEd0a19BZGp1c3RtZW50LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgLS0gUmVhZCBmdW5jdGlvbnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1
bmN0aW9uIEdldF9WYWx1ZSAoQWRqdXN0bWVudCA6IGFjY2VzcyBHdGtfQWRqdXN0bWVudF9SZWNv
cmQpCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2Zsb2F0OwogICAtLSAgUmV0dXJuIHRo
ZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X0xvd2Vy
IChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBHZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIGxvd2VyIGJvdW5kIG9m
IHRoZSBhZGp1c3RtZW50LgoKICAgZnVuY3Rpb24gR2V0X1VwcGVyIChBZGp1c3RtZW50IDogYWNj
ZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
ZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBhZGp1c3RtZW50LgoK
ICAgZnVuY3Rpb24gR2V0X1N0ZXBfSW5jcmVtZW50IChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19B
ZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
ZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHN0ZXAgaW5jcmVtZW50IG9mIHRoZSBhZGp1c3RtZW50
LgoKICAgZnVuY3Rpb24gR2V0X1BhZ2VfSW5jcmVtZW50IChBZGp1c3RtZW50IDogYWNjZXNzIEd0
a19BZGp1c3RtZW50X1JlY29yZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBHZmxvYXQ7CiAgIC0tICBSZXR1cm4gdGhlIHBhZ2UgaW5jcmVtZW50IG9mIHRoZSBhZGp1c3Rt
ZW50LgoKICAgZnVuY3Rpb24gR2V0X1BhZ2VfU2l6ZSAoQWRqdXN0bWVudCA6IGFjY2VzcyBHdGtf
QWRqdXN0bWVudF9SZWNvcmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdmbG9h
dDsKICAgLS0gIFJldHVybiB0aGUgcGFnZSBzaXplIG9mIHRoZSBhZGp1c3RtZW50LgoKICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFdyaXRlIGZ1bmN0aW9ucyAtLQogICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfVXBwZXIgKEFkanVzdG1lbnQgOiBhY2Nlc3Mg
R3RrX0FkanVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAgICAgICAgICAgICBVcHBlciAgICAg
IDogaW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIGFkanVz
dG1lbnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBtb2RpZnlpbmcgdGhp
cyB2YWx1ZS4KCiAgIHByb2NlZHVyZSBTZXRfTG93ZXIgKEFkanVzdG1lbnQgOiBhY2Nlc3MgR3Rr
X0FkanVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAgICAgICAgICAgICBMb3dlciAgICAgIDog
aW4gR2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgbG93ZXIgYm91bmQgb2YgdGhlIGFkanVzdG1l
bnQuCiAgIC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBtb2RpZnlpbmcgdGhpcyB2
YWx1ZS4KCiAgIHByb2NlZHVyZSBTZXRfVmFsdWUgKEFkanVzdG1lbnQgOiBhY2Nlc3MgR3RrX0Fk
anVzdG1lbnRfUmVjb3JkOwogICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSAgICAgIDogaW4g
R2Zsb2F0KTsKICAgLS0gIE1vZGlmeSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgYWRqdXN0bWVu
dC4KICAgLS0gIFlvdSBkbyBub3QgbmVlZCB0byBjYWxsIFZhbHVlX0NoYW5nZWQgYWZ0ZXIgbW9k
aWZ5aW5nIHRoaXMgdmFsdWUsCiAgIC0tICB0aGlzIGlzIGRvbmUgYXV0b21hdGljYWxseS4KCiAg
IHByb2NlZHVyZSBTZXRfUGFnZV9TaXplIChBZGp1c3RtZW50IDogYWNjZXNzIEd0a19BZGp1c3Rt
ZW50X1JlY29yZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VfU2l6ZSAgOiBpbiBH
ZmxvYXQpOwogICAtLSAgTW9kaWZ5IHRoZSBwYWdlIHNpemUgb2YgdGhlIGFkanVzdG1lbnQuCiAg
IC0tICBZb3Ugc2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBtb2RpZnlpbmcgdGhpcyB2YWx1ZS4K
CiAgIHByb2NlZHVyZSBTZXRfUGFnZV9JbmNyZW1lbnQgKEFkanVzdG1lbnQgICAgIDogYWNjZXNz
IEd0a19BZGp1c3RtZW50X1JlY29yZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UGFnZV9JbmNyZW1lbnQgOiBpbiBHZmxvYXQpOwogICAtLSAgTW9kaWZ5IHRoZSBwYWdlIGluY3Jl
bWVudCBvZiB0aGUgYWRqdXN0bWVudC4KICAgLS0gIFlvdSBzaG91bGQgY2FsbCBDaGFuZ2VkIGFm
dGVyIG1vZGlmeWluZyB0aGlzIHZhbHVlLgoKICAgcHJvY2VkdXJlIFNldF9TdGVwX0luY3JlbWVu
dCAoQWRqdXN0bWVudCA6IGFjY2VzcyBHdGtfQWRqdXN0bWVudF9SZWNvcmQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0ZXBfSW5jcmVtZW50IDogaW4gR2Zsb2F0KTsKICAgLS0g
IE1vZGlmeSB0aGUgc3RlcCBpbmNyZW1lbnQgb2YgdGhlIGFkanVzdG1lbnQuCiAgIC0tICBZb3Ug
c2hvdWxkIGNhbGwgQ2hhbmdlZCBhZnRlciBtb2RpZnlpbmcgdGhpcyB2YWx1ZS4KCiAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgIC0tIE1pc2MgZnVuY3Rpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tCgogICBwcm9jZWR1cmUgQ2xhbXBfUGFnZSAoQWRqdXN0bWVudCA6IGFjY2VzcyBHdGtf
QWRqdXN0bWVudF9SZWNvcmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBMb3dlciAgICAgIDog
aW4gICAgIEdmbG9hdDsKICAgICAgICAgICAgICAgICAgICAgICAgIFVwcGVyICAgICAgOiBpbiAg
ICAgR2Zsb2F0KTsKICAgLS0gIFVwZGF0ZSB0aGUgQWRqdXN0bWVudCB2YWx1ZSB0byBlbnN1cmUg
dGhhdCB0aGUgcmFuZ2UgYmV0d2VlbiBMb3dlciBhbmQKICAgLS0gIFVwcGVyIGlzIGluIHRoZSBj
dXJyZW50IHBhZ2UgKGkuZS4gYmV0d2VlbiB2YWx1ZSBhbmQgdmFsdWUgKwogICAtLSAgcGFnZV9z
aXplKS4gSWYgdGhlIHJhbmdlIGlzIGxhcmdlciB0aGFuIHRoZSBwYWdlIHNpemUsIHRoZW4gb25s
eSB0aGUKICAgLS0gIHN0YXJ0IG9mIGl0IHdpbGwgYmUgaW4gdGhlIGN1cnJlbnQgcGFnZS4KICAg
LS0gIEEgInZhbHVlX2NoYW5nZWQiIHNpZ25hbCB3aWxsIGJlIGVtaXR0ZWQgaWYgdGhlIHZhbHVl
IGlzIGNoYW5nZWQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNpZ25hbHMgZW1p
c3Npb24gLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIENoYW5nZWQg
KEFkanVzdG1lbnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkKTsKICAgLS0gIEVtaXQg
dGhlICJjaGFuZ2VkIiBzaWduYWwgb24gQWRqdXN0bWVudC4KICAgLS0gIFRoaXMgd2FybnMgYW55
IGxpc3RlbmVyIHRoYXQgc29tZSBmaWVsZCBvdGhlciB0aGFuIHRoZSB2YWx1ZSBoYXMgYmVlbgog
ICAtLSAgY2hhbmdlZC4KCiAgIHByb2NlZHVyZSBWYWx1ZV9DaGFuZ2VkIChBZGp1c3RtZW50IDog
YWNjZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCk7CiAgIC0tICBFbWl0IHRoZSAidmFsdWVfY2hh
bmdlZCIgc2lnbmFsIG9uIEFkanVzdG1lbnQuCiAgIC0tICBUaGlzIHdhcm5zIGFueSBsaXN0ZW5l
ciB0aGF0IHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLgoKICAgLS0tLS0tLS0tLS0tLQogICAt
LSBTaWduYWxzIC0tCiAgIC0tLS0tLS0tLS0tLS0KCiAgIC0tICA8c2lnbmFscz4KICAgLS0gIFRo
ZSBmb2xsb3dpbmcgbmV3IHNpZ25hbHMgYXJlIGRlZmluZWQgZm9yIHRoaXMgd2lkZ2V0OgogICAt
LQogICAtLSAgLSAiY2hhbmdlZCIKICAgLS0gICAgcHJvY2VkdXJlIEhhbmRsZXIgKEFkanVzdG1l
bnQgOiBhY2Nlc3MgR3RrX0FkanVzdG1lbnRfUmVjb3JkJ0NsYXNzKTsKICAgLS0KICAgLS0gICAg
VGhpcyBzaWduYWwgaXMgZW1pdHRlZCBldmVyeSB0aW1lIG9uZSBvZiB0aGUgcGFyYW1ldGVycyBp
cyBtb2RpZmllZCwKICAgLS0gICAgZXhjZXB0IHRoZSB2YWx1ZS4KICAgLS0KICAgLS0gIC0gInZh
bHVlX2NoYW5nZWQiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChBZGp1c3RtZW50IDogYWNj
ZXNzIEd0a19BZGp1c3RtZW50X1JlY29yZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIFRoaXMgc2ln
bmFsIGlzIGVtaXR0ZWQgZXZlcnkgdGltZSB0aGUgdmFsdWUgb2YgdGhlIGFkanVzdG1lbnQgaXMK
ICAgLS0gICAgbW9kaWZpZWQKICAgLS0gIDwvc2lnbmFscz4KCnByaXZhdGUKCiAgIHR5cGUgR3Rr
X0FkanVzdG1lbnRfUmVjb3JkIGlzIG5ldyBEYXRhLkd0a19EYXRhX1JlY29yZCB3aXRoIG51bGwg
cmVjb3JkOwoKICAgTnVsbF9BZGp1c3RtZW50IDogY29uc3RhbnQgR3RrX0FkanVzdG1lbnQgOj0g
bnVsbDsKCiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9UeXBlLCAiZ3RrX2FkanVzdG1lbnRfZ2V0
X3R5cGUiKTsKZW5kIEd0ay5BZGp1c3RtZW50OwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAg
R3RrQWRhIC0gQWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5
OTgtMTk5OSAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90
LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIEdlbmVyYWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLiAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0g
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0K
LS0gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
ICAgICAgICAgICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUg
Z2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0
aCBvdGhlciBmaWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5p
dCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0
YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhp
cyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIg
cmVhc29ucyB3aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVk
IGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8
ZGVzY3JpcHRpb24+Ci0tCi0tICBBYnN0cmFjdCBjbGFzcyBmb3Igb2JqZWN0cyBjb250YWluaW5n
IGRhdGEKLS0gIFRoaXMgb2JqZWN0IGlzIGN1cnJlbnRseSBub3QgdmVyeSB1c2VmdWwgc2luY2Ug
aXQgb25seSBwcm92aWRlcwotLSAgYSBzaW5nbGUgImRpc2Nvbm5lY3QiIHNpZ25hbC4KLS0KLS0g
IFRoaXMgaXMgdGhlICJNb2RlbCIgaW4gdGhlIE1vZGVsL1ZpZXcvQ29udHJvbGxlciBmcmFtZXdv
cmsuCi0tICA8L2Rlc2NyaXB0aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoK
d2l0aCBHdGsuT2JqZWN0OwoKcGFja2FnZSBHdGsuRGF0YSBpcwoKICAgdHlwZSBHdGtfRGF0YV9S
ZWNvcmQgaXMgbmV3IE9iamVjdC5HdGtfT2JqZWN0X1JlY29yZCB3aXRoIHByaXZhdGU7CiAgIHR5
cGUgR3RrX0RhdGEgaXMgYWNjZXNzIGFsbCBHdGtfRGF0YV9SZWNvcmQnQ2xhc3M7CgogICBmdW5j
dGlvbiBHZXRfVHlwZSByZXR1cm4gR3RrLkd0a19UeXBlOwogICAtLSAgUmV0dXJuIHRoZSBpbnRl
cm5hbCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBHdGtfRGF0YS4KCiAgIC0tLS0tLS0tLS0tLS0K
ICAgLS0gU2lnbmFscyAtLQogICAtLS0tLS0tLS0tLS0tCgogICAtLSAgPHNpZ25hbHM+CiAgIC0t
ICBUaGUgZm9sbG93aW5nIG5ldyBzaWduYWxzIGFyZSBkZWZpbmVkIGZvciB0aGlzIHdpZGdldDoK
ICAgLS0KICAgLS0gIC0gImRpc2Nvbm5lY3QiCiAgIC0tICAgIHByb2NlZHVyZSBIYW5kbGVyIChE
YXRhIDogYWNjZXNzIEd0a19EYXRhX1JlY29yZCdDbGFzcyk7CiAgIC0tCiAgIC0tICAgIEVtaXR0
ZWQganVzdCBiZWZvcmUgRGF0YSBpcyBkZXN0cm95ZWQuCiAgIC0tICA8L3NpZ25hbHM+Cgpwcml2
YXRlCiAgIHR5cGUgR3RrX0RhdGFfUmVjb3JkIGlzIG5ldyBPYmplY3QuR3RrX09iamVjdF9SZWNv
cmQgd2l0aCBudWxsIHJlY29yZDsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1R5cGUsICJndGtf
ZGF0YV9nZXRfdHlwZSIpOwplbmQgR3RrLkRhdGE7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAg
IEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAx
OTk4LTE5OTkgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlv
dCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0t
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4g
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0t
Ci0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
ICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRl
IGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdp
dGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVu
aXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1
dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRo
aXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVy
IHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJl
ZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp3aXRo
IEdsaWI7CndpdGggR2xpYi5HbGlzdDsKcHJhZ21hIEVsYWJvcmF0ZV9BbGwgKEdsaWIuR2xpc3Qp
OwoKd2l0aCBTeXN0ZW07CgpwYWNrYWdlIEd0ay5FbnVtcyBpcwoKICAgdHlwZSBHdGtfU3RhdGVf
VHlwZSBpcwogICAgIChTdGF0ZV9Ob3JtYWwsCiAgICAgIFN0YXRlX0FjdGl2ZSwKICAgICAgU3Rh
dGVfUHJlbGlnaHQsCiAgICAgIFN0YXRlX1NlbGVjdGVkLAogICAgICBTdGF0ZV9JbnNlbnNpdGl2
ZSk7CgogICB0eXBlIEd0a19XaW5kb3dfVHlwZSBpcyAoV2luZG93X1RvcGxldmVsLCBXaW5kb3df
RGlhbG9nLCBXaW5kb3dfUG9wdXApOwoKICAgdHlwZSBHdGtfQnV0dG9uX0FjdGlvbiBpcyBuZXcg
R3VpbnQ7CiAgIEJ1dHRvbl9JZ25vcmVkIDogY29uc3RhbnQgR3RrX0J1dHRvbl9BY3Rpb24gOj0g
MDsKICAgQnV0dG9uX1NlbGVjdHMgOiBjb25zdGFudCBHdGtfQnV0dG9uX0FjdGlvbiA6PSAxICoq
IDA7CiAgIEJ1dHRvbl9EcmFncyAgIDogY29uc3RhbnQgR3RrX0J1dHRvbl9BY3Rpb24gOj0gMSAq
KiAxOwogICBCdXR0b25fRXhwYW5kcyA6IGNvbnN0YW50IEd0a19CdXR0b25fQWN0aW9uIDo9IDEg
KiogMjsKCiAgIHR5cGUgR3RrX0J1dHRvbl9Cb3hfU3R5bGUgaXMKICAgICAoQnV0dG9uYm94X0Rl
ZmF1bHRfU3R5bGUsCiAgICAgIEJ1dHRvbmJveF9TcHJlYWQsCiAgICAgIEJ1dHRvbmJveF9FZGdl
LAogICAgICBCdXR0b25ib3hfU3RhcnQsCiAgICAgIEJ1dHRvbmJveF9FbmQpOwoKICAgdHlwZSBH
dGtfRGlyZWN0aW9uX1R5cGUgaXMKICAgICAoRGlyX1RhYl9Gb3J3YXJkLAogICAgICBEaXJfVGFi
X0JhY2t3YXJkLAogICAgICBEaXJfVXAsCiAgICAgIERpcl9Eb3duLAogICAgICBEaXJfTGVmdCwK
ICAgICAgRGlyX1JpZ2h0KTsKCiAgIHR5cGUgR3RrX1NoYWRvd19UeXBlIGlzCiAgICAgKFNoYWRv
d19Ob25lLAogICAgICBTaGFkb3dfSW4sCiAgICAgIFNoYWRvd19PdXQsCiAgICAgIFNoYWRvd19F
dGNoZWRfSW4sCiAgICAgIFNoYWRvd19FdGNoZWRfT3V0KTsKCiAgIHR5cGUgR3RrX0Fycm93X1R5
cGUgaXMgKEFycm93X1VwLCBBcnJvd19Eb3duLCBBcnJvd19MZWZ0LCBBcnJvd19SaWdodCk7Cgog
ICB0eXBlIEd0a19DZWxsX1R5cGUgaXMKICAgICAoQ2VsbF9FbXB0eSwKICAgICAgQ2VsbF9UZXh0
LAogICAgICBDZWxsX1BpeG1hcCwKICAgICAgQ2VsbF9QaXh0ZXh0LAogICAgICBDZWxsX1dpZGdl
dCk7CgogICB0eXBlIEd0a19QYWNrX1R5cGUgaXMgKFBhY2tfU3RhcnQsIFBhY2tfRW5kKTsKCiAg
IHR5cGUgR3RrX1BvbGljeV9UeXBlIGlzIChQb2xpY3lfQWx3YXlzLCBQb2xpY3lfQXV0b21hdGlj
LCBQb2xpY3lfTmV2ZXIpOwoKICAgdHlwZSBHdGtfVXBkYXRlX1R5cGUgaXMKICAgICAoVXBkYXRl
X0NvbnRpbnVvdXMsCiAgICAgIFVwZGF0ZV9EaXNjb250aW51b3VzLAogICAgICBVcGRhdGVfRGVs
YXllZCk7CgogICB0eXBlIEd0a19SZWxpZWZfU3R5bGUgaXMgKFJlbGllZl9Ob3JtYWwsIFJlbGll
Zl9IYWxmLCBSZWxpZWZfTm9uZSk7CgogICB0eXBlIEd0a19BdHRhY2hfT3B0aW9ucyBpcyBuZXcg
R2xpYi5HdWludDMyOwogICBFeHBhbmQgOiBjb25zdGFudCBHdGtfQXR0YWNoX09wdGlvbnMgOj0g
MTsKICAgU2hyaW5rIDogY29uc3RhbnQgR3RrX0F0dGFjaF9PcHRpb25zIDo9IDI7CiAgIEZpbGwg
ICA6IGNvbnN0YW50IEd0a19BdHRhY2hfT3B0aW9ucyA6PSA0OwoKICAgdHlwZSBHdGtfV2luZG93
X1Bvc2l0aW9uIGlzCiAgICAgKFdpbl9Qb3NfTm9uZSwKICAgICAgV2luX1Bvc19DZW50ZXIsCiAg
ICAgIFdpbl9Qb3NfTW91c2UsCiAgICAgIFdpbl9Qb3NfQ2VudGVyX0Fsd2F5cyk7CgogICB0eXBl
IEd0a19TdWJtZW51X0RpcmVjdGlvbiBpcyAoRGlyZWN0aW9uX0xlZnQsIERpcmVjdGlvbl9SaWdo
dCk7CgogICB0eXBlIEd0a19TdWJtZW51X1BsYWNlbWVudCBpcyAoVG9wX0JvdHRvbSwgTGVmdF9S
aWdodCk7CgogICB0eXBlIEd0a19SZXNpemVfTW9kZSBpcwogICAgIChSZXNpemVfUGFyZW50LCAg
ICAgLS0gIFBhc3MgcmVxdWVzdCB0byB0aGUgcGFyZW50CiAgICAgIFJlc2l6ZV9RdWV1ZSwgICAg
ICAtLSAgUXVldWUgcmVzaXplcyBvbiB0aGlzIHdpZGdldAogICAgICBSZXNpemVfSW1tZWRpYXRl
KTsgLS0gIFBlcmZvcm0gdGhlIHJlc2l6ZXMgbm93CgogICB0eXBlIEd0a19NZXRyaWNfVHlwZSBp
cyAoUGl4ZWxzLCBJbmNoZXMsIENlbnRpbWV0ZXJzKTsKCiAgIHR5cGUgR3RrX1Njcm9sbF9UeXBl
IGlzCiAgICAgKFNjcm9sbF9Ob25lLAogICAgICBTY3JvbGxfU3RlcF9CYWNrd2FyZCwKICAgICAg
U2Nyb2xsX1N0ZXBfRm9yd2FyZCwKICAgICAgU2Nyb2xsX1BhZ2VfQmFja3dhcmQsCiAgICAgIFNj
cm9sbF9QYWdlX0ZvcndhcmQsCiAgICAgIFNjcm9sbF9KdW1wKTsKCiAgIHR5cGUgR3RrX1Ryb3Vn
aF9UeXBlIGlzCiAgICAgKFRyb3VnaF9Ob25lLAogICAgICBUcm91Z2hfU3RhcnQsCiAgICAgIFRy
b3VnaF9FbmQsCiAgICAgIFRyb3VnaF9KdW1wKTsKCiAgIHR5cGUgR3RrX1Bvc2l0aW9uX1R5cGUg
aXMKICAgICAoUG9zX0xlZnQsCiAgICAgIFBvc19SaWdodCwKICAgICAgUG9zX1RvcCwKICAgICAg
UG9zX0JvdHRvbSk7CgogICB0eXBlIEd0a19QcmV2aWV3X1R5cGUgaXMgKFByZXZpZXdfQ29sb3Is
IFByZXZpZXdfR3JheXNjYWxlKTsKCiAgIHR5cGUgR3RrX0p1c3RpZmljYXRpb24gaXMKICAgICAo
SnVzdGlmeV9MZWZ0LAogICAgICBKdXN0aWZ5X1JpZ2h0LAogICAgICBKdXN0aWZ5X0NlbnRlciwK
ICAgICAgSnVzdGlmeV9GaWxsKTsKCiAgIHR5cGUgR3RrX1NlbGVjdGlvbl9Nb2RlIGlzCiAgICAg
KFNlbGVjdGlvbl9TaW5nbGUsCiAgICAgIFNlbGVjdGlvbl9Ccm93c2UsCiAgICAgIFNlbGVjdGlv
bl9NdWx0aXBsZSwKICAgICAgU2VsZWN0aW9uX0V4dGVuZGVkKTsKCiAgIHR5cGUgR3RrX09yaWVu
dGF0aW9uIGlzIChPcmllbnRhdGlvbl9Ib3Jpem9udGFsLCBPcmllbnRhdGlvbl9WZXJ0aWNhbCk7
CgogICB0eXBlIEd0a19TcGluX0J1dHRvbl9VcGRhdGVfUG9saWN5IGlzIChVcGRhdGVfQWx3YXlz
LCBVcGRhdGVfSWZfVmFsaWQpOwoKICAgdHlwZSBHdGtfVG9vbGJhcl9DaGlsZF9UeXBlIGlzCiAg
ICAgKFRvb2xiYXJfQ2hpbGRfU3BhY2UsCiAgICAgIFRvb2xiYXJfQ2hpbGRfQnV0dG9uLAogICAg
ICBUb29sYmFyX0NoaWxkX1RvZ2dsZWJ1dHRvbiwKICAgICAgVG9vbGJhcl9DaGlsZF9SYWRpb2J1
dHRvbiwKICAgICAgVG9vbGJhcl9DaGlsZF9XaWRnZXQpOwoKICAgdHlwZSBHdGtfVG9vbGJhcl9T
dHlsZSBpcyAoVG9vbGJhcl9JY29ucywgVG9vbGJhcl9UZXh0LCBUb29sYmFyX0JvdGgpOwoKICAg
dHlwZSBHdGtfVG9vbGJhcl9TcGFjZV9TdHlsZSBpcyAoVG9vbGJhcl9TcGFjZV9FbXB0eSwgVG9v
bGJhcl9TcGFjZV9MaW5lKTsKCiAgIHR5cGUgR3RrX1RyZWVfVmlld19Nb2RlIGlzIChUcmVlX1Zp
ZXdfTGluZSwgVHJlZV9WaWV3X0l0ZW0pOwoKICAgdHlwZSBHdGtfVmlzaWJpbGl0eSBpcwogICAg
IChWaXNpYmlsaXR5X05vbmUsIFZpc2liaWxpdHlfUGFydGlhbCwgVmlzaWJpbGl0eV9GdWxsKTsK
CiAgIHR5cGUgR3RrX1Byb2dyZXNzX0Jhcl9TdHlsZSBpcwogICAgIChQcm9ncmVzc19Db250aW51
b3VzLCBQcm9ncmVzc19EaXNjcmV0ZSk7CgogICB0eXBlIEd0a19Qcm9ncmVzc19CYXJfT3JpZW50
YXRpb24gaXMKICAgICAoUHJvZ3Jlc3NfTGVmdF9Ub19SaWdodCwKICAgICAgUHJvZ3Jlc3NfUmln
aHRfVG9fTGVmdCwKICAgICAgUHJvZ3Jlc3NfQm90dG9tX1RvX1RvcCwKICAgICAgUHJvZ3Jlc3Nf
VG9wX1RvX0JvdHRvbSk7CgogICB0eXBlIEd0a19DdHJlZV9MaW5lX1N0eWxlIGlzCiAgICAgKEN0
cmVlX0xpbmVzX05vbmUsCiAgICAgIC0tICBObyBsaW5lIHdpbGwgYmUgZHJhd24gaW4gdGhlIEN0
cmVlCgogICAgICBDdHJlZV9MaW5lc19Tb2xpZCwKICAgICAgLS0gIFNvbGlkIGxpbmVzIHdpbGwg
YmUgZHJhd24KCiAgICAgIEN0cmVlX0xpbmVzX0RvdHRlZCwKICAgICAgLS0gIERvdHRlZCBsaW5l
cyB3aWxsIGJlIGRyYXduCgogICAgICBDdHJlZV9MaW5lc19UYWJiZWQKICAgICAgLS0gIFRoZSB0
cmVlIHdvbid0IGJlIGhpZ2hsaWdodGVkIGJ5IGxpbmVzIGJ1dCBieSB0YWJzIHN1cnJvdW5kaW5n
IG5vZGVzCiAgICAgKTsKICAgLS0gIFNlZSBHdGsuQ3RyZWUuU2V0X0xpbmVfU3R5bGUgZm9yIG1v
cmUgZGV0YWlscy4KCiAgIHR5cGUgR3RrX0N0cmVlX0V4cGFuZGVyX1N0eWxlIGlzCiAgICAgKEN0
cmVlX0V4cGFuZGVyX05vbmUsCiAgICAgIC0tICBObyBwaXhtYXAgd2lsbCBiZSBkcmF3biwgeW91
IHdpbGwgaGF2ZSB0byBkb3VibGUtY2xpY2sgb24gdGhlIG5vZGUgdG8KICAgICAgLS0gIGV4cGFu
ZCBpdC4KCiAgICAgIEN0cmVlX0V4cGFuZGVyX1NxdWFyZSwKICAgICAgLS0gIFRoZSBwaXhtYXAg
d2lsbCBiZSBhIHNxdWFyZQoKICAgICAgQ3RyZWVfRXhwYW5kZXJfVHJpYW5nbGUsCiAgICAgIC0t
ICBUaGUgcGl4bWFwIHdpbGwgYmUgYSB0cmlhbmdsZQoKICAgICAgQ3RyZWVfRXhwYW5kZXJfQ2ly
Y3VsYXIKICAgICAgLS0gIFRoZSBwaXhtYXAgd2lsbCBiZSBhIGNpcmNsZQogICAgICk7CiAgIC0t
ICBTZWUgR3RrLkN0cmVlLlNldF9FeHBhbmRlcl9TdHlsZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAg
LS0gIFNvbWUgR2xpYiBpbnN0YW50aWF0aW9ucwoKICAgZnVuY3Rpb24gQ29udmVydCAoUyA6IFN0
cmluZykgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICBmdW5jdGlvbiBDb252ZXJ0IChTIDogU3lz
dGVtLkFkZHJlc3MpIHJldHVybiBTdHJpbmc7CiAgIGZ1bmN0aW9uIENvbnZlcnRfSSAoSSA6IEdp
bnQpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgZnVuY3Rpb24gQ29udmVydF9BIChTIDogU3lz
dGVtLkFkZHJlc3MpIHJldHVybiBHaW50OwogICBwcmFnbWEgSW1wb3J0IChDLCBDb252ZXJ0X0ks
ICJjb252ZXJ0X2kiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgQ29udmVydF9BLCAiY29udmVydF9h
Iik7CgogICBwYWNrYWdlIFN0cmluZ19MaXN0IGlzIG5ldyBHbGliLkdsaXN0LkdlbmVyaWNfTGlz
dCAoU3RyaW5nKTsKICAgLS0gIFdhcm5pbmc6IHdoZW4geW91IGNyZWF0ZSB0aGlzIGxpc3QsIG5l
dyBtZW1vcnkgZ2V0cyBhbGxvY2F0ZWQgZm9yCiAgIC0tICBhbGwgdGhlIHN0cmluZ3MuIFlvdSBz
aG91bGQgdXNlIHRoZSBmdW5jdGlvbiBGcmVlX1N0cmluZ19MaXN0CiAgIC0tICBpbnN0ZWFkIG9m
IEdsaWIuR2xpc3QuRnJlZSB0byBiZSBzdXJlIHRvIGZyZWUgdGhpcyBtZW1vcnkuCgogICBwcm9j
ZWR1cmUgRnJlZV9TdHJpbmdfTGlzdCAoTGlzdCA6IGluIG91dCBTdHJpbmdfTGlzdC5HbGlzdCk7
CiAgIC0tICBGcmVlIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkgYWxsIHRoZSBzdHJpbmdzIGluIHRo
ZSBsaXN0LCBhcyB3ZWxsCiAgIC0tICBhcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSBsaXN0
IGl0c2VsZi4KCiAgIHBhY2thZ2UgR2ludF9MaXN0IGlzIG5ldwogICAgIEdsaWIuR2xpc3QuR2Vu
ZXJpY19MaXN0IChHaW50LCBDb252ZXJ0X0ksIENvbnZlcnRfQSk7CgogICBmdW5jdGlvbiBDb252
ZXJ0X1VJIChJIDogR3VpbnQpIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAgZnVuY3Rpb24gQ29u
dmVydF9VQSAoUyA6IFN5c3RlbS5BZGRyZXNzKSByZXR1cm4gR3VpbnQ7CiAgIHByYWdtYSBJbXBv
cnQgKEMsIENvbnZlcnRfVUksICJjb252ZXJ0X3VpIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENv
bnZlcnRfVUEsICJjb252ZXJ0X3VhIik7CiAgIHBhY2thZ2UgR3VpbnRfTGlzdCBpcyBuZXcKICAg
ICBHbGliLkdsaXN0LkdlbmVyaWNfTGlzdCAoR3VpbnQsIENvbnZlcnRfVUksIENvbnZlcnRfVUEp
OwoKZW5kIEd0ay5FbnVtczsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRh
OTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2Jl
Y2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
ciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg
UHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0K
LS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAg
LS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT
dWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBz
cGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJv
bSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxl
cyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3Qg
IGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBj
b3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhj
ZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkg
dGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05V
IFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggR2RrOyB1c2UgR2Rr
Owp3aXRoIEdkay5Db2xvcjsKd2l0aCBHZGsuR0M7CndpdGggR2RrLkZvbnQ7CndpdGggR2RrLlR5
cGVzOwp3aXRoIEdkay5QaXhtYXA7CndpdGggR2RrLldpbmRvdzsKd2l0aCBHdGsuRW51bXM7Cgpw
YWNrYWdlIEd0ay5TdHlsZSBpcwoKICAgdHlwZSBHdGtfU3R5bGUgaXMgbmV3IEdkay5DX1Byb3h5
OwogICAtLSAgVHlwZSB1c2VkIHRvIGhhbmRsZSBzdHlsZXMuCiAgIC0tICBAcHhyZWZ7UGFja2Fn
ZV9HdGsuV2lkZ2V0fSBmb3Igc3R5bGUgaGFuZGxpbmcuCgogICBOdWxsX1N0eWxlIDogY29uc3Rh
bnQgR3RrX1N0eWxlIDo9IG51bGw7CgogICBwcm9jZWR1cmUgR3RrX05ldyAoU3R5bGUgOiBvdXQg
R3RrX1N0eWxlKTsKCiAgIGZ1bmN0aW9uIENvcHkgKFNvdXJjZSA6IGluIEd0a19TdHlsZSkgcmV0
dXJuIEd0a19TdHlsZTsKCiAgIGZ1bmN0aW9uIEF0dGFjaAogICAgIChTdHlsZSAgOiBpbiBHdGtf
U3R5bGU7CiAgICAgIFdpbmRvdyA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdykgcmV0dXJuIEd0
a19TdHlsZTsKCiAgIHByb2NlZHVyZSBEZXRhY2ggKFN0eWxlIDogaW4gR3RrX1N0eWxlKTsKCiAg
IHByb2NlZHVyZSBTZXRfQmFja2dyb3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxl
OwogICAgICBXaW5kb3cgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICBTdGF0
ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpOwoKICAgcHJvY2VkdXJlIFNldF9Gb3Jl
Z3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdkay5Db2xv
ci5HZGtfQ29sb3IpOwoKICAgcHJvY2VkdXJlIFNldF9GZwogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAg
ICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9yKSByZW5hbWVzIFNldF9Gb3Jl
Z3JvdW5kOwoKICAgZnVuY3Rpb24gR2V0X0ZvcmVncm91bmQKICAgICAoU3R5bGUgICAgICA6IGlu
IEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSBy
ZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcjsKCiAgIGZ1bmN0aW9uIEdldF9GZwogICAgIChTdHls
ZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0
YXRlX1R5cGUpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9yCiAgICAgIHJlbmFtZXMgR2V0X0Zv
cmVncm91bmQ7CgogICBwcm9jZWR1cmUgU2V0X0JhY2tncm91bmQKICAgICAoU3R5bGUgICAgICA6
IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBl
OwogICAgICBDb2xvciAgICAgIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcik7CgogICBwcm9jZWR1
cmUgU2V0X0JnCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5
cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdkay5D
b2xvci5HZGtfQ29sb3IpIHJlbmFtZXMgU2V0X0JhY2tncm91bmQ7CgogICBmdW5jdGlvbiBHZXRf
QmFja2dyb3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9U
eXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuQ29sb3IuR2RrX0NvbG9y
OwoKICAgZnVuY3Rpb24gR2V0X0JnCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAg
ICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5Db2xv
ci5HZGtfQ29sb3IKICAgICAgcmVuYW1lcyBHZXRfQmFja2dyb3VuZDsKCiAgIHByb2NlZHVyZSBT
ZXRfTGlnaHQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBDb2xvciAgICAgIDogaW4gR2RrLkNv
bG9yLkdka19Db2xvcik7CgogICBmdW5jdGlvbiBHZXRfTGlnaHQKICAgICAoU3R5bGUgICAgICA6
IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBl
KSByZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcjsKCiAgIHByb2NlZHVyZSBTZXRfRGFyawogICAg
IChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMu
R3RrX1N0YXRlX1R5cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9y
KTsKCiAgIGZ1bmN0aW9uIEdldF9EYXJrCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5D
b2xvci5HZGtfQ29sb3I7CgogICBwcm9jZWR1cmUgU2V0X01pZGRsZQogICAgIChTdHlsZSAgICAg
IDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5
cGU7CiAgICAgIENvbG9yICAgICAgOiBpbiBHZGsuQ29sb3IuR2RrX0NvbG9yKTsKCiAgIHByb2Nl
ZHVyZSBTZXRfTWlkCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRl
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdk
ay5Db2xvci5HZGtfQ29sb3IpIHJlbmFtZXMgU2V0X01pZGRsZTsKCiAgIGZ1bmN0aW9uIEdldF9N
aWRkbGUKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6
IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcjsKCiAg
IGZ1bmN0aW9uIEdldF9NaWQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAg
U3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkNvbG9yLkdk
a19Db2xvcgogICAgICByZW5hbWVzIEdldF9NaWRkbGU7CgogICBwcm9jZWR1cmUgU2V0X1RleHQK
ICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVu
dW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBDb2xvciAgICAgIDogaW4gR2RrLkNvbG9yLkdka19D
b2xvcik7CgogICBmdW5jdGlvbiBHZXRfVGV4dAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0
eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBH
ZGsuQ29sb3IuR2RrX0NvbG9yOwoKICAgcHJvY2VkdXJlIFNldF9CYXNlCiAgICAgKFN0eWxlICAg
ICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVf
VHlwZTsKICAgICAgQ29sb3IgICAgICA6IGluIEdkay5Db2xvci5HZGtfQ29sb3IpOwoKICAgZnVu
Y3Rpb24gR2V0X0Jhc2UKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3Rh
dGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkNvbG9yLkdka19D
b2xvcjsKCiAgIHByb2NlZHVyZSBTZXRfQmxhY2sKICAgICAoU3R5bGUgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIENvbG9yIDogaW4gR2RrLkNvbG9yLkdka19Db2xvcik7CgogICBmdW5jdGlvbiBHZXRf
QmxhY2sgKFN0eWxlIDogaW4gR3RrX1N0eWxlKSByZXR1cm4gR2RrLkNvbG9yLkdka19Db2xvcjsK
CiAgIHByb2NlZHVyZSBTZXRfV2hpdGUgKFN0eWxlIDogaW4gR3RrX1N0eWxlOyBDb2xvciA6IGlu
IEdkay5Db2xvci5HZGtfQ29sb3IpOwoKICAgZnVuY3Rpb24gR2V0X1doaXRlIChTdHlsZSA6IGlu
IEd0a19TdHlsZSkgcmV0dXJuIEdkay5Db2xvci5HZGtfQ29sb3I7CgogICBwcm9jZWR1cmUgU2V0
X0ZvbnQgKFN0eWxlIDogaW4gR3RrX1N0eWxlOyBGb250IDogaW4gR2RrLkZvbnQuR2RrX0ZvbnQp
OwoKICAgZnVuY3Rpb24gR2V0X0ZvbnQgKFN0eWxlIDogaW4gR3RrX1N0eWxlKSByZXR1cm4gR2Rr
LkZvbnQuR2RrX0ZvbnQ7CgogICBwcm9jZWR1cmUgU2V0X0JsYWNrX0dDIChTdHlsZSA6IGluIEd0
a19TdHlsZTsgR0MgOiBpbiBHZGsuR0MuR2RrX0dDKTsKCiAgIGZ1bmN0aW9uIEdldF9CbGFja19H
QyAoU3R5bGUgOiBpbiBHdGtfU3R5bGUpIHJldHVybiBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2Vk
dXJlIFNldF9CbGFjawogICAgIChTdHlsZSA6IGluIEd0a19TdHlsZTsgR0MgOiBpbiBHZGsuR0Mu
R2RrX0dDKSByZW5hbWVzIFNldF9CbGFja19HQzsKCiAgIGZ1bmN0aW9uIEdldF9CbGFjawogICAg
IChTdHlsZSA6IGluIEd0a19TdHlsZSkgcmV0dXJuIEdkay5HQy5HZGtfR0MgcmVuYW1lcyBHZXRf
QmxhY2tfR0M7CgogICBwcm9jZWR1cmUgU2V0X1doaXRlX0dDIChTdHlsZSA6IGluIEd0a19TdHls
ZTsgR0MgOiBpbiBHZGsuR0MuR2RrX0dDKTsKCiAgIGZ1bmN0aW9uIEdldF9XaGl0ZV9HQyAoU3R5
bGUgOiBpbiBHdGtfU3R5bGUpIHJldHVybiBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNl
dF9XaGl0ZQogICAgIChTdHlsZSA6IGluIEd0a19TdHlsZTsgR0MgOiBpbiBHZGsuR0MuR2RrX0dD
KSByZW5hbWVzIFNldF9XaGl0ZV9HQzsKCiAgIGZ1bmN0aW9uIEdldF9XaGl0ZQogICAgIChTdHls
ZSA6IGluIEd0a19TdHlsZSkgcmV0dXJuIEdkay5HQy5HZGtfR0MgcmVuYW1lcyBHZXRfV2hpdGVf
R0M7CgogICBwcm9jZWR1cmUgU2V0X0ZvcmVncm91bmRfR0MKICAgICAoU3R5bGUgICAgICA6IGlu
IEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwog
ICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfRm9y
ZWdyb3VuZF9HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9U
eXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0MuR2RrX0dDOwoKICAg
cHJvY2VkdXJlIFNldF9Gb3JlZ3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAg
ICAgICA6IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X0ZvcmVncm91bmRfR0M7CgogICBm
dW5jdGlvbiBHZXRfRm9yZWdyb3VuZAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0Mu
R2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X0ZvcmVncm91bmRfR0M7CgogICBwcm9jZWR1cmUgU2V0
X0ZnCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBp
biBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtf
R0MpIHJlbmFtZXMgU2V0X0ZvcmVncm91bmRfR0M7CgogICBmdW5jdGlvbiBHZXRfRmcKICAgICAo
U3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0
a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdka19HQwogICAgICByZW5hbWVzIEdldF9Gb3Jl
Z3JvdW5kX0dDOwoKICAgcHJvY2VkdXJlIFNldF9GZ19HQwogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAg
ICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9Gb3JlZ3JvdW5k
X0dDOwoKICAgZnVuY3Rpb24gR2V0X0ZnX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5
bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdk
ay5HQy5HZGtfR0MKICAgICAgcmVuYW1lcyBHZXRfRm9yZWdyb3VuZF9HQzsKCiAgIHByb2NlZHVy
ZSBTZXRfQmFja2dyb3VuZF9HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAg
ICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAgICAg
OiBpbiBHZGsuR0MuR2RrX0dDKTsKCiAgIGZ1bmN0aW9uIEdldF9CYWNrZ3JvdW5kX0dDCiAgICAg
KFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5H
dGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5HQy5HZGtfR0M7CgogICBwcm9jZWR1cmUgU2V0X0Jh
Y2tncm91bmQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdD
Lkdka19HQykgcmVuYW1lcyBTZXRfQmFja2dyb3VuZF9HQzsKCiAgIGZ1bmN0aW9uIEdldF9CYWNr
Z3JvdW5kCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUg
OiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0dXJuIEdkay5HQy5HZGtfR0MKICAgICAgcmVu
YW1lcyBHZXRfQmFja2dyb3VuZF9HQzsKCiAgIHByb2NlZHVyZSBTZXRfQmcKICAgICAoU3R5bGUg
ICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0
ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRf
QmFja2dyb3VuZF9HQzsKCiAgIGZ1bmN0aW9uIEdldF9CZwogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJl
dHVybiBHZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X0JhY2tncm91bmRfR0M7CgogICBw
cm9jZWR1cmUgU2V0X0JnX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAg
IFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6
IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X0JhY2tncm91bmRfR0M7CgogICBmdW5jdGlv
biBHZXRfQmdfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVf
VHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdDLkdka19HQwogICAg
ICByZW5hbWVzIEdldF9CYWNrZ3JvdW5kX0dDOwoKICAgcHJvY2VkdXJlIFNldF9MaWdodF9HQwog
ICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51
bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKTsK
CiAgIGZ1bmN0aW9uIEdldF9MaWdodF9HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxl
OwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsu
R0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9MaWdodAogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAg
ICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9MaWdodF9HQzsK
CiAgIGZ1bmN0aW9uIEdldF9MaWdodAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwog
ICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0Mu
R2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X0xpZ2h0X0dDOwoKICAgcHJvY2VkdXJlIFNldF9EYXJr
X0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBp
biBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtf
R0MpOwoKICAgZnVuY3Rpb24gR2V0X0RhcmtfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19T
dHlsZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4g
R2RrLkdDLkdka19HQzsKCiAgIHByb2NlZHVyZSBTZXRfRGFyawogICAgIChTdHlsZSAgICAgIDog
aW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7
CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9EYXJrX0dD
OwoKICAgZnVuY3Rpb24gR2V0X0RhcmsKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsK
ICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2RrLkdD
Lkdka19HQwogICAgICByZW5hbWVzIEdldF9EYXJrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9NaWRk
bGVfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlwZSA6
IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdDLkdk
a19HQyk7CgogICBmdW5jdGlvbiBHZXRfTWlkZGxlX0dDCiAgICAgKFN0eWxlICAgICAgOiBpbiBH
dGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0
dXJuIEdkay5HQy5HZGtfR0M7CgogICBwcm9jZWR1cmUgU2V0X01pZGRsZQogICAgIChTdHlsZSAg
ICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRl
X1R5cGU7CiAgICAgIEdDICAgICAgICAgOiBpbiBHZGsuR0MuR2RrX0dDKSByZW5hbWVzIFNldF9N
aWRkbGVfR0M7CgogICBmdW5jdGlvbiBHZXRfTWlkZGxlCiAgICAgKFN0eWxlICAgICAgOiBpbiBH
dGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZSkgcmV0
dXJuIEdkay5HQy5HZGtfR0MKICAgICAgcmVuYW1lcyBHZXRfTWlkZGxlX0dDOwoKICAgcHJvY2Vk
dXJlIFNldF9NaWRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3Rh
dGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4g
R2RrLkdDLkdka19HQykgcmVuYW1lcyBTZXRfTWlkZGxlX0dDOwoKICAgZnVuY3Rpb24gR2V0X01p
ZF9HQwogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDog
aW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBHZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFt
ZXMgR2V0X01pZGRsZV9HQzsKCiAgIHByb2NlZHVyZSBTZXRfTWlkCiAgICAgKFN0eWxlICAgICAg
OiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlw
ZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X01pZGRs
ZV9HQzsKCiAgIGZ1bmN0aW9uIEdldF9NaWQKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHls
ZTsKICAgICAgU3RhdGVfVHlwZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlKSByZXR1cm4gR2Rr
LkdDLkdka19HQwogICAgICByZW5hbWVzIEdldF9NaWRkbGVfR0M7CgogICBwcm9jZWR1cmUgU2V0
X1RleHRfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdD
Lkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfVGV4dF9HQwogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJl
dHVybiBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9UZXh0CiAgICAgKFN0eWxlICAg
ICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVf
VHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X1Rl
eHRfR0M7CgogICBmdW5jdGlvbiBHZXRfVGV4dAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0
eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBH
ZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X1RleHRfR0M7CgogICBwcm9jZWR1cmUgU2V0
X0Jhc2VfR0MKICAgICAoU3R5bGUgICAgICA6IGluIEd0a19TdHlsZTsKICAgICAgU3RhdGVfVHlw
ZSA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBHQyAgICAgICAgIDogaW4gR2RrLkdD
Lkdka19HQyk7CgogICBmdW5jdGlvbiBHZXRfQmFzZV9HQwogICAgIChTdHlsZSAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJl
dHVybiBHZGsuR0MuR2RrX0dDOwoKICAgcHJvY2VkdXJlIFNldF9CYXNlCiAgICAgKFN0eWxlICAg
ICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFN0YXRlX1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVf
VHlwZTsKICAgICAgR0MgICAgICAgICA6IGluIEdkay5HQy5HZGtfR0MpIHJlbmFtZXMgU2V0X0Jh
c2VfR0M7CgogICBmdW5jdGlvbiBHZXRfQmFzZQogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0
eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGUpIHJldHVybiBH
ZGsuR0MuR2RrX0dDCiAgICAgIHJlbmFtZXMgR2V0X0Jhc2VfR0M7CgogICBwcm9jZWR1cmUgU2V0
X0JnX1BpeG1hcAogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9U
eXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIFBpeG1hcCAgICAgOiBpbiBHZGsu
UGl4bWFwLkdka19QaXhtYXApOwoKICAgZnVuY3Rpb24gR2V0X0JnX1BpeG1hcAogICAgIChTdHls
ZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0
YXRlX1R5cGUpIHJldHVybiBHZGsuUGl4bWFwLkdka19QaXhtYXA7CgogICBmdW5jdGlvbiBYX1Ro
aWNrbmVzcyAoU3R5bGUgOiBpbiBHdGtfU3R5bGUpIHJldHVybiBHaW50OwogICAtLSAgV2lkdGgg
b2YgdGhlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYW5kIHJhbmdlcyB3aGVuIFN0eWxlIGlzIGFwcGxp
ZWQuCiAgIC0tICBJbiBmYWN0LCB0aGlzIHRoaWNrbmVzcyBpcyB1c2VkIGZvciBhIGxvdCBvZiB3
aWRnZXRzIHdob3NlIHdpZHRoCiAgIC0tICBkb2VzIG5vdCBkZXBlbmQgb24gdGhlaXIgY29udGVu
dCwgc3VjaCBhcyBydWxlcnMsLi4uCgogICBmdW5jdGlvbiBZX1RoaWNrbmVzcyAoU3R5bGUgOiBp
biBHdGtfU3R5bGUpIHJldHVybiBHaW50OwogICAtLSAgSGVpZ2h0IG9mIHRoZSBob3Jpem9udGFs
IHNjcm9sbGJhcnMgYW5kIHJhbmdlcyB3aGVuIFN0eWxlIGlzIGFwcGxpZWQuCgogICBwcm9jZWR1
cmUgRHJhd19IbGluZQogICAgIChTdHlsZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBXaW5k
b3cgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICBTdGF0ZV9UeXBlIDogaW4g
RW51bXMuR3RrX1N0YXRlX1R5cGU7CiAgICAgIFgxLCBYMiAgICAgOiBpbiBHaW50OwogICAgICBZ
ICAgICAgICAgIDogaW4gR2ludCk7CgogICBwcm9jZWR1cmUgRHJhd19WbGluZQogICAgIChTdHls
ZSAgICAgIDogaW4gR3RrX1N0eWxlOwogICAgICBXaW5kb3cgICAgIDogaW4gR2RrLldpbmRvdy5H
ZGtfV2luZG93OwogICAgICBTdGF0ZV9UeXBlIDogaW4gRW51bXMuR3RrX1N0YXRlX1R5cGU7CiAg
ICAgIFkxLCBZMiAgICAgOiBpbiBHaW50OwogICAgICBYICAgICAgICAgIDogaW4gR2ludCk7Cgog
ICBwcm9jZWR1cmUgRHJhd19TaGFkb3cKICAgICAoU3R5bGUgICAgICAgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIFdpbmRvdyAgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICBTdGF0
ZV9UeXBlICA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBTaGFkb3dfVHlwZSA6IGlu
IEVudW1zLkd0a19TaGFkb3dfVHlwZTsKICAgICAgWCwgWSAgICAgICAgOiBpbiBHaW50OwogICAg
ICBXaWR0aCAgICAgICA6IGluIEdpbnQ7CiAgICAgIEhlaWdodCAgICAgIDogaW4gR2ludCk7Cgog
ICBwcm9jZWR1cmUgRHJhd19Qb2x5Z29uCiAgICAgKFN0eWxlICAgICAgOiBpbiBHdGtfU3R5bGU7
CiAgICAgIFdpbmRvdyAgICAgOiBpbiBHZGsuV2luZG93Lkdka19XaW5kb3c7CiAgICAgIFN0YXRl
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgU2hhZG93X1R5cGUgOiBpbiBF
bnVtcy5HdGtfU2hhZG93X1R5cGU7CiAgICAgIFBvaW50cyAgICAgOiBpbiBHZGsuVHlwZXMuR2Rr
X1BvaW50c19BcnJheTsKICAgICAgRmlsbCAgICAgICA6IGluIEJvb2xlYW4pOwoKICAgcHJvY2Vk
dXJlIERyYXdfQXJyb3cKICAgICAoU3R5bGUgICAgICAgOiBpbiBHdGtfU3R5bGU7CiAgICAgIFdp
bmRvdyAgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICBTdGF0ZV9UeXBlICA6
IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBTaGFkb3dfVHlwZSA6IGluIEVudW1zLkd0
a19TaGFkb3dfVHlwZTsKICAgICAgQXJyb3dfVHlwZSAgOiBpbiBFbnVtcy5HdGtfQXJyb3dfVHlw
ZTsKICAgICAgRmlsbCAgICAgICAgOiBpbiBCb29sZWFuOwogICAgICBYLCBZICAgICAgICA6IGlu
IEdpbnQ7CiAgICAgIFdpZHRoICAgICAgIDogaW4gR2ludDsKICAgICAgSGVpZ2h0ICAgICAgOiBp
biBHaW50KTsKCiAgIHByb2NlZHVyZSBEcmF3X0RpYW1vbmQKICAgICAoU3R5bGUgICAgICAgOiBp
biBHdGtfU3R5bGU7CiAgICAgIFdpbmRvdyAgICAgIDogaW4gR2RrLldpbmRvdy5HZGtfV2luZG93
OwogICAgICBTdGF0ZV9UeXBlICA6IGluIEVudW1zLkd0a19TdGF0ZV9UeXBlOwogICAgICBTaGFk
b3dfVHlwZSA6IGluIEVudW1zLkd0a19TaGFkb3dfVHlwZTsKICAgICAgWCwgWSAgICAgICAgOiBp
biBHaW50OwogICAgICBXaWR0aCAgICAgICA6IGluIEdpbnQ7CiAgICAgIEhlaWdodCAgICAgIDog
aW4gR2ludCk7CgogICBwcm9jZWR1cmUgRHJhd19PdmFsCiAgICAgKFN0eWxlICAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBXaW5kb3cgICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsK
ICAgICAgU3RhdGVfVHlwZSAgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgU2hhZG93
X1R5cGUgOiBpbiBFbnVtcy5HdGtfU2hhZG93X1R5cGU7CiAgICAgIFgsIFkgICAgICAgIDogaW4g
R2ludDsKICAgICAgV2lkdGggICAgICAgOiBpbiBHaW50OwogICAgICBIZWlnaHQgICAgICA6IGlu
IEdpbnQpOwoKICAgcHJvY2VkdXJlIERyYXdfU3RyaW5nCiAgICAgKFN0eWxlICAgICAgIDogaW4g
R3RrX1N0eWxlOwogICAgICBXaW5kb3cgICAgICA6IGluIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsK
ICAgICAgU3RhdGVfVHlwZSAgOiBpbiBFbnVtcy5HdGtfU3RhdGVfVHlwZTsKICAgICAgWCwgWSAg
ICAgICAgOiBpbiBHaW50OwogICAgICBTdHIgICAgICAgICA6IGluIFN0cmluZyk7CgogICBwcm9j
ZWR1cmUgUmVmIChPYmplY3QgOiBpbiBHdGtfU3R5bGUpOwogICBwcm9jZWR1cmUgVW5yZWYgKE9i
amVjdCA6IGluIEd0a19TdHlsZSk7Cgpwcml2YXRlCiAgIHByYWdtYSBJbXBvcnQgKEMsIEF0dGFj
aCwgImd0a19zdHlsZV9hdHRhY2giKTsKICAgcHJhZ21hIEltcG9ydCAoQywgQ29weSwgImd0a19z
dHlsZV9jb3B5Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIERldGFjaCwgImd0a19zdHlsZV9kZXRh
Y2giKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUmVmLCAiZ3RrX3N0eWxlX3JlZiIpOwogICBwcmFn
bWEgSW1wb3J0IChDLCBVbnJlZiwgImd0a19zdHlsZV91bnJlZiIpOwogICBwcmFnbWEgSW1wb3J0
IChDLCBEcmF3X0RpYW1vbmQsICJndGtfZHJhd19kaWFtb25kIik7CiAgIHByYWdtYSBJbXBvcnQg
KEMsIERyYXdfSGxpbmUsICJndGtfZHJhd19obGluZSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBE
cmF3X092YWwsICJndGtfZHJhd19vdmFsIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIERyYXdfU2hh
ZG93LCAiZ3RrX2RyYXdfc2hhZG93Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIERyYXdfVmxpbmUs
ICJndGtfZHJhd192bGluZSIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfRm9udCwgImFkYV9z
dHlsZV9zZXRfZm9udCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfRm9udCwgImFkYV9zdHls
ZV9nZXRfZm9udCIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBTZXRfQmxhY2tfR0MsICJhZGFfc3R5
bGVfc2V0X2JsYWNrX2djIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIEdldF9CbGFja19HQywgImFk
YV9zdHlsZV9nZXRfYmxhY2tfZ2MiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgU2V0X1doaXRlX0dD
LCAiYWRhX3N0eWxlX3NldF93aGl0ZV9nYyIpOwogICBwcmFnbWEgSW1wb3J0IChDLCBHZXRfV2hp
dGVfR0MsICJhZGFfc3R5bGVfZ2V0X3doaXRlX2djIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFhf
VGhpY2tuZXNzLCAiYWRhX3N0eWxlX2dldF94X3RoaWNrbmVzcyIpOwogICBwcmFnbWEgSW1wb3J0
IChDLCBZX1RoaWNrbmVzcywgImFkYV9zdHlsZV9nZXRfeV90aGlja25lc3MiKTsKZW5kIEd0ay5T
dHlsZTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUgYmluZGluZyBm
b3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tlciBhbmQgQXJu
YXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAgICAgLS0KLS0g
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAg
ICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K
LS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0gR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0KLS0gRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICAg
ICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2Vw
dGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAgLS0KLS0gdGhp
cyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNl
IGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBj
YXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0aW9uIGRvZXMg
bm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlICAgLS0KLS0g
ZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNl
bnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICA8ZGVzY3JpcHRpb24+Ci0tCi0tICBBIGdy
YXBoaWMgY29udGV4dCBpcyBhIHN0cnVjdHVyZSB0aGF0IGRlc2NyaWJlcyBhbGwgdGhlIGF0dHJp
YnV0ZXMKLS0gIHVzZWQgYnkgdGhlIGRyYXdpbmcgZnVuY3Rpb25zIGluIEdkay4KLS0gIFRoZSBj
b2xvcnMsIGxpbmUgc3R5bGVzLCBGaWxsIHN0eWxlcyBhbmQgc28gb24gYXJlIGRlZmluZWQgdGhy
b3VnaAotLSAgdGhpcyBzdHJ1Y3R1cmUuCi0tCi0tICBPbiBYMTEgc3lzdGVtcywgdGhpcyBzdHJ1
Y3R1cmUgaXMgc3RvcmVkIGRpcmVjdGx5IG9uIHRoZSBYU2VydmVyLAotLSAgd2hpY2ggc3BlZWRz
IHVwIHRoZSB0cmFuc2ZlciBvZiB0aGUgZHJhd2luZyBhdHRyaWJ1dGVzIGEgbG90LiBJbnN0ZWFk
Ci0tICBvZiB0cmFuc2ZlcnJpbmcgYWxsIG9mIHRoZW0gZXZlcnkgdGltZSB5b3UgY2FsbCBvbmUg
b2YgdGhlIGRyYXdpbmcKLS0gIGZ1bmN0aW9ucywgeW91IHNpbXBseSBzcGVjaWZ5IHdoaWNoIEdD
IHlvdSB3YW50IHRvIHVzZS4KLS0KLS0gIFRodXMsIGl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0
ZSBhcyBtYW55IEdDcyBhcyB5b3UgbmVlZCwgaW5zdGVhZAotLSAgb2YgY3JlYXRpbmcgYSBzaW5n
bGUgb25lIHRoYXQgaXMgbW9kaWZpZWQgZXZlcnkgdGltZSB5b3UgbmVlZCB0bwotLSAgbW9kaWZ5
IG9uZSBvZiB0aGUgYXR0cmlidXRlcy4KLS0KLS0gIE9uIFVuaXggbWFjaGluZXMsIHlvdSBzaG91
bGQgaGF2ZSBhIGxvb2sgYXQgdGhlIGV4dGVybmFsIHV0aWxpdHkgJ3hnYycKLS0gIHdoaWNoIGRl
bW9uc3RyYXRlcyBhbGwgdGhlIGJhc2ljIHNldHRpbmdzIG9mIHRoZSBncmFwaGljIGNvbnRleHRz
LgotLQotLSAgPC9kZXNjcmlwdGlvbj4KLS0gIDxjX3ZlcnNpb24+MS4yLjY8L2NfdmVyc2lvbj4K
CndpdGggR2xpYjsgdXNlIEdsaWI7CndpdGggR2RrLkNvbG9yOwp3aXRoIEdkay5Gb250Owp3aXRo
IEdkay5SZWN0YW5nbGU7CndpdGggR2RrLlJlZ2lvbjsKd2l0aCBHZGsuVHlwZXM7CndpdGggR2Rr
LldpbmRvdzsKCnBhY2thZ2UgR2RrLkdDIGlzCgogICBzdWJ0eXBlIEdka19HQyBpcyBHZGsuR2Rr
X0dDOwogICAtLSAgQSBncmFwaGljIGNvbnRleHQgdGhhdCBjb250YWluIGFsbCB0aGUgaW5mb3Jt
YXRpb24gdG8gZHJhdyBncmFwaGljcwogICAtLSAgb24gdGhlIHNjcmVlbi4KICAgLS0gIENyZWF0
aW5nIHRoZXNlIEdDIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gcGFzc2luZyBhIGxvdCBvZiBwYXJh
bWV0ZXJzCiAgIC0tICB0byBlYWNoIG9mIHRoZSBkcmF3aW5nIGZ1bmN0aW9ucywgc2luY2UgdGhl
c2UgR0MgYXJlIHN0b3JlZCBvbiB0aGUKICAgLS0gIHNlcnZlciBzaWRlIGFuZCBkbyBub3QgbmVl
ZCB0byBiZSBwYXNzIHRocm91Z2ggdGhlIG5ldHdvcmsuCgogICB0eXBlIEdka19HQ19WYWx1ZXMg
aXMgbmV3IEdkay5DX1Byb3h5OwogICAtLSAgQSBzdHJ1Y3R1cmUgdXNlZCBvbiB0aGUgY2xpZW50
IHNpZGUgdG8gc3RvcmUgdGhlIHNhbWUgaW5mb3JtYXRpb24KICAgLS0gIGFzIHRoZSBHQy4gQ3Jl
YXRpbmcgYSBHQyBmcm9tIHRoaXMgc3RydWN0dXJlIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4KICAg
LS0gIGNhbGxpbmcgYSBsb3Qgb2YgZnVuY3Rpb25zIHRvIG1vZGlmeSB0aGUgR0MgZGlyZWN0bHks
IHNpbmNlIHRoZXJlIGlzCiAgIC0tICBhIHNpbmdsZSBjYWxsIHRvIHRoZSBzZXJ2ZXIuCgogICBO
dWxsX0dDIDogY29uc3RhbnQgR2RrX0dDOwogICBOdWxsX0dDX1ZhbHVlcyA6IGNvbnN0YW50IEdk
a19HQ19WYWx1ZXM7CgogICAtLS0tLS0tLS0tLS0KICAgLS0gR2RrX0dDIC0tCiAgIC0tLS0tLS0t
LS0tLQoKICAgcHJvY2VkdXJlIEdka19OZXcgKEdDICAgICA6ICAgIG91dCBHZGtfR0M7CiAgICAg
ICAgICAgICAgICAgICAgICBXaW5kb3cgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93KTsK
ICAgLS0gIENyZWF0ZSBhIG5ldyBncmFwaGljIGNvbnRleHQuCiAgIC0tICBUaGUgd2luZG93IG11
c3QgaGF2ZSBiZWVuIHJlYWxpemVkIGZpcnN0IChzbyB0aGF0IGl0IGlzIGFzc29jaWF0ZWQKICAg
LS0gIHdpdGggc29tZSByZXNvdXJjZXMgb24gdGhlIFhzZXJ2ZXIpLgogICAtLSAgVGhlIEdDIGNh
biB0aGVuIGJlIHVzZWQgZm9yIGFueSB3aW5kb3cgdGhhdCBoYXMgdGhlIHNhbWUgcm9vdCB3aW5k
b3csCiAgIC0tICBhbmQgc2FtZSBjb2xvciBkZXB0aCBhcyBXaW5kb3cuCiAgIC0tICBTZWUgdGhl
IG1hbnVhbCBwYWdlIGZvciBYQ3JlYXRlR0Mgb24gVW5peCBzeXN0ZW1zIGZvciBtb3JlIGluZm9y
bWF0aW9uLgoKICAgcHJvY2VkdXJlIEdka19OZXcgKEdDICAgICAgICAgIDogICAgb3V0IEdka19H
QzsKICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyAgICAgIDogaW4gICAgIEdkay5XaW5kb3cu
R2RrX1dpbmRvdzsKICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyAgICAgIDogaW4gICAgIEdk
a19HQ19WYWx1ZXM7CiAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXNfTWFzayA6IGluICAgICBU
eXBlcy5HZGtfR0NfVmFsdWVzX01hc2spOwogICAtLSAgQ3JlYXRlIGEgbmV3IGdyYXBoaWMgY29u
dGV4dC4KICAgLS0gIEl0IGlzIGRpcmVjdGx5IGNyZWF0ZWQgd2l0aCB0aGUgdmFsdWVzIHNldCBp
biBWYWx1ZXMsIGFuZCB3aG9zZQogICAtLSAgYXNzb2NpYXRlZCBmaWVsZCBoYXMgYmVlbiBzZXQg
aW4gVmFsdWVzX01hc2suCiAgIC0tICBUaGlzIGlzIGZhc3RlciB0aGFuIGNhbGxpbmcgdGhlIHNp
bXBsZSBHZGtfTmV3IGZ1bmN0aW9uIGFuZCBlYWNoIG9mCiAgIC0tICBvdGhlciBmdW5jdGlvbnMg
aW4gdGhpcyBwYWNrYWdlLCBzaW5jZSBlYWNoIG9mIHRoZW0gcmVxdWlyZXMgYSBjYWxsCiAgIC0t
ICB0byB0aGUgc2VydmVyLgoKICAgcHJvY2VkdXJlIERlc3Ryb3kgKEdDIDogaW4gR2RrX0dDKTsK
ICAgLS0gIEZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgb24gdGhlIHNlcnZlciBmb3IgdGhlIGdy
YXBoaWMgY29udGV4dC4KICAgLS0gIEdyYXBoaWMgY29udGV4dHMgYXJlIG5ldmVyIGZyZWVkIGF1
dG9tYXRpY2FsbHkgYnkgR3RrQWRhLCB0aGlzIGlzCiAgIC0tICB0aGUgdXNlciByZXNwb25zaWJp
bGl0eSB0byBkbyBzby4KCiAgIHByb2NlZHVyZSBSZWYgKEdDIDogaW4gR2RrX0dDKTsKICAgLS0g
IEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB0aGUgZ3JhcGhpYyBjb250ZXh0
LgogICAtLSAgWW91IHNob3VsZCB1c3VhbGx5IG5vdCBoYXZlIHRvIHVzZSBpdC4KCiAgIHByb2Nl
ZHVyZSBVbnJlZiAoR0MgOiBpbiBHZGtfR0MpOwogICAtLSAgRGVjcmVtZW50IHRoZSByZWZlcmVu
Y2UgY291bnRpbmcgZm9yIHRoZSBncmFwaGljIGNvbnRleHQuCiAgIC0tICBXaGVuIHRoaXMgcmVh
Y2hlcyAwLCB0aGUgZ3JhcGhpYyBjb250ZXh0IGlzIGRlc3Ryb3llZC4KCiAgIHByb2NlZHVyZSBH
ZXRfVmFsdWVzIChHQyAgICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzKTsKICAgLS0gIEdldCB0aGUgdmFsdWVzIHNldCBpbiB0
aGUgR0MuCiAgIC0tICBUaGlzIGNvcGllcyB0aGUgdmFsdWVzIGZyb20gdGhlIHNlcnZlciB0byBj
bGllbnQsIGFsbG93aW5nIGZhc3RlcgogICAtLSAgbW9kaWZpY2F0aW9ucy4gVmFsdWVzIGNhbiB0
aGVuIGJlIGNvcGllZCBiYWNrIHRvIHRoZSBzZXJ2ZXIgYnkKICAgLS0gIGNyZWF0aW5nIGEgbmV3
IGdyYXBoaWMgY29udGV4dCB3aXRoIHRoZSBmdW5jdGlvbiBHZGtfTmV3IGFib3ZlLgogICAtLSAg
VmFsdWVzIHNob3VsZCBoYXZlIGJlZW4gYWxsb2NhdGVkIGZpcnN0IHdpdGggYSBjYWxsIHRvIEdk
a19OZXcuCgogICBwcm9jZWR1cmUgU2V0X0ZvcmVncm91bmQgKEdDICAgIDogaW4gR2RrX0dDOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIDogaW4gR2RrLkNvbG9yLkdka19Db2xv
cik7CiAgIC0tICBTZXQgdGhlIGZvcmVncm91bmQgY29sb3IgZm9yIHRoZSBncmFwaGljIGNvbnRl
eHQuCiAgIC0tICBUaGlzIGNvbG9yIGlzIHRoZSBvbmUgdGhhdCBpcyB1c2VkIGJ5IG1vc3QgZHJh
d2luZyBmdW5jdGlvbnMuCgogICBwcm9jZWR1cmUgU2V0X0JhY2tncm91bmQgKEdDICAgICA6IGlu
IEdka19HQzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciAgOiBpbiBHZGsuQ29s
b3IuR2RrX0NvbG9yKTsKICAgLS0gIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGdy
YXBoaWMgY29udGV4dC4KCiAgIHByb2NlZHVyZSBTZXRfRm9udCAoR0MgICA6IGluIEdka19HQzsK
ICAgICAgICAgICAgICAgICAgICAgICBGb250IDogaW4gR2RrLkZvbnQuR2RrX0ZvbnQpOwogICAt
LSAgU2V0IHRoZSBmb250IHVzZWQgYnkgdGhlIGdyYXBoaWMgY29udGV4dC4KICAgLS0gIFRoaXMg
Zm9udCBpcyB1c2VkIGJ5IHRoZSBmdW5jdGlvbiBHZGsuRHJhd2FibGUuRHJhd19UZXh0LgoKICAg
cHJvY2VkdXJlIFNldF9GdW5jdGlvbiAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRnVuYyA6IGluIFR5cGVzLkdka19GdW5jdGlvbik7CiAgIC0tICBTZXQgdGhl
IGZ1bmN0aW9uIGluIHRoZSBncmFwaGljIGNvbnRleHQuCiAgIC0tICBUaGlzIGZ1bmN0aW9uIHNw
ZWNpZmllcyBob3cgdGhlIHBvaW50cyBhcmUgcHV0IG9uIHRoZSBzY3JlZW4sIGllCiAgIC0tICBp
ZiBHdGtBZGEgaG93IEd0a0FkYSBzaG91bGQgbWl4IHRoZSBwb2ludCBhbHJlYWR5IG9uIHRoZSBz
Y3JlZW4KICAgLS0gIGFuZCB0aGUgbmV3IHBvaW50IGJlaW5nIHB1dC4KICAgLS0gIE5vdGUgdGhh
dCBzZXR0aW5nIHRoZSBmdW5jdGlvbiB0byBHZGtfWG9yIGlzIG5vdCB0aGUgcmlnaHQgd2F5CiAg
IC0tICB0byBkbyBhbmltYXRpb24uIFlvdSBzaG91bGQgaW5zdGVhZCBzYXZlIHRoZSBiYWNrZ3Jv
dW5kIHBpeG1hcCwKICAgLS0gIHB1dCB0aGUgaW1hZ2UsIGFuZCB0aGVuIHJlc3RvcmUgdGhlIGJh
Y2tncm91bmQuCiAgIC0tCiAgIC0tICBJbiBnZW5lcmFsLCB0aGVyZSBhcmUgdGhyZWUgYmFzaWMg
c3RlcHMgdG8gZHJhd2luZzogcmVhZGluZyB0aGUgc291cmNlCiAgIC0tICBwaXhlbHMsIHJlYWRp
bmcgdGhlIGRlc3RpbmF0aW9uIHBpeGVscywgYW5kIHdyaXRpbmcgdGhlIGRlc3RpbmF0aW9uCiAg
IC0tICBwaXhlbHMuICBTb21lIGZ1bmN0aW9ucyBvbmx5IHBlcmZvcm0gdGhlIHRoaXJkIHN0ZXAg
KFNldCBhbmQgQ2xlYXIpLAogICAtLSAgc29tZSBkbyBub3QgbmVlZCB0aGUgbWlkZGxlIHN0ZXAg
KENvcHkpLCB3aGVyZWFzIG1vc3QgcmVxdWlyZSB0aGUgdGhyZWUKICAgLS0gIHN0ZXBzLCBhbmQg
dGh1cyBjYW4gYmUgbXVjaCBzbG93ZXIuCgogICBwcm9jZWR1cmUgU2V0X0ZpbGwgKEdDICAgOiBp
biBHZGtfR0M7CiAgICAgICAgICAgICAgICAgICAgICAgRmlsbCA6IGluIFR5cGVzLkdka19GaWxs
KTsKICAgLS0gIFNldCB0aGUgcGF0dGVybiB1c2VkIGZvciBmaWxsaW5nIHRoZSBwb2x5Z29ucy4K
CiAgIHByb2NlZHVyZSBTZXRfVGlsZSAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAgICAg
ICAgICAgICBUaWxlIDogaW4gR2RrLkdka19QaXhtYXApOwoKICAgcHJvY2VkdXJlIFNldF9TdGlw
cGxlIChHQyAgICAgIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgIFN0aXBw
bGUgOiBpbiBHZGsuR2RrX1BpeG1hcCk7CgogICBwcm9jZWR1cmUgU2V0X0NsaXBfTWFzayAoR0Mg
ICAgOiBpbiBHZGsuR0MuR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFzayAg
OiBpbiBHZGsuR2RrX0JpdG1hcCk7CiAgIC0tICBJZiBNYXNrIGlzIHNldCB0byBOdWxsX0JpdG1h
cCwgdGhlbiBubyBjbGlwX21hc2sgaXMgdXNlZCBmb3IgZHJhd2luZy4KICAgLS0gIFBvaW50cyB3
aWxsIGJlIGRyYXduIHRocm91Z2ggdGhpcyBHQyBvbmx5IHdoZXJlIHRoZSBiaXRzIGFyZSBzZXQg
dG8gMQogICAtLSAgaW4gdGhlIG1hc2suIFNlZSBhbHNvIHRoZSBmdW5jdGlvbiBTZXRfQ2xpcF9P
cmlnaW4gZm9yCiAgIC0tICBob3cgdG8gbW92ZSB0aGUgbWFzayBpbnNpZGUgdGhlIEdDLgoKICAg
cHJvY2VkdXJlIFNldF9Uc19PcmlnaW4gKEdDICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBYLCBZIDogaW4gR2ludCk7CiAgIC0tICBTZXQgdGhlIFRpbGUgYW5kIFN0
aXBwbGUgb3JpZ2luIGluIHRoZSBncmFwaGljIGNvbnRleHQuCgogICBwcm9jZWR1cmUgU2V0X0Ns
aXBfT3JpZ2luIChHQyAgIDogaW4gR2RrX0dDOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYLCBZIDogaW4gR2ludCk7CiAgIC0tICBTZXQgdGhlIG9yaWdpbiBvZiB0aGUgY2xpcCBtYXNr
LgogICAtLSAgU2VlIHRoZSBmdW5jdGlvbnMgU2V0X0NsaXBfUmVjdGFuZ2xlLCBTZXRfQ2xpcF9S
ZWdpb24gYW5kCiAgIC0tICBHZGsuQml0bWFwLlNldF9DbGlwX01hc2sgZm9yIG1vcmUgZXhwbGFu
YXRpb24uCgogICBwcm9jZWR1cmUgU2V0X0NsaXBfUmVjdGFuZ2xlCiAgICAgKEdDICAgICAgICA6
IGluIEdka19HQzsKICAgICAgUmVjdGFuZ2xlIDogaW4gR2RrLlJlY3RhbmdsZS5HZGtfUmVjdGFu
Z2xlKTsKICAgLS0gIFNldCB0aGUgY2xpcCByZWN0YW5nbGUuCiAgIC0tICBPbmx5IHRoZSBwb2lu
dHMgdGhhdCBhcmUgZHJhd24gaW5zaWRlIHRoaXMgcmVjdGFuZ2xlIHdpbGwgYmUgZGlzcGxheWVk
CiAgIC0tICBvbiB0aGUgc2NyZWVuLiBOb3RlIHRoYXQgeW91IG1pZ2h0IGhhdmUgdG8gbW9kaWZ5
IHRoZSBDbGlwIG9yaWdpbiBmaXJzdAogICAtLSAgd2l0aCBTZXRfQ2xpcF9PcmlnaW4uCiAgIC0t
ICBTZWUgU2V0X0NsaXBfTWFzayB0byBkZWxldGUgdGhlIGN1cnJlbnQgY2xpcCBtYXNrLgoKICAg
cHJvY2VkdXJlIFNldF9DbGlwX1JlZ2lvbiAoR0MgICAgIDogaW4gR2RrX0dDOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZWdpb24gOiBpbiBHZGsuUmVnaW9uLkdka19SZWdpb24pOwog
ICAtLSAgRGVmaW5lIGEgY2xpcCByZWdpb24gb24gdGhlIHNjcmVlbi4KICAgLS0gIFRoaXMgaXMg
anVzdCBsaWtlIFNldF9DbGlwX1JlY3RhbmdsZSwgZXhjZXB0IHRoYXQgYSByZWdpb24gaXMgYSBt
b3JlCiAgIC0tICBjb21wbGV4IHJlZ2lvbiwgdGhhdCBjYW4gYmUgdGhlIGludGVyc2VjdGlvbiBv
ciB1bmlvbiBvZiBtdWx0aXBsZQogICAtLSAgcmVjdGFuZ2xlcy4gTm90ZSB0aGF0IHRoZSBDbGlw
X09yaWdpbiBjYW4gaGF2ZSBhbiBpbmZsdWVuY2Ugb24gdGhpcwogICAtLSAgZnVuY3Rpb24uCgog
ICBwcm9jZWR1cmUgU2V0X1N1YndpbmRvdyAoR0MgICA6IGluIEdka19HQzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1vZGUgOiBpbiBUeXBlcy5HZGtfU3Vid2luZG93X01vZGUpOwogICAt
LSAgU2V0IHRoZSBzdWJ3aW5kb3cgbW9kZSBmb3IgdGhlIGdyYXBoaWMgY29udGV4dC4KICAgLS0g
IFRoaXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRyYXdpbmcgcm91dGluZXMgc2hvdWxkIGJlIGNs
aXBwZWQgdG8KICAgLS0gIHRoZSBzcGVjaWZpYyB3aW5kb3cgdGhleSBhcmUgZHJhd24gaW50bywg
b3IgaWYgdGhleSBzaG91bGQgZXh0ZW5kCiAgIC0tICB0byBzdWJ3aW5kb3dzIGFzIHdlbGwuCgog
ICBwcm9jZWR1cmUgU2V0X0V4cG9zdXJlcyAoR0MgICAgICAgIDogaW4gR2RrX0dDOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRXhwb3N1cmVzIDogaW4gQm9vbGVhbik7CiAgIC0tICBFeHBv
c3VyZXMgaW5kaWNhdGVzIHdoZXRoZXIgeW91IHdhbnQgImV4cG9zZSIgYW5kICJub2V4cG9zZSIg
ZXZlbnRzIHRvCiAgIC0tICBiZSByZXBvcnRlZCB3aGVuIGNhbGxpbmcgQ29weV9BcmVhIGFuZCBD
b3B5X1BsYW5lIHdpdGggdGhpcyBHQy4KICAgLS0gIFlvdSBzaG91bGQgZGlzYWJsZSB0aGlzIGlm
IHlvdSBkb24ndCBuZWVkIHRoZSBldmVudCBhbmQgd2FudCB0byBvcHRpbWl6ZQogICAtLSAgeW91
ciBhcHBsaWNhdGlvbi4KICAgLS0gIElmIEV4cG9zdXJlcyBpcyBUcnVlLCB0aGVuIGFueSBjYWxs
IHRvIENvcHlfQXJlYSBvciBEcmF3X1BpeG1hcCB3aWxsCiAgIC0tICBnZW5lcmF0ZSBhbiBleHBv
c2UgZXZlbnQuIE90aGVyd2lzZSwgdGhlc2Ugd2lsbCBnZW5lcmF0ZSBhIG5vX2V4cG9zZQogICAt
LSAgZXZlbnQuCgogICBwcm9jZWR1cmUgU2V0X0xpbmVfQXR0cmlidXRlcyAoR0MgICAgICAgICA6
IGluIEdka19HQzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVfV2lkdGgg
OiBpbiBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZV9TdHlsZSA6
IGluIFR5cGVzLkdka19MaW5lX1N0eWxlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ2FwX1N0eWxlICA6IGluIFR5cGVzLkdka19DYXBfU3R5bGU7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBKb2luX1N0eWxlIDogaW4gVHlwZXMuR2RrX0pvaW5fU3R5bGUpOwog
ICAtLSAgU2V0IHRoZSBsaW5lIGF0dHJpYnV0ZXMgZm9yIHRoaXMgR0MuCiAgIC0tICBMaW5lX1dp
ZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgbGluZS4gSWYgaXRzIHZhbHVlIGlzIDAsIHRoZSBsaW5l
IGlzIGFzCiAgIC0tICB0aGluIGFzIHBvc3NpYmxlLCBwb3NzaWJseSBldmVuIG1vcmUgc28gdGhh
biBpZiB0aGUgd2lkdGggaXMgMS4gSXQgaXMKICAgLS0gIGFsc28gZmFzdGVyIHRvIGRyYXcgYSBs
aW5lIHdpdGggd2lkdGggMCB0aGFuIGFueSBvdGhlciBsaW5lIHdpZHRoLgogICAtLQogICAtLSAg
TGluZV9TdHlsZSBzcGVjaWZpZXMgd2hldGhlciB0aGUgbGluZSBzaG91bGQgYmUgc29saWQgb3Ig
ZGFzaGVkLgogICAtLSAgV2l0aCBMaW5lX09uX09mZl9EYXNoLCB0aGUgY29sb3JzIGFyZSBhbHRl
cm5hdGl2ZWx5IHRoZSBmb3JlZ3JvdW5kCiAgIC0tICBjb2xvciwgYW5kIGJsYW5rLiBXaXRoIExp
bmVfRG91YmxlX0Rhc2gsIHRoZSBjb2xvcnMgYXJlCiAgIC0tICBhbHRlcm5hdGl2ZWx5IHRoZSBm
b3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4KICAgLS0KICAgLS0gIENhcF9TdHlsZSBz
cGVjaWZpZXMgaG93IHRoZSBsaW5lIHNob3VsZCBlbmQsIGVpdGhlciBmbGF0IG9yIHJvdW5kZWQu
CiAgIC0tCiAgIC0tICBKb2luX1N0eWxlIHNwZWNpZmllcyBob3cgdHdvIGNvbnNlY3V0aXZlIGxp
bmVzIGRyYXduIGJ5IERyYXdfTGluZXMgYXJlCiAgIC0tICBjb25uZWN0ZWQuCgogICBwcm9jZWR1
cmUgU2V0X0Rhc2hlcyAoR2MgICAgICAgICAgOiBpbiBHZGtfR0M7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBEYXNoX09mZnNldCA6IGluIEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBE
YXNoX0xpc3QgICA6IGluIEd1Y2hhcl9BcnJheSk7CiAgIC0tICBTcGVjaWZ5IHRoZSBkYXNoIHBh
dHRlcm4gd2hlbiB0aGUgbGluZSdzIHN0eWxlIGlzIGFueXRoaW5nIGJ1dCBzb2xpZC4KICAgLS0g
IFRoZSB2YWx1ZXMgaW4gdGhlIGFycmF5IGFsdGVybmF0aXZlbHkgZ2l2ZSB0aGUgbGVuZ3RoIChp
biBwaXhlbHMpIG9mCiAgIC0tICB0aGUgcGxhaW4gZGFzaCwgdGhlIGVtcHR5IGRhc2gsIHRoZSBz
ZWNvbmQgcGxhaW4gZGFzaCwgLi4uIE5vbmUgb2YKICAgLS0gIHRoZXNlIHZhbHVlcyBjYW4gYmUg
MC4gSWYgdGhlcmUgaXMgYW4gb2RkIG51bWJlciBvZiBpdGVtcyBpbiBEYXNoX0xpc3QsCiAgIC0t
ICB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gZ2l2aW5nIHRoZSBhcnJheSBjb25jYXRlbmF0ZWQgd2l0
aCBpdHNlbGYuCiAgIC0tICBEYXNoX09mZnNldCBzcGVjaWZpZXMgdGhlIHBoYXNlIG9mIHRoZSBw
YXR0ZXJuIHRvIHN0YXJ0IHdpdGguCgogICBwcm9jZWR1cmUgQ29weSAoRHN0X0dDIDogaW4gR2Rr
X0dDOwogICAgICAgICAgICAgICAgICAgU3JjX0dDIDogaW4gR2RrX0dDKTsKICAgLS0gIENvcHkg
YSBTcmNfR0MgdG8gRHN0X0dDLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZGtf
Q29sb3JfVmFsdWVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdk
a19OZXcgcmV0dXJuIEdka19HQ19WYWx1ZXM7CiAgIC0tICBBbGxvY2F0ZSBhIG5ldyBWYWx1ZXMg
c3RydWN0dXJlIG9uIHRoZSBjbGllbnQuCiAgIC0tICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBh
bGxvY2F0ZXMgYSBDIHN0cnVjdHVyZSwgYW5kIHRodXMgbmVlZHMgdG8KICAgLS0gIGJlIGZyZWVk
IHdpdGggYSBjYWxsIHRvIEZyZWUgYmVsb3cuCgogICBwcm9jZWR1cmUgRnJlZSAoVmFsdWVzIDog
aW4gR2RrX0dDX1ZhbHVlcyk7CiAgIC0tICBGcmVlIHRoZSBDIHN0cnVjdHVyZSBhc3NvY2lhdGVk
IHdpdGggVmFsdWVzLgoKICAgcHJvY2VkdXJlIFNldF9Gb3JlZ3JvdW5kIChWYWx1ZXMgOiBpbiBH
ZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yICA6IGluIEdk
ay5Db2xvci5HZGtfQ29sb3IpOwogICAtLSAgU2FtZSBhcyBTZXRfRm9yZWdyb3VuZCwgYnV0IG9u
IHRoZSBjbGllbnQgc2lkZQoKICAgcHJvY2VkdXJlIFNldF9CYWNrZ3JvdW5kIChWYWx1ZXMgOiBp
biBHZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yICA6IGlu
IEdkay5Db2xvci5HZGtfQ29sb3IpOwogICAtLSAgU2FtZSBhcyBTZXRfQmFja2dyb3VuZCwgYnV0
IG9uIHRoZSBjbGllbnQgc2lkZQoKICAgcHJvY2VkdXJlIFNldF9Gb250IChWYWx1ZXMgOiBpbiBH
ZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgIEZvbnQgICA6IGluIEdkay5Gb250
Lkdka19Gb250KTsKICAgLS0gIFNhbWUgYXMgU2V0X0ZvbnQsIGJ1dCBvbiB0aGUgY2xpZW50IHNp
ZGUKCiAgIHByb2NlZHVyZSBTZXRfRnVuY3Rpb24gKFZhbHVlcyA6IGluIEdka19HQ19WYWx1ZXM7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmMgICA6IGluIFR5cGVzLkdka19GdW5jdGlv
bik7CiAgIC0tICBTYW1lIGFzIFNldF9GdW5jdGlvbiwgYnV0IG9uIHRoZSBjbGllbnQgc2lkZQoK
ICAgcHJvY2VkdXJlIFNldF9GaWxsIChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAg
ICAgICAgICAgICAgICAgIEZpbGwgICA6IGluIFR5cGVzLkdka19GaWxsKTsKICAgLS0gIFNhbWUg
YXMgU2V0X0ZpbGwsIGJ1dCBvbiB0aGUgY2xpZW50IHNpZGUKCiAgIHByb2NlZHVyZSBTZXRfVHNf
T3JpZ2luIChWYWx1ZXMgOiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWCwgWSAgIDogaW4gR2ludCk7CiAgIC0tICBTYW1lIGFzIFNldF9Uc19PcmlnaW4sIGJ1
dCBvbiB0aGUgY2xpZW50IHNpZGUKCiAgIHByb2NlZHVyZSBTZXRfQ2xpcF9PcmlnaW4gKFZhbHVl
cyA6IGluIEdka19HQ19WYWx1ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgsIFkg
ICA6IGluIEdpbnQpOwogICAtLSAgU2FtZSBhcyBTZXRfQ2xpcF9PcmlnaW4sIGJ1dCBvbiB0aGUg
Y2xpZW50IHNpZGUKCiAgIHByb2NlZHVyZSBTZXRfU3Vid2luZG93IChWYWx1ZXMgOiBpbiBHZGtf
R0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kZSAgIDogaW4gVHlwZXMu
R2RrX1N1YndpbmRvd19Nb2RlKTsKICAgLS0gIFNhbWUgYXMgU2V0X1N1YndpbmRvdywgYnV0IG9u
IHRoZSBjbGllbnQgc2lkZQoKICAgcHJvY2VkdXJlIFNldF9FeHBvc3VyZXMgKFZhbHVlcyAgICA6
IGluIEdka19HQ19WYWx1ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvc3VyZXMg
OiBpbiBCb29sZWFuKTsKICAgLS0gIFNhbWUgYXMgU2V0X0V4cG9zdXJlcywgYnV0IG9uIHRoZSBj
bGllbnQgc2lkZQoKICAgcHJvY2VkdXJlIFNldF9MaW5lX0F0dHJpYnV0ZXMgKFZhbHVlcyAgICAg
OiBpbiBHZGtfR0NfVmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlu
ZV9XaWR0aCA6IGluIEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5l
X1N0eWxlIDogaW4gVHlwZXMuR2RrX0xpbmVfU3R5bGU7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDYXBfU3R5bGUgIDogaW4gVHlwZXMuR2RrX0NhcF9TdHlsZTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEpvaW5fU3R5bGUgOiBpbiBUeXBlcy5HZGtfSm9pbl9T
dHlsZSk7CiAgIC0tICBTYW1lIGFzIFNldF9MaW5lX0F0dHJpYnV0ZXMsIGJ1dCBvbiB0aGUgY2xp
ZW50IHNpZGUKCnByaXZhdGUKICAgTnVsbF9HQyA6IGNvbnN0YW50IEdka19HQyA6PSBudWxsOwog
ICBOdWxsX0dDX1ZhbHVlcyA6IGNvbnN0YW50IEdka19HQ19WYWx1ZXMgOj0gbnVsbDsKCiAgIHBy
YWdtYSBJbXBvcnQgKEMsIENvcHksICJnZGtfZ2NfY29weSIpOwogICBwcmFnbWEgSW1wb3J0IChD
LCBEZXN0cm95LCAiZ2RrX2djX2Rlc3Ryb3kiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgRnJlZSwg
ImFkYV9nZGtfZ2NfZnJlZV92YWx1ZXMiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgR2V0X1ZhbHVl
cywgImdka19nY19nZXRfdmFsdWVzIik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFJlZiwgImdka19n
Y19yZWYiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgVW5yZWYsICJnZGtfZ2NfdW5yZWYiKTsKICAg
cHJhZ21hIEltcG9ydCAoQywgU2V0X1N0aXBwbGUsICJnZGtfZ2Nfc2V0X3N0aXBwbGUiKTsKICAg
cHJhZ21hIEltcG9ydCAoQywgU2V0X1RpbGUsICJnZGtfZ2Nfc2V0X3RpbGUiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgU2V0X0NsaXBfTWFzaywgImdka19nY19zZXRfY2xpcF9tYXNrIik7CmVuZCBH
ZGsuR0M7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcg
Zm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFy
bmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0t
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAg
ICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAg
ICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNl
cHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRo
aXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVj
ZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYg
Y2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0
aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2Vz
IG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0t
IGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGlj
ZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLSAgVGhpcyBp
cyB0aGUgYmFzZSBwYWNrYWdlIGZvciBoYW5kbGluZyBmb250cy4KLS0gIEd0a0FkYSBrbm93cyBh
Ym91dCBiaXRtYXAgYW5kIHZlY3RvcmlhbCBmb250cywgYW5kIGNhbiBkcmF3IGJvdGguCi0tICBU
aGUgbGlzdCBvZiBmb250cyBhdmFpbGFibGUgdG8geW91IGRlcGVuZHMgb24gd2hhdCBpcyBpbnN0
YWxsZWQgb24KLS0gIHlvdXIgc3lzdGVtLgotLQotLSAgVGhlIG5hbWUgb2YgdGhlIGZvbnQgaXMg
aW5kaWNhdGVkIGluIHRoZSBzdGFuZGFyZCBYMTEgZmFzaGlvbiwgbmFtZWx5OgotLSAgKGV4YW1w
bGUgZXh0cmFjdGVkIGZyb20gdGhlIFhsaWIgbWFudWFsKToKLS0KLS0gIC1hZG9iZS1jb3VyaWVy
LWJvbGQtby1ub3JtYWwtLTEwLTEwMC03NS03NS1tLTYwLWlzbzg4NTktMQotLSAgd2hlcmU6Ci0t
ICAgIC0gYWRvYmUgICAgIDogZm91bmRyeQotLSAgICAtIGNvdXJpZXIgICA6IGZvbnQgZmFtaWx5
Ci0tICAgIC0gYm9sZCAgICAgIDogd2VpZ2h0IChlLmcuIGJvbGQsIG1lZGl1bSkKLS0gICAgLSBv
ICAgICAgICAgOiBzbGFudCAoZS5nLiByb21hbiwgaXRhbGljLCBvYmxpcXVlKQotLSAgICAtIG5v
cm1hbCAgICA6IHNldCB3aWR0aCAoZS5nLiBub3JtYWwsIGNvbmRlbnNlZCwgbmFycm93LCBkb3Vi
bGUpCi0tICAgIC0gMTAgICAgICAgIDogcGl4ZWxzCi0tICAgIC0gMTAwICAgICAgIDogcG9pbnRz
IChpbiB0ZW50aHMgb2YgYSBwb2ludCkKLS0gICAgLSA3NSAgICAgICAgOiBob3Jpem9udGFsIHJl
c29sdXRpb24gaW4gZHBpCi0tICAgIC0gNzUgICAgICAgIDogdmVydGljYWwgcmVzb2x1dGlvbiBp
biBkcGkKLS0gICAgLSBtICAgICAgICAgOiBzcGFjaW5nIChlLmcuIG1vbm9zcGFjZSBvciBwcm9w
b3J0aW9uYWwpCi0tICAgIC0gNjAgICAgICAgIDogYXZlcmFnZSB3aWR0aCAoaW4gdGVudGhzIG9m
IGEgcGl4ZWwpCi0tICAgIC0gaXNvODg1OS0xIDogY2hhcmFjdGVyIHNldAotLQotLSAgQW55IG9m
IHRoZSBmaWVsZHMgY2FuIGhhdmUgYSAnKicgaW5zdGVhZCwgc28gdGhhdCB0aGUgc3lzdGVtIHdp
bGwKLS0gIGF1dG9tYXRpY2FsbHkgZmluZCBhIGZvbnQgdGhhdCBtYXRjaGVzIHRoZSByZXN0IG9m
IHRoZSBzdHJpbmcsIGFuZCB3b24ndAotLSAgY2FyZSBhYm91dCB0aGF0IHNwZWNpZmljIGZpZWxk
LgotLQotLSAgQnV0IHRoZSBlYXNpZXN0IHdheSB0byBzZWxlY3QgYSBmb250IGlzIGJ5IHVzaW5n
IHNvbWUgZXh0ZXJuYWwgcHJvZ3JhbXMsCi0tICBmb3IgaW5zdGFuY2UgeGZvbnRzZWwsIHhsc2Zv
bnQsIGdmb250c2VsLCBvciBldmVuIHRoZSBmb250IHNlbGVjdGlvbgotLSAgZGlhbG9nIGV4YW1w
bGUgaW4gdGhlIHRlc3RndGsvIGRpcmVjdG9yeSBvZiB0aGUgR3RrQWRhIGRpc3RyaWJ1dGlvbi4K
LS0KLS0gIEBweHJlZntQYWNrYWdlX0d0ay5FeHRyYS5Qc0ZvbnR9IGZvciBhIHBhY2thZ2UgdGhh
dCBwcm9jZXNzZXMgcG9zdHNjcmlwdAotLSAgZm9udHMsIHdpdGggdGhlaXIgbW9yZSB1c3VhbCBu
YW1lcywgYW5kIGNhbiBlYXNpbHkgY29udmVydCB0aGVtIHRvIHN0YW5kYXJkCi0tICBHZGtfRm9u
dCBzdHJ1Y3R1cmVzLgotLQotLSAgU29tZSBvZiB0aGUgZnVuY3Rpb25zIGJlbG93IHNob3VsZCBi
ZSB1c2VkIG9ubHkgZm9yIHdpZGUtY2hhcmFjdGVyIHN0cmluZ3MuCi0tICBUaGlzIGlzIG5lZWRl
ZCBmb3IgbGFuZ3VhZ2VzIHdpdGggbW9yZSB0aGFuIDI1NiBjaGFyYWN0ZXJzLgotLQotLSAgV2lk
ZSBjaGFyYWN0ZXIgdmFsdWVzIGJldHdlZW4gMCBhbmQgMTI3IGFyZSBhbHdheXMgaWRlbnRpY2Fs
IGluIG1lYW5pbmcgdG8KLS0gIHRoZSBBU0NJSSBjaGFyYWN0ZXIgY29kZXMuCi0tICBBbiBhbHRl
cm5hdGl2ZSB0byB3aWRlIGNoYXJhY3RlcnMgaXMgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLCB3aGlj
aCBleHRlbmQKLS0gIG5vcm1hbCBjaGFyIHN0cmluZ3MgdG8gY29wZSB3aXRoIGxhcmdlciBjaGFy
YWN0ZXIgc2V0cy4gQXMgdGhlIG5hbWUKLS0gIHN1Z2dlc3RzLCBtdWx0aS1ieXRlIGNoYXJhY3Rl
cnMgdXNlIGEgZGlmZmVyZW50IG51bWJlciBvZiBieXRlcyB0byBzdG9yZQotLSAgZGlmZmVyZW50
IGNoYXJhY3RlciBjb2Rlcy4gRm9yIGV4YW1wbGUgY29kZXMgMC0xMjcgKGkuZS4gdGhlIEFTQ0lJ
IGNvZGVzKQotLSAgb2Z0ZW4gdXNlIGp1c3Qgb25lIGJ5dGUgb2YgbWVtb3J5LCB3aGlsZSBvdGhl
ciBjb2RlcyBtYXkgdXNlIDIsIDMgb3IgZXZlbgotLSAgNCBieXRlcy4gTXVsdGktYnl0ZSBjaGFy
YWN0ZXJzIGhhdmUgdGhlIGFkdmFudGFnZSB0aGF0IHRoZXkgY2FuIG9mdGVuIGJlCi0tICB1c2Vk
IGluIGFuIGFwcGxpY2F0aW9uIHdpdGggbGl0dGxlIGNoYW5nZSwgc2luY2Ugc3RyaW5ncyBhcmUg
c3RpbGwKLS0gIHJlcHJlc2VudGVkIGFzIGFycmF5cyBvZiBjaGFyIHZhbHVlcy4gSG93ZXZlciBt
dWx0aS1ieXRlIHN0cmluZ3MgYXJlIG11Y2gKLS0gIGVhc2llciB0byBtYW5pcHVsYXRlIHNpbmNl
IHRoZSBjaGFyYWN0ZXIgYXJlIGFsbCBvZiB0aGUgc2FtZSBzaXplLgotLQotLSAgT24gVW5peCBz
eXN0ZW1zLCB0aGUgZXh0ZXJuYWwgdXRpbGl0eSAneGZkJyBjYW4gYmUgdXNlZCB0byBkaXNwbGF5
IGFsbAotLSAgdGhlIGNoYXJhY3RlcnMgaW4gYSBmb250LgotLQotLSAgPC9kZXNjcmlwdGlvbj4K
LS0gIDxjX3ZlcnNpb24+MS4yLjc8L2NfdmVyc2lvbj4KLS0gIDxzY3JlZW5zaG90PmZvbnQ8L3Nj
cmVlbnNob3Q+Cgp3aXRoIEdsaWI7IHVzZSBHbGliOwp3aXRoIEdkay5UeXBlczsKCnBhY2thZ2Ug
R2RrLkZvbnQgaXMKCiAgIHR5cGUgR2RrX0ZvbnQgaXMgbmV3IEdkay5DX1Byb3h5OwogICAtLSAg
QSBmb250IHVzZWQgdG8gZHJhdyB0ZXh0LgogICAtLSAgVGhpcyBjYW4gcmVwcmVzZW50IGEgYml0
bWFwIGZvbnQsIGEgc2NhbGFibGUgKHZlY3RvcmlhbCkgZm9udCwgb3IKICAgLS0gIGEgZm9udHNl
dC4gQSBmb250c2V0IGlzIGEgbGlzdCBvZiBjb21tYS1zZXBhcmF0ZWQgZm9udHMsIHRoYXQgcGVy
bWl0cwogICAtLSAgR3RrQWRhIHRvIG9idGFpbiB0aGUgZm9udHMgbmVlZGVkIGZvciBhIHZhcmll
dHkgb2YgbG9jYWxlcyBmcm9tIGEKICAgLS0gIHNpbmdsZSBsb2NhbGUtaW5kZXBlbmRlbnQgYmFz
ZSBmb250IG5hbWUuIFRoZSBzaW5nbGUgYmFzZSBmb250IG5hbWUKICAgLS0gIHNob3VsZCBuYW1l
IGEgZmFtaWx5IG9mIGZvbnRzIHdob3NlIG1lbWJlcnMgYXJlIGVuY29kZWQgaW4gdGhlIHZhcmlv
dXMKICAgLS0gIGNoYXJzZXRzIG5lZWRlZCBieSB0aGUgbG9jYWxlcyBvZiBpbnRlcmVzdC4KICAg
LS0gIFRoZSBhbGdvcml0aG0gdXNlZCB0byBzZWxlY3QgdGhlIGZvbnQgaXMgZGVzY3JpYmVkIGlu
IHRoZSBtYW51YWwgcGFnZQogICAtLSAgZm9yIFhDcmVhdGVGb250U2V0KDNYKS4KCiAgIE51bGxf
Rm9udCA6IGNvbnN0YW50IEdka19Gb250OwoKICAgcHJvY2VkdXJlIExvYWQgKEZvbnQgICAgICA6
ICAgIG91dCBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgIEZvbnRfTmFtZSA6IGluICAgICBT
dHJpbmcpOwogICAtLSAgTG9hZCBhIG5ldyBmb250LCBnaXZlbiBpdHMgbmFtZS4KICAgLS0gIFRo
aXMgaXMgdGhlIGZpcnN0IHN0ZXAgYmVmb3JlIHVzaW5nIGEgZm9udC4KICAgLS0gIFRoZSBmb250
IGlzIGZpcnN0IGxvb2tlZCB1cCBpbiB0aGUgY2FjaGUsIGFuZCBpZiBpdCB3YXMgYWxyZWFkeQog
ICAtLSAgbG9hZGVkLCBpdCBpcyBub3QgcmVsb2FkZWQgYWdhaW4uIFRodXMsIGl0IGRvZXMgbm90
IGhhcm0gdG8gY2FsbAogICAtLSAgdGhpcyBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lcyB3aXRoIHRo
ZSBzYW1lIEZvbnRfTmFtZS4KICAgLS0gIE51bGxfRm9udCBpcyByZXR1cm5lZCBpZiB0aGUgZm9u
dCBjb3VsZCBub3QgYmUgbG9hZGVkLgoKICAgcHJvY2VkdXJlIEZvbnRzZXRfTG9hZCAoRm9udCAg
ICAgICAgIDogICBvdXQgR2RrX0ZvbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRz
ZXRfTmFtZSA6IGluICAgIFN0cmluZyk7CiAgIC0tICBMb2FkIGEgbmV3IGZvbnQgc2V0LgogICAt
LSAgRm9udHNldF9OYW1lIGlzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZm9udHMgdGhhdCB3
aWxsIGJlIGxvYWRlZAogICAtLSAgYXMgcGFydCBvZiB0aGUgZm9udHNldC4KCiAgIHByb2NlZHVy
ZSBSZWYgKEZvbnQgOiBpbiBHZGtfRm9udCk7CiAgIC0tICBJbmNyZW1lbnQgdGhlIHJlZmVyZW5j
ZSBjb3VudGVyIGZvciB0aGUgZm9udC4KICAgLS0gIFlvdSBzaG91bGQgbm90IG1ha2UgYW55IGFz
c3VtcHRpb24gb2YgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIGZvbnRzCiAgIC0tICByZXR1cm5l
ZCBieSBMb2FkIG9yIEZvbnRzZXRfTG9hZCwgc2luY2UgdGhlc2UgY2FuIGJlIGV4dHJhY3RlZCBm
cm9tIGEKICAgLS0gIGNhY2hlLgoKICAgcHJvY2VkdXJlIFVucmVmIChGb250IDogaW4gR2RrX0Zv
bnQpOwogICAtLSAgRGVjcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnRlciBmb3IgdGhlIGZvbnQu
CiAgIC0tICBXaGVuIHRoaXMgY291bnRlciByZWFjaGVzIDAsIHRoZSBmb250IGlzIGRlbGV0ZWQg
ZnJvbSBtZW1vcnkuCgogICBmdW5jdGlvbiBJZCAoRm9udCA6IGluIEdka19Gb250KSByZXR1cm4g
R2ludDsKICAgLS0gIFJldHVybiB0aGUgWCBmb250IGlkIGZvciB0aGUgZm9udC4KICAgLS0gIFRo
aXMgSWQgd2lsbCBvbmx5IGJlIG5lZWRlZCBpZiB5b3Ugd2FudCB0byBjYWxsIGRpcmVjdGx5IFgx
MSBmdW5jdGlvbnMsCiAgIC0tICB5b3Ugd29uJ3QgbmVlZCBpdCB3aXRoIEd0a0FkYS4KCiAgIGZ1
bmN0aW9uIEVxdWFsIChGb250YSwgRm9udGIgOiBpbiBHZGtfRm9udCkgcmV0dXJuIEJvb2xlYW47
CiAgIC0tICBDb21wYXJlIHR3byBmb250cyBvciB0d28gZm9udHNldHMgZm9yIGVxdWFsaXR5Lgog
ICAtLSAgVHdvIGZvbnRzIGFyZSBlcXVhbCBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgZm9udCBJZC4K
ICAgLS0gIFR3byBmb250c2V0cyBhcmUgZXF1YWwgaWYgdGhlIG5hbWUgZ2l2ZW4gdG8gRm9udHNl
dF9Mb2FkIHdhcyB0aGUgc2FtZS4KCiAgIGZ1bmN0aW9uIEdldF9Bc2NlbnQgKEZvbnQgOiBpbiBH
ZGtfRm9udCkgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIG1heGltYWwgYXNjZW50IGZv
ciB0aGUgZm9udC4KICAgLS0gIFRoaXMgaXMgdGhlIGxvZ2ljYWwgZXh0ZW50IGFib3ZlIHRoZSBi
YXNlbGluZSBmb3Igc3BhY2luZyBiZXR3ZWVuIHR3bwogICAtLSAgbGluZXMuCgogICBmdW5jdGlv
biBHZXRfRGVzY2VudCAoRm9udCA6IGluIEdka19Gb250KSByZXR1cm4gR2ludDsKICAgLS0gIFJl
dHVybiB0aGUgbWF4aW1hbCBkZXNjZW50IGZvciB0aGUgZm9udC4KICAgLS0gIFRoaXMgaXMgdGhl
IGxvZ2ljYWwgZXh0ZW50IGJlbG93IHRoZSBiYXNlbGluZSBmb3Igc3BhY2luZyBiZXR3ZWVuIHR3
bwogICAtLSAgbGluZXMuCgogICBmdW5jdGlvbiBTdHJpbmdfV2lkdGggKEZvbnQgOiBpbiBHZGtf
Rm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgICBTdHIgIDogaW4gU3RyaW5nKQogICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIHdpZHRoIGlu
IHBpeGVscyB0aGF0IFN0ciB3aWxsIG9jY3VweSBpZiBkcmF3biB3aXRoIEZvbnQuCiAgIC0tICBU
aGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIG9yaWdpbiBvZiB0
aGUgdGV4dCBhbmQKICAgLS0gIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0aGUgbmV4dCBzdHJpbmcg
c2hvdWxkIGJlIGRyYXduLgoKICAgZnVuY3Rpb24gVGV4dF9XaWR0aCAoRm9udCA6IGluIEdka19G
b250OwogICAgICAgICAgICAgICAgICAgICAgICBUZXh0IDogaW4gU3RyaW5nKQogICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAtLSAgVGhpcyBpcyB0aGUgc2FtZSBmdW5jdGlv
biBhcyBTdHJpbmdfV2lkdGguCiAgIC0tICBJbiBDLCB0aGlzIGZ1bmN0aW9uIGlzIGludGVuZGVk
IHRvIG1lYXN1cmUgb25seSB0aGUgd2lkdGggb2YgYSBwYXJ0CiAgIC0tICBvZiB0aGUgc3RyaW5n
LCBidXQgeW91IGNhbiBzaW1wbHkgcGFzcyBpdCBhIHN1YnN0cmluZyBpbiBBZGEuCgogICBmdW5j
dGlvbiBUZXh0X1dpZHRoIChGb250IDogaW4gR2RrX0ZvbnQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgIFRleHQgOiBpbiBHZGsuVHlwZXMuR2RrX1dTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIHdpZHRoIGluIHBpeGVscyB0aGF0IFRl
eHQgd2lsbCBvY2N1cHkgb24gdGhlIHNjcmVlbi4KICAgLS0gIFRoaXMgZnVuY3Rpb24gc2hvdWxk
IGJlIHVzZWQgd2l0aCBzdHJpbmdzIHRoYXQgY29udGFpbiBVbmljb2RlCiAgIC0tICBjaGFyYWN0
ZXJzCgogICBmdW5jdGlvbiBDaGFyX1dpZHRoIChGb250IDogaW4gR2RrX0ZvbnQ7CiAgICAgICAg
ICAgICAgICAgICAgICAgIENoYXIgOiBpbiBDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEdpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIHdpZHRoIGluIHBpeGVscyBvY2N1cGll
ZCBieSBhIHNpbmdsZSBjaGFyYWN0ZXIgb24gdGhlIHNjcmVlbi4KICAgLS0gIFRoZSB2YWx1ZSBy
ZXR1cm5lZCBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBDaGFyJ3Mgb3JpZ2luIG9uIHRoZSBzY3Jl
ZW4KICAgLS0gIGFuZCB0aGUgb3JpZ2luIG9mIHRoZSBuZXh0IGNoYXJhY3RlciBpbiB0aGUgc3Ry
aW5nLgoKICAgZnVuY3Rpb24gQ2hhcl9XaWR0aCAoRm9udCA6IGluIEdka19Gb250OwogICAgICAg
ICAgICAgICAgICAgICAgICBDaGFyIDogaW4gR2RrLlR5cGVzLkdka19XQ2hhcikKICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgd2lkdGggaW4gcGl4
ZWxzIG9jY3VwaWVkIGJ5IGEgc2luZ2xlIHdpZGUtY2hhcmFjdGVyLgoKICAgZnVuY3Rpb24gU3Ry
aW5nX01lYXN1cmUgKEZvbnQgOiBpbiBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFN0ciAgOiBpbiBTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
aW50OwogICAtLSAgRGV0ZXJtaW5lIHRoZSBkaXN0YW5jZSBmcm9tIHRoZSBvcmlnaW4gdG8gdGhl
IHJpZ2h0bW9zdCBwb3J0aW9uIG9mIFN0ci4KICAgLS0gIFRoaXMgaXMgbm90IHRoZSBjb3JyZWN0
IHZhbHVlIGZvciBkZXRlcm1pbmluZyB0aGUgb3JpZ2luIG9mIHRoZSBuZXh0CiAgIC0tICBwb3J0
aW9uIHdoZW4gZHJhd2luZyB0ZXh0IGluIG11bHRpcGxlIHBpZWNlcy4KICAgLS0gIFNlZSBTdHJp
bmdfV2lkdGggaW5zdGVhZC4KCiAgIGZ1bmN0aW9uIFRleHRfTWVhc3VyZSAoRm9udCA6IGluIEdk
a19Gb250OwogICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgOiBpbiBTdHJpbmcpCiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgLS0gIFNhbWUgZnVuY3Rpb24gYSBT
dHJpbmdfTWVhc3VyZS4KICAgLS0gIEluIEMsIHRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8g
bWVhc3VyZSBvbmx5IHRoZSB3aWR0aCBvZiBhIHBhcnQgb2YKICAgLS0gIHRoZSBzdHJpbmcsIGJ1
dCB5b3UgY2FuIHNpbXBseSBwYXNzIGl0IGEgc3Vic3RyaW5nIGluIEFkYS4KICAgLS0gIFRoaXMg
aXMgYWxzbyBjYWxsZWQgdGhlIHJpZ2h0IGJlYXJpbmcgb2YgdGhlIHN0cmluZy4KCiAgIGZ1bmN0
aW9uIENoYXJfTWVhc3VyZSAoRm9udCA6IGluIEdka19Gb250OwogICAgICAgICAgICAgICAgICAg
ICAgICAgIENoYXIgOiBpbiBDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR2ludDsKICAgLS0gIFJldHVybiB0aGUgd2lkdGggaW4gcGl4ZWxzIG9mIENoYXIuCiAgIC0t
ICBBcyBvcHBvc2VkIHRvIENoYXJfV2lkdGgsIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBub3QgdGhl
IGRpc3RhbmNlIGF0CiAgIC0tICB3aGljaCB0aGUgbmV4dCBjaGFyYWN0ZXIgc2hvdWxkIGJlIGRy
YXduLgogICAtLSAgVGhpcyBpcyBhbHNvIGNhbGxlZCB0aGUgcmlnaHQgYmVhcmluZyBvZiB0aGUg
Y2hhcmFjdGVyLgoKICAgcHJvY2VkdXJlIFN0cmluZ19FeHRlbnRzIChGb250ICAgICA6IGluICAg
ICBHZGsuRm9udC5HZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHIgICAg
ICA6IGluICAgICBTdHJpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGJlYXJpbmcg
OiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYmVhcmluZyA6ICAg
IG91dCBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZHRoICAgIDogICAgb3V0
IEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNjZW50ICAgOiAgICBvdXQgR2lu
dDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjZW50ICA6ICAgIG91dCBHaW50KTsK
ICAgLS0gIFJldHVybiB0aGUgbWV0cmljcyBmb3IgYSBnaXZlbiB0ZXh0LgogICAtLSAgU2VlIHRo
ZSBwaWN0dXJlIGZvciBtb3JlIGV4cGxhbmF0aW9ucyBvbiBhbGwgdGhlIGZpZWxkcy4KICAgLS0g
IExiZWFyaW5nIDogT3JpZ2luIHRvIGxlZnQgZWRnZSBvZiBjaGFyYWN0ZXIuCiAgIC0tICBSYmVh
cmluZyA6IE9yaWdpbiB0byByaWdodCBlZGdlIG9mIGNoYXJhY3Rlci4KICAgLS0gIFdpZHRoICAg
IDogQWR2YW5jZSB0byBuZXh0IGNoYXJhY3RlcidzIG9yaWdpbi4KICAgLS0gIEFzY2VudCAgIDog
QmFzZWxpbmUgdG8gdG9wIGVkZ2Ugb2YgY2hhcmFjdGVyLgogICAtLSAgRGVzY2VudCAgOiBCYXNl
bGluZSB0byBib3R0b20gZWRnZSBvZiBjaGFyYWN0ZXIuCgogICBwcm9jZWR1cmUgVGV4dF9FeHRl
bnRzIChGb250ICAgICAgICA6IGluICAgICBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVGV4dCAgICAgICAgOiBpbiAgICAgU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICBMYmVhcmluZyAgICA6ICAgIG91dCBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICBSYmVhcmluZyAgICA6ICAgIG91dCBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICBX
aWR0aCAgICAgICA6ICAgIG91dCBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICBBc2Nl
bnQgICAgICA6ICAgIG91dCBHaW50OwogICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjZW50
ICAgICA6ICAgIG91dCBHaW50KTsKICAgLS0gIFJldHVybiBhbGwgdGhlIG1ldHJpY3MgZm9yIGEg
Z2l2ZW4gdGV4dC4KICAgLS0gIFNlZSB0aGUgcGljdHVyZSBmb3IgbW9yZSBleHBsYW5hdGlvbnMg
b24gYWxsIHRoZSBmaWVsZHMuCiAgIC0tICBpbiBDLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIGJlIHVz
ZWQgZm9yIHBhcnQgb2YgYSBzdHJpbmcsIHdoaWNoIHlvdSBjYW4KICAgLS0gIHNpbXVsYXRlIGlu
IEFkYSB3aXRoIGEgc3Vic3RyaW5nLgoKICAgcHJvY2VkdXJlIFRleHRfRXh0ZW50cyAoRm9udCAg
ICAgICAgOiBpbiAgICAgR2RrX0ZvbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQg
ICAgICAgIDogaW4gICAgIEdkay5UeXBlcy5HZGtfV1N0cmluZzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGJlYXJpbmcgICAgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmJlYXJpbmcgICAgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2lkdGggICAgICAgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
QXNjZW50ICAgICAgOiAgICBvdXQgR2ludDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVz
Y2VudCAgICAgOiAgICBvdXQgR2ludCk7CiAgIC0tICBSZXR1cm4gYWxsIHRoZSBtZXRyaWNzIGZv
ciBhIGdpdmVuIHdpZGUtY2hhcmFjdGVyIHN0cmluZy4KICAgLS0gIFNlZSB0aGUgcGljdHVyZSBm
b3IgbW9yZSBleHBsYW5hdGlvbnMgb24gdGhlIHJldHVybmVkIHZhbHVlcy4KCiAgIGZ1bmN0aW9u
IFN0cmluZ19IZWlnaHQgKEZvbnQgOiBpbiBHZGtfRm9udDsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU3RyICA6IGluIFN0cmluZykKICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
R2ludDsKICAgLS0gIFJldHVybiB0aGUgaGVpZ2h0IGluIHBpeGVscyBvZiB0aGUgc3RyaW5nLgog
ICAtLSAgVGhpcyBpcyB0aGUgdG90YWwgaGVpZ2h0LCBhbmQgeW91IGNhbiBub3QgZWFzaWx5IHRl
bGwgaG93IHRoaXMgaGVpZ2h0CiAgIC0tICBpcyBzcGxpdCBhcm91bmQgdGhlIGJhc2VsaW5lLgoK
ICAgZnVuY3Rpb24gVGV4dF9IZWlnaHQgKEZvbnQgOiBpbiBHZGtfRm9udDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIFN0ciAgOiBpbiBTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBHaW50OwogICAtLSAgU2FtZSBhcyBTdHJpbmdfSGVpZ2h0LgogICAtLSAgSW4gQywgdGhp
cyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBtZWFzdXJlIG9ubHkgdGhlIHdpZHRoIG9mIGEgcGFy
dCBvZgogICAtLSAgdGhlIHN0cmluZywgYnV0IHlvdSBjYW4gc2ltcGx5IHBhc3MgaXQgYSBzdWJz
dHJpbmcgaW4gQWRhLgogICAtLSAgVGhpcyBpcyBhbHNvIGNhbGxlZCB0aGUgcmlnaHQgYmVhcmlu
ZyBvZiB0aGUgc3RyaW5nLgoKICAgZnVuY3Rpb24gQ2hhcl9IZWlnaHQgKEZvbnQgOiBpbiBHZGtf
Rm9udDsKICAgICAgICAgICAgICAgICAgICAgICAgIENoYXIgOiBpbiBDaGFyYWN0ZXIpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAtLSAgUmV0dXJuIHRoZSB0b3RhbCBo
ZWlnaHQgaW4gcGl4ZWxzIG9mIGEgc2luZ2xlIGNoYXJhY3Rlci4KCgpwcml2YXRlCiAgIE51bGxf
Rm9udCA6IGNvbnN0YW50IEdka19Gb250IDo9IG51bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIENo
YXJfSGVpZ2h0LCAiZ2RrX2NoYXJfaGVpZ2h0Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIElkLCAi
Z2RrX2ZvbnRfaWQiKTsKICAgcHJhZ21hIEltcG9ydCAoQywgUmVmLCAiZ2RrX2ZvbnRfcmVmIik7
CiAgIHByYWdtYSBJbXBvcnQgKEMsIFVucmVmLCAiZ2RrX2ZvbnRfdW5yZWYiKTsKICAgcHJhZ21h
IEltcG9ydCAoQywgR2V0X0FzY2VudCwgImFkYV9nZGtfZm9udF9nZXRfYXNjZW50Iik7CiAgIHBy
YWdtYSBJbXBvcnQgKEMsIEdldF9EZXNjZW50LCAiYWRhX2dka19mb250X2dldF9kZXNjZW50Iik7
CmVuZCBHZGsuRm9udDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0gQWRhOTUg
YmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMTk5OSAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJyb2JlY2tl
ciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciAg
ICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi
bGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgLS0KLS0g
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAgICAgLS0K
LS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVj
aWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3MgZnJvbSAg
LS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyB0
byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5
IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBiZSBjb3Zl
cmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0gZXhjZXB0
aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhl
ICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1
YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggR2xpYjsgdXNlIEdsaWI7
CndpdGggR2RrLlJlY3RhbmdsZTsKd2l0aCBHZGsuVHlwZXM7CgpwYWNrYWdlIEdkay5SZWdpb24g
aXMKCiAgIHR5cGUgR2RrX1JlZ2lvbiBpcyBuZXcgR2RrLkNfUHJveHk7CiAgIE51bGxfUmVnaW9u
IDogY29uc3RhbnQgR2RrX1JlZ2lvbjsKCiAgIHByb2NlZHVyZSBHZGtfTmV3IChSZWdpb24gOiBv
dXQgR2RrX1JlZ2lvbik7CgogICBwcm9jZWR1cmUgRGVzdHJveSAoUmVnaW9uIDogaW4gb3V0IEdk
a19SZWdpb24pOwoKICAgcHJvY2VkdXJlIEdldF9DbGlwYm94CiAgICAgKFJlZ2lvbiAgICA6IGlu
ICAgICBHZGtfUmVnaW9uOwogICAgICBSZWN0YW5nbGUgOiAgICBvdXQgR2RrLlJlY3RhbmdsZS5H
ZGtfUmVjdGFuZ2xlKTsKCiAgIGZ1bmN0aW9uIEVtcHR5IChSZWdpb24gOiBpbiBHZGtfUmVnaW9u
KSByZXR1cm4gQm9vbGVhbjsKCiAgIGZ1bmN0aW9uICI9IiAoTGVmdCwgUmlnaHQgOiBpbiBHZGtf
UmVnaW9uKSByZXR1cm4gQm9vbGVhbjsKCiAgIGZ1bmN0aW9uIFBvaW50X0luCiAgICAgKFJlZ2lv
biA6IGluIEdka19SZWdpb247CiAgICAgIFgsIFkgICA6IGluIEludGVnZXIpIHJldHVybiBCb29s
ZWFuOwoKICAgZnVuY3Rpb24gUmVjdF9JbgogICAgIChSZWdpb24gOiBpbiBHZGtfUmVnaW9uOwog
ICAgICBSZWN0ICAgOiBpbiBSZWN0YW5nbGUuR2RrX1JlY3RhbmdsZSkgcmV0dXJuIFR5cGVzLkdk
a19PdmVybGFwX1R5cGU7CgogICBwcm9jZWR1cmUgUG9seWdvbgogICAgIChSZWdpb24gOiAgICBv
dXQgR2RrX1JlZ2lvbjsKICAgICAgUG9pbnRzIDogaW4gICAgIEdkay5UeXBlcy5HZGtfUG9pbnRz
X0FycmF5OwogICAgICBGaWxsX1J1bGUgOiBpbiAgICAgVHlwZXMuR2RrX0ZpbGxfUnVsZSk7Cgog
ICBwcm9jZWR1cmUgT2Zmc2V0CiAgICAgKFJlZ2lvbiA6IGluIEdka19SZWdpb247CiAgICAgIER4
ICAgICA6IGluIEdpbnQ7CiAgICAgIER5ICAgICA6IGluIEdpbnQpOwoKICAgcHJvY2VkdXJlIFNo
cmluawogICAgIChSZWdpb24gOiBpbiBHZGtfUmVnaW9uOwogICAgICBEeCAgICAgOiBpbiBHaW50
OwogICAgICBEeSAgICAgOiBpbiBHaW50KTsKCiAgIHByb2NlZHVyZSBVbmlvbl9XaXRoX1JlY3QK
ICAgICAoUmVzdWx0IDogICAgb3V0IEdka19SZWdpb247CiAgICAgIFJlZ2lvbiA6IGluICAgICBH
ZGtfUmVnaW9uOwogICAgICBSZWN0ICAgOiBpbiAgICAgUmVjdGFuZ2xlLkdka19SZWN0YW5nbGUp
OwoKICAgcHJvY2VkdXJlIEludGVyc2VjdAogICAgIChSZXN1bHQgIDogICAgb3V0IEdka19SZWdp
b247CiAgICAgIFNvdXJjZTEgOiBpbiAgICAgR2RrX1JlZ2lvbjsKICAgICAgU291cmNlMiA6IGlu
ICAgICBHZGtfUmVnaW9uKTsKCiAgIHByb2NlZHVyZSBVbmlvbgogICAgIChSZXN1bHQgIDogICAg
IG91dCBHZGtfUmVnaW9uOwogICAgICBTb3VyY2UxIDogaW4gICAgICBHZGtfUmVnaW9uOwogICAg
ICBTb3VyY2UyIDogaW4gICAgICBHZGtfUmVnaW9uKTsKCiAgIHByb2NlZHVyZSBTdWJzdHJhY3QK
ICAgICAoUmVzdWx0ICA6ICAgICBvdXQgR2RrX1JlZ2lvbjsKICAgICAgU291cmNlMSA6IGluICAg
ICAgR2RrX1JlZ2lvbjsKICAgICAgU291cmNlMiA6IGluICAgICAgR2RrX1JlZ2lvbik7CgogICBw
cm9jZWR1cmUgR2RrX1hvcgogICAgIChSZXN1bHQgIDogICAgIG91dCBHZGtfUmVnaW9uOwogICAg
ICBTb3VyY2UxIDogaW4gICAgICBHZGtfUmVnaW9uOwogICAgICBTb3VyY2UyIDogaW4gICAgICBH
ZGtfUmVnaW9uKTsKCnByaXZhdGUKICAgTnVsbF9SZWdpb24gOiBjb25zdGFudCBHZGtfUmVnaW9u
IDo9IG51bGw7CiAgIHByYWdtYSBJbXBvcnQgKEMsIE9mZnNldCwgImdka19yZWdpb25fb2Zmc2V0
Iik7CiAgIHByYWdtYSBJbXBvcnQgKEMsIFNocmluaywgImdka19yZWdpb25fc2hyaW5rIik7CmVu
ZCBHZGsuUmVnaW9uOwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICBHdGtBZGEgLSBBZGE5NSBi
aW5kaW5nIGZvciB0aGUgR2ltcCBUb29sa2l0ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
LQotLSAgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5OC0yMDAwICAgICAgICAg
ICAgICAgICAgICAgICAtLQotLSAgICAgICAgRW1tYW51ZWwgQnJpb3QsIEpvZWwgQnJvYmVja2Vy
IGFuZCBBcm5hdWQgQ2hhcmxldCAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yICAg
ICAtLQotLSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs
aWMgICAgICAgICAgICAgICAtLQotLSBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgICAgICAtLQotLSB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAtLQotLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAtLQotLSBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwgICAtLQotLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAtLQotLSBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAtLQotLSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICAgICAg
ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgICAgICAgICAtLQotLSBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAgICAgICAtLQot
LSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRl
IDMzMCwgICAgICAtLQotLSBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNp
YWwgZXhjZXB0aW9uLCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZSBnZW5lcmljcyBmcm9tICAt
LQotLSB0aGlzIHVuaXQsIG9yIHlvdSBsaW5rIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzIHRv
IHByb2R1Y2UgYW4gICAtLQotLSBleGVjdXRhYmxlLCB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkg
aXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICAtLQotLSBleGVjdXRhYmxlIHRvIGJlIGNvdmVy
ZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzICAtLQotLSBleGNlcHRp
b24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUg
ICAtLQotLSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVi
bGljIExpY2Vuc2UuICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIDxkZXNjcmlwdGlvbj4KLS0K
LS0gIFBpeG1hcHMgYXJlIG9mZi1zY3JlZW4gZHJhd2FibGVzLiBUaGV5IGNhbiBiZSBkcmF3biB1
cG9uIHdpdGggdGhlIHN0YW5kYXJkCi0tICBkcmF3aW5nIHByaW1pdGl2ZXMsIHRoZW4gY29waWVk
IHRvIGFub3RoZXIgZHJhd2FibGUgKHN1Y2ggYXMgYSBHZGtfV2luZG93KQotLSAgd2l0aCBHZGsu
UGl4bWFwLkRyYXcuIFRoZSBkZXB0aCBvZiBhIHBpeG1hcCBpcyB0aGUgbnVtYmVyIG9mIGJpdHMg
cGVyCi0tICBwaXhlbHMuIEJpdG1hcHMgYXJlIHNpbXBseSBwaXhtYXBzIHdpdGggYSBkZXB0aCBv
ZiAxLiAoVGhhdCBpcywgdGhleSBhcmUKLS0gIG1vbm9jaHJvbWUgYml0bWFwcyAtIGVhY2ggcGl4
ZWwgY2FuIGJlIGVpdGhlciBvbiBvciBvZmYpLgotLSAgQHB4cmVme1BhY2thZ2VfR2RrLkJpdG1h
cH0gZm9yIG1vcmUgZGV0YWlscyBvbiBiaXRtYXAgaGFuZGxpbmcuCi0tCi0tICA8L2Rlc2NyaXB0
aW9uPgotLSAgPGNfdmVyc2lvbj4xLjIuNzwvY192ZXJzaW9uPgoKd2l0aCBHbGliOyB1c2UgR2xp
YjsKd2l0aCBHZGsuQml0bWFwOwp3aXRoIEdkay5Db2xvcjsKd2l0aCBHZGsuV2luZG93Owp3aXRo
IEd0a2FkYS5UeXBlczsKCnBhY2thZ2UgR2RrLlBpeG1hcCBpcwoKICAgc3VidHlwZSBHZGtfUGl4
bWFwIGlzIEdkay5HZGtfUGl4bWFwOwogICAtLSAgQSBzZXJ2ZXItc2lkZSBpbWFnZS4KICAgLS0g
IFlvdSBjYW4gY3JlYXRlIGFuIGVtcHR5IHBpeG1hcCwgb3IgbG9hZCBpZiBmcm9tIGV4dGVybmFs
IGZpbGVzIGluCiAgIC0tICBiaXRtYXAgYW5kIHBpeG1hcCBmb3JtYXQuIFNlZSBHZGsuUGl4YnVm
IGlmIHlvdSBuZWVkIHRvIGxvYWQKICAgLS0gIGltYWdlcyBpbiBvdGhlciBmb3JtYXRzLgoKICAg
TnVsbF9QaXhtYXAgOiBjb25zdGFudCBHZGtfUGl4bWFwOwoKICAgcHJvY2VkdXJlIEdka19OZXcg
KFBpeG1hcCA6ICAgIG91dCBHZGtfUGl4bWFwOwogICAgICAgICAgICAgICAgICAgICAgV2luZG93
IDogaW4gICAgIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgICAgICAgICAgICAgICAgIFdp
ZHRoICA6IGluICAgICBHaW50OwogICAgICAgICAgICAgICAgICAgICAgSGVpZ2h0IDogaW4gICAg
IEdpbnQ7CiAgICAgICAgICAgICAgICAgICAgICBEZXB0aCAgOiBpbiAgICAgR2ludCA6PSAtMSk7
CiAgIC0tICBDcmVhdGUgYSBuZXcgcGl4bWFwIHdpdGggYSBnaXZlbiBzaXplLgogICAtLSAgV2lu
ZG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgbmV3IHBpeG1h
cC4KICAgLS0gIENhbiBiZSBldmVudHVhbGx5IG51bGwuCiAgIC0tICBXaWR0aCBpcyB0aGUgd2lk
dGggb2YgdGhlIG5ldyBwaXhtYXAgaW4gcGl4ZWxzLgogICAtLSAgSGVpZ2h0IGlzIHRoZSBoZWln
aHQgb2YgdGhlIG5ldyBwaXhtYXAgaW4gcGl4ZWxzLgogICAtLSAgRGVwdGggaXMgdGhlIGRlcHRo
IChudW1iZXIgb2YgYml0cyBwZXIgcGl4ZWwpIG9mIHRoZSBuZXcgcGl4bWFwLgogICAtLSAgSWYg
LTEsIGFuZCB3aW5kb3cgaXMgbm90IG51bGwsIHRoZSBkZXB0aCBvZiB0aGUgbmV3IHBpeG1hcCB3
aWxsIGJlCiAgIC0tICBlcXVhbCB0byB0aGF0IG9mIHdpbmRvdy4KICAgLS0gIEF1dG9tYXRpY2Fs
bHkgcmVmZXJlbmNlIHRoZSBwaXhtYXAgb25jZS4KCiAgIHByb2NlZHVyZSBSZWYgKFBpeG1hcCA6
IGluIEdka19QaXhtYXApOwogICAtLSAgQWRkIGEgcmVmZXJlbmNlIHRvIGEgcGl4bWFwLgoKICAg
cHJvY2VkdXJlIFVucmVmIChQaXhtYXAgOiBpbiBHZGtfUGl4bWFwKTsKICAgLS0gIFRoaXMgaXMg
dGhlIHVzdWFsIHdheSB0byBkZXN0cm95IGEgcGl4bWFwLiBUaGUgbWVtb3J5IGlzIGZyZWVkIHdo
ZW4KICAgLS0gIHRoZXJlIGlzIG5vIG1vcmUgcmVmZXJlbmNlCgogICBwcm9jZWR1cmUgQ3JlYXRl
X0Zyb21fRGF0YSAoUGl4bWFwIDogICAgb3V0IEdka19QaXhtYXA7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXaW5kb3cgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSAgIDogaW4gICAgIFN0cmluZzsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdpZHRoICA6IGluICAgICBHaW50OwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSGVpZ2h0IDogaW4gICAgIEdpbnQ7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEZXB0aCAgOiBpbiAgICAgR2ludDsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZnICAgICA6IGluICAgICBDb2xvci5HZGtfQ29sb3I7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCZyAgICAgOiBpbiAgICAgQ29sb3IuR2RrX0NvbG9yKTsKICAg
LS0gIENyZWF0ZSBhIHBpeG1hcCBmcm9tIGRhdGEgaW4gWEJNIGZvcm1hdC4KICAgLS0gIFdpbmRv
dyBpcyB1c2VkIHRvIGRldGVybWluZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIG5ldyBiaXRtYXAs
IGNhbiBiZQogICAtLSAgbnVsbCBpbiB3aGljaCBjYXNlIHRoZSByb290IHdpbmRvdyBpcyB1c2Vk
LgogICAtLSAgRGF0YSBpcyB0aGUgWEJNIGRhdGEuCiAgIC0tICBXaWR0aCBpcyB0aGUgd2lkdGgg
b2YgdGhlIG5ldyBiaXRtYXAgaW4gcGl4ZWxzLgogICAtLSAgSGVpZ2h0IGlzIHRoZSBoZWlnaHQg
b2YgdGhlIG5ldyBiaXRtYXAgaW4gcGl4ZWxzLgogICAtLSAgRGVwdGggaXMgdGhlIGRlcHRoIChu
dW1iZXIgb2YgYml0cyBwZXIgcGl4ZWwpIG9mIHRoZSBuZXcgcGl4bWFwLgogICAtLSAgRmcgaXMg
dGhlIGZvcmVncm91bmQgY29sb3IuCiAgIC0tICBCZyBpcyB0aGUgYmFja2dyb3VuZCBjb2xvci4K
CiAgIHByb2NlZHVyZSBDcmVhdGVfRnJvbV9YcG0gKFBpeG1hcCAgICAgIDogICAgb3V0IEdka19Q
aXhtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyAgICAgIDogaW4gICAg
IEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFz
ayAgICAgICAgOiBpbiBvdXQgR2RrLkJpdG1hcC5HZGtfQml0bWFwOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUcmFuc3BhcmVudCA6IGluICAgICBHZGsuQ29sb3IuR2RrX0NvbG9yOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSAgICA6IGluICAgICBTdHJpbmcp
OwogICAtLSAgQ3JlYXRlIGEgcGl4bWFwIGZyb20gYSBYUE0gZmlsZS4KICAgLS0gIFdpbmRvdyBp
cyB1c2VkIHRvIGRldGVybWluZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIG5ldyBwaXhtYXAuCiAg
IC0tICBNYXNrIGlzIGEgcG9pbnRlciB0byBhIHBsYWNlIHRvIHN0b3JlIGEgYml0bWFwIHJlcHJl
c2VudGluZyB0aGUKICAgLS0gIHRyYW5zcGFyZW5jeSBtYXNrIG9mIHRoZSBYUE0gZmlsZS4gQ2Fu
IGJlIG51bGwsIGluIHdoaWNoIGNhc2UKICAgLS0gIHRyYW5zcGFyZW5jeSB3aWxsIGJlIGlnbm9y
ZWQuCiAgIC0tICBUcmFuc3BhcmVudCBpcyB0aGUgY29sb3IgdG8gYmUgdXNlZCBmb3IgdGhlIHBp
eGVscyB0aGF0IGFyZSB0cmFuc3BhcmVudAogICAtLSAgaW4gdGhlIGlucHV0IGZpbGUuIENhbiBi
ZSBudWxsLCBpbiB3aGljaCBjYXNlIGEgZGVmYXVsdCBjb2xvciB3aWxsIGJlCiAgIC0tICB1c2Vk
LgogICAtLSAgRmlsZW5hbWUgaXMgdGhlIGZpbGVuYW1lIG9mIGEgZmlsZSBjb250YWluaW5nIFhQ
TSBkYXRhLgoKICAgcHJvY2VkdXJlIENyZWF0ZV9Gcm9tX1hwbSAoUGl4bWFwICAgICAgOiAgICBv
dXQgR2RrX1BpeG1hcDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93ICAgICAg
OiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2luZG93OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb2xvcm1hcCAgICA6IGluICAgICBHZGsuQ29sb3IuR2RrX0NvbG9ybWFwOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBNYXNrICAgICAgICA6IGluIG91dCBHZGsuQml0bWFwLkdk
a19CaXRtYXA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zcGFyZW50IDogaW4g
ICAgIEdkay5Db2xvci5HZGtfQ29sb3I7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp
bGVuYW1lICAgIDogaW4gICAgIFN0cmluZyk7CiAgIC0tICBDcmVhdGUgYSBwaXhtYXAgZnJvbSBh
IFhQTSBmaWxlIHVzaW5nIGEgcGFydGljdWxhciBjb2xvcm1hcC4KICAgLS0gIFdpbmRvdyBpcyB1
c2VkIHRvIGRldGVybWluZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIG5ldyBwaXhtYXAuIENhbiBi
ZQogICAtLSAgbnVsbCBpZiBjb2xvcm1hcCBpcyBnaXZlbi4KICAgLS0gIENvbG9ybWFwIGlzIHRo
ZSBHZGtfQ29sb3JtYXAgdGhhdCB0aGUgbmV3IHBpeG1hcCB3aWxsIHVzZS4gSWYgb21pdHRlZCwK
ICAgLS0gIHRoZSBjb2xvcm1hcCBmb3Igd2luZG93IHdpbGwgYmUgdXNlZC4KICAgLS0gIE1hc2sg
aXMgYSBwb2ludGVyIHRvIGEgcGxhY2UgdG8gc3RvcmUgYSBiaXRtYXAgcmVwcmVzZW50aW5nIHRo
ZQogICAtLSAgdHJhbnNwYXJlbmN5IG1hc2sgb2YgdGhlIFhQTSBmaWxlLiBDYW4gYmUgbnVsbCwg
aW4gd2hpY2ggY2FzZQogICAtLSAgdHJhbnNwYXJlbmN5IHdpbGwgYmUgaWdub3JlZC4KICAgLS0g
IFRyYW5zcGFyZW50IGlzIHRoZSBjb2xvciB0byBiZSB1c2VkIGZvciB0aGUgcGl4ZWxzIHRoYXQg
YXJlIHRyYW5zcGFyZW50CiAgIC0tICBpbiB0aGUgaW5wdXQgZmlsZS4gQ2FuIGJlIG51bGwsIGlu
IHdoaWNoIGNhc2UgYSBkZWZhdWx0IGNvbG9yIHdpbGwgYmUKICAgLS0gIHVzZWQuCiAgIC0tICBG
aWxlbmFtZSBpcyB0aGUgZmlsZW5hbWUgb2YgYSBmaWxlIGNvbnRhaW5pbmcgWFBNIGRhdGEuCgog
ICBwcm9jZWR1cmUgQ3JlYXRlX0Zyb21fWHBtX0QKICAgICAoUGl4bWFwICAgICAgOiAgICBvdXQg
R2RrX1BpeG1hcDsKICAgICAgV2luZG93ICAgICAgOiBpbiAgICAgR2RrLldpbmRvdy5HZGtfV2lu
ZG93OwogICAgICBNYXNrICAgICAgICA6IGluIG91dCBHZGsuQml0bWFwLkdka19CaXRtYXA7CiAg
ICAgIFRyYW5zcGFyZW50IDogaW4gICAgIEdkay5Db2xvci5HZGtfQ29sb3I7CiAgICAgIERhdGEg
ICAgICAgIDogaW4gICAgIEd0a2FkYS5UeXBlcy5DaGFyc19QdHJfQXJyYXkpOwogICAtLSAgQ3Jl
YXRlIGEgcGl4bWFwIGZyb20gZGF0YSBpbiBYUE0gZm9ybWF0LgogICAtLSAgV2luZG93IGlzIHVz
ZWQgdG8gZGV0ZXJtaW5lIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgbmV3IHBpeG1hcC4KICAgLS0g
IE1hc2sgaXMgYSBwb2ludGVyIHRvIGEgcGxhY2UgdG8gc3RvcmUgYSBiaXRtYXAgcmVwcmVzZW50
aW5nIHRoZQogICAtLSAgdHJhbnNwYXJlbmN5IG1hc2sgb2YgdGhlIFhQTSBmaWxlLiBDYW4gYmUg
bnVsbCwgaW4gd2hpY2ggY2FzZQogICAtLSAgdHJhbnNwYXJlbmN5IHdpbGwgYmUgaWdub3JlZC4K
ICAgLS0gIFRyYW5zcGFyZW50IHdpbGwgYmUgdXNlZCBmb3IgdGhlIHBpeGVscyB0aGF0IGFyZSB0
cmFuc3BhcmVudCBpbiB0aGUKICAgLS0gIGlucHV0IGZpbGUuIENhbiBiZSBudWxsIGluIHdoaWNo
IGNhc2UgYSBkZWZhdWx0IGNvbG9yIHdpbGwgYmUgdXNlZC4KICAgLS0gIERhdGEgaXMgYSBwb2lu
dGVyIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFhQTSBkYXRhLgoKICAgcHJvY2VkdXJlIENy
ZWF0ZV9Gcm9tX1hwbV9ECiAgICAgKFBpeG1hcCAgICAgIDogICAgb3V0IEdka19QaXhtYXA7CiAg
ICAgIFdpbmRvdyAgICAgIDogaW4gICAgIEdkay5XaW5kb3cuR2RrX1dpbmRvdzsKICAgICAgQ29s
b3JtYXAgICAgOiBpbiAgICAgR2RrLkNvbG9yLkdka19Db2xvcm1hcDsKICAgICAgTWFzayAgICAg
ICAgOiBpbiBvdXQgR2RrLkJpdG1hcC5HZGtfQml0bWFwOwogICAgICBUcmFuc3BhcmVudCA6IGlu
ICAgICBHZGsuQ29sb3IuR2RrX0NvbG9yOwogICAgICBEYXRhICAgICAgICA6IGluICAgICBHdGth
ZGEuVHlwZXMuQ2hhcnNfUHRyX0FycmF5KTsKICAgLS0gIENyZWF0ZSBhIHBpeG1hcCBmcm9tIGRh
dGEgaW4gWFBNIGZvcm1hdCB1c2luZyBhIHBhcnRpY3VsYXIgY29sb3JtYXAuCiAgIC0tICBXaW5k
b3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBuZXcgcGl4bWFw
LgogICAtLSAgQ29sb3JtYXAgaXMgdGhlIEdka19Db2xvcm1hcCB0aGF0IHRoZSBuZXcgcGl4bWFw
IHdpbGwgYmUgdXNlLiBJZgogICAtLSAgb21pdHRlZCwgdGhlIGNvbG9ybWFwIGZvciB3aW5kb3cg
d2lsbCBiZSB1c2VkLgogICAtLSAgTWFzayBpcyBhIHBvaW50ZXIgdG8gYSBwbGFjZSB0byBzdG9y
ZSBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlCiAgIC0tICB0cmFuc3BhcmVuY3kgbWFzayBvZiB0
aGUgWFBNIGZpbGUuIENhbiBiZSBudWxsLCBpbiB3aGljaCBjYXNlCiAgIC0tICB0cmFuc3BhcmVu
Y3kgd2lsbCBiZSBpZ25vcmVkLgogICAtLSAgVHJhbnNwYXJlbnQgd2lsbCBiZSB1c2VkIGZvciB0
aGUgcGl4ZWxzIHRoYXQgYXJlIHRyYW5zcGFyZW50IGluIHRoZQogICAtLSAgaW5wdXQgZmlsZS4g
Q2FuIGJlIG51bGwgaW4gd2hpY2ggY2FzZSBhIGRlZmF1bHQgY29sb3Igd2lsbCBiZSB1c2VkLgog
ICAtLSAgRGF0YSBpcyBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgWFBNIGRh
dGEuCgpwcml2YXRlCiAgIE51bGxfUGl4bWFwIDogY29uc3RhbnQgR2RrX1BpeG1hcCA6PSBudWxs
OwogICBwcmFnbWEgSW1wb3J0IChDLCBSZWYsICJnZGtfcGl4bWFwX3JlZiIpOwogICBwcmFnbWEg
SW1wb3J0IChDLCBVbnJlZiwgImdka19waXhtYXBfdW5yZWYiKTsKZW5kIEdkay5QaXhtYXA7Ci0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0tICAgICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBH
aW1wIFRvb2xraXQgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg
ICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tICAgICAgICBFbW1hbnVlbCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFy
bGV0ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAg
IC0tCi0tIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlciAgICAgIC0tCi0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LCAgIC0tCi0tIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mICAgIC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyAgICAgICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0t
IEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlm
IG90aGVyIGZpbGVzIGluc3RhbnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwg
b3IgeW91IGxpbmsgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0t
Ci0tIGV4ZWN1dGFibGUsIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRo
ZSByZXN1bHRpbmcgIC0tCi0tIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dl
dmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFi
bGUgZmlsZSAgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAg
IC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgPGRlc2NyaXB0aW9uPgotLQotLSAgVGhpcyBwYWNrYWdl
cyBwcm92aWRlcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSBnZW5lcmljIHNpbmdsZS1saW5rZWQK
LS0gIGxpc3QuCi0tICBPbmUgaW5zdGFudGlhdGlvbiBpcyBmb3VuZCBpbiBHdGsuV2lkZ2V0Lldp
ZGdldF9TbGlzdCBmb3IgYSBsaXN0IG9mCi0tICB3aWRnZXRzLgotLQotLSAgU2VlIHRoZSBkb2N1
bWVudGF0aW9uIG9mIEdsaWIuR2xpc3QgZm9yIG1vcmUgaW5mb3JtYXRpb24sIGl0IHByb3ZpZGVz
Ci0tICB0aGUgc2FtZSBBUEkgYXMgdGhpcyBwYWNrYWdlLgotLSAgU2luZ2xlIGxpbmtlZCBsaXN0
cyBhcmUgdHJhdmVyc2VkIHRoZSBzYW1lIHdheSBhcyBkb3VibGUtbGlua2VkIGxpc3RzLAotLSAg
ZXZlbiB0aG91Z2ggbW9zdCBzdWJwcm9ncmFtcyBhcmUgbGVzcyBlZmZpY2llbnQgdGhhbiB0aGVp
cgotLSAgZG91YmxlLWxpbmtlZCBjb3VudGVycGFydHMuCi0tCi0tICA8L2Rlc2NyaXB0aW9uPgot
LSAgPGNfdmVyc2lvbj4xLjIuNjwvY192ZXJzaW9uPgoKd2l0aCBTeXN0ZW07CgpwYWNrYWdlIEds
aWIuR1NsaXN0IGlzCgogICAtLSAgPGRvY19pZ25vcmU+CgogICBnZW5lcmljCiAgICAgIHR5cGUg
R3BvaW50ZXIgKDw+KSBpcyBwcml2YXRlOwogICAgICB3aXRoIGZ1bmN0aW9uIENvbnZlcnQgKFAg
OiBHcG9pbnRlcikgcmV0dXJuIFN5c3RlbS5BZGRyZXNzIGlzIDw+OwogICAgICB3aXRoIGZ1bmN0
aW9uIENvbnZlcnQgKFMgOiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIEdwb2ludGVyIGlzIDw+Owog
ICBwYWNrYWdlIEdlbmVyaWNfU0xpc3QgaXMKCiAgICAgIHR5cGUgR1NsaXN0IGlzIHByaXZhdGU7
CiAgICAgIE51bGxfTGlzdCA6IGNvbnN0YW50IEdTbGlzdDsKCiAgICAgIHByb2NlZHVyZSBBbGxv
YyAoTGlzdCA6IG91dCBHU2xpc3QpOwogICAgICBwcm9jZWR1cmUgQXBwZW5kIChMaXN0IDogaW4g
b3V0IEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyKTsK
ICAgICAgZnVuY3Rpb24gQ29uY2F0IChMaXN0MSA6IGluIEdTbGlzdDsKICAgICAgICAgICAgICAg
ICAgICAgICBMaXN0MiA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
R1NsaXN0OwogICAgICBwcm9jZWR1cmUgSW5zZXJ0IChMaXN0IDogaW4gb3V0IEdTbGlzdDsKICAg
ICAgICAgICAgICAgICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyOwogICAgICAgICAgICAgICAg
ICAgICAgICBQb3NpdGlvbiA6IGluIEdpbnQpOwogICAgICBmdW5jdGlvbiBGaW5kIChMaXN0IDog
aW4gR1NsaXN0OwogICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBHU2xpc3Q7CiAgICAgIHByb2NlZHVyZSBGcmVlIChMaXN0
IDogaW4gb3V0IEdTbGlzdCk7CiAgICAgIGZ1bmN0aW9uIEdldF9EYXRhIChMaXN0IDogaW4gR1Ns
aXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdwb2ludGVyOwogICAgICBmdW5j
dGlvbiBJbmRleCAoTGlzdCA6IGluIEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgIERhdGEg
OiBpbiBHcG9pbnRlcikKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaW50OwogICAgICBm
dW5jdGlvbiBMYXN0IChMaXN0IDogaW4gR1NsaXN0KQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR1NsaXN0OwogICAgICBmdW5jdGlvbiBMZW5ndGggKExpc3QgOiBpbiBHU2xpc3QpCiAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEd1aW50OwogICAgICBwcm9jZWR1cmUgTGlzdF9SZXZl
cnNlIChMaXN0IDogaW4gb3V0IEdTbGlzdCk7CiAgICAgIGZ1bmN0aW9uIE5leHQgKExpc3QgOiBp
biBHU2xpc3QpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHU2xpc3Q7CiAgICAgIGZ1bmN0
aW9uIE50aCAoTGlzdCA6IGluIEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICBOICAgIDogaW4g
R3VpbnQpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdTbGlzdDsKICAgICAgZnVuY3Rpb24g
TnRoX0RhdGEgKExpc3QgOiBpbiBHU2xpc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICBOIDog
aW4gR3VpbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR3BvaW50ZXI7CiAgICAg
IGZ1bmN0aW9uIFBvc2l0aW9uIChMaXN0IDogaW4gR1NsaXN0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgTGluayA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
aW50OwogICAgICBwcm9jZWR1cmUgUHJlcGVuZCAoTGlzdCA6IGluIG91dCBHU2xpc3Q7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpOwogICAgICBwcm9jZWR1cmUg
UmVtb3ZlIChMaXN0IDogaW4gb3V0IEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgRGF0
YSA6IGluIEdwb2ludGVyKTsKICAgICAgcHJvY2VkdXJlIFJlbW92ZV9MaW5rIChMaXN0IDogaW4g
b3V0IEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rIDogaW4gR1NsaXN0
KTsKICAgICAgZnVuY3Rpb24gR2V0X09iamVjdCAoT2JqIDogaW4gR1NsaXN0KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgIHByYWdtYSBJbmxp
bmUgKEdldF9PYmplY3QpOwogICAgICBwcm9jZWR1cmUgU2V0X09iamVjdCAoT2JqICAgIDogaW4g
b3V0IEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlICA6IGluICAgICBT
eXN0ZW0uQWRkcmVzcyk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9PYmplY3QpOwogICBwcml2
YXRlCgogICAgICB0eXBlIEdTbGlzdCBpcwogICAgICAgICByZWNvcmQKICAgICAgICAgICAgUHRy
IDogU3lzdGVtLkFkZHJlc3MgOj0gU3lzdGVtLk51bGxfQWRkcmVzczsKICAgICAgICAgZW5kIHJl
Y29yZDsKICAgICAgTnVsbF9MaXN0IDogY29uc3RhbnQgR1NsaXN0IDo9IChQdHIgPT4gU3lzdGVt
Lk51bGxfQWRkcmVzcyk7CiAgIGVuZCBHZW5lcmljX1NMaXN0OwoKICAgLS0gIDwvZG9jX2lnbm9y
ZT4KCmVuZCBHbGliLkdTbGlzdDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgR3RrQWRhIC0g
QWRhOTUgYmluZGluZyBmb3IgdGhlIEdpbXAgVG9vbGtpdCAgICAgICAgICAgICAgLS0KLS0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMCAg
ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgIEVtbWFudWVsIEJyaW90LCBKb2VsIEJy
b2JlY2tlciBhbmQgQXJuYXVkIENoYXJsZXQgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vciAgICAgLS0KLS0gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy
YWwgUHVibGljICAgICAgICAgICAgICAgLS0KLS0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyICAgICAgLS0KLS0gdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgLS0K
LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLS0KLS0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgLS0KLS0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgLS0KLS0gTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUg
LS0KLS0gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljICAgICAgICAgLS0KLS0gTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgICAgICAgICAg
ICAgLS0KLS0gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug
LSBTdWl0ZSAzMzAsICAgICAgLS0KLS0gQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMg
YSBzcGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUgZ2VuZXJpY3Mg
ZnJvbSAgLS0KLS0gdGhpcyB1bml0LCBvciB5b3UgbGluayB0aGlzIHVuaXQgd2l0aCBvdGhlciBm
aWxlcyB0byBwcm9kdWNlIGFuICAgLS0KLS0gZXhlY3V0YWJsZSwgdGhpcyAgdW5pdCAgZG9lcyBu
b3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgLS0KLS0gZXhlY3V0YWJsZSB0byBi
ZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gVGhpcyAgLS0KLS0g
ZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3
aHkgdGhlICAgLS0KLS0gZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSAg
R05VIFB1YmxpYyBMaWNlbnNlLiAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnBhY2thZ2UgYm9keSBH
bGliLkdsaXN0IGlzCgogICB1c2UgdHlwZSBTeXN0ZW0uQWRkcmVzczsKCiAgIHBhY2thZ2UgYm9k
eSBHZW5lcmljX0xpc3QgaXMKICAgICAgLS0tLS0tLS0tLS0KICAgICAgLS0gQWxsb2MgLS0KICAg
ICAgLS0tLS0tLS0tLS0KCiAgICAgIHByb2NlZHVyZSBBbGxvYyAoTGlzdCA6IG91dCBHbGlzdCkg
aXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAg
ICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdfbGlzdF9hbGxvYyIpOwogICAgICBi
ZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCk7CiAgICAgIGVuZCBBbGxv
YzsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAgICAtLSBBcHBlbmQgLS0KICAgICAgLS0tLS0tLS0t
LS0tCgogICAgICBwcm9jZWR1cmUgQXBwZW5kCiAgICAgICAgKExpc3QgOiBpbiBvdXQgR2xpc3Q7
CiAgICAgICAgIERhdGEgOiBpbiBHcG9pbnRlcikKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24g
SW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERhdGEgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJnX2xpc3RfYXBwZW5kIik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKExpc3Qs
IEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIENvbnZlcnQgKERhdGEpKSk7CiAgICAgIGVuZCBBcHBlbmQ7CgogICAgICAtLS0t
LS0tLS0tLS0KICAgICAgLS0gQ29uY2F0IC0tCiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgZnVu
Y3Rpb24gQ29uY2F0CiAgICAgICAgKExpc3QxIDogaW4gR2xpc3Q7CiAgICAgICAgIExpc3QyIDog
aW4gR2xpc3QpCiAgICAgICAgIHJldHVybiBHbGlzdAogICAgICBpcwogICAgICAgICBmdW5jdGlv
biBJbnRlcm5hbCAoTGlzdDEgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExpc3QyIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVy
bmFsLCAiZ19saXN0X2FwcGVuZCIpOwogICAgICAgICBUbXAgOiBHbGlzdDsKICAgICAgYmVnaW4K
ICAgICAgICAgU2V0X09iamVjdCAoVG1wLCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdDEpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRfT2JqZWN0IChMaXN0MikpKTsK
ICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAgZW5kIENvbmNhdDsKCiAgICAgIC0tLS0tLS0tLS0t
LQogICAgICAtLSBJbnNlcnQgLS0KICAgICAgLS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUg
SW5zZXJ0CiAgICAgICAgKExpc3QgICAgIDogaW4gb3V0IEdsaXN0OwogICAgICAgICBEYXRhICAg
ICA6IGluICAgICBHcG9pbnRlcjsKICAgICAgICAgUG9zaXRpb24gOiBpbiAgICAgR2ludCkKICAg
ICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBvcyAgOiBHaW50KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJ
bnRlcm5hbCwgImdfbGlzdF9pbnNlcnQiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVj
dCAoTGlzdCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSksIFBvc2l0aW9uKSk7CiAgICAgIGVuZCBJ
bnNlcnQ7CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIEZpbmQgLS0KICAgICAgLS0tLS0tLS0t
LQoKICAgICAgZnVuY3Rpb24gRmluZAogICAgICAgIChMaXN0IDogaW4gR2xpc3Q7CiAgICAgICAg
IERhdGEgOiBpbiBHcG9pbnRlcikKICAgICAgICAgcmV0dXJuIEdsaXN0CiAgICAgIGlzCiAgICAg
ICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ19saXN0X2ZpbmQiKTsKICAgICAgICAgVG1wIDogR2xpc3Q7CiAgICAg
IGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExp
c3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChEYXRhKSkp
OwogICAgICAgICByZXR1cm4gVG1wOwogICAgICBlbmQgRmluZDsKCiAgICAgIC0tLS0tLS0tLS0t
CiAgICAgIC0tIEZpcnN0IC0tCiAgICAgIC0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBGaXJz
dCAoTGlzdCA6IGluIEdsaXN0KQogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdsaXN0CiAg
ICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3Mp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAg
ICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X2ZpcnN0Iik7CiAgICAgICAg
IFRtcCA6IEdsaXN0OwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVy
bmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICAgICByZXR1cm4gVG1wOwogICAgICBlbmQg
Rmlyc3Q7CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIEZyZWUgLS0KICAgICAgLS0tLS0tLS0t
LQoKICAgICAgcHJvY2VkdXJlIEZyZWUgKExpc3QgOiBpbiBvdXQgR2xpc3QpIGlzCiAgICAgICAg
IHByb2NlZHVyZSBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKTsKICAgICAgICAgcHJh
Z21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfZnJlZSIpOwogICAgICBiZWdpbgogICAg
ICAgICBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCkpOwogICAgICBlbmQgRnJlZTsKCiAgICAg
IC0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIEdldF9EYXRhIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t
CgogICAgICBmdW5jdGlvbiBHZXRfRGF0YSAoTGlzdCA6IGluIEdsaXN0KSByZXR1cm4gR3BvaW50
ZXIgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBpbiBTeXN0ZW0uQWRkcmVz
cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJhZGFfbGlzdF9nZXRfZGF0YSIpOwog
ICAgICBiZWdpbgogICAgICAgICByZXR1cm4gQ29udmVydCAoSW50ZXJuYWwgKEdldF9PYmplY3Qg
KExpc3QpKSk7CiAgICAgIGVuZCBHZXRfRGF0YTsKCiAgICAgIC0tLS0tLS0tLS0tLS0tCiAgICAg
IC0tIEdldF9EYXRhIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBHZXRf
RGF0YV9BZGRyZXNzIChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBTeXN0ZW0uQWRkcmVzcyBpcwog
ICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IGluIFN5c3RlbS5BZGRyZXNzKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBw
cmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImFkYV9saXN0X2dldF9kYXRhIik7CiAgICAgIGJl
Z2luCiAgICAgICAgIHJldHVybiBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCkpOwogICAgICBl
bmQgR2V0X0RhdGFfQWRkcmVzczsKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t
ICBHZXRfR3BvaW50ZXIgIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICBmdW5j
dGlvbiBHZXRfR3BvaW50ZXIgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdwb2ludGVyIGlzCiAg
ICAgIGJlZ2luCiAgICAgICAgIHJldHVybiBDb252ZXJ0IChHZXRfT2JqZWN0IChMaXN0KSk7CiAg
ICAgIGVuZCBHZXRfR3BvaW50ZXI7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIEdl
dF9PYmplY3QgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gR2V0X09i
amVjdCAoT2JqIDogaW4gR2xpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBT
eXN0ZW0uQWRkcmVzcyBpcwogICAgICBiZWdpbgogICAgICAgICByZXR1cm4gT2JqLlB0cjsKICAg
ICAgZW5kIEdldF9PYmplY3Q7CgogICAgICAtLS0tLS0tLS0tLQogICAgICAtLSBJbmRleCAtLQog
ICAgICAtLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gSW5kZXgKICAgICAgICAoTGlzdCA6IGlu
IEdsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgICAgIHJldHVybiBHaW50
CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJl
c3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgICAgICAgcHJhZ21hIElt
cG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfaW5kZXgiKTsKICAgICAgYmVnaW4KICAgICAgICAg
cmV0dXJuIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBDb252ZXJ0IChEYXRhKSk7CiAgICAgIGVuZCBJbmRleDsKCiAgICAgIC0tLS0tLS0tLS0t
LS0tLS0tLQogICAgICAtLSAgSXNfQ3JlYXRlZCAgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t
CgogICAgICBmdW5jdGlvbiBJc19DcmVhdGVkIChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBCb29s
ZWFuIGlzCiAgICAgIGJlZ2luCiAgICAgICAgIHJldHVybiBHZXRfT2JqZWN0IChMaXN0KSAvPSBT
eXN0ZW0uTnVsbF9BZGRyZXNzOwogICAgICBlbmQgSXNfQ3JlYXRlZDsKCiAgICAgIC0tLS0tLS0t
LS0KICAgICAgLS0gTGFzdCAtLQogICAgICAtLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBMYXN0
IChMaXN0IDogaW4gR2xpc3QpIHJldHVybiBHbGlzdCBpcwogICAgICAgICBmdW5jdGlvbiBJbnRl
cm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5h
bCwgImdfbGlzdF9sYXN0Iik7CiAgICAgICAgIFRtcCA6IEdsaXN0OwogICAgICBiZWdpbgogICAg
ICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAg
ICAgICByZXR1cm4gVG1wOwogICAgICBlbmQgTGFzdDsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAg
ICAtLSBMZW5ndGggLS0KICAgICAgLS0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBMZW5ndGgg
KExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEd1aW50IGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVy
bmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gR3VpbnQ7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0
X2xlbmd0aCIpOwogICAgICBiZWdpbgogICAgICAgICByZXR1cm4gSW50ZXJuYWwgKEdldF9PYmpl
Y3QgKExpc3QpKTsKICAgICAgZW5kIExlbmd0aDsKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICAtLSBMaXN0X1JldmVyc2UgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICBw
cm9jZWR1cmUgTGlzdF9SZXZlcnNlIChMaXN0IDogaW4gb3V0IEdsaXN0KSBpcwogICAgICAgICBm
dW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0
IChDLCBJbnRlcm5hbCwgImdfbGlzdF9yZXZlcnNlIik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNl
dF9PYmplY3QgKExpc3QsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICBlbmQg
TGlzdF9SZXZlcnNlOwoKICAgICAgLS0tLS0tLS0tLQogICAgICAtLSBOZXh0IC0tCiAgICAgIC0t
LS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE5leHQgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEds
aXN0IGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3Mp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAg
ICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiYWRhX2xpc3RfbmV4dCIpOwogICAgICAg
ICBUbXAgOiBHbGlzdDsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoVG1wLCBJbnRl
cm5hbCAoR2V0X09iamVjdCAoTGlzdCkpKTsKICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAgZW5k
IE5leHQ7CgogICAgICAtLS0tLS0tLS0KICAgICAgLS0gTnRoIC0tCiAgICAgIC0tLS0tLS0tLQoK
ICAgICAgZnVuY3Rpb24gTnRoCiAgICAgICAgKExpc3QgOiBpbiBHbGlzdDsKICAgICAgICAgTiAg
ICA6IGluIEd1aW50KQogICAgICAgICByZXR1cm4gR2xpc3QKICAgICAgaXMKICAgICAgICAgZnVu
Y3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE4gICAgOiBHdWludCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJn
X2xpc3RfbnRoIik7CiAgICAgICAgIFRtcCA6IEdsaXN0OwogICAgICBiZWdpbgogICAgICAgICBT
ZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwgTikpOwogICAgICAg
ICByZXR1cm4gVG1wOwogICAgICBlbmQgTnRoOwoKICAgICAgLS0tLS0tLS0tLS0tLS0KICAgICAg
LS0gTnRoX0RhdGEgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE50aF9E
YXRhCiAgICAgICAgKExpc3QgOiBpbiBHbGlzdDsKICAgICAgICAgTiAgICA6IGluIEd1aW50KQog
ICAgICAgICByZXR1cm4gR3BvaW50ZXIKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJu
YWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE4g
ICAgOiBHdWludCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRk
cmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3RfbnRoX2Rh
dGEiKTsKICAgICAgYmVnaW4KICAgICAgICAgcmV0dXJuIENvbnZlcnQgKEludGVybmFsIChHZXRf
T2JqZWN0IChMaXN0KSwgTikpOwogICAgICBlbmQgTnRoX0RhdGE7CgogICAgICAtLS0tLS0tLS0t
LS0tLQogICAgICAtLSBQb3NpdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLQoKICAgICAgZnVu
Y3Rpb24gUG9zaXRpb24KICAgICAgICAoTGlzdCA6IGluIEdsaXN0OwogICAgICAgICBMaW5rIDog
aW4gR2xpc3QpCiAgICAgICAgIHJldHVybiBHaW50CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9u
IEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMaW5rIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gR2ludDsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJnX2xpc3Rf
cG9zaXRpb24iKTsKICAgICAgYmVnaW4KICAgICAgICAgcmV0dXJuIEludGVybmFsIChHZXRfT2Jq
ZWN0IChMaXN0KSwgR2V0X09iamVjdCAoTGluaykpOwogICAgICBlbmQgUG9zaXRpb247CgogICAg
ICAtLS0tLS0tLS0tLS0tCiAgICAgIC0tIFByZXBlbmQgLS0KICAgICAgLS0tLS0tLS0tLS0tLQoK
ICAgICAgcHJvY2VkdXJlIFByZXBlbmQKICAgICAgICAoTGlzdCA6IGluIG91dCBHbGlzdDsKICAg
ICAgICAgRGF0YSA6IGluIEdwb2ludGVyKQogICAgICBpcwogICAgICAgICBmdW5jdGlvbiBJbnRl
cm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
RGF0YSA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdf
bGlzdF9wcmVwZW5kIik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKExpc3QsIElu
dGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENvbnZlcnQgKERhdGEpKSk7CiAgICAgIGVuZCBQcmVwZW5kOwoKICAgICAgLS0tLS0t
LS0tLQogICAgICAtLSBQcmV2IC0tCiAgICAgIC0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIFBy
ZXYgKExpc3QgOiBpbiBHbGlzdCkgcmV0dXJuIEdsaXN0IGlzCiAgICAgICAgIGZ1bmN0aW9uIElu
dGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVy
bmFsLCAiYWRhX2xpc3RfcHJldiIpOwogICAgICAgICBUbXAgOiBHbGlzdDsKICAgICAgYmVnaW4K
ICAgICAgICAgU2V0X09iamVjdCAoVG1wLCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCkpKTsK
ICAgICAgICAgcmV0dXJuIFRtcDsKICAgICAgZW5kIFByZXY7CgogICAgICAtLS0tLS0tLS0tLS0K
ICAgICAgLS0gUmVtb3ZlIC0tCiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIFJl
bW92ZQogICAgICAgIChMaXN0IDogaW4gb3V0IEdsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3Bv
aW50ZXIpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVt
LkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJl
c3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X3JlbW92ZSIpOwogICAg
ICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVjdCAo
TGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChEYXRh
KSkpOwogICAgICBlbmQgUmVtb3ZlOwoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0g
UmVtb3ZlX0xpbmsgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIHByb2NlZHVyZSBS
ZW1vdmVfTGluawogICAgICAgIChMaXN0IDogaW4gb3V0IEdsaXN0OwogICAgICAgICBMaW5rIDog
aW4gR2xpc3QpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lz
dGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5rIDogU3lzdGVtLkFk
ZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7
CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19saXN0X3JlbW92ZV9saW5r
Iik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNldF9PYmplY3QgKExpc3QsIEludGVybmFsIChHZXRf
T2JqZWN0IChMaXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldF9P
YmplY3QgKExpbmspKSk7CiAgICAgIGVuZCBSZW1vdmVfTGluazsKCiAgICAgIC0tLS0tLS0tLS0t
LS0tLS0KICAgICAgLS0gU2V0X09iamVjdCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tCgogICAg
ICBwcm9jZWR1cmUgU2V0X09iamVjdCAoT2JqICAgOiBpbiBvdXQgR2xpc3Q7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZSA6IGluICAgICBTeXN0ZW0uQWRkcmVzcykgaXMKICAgICAg
YmVnaW4KICAgICAgICAgT2JqLlB0ciA6PSBWYWx1ZTsKICAgICAgZW5kIFNldF9PYmplY3Q7Cgog
ICBlbmQgR2VuZXJpY19MaXN0OwplbmQgR2xpYi5HbGlzdDsKCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAg
ICAgICAgIEd0a0FkYSAtIEFkYTk1IGJpbmRpbmcgZm9yIHRoZSBHaW1wIFRvb2xraXQgICAgICAg
ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0
IChDKSAxOTk4LTIwMDAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICBFbW1hbnVl
bCBCcmlvdCwgSm9lbCBCcm9iZWNrZXIgYW5kIEFybmF1ZCBDaGFybGV0ICAgICAgICAgIC0tCi0t
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgIC0tCi0tIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAgICAgICAgICAgIC0tCi0tIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciAgICAgIC0t
Ci0tIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4gIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAgIC0tCi0tIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAg
IC0tCi0tIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VIC0tCi0tIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyAgICAg
ICAgIC0tCi0tIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlICAgICAgICAgICAgIC0tCi0tIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgICAgIC0tCi0tIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVyIGZpbGVzIGluc3Rh
bnRpYXRlIGdlbmVyaWNzIGZyb20gIC0tCi0tIHRoaXMgdW5pdCwgb3IgeW91IGxpbmsgdGhpcyB1
bml0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBhbiAgIC0tCi0tIGV4ZWN1dGFibGUsIHRo
aXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIC0tCi0t
IGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UuIFRoaXMgIC0tCi0tIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55
IG90aGVyIHJlYXNvbnMgd2h5IHRoZSAgIC0tCi0tIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUg
Y292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAgIC0tCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CgpwYWNrYWdlIGJvZHkgR2xpYi5HU2xpc3QgaXMKCiAgIHBhY2thZ2UgYm9keSBHZW5lcmljX1NM
aXN0IGlzCiAgICAgIC0tLS0tLS0tLS0tCiAgICAgIC0tIEFsbG9jIC0tCiAgICAgIC0tLS0tLS0t
LS0tCgogICAgICBwcm9jZWR1cmUgQWxsb2MgKExpc3QgOiBvdXQgR1NsaXN0KSBpcwogICAgICAg
ICBmdW5jdGlvbiBJbnRlcm5hbCByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdt
YSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9hbGxvYyIpOwogICAgICBiZWdpbgogICAg
ICAgICBTZXRfT2JqZWN0IChMaXN0LCBJbnRlcm5hbCk7CiAgICAgIGVuZCBBbGxvYzsKCiAgICAg
IC0tLS0tLS0tLS0tLQogICAgICAtLSBBcHBlbmQgLS0KICAgICAgLS0tLS0tLS0tLS0tCgogICAg
ICBwcm9jZWR1cmUgQXBwZW5kCiAgICAgICAgKExpc3QgOiBpbiBvdXQgR1NsaXN0OwogICAgICAg
ICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFs
IChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRh
IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lz
dGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlz
dF9hcHBlbmQiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoTGlzdCwgSW50ZXJu
YWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgZW5kIEFwcGVuZDsKCiAgICAgIC0tLS0tLS0tLS0t
LQogICAgICAtLSBDb25jYXQgLS0KICAgICAgLS0tLS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBD
b25jYXQKICAgICAgICAoTGlzdDEgOiBpbiBHU2xpc3Q7CiAgICAgICAgIExpc3QyIDogaW4gR1Ns
aXN0KQogICAgICAgICByZXR1cm4gR1NsaXN0CiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9uIElu
dGVybmFsIChMaXN0MSA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTGlzdDIgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWws
ICJnX3NsaXN0X2FwcGVuZCIpOwogICAgICAgICBUbXAgOiBHU2xpc3Q7CiAgICAgIGJlZ2luCiAg
ICAgICAgIFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QxKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0X09iamVjdCAoTGlzdDIpKSk7CiAg
ICAgICAgIHJldHVybiBUbXA7CiAgICAgIGVuZCBDb25jYXQ7CgogICAgICAtLS0tLS0tLS0tLS0t
LQogICAgICAtLSBHZXRfRGF0YSAtLQogICAgICAtLS0tLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rp
b24gR2V0X0RhdGEgKExpc3QgOiBpbiBHU2xpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gR3BvaW50ZXIKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3Qg
OiBTeXN0ZW0uQWRkcmVzcykgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEg
SW1wb3J0IChDLCBJbnRlcm5hbCwgImFkYV9nc2xpc3RfZ2V0X2RhdGEiKTsKICAgICAgYmVnaW4K
ICAgICAgICAgcmV0dXJuIENvbnZlcnQgKEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwog
ICAgICBlbmQgR2V0X0RhdGE7CgogICAgICAtLS0tLS0tLS0tLS0KICAgICAgLS0gSW5zZXJ0IC0t
CiAgICAgIC0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIEluc2VydAogICAgICAgIChMaXN0
ICAgICA6IGluIG91dCBHU2xpc3Q7CiAgICAgICAgIERhdGEgICAgIDogaW4gICAgIEdwb2ludGVy
OwogICAgICAgICBQb3NpdGlvbiA6IGluICAgICBHaW50KQogICAgICBpcwogICAgICAgICBmdW5j
dGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUG9zICA6IEdpbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVt
LkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9p
bnNlcnQiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoTGlzdCwgSW50ZXJuYWwg
KEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29udmVydCAoRGF0YSksIFBvc2l0aW9uKSk7CiAgICAgIGVuZCBJbnNlcnQ7CgogICAgICAtLS0t
LS0tLS0tCiAgICAgIC0tIEZpbmQgLS0KICAgICAgLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24g
RmluZAogICAgICAgIChMaXN0IDogaW4gR1NsaXN0OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50
ZXIpCiAgICAgICAgIHJldHVybiBHU2xpc3QKICAgICAgaXMKICAgICAgICAgZnVuY3Rpb24gSW50
ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERhdGEgOiBTeXN0ZW0uQWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJn
X3NsaXN0X2ZpbmQiKTsKICAgICAgICAgVG1wIDogR1NsaXN0OwogICAgICBiZWdpbgogICAgICAg
ICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgICAgcmV0
dXJuIFRtcDsKICAgICAgZW5kIEZpbmQ7CgogICAgICAtLS0tLS0tLS0tCiAgICAgIC0tIEZyZWUg
LS0KICAgICAgLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIEZyZWUgKExpc3QgOiBpbiBvdXQg
R1NsaXN0KSBpcwogICAgICAgICBwcm9jZWR1cmUgSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRk
cmVzcyk7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9mcmVl
Iik7CiAgICAgIGJlZ2luCiAgICAgICAgIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSk7CiAg
ICAgIGVuZCBGcmVlOwoKICAgICAgLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBHZXRfT2JqZWN0
IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIEdldF9PYmplY3QgKE9i
aiA6IGluIEdTbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5B
ZGRyZXNzIGlzCiAgICAgIGJlZ2luCiAgICAgICAgIHJldHVybiBPYmouUHRyOwogICAgICBlbmQg
R2V0X09iamVjdDsKCiAgICAgIC0tLS0tLS0tLS0tCiAgICAgIC0tIEluZGV4IC0tCiAgICAgIC0t
LS0tLS0tLS0tCgogICAgICBmdW5jdGlvbiBJbmRleAogICAgICAgIChMaXN0IDogaW4gR1NsaXN0
OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgICAgIHJldHVybiBHaW50CiAgICAg
IGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2ludDsKICAgICAgICAgcHJhZ21hIEltcG9ydCAo
QywgSW50ZXJuYWwsICJnX3NsaXN0X2luZGV4Iik7CiAgICAgIGJlZ2luCiAgICAgICAgIHJldHVy
biBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
Q29udmVydCAoRGF0YSkpOwogICAgICBlbmQgSW5kZXg7CgogICAgICAtLS0tLS0tLS0tCiAgICAg
IC0tIExhc3QgLS0KICAgICAgLS0tLS0tLS0tLQoKICAgICAgZnVuY3Rpb24gTGFzdCAoTGlzdCA6
IGluIEdTbGlzdCkgcmV0dXJuIEdTbGlzdCBpcwogICAgICAgICBmdW5jdGlvbiBJbnRlcm5hbCAo
TGlzdCA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChDLCBJbnRlcm5hbCwgImdf
c2xpc3RfbGFzdCIpOwogICAgICAgICBUbXAgOiBHU2xpc3Q7CiAgICAgIGJlZ2luCiAgICAgICAg
IFNldF9PYmplY3QgKFRtcCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpKSk7CiAgICAgICAg
IHJldHVybiBUbXA7CiAgICAgIGVuZCBMYXN0OwoKICAgICAgLS0tLS0tLS0tLS0tCiAgICAgIC0t
IExlbmd0aCAtLQogICAgICAtLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIExlbmd0aCAoTGlz
dCA6IGluIEdTbGlzdCkgcmV0dXJuIEd1aW50IGlzCiAgICAgICAgIGZ1bmN0aW9uIEludGVybmFs
IChMaXN0IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gR3VpbnQ7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19zbGlzdF9s
ZW5ndGgiKTsKICAgICAgYmVnaW4KICAgICAgICAgcmV0dXJuIEludGVybmFsIChHZXRfT2JqZWN0
IChMaXN0KSk7CiAgICAgIGVuZCBMZW5ndGg7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAg
ICAgLS0gTGlzdF9SZXZlcnNlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgcHJv
Y2VkdXJlIExpc3RfUmV2ZXJzZSAoTGlzdCA6IGluIG91dCBHU2xpc3QpIGlzCiAgICAgICAgIGZ1
bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQg
KEMsIEludGVybmFsLCAiZ19zbGlzdF9yZXZlcnNlIik7CiAgICAgIGJlZ2luCiAgICAgICAgIFNl
dF9PYmplY3QgKExpc3QsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICBlbmQg
TGlzdF9SZXZlcnNlOwoKICAgICAgLS0tLS0tLS0tLQogICAgICAtLSBOZXh0IC0tCiAgICAgIC0t
LS0tLS0tLS0KCiAgICAgIGZ1bmN0aW9uIE5leHQgKExpc3QgOiBpbiBHU2xpc3QpIHJldHVybiBH
U2xpc3QgaXMKICAgICAgICAgZnVuY3Rpb24gSW50ZXJuYWwgKExpc3QgOiBTeXN0ZW0uQWRkcmVz
cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAg
ICAgICAgcHJhZ21hIEltcG9ydCAoQywgSW50ZXJuYWwsICJhZGFfZ3NsaXN0X25leHQiKTsKICAg
ICAgICAgVG1wIDogR1NsaXN0OwogICAgICBiZWdpbgogICAgICAgICBTZXRfT2JqZWN0IChUbXAs
IEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSkpOwogICAgICAgICByZXR1cm4gVG1wOwogICAg
ICBlbmQgTmV4dDsKCiAgICAgIC0tLS0tLS0tLQogICAgICAtLSBOdGggLS0KICAgICAgLS0tLS0t
LS0tCgogICAgICBmdW5jdGlvbiBOdGgKICAgICAgICAoTGlzdCA6IGluIEdTbGlzdDsKICAgICAg
ICAgTiAgICA6IGluIEd1aW50KQogICAgICAgICByZXR1cm4gR1NsaXN0CiAgICAgIGlzCiAgICAg
ICAgIGZ1bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOICAgIDogR3VpbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVy
bmFsLCAiZ19zbGlzdF9udGgiKTsKICAgICAgICAgVG1wIDogR1NsaXN0OwogICAgICBiZWdpbgog
ICAgICAgICBTZXRfT2JqZWN0IChUbXAsIEludGVybmFsIChHZXRfT2JqZWN0IChMaXN0KSwgTikp
OwogICAgICAgICByZXR1cm4gVG1wOwogICAgICBlbmQgTnRoOwoKICAgICAgLS0tLS0tLS0tLS0t
LS0KICAgICAgLS0gTnRoX0RhdGEgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0KCiAgICAgIGZ1bmN0
aW9uIE50aF9EYXRhCiAgICAgICAgKExpc3QgOiBpbiBHU2xpc3Q7CiAgICAgICAgIE4gICAgOiBp
biBHdWludCkKICAgICAgICAgcmV0dXJuIEdwb2ludGVyCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0
aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOICAgIDogR3VpbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
U3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFsLCAiZ19z
bGlzdF9udGhfZGF0YSIpOwogICAgICBiZWdpbgogICAgICAgICByZXR1cm4gQ29udmVydCAoSW50
ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLCBOKSk7CiAgICAgIGVuZCBOdGhfRGF0YTsKCiAgICAg
IC0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFBvc2l0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t
CgogICAgICBmdW5jdGlvbiBQb3NpdGlvbgogICAgICAgIChMaXN0IDogaW4gR1NsaXN0OwogICAg
ICAgICBMaW5rIDogaW4gR1NsaXN0KQogICAgICAgICByZXR1cm4gR2ludAogICAgICBpcwogICAg
ICAgICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTGluayA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEdpbnQ7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVy
bmFsLCAiZ19zbGlzdF9wb3NpdGlvbiIpOwogICAgICBiZWdpbgogICAgICAgICByZXR1cm4gSW50
ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLCBHZXRfT2JqZWN0IChMaW5rKSk7CiAgICAgIGVuZCBQ
b3NpdGlvbjsKCiAgICAgIC0tLS0tLS0tLS0tLS0KICAgICAgLS0gUHJlcGVuZCAtLQogICAgICAt
LS0tLS0tLS0tLS0tCgogICAgICBwcm9jZWR1cmUgUHJlcGVuZAogICAgICAgIChMaXN0IDogaW4g
b3V0IEdTbGlzdDsKICAgICAgICAgRGF0YSA6IGluIEdwb2ludGVyKQogICAgICBpcwogICAgICAg
ICBmdW5jdGlvbiBJbnRlcm5hbCAoTGlzdCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRGF0YSA6IFN5c3RlbS5BZGRyZXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFN5c3RlbS5BZGRyZXNzOwogICAgICAgICBwcmFnbWEgSW1wb3J0IChD
LCBJbnRlcm5hbCwgImdfc2xpc3RfcHJlcGVuZCIpOwogICAgICBiZWdpbgogICAgICAgICBTZXRf
T2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJ0IChEYXRhKSkpOwogICAgICBlbmQgUHJlcGVu
ZDsKCiAgICAgIC0tLS0tLS0tLS0tLQogICAgICAtLSBSZW1vdmUgLS0KICAgICAgLS0tLS0tLS0t
LS0tCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlCiAgICAgICAgKExpc3QgOiBpbiBvdXQgR1NsaXN0
OwogICAgICAgICBEYXRhIDogaW4gR3BvaW50ZXIpCiAgICAgIGlzCiAgICAgICAgIGZ1bmN0aW9u
IEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBEYXRhIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIEludGVybmFs
LCAiZ19zbGlzdF9yZW1vdmUiKTsKICAgICAgYmVnaW4KICAgICAgICAgU2V0X09iamVjdCAoTGlz
dCwgSW50ZXJuYWwgKEdldF9PYmplY3QgKExpc3QpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29udmVydCAoRGF0YSkpKTsKICAgICAgZW5kIFJlbW92ZTsKCiAgICAgIC0t
LS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFJlbW92ZV9MaW5rIC0tCiAgICAgIC0tLS0tLS0tLS0t
LS0tLS0tCgogICAgICBwcm9jZWR1cmUgUmVtb3ZlX0xpbmsKICAgICAgICAoTGlzdCA6IGluIG91
dCBHU2xpc3Q7CiAgICAgICAgIExpbmsgOiBpbiBHU2xpc3QpCiAgICAgIGlzCiAgICAgICAgIGZ1
bmN0aW9uIEludGVybmFsIChMaXN0IDogU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMaW5rIDogU3lzdGVtLkFkZHJlc3MpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgICAgICAgIHByYWdtYSBJbXBvcnQgKEMsIElu
dGVybmFsLCAiZ19zbGlzdF9yZW1vdmVfbGluayIpOwogICAgICBiZWdpbgogICAgICAgICBTZXRf
T2JqZWN0IChMaXN0LCBJbnRlcm5hbCAoR2V0X09iamVjdCAoTGlzdCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHZXRfT2JqZWN0IChMaW5rKSkpOwogICAgICBlbmQgUmVt
b3ZlX0xpbms7CgogICAgICAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIFNldF9PYmplY3QgLS0K
ICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgcHJvY2VkdXJlIFNldF9PYmplY3QgKE9iaiAg
IDogaW4gb3V0IEdTbGlzdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlIDogaW4g
ICAgIFN5c3RlbS5BZGRyZXNzKSBpcwogICAgICBiZWdpbgogICAgICAgICBPYmouUHRyIDo9IFZh
bHVlOwogICAgICBlbmQgU2V0X09iamVjdDsKCiAgIGVuZCBHZW5lcmljX1NMaXN0OwplbmQgR2xp
Yi5HU2xpc3Q7Cgo=


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ada/7624: Internal error occurs while building Gtkada-1.2.12 package using gcc 3.2
@ 2002-08-25  8:46 fw
  0 siblings, 0 replies; 2+ messages in thread
From: fw @ 2002-08-25  8:46 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, zhenggen

Synopsis: Internal error occurs while building Gtkada-1.2.12 package using gcc 3.2

State-Changed-From-To: open->closed
State-Changed-By: fw
State-Changed-When: Sun Aug 25 08:12:54 2002
State-Changed-Why:
    Duplicate of Ada/5679.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7624


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-08-25 15:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-18  2:51 ada/7624: Internal error occurs while building Gtkada-1.2.12 package using gcc 3.2 zhenggen
2002-08-25  8:46 fw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).