public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: ada/8247: Compiler bug reported; may have to do with variant records
@ 2003-05-12 23:46 Dara Hazeghi
  0 siblings, 0 replies; 2+ messages in thread
From: Dara Hazeghi @ 2003-05-12 23:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR ada/8247; it has been noted by GNATS.

From: Dara Hazeghi <dhazeghi@yahoo.com>
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: ada/8247: Compiler bug reported; may have to do with variant records
Date: Mon, 12 May 2003 16:42:58 -0700

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
 trail&database=gcc&pr=8247
 
 Hello,
 
 I can reproduce this bug on gcc 3.2, 3.3 branch and mainline (20030511)  
 on i686-linux.
 
 Dara
 


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

* ada/8247: Compiler bug reported; may have to do with variant records
@ 2002-10-16 15:16 Erik.Pessers
  0 siblings, 0 replies; 2+ messages in thread
From: Erik.Pessers @ 2002-10-16 15:16 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8247
>Category:       ada
>Synopsis:       Compiler bug reported; may have to do with variant records
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 16 15:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Erik pessers <Erik.Pessers@ACM.ORG>
>Release:        unknown-1.0
>Organization:
>Environment:
Linux 2.4 on I868 (Compaq Presario5020); 
same issue on both GNAT3.14p-3 and GNAT3.2 
(3.2.1-0pre3) compilers.
>Description:
$ gnatmake adalib-string_hashes
gcc-3.2 -c adalib-string_hashes.adb
+===========================GNAT BUG DETECTED==============================+
| 3.2.1 20020924 (prerelease) (i386-pc-linux-gnu) Assert_Failure einfo.adb:4508|
| Error detected at adalib-hashes.ads:327:5 [adalib-string_hashes.ads:16:5]|
| Please submit a bug report, see http://gcc.gnu.org/bugs.html.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc-3.2 or gnatmake command that you entered.          |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

Please include these source files with error report

adalib-string_hashes.adb
adalib-string_hashes.ads
adalib.ads
adalib-hashes.ads
adalib-list.ads
/usr/local/lib/ada/include/bc/bc.ads
/usr/local/lib/ada/include/bc/bc-containers.ads
/usr/local/lib/ada/include/bc/bc-containers-lists.ads
/usr/local/lib/ada/include/bc/bc-containers-lists-single.ads
/usr/local/lib/ada/include/bc/global_heap.ads
/usr/local/lib/ada/include/bc/bc-support.ads
/usr/local/lib/ada/include/bc/bc-support-managed_storage.ads
adalib-strings.ads
adalib-sprintf.ads

compilation abandoned
gnatmake: "adalib-string_hashes.adb" compilation error
>How-To-Repeat:

>Fix:

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

CnBhY2thZ2UgYm9keSBBZGFsaWIuU3RyaW5nX0hhc2hlcyBpcwoKICAgIGZ1bmN0aW9uIEhhc2gg
KGtleSA6IFRfU3RyaW5nX0J1ZmZlcikgcmV0dXJuIFRfSGFzaF9WYWwgaXMKICAgIAogICAgICAg
IGggOiBOYXR1cmFsIDo9IDAgOwoKICAgIGJlZ2luCiAgICAgICAgZm9yIGkgaW4gMSAuLiBBZGFs
aWIuU3RyaW5ncy5MZW5ndGgoa2V5KSBsb29wCiAgICAgICAgICAgIGggOj0gaCozMyArIENoYXJh
Y3RlcidQb3MoQWRhbGliLlN0cmluZ3MuRWxlbWVudChLZXksIGkpKSA7CiAgICAgICAgZW5kIGxv
b3AgOwogICAgICAgIHJldHVybiAoaCBtb2QgSGFzaF9NYXgpIDsKICAgIGVuZCBIYXNoIDsKCgog
ICBwcm9jZWR1cmUgQWRkICggCiAgICAgICAgICBIYXNoICAgICAgICAgIDogaW4gb3V0IFRfSGFz
aDsKICAgICAgICAgIGtleSAgICAgICAgICAgOiBpbiBTdHJpbmcgOyAKICAgICAgICAgIHZhbHVl
ICAgICAgICAgOiBpbiBUX0VsZW0gOwogICAgICAgICAgYWxsb3dfcmVwbGFjZSA6IGluIEJvb2xl
YW4gOj0gVHJ1ZSApIGlzCiAgICAgICAgICAgICAgICAgICAKICAgYmVnaW4KICAgICAgIEFkZCAo
SGFzaCwgQWRhbGliLlN0cmluZ3MuVG9fU3RyaW5nX0J1ZmZlcihrZXkpLCB2YWx1ZSwgYWxsb3df
cmVwbGFjZSkgOwogICBlbmQgQWRkIDsKCiAgIHByb2NlZHVyZSBEZWxldGUgKCAgCiAgICAgICAg
ICBIYXNoICAgICAgICAgIDogaW4gb3V0IFRfSGFzaDsKICAgICAgICAgIGtleSAgICAgICAgICAg
OiBpbiBTdHJpbmcgKSBpcwogICAKICAgYmVnaW4KICAgICAgIERlbGV0ZSAoSGFzaCwgQWRhbGli
LlN0cmluZ3MuVG9fU3RyaW5nX0J1ZmZlcihrZXkpKSA7CiAgIGVuZCBEZWxldGUgOwoKICAgZnVu
Y3Rpb24gaXNfUHJlc2VudCAoIEhhc2ggOiBUX0hhc2ggOyBrZXkgICA6IFN0cmluZyApIHJldHVy
biBCb29sZWFuIGlzCiAgIAogICBiZWdpbgogICAgICAgcmV0dXJuKGlzX1ByZXNlbnQoSGFzaCwg
QWRhbGliLlN0cmluZ3MuVG9fU3RyaW5nX0J1ZmZlcihrZXkpKSkgOwogICBlbmQgaXNfUHJlc2Vu
dCA7CgplbmQgQWRhbGliLlN0cmluZ19IYXNoZXMgOwoKd2l0aCBBZGFsaWIuSGFzaGVzIDsKd2l0
aCBBZGFsaWIuU3RyaW5ncyA7CndpdGggQWRhbGliLlNwcmludGYgOwoKZ2VuZXJpYwogICAgdHlw
ZSBUX0VsZW0gaXMgcHJpdmF0ZSA7CiAgICB3aXRoIGZ1bmN0aW9uIFByaW50IChhIDogVF9FbGVt
KSByZXR1cm4gU3RyaW5nIDsKcGFja2FnZSBBZGFsaWIuU3RyaW5nX0hhc2hlcyBpcwoKICAgIEhh
c2hfTWF4IDogTmF0dXJhbCA6PSAyNTYgOwoKICAgIHN1YnR5cGUgVF9IYXNoX1ZhbCBpcyBOYXR1
cmFsIHJhbmdlIDAuLkhhc2hfTWF4LTEgOwoKICAgIGZ1bmN0aW9uIEhhc2ggKGtleSA6IFRfU3Ry
aW5nX0J1ZmZlcikgcmV0dXJuIFRfSGFzaF9WYWwgOwoKICAgIHBhY2thZ2UgU0hhc2ggaXMgbmV3
IEFkYWxpYi5IYXNoZXMgKAogICAgICAgICAgICBUX0tleSAgICAgICA9PiBUX1N0cmluZ19CdWZm
ZXIsIAogICAgICAgICAgICBUX0VsZW0gICAgICA9PiBUX0VsZW0sCiAgICAgICAgICAgIEJ1Y2tl
dHNfTWF4ID0+IDY0LAogICAgICAgICAgICBLZXlfSGFzaCAgICA9PiBIYXNoLCAKICAgICAgICAg
ICAgIj0iICAgICAgICAgPT4gQWRhbGliLlN0cmluZ3MuIj0iLCAKICAgICAgICAgICAgUHJpbnRf
S2V5ICAgPT4gQWRhbGliLlN0cmluZ3MuVG9fU3RyaW5nLAogICAgICAgICAgICBQcmludF9FbGVt
ICA9PiBQcmludCApIDsKCiAgICBzdWJ0eXBlIFRfS2V5ZWRfRWxlbWVudCBpcyBTSGFzaC5UX0tl
eWVkX0VsZW1lbnQgOwogICAgc3VidHlwZSBUX0J1Y2tldF9GaWxsIGlzIFNIYXNoLlRfQnVja2V0
X0ZpbGwgOwogICAgc3VidHlwZSBUX1N0YXRpc3RpY3MgaXMgU0hhc2guVF9TdGF0aXN0aWNzIDsK
ICAgIHN1YnR5cGUgVF9IYXNoIGlzIFNIYXNoLlRfSGFzaCA7CgogICBwcm9jZWR1cmUgSW5pdGlh
bGlzZSAoCiAgICAgICAgICBIYXNoIDogICAgb3V0IFRfSGFzaCApCiAgICAgICAgICAgICAgIHJl
bmFtZXMgU0hhc2guSW5pdGlhbGlzZSA7CgogICBwcm9jZWR1cmUgQWRkICgKICAgICAgICAgIEhh
c2ggICAgICAgICAgOiBpbiBvdXQgVF9IYXNoOwogICAgICAgICAga2V5ICAgICAgICAgICA6IGlu
ICAgICBTdHJpbmcgOyAKICAgICAgICAgIHZhbHVlICAgICAgICAgOiBpbiAgICAgVF9FbGVtIDsK
ICAgICAgICAgIGFsbG93X3JlcGxhY2UgOiBpbiAgICAgQm9vbGVhbiA6PSBUcnVlICkgOwoKICAg
IHByb2NlZHVyZSBBZGQgKAogICAgICAgICAgSGFzaCAgICAgICAgICA6IGluIG91dCBUX0hhc2g7
ICAgICAgICAgCiAgICAgICAgICBLZXkgICAgICAgICAgIDogaW4gICAgIFRfU3RyaW5nX0J1ZmZl
cjsgICAgICAgICAgCiAgICAgICAgICBWYWx1ZSAgICAgICAgIDogaW4gICAgIFRfRWxlbTsgICAg
ICAgICAKICAgICAgICAgIEFsbG93X1JlcGxhY2UgOiBpbiAgICAgQm9vbGVhbiA6PSBUcnVlICkK
ICAgICAgICAgICAgICAgcmVuYW1lcyBTSGFzaC5BZGQgOwoKICAgIHByb2NlZHVyZSBEZWxldGUg
KAogICAgICAgICAgSGFzaCAgICAgICAgICA6IGluIG91dCBUX0hhc2g7ICAgICAgICAgCiAgICAg
ICAgICBLZXkgICAgICAgICAgIDogaW4gICAgIHN0cmluZykgOwoKICAgIHByb2NlZHVyZSBEZWxl
dGUgKAogICAgICAgICAgSGFzaCAgICAgICAgICA6IGluIG91dCBUX0hhc2g7IAogICAgICAgICAg
S2V5ICAgICAgICAgICA6IGluICAgICBUX1N0cmluZ19CdWZmZXIgICApIAogICAgICAgICAgICAg
ICByZW5hbWVzIFNIYXNoLkRlbGV0ZSA7CgogICBmdW5jdGlvbiBpc19QcmVzZW50ICgKICAgICAg
ICAgIEhhc2ggICAgICAgICA6IFRfSGFzaDsgCiAgICAgICAgICBLZXkgICAgICAgICAgOiBTdHJp
bmcgICApIHJldHVybiBCb29sZWFuIDsKCiAgICBmdW5jdGlvbiBJc19QcmVzZW50ICgKICAgICAg
ICAgIEhhc2ggICAgICAgICA6IFRfSGFzaDsgCiAgICAgICAgICBLZXkgICAgICAgICAgOiBUX1N0
cmluZ19CdWZmZXIgICApIAogICAgICByZXR1cm4gQm9vbGVhbiAKICAgICAgICAgICAgICAgcmVu
YW1lcyBTSGFzaC5pc19QcmVzZW50IDsKCiAgIGZ1bmN0aW9uIGdldF9LZXkgICAoIGVsZW0gOiBU
X0tleWVkX0VsZW1lbnQgKSByZXR1cm4gVF9TdHJpbmdfQnVmZmVyCiAgICAgICAgICAgICAgIHJl
bmFtZXMgU0hhc2guZ2V0X0tleSA7CgogICBmdW5jdGlvbiBnZXRfVmFsdWUgKCBlbGVtIDogVF9L
ZXllZF9FbGVtZW50ICkgcmV0dXJuIFRfRWxlbSAKICAgICAgICAgICAgICAgcmVuYW1lcyBTSGFz
aC5nZXRfVmFsdWUgOwoKICAgZnVuY3Rpb24gR2V0X1ZhbHVlICgKICAgICAgICAgIEhhc2ggICAg
ICAgICA6IFRfSGFzaDsgCiAgICAgICAgICBLZXkgICAgICAgICAgOiBTdHJpbmcgICApIAogICAg
ICByZXR1cm4gVF9FbGVtIDsKCiAgIGZ1bmN0aW9uIEdldF9WYWx1ZSAoCiAgICAgICAgICBIYXNo
ICAgICAgICAgOiBUX0hhc2g7IAogICAgICAgICAgS2V5ICAgICAgICAgIDogVF9TdHJpbmdfQnVm
ZmVyICAgKSAKICAgICAgcmV0dXJuIFRfRWxlbSAKICAgICAgICAgICAgICAgcmVuYW1lcyBTSGFz
aC5HZXRfVmFsdWUgOwogICAgICAgCiAgIHByb2NlZHVyZSBTdGF0aXN0aWNzICgKICAgICAgICAg
IEhhc2ggICAgICAgICA6IGluIFRfSGFzaDsKICAgICAgICAgIHN0YXRzICAgICAgICA6ICAgIG91
dCBUX1N0YXRpc3RpY3MpIAogICAgICAgICAgICAgICByZW5hbWVzIFNIYXNoLlN0YXRpc3RpY3Mg
OwoKICAgcHJvY2VkdXJlIGR1bXBfU3RhdGlzdGljcygKICAgICAgICAgIEhhc2ggICAgICAgICA6
IGluIFRfSGFzaCApCiAgICAgICAgICAgICAgIHJlbmFtZXMgU0hhc2guZHVtcF9TdGF0aXN0aWNz
IDsKCiAgIHByb2NlZHVyZSBkdW1wX0hhc2ggKAogICAgICAgICAgSGFzaCAgICAgICAgIDogaW4g
VF9IYXNoICkKICAgICAgICAgICAgICAgcmVuYW1lcyBTSGFzaC5kdW1wX0hhc2ggOwoKZW5kIEFk
YWxpYi5TdHJpbmdfSGFzaGVzIDsKCndpdGggQWRhLlRleHRfSU8gOwp3aXRoIEFkYS5FeGNlcHRp
b25zIDsKd2l0aCBBZGEuU3RyaW5ncyA7CndpdGggQWRhLlN0cmluZ3MuVW5ib3VuZGVkIDsKd2l0
aCBBZGEuU3RyaW5ncy5NYXBzIDsKd2l0aCBBZGEuU3RyaW5ncy5NYXBzLkNvbnN0YW50cyA7Cndp
dGggQWRhLlN0cmluZ3MuRml4ZWQgOwp3aXRoIEdOQVQuT1NfTGliIDsKd2l0aCBTeXN0ZW0gOwp3
aXRoIEFkYS5UZXh0X0lPIDsKCnBhY2thZ2UgQWRhTGliIGlzCgogICAgIC0tIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgICAtLSBHZW5lcmljIGV4Y2VwdGlvbnMKICAgICAtLSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogICBHZW5lcmljX0Vycm9yICAgICAgOiBFeGNlcHRpb24gOwogICBHZW5l
cmljX0ZhdGFsRXJyb3IgOiBFeGNlcHRpb24gOwogICBWZXJib3NlICAgICAgICAgICAgOiBFeGNl
cHRpb24gOwogICBEZWJ1ZyAgICAgICAgICAgICAgOiBFeGNlcHRpb24gOwoKICAgICAtLSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLS0gV2FybmluZyBvciBpbmRpY2F0aW9ucwogICAg
IC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIE91dF9PZl9Cb3VuZHMgICAgICA6IEV4
Y2VwdGlvbiA7IC0tIE9iamVjdCBvdXRzaWRlIGl0cyBuYXR1cmFsIGNvbnRleHQKICAgRHVwbGlj
YXRlX0VudHJ5ICAgIDogRXhjZXB0aW9uIDsgLS0gT2JqZWN0IGR1cGxpY2F0ZWQgKHdhcm5pbmcg
b3IgaW5kaWNhdGlvbikgCiAgIERhdGFfTm90X0ZvdW5kICAgICA6IEV4Y2VwdGlvbiA7IC0tIERh
dGEgb2JqZWN0IG9yIHNlY3Rpb24gbm90IGZvdW5kIAogICBLZXlfTm90X0ZvdW5kICAgICAgOiBF
eGNlcHRpb24gOyAtLSBLZXllZCBhY2Nlc3MgdG8gb2JqZWN0IGZhaWxlZAogICBWYWx1ZV9Ob3Rf
Rm91bmQgICAgOiBFeGNlcHRpb24gOyAtLSBLZXllZCBhY2Nlc3MgdG8gb2JqZWN0IHJlc3VsdGVk
IGluIG5vIGRhdGEKICAgTnVsbF9Qb2ludGVyICAgICAgIDogRXhjZXB0aW9uIDsgLS0gCiAgIE51
bGxfVmFsdWUgICAgICAgICA6IEV4Y2VwdGlvbiA7IC0tIAogICBOb3RfTnVsbCAgICAgICAgICAg
OiBFeGNlcHRpb24gOyAtLSBPYmplY3Qgbm90IGVtcHR5IHdoaWxlIE51bGwgdmFsdWUgZXhwZWN0
ZWQKICAgVW5kZWZpbmVkX1ZhbHVlICAgIDogRXhjZXB0aW9uIDsgLS0gCiAgIFR5cGVfTWlzbWF0
Y2ggICAgICA6IEV4Y2VwdGlvbiA7IC0tIAoKICAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgICAtLSBFcnJvciBtZXNzYWdlcyAoZ2VuZXJhbCBmYWlsdXJlcykK
ICAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIEludmFsaWRf
Qm91bmRzICAgIDogRXhjZXB0aW9uIDsgLS0gT2JqZWN0IG91dHNpZGUgaXRzIG5hdHVyYWwgY29u
dGV4dAogICBJbnZhbGlkX0R1cGwgICAgICA6IEV4Y2VwdGlvbiA7IC0tIEludmFsaWQgb2JqZWN0
IGR1cGxpY2F0aW9uCiAgIEludmFsaWRfU3RydWN0ICAgIDogRXhjZXB0aW9uIDsgLS0gSW52YWxp
ZCBvYmplY3QgZHVwbGljYXRpb24KICAgSW52YWxpZF9EYXRhdHlwZSAgOiBFeGNlcHRpb24gOyAt
LSBJbnZhbGlkIG9iamVjdCBkYXRhIHR5cGUKICAgSW52YWxpZF9EYXRhICAgICAgOiBFeGNlcHRp
b24gOyAtLSBJbnZhbGlkIG9iamVjdCBkYXRhIHZhbHVlCiAgIE5vdF9Jbml0aWFsaXNlZCAgIDog
RXhjZXB0aW9uIDsgLS0gSW52YWxpZCBvYmplY3Qgbm90IGluaXRpYWxpc2VkCiAgIEZpbGVfTm90
X0ZvdW5kICAgIDogRXhjZXB0aW9uIDsKICAgRmlsZV9PcGVuX0Vycm9yICAgOiBFeGNlcHRpb24g
OwogICBGaWxlX0lPX0Vycm9yICAgICA6IEV4Y2VwdGlvbiA7CiAgIEZpbGVfRW1wdHkgICAgICAg
IDogRXhjZXB0aW9uIDsKICAgQmV5b25kX0VPRiAgICAgICAgOiBFeGNlcHRpb24gOwogICBJbnZh
bGlkX1R5cGUgICAgICA6IEV4Y2VwdGlvbiA7IC0tIEludmFsaWQgb2JqZWN0IHR5cGUKICAgSW52
YWxpZF9Gb3JtYXQgICAgOiBFeGNlcHRpb24gOyAtLSBJbnZhbGlkIG9iamVjdCBmb3JtYXQKICAg
QXBwbF9GYWlsdXJlICAgICAgOiBFeGNlcHRpb24gOyAtLSBBcHBsaWNhdGlvbiAvIHByb2Nlc3Np
bmcgZmFpbHVyZQogICBOb3RfSW1wbGVtZW50ZWQgICA6IEV4Y2VwdGlvbiA7IC0tIE1vZHVsZSBv
ZiBmdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQgKHlldCkKCiAgICAgLS0gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLS0gRXJyb3IgbWVzc2FnZXMgKFhNTCBwYXJzaW5n
KQogICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgWE1MX05v
X0NoaWxkcmVuICAgOiBFeGNlcHRpb24gOyAtLSBYTUwgdHJlZSBub2RlIGhhcyBubyBjaGlsZHJl
bgogICBYTUxfUGFyc2VfRXJyb3IgICA6IEV4Y2VwdGlvbiA7IC0tIEVycm9yIHJldHVybmVkIGZy
b20gJ3htbGFkYScgcGFja2FnZQoKICAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KICAgICAtLSBFcnJvciBtZXNzYWdlcyAoY29tbWFuZCBsaW5lIHBhcnNpbmcpCiAg
ICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBJbnZhbGlkX09w
dGlvbiAgICAgIDogRXhjZXB0aW9uIDsgLS0gSW52YWxpZCBjb21tYW5kIGxpbmUgb3B0aW9uCiAg
IFVuZGVmaW5lZF9PcHRpb24gICAgOiBFeGNlcHRpb24gOyAtLSBDb21tYW5kIG9wdGlvbiBub3Qg
ZGVmaW5lZAogICBNaXNzaW5nX09wdGlvbiAgICAgIDogRXhjZXB0aW9uIDsgLS0gTWlzc2luZyBl
eHBlY3RlZC9yZXF1aXJlZCBvcHRpb24KICAgSW52YWxpZF9QYXJhbWV0ZXIgICA6IEV4Y2VwdGlv
biA7IC0tIAogICBBYnNlbnRfUGFyYW1ldGVyICAgIDogRXhjZXB0aW9uIDsgLS0gCiAgIFVuZGVm
aW5lZF9QYXJhbWV0ZXIgOiBFeGNlcHRpb24gOyAtLSAKICAgSW52YWxpZF9EdXBsaWNhdGUgICA6
IEV4Y2VwdGlvbiA7IC0tCgogICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogICAgIC0tIEVycm9yIG1lc3NhZ2VzIChTTk1QIHJlbGF0ZWQpCiAgICAgLS0gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBOb19SZXNwb25zZSAgICAgICA6IEV4
Y2VwdGlvbiA7CiAgIE5vX1N1Y2hfT2JqZWN0ICAgIDogRXhjZXB0aW9uIDsKICAgTm9fU3VjaF9J
bnN0YW5jZSAgOiBFeGNlcHRpb24gOwogICBFbmRfb2ZfTUlCX1ZpZXcgICA6IEV4Y2VwdGlvbiA7
CiAgIE5vX01JQiAgICAgICAgICAgIDogRXhjZXB0aW9uIDsKICAgTUlCX0Vycm9yICAgICAgICAg
OiBFeGNlcHRpb24gOwogICBOdWxsX1JlZiAgICAgICAgICA6IEV4Y2VwdGlvbiA7CiAgIFVuc3Vw
cG9ydGVkICAgICAgIDogRXhjZXB0aW9uIDsKICAgSW50ZXJuYWxfRXJyb3IgICAgOiBFeGNlcHRp
b24gOwogICBCYWRfTG9jcG9ydCAgICAgICA6IEV4Y2VwdGlvbiA7CiAgIEJhZF9BZGRyZXNzICAg
ICAgIDogRXhjZXB0aW9uIDsKICAgTm9fU29ja2V0ICAgICAgICAgOiBFeGNlcHRpb24gOwogICBC
YWRfVmVyc2lvbiAgICAgICA6IEV4Y2VwdGlvbiA7CiAgIEJhZF9WYXJpYWJsZSAgICAgIDogRXhj
ZXB0aW9uIDsKICAgQmFkX09wdGlvbiAgICAgICAgOiBFeGNlcHRpb24gOwogICBXcm9uZ19BU05f
VHlwZSAgICA6IEV4Y2VwdGlvbiA7CgoKICAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgICAtLSBEYXRhIHN0cnVjdHVyZXM7IHN0cmluZ3MKICAgICAtLSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHR5cGUgUF9TdHJpbmcgaXMgYWNj
ZXNzIFN0cmluZyA7CgogICBzdWJ0eXBlIFRfU3RyaW5nX0J1ZmZlciBpcyBBZGEuU3RyaW5ncy5V
bmJvdW5kZWQuVW5ib3VuZGVkX1N0cmluZyA7CiAgIHR5cGUgUF9TdHJpbmdfQnVmZmVyIGlzIGFj
Y2VzcyBhbGwgVF9TdHJpbmdfQnVmZmVyIDsKCgogICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAgIC0tIERhdGEgc3RydWN0dXJlczsgZ3JhcGhpY3MKICAgICAt
LSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgogICAgIC0tIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC0tIERhdGEgc3RydWN0dXJlczsgbmV0
d29ya2luZwogICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg
c3VidHlwZSBJUF9Qb3J0SUQgaXMgTmF0dXJhbCByYW5nZSAwIC4uIDY1NTM1IDsKICAgc3VidHlw
ZSBJUF9Qcm90b2NvbCBpcyBOYXR1cmFsIHJhbmdlIDAuLjI1NSA7CiAgIElQX0NfUHJvdG9jb2xf
SUNNUCA6IGNvbnN0YW50IElQX1Byb3RvY29sIDo9IDEgOwogICBJUF9DX1Byb3RvY29sX1RDUCAg
OiBjb25zdGFudCBJUF9Qcm90b2NvbCA6PSA2IDsKICAgSVBfQ19Qcm90b2NvbF9VRFAgIDogY29u
c3RhbnQgSVBfUHJvdG9jb2wgOj0gMTcgOwogICBJUF9DX1Byb3RvY29sX09TUEYgOiBjb25zdGFu
dCBJUF9Qcm90b2NvbCA6PSA4OSA7CgogICBJUF9DX1BvcnRJRF9TTk1QIDogY29uc3RhbnQgSVBf
UG9ydElEIDo9IDE2MSA7CgogICB0eXBlIElQX1BvcnQgaXMgcmVjb3JkCiAgICAgICBwcm90b2Nv
bCA6IElQX1Byb3RvY29sIDsKICAgICAgIFBvcnQgICAgIDogSVBfUG9ydElEIDsKICAgZW5kIHJl
Y29yZCA7CgogICAtLUNMSV9PcHRpb25fUXVpZXQgICAgOiBCb29sZWFuIDo9IEZhbHNlIDsKICAg
LS1DTElfT3B0aW9uX1dhcm5pbmdzIDogQm9vbGVhbiA6PSBGYWxzZSA7CiAgIC0tQ0xJX09wdGlv
bl9WZXJib3NlICA6IEJvb2xlYW4gOj0gRmFsc2UgOwogICAtLUNMSV9PcHRpb25fRGVidWcgICAg
OiBCb29sZWFuIDo9IEZhbHNlIDsKCgogICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogICAgIC0tIFNvbWUgY29tbW9uIHV0aWwuICBmdW5jdGlvbnMKICAgICAtLSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgLS0gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLS0gRGVz
Y3JpcHRpb246IAogICAgIC0tICAgVGhlIENyb2FrIGZ1bmN0aW9ucyB3cml0ZSBhIHRleHQgc3Ry
aW5nIHRvCiAgICAgLS0gICB0aGUgY3VycmVudCBTVERFUlIgc3RyZWFtOyBDcm9hayB3aWxsIHdy
aXRlIHRoZSB0ZXh0CiAgICAgLS0gICBtZXNzYWdlIGFzIGlzOyBDcm9ha19MaW5lIHdpbGwgYXBw
ZW5kIGFuIEVPTCBzZXF1ZW5jZQogICAgIC0tCiAgICAgLS0gUGFyYW1ldGVyczoKICAgICAtLSAg
IE1lc3NhZ2UgIDogdGV4dCB0byBiZSB3cml0dGVuCiAgICAgLS0KICAgICAtLSBVc2FnZToKICAg
ICAtLSAgIAogICAgIC0tIFJldHVybnM6CiAgICAgLS0gICAKICAgICAtLSBFeGNlcHRpb25zOgog
ICAgIC0tICAgCiAgICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgQ3JvYWsgICAgICAoIE1lc3NhZ2UgIDog
aW4gU3RyaW5nICA6PSAiIik7IAogICBwcm9jZWR1cmUgQ3JvYWtfTGluZSAoIE1lc3NhZ2UgIDog
aW4gU3RyaW5nICA6PSAiIik7IAoKICAgLS1wcm9jZWR1cmUgQ3JvYWsgICAgICAoIE1lc3NhZ2Ug
IDogaW4gVF9TdHJpbmdfQnVmZmVyIDo9ICIiICk7IAogICAtLXByb2NlZHVyZSBDcm9ha19MaW5l
ICggTWVzc2FnZSAgOiBpbiBUX1N0cmluZ19CdWZmZXIgOj0gIiIgKTsgCiAgICAgICAgICAgIApl
bmQgQWRhTGliIDsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gTW9kdWxlICA6ICRSQ1NmaWxlOiBhZGFsaWItbGlz
dC5hZHMsdiAkCi0tIFZlcnNpb24gOiAkUmV2aXNpb246IDEuMSAkCi0tICAgICAgICAgICAkU3Rh
dGU6IEV4cCAkIDsgCi0tICAgICAgICAgICBMYXN0IHVwZGF0ZWQgJERhdGU6IDIwMDAvMTAvMTgg
MTk6NTA6MTMgJCBieSAkQXV0aG9yOiBlcmlrICQgCi0tIEF1dGhvciAgOiBFcmlrIFBlc3NlcnMK
LS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLS0gRGVzY3JpcHRpb24gOgotLSAgIFRoZSBBZGFMaWIuVHlwZXMuRGVz
Y3JpcHRvciBwYWNrYWdlIGlzIHRoZSBnZW5laXJjIGRlZmluaXRpb24KLS0gICBmb3IgYSBkYXRh
IHR5cGUgZGVzY3JpcHRvciB1bml0LgotLQotLSAgIFVzZSBleGFtcGxlOgotLQotLSAgICAgd2l0
aCBBZGFMaWIuVHlwZXMgOyAKLS0gICAgIHdpdGggQWRhTGliLlR5cGVzLkRlc2NyaXB0aW9uIDsK
LS0KLS0gICAgIHByb2NlZHVyZSBtYWluIGlzCi0tICAgICAgIHBhY2thZ2UgdHlwZXMgaXMgbmV3
IEFkYUxpYi5UeXBlcyA7Ci0tICAgICAgIHBhY2thZ2UgaW50ZWdlcl9kZXNjcmlwdG9yIGlzIG5l
dyB0eXBlcy5EZXNjcmlwdG9yIChJbnRlZ2VyLCAiPSIpIDsKLS0KLS0gICAgICAgdXNlIGludGVn
ZXJfZGVzY3JpcHRvciA7Ci0tICAgICAgIGZ1bmN0aW9uIGlzX0ludGVnZXIgKCBkZXNjIDogaW4g
VHlwZXMuVEMnQ2xhc3MgKSByZXR1cm4gQm9vbGVhbiAKLS0gICAgICAgICAgICAgcmVuYW1lcyBp
bnRlZ2VyX2Rlc2NyaXB0b3IuaXNfRWxlbWVudCA7Ci0tCi0tICAgICAgIGlkZXNjciA6IGludGVn
ZXJfZGVzY3JpcHRvci5UIDsKLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gQ2FsbGluZyBpbnRlcmZhY2UgOgot
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotLSBDaGFuZ2UgaGlzdG9yeSA6Ci0tCi0tICAkTG9nOiBhZGFsaWItbGlz
dC5hZHMsdiAkCi0tICBSZXZpc2lvbiAxLjEgIDIwMDAvMTAvMTggMTk6NTA6MTMgIGVyaWsKLS0g
IEluaXRpYWwgcmV2aXNpb24KLS0KLS0gIFJldmlzaW9uIDEuMiAgMjAwMC8xMC8xNiAxMzo1Njoy
NiAgZXJpawotLSAgQWRkaW5nIGhlYWRlciAuCi0tCi0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIENvcHlyaWdo
dCAoQykgMjAwMCwgRXJpayBQZXNzZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t
Ci0tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0ICAgICAgIC0tCi0tICAgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgR1BMIExpY2Vuc2Ugd2hpY2ggY29tZXMgICAgICAgICAgIC0tCi0tICAgd2l0
aCB0aGlzIExpYnJhcnkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0tCi0tICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIGV4
cGxpY2l0ICJhcy1pcyIgYmFzaXMgICAgIC0tCi0tICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgIC0tCi0tICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgICAgICAgIC0tCi0tICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdQTCBtYW5pZmVzdG8g
ICAgIC0tCi0tICAgd2l0aCB0aGlzIGxpYnJhcnksIGluIHRoZSBmaWxlIG5hbWVkICJHUExfTWFu
aWZlc3RvLnR4dCIuICAgIC0tCi0tICAgSWYgbm90LCBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhp
cyBsaWJyYXJ5IGZvciBhIGNvcHkuICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tCndpdGggQWRhbGli
Lkxpc3QgOwoKZ2VuZXJpYwogICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogICAgLS0gRGVmaW5lcyB0aGUgZGF0YXR5cGUgb2YgdGhlIGhhc2gga2V5CiAg
ICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB0eXBl
IFRfS2V5ICBpcyBwcml2YXRlIDsKCiAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAtLSBEZWZpbmVzIHRoZSBkYXRhdHlwZSBvZiB0aGUgaGFzaCB2
YWx1ZQogICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgdHlwZSBUX0VsZW0gaXMgcHJpdmF0ZSA7CgogICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLS0gRGVmaW5lcyB0aGUgbnVtYmVyIG9mIGJ1Y2tl
dHMgaW4gdGhlIGhhc2ggdGFibGUKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgIEJ1Y2tldHNfTWF4IDogTmF0dXJhbCA6PSA2NDsgIAoKICAgIC0t
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0tIERlZmlu
ZXMgdGhlIGhhc2ggZnVuY3Rpb24gdG8gdXNlIGZvciBtYXBwaW5nIGEKICAgIC0tIGtleSB2YWx1
ZSB0byBhIGJ1Y2tldAogICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAgd2l0aCBmdW5jdGlvbiBLZXlfSGFzaCAoCiAgICAgICAgICBLZXkgOiBUX0tl
eSApIAogICAgICByZXR1cm4gTmF0dXJhbDsgCgogICAgLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLS0gRnVuY3Rpb24gZm9yIHRlc3RpbmcgZXF1YWxp
dHkgb2YgdHdvIGtleSB2YWx1ZXMKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgIHdpdGggZnVuY3Rpb24gIj0iICgKICAgICAgICAgIEEsICAgICAg
ICAKICAgICAgICAgIEIgOiBUX0tleSApIAogICAgICByZXR1cm4gQm9vbGVhbjsgCgogICAgLS0g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLS0gQXV4IGZ1
bmN0aW9ucyBmb3IgY29udmVydGluZyB0byBhIHRleHQgc3RyaW5nIGZvcgogICAgLS0gb3V0cG91
dCB0byBhIHRleHQtc3RyZWFtOyB1c2VkIGZvciBkaXNwbGF5IG9mCiAgICAtLSBkdW1wIG1vZHVs
ZXMsIGFuZCBlcnJvciBtZXNzYWdlIHRleHR4CiAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB3aXRoIGZ1bmN0aW9uIFByaW50X0tleSAoCiAgICAg
ICAgICBBIDogVF9LZXkgKSAKICAgICAgcmV0dXJuIFN0cmluZzsgCiAgICB3aXRoIGZ1bmN0aW9u
IFByaW50X0VsZW0gKAogICAgICAgICAgQSA6IFRfRWxlbSApIAogICAgICByZXR1cm4gU3RyaW5n
OyAKcGFja2FnZSBBZGFMaWIuSGFzaGVzIGlzCgogICAgdHlwZSBUX0tleWVkX0VsZW1lbnQgaXMg
cHJpdmF0ZSA7CgogICAgdHlwZSBUX0hhc2ggaXMgbGltaXRlZCBwcml2YXRlIDsKCiAgICAtLXN1
YnR5cGUgVF9CdWNrZXRfSW5kZXggaXMgTmF0dXJhbCByYW5nZSAwLi5CdWNrZXRzX01heC0xIDsK
ICAgIC0tdHlwZSBUX0J1Y2tldF9GaWxsIGlzIGFycmF5IChUX0J1Y2tldF9JbmRleCkgb2YgTmF0
dXJhbCA7CiAgICB0eXBlIFRfU3RhdGlzdGljcyBpcwogICAgcmVjb3JkCiAgICAgICAgQ291bnQg
ICAgICAgICA6IE5hdHVyYWwgOj0gQnVja2V0c19NYXggOwogICAgICAgIEVudHJpZXMgICAgICAg
OiBOYXR1cmFsIDo9IDAgOwogICAgICAgIE5yX0luVXNlICAgICAgOiBOYXR1cmFsIHJhbmdlIDAg
Li4gQnVja2V0c19NYXggOj0gMCA7CiAgICAgICAgTWF4X1VzZSAgICAgICA6IE5hdHVyYWwgOj0g
MCA7CiAgICAgICAgQXZlcmFnZV9Vc2UgICA6IEZsb2F0IDo9IDAuMCA7CiAgICAgICAgU3RkZXZf
VXNlICAgICA6IEZsb2F0IDo9IDAuMCA7CiAgICAgICAgUGVyY19BYm92ZUF2ZyA6IEZsb2F0IDo9
IDAuMCA7CiAgICAgICAgLS1CdWNrZXRfRmlsbCAgIDogVF9CdWNrZXRfRmlsbCA6PSAob3RoZXJz
ID0+IDApIDsKICAgIGVuZCByZWNvcmQgOwoKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0tIEluaXRpYWxp
c2UKICAgIC0tIC0tLS0tLS0tLS0tCiAgICAtLSBEZXNjcmlwdGlvbjogSW5pdGlhbGlzZXMgdGhl
IGludGVybmFsIGRhdGEgc3RydWN0dXJlIChoYXNoLWJ1Y2tldAogICAgLS0gbGlzdHMpIHVzZWQg
dG8gc3RvcmUgdGhlIGhhc2ggZGF0YS4gVGhlIHByb2NlZHVyZSB3aWxsIGJlIGNhbGxlZAogICAg
LS0gYXV0b21hdGljYWxseSB0byBzZXQgdXAgdGhlIGhhc2ggYnVja2V0cyBmb3IgZmlyc3QgdXNl
OyB0aGUKICAgIC0tIHByb2NlZHVyZSBtYXkgYmUgY2FsbGVkIGxhdGVyIGV4cGxpY2l0bHkgdG8g
KHJlLSlpbml0aWFsaXNlCiAgICAtLSB0aGUgaGFzaCBidWNrZXRzLiBBbGwgY3VycmVudCBkYXRh
IHdpbGwgYmUgbG9zdC4KICAgIC0tCiAgICAtLSBDYWxsaW5nIGNvbnZlbnRpb246IEluaXRpYWxp
c2UgOwogICAgLS0KICAgIC0tIFBhcmFtZXRlcnM6IEhhc2ggc3RydWN0dXJlIHRvIGJlIHNldCB1
cC9pbml0aWFsaXNlZAogICAgLS0KICAgIC0tIFJldHVybnM6IEVtcHR5IGhhc2ggc3RydWN0dXJl
LCB0aHJvdWdoIHRoZSBvdXQgcGFyYW1ldGVyCiAgICAtLQogICAgLS0gRXhjZXB0aW9uczogbm9u
ZQogICAgLS0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHByb2NlZHVyZSBJbml0aWFsaXNlICgKICAgICAg
ICAgIEhhc2ggOiAgICBvdXQgVF9IYXNoICk7IAoKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0tIEFkZAog
ICAgLS0gLS0tLS0tLS0tLS0KICAgIC0tIERlc2NyaXB0aW9uOiBBZGRzIGFuIGVudHJ5IHRvIGEg
aGFzaCBkYXRhc3RydWN0dXJlCiAgICAtLQogICAgLS0gQ2FsbGluZyBjb252ZW50aW9uOiBBZGQg
KEhhc2gsIGtleSwgdmFsdWUpOwogICAgLS0gICAgICAgICAgICAgICAgICAgICBBZGQgKEhhc2gs
IGtleSwgdmFsdWUsIEZhbHNlKTsKICAgIC0tCiAgICAtLSBQYXJhbWV0ZXJzOiBIYXNoIHN0cnVj
dHVyZSB0aGUgZWxlbWVudCB3aWxsIGJlIGFkZGVkIHRvCiAgICAtLSAgICAgICAgICAgICBLZXkg
YXNzb2NpYXRlZCB3aXRoIHRoZSBoYXNoIGVudHJ5CiAgICAtLSAgICAgICAgICAgICBWYWx1ZSBh
c3NvY2lhdGVkIHdpdGggdGhlIGhhc2ggZW50cnkKICAgIC0tICAgICAgICAgICAgIE9wdGlvbmFs
bHk6IGJvb2xlYW4gdmFsdWUgZGlzYWxsb3dpbmcgcmVwbGFjaW5nCiAgICAtLSAgICAgICAgICAg
ICAgICAgb2YgYW4gZXhpc3RpbmcgZWxlbWVudCB3aXRoIHNhbWUga2V5CiAgICAtLQogICAgLS0g
UmV0dXJuczogVXBkYXRlZCBoYXNoIHN0cnVjdHVyZSwgdGhyb3VnaCB0aGUgaGFzaCBwYXJhbWV0
ZXIKICAgIC0tCiAgICAtLSBFeGNlcHRpb25zOiBub25lCiAgICAtLQogICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgcHJvY2VkdXJlIEFkZCAoCiAgICAgICAgICBIYXNoICAgICAgICAgIDogaW4gb3V0IFRfSGFz
aDsgICAgICAgICAKICAgICAgICAgIEtleSAgICAgICAgICAgOiBpbiAgICAgVF9LZXk7ICAgICAg
ICAgIAogICAgICAgICAgVmFsdWUgICAgICAgICA6IGluICAgICBUX0VsZW07ICAgICAgICAgCiAg
ICAgICAgICBBbGxvd19SZXBsYWNlIDogaW4gICAgIEJvb2xlYW4gOj0gVHJ1ZSApOyAKCiAgICAt
LSAgIHByb2NlZHVyZSBEZWxldGUgKCBrZXkgIDogaW4gU3RyaW5nIDsgCiAgICAtLSAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlIDogaW4gVF9FbGVtICkgOwoKICAgIC0tIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0t
IERlbGV0ZQogICAgLS0gLS0tLS0tLS0tLS0KICAgIC0tIERlc2NyaXB0aW9uOiBEZWxldGVzIGFu
IGVudHJ5IGZyb20gYSBoYXNoIGRhdGFzdHJ1Y3R1cmUKICAgIC0tCiAgICAtLSBDYWxsaW5nIGNv
bnZlbnRpb246IERlbGV0ZSAoSGFzaCwga2V5KTsKICAgIC0tCiAgICAtLSBQYXJhbWV0ZXJzOiBI
YXNoIHN0cnVjdHVyZSB0aGUgZWxlbWVudCB3aWxsIGJlIGFkZGVkIHRvCiAgICAtLSAgICAgICAg
ICAgICBLZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYXNoIGVudHJ5IHRvIGJlIGRlbGV0ZWQKICAg
IC0tCiAgICAtLSBSZXR1cm5zOiBVcGRhdGVkIGhhc2ggc3RydWN0dXJlLCB0aHJvdWdoIHRoZSBo
YXNoIHBhcmFtZXRlcgogICAgLS0KICAgIC0tIEV4Y2VwdGlvbnM6IEFkYWxpYi5LZXlfTm90X0Zv
dW5kIC0gTm8gZW50cnkgZm91bmQgZm9yIGdpdmVuIGtleQogICAgLS0KICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ICAgIHByb2NlZHVyZSBEZWxldGUgKAogICAgICAgICAgSGFzaCA6IGluIG91dCBUX0hhc2g7IAog
ICAgICAgICAgS2V5ICA6IGluICAgICBUX0tleSAgICk7IAoKICAgIC0tICAgZnVuY3Rpb24gaXNf
UHJlc2VudCAoIGtleSAgIDogU3RyaW5nIDsgCiAgICAtLSAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZSA6IFRfRWxlbSApIHJldHVybiBCb29sZWFuIDsKCiAgICBmdW5jdGlvbiBJc19QcmVz
ZW50ICgKICAgICAgICAgIEhhc2ggOiBUX0hhc2g7IAogICAgICAgICAgS2V5ICA6IFRfS2V5ICAg
KSAKICAgICAgcmV0dXJuIEJvb2xlYW47IAoKICAgIC0tICAgZnVuY3Rpb24gZ2V0X1ZhbHVlICgg
a2V5ICAgOiBTdHJpbmcgKSByZXR1cm4gVF9LZXllZF9FbGVtZW50IDsKICAgIC0tCiAgICAtLSAg
IGZ1bmN0aW9uIGdldF9WYWx1ZSAoIGtleSAgIDogU3RyaW5nICkgcmV0dXJuIFRfRWxlbSA7CgoK
ICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgIC0tIGdldF9LZXkgYW5kIGdldF9WYWx1ZQogICAgLS0gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAtLSBEZXNjcmlwdGlvbjogRnJvbSBhbiBpbnRlcm5hbCBUX0tl
eWVkX0VsZW1lbnQgc3RydWN0dXJlLCByZXRyaWV2ZQogICAgLS0gdGhlIHZhbHVlIG9mIHRoZSBr
ZXkgcmVzcC4gdGhlIGFzc29jaWF0ZWQgdmFsdWUuCiAgICAtLQogICAgLS0gQ2FsbGluZyBjb252
ZW50aW9uOiAKICAgIC0tICAgICBkZWNsYXJlCiAgICAtLSAgICAgICAga2V5IDogU3RyaW5nICAg
ICAgOj0gZ2V0X0tleSAgIChrZXllZF9lbGVtKSA7CiAgICAtLSAgICAgICAgdmFsIDogPGVsZW0g
dHlwZT4gOj0gZ2V0X1ZhbHVlIChrZXllZF9lbGVtKSA7CiAgICAtLSAgICAgYmVnaW4KICAgIC0t
ICAgICAgICAgLi4gCiAgICAtLSAgICAgZW5kIDsKICAgIC0tICAgICAgICAKICAgIC0tCiAgICAt
LSBQYXJhbWV0ZXJzOiBrZXllZC1lbGVtZW50IHZhcmlhYmxlIG9yIGNvbnN0YW50CiAgICAtLQog
ICAgLS0gUmV0dXJuczogZ2V0X0tleSByZXR1cm5zIGEgc3RyaW5nIHZhbHVlIHdpdGgga2V5ZWQg
ZWxlbWVudCBIS0VZCiAgICAtLSAgICAgICAgICBnZXRfVmFsdWUgcmV0dXJucyB0aGUgdmFsdWUg
b2YgdGhlIGFzc29jaWF0ZWQgSFZBTAogICAgLS0KICAgIC0tIEV4Y2VwdGlvbnM6IG5vbmUKICAg
IC0tCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICBmdW5jdGlvbiBHZXRfS2V5ICgKICAgICAgICAgIEVsZW0g
OiBUX0tleWVkX0VsZW1lbnQgKSAKICAgICAgcmV0dXJuIFRfS2V5OyAKCiAgICBmdW5jdGlvbiBH
ZXRfVmFsdWUgKAogICAgICAgICAgRWxlbSA6IFRfS2V5ZWRfRWxlbWVudCApIAogICAgICByZXR1
cm4gVF9FbGVtOyAKCiAgICBmdW5jdGlvbiBHZXRfVmFsdWUgKAogICAgICAgICAgSGFzaCA6IFRf
SGFzaDsgCiAgICAgICAgICBLZXkgIDogVF9LZXkgICApIAogICAgICByZXR1cm4gVF9FbGVtOyAK
CiAgICAtLSAgIHByb2NlZHVyZSBMaXN0X0tleXMgOwogICAgLS0gICBmdW5jdGlvbiBnZXRfS2V5
ICAgKCBpbmRleCA6IE5hdHVyYWwgKSByZXR1cm4gU3RyaW5nIDsKICAgIC0tICAgZnVuY3Rpb24g
S2V5X0NvdW50IHJldHVybiBOYXR1cmFsIDsKICAgIC0tCgogICAgLS1mb3JlYWNoIHByb2NlZHVy
ZQoKICAgIC0tZm9yZWFjaC1zb3J0ZWQgcHJvY2VkdXJlCgogICAgLS1CdWNrZXQgdXNlL3N0YXRz
IGluZm8KCiAgICAtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAtLSBTdGF0aXN0aWNzCiAgICAtLSAtLS0tLS0tLS0t
CiAgICAtLSBEZXNjcmlwdGlvbjogUmV0dXJucyBzdGF0aXN0aWNzIGRhdGEgb24gY3VycmVudCBi
dWNrZXQgdXNhZ2UuCiAgICAtLQogICAgLS0gQ2FsbGluZyBjb252ZW50aW9uOiBTdGF0aXN0Y2lz
IChzdGF0cykgOwogICAgLS0KICAgIC0tIFBhcmFtZXRlcnM6ICdzdGF0cycgcmVjb3JkIHJldHVy
bmluZyBzdGF0aXN0aWNzIGRhdGEgZm9yIHByaW50aW5nCiAgICAtLSBvciBmdXJ0aGVyIHByb2Nl
c3Npbmc6CiAgICAtLSAgIHN0YXRzLmNvdW50CiAgICAtLSAgIHN0YXRzLk5yX2luVXNlCiAgICAt
LSAgIHN0YXRzLmF2ZXJhZ2VfdXNlCiAgICAtLSAgIHN0YXRzLnN0ZGV2X3VzZQogICAgLS0gICBz
dGF0cy5wZXJjZW50YWdlX292ZXJfYXZlcmFnZQogICAgLS0gICBzdGF0cy5idWNrZXRfZmlsbAog
ICAgLS0KICAgIC0tIFJldHVybnM6IG5vbmUKICAgIC0tCiAgICAtLSBFeGNlcHRpb25zOiBub25l
CiAgICAtLQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgcHJvY2VkdXJlIFN0YXRpc3RpY3MgKAogICAgICAg
ICAgSGFzaCAgOiBpbiAgICAgVF9IYXNoOyAgICAgIAogICAgICAgICAgU3RhdHMgOiAgICBvdXQg
VF9TdGF0aXN0aWNzICk7IAoKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0tIGR1bXBfSGFzaAogICAgLS0g
LS0tLS0tLS0tCiAgICAtLSBEZXNjcmlwdGlvbjogV3JpdGVzIGEgZHVtcCBvZiB0aGUgY3VycmVu
dCBoYXNoIGNvbnRlbnRzIGluCiAgICAtLSBodW1hbi0oYWxtb3N0LSlyZWFkYWJsZSBmb3JtIHRv
IHRoZSBjdXJyZW50IFNUREVSUiBzdHJlYW07CiAgICAtLSBtYWlubHkgbWVhbnQgZm9yIHByb2dy
YW0gZGVidWdnaW5nIHB1cnBvc2VzLgogICAgLS0KICAgIC0tIENhbGxpbmcgY29udmVudGlvbjog
ZHVtcF9IYXNoIDsKICAgIC0tCiAgICAtLSBQYXJhbWV0ZXJzOiBub25lCiAgICAtLQogICAgLS0g
UmV0dXJuczogbm9uZQogICAgLS0KICAgIC0tIEV4Y2VwdGlvbnM6IG5vbmUKICAgIC0tCiAgICAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAgICBwcm9jZWR1cmUgRHVtcF9TdGF0aXN0aWNzICgKICAgICAgICAgIEhhc2gg
OiBpbiAgICAgVF9IYXNoICk7IAoKICAgIC0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIC0tIGR1bXBfU3RhdGlzdGlj
cwogICAgLS0gLS0tLS0tLS0tLS0tLS0tCiAgICAtLSBEZXNjcmlwdGlvbjogV3JpdGVzIGEgZHVt
cCBvZiB0aGUgY3VycmVudCBoYXNoIHN0YXRpc3RpY3MgaW4KICAgIC0tIGh1bWFuLShhbG1vc3Qt
KXJlYWRhYmxlIGZvcm0gdG8gdGhlIGN1cnJlbnQgU1RERVJSIHN0cmVhbTsKICAgIC0tIG1haW5s
eSBtZWFudCBmb3IgcHJvZ3JhbSBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAtLQogICAgLS0gQ2Fs
bGluZyBjb252ZW50aW9uOiBkdW1wX1N0YXRpc3RpY3MgOwogICAgLS0KICAgIC0tIFBhcmFtZXRl
cnM6IG5vbmUKICAgIC0tCiAgICAtLSBSZXR1cm5zOiBub25lCiAgICAtLQogICAgLS0gRXhjZXB0
aW9uczogbm9uZQogICAgLS0KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHByb2NlZHVyZSBEdW1wX0hhc2gg
KAogICAgICAgICAgSGFzaCA6IGluICAgICBUX0hhc2ggKTsgCgogICAgcHJpdmF0ZQoKICAgIHR5
cGUgVF9LZXllZF9FbGVtZW50IChEZWZpbmVkOiBCb29sZWFuIDo9IFRSVUUpIGlzCiAgICByZWNv
cmQKICAgICAgICBjYXNlIERlZmluZWQgaXMKICAgICAgICAgICAgd2hlbiBUUlVFID0+CiAgICAg
ICAgICAgICAgICBIS2V5IDogVF9LZXkgOwogICAgICAgICAgICAgICAgSFZhbCA6IGFsaWFzZWQg
VF9FbGVtIDsKICAgICAgICAgICAgd2hlbiBGYWxzZSA9PgogICAgICAgICAgICAgICAgbnVsbCA7
CiAgICAgICAgZW5kIGNhc2UgOwogICAgZW5kIHJlY29yZCA7CgogICAgc3VidHlwZSBUX0RlZmlu
ZWRfS2V5ZWRfRWxlbWVudCBpcyBUX0tleWVkX0VsZW1lbnQoRGVmaW5lZCA9PiBUUlVFKSA7Cgog
ICAgZnVuY3Rpb24gIj0iICgKICAgICAgICAgIEEsICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgIEIgOiBUX0RlZmluZWRfS2V5ZWRfRWxlbWVudCApIAogICAgICByZXR1cm4gQm9v
bGVhbjsgCgogICAgcGFja2FnZSBCdWNrZXQgaXMgbmV3IEFkYWxpYi5MaXN0ICggVF9EZWZpbmVk
X0tleWVkX0VsZW1lbnQsICI9IikgOwogICAgdXNlIEJ1Y2tldCA7CgogICAgc3VidHlwZSBUX0J1
Y2tldF9JbmRleCBpcyBOYXR1cmFsIHJhbmdlIDAuLkJ1Y2tldHNfTWF4LTEgOwogICAgdHlwZSBU
X0J1Y2tldF9BcnJheSBpcyBhcnJheSAoVF9CdWNrZXRfSW5kZXgpIG9mIEJ1Y2tldC5UX1Npbmds
ZV9MaXN0IDsKCiAgICB0eXBlIFRfSGFzaCBpcwogICAgcmVjb3JkCiAgICAgICAgVmVyc2lvbiAg
ICAgOiBOYXR1cmFsIDo9IDAgOwogICAgICAgIE5yX0VudHJpZXMgIDogTmF0dXJhbCA6PSAwIDsK
ICAgICAgICBCdWNrZXRfTGlzdCA6IFRfQnVja2V0X0FycmF5IDo9IChvdGhlcnMgPT4gQnVja2V0
Lk51bGxfQ29udGFpbmVyKSA7CiAgICBlbmQgcmVjb3JkIDsKCiAgICB0eXBlIFRfTG9jYXRpb24g
KEZvdW5kIDogQm9vbGVhbikgaXMKICAgIHJlY29yZAogICAgICAgIGNhc2UgRm91bmQgaXMKICAg
ICAgICAgICAgd2hlbiBUUlVFID0+CiAgICAgICAgICAgICAgICBCdWNrZXRfSW5kZXggOiBUX0J1
Y2tldF9JbmRleCA6PSAwIDsKICAgICAgICAgICAgICAgIExpc3RfSW5kZXggICA6IFBvc2l0aXZl
ICAgICAgIDo9IDEgOwogICAgICAgICAgICB3aGVuIEZBTFNFID0+CiAgICAgICAgICAgICAgICBu
dWxsIDsKICAgICAgICBlbmQgY2FzZTsKICAgIGVuZCByZWNvcmQgOwoKICAgIGZ1bmN0aW9uIEl0
ZW1fQXQgKAogICAgICAgICAgSGFzaCAgICAgOiBUX0hhc2g7ICAgIAogICAgICAgICAgTG9jYXRp
b24gOiBUX0xvY2F0aW9uICkgCiAgICAgIHJldHVybiBUX0tleWVkX0VsZW1lbnQ7IAoKICAgIGZ1
bmN0aW9uIExvY2F0ZSAoCiAgICAgICAgICBIYXNoIDogVF9IYXNoOyAKICAgICAgICAgIEtleSAg
OiBUX0tleSAgICkgCiAgICAgIHJldHVybiBUX0xvY2F0aW9uOyAKCiAgICBmdW5jdGlvbiBCdWNr
ZXRpbmRleCAoCiAgICAgICAgICBLZXkgOiBUX0tleSApIAogICAgICByZXR1cm4gVF9CdWNrZXRf
SW5kZXg7IAoKZW5kIEFkYUxpYi5IYXNoZXMgOwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBNb2R1bGUgIDogJFJD
U2ZpbGU6IGFkYWxpYi1saXN0LmFkcyx2ICQKLS0gVmVyc2lvbiA6ICRSZXZpc2lvbjogMS4xICQK
LS0gICAgICAgICAgICRTdGF0ZTogRXhwICQgOyAKLS0gICAgICAgICAgIExhc3QgdXBkYXRlZCAk
RGF0ZTogMjAwMC8xMC8xOCAxOTo1MDoxMyAkIGJ5ICRBdXRob3I6IGVyaWsgJCAKLS0gQXV0aG9y
ICA6IEVyaWsgUGVzc2VycwotLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBEZXNjcmlwdGlvbiA6Ci0tICAgVGhl
IEFkYUxpYi5UeXBlcy5EZXNjcmlwdG9yIHBhY2thZ2UgaXMgdGhlIGdlbmVpcmMgZGVmaW5pdGlv
bgotLSAgIGZvciBhIGRhdGEgdHlwZSBkZXNjcmlwdG9yIHVuaXQuCi0tCi0tICAgVXNlIGV4YW1w
bGU6Ci0tCi0tICAgICB3aXRoIEFkYUxpYi5UeXBlcyA7IAotLSAgICAgd2l0aCBBZGFMaWIuVHlw
ZXMuRGVzY3JpcHRpb24gOwotLQotLSAgICAgcHJvY2VkdXJlIG1haW4gaXMKLS0gICAgICAgcGFj
a2FnZSB0eXBlcyBpcyBuZXcgQWRhTGliLlR5cGVzIDsKLS0gICAgICAgcGFja2FnZSBpbnRlZ2Vy
X2Rlc2NyaXB0b3IgaXMgbmV3IHR5cGVzLkRlc2NyaXB0b3IgKEludGVnZXIsICI9IikgOwotLQot
LSAgICAgICB1c2UgaW50ZWdlcl9kZXNjcmlwdG9yIDsKLS0gICAgICAgZnVuY3Rpb24gaXNfSW50
ZWdlciAoIGRlc2MgOiBpbiBUeXBlcy5UQydDbGFzcyApIHJldHVybiBCb29sZWFuIAotLSAgICAg
ICAgICAgICByZW5hbWVzIGludGVnZXJfZGVzY3JpcHRvci5pc19FbGVtZW50IDsKLS0KLS0gICAg
ICAgaWRlc2NyIDogaW50ZWdlcl9kZXNjcmlwdG9yLlQgOwotLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBDYWxs
aW5nIGludGVyZmFjZSA6Ci0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIENoYW5nZSBoaXN0b3J5IDoKLS0KLS0g
ICRMb2c6IGFkYWxpYi1saXN0LmFkcyx2ICQKLS0gIFJldmlzaW9uIDEuMSAgMjAwMC8xMC8xOCAx
OTo1MDoxMyAgZXJpawotLSAgSW5pdGlhbCByZXZpc2lvbgotLQotLSAgUmV2aXNpb24gMS4yICAy
MDAwLzEwLzE2IDEzOjU2OjI2ICBlcmlrCi0tICBBZGRpbmcgaGVhZGVyIC4KLS0KLS0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLS0gQ29weXJpZ2h0IChDKSAyMDAwLCBFcmlrIFBlc3NlcnMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLS0KLS0gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICBUaGlzIHByb2dy
YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgICAgICAgLS0KLS0g
ICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHUEwgTGljZW5zZSB3aGljaCBjb21lcyAgICAg
ICAgICAgLS0KLS0gICB3aXRoIHRoaXMgTGlicmFyeS4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgb24gYW4gZXhwbGljaXQgImFzLWlzIiBiYXNpcyAgICAgLS0KLS0gICBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICAgLS0K
LS0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICAgICAgICAgLS0KLS0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgR1BMIG1hbmlmZXN0byAgICAgLS0KLS0gICB3aXRoIHRoaXMgbGlicmFyeSwgaW4gdGhlIGZp
bGUgbmFtZWQgIkdQTF9NYW5pZmVzdG8udHh0Ii4gICAgLS0KLS0gICBJZiBub3QsIGNvbnRhY3Qg
dGhlIGF1dGhvciBvZiB0aGlzIGxpYnJhcnkgZm9yIGEgY29weS4gICAgICAgLS0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLS0Kd2l0aCBCQy5Db250YWluZXJzOyAKd2l0aCBCQy5Db250YWluZXJzLkxpc3RzOwp3aXRo
IEJDLkNvbnRhaW5lcnMuTGlzdHMuU2luZ2xlOwp3aXRoIEdsb2JhbF9IZWFwOwoKZ2VuZXJpYwog
ICB0eXBlIFRfRWxlbSBpcyBwcml2YXRlIDsKICAgd2l0aCBmdW5jdGlvbiAiPSIgKGEsIGIgOiBU
X0VsZW0pIHJldHVybiBCb29sZWFuIDsKcGFja2FnZSBBZGFMaWIuTGlzdCBpcwoKICBwYWNrYWdl
IENvbnRhaW5lcnMgaXMgbmV3IEJDLkNvbnRhaW5lcnMgKEl0ZW0gPT4gVF9FbGVtLCAiPSIgPT4g
Ij0iKTsKCiAgcGFja2FnZSBMaXN0cyBpcyBuZXcgQ29udGFpbmVycy5MaXN0czsKCiAgcGFja2Fn
ZSBMUyBpcyBuZXcgTGlzdHMuU2luZ2xlIChTdG9yYWdlID0+IEdsb2JhbF9IZWFwLlN0b3JhZ2Up
OwoKICBzdWJ0eXBlIFRfU2luZ2xlX0xpc3QgaXMgTFMuTGlzdCA7CgogIHN1YnR5cGUgSXRlcmF0
b3IgaXMgQ29udGFpbmVycy5JdGVyYXRvciA7CgogIGZ1bmN0aW9uIE51bGxfQ29udGFpbmVyIHJl
dHVybiBUX1NpbmdsZV9MaXN0IAogICAgICAgcmVuYW1lcyBMUy5OdWxsX0NvbnRhaW5lcjsKCiAg
ZnVuY3Rpb24gIj0iIChMLCBSIDogVF9TaW5nbGVfTGlzdCkgcmV0dXJuIEJvb2xlYW4gCiAgICAg
ICByZW5hbWVzIExTLiI9IiA7CiAgIC0tICBSZXR1cm4gVHJ1ZSBpZiBhbmQgb25seSBpZiBib3Ro
IGxpc3RzIGFyZSBudWxsIG9yIHN0cnVjdHVyYWxseQogICAtLSAgc2hhcmUgdGhlIHNhbWUgbGlz
dC4KCiAgcHJvY2VkdXJlIENsZWFyIChMIDogaW4gb3V0IFRfU2luZ2xlX0xpc3QpIAogICAgICAg
cmVuYW1lcyBMUy5DbGVhciA7CiAgIC0tICBJZiB0aGUgbGlzdCBpcyBub3QgbnVsbCwgZGVzdHJv
eSB0aGlzIGFsaWFzIHRvIHRoZSBsaXN0LCBtYWtlCiAgIC0tICB0aGUgbGlzdCBudWxsLCBhbmQg
cmVjbGFpbSB0aGUgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggYW55CiAgIC0tICB1bnJlYWNoYWJs
ZSBpdGVtcy4KICAKCiAgIHByb2NlZHVyZSBJbnNlcnQgKEwgOiBpbiBvdXQgVF9TaW5nbGVfTGlz
dDsgRWxlbSA6IFRfRWxlbSkgCiAgICAgICByZW5hbWVzIExTLkluc2VydCA7CiAgIC0tICBBZGQg
dGhlIGl0ZW0gdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgSW5zZXJ0IChM
IDogaW4gb3V0IFRfU2luZ2xlX0xpc3Q7IEZyb21fTGlzdCA6IGluIG91dCBUX1NpbmdsZV9MaXN0
KSAKICAgICAgIHJlbmFtZXMgTFMuSW5zZXJ0IDsKICAgLS0gIEFkZCBGcm9tX0xpc3QgdG8gdGhl
IGhlYWQgb2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgSW5zZXJ0IChMIDogaW4gb3V0IFRfU2lu
Z2xlX0xpc3Q7IEVsZW0gOiBUX0VsZW07IEJlZm9yZSA6IFBvc2l0aXZlKSAKICAgICAgIHJlbmFt
ZXMgTFMuSW5zZXJ0IDsKICAgLS0gIEFkZCB0aGUgaXRlbSBiZWZvcmUgdGhlIGdpdmVuIGluZGV4
IGl0ZW0gaW4gdGhlIGxpc3Q7IGlmIEJlZm9yZQogICAtLSAgaXMgMSwgdGhlIGl0ZW0gaXMgYWRk
ZWQgdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgSW5zZXJ0IChMIDogaW4g
b3V0IFRfU2luZ2xlX0xpc3Q7CiAgICAgICAgICAgICAgICAgICAgIEZyb21fTGlzdCA6IGluIG91
dCBUX1NpbmdsZV9MaXN0OwogICAgICAgICAgICAgICAgICAgICBCZWZvcmUgOiBQb3NpdGl2ZSkg
CiAgICAgICByZW5hbWVzIExTLkluc2VydCA7CiAgIC0tICBBZGQgdGhlIGxpc3QgYmVmb3JlIHRo
ZSBnaXZlbiBpbmRleCBpdGVtIGluIHRoZSBsaXN0OyBpZiBCZWZvcmUKICAgLS0gIGlzIDEsIHRo
ZSBsaXN0IGlzIGFkZGVkIHRvIHRoZSBoZWFkIG9mIHRoZSBsaXN0LgoKICAgcHJvY2VkdXJlIEFw
cGVuZCAoTCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OyBFbGVtIDogVF9FbGVtKSAKICAgICAgIHJl
bmFtZXMgTFMuQXBwZW5kIDsKICAgLS0gIEFkZCB0aGUgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBs
aXN0LgoKICAgcHJvY2VkdXJlIEFwcGVuZCAoTCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OyBGcm9t
X0xpc3QgOiBpbiBvdXQgVF9TaW5nbGVfTGlzdCkgCiAgICAgICByZW5hbWVzIExTLkFwcGVuZCA7
CiAgIC0tICBBZGQgdGhlIGdpdmVuIGxpc3QgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KCiAgIHBy
b2NlZHVyZSBBcHBlbmQgKEwgOiBpbiBvdXQgVF9TaW5nbGVfTGlzdDsgRWxlbSA6IFRfRWxlbTsg
QWZ0ZXIgOiBQb3NpdGl2ZSkgCiAgICAgICByZW5hbWVzIExTLkFwcGVuZCA7CiAgIC0tICBBZGQg
dGhlIGl0ZW0gYWZ0ZXIgdGhlIGdpdmVuIGluZGV4IGl0ZW0gaW4gdGhlIGxpc3QuCgogICBwcm9j
ZWR1cmUgQXBwZW5kIChMIDogaW4gb3V0IFRfU2luZ2xlX0xpc3Q7CiAgICAgICAgICAgICAgICAg
ICAgIEZyb21fTGlzdCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OwogICAgICAgICAgICAgICAgICAg
ICBBZnRlciA6IFBvc2l0aXZlKSAKICAgICAgIHJlbmFtZXMgTFMuQXBwZW5kIDsKICAgLS0gIEFk
ZCBGcm9tX0xpc3QgYWZ0ZXIgdGhlIGdpdmVuIGluZGV4IGl0ZW0gaW4gdGhlIGxpc3QuCgogICBw
cm9jZWR1cmUgUmVtb3ZlIChMIDogaW4gb3V0IFRfU2luZ2xlX0xpc3Q7IEZyb20gOiBQb3NpdGl2
ZSkgCiAgICAgICByZW5hbWVzIExTLlJlbW92ZSA7CiAgIC0tICBSZW1vdmUgdGhlIGl0ZW0gYXQg
dGhlIGdpdmVuIGluZGV4IGluIHRoZSBsaXN0LgoKICAgcHJvY2VkdXJlIFB1cmdlIChMIDogaW4g
b3V0IFRfU2luZ2xlX0xpc3Q7IEZyb20gOiBQb3NpdGl2ZSkgCiAgICAgICByZW5hbWVzIExTLlB1
cmdlIDsKICAgLS0gIFJlbW92ZSBhbGwgdGhlIGl0ZW1zIGluIHRoZSBsaXN0IHN0YXJ0aW5nIGF0
IHRoZSBnaXZlbiBpbmRleCwKICAgLS0gIGluY2x1c2l2ZS4KCiAgIHByb2NlZHVyZSBQdXJnZSAo
TCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OyBGcm9tIDogUG9zaXRpdmU7IENvdW50IDogUG9zaXRp
dmUpIAogICAgICAgcmVuYW1lcyBMUy5QdXJnZSA7CiAgIC0tICBSZW1vdmUgYWxsIHRoZSBpdGVt
cyBpbiB0aGUgbGlzdCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXgsCiAgIC0tICBpbmNsdXNp
dmUsIGZvciBhIHRvdGFsIG9mIGNvdW50IGl0ZW1zLgoKICAgcHJvY2VkdXJlIFByZXNlcnZlIChM
IDogaW4gb3V0IFRfU2luZ2xlX0xpc3Q7IEZyb20gOiBQb3NpdGl2ZSkgCiAgICAgICByZW5hbWVz
IExTLlByZXNlcnZlIDsKICAgLS0gIFJlbW92ZSBhbGwgdGhlIGl0ZW1zIGluIHRoZSBsaXN0IGV4
Y2VwdCB0aG9zZSBzdGFydGluZyBhdCB0aGUKICAgLS0gIGdpdmVuIGluZGV4LCBpbmNsdXNpdmUu
CgogICBwcm9jZWR1cmUgUHJlc2VydmUgKEwgOiBpbiBvdXQgVF9TaW5nbGVfTGlzdDsgRnJvbSA6
IFBvc2l0aXZlOyBDb3VudCA6IFBvc2l0aXZlKSAKICAgICAgIHJlbmFtZXMgTFMuUHJlc2VydmUg
OwogICAtLSAgUmVtb3ZlIGFsbCB0aGUgaXRlbXMgaW4gdGhlIGxpc3QgZXhjZXB0IHRob3NlIHN0
YXJ0aW5nIGF0IHRoZQogICAtLSAgZ2l2ZW4gaW5kZXgsIGluY2x1c2l2ZSwgZm9yIGEgdG90YWwg
b2YgY291bnQgaXRlbXMuCgogICBwcm9jZWR1cmUgU2hhcmUgKEwgOiBpbiBvdXQgVF9TaW5nbGVf
TGlzdDsgCiAgICAgICAgICAgICAgICAgICAgV2l0aF9MaXN0IDogVF9TaW5nbGVfTGlzdDsgU3Rh
cnRpbmdfQXQgOiBQb3NpdGl2ZSkgCiAgICAgICByZW5hbWVzIExTLlNoYXJlIDsKICAgLS0gIENs
ZWFyIHRoZSBsaXN0LCB0aGVuLCBpZiB0aGUgZ2l2ZW4gbGlzdCBpcyBub3QgbnVsbCwgc2V0IHRo
ZQogICAtLSAgbGlzdCB0byBzdHJ1Y3R1cmFsbHkgc2hhcmUgd2l0aCB0aGUgaGVhZCBvZiB0aGUg
Z2l2ZW4gbGlzdCwKICAgLS0gIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBpbmRleC4KCiAgIHByb2Nl
ZHVyZSBTaGFyZV9IZWFkIChMIDogaW4gb3V0IFRfU2luZ2xlX0xpc3Q7IFdpdGhfTGlzdCA6IGlu
IFRfU2luZ2xlX0xpc3QpIAogICAgICAgcmVuYW1lcyBMUy5TaGFyZV9IZWFkIDsKICAgLS0gIENs
ZWFyIHRoZSBsaXN0LCB0aGVuLCBpZiB0aGUgZ2l2ZW4gbGlzdCBpcyBub3QgbnVsbCwgc2V0IHRo
ZQogICAtLSAgbGlzdCB0byBzdHJ1Y3R1cmFsbHkgc2hhcmUgd2l0aCB0aGUgaGVhZCBvZiB0aGUg
Z2l2ZW4gbGlzdC4KCiAgIHByb2NlZHVyZSBTaGFyZV9Gb290IChMIDogaW4gb3V0IFRfU2luZ2xl
X0xpc3Q7IFdpdGhfTGlzdCA6IGluIFRfU2luZ2xlX0xpc3QpIAogICAgICAgcmVuYW1lcyBMUy5T
aGFyZV9Gb290IDsKICAgLS0gIENsZWFyIHRoZSBsaXN0LCB0aGVuLCBpZiB0aGUgZ2l2ZW4gbGlz
dCBpcyBub3QgbnVsbCwgc2V0IHRoZQogICAtLSAgbGlzdCB0byBzdHJ1Y3R1cmFsbHkgc2hhcmUg
d2l0aCB0aGUgZW5kIG9mIHRoZSBnaXZlbiBsaXN0LgoKICAgcHJvY2VkdXJlIFN3YXBfVGFpbCAo
TCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OyBXaXRoX0xpc3QgOiBpbiBvdXQgVF9TaW5nbGVfTGlz
dCkgCiAgICAgICByZW5hbWVzIExTLlN3YXBfVGFpbCA7CiAgIC0tICBUaGUgZ2l2ZW4gbGlzdCBt
dXN0IHJlcHJlc2VudCB0aGUgaGVhZCBvZiBhIGxpc3QsIHdoaWNoIG1heSBiZQogICAtLSAgbnVs
bC4gU2V0IHRoZSB0YWlsIG9mIHRoZSBsaXN0ICh3aGljaCBtYXkgYmUgbnVsbCkgdG8gZGVub3Rl
CiAgIC0tICB0aGUgZ2l2ZW4gbGlzdCAod2hpY2ggbWF5IGJlIG51bGwpLCBhbmQgc2V0IHRoZSBn
aXZlbiBsaXN0IHRvCiAgIC0tICB0aGUgb3JpZ2luYWwgdGFpbCBvZiB0aGUgbGlzdC4gSWYgaXQg
aXMgbm90IG51bGwsIHRoZQogICAtLSAgcHJlZGVjZXNzb3Igb2YgdGhlIG5ldyB0YWlsIG9mIHRo
ZSBsaXN0IGlzIHNldCB0byBiZSB0aGUgaGVhZAogICAtLSAgb2YgdGhlIGxpc3QuIElmIGl0IGlz
IG5vdCBudWxsLCB0aGUgcHJlZGVjZXNzb3Igb2YgdGhlIG5ldyBoZWFkCiAgIC0tICBvZiB0aGUg
Z2l2ZW4gbGlzdCBpcyBzZXQgdG8gYmUgbnVsbC4KCiAgIHByb2NlZHVyZSBUYWlsIChMIDogaW4g
b3V0IFRfU2luZ2xlX0xpc3QpIAogICAgICAgcmVuYW1lcyBMUy5UYWlsIDsKICAgLS0gIFRoZSBs
aXN0IG11c3Qgbm90IGJlIG51bGwuIFNldCB0aGUgbGlzdCB0byBub3cgZGVub3RlIGl0cyB0YWls
CiAgIC0tICAod2hpY2ggbWF5IGJlIG51bGwpLCBhbmQgcmVjbGFpbSB0aGUgc3RvcmFnZSBhc3Nv
Y2lhdGVkIHdpdGgKICAgLS0gIGFueSB1bnJlYWNoYWJsZSBpdGVtcy4KCiAgIHByb2NlZHVyZSBT
ZXRfSGVhZCAoTCA6IGluIG91dCBUX1NpbmdsZV9MaXN0OyBFbGVtIDogVF9FbGVtKSAKICAgICAg
IHJlbmFtZXMgTFMuU2V0X0hlYWQgOwogICAtLSAgU2V0IHRoZSBpdGVtIGF0IHRoZSBoZWFkIG9m
IHRoZSBsaXN0LgoKICAgcHJvY2VkdXJlIFNldF9JdGVtIChMIDogaW4gb3V0IFRfU2luZ2xlX0xp
c3Q7IEVsZW0gOiBUX0VsZW07IEF0X0xvYyA6IFBvc2l0aXZlKSAKICAgICAgIHJlbmFtZXMgTFMu
U2V0X0l0ZW0gOwogICAtLSAgU2V0IHRoZSBpdGVtIGF0IHRoZSBnaXZlbiBpbmRleC4KCiAgIGZ1
bmN0aW9uIExlbmd0aCAoTCA6IFRfU2luZ2xlX0xpc3QpIHJldHVybiBOYXR1cmFsIAogICAgICAg
cmVuYW1lcyBMUy5MZW5ndGggOwogICAtLSAgUmV0dXJuIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4g
dGhlIGxpc3QuCgogICBmdW5jdGlvbiBJc19OdWxsIChMIDogVF9TaW5nbGVfTGlzdCkgcmV0dXJu
IEJvb2xlYW4gCiAgICAgICByZW5hbWVzIExTLklzX051bGwgOwogICAtLSAgUmV0dXJuIFRydWUg
aWYgYW5kIG9ubHkgdGhlcmUgYXJlIG5vIGl0ZW1zIGluIHRoZSBsaXN0LgoKICAgZnVuY3Rpb24g
SXNfU2hhcmVkIChMIDogVF9TaW5nbGVfTGlzdCkgcmV0dXJuIEJvb2xlYW4gCiAgICAgICByZW5h
bWVzIExTLklzX1NoYXJlZCA7CiAgIC0tICBSZXR1cm4gVHJ1ZSBpZiBhbmQgb25seSBpZiB0aGUg
bGlzdCBoYXMgYW4gYWxpYXMuCgogICBmdW5jdGlvbiBIZWFkIChMIDogVF9TaW5nbGVfTGlzdCkg
cmV0dXJuIFRfRWxlbSAKICAgICAgIHJlbmFtZXMgTFMuSGVhZCA7CiAgIC0tICBSZXR1cm4gYSBj
b3B5IG9mIHRoZSBpdGVtIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0LgoKLS0gICBnZW5lcmljCi0t
ICAgICB3aXRoIHByb2NlZHVyZSBQcm9jZXNzIChFbGVtIDogaW4gb3V0IFRfRWxlbSk7Ci0tICAg
cHJvY2VkdXJlIFByb2Nlc3NfSGVhZCAoTCA6IGluIG91dCBUX1NpbmdsZV9MaXN0KSAKLS0gICAg
ICAgcmVuYW1lcyBMUy5Qcm9jZXNzX0hlYWQgOwogICAtLSAgQWNjZXNzIHRoZSBpdGVtIGF0IHRo
ZSBoZWFkIG9mIHRoZSBsaXN0LgoKICAgZnVuY3Rpb24gRm9vdCAoTCA6IFRfU2luZ2xlX0xpc3Qp
IHJldHVybiBUX0VsZW0gCiAgICAgICByZW5hbWVzIExTLkZvb3QgOwogICAtLSAgUmV0dXJuIGEg
Y29weSBvZiB0aGUgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgoKLS0gICBnZW5lcmljCi0t
ICAgICAgd2l0aCBwcm9jZWR1cmUgUHJvY2VzcyAoRWxlbSA6IGluIG91dCBUX0VsZW0pIDsKLS0g
ICBwcm9jZWR1cmUgUHJvY2Vzc19Gb290IChMIDogaW4gb3V0IFRfU2luZ2xlX0xpc3QpIAotLSAg
ICAgICByZW5hbWVzIEJDLkNvbnRhaW5lcnMuTGlzdHMuU2luZ2xlLlByb2Nlc3NfRm9vdCA7Ci0t
ICAgLS0gIEFjY2VzcyB0aGUgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgoKICAgZnVuY3Rp
b24gSXRlbV9BdCAoTCA6IFRfU2luZ2xlX0xpc3Q7IEluZGV4IDogUG9zaXRpdmUpIHJldHVybiBU
X0VsZW0gCiAgICAgICByZW5hbWVzIExTLkl0ZW1fQXQgOwogICAtLSAgUmV0dXJuIGEgY29weSBv
ZiB0aGUgaXRlbSBhdCB0aGUgZ2l2ZW4gaW5kZXguCgogICBmdW5jdGlvbiBOZXdfSXRlcmF0b3Ig
KEZvcl9UaGVfTGlzdCA6IFRfU2luZ2xlX0xpc3QpIHJldHVybiBDb250YWluZXJzLkl0ZXJhdG9y
J0NsYXNzIAogICAgICAgcmVuYW1lcyBMUy5OZXdfSXRlcmF0b3IgOwogICAtLSAgUmV0dXJuIGEg
cmVzZXQgSXRlcmF0b3IgYm91bmQgdG8gdGhlIHNwZWNpZmljIFRfU2luZ2xlX0xpc3QuCiAKCmVu
ZCBBZGFMaWIuTGlzdCA7Ci0tICBDb3B5cmlnaHQgKEMpIDE5OTQtMjAwMSBHcmFkeSBCb29jaCwg
RGF2aWQgV2VsbGVyIGFuZCBTaW1vbiBXcmlnaHQuCi0tICBBbGwgUmlnaHRzIFJlc2VydmVkLgot
LQotLSAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdAotLSAgICAgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBB
ZGEgQ29tbXVuaXR5Ci0tICAgICAgTGljZW5zZSB3aGljaCBjb21lcyB3aXRoIHRoaXMgTGlicmFy
eS4KLS0KLS0gICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlCi0tICAgICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZAotLSAgICAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS0gICAgICBQVVJQT1NFLiBTZWUgdGhlIEFk
YSBDb21tdW5pdHkgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotLSAgICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEFkYSBDb21tdW5pdHkKLS0gICAgICBMaWNlbnNl
IHdpdGggdGhpcyBsaWJyYXJ5LCBpbiB0aGUgZmlsZSBuYW1lZCAiQWRhIENvbW11bml0eQotLSAg
ICAgIExpY2Vuc2UiIG9yICJBQ0wiLiBJZiBub3QsIGNvbnRhY3QgdGhlIGF1dGhvciBvZiB0aGlz
IGxpYnJhcnkKLS0gICAgICBmb3IgYSBjb3B5LgotLQoKLS0gICRSQ1NmaWxlOiBiYy5hZHMsdiAk
Ci0tICAkUmV2aXNpb246IDEuOCAkCi0tICAkRGF0ZTogMjAwMS8wOS8yMiAxNzozMDoyNyAkCi0t
ICAkQXV0aG9yOiBzaW1vbiAkCgpwYWNrYWdlIEJDIGlzCgogICAtLSAgVGhpcyBpcyB0aGUgdG9w
IGxldmVsIHBhY2thZ2UgaW4gdGhlIEJvb2NoIENvbXBvbmVudCBIaWVyYXJjaHkuCgogICAtLSAg
VGhlIGZvbGxvd2luZyBleGNlcHRpb25zIG1heSBiZSByYWlzZWQgYnkgaW1wcm9wZXIgdXNlIG9m
IHRoZQogICAtLSAgQ29tcG9uZW50cy4KCiAgIENvbnRhaW5lcl9FcnJvciA6IGV4Y2VwdGlvbjsK
ICAgRHVwbGljYXRlIDogZXhjZXB0aW9uOwogICBJc19OdWxsIDogZXhjZXB0aW9uOwogICBOb3Rf
Rm91bmQgOiBleGNlcHRpb247CiAgIE5vdF9OdWxsIDogZXhjZXB0aW9uOwogICBOb3RfUm9vdCA6
IGV4Y2VwdGlvbjsKICAgT3ZlcmZsb3cgOiBleGNlcHRpb247CiAgIFJhbmdlX0Vycm9yIDogZXhj
ZXB0aW9uOwogICBSZWZlcmVuY2VkIDogZXhjZXB0aW9uOwogICBTdG9yYWdlX0Vycm9yIDogZXhj
ZXB0aW9uOwogICBTeW5jaHJvbml6YXRpb25fRXJyb3IgOiBleGNlcHRpb247CiAgIFVuZGVyZmxv
dyA6IGV4Y2VwdGlvbjsKCiAgIFNob3VsZF9IYXZlX0JlZW5fT3ZlcnJpZGRlbiA6IGV4Y2VwdGlv
bjsKICAgLS0gIFJhaXNlZCBpZiB0aGUgQ29tcG9uZW50cyBoYXZlIGZhaWxlZCB0byBvdmVycmlk
ZSBhIHByaW1pdGl2ZQogICAtLSAgc3VicHJvZ3JhbSB0aGF0IHNob3VsZCBoYXZlIGJlZW4gb3Zl
cnJpZGRlbiBmb3IgYSBkZXJpdmVkIHR5cGUuCiAgIC0tICBVc2VkIG9ubHkgd2hlcmUgdGhlIHN1
YnByb2dyYW0gaXMgcHJpdmF0ZSAoYW5kIHRoZXJlZm9yZSBjYW4ndAogICAtLSAgYmUgYWJzdHJh
Y3QpLgoKICAgTm90X1lldF9JbXBsZW1lbnRlZCA6IGV4Y2VwdGlvbjsKICAgLS0gIFJhaXNlZCB3
aGVuIGEgZmVhdHVyZSBoYXNuJ3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQuCgplbmQgQkM7CgotLSAg
Q29weXJpZ2h0IChDKSAxOTk0LTIwMDEgR3JhZHkgQm9vY2gsIERhdmlkIFdlbGxlciwgU3RldmUg
RG9pZWwKLS0gIGFuZCBTaW1vbiBXcmlnaHQuCi0tICBBbGwgUmlnaHRzIFJlc2VydmVkLgotLQot
LSAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdAotLSAgICAgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBBZGEg
Q29tbXVuaXR5Ci0tICAgICAgTGljZW5zZSB3aGljaCBjb21lcyB3aXRoIHRoaXMgTGlicmFyeS4K
LS0KLS0gICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlCi0tICAgICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZAotLSAgICAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS0gICAgICBQVVJQT1NFLiBTZWUgdGhlIEFkYSBD
b21tdW5pdHkgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotLSAgICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEFkYSBDb21tdW5pdHkKLS0gICAgICBMaWNlbnNlIHdp
dGggdGhpcyBsaWJyYXJ5LCBpbiB0aGUgZmlsZSBuYW1lZCAiQWRhIENvbW11bml0eQotLSAgICAg
IExpY2Vuc2UiIG9yICJBQ0wiLiBJZiBub3QsIGNvbnRhY3QgdGhlIGF1dGhvciBvZiB0aGlzIGxp
YnJhcnkKLS0gICAgICBmb3IgYSBjb3B5LgotLQoKLS0gICRSQ1NmaWxlOiBiYy1jb250YWluZXJz
LmFkcyx2ICQKLS0gICRSZXZpc2lvbjogMS4xNyAkCi0tICAkRGF0ZTogMjAwMS8wOS8yMiAxNzoy
OTo0NiAkCi0tICAkQXV0aG9yOiBzaW1vbiAkCgp3aXRoIEFkYS5GaW5hbGl6YXRpb247CgpnZW5l
cmljCiAgIHR5cGUgSXRlbSBpcyBwcml2YXRlOwogICB3aXRoIGZ1bmN0aW9uICI9IiAoTCwgUiA6
IEl0ZW0pIHJldHVybiBCb29sZWFuIGlzIDw+OwpwYWNrYWdlIEJDLkNvbnRhaW5lcnMgaXMKCiAg
IHByYWdtYSBFbGFib3JhdGVfQm9keTsKCiAgIC0tICBUaGlzIHBhY2thZ2Ugc3BlY2lmaWVzIHRo
ZSBjb21tb24gcHJvdG9jb2wgb2YgYWxsIENvbnRhaW5lcgogICAtLSAgY2xhc3Nlcy4gVGhpcyBj
b21tb24gcHJvdG9jb2wgY29uc2lzdHMgb2YgSXRlcmF0b3JzLgoKICAgdHlwZSBDb250YWluZXIg
aXMgYWJzdHJhY3QgdGFnZ2VkIHByaXZhdGU7CgogICBmdW5jdGlvbiBOdWxsX0NvbnRhaW5lciBy
ZXR1cm4gQ29udGFpbmVyIGlzIGFic3RyYWN0OwoKICAgLS0gIEFjdGl2ZSBpdGVyYXRpb24KCiAg
IHR5cGUgSXRlcmF0b3IgKDw+KSBpcyBhYnN0cmFjdCBuZXcgQWRhLkZpbmFsaXphdGlvbi5Db250
cm9sbGVkIHdpdGggcHJpdmF0ZTsKCiAgIGZ1bmN0aW9uIE5ld19JdGVyYXRvciAoRm9yX1RoZV9D
b250YWluZXIgOiBDb250YWluZXIpIHJldHVybiBJdGVyYXRvcidDbGFzcwogICAgICBpcyBhYnN0
cmFjdDsKICAgLS0gIFJldHVybiBhIHJlc2V0IEl0ZXJhdG9yIGJvdW5kIHRvIHRoZSBzcGVjaWZp
YyBDb250YWluZXIuCgogICBwcm9jZWR1cmUgUmVzZXQgKEl0IDogaW4gb3V0IEl0ZXJhdG9yKSBp
cyBhYnN0cmFjdDsKICAgLS0gIFJlc2V0IHRoZSBJdGVyYXRvciB0byB0aGUgYmVnaW5uaW5nLgoK
ICAgcHJvY2VkdXJlIE5leHQgKEl0IDogaW4gb3V0IEl0ZXJhdG9yKSBpcyBhYnN0cmFjdDsKICAg
LS0gIEFkdmFuY2UgdGhlIEl0ZXJhdG9yIHRvIHRoZSBuZXh0IEl0ZW0gaW4gdGhlIENvbnRhaW5l
ci4KCiAgIGZ1bmN0aW9uIElzX0RvbmUgKEl0IDogSXRlcmF0b3IpIHJldHVybiBCb29sZWFuIGlz
IGFic3RyYWN0OwogICAtLSAgUmV0dXJuIFRydWUgaWYgdGhlcmUgYXJlIG5vIG1vcmUgSXRlbXMg
aW4gdGhlIENvbnRhaW5lci4KCiAgIGZ1bmN0aW9uIEN1cnJlbnRfSXRlbSAoSXQgOiBJdGVyYXRv
cikgcmV0dXJuIEl0ZW0gaXMgYWJzdHJhY3Q7CiAgIC0tICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBj
dXJyZW50IEl0ZW0uCgogICBnZW5lcmljCiAgICAgIHdpdGggcHJvY2VkdXJlIEFwcGx5IChFbGVt
IDogaW4gb3V0IEl0ZW0pOwogICBwcm9jZWR1cmUgQWNjZXNzX0N1cnJlbnRfSXRlbSAoSW5fVGhl
X0l0ZXJhdG9yIDogSXRlcmF0b3InQ2xhc3MpOwogICAtLSAgQ2FsbCBBcHBseSBmb3IgdGhlIEl0
ZXJhdG9yJ3MgY3VycmVudCBJdGVtLgoKICAgcHJvY2VkdXJlIERlbGV0ZV9JdGVtX0F0IChJdCA6
IGluIG91dCBJdGVyYXRvcikgaXMgYWJzdHJhY3Q7CiAgIC0tICBSZW1vdmUgdGhlIGN1cnJlbnQg
aXRlbS4KCiAgIC0tICBQYXNzaXZlIGl0ZXJhdGlvbgoKICAgZ2VuZXJpYwogICAgICB3aXRoIHBy
b2NlZHVyZSBBcHBseSAoRWxlbSA6IGluIEl0ZW07IE9LIDogb3V0IEJvb2xlYW4pOwogICBwcm9j
ZWR1cmUgVmlzaXQgKFVzaW5nIDogaW4gb3V0IEl0ZXJhdG9yJ0NsYXNzKTsKICAgLS0gIENhbGwg
QXBwbHkgd2l0aCBhIGNvcHkgb2YgZWFjaCBJdGVtIGluIHRoZSBDb250YWluZXIgdG8gd2hpY2gK
ICAgLS0gIHRoZSBpdGVyYXRvciBVc2luZyBpcyBib3VuZC4gVGhlIGl0ZXJhdGlvbiB3aWxsIHRl
cm1pbmF0ZSBlYXJseQogICAtLSAgaWYgQXBwbHkgc2V0cyBPSyB0byBGYWxzZS4KCiAgIGdlbmVy
aWMKICAgICAgdHlwZSBQYXJhbV9UeXBlIGlzIHByaXZhdGU7CiAgICAgIHdpdGggcHJvY2VkdXJl
IEFwcGx5IChFbGVtIDogaW4gSXRlbTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFt
IDogaW4gUGFyYW1fVHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9LIDogb3V0IEJv
b2xlYW4pOwogICBwcm9jZWR1cmUgVmlzaXRfV2l0aF9Jbl9QYXJhbSAoVXNpbmcgOiBpbiBvdXQg
SXRlcmF0b3InQ2xhc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA6
IGluIFBhcmFtX1R5cGUpOwogICAtLSAgQ2FsbCBBcHBseSB3aXRoIGEgUGFyYW1ldGVyIGZvciBl
YWNoIEl0ZW0gaW4gdGhlIENvbnRhaW5lciB0bwogICAtLSAgd2hpY2ggdGhlIGl0ZXJhdG9yIFVz
aW5nIGlzIGJvdW5kLiBUaGUgaXRlcmF0aW9uIHdpbGwgdGVybWluYXRlCiAgIC0tICBlYXJseSBp
ZiBBcHBseSBzZXRzIE9LIHRvIEZhbHNlLgoKICAgZ2VuZXJpYwogICAgICB0eXBlIFBhcmFtX1R5
cGUgaXMgcHJpdmF0ZTsKICAgICAgd2l0aCBwcm9jZWR1cmUgQXBwbHkgKEVsZW0gOiBpbiBJdGVt
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0gOiBpbiBvdXQgUGFyYW1fVHlwZTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9LIDogb3V0IEJvb2xlYW4pOwogICBwcm9jZWR1
cmUgVmlzaXRfV2l0aF9Jbl9PdXRfUGFyYW0gKFVzaW5nIDogaW4gb3V0IEl0ZXJhdG9yJ0NsYXNz
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtIDogaW4gb3V0IFBh
cmFtX1R5cGUpOwogICAtLSAgQ2FsbCBBcHBseSB3aXRoIGEgUGFyYW1ldGVyIGZvciBlYWNoIEl0
ZW0gaW4gdGhlIENvbnRhaW5lciB0bwogICAtLSAgd2hpY2ggdGhlIGl0ZXJhdG9yIFVzaW5nIGlz
IGJvdW5kLiBUaGUgaXRlcmF0aW9uIHdpbGwgdGVybWluYXRlCiAgIC0tICBlYXJseSBpZiBBcHBs
eSBzZXRzIE9LIHRvIEZhbHNlLgoKICAgZ2VuZXJpYwogICAgICB3aXRoIHByb2NlZHVyZSBBcHBs
eSAoRWxlbSA6IGluIG91dCBJdGVtOyBPSyA6IG91dCBCb29sZWFuKTsKICAgcHJvY2VkdXJlIE1v
ZGlmeSAoVXNpbmcgOiBpbiBvdXQgSXRlcmF0b3InQ2xhc3MpOwogICAtLSAgQ2FsbCBBcHBseSB3
aXRoIGEgY29weSBvZiBlYWNoIEl0ZW0gaW4gdGhlIENvbnRhaW5lciB0byB3aGljaAogICAtLSAg
dGhlIGl0ZXJhdG9yIFVzaW5nIGlzIGJvdW5kLiBUaGUgaXRlcmF0aW9uIHdpbGwgdGVybWluYXRl
IGVhcmx5CiAgIC0tICBpZiBBcHBseSBzZXRzIE9LIHRvIEZhbHNlLgoKICAgZ2VuZXJpYwogICAg
ICB0eXBlIFBhcmFtX1R5cGUgaXMgcHJpdmF0ZTsKICAgICAgd2l0aCBwcm9jZWR1cmUgQXBwbHkg
KEVsZW0gOiBpbiBvdXQgSXRlbTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtIDog
aW4gUGFyYW1fVHlwZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9LIDogb3V0IEJvb2xl
YW4pOwogICBwcm9jZWR1cmUgTW9kaWZ5X1dpdGhfSW5fUGFyYW0gKFVzaW5nIDogaW4gb3V0IEl0
ZXJhdG9yJ0NsYXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtIDog
aW4gUGFyYW1fVHlwZSk7CiAgIC0tICBDYWxsIEFwcGx5IHdpdGggYSBQYXJhbWV0ZXIgZWFjaCBJ
dGVtIGluIHRoZSBDb250YWluZXIgdG8gd2hpY2gKICAgLS0gIHRoZSBpdGVyYXRvciBVc2luZyBp
cyBib3VuZC4gVGhlIGl0ZXJhdGlvbiB3aWxsIHRlcm1pbmF0ZSBlYXJseQogICAtLSAgaWYgQXBw
bHkgc2V0cyBPSyB0byBGYWxzZS4KCiAgIGdlbmVyaWMKICAgICAgdHlwZSBQYXJhbV9UeXBlIGlz
IHByaXZhdGU7CiAgICAgIHdpdGggcHJvY2VkdXJlIEFwcGx5IChFbGVtIDogaW4gb3V0IEl0ZW07
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA6IGluIG91dCBQYXJhbV9UeXBlOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT0sgOiBvdXQgQm9vbGVhbik7CiAgIHByb2NlZHVy
ZSBNb2RpZnlfV2l0aF9Jbl9PdXRfUGFyYW0gKFVzaW5nIDogaW4gb3V0IEl0ZXJhdG9yJ0NsYXNz
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhbSA6IGluIG91dCBQ
YXJhbV9UeXBlKTsKICAgLS0gIENhbGwgQXBwbHkgd2l0aCBhIGNvcHkgb2YgZWFjaCBJdGVtIGlu
IHRoZSBDb250YWluZXIgdG8gd2hpY2gKICAgLS0gIHRoZSBpdGVyYXRvciBVc2luZyBpcyBib3Vu
ZC4gVGhlIGl0ZXJhdGlvbiB3aWxsIHRlcm1pbmF0ZSBlYXJseQogICAtLSAgaWYgQXBwbHkgc2V0
cyBPSyB0byBGYWxzZS4KCnByaXZhdGUKCiAgIC0tICBXZSBuZWVkIGFjY2VzcyB0byBJdGVtczsg
YnV0IHdlIG11c3QgbWFrZSBzdXJlIHRoYXQgbm8gYWN0dWFsCiAgIC0tICBhbGxvY2F0aW9ucyBv
Y2N1ciB1c2luZyB0aGlzIHR5cGUuCgogICB0eXBlIEl0ZW1fUHRyIGlzIGFjY2VzcyBhbGwgSXRl
bTsKICAgZm9yIEl0ZW1fUHRyJ1N0b3JhZ2VfU2l6ZSB1c2UgMDsKCiAgIHR5cGUgQ29udGFpbmVy
IGlzIGFic3RyYWN0IG5ldyBBZGEuRmluYWxpemF0aW9uLkNvbnRyb2xsZWQgd2l0aCBudWxsIHJl
Y29yZDsKCiAgIC0tICBTdXBwb3J0IGZvciBjb25jdXJyZW5jeSBwcm90ZWN0aW9uLiBUaGUgYmFz
ZSBpbXBsZW1lbnRhdGlvbiBvZgogICAtLSAgdGhlc2UgcHJvY2VkdXJlcyBkb2VzIG5vdGhpbmc7
IGRlcml2ZWQgdHlwZXMgb3ZlcnJpZGUgYXMKICAgLS0gIHJlcXVpcmVkLgoKICAgcHJvY2VkdXJl
IExvY2sgKEMgOiBpbiBvdXQgQ29udGFpbmVyKTsKCiAgIHByb2NlZHVyZSBVbmxvY2sgKEMgOiBp
biBvdXQgQ29udGFpbmVyKTsKCiAgIC0tICBQcml2YXRlIHByaW1pdGl2ZSBvcGVyYXRpb25zIG9m
IENvbnRhaW5lci4gIFRoZXNlIHNob3VsZAogICAtLSAgaWRlYWxseSBiZSBhYnN0cmFjdDsgaW5z
dGVhZCwgd2UgcHJvdmlkZSBpbXBsZW1lbnRhdGlvbnMsIGJ1dAogICAtLSAgdGhleSByYWlzZSBT
aG91bGRfSGF2ZV9CZWVuX092ZXJyaWRkZW4uCgogICBmdW5jdGlvbiBJdGVtX0F0IChDIDogQ29u
dGFpbmVyOyBJbmRleCA6IFBvc2l0aXZlKSByZXR1cm4gSXRlbV9QdHI7CgogICAtLSAgSXRlcmF0
aW9uCgogICB0eXBlIENvbnRhaW5lcl9QdHIgaXMgYWNjZXNzIGFsbCBDb250YWluZXInQ2xhc3M7
CiAgIGZvciBDb250YWluZXJfUHRyJ1N0b3JhZ2VfU2l6ZSB1c2UgMDsKCiAgIHR5cGUgSXRlcmF0
b3IgaXMgYWJzdHJhY3QgbmV3IEFkYS5GaW5hbGl6YXRpb24uQ29udHJvbGxlZCB3aXRoIHJlY29y
ZAogICAgICBGb3JfVGhlX0NvbnRhaW5lciA6IENvbnRhaW5lcl9QdHI7CiAgIGVuZCByZWNvcmQ7
CgogICAtLSAgUHJpdmF0ZSBwcmltaXRpdmUgb3BlcmF0aW9ucyBvZiBJdGVyYXRvci4gIFRoZXNl
IHNob3VsZCBpZGVhbGx5CiAgIC0tICBiZSBhYnN0cmFjdDsgaW5zdGVhZCwgd2UgcHJvdmlkZSBp
bXBsZW1lbnRhdGlvbnMsIGJ1dCB0aGV5CiAgIC0tICByYWlzZSBTaG91bGRfSGF2ZV9CZWVuX092
ZXJyaWRkZW4uCiAgIGZ1bmN0aW9uIEN1cnJlbnRfSXRlbV9QdHIgKEl0IDogSXRlcmF0b3IpIHJl
dHVybiBJdGVtX1B0cjsKCmVuZCBCQy5Db250YWluZXJzOwotLSAgQ29weXJpZ2h0IChDKSAxOTk0
LTE5OTggR3JhZHkgQm9vY2gsIERhdmlkIFdlbGxlciBhbmQgU2ltb24gV3JpZ2h0LgotLSAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLS0KLS0gICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKLS0gICAgICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgQWRhIENvbW11bml0eQotLSAgICAgIExpY2Vuc2Ugd2hpY2ggY29t
ZXMgd2l0aCB0aGlzIExpYnJhcnkuCi0tCi0tICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZQotLSAgICAgIHVzZWZ1bCwgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQKLS0gICAgICB3YXJyYW50
eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0tICAgICAg
UFVSUE9TRS4gU2VlIHRoZSBBZGEgQ29tbXVuaXR5IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LS0gICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBBZGEgQ29tbXVu
aXR5Ci0tICAgICAgTGljZW5zZSB3aXRoIHRoaXMgbGlicmFyeSwgaW4gdGhlIGZpbGUgbmFtZWQg
IkFkYSBDb21tdW5pdHkKLS0gICAgICBMaWNlbnNlIiBvciAiQUNMIi4gSWYgbm90LCBjb250YWN0
IHRoZSBhdXRob3Igb2YgdGhpcyBsaWJyYXJ5Ci0tICAgICAgZm9yIGEgY29weS4KLS0KCi0tICAk
UkNTZmlsZTogYmMtY29udGFpbmVycy1saXN0cy5hZHMsdiAkCi0tICAkUmV2aXNpb246IDEuNSAk
Ci0tICAkRGF0ZTogMjAwMS8wOS8xMyAwNTo0Mjo1OSAkCi0tICAkQXV0aG9yOiBzaW1vbiAkCgpn
ZW5lcmljIHBhY2thZ2UgQkMuQ29udGFpbmVycy5MaXN0cyBpcwoKICAgLS0gIEEgc2luZ2xlIGxp
c3QgaXMgYSByb290ZWQgc2VxdWVuY2Ugb2YgemVybyBvciBtb3JlIGl0ZW1zLCB3aXRoCiAgIC0t
ICBhIGxpbmsgZnJvbSBvbmUgaXRlbSB0byBpdHMgZm9sbG93aW5nIGl0ZW0uIEEgZG91YmxlIGxp
c3QgaXMgYQogICAtLSAgcm9vdGVkIHNlcXVlbmNlIG9mIHplcm8gb3IgbW9yZSBpdGVtcywgd2l0
aCBsaW5rcyBmcm9tIG9uZSBpdGVtCiAgIC0tICB0byBpdHMgcHJldmlvdXMgYW5kIG5leHQgaXRl
bXMuCgogICAtLSAgTGlzdHMgYXJlIHBvbHlsaXRoaWMgc3RydWN0dXJlcywgYW5kIGhlbmNlIHRo
ZSBzZW1hbnRpY3Mgb2YKICAgLS0gIGNvcHlpbmcsIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eSBp
bnZvbHZlIHN0cnVjdHVyYWwKICAgLS0gIHNoYXJpbmcuIENhcmUgbXVzdCBiZSB0YWtlbiBpbiBt
YW5pcHVsYXRpbmcgdGhlIHNhbWUgbGlzdCBuYW1lZAogICAtLSAgYnkgbW9yZSB0aGFuIG9uZSBh
bGlhcy4KCiAgIC0tICBUaGVzZSBjbGFzc2VzIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgc3ViY2xh
c3NlZC4KCiAgIC0tICBUaGVzZSBhYnN0cmFjdGlvbnMgaGF2ZSBiZWVuIGNhcmVmdWxseSBjb25z
dHJ1Y3RlZCB0byBlbGltaW5hdGUKICAgLS0gIGFsbCBzdG9yYWdlIGxlYWtzLCBleGNlcHQgaW4g
dGhlIGNhc2Ugb2YgaW50ZW50aW9uYWwKICAgLS0gIGFidXNlcy4gV2hlbiBhIGxpc3QgaXMgbWFu
aXB1bGF0ZWQsIGFsbCBpdGVtcyB0aGF0IGJlY29tZQogICAtLSAgdW5yZWFjaGFibGUgYXJlIGF1
dG9tYXRpY2FsbHkgcmVjbGFpbWVkLiBGdXJ0aGVybW9yZSwgdGhpcwogICAtLSAgZGVzaWduIHBy
b3RlY3RzIGFnYWluc3QgZGFuZ2xpbmcgcmVmZXJlbmNlczogYW4gaXRlbSBpcyBuZXZlcgogICAt
LSAgcmVjbGFpbWVkIGlmIHRoZXJlIGV4aXN0cyBhIHJlZmVyZW5jZSB0byBpdC4KCiAgIC0tICBV
bnJlYWNoYWJsZSBpdGVtcyBhcmUgdGhvc2UgdGhhdCBiZWxvbmcgdG8gYSBsaXN0IG9yIGEgc3Vi
bGlzdAogICAtLSAgd2hvc2UgaGVhZCBpcyBub3QgZGVzaWduYXRlZCBieSBhbnkgYWxpYXMuIEZv
ciBleGFtcGxlLAogICAtLSAgY29uc2lkZXIgdGhlIGxpc3QgKEEgQiBDKSwgd2l0aCB0aGUgaGVh
ZCBvZiB0aGUgbGlzdCBkZXNpZ25hdGVkCiAgIC0tICBieSBMMS4gTDEgaW5pdGlhbGx5IHBvaW50
cyB0byB0aGUgaGVhZCBvZiB0aGUgbGlzdCwgYXQgaXRlbQogICAtLSAgQS4gSW52b2tpbmcgdGhl
IG1lbWJlciBmdW5jdGlvbiBUYWlsIG9uIEwxIG5vdyBjYXVzZXMgTDEgdG8KICAgLS0gIHBvaW50
IHRvIGl0ZW0gQi4gQmVjYXVzZSBBIGlzIG5vdyBjb25zaWRlcmVkIHVucmVhY2hhYmxlLCB0aGUK
ICAgLS0gIHN0b3JhZ2UgYXNzb2NpYXRlZCB3aXRoIGl0ZW0gQSBpcyByZWNsYWltZWQ7IHRoZSBw
cmVkZWNlc3NvciBvZgogICAtLSAgQiBpcyBub3cgbnVsbC4gU2ltaWxhcmx5LCBjb25zaWRlciB0
aGUgbGlzdCAoRCBFIEYpLCB3aXRoIHRoZQogICAtLSAgaGVhZCBvZiB0aGUgbGlzdCBkZXNpZ25h
dGVkIGJ5IGJvdGggTDEgYW5kIEwyLiBCb3RoIEwxIGFuZCBMMgogICAtLSAgYXJlIGFsaWFzZXMg
dGhhdCBpbml0aWFsbHkgcG9pbnQgdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QgYXQKICAgLS0gIGl0
ZW0gRC4gSW52b2tpbmcgdGhlIG1lbWJlciBmdW5jdGlvbiBUYWlsIG9uIEwxIG5vdyBjYXVzZXMg
TDEKICAgLS0gIHRvIHBvaW50IHRvIGl0ZW0gRTsgTDIgaXMgdW5hZmZlY3RlZC4gU3VwcG9zZSB3
ZSBub3cgaW52b2tlIHRoZQogICAtLSAgbWVtYmVyIGZ1bmN0aW9uIGNsZWFyIG9uIEwyLiBUaGUg
c2VtYW50aWNzIG9mIHRoaXMgb3BlcmF0aW9uCiAgIC0tICBhcmUgc3VjaCB0aGF0IG9ubHkgdW5y
ZWFjaGFibGUgaXRlbXMgYXJlIHJlY2xhaW1lZC4gVGh1cywgdGhlCiAgIC0tICBzdG9yYWdlIGFz
c29jaWF0ZWQgd2l0aCBpdGVtIEQgaXMgcmVjbGFpbWVkLCBiZWNhdXNlIGl0IGlzIG5vCiAgIC0t
ICBsb25nZXIgcmVhY2hhYmxlOyBMMiBpcyBub3cgbnVsbCwgYW5kIHRoZSBwcmVkZWNlc3NvciBv
ZiBFIGlzCiAgIC0tICBub3cgbnVsbC4gSXRlbXMgRSBhbmQgRiBhcmUgbm90IHJlY2xhaW1lZCwg
YmVjYXVzZSB0aGV5IGFyZQogICAtLSAgcmVhY2hhYmxlIHRocm91Z2ggTDEuCgogICAtLSAgQW4g
YWx0ZXJuYXRlIGFic3RyYWN0aW9uIHdvdWxkIGhhdmUgYmVlbiB0byBjb25zaWRlciBpdGVtcyBB
CiAgIC0tICBhbmQgRCByZWFjaGFibGUgZm9yIGRvdWJseS1saW5rZWQgbGlzdHMgaW4gdGhlc2Ug
dHdvCiAgIC0tICBjaXJjdW1zdGFuY2VzLiBXZSBleHBsaWNpdGx5IHJlamVjdGVkIHRoaXMgZGVz
aWduLCBpbiBvcmRlciB0bwogICAtLSAgbWFpbnRhaW4gY29uc2lzdGVuY3kgd2l0aCB0aGUgc2Vt
YW50aWNzIG9mIHRoZSBzaW5nbHktbGlua2VkCiAgIC0tICBsaXN0LgoKICAgLS0gIEl0IGlzIHBv
c3NpYmxlLCBidXQgbm90IGdlbmVyYWxseSBkZXNpcmFibGUsIHRvIHByb2R1Y2UKICAgLS0gIG11
bHRpLWhlYWRlZCBsaXN0cy4gSW4gc3VjaCBjYXNlcywgdGhlIHByZWRlY2Vzc29yIG9mIHRoZSBp
dGVtCiAgIC0tICBhdCB0aGUgbmVjayBvZiBhIG11bHRpLWhlYWRlZCBsaXN0IHBvaW50cyB0byB0
aGUgbW9zdCByZWNlbnRseQogICAtLSAgYXR0YWNoZWQgaGVhZC4KCiAgIC0tICBUaGUgc2luZ2x5
LWxpbmtlZCBhbmQgZG91Ymx5LWxpbmtlZCBsaXN0cyBoYXZlIGEgc2ltaWxhcgogICAtLSAgcHJv
dG9jb2wsIGV4Y2VwdCB0aGF0IHRoZSBkb3VibHktbGlua2VkIGxpc3QgYWRkcyB0d28KICAgLS0g
IG9wZXJhdGlvbnMsIFByZWRlY2Vzc29yIGFuZCBJc19IZWFkLiBUaGUgc3BhY2Ugc2VtYW50aWNz
IG9mCiAgIC0tICB0aGVzZSB0d28gY2xhc3NlcyBhcmUgZGlmZmVyZW50ICh0aGUgZG91Ymx5LWxp
bmtlZCBsaXN0IGhhcyBvbmUKICAgLS0gIGV4dHJhIHBvaW50ZXIgcGVyIGl0ZW0pIGFuZCBhZGRp
dGlvbmFsbHksIHRoZWlyIHRpbWUgc2VtYW50aWNzCiAgIC0tICBhcmUgc2xpZ2h0bHkgZGlmZmVy
ZW50LCBiZWNhdXNlIG9mIHRoZSBvcHRpbWl6YXRpb25zIHBvc3NpYmxlCiAgIC0tICB3aXRoIGhh
dmluZyBhIHByZXZpb3VzIHBvaW50ZXIgaW4gdGhlIGRvdWJseS1saW5rZWQgbGlzdCBjbGFzcy4K
CmVuZCBCQy5Db250YWluZXJzLkxpc3RzOwotLSAgQ29weXJpZ2h0IChDKSAxOTk0LTIwMDEgR3Jh
ZHkgQm9vY2gsIERhdmlkIFdlbGxlciBhbmQgU2ltb24gV3JpZ2h0LgotLSAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLS0KLS0gICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQKLS0gICAgICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgQWRhIENvbW11bml0eQotLSAgICAgIExpY2Vuc2Ugd2hpY2ggY29tZXMgd2l0aCB0
aGlzIExpYnJhcnkuCi0tCi0tICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZQotLSAgICAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQKLS0gICAgICB3YXJyYW50eSBvZiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0tICAgICAgUFVSUE9TRS4g
U2VlIHRoZSBBZGEgQ29tbXVuaXR5IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0gICAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBBZGEgQ29tbXVuaXR5Ci0tICAg
ICAgTGljZW5zZSB3aXRoIHRoaXMgbGlicmFyeSwgaW4gdGhlIGZpbGUgbmFtZWQgIkFkYSBDb21t
dW5pdHkKLS0gICAgICBMaWNlbnNlIiBvciAiQUNMIi4gSWYgbm90LCBjb250YWN0IHRoZSBhdXRo
b3Igb2YgdGhpcyBsaWJyYXJ5Ci0tICAgICAgZm9yIGEgY29weS4KLS0KCi0tICAkUkNTZmlsZTog
YmMtY29udGFpbmVycy1saXN0cy1zaW5nbGUuYWRzLHYgJAotLSAgJFJldmlzaW9uOiAxLjE2ICQK
LS0gICREYXRlOiAyMDAxLzEwLzE4IDIwOjQyOjI2ICQKLS0gICRBdXRob3I6IHNpbW9uICQKCndp
dGggU3lzdGVtLlN0b3JhZ2VfUG9vbHM7CgpnZW5lcmljCiAgIFN0b3JhZ2UgOiBpbiBvdXQgU3lz
dGVtLlN0b3JhZ2VfUG9vbHMuUm9vdF9TdG9yYWdlX1Bvb2wnQ2xhc3M7CnBhY2thZ2UgQkMuQ29u
dGFpbmVycy5MaXN0cy5TaW5nbGUgaXMKCiAgIHByYWdtYSBFbGFib3JhdGVfQm9keTsKCiAgIC0t
ICBTaW5nbHktbGlua2VkIGxpc3QKCiAgIHR5cGUgTGlzdCBpcyBuZXcgQ29udGFpbmVyIHdpdGgg
cHJpdmF0ZTsKCiAgIGZ1bmN0aW9uIE51bGxfQ29udGFpbmVyIHJldHVybiBMaXN0OwoKICAgZnVu
Y3Rpb24gIj0iIChMLCBSIDogTGlzdCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm4gVHJ1
ZSBpZiBhbmQgb25seSBpZiBib3RoIGxpc3RzIGFyZSBudWxsIG9yIHN0cnVjdHVyYWxseQogICAt
LSAgc2hhcmUgdGhlIHNhbWUgbGlzdC4KCiAgIHByb2NlZHVyZSBDbGVhciAoTCA6IGluIG91dCBM
aXN0KTsKICAgLS0gIElmIHRoZSBsaXN0IGlzIG5vdCBudWxsLCBkZXN0cm95IHRoaXMgYWxpYXMg
dG8gdGhlIGxpc3QsIG1ha2UKICAgLS0gIHRoZSBsaXN0IG51bGwsIGFuZCByZWNsYWltIHRoZSBz
dG9yYWdlIGFzc29jaWF0ZWQgd2l0aCBhbnkKICAgLS0gIHVucmVhY2hhYmxlIGl0ZW1zLgoKICAg
cHJvY2VkdXJlIEluc2VydCAoTCA6IGluIG91dCBMaXN0OyBFbGVtIDogSXRlbSk7CiAgIC0tICBB
ZGQgdGhlIGl0ZW0gdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgSW5zZXJ0
IChMIDogaW4gb3V0IExpc3Q7IEZyb21fTGlzdCA6IGluIG91dCBMaXN0KTsKICAgLS0gIEFkZCBG
cm9tX0xpc3QgdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgSW5zZXJ0IChM
IDogaW4gb3V0IExpc3Q7IEVsZW0gOiBJdGVtOyBCZWZvcmUgOiBQb3NpdGl2ZSk7CiAgIC0tICBB
ZGQgdGhlIGl0ZW0gYmVmb3JlIHRoZSBnaXZlbiBpbmRleCBpdGVtIGluIHRoZSBsaXN0OyBpZiBC
ZWZvcmUKICAgLS0gIGlzIDEsIHRoZSBpdGVtIGlzIGFkZGVkIHRvIHRoZSBoZWFkIG9mIHRoZSBs
aXN0LgoKICAgcHJvY2VkdXJlIEluc2VydCAoTCA6IGluIG91dCBMaXN0OwogICAgICAgICAgICAg
ICAgICAgICBGcm9tX0xpc3QgOiBpbiBvdXQgTGlzdDsKICAgICAgICAgICAgICAgICAgICAgQmVm
b3JlIDogUG9zaXRpdmUpOwogICAtLSAgQWRkIHRoZSBsaXN0IGJlZm9yZSB0aGUgZ2l2ZW4gaW5k
ZXggaXRlbSBpbiB0aGUgbGlzdDsgaWYgQmVmb3JlCiAgIC0tICBpcyAxLCB0aGUgbGlzdCBpcyBh
ZGRlZCB0byB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KCiAgIHByb2NlZHVyZSBBcHBlbmQgKEwgOiBp
biBvdXQgTGlzdDsgRWxlbSA6IEl0ZW0pOwogICAtLSAgQWRkIHRoZSBpdGVtIGF0IHRoZSBlbmQg
b2YgdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgQXBwZW5kIChMIDogaW4gb3V0IExpc3Q7IEZyb21f
TGlzdCA6IGluIG91dCBMaXN0KTsKICAgLS0gIEFkZCB0aGUgZ2l2ZW4gbGlzdCBhdCB0aGUgZW5k
IG9mIHRoZSBsaXN0LgoKICAgcHJvY2VkdXJlIEFwcGVuZCAoTCA6IGluIG91dCBMaXN0OyBFbGVt
IDogSXRlbTsgQWZ0ZXIgOiBQb3NpdGl2ZSk7CiAgIC0tICBBZGQgdGhlIGl0ZW0gYWZ0ZXIgdGhl
IGdpdmVuIGluZGV4IGl0ZW0gaW4gdGhlIGxpc3QuCgogICBwcm9jZWR1cmUgQXBwZW5kIChMIDog
aW4gb3V0IExpc3Q7CiAgICAgICAgICAgICAgICAgICAgIEZyb21fTGlzdCA6IGluIG91dCBMaXN0
OwogICAgICAgICAgICAgICAgICAgICBBZnRlciA6IFBvc2l0aXZlKTsKICAgLS0gIEFkZCBGcm9t
X0xpc3QgYWZ0ZXIgdGhlIGdpdmVuIGluZGV4IGl0ZW0gaW4gdGhlIGxpc3QuCgogICBwcm9jZWR1
cmUgUmVtb3ZlIChMIDogaW4gb3V0IExpc3Q7IEZyb20gOiBQb3NpdGl2ZSk7CiAgIC0tICBSZW1v
dmUgdGhlIGl0ZW0gYXQgdGhlIGdpdmVuIGluZGV4IGluIHRoZSBsaXN0LgoKICAgcHJvY2VkdXJl
IFB1cmdlIChMIDogaW4gb3V0IExpc3Q7IEZyb20gOiBQb3NpdGl2ZSk7CiAgIC0tICBSZW1vdmUg
YWxsIHRoZSBpdGVtcyBpbiB0aGUgbGlzdCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXgsCiAg
IC0tICBpbmNsdXNpdmUuCgogICBwcm9jZWR1cmUgUHVyZ2UgKEwgOiBpbiBvdXQgTGlzdDsgRnJv
bSA6IFBvc2l0aXZlOyBDb3VudCA6IFBvc2l0aXZlKTsKICAgLS0gIFJlbW92ZSBhbGwgdGhlIGl0
ZW1zIGluIHRoZSBsaXN0IHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBpbmRleCwKICAgLS0gIGluY2x1
c2l2ZSwgZm9yIGEgdG90YWwgb2YgY291bnQgaXRlbXMuCgogICBwcm9jZWR1cmUgUHJlc2VydmUg
KEwgOiBpbiBvdXQgTGlzdDsgRnJvbSA6IFBvc2l0aXZlKTsKICAgLS0gIFJlbW92ZSBhbGwgdGhl
IGl0ZW1zIGluIHRoZSBsaXN0IGV4Y2VwdCB0aG9zZSBzdGFydGluZyBhdCB0aGUKICAgLS0gIGdp
dmVuIGluZGV4LCBpbmNsdXNpdmUuCgogICBwcm9jZWR1cmUgUHJlc2VydmUgKEwgOiBpbiBvdXQg
TGlzdDsgRnJvbSA6IFBvc2l0aXZlOyBDb3VudCA6IFBvc2l0aXZlKTsKICAgLS0gIFJlbW92ZSBh
bGwgdGhlIGl0ZW1zIGluIHRoZSBsaXN0IGV4Y2VwdCB0aG9zZSBzdGFydGluZyBhdCB0aGUKICAg
LS0gIGdpdmVuIGluZGV4LCBpbmNsdXNpdmUsIGZvciBhIHRvdGFsIG9mIGNvdW50IGl0ZW1zLgoK
ICAgcHJvY2VkdXJlIFNoYXJlIChMIDogaW4gb3V0IExpc3Q7IFdpdGhfTGlzdCA6IExpc3Q7IFN0
YXJ0aW5nX0F0IDogUG9zaXRpdmUpOwogICAtLSAgQ2xlYXIgdGhlIGxpc3QsIHRoZW4sIGlmIHRo
ZSBnaXZlbiBsaXN0IGlzIG5vdCBudWxsLCBzZXQgdGhlCiAgIC0tICBsaXN0IHRvIHN0cnVjdHVy
YWxseSBzaGFyZSB3aXRoIHRoZSBoZWFkIG9mIHRoZSBnaXZlbiBsaXN0LAogICAtLSAgc3RhcnRp
bmcgYXQgdGhlIGdpdmVuIGluZGV4LgoKICAgcHJvY2VkdXJlIFNoYXJlX0hlYWQgKEwgOiBpbiBv
dXQgTGlzdDsgV2l0aF9MaXN0IDogaW4gTGlzdCk7CiAgIC0tICBDbGVhciB0aGUgbGlzdCwgdGhl
biwgaWYgdGhlIGdpdmVuIGxpc3QgaXMgbm90IG51bGwsIHNldCB0aGUKICAgLS0gIGxpc3QgdG8g
c3RydWN0dXJhbGx5IHNoYXJlIHdpdGggdGhlIGhlYWQgb2YgdGhlIGdpdmVuIGxpc3QuCgogICBw
cm9jZWR1cmUgU2hhcmVfRm9vdCAoTCA6IGluIG91dCBMaXN0OyBXaXRoX0xpc3QgOiBpbiBMaXN0
KTsKICAgLS0gIENsZWFyIHRoZSBsaXN0LCB0aGVuLCBpZiB0aGUgZ2l2ZW4gbGlzdCBpcyBub3Qg
bnVsbCwgc2V0IHRoZQogICAtLSAgbGlzdCB0byBzdHJ1Y3R1cmFsbHkgc2hhcmUgd2l0aCB0aGUg
ZW5kIG9mIHRoZSBnaXZlbiBsaXN0LgoKICAgcHJvY2VkdXJlIFN3YXBfVGFpbCAoTCA6IGluIG91
dCBMaXN0OyBXaXRoX0xpc3QgOiBpbiBvdXQgTGlzdCk7CiAgIC0tICBUaGUgZ2l2ZW4gbGlzdCBt
dXN0IHJlcHJlc2VudCB0aGUgaGVhZCBvZiBhIGxpc3QsIHdoaWNoIG1heSBiZQogICAtLSAgbnVs
bC4gU2V0IHRoZSB0YWlsIG9mIHRoZSBsaXN0ICh3aGljaCBtYXkgYmUgbnVsbCkgdG8gZGVub3Rl
CiAgIC0tICB0aGUgZ2l2ZW4gbGlzdCAod2hpY2ggbWF5IGJlIG51bGwpLCBhbmQgc2V0IHRoZSBn
aXZlbiBsaXN0IHRvCiAgIC0tICB0aGUgb3JpZ2luYWwgdGFpbCBvZiB0aGUgbGlzdC4gSWYgaXQg
aXMgbm90IG51bGwsIHRoZQogICAtLSAgcHJlZGVjZXNzb3Igb2YgdGhlIG5ldyB0YWlsIG9mIHRo
ZSBsaXN0IGlzIHNldCB0byBiZSB0aGUgaGVhZAogICAtLSAgb2YgdGhlIGxpc3QuIElmIGl0IGlz
IG5vdCBudWxsLCB0aGUgcHJlZGVjZXNzb3Igb2YgdGhlIG5ldyBoZWFkCiAgIC0tICBvZiB0aGUg
Z2l2ZW4gbGlzdCBpcyBzZXQgdG8gYmUgbnVsbC4KCiAgIHByb2NlZHVyZSBUYWlsIChMIDogaW4g
b3V0IExpc3QpOwogICAtLSAgVGhlIGxpc3QgbXVzdCBub3QgYmUgbnVsbC4gU2V0IHRoZSBsaXN0
IHRvIG5vdyBkZW5vdGUgaXRzIHRhaWwKICAgLS0gICh3aGljaCBtYXkgYmUgbnVsbCksIGFuZCBy
ZWNsYWltIHRoZSBzdG9yYWdlIGFzc29jaWF0ZWQgd2l0aAogICAtLSAgYW55IHVucmVhY2hhYmxl
IGl0ZW1zLgoKICAgcHJvY2VkdXJlIFNldF9IZWFkIChMIDogaW4gb3V0IExpc3Q7IEVsZW0gOiBJ
dGVtKTsKICAgLS0gIFNldCB0aGUgaXRlbSBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KCiAgIHBy
b2NlZHVyZSBTZXRfSXRlbSAoTCA6IGluIG91dCBMaXN0OyBFbGVtIDogSXRlbTsgQXRfTG9jIDog
UG9zaXRpdmUpOwogICAtLSAgU2V0IHRoZSBpdGVtIGF0IHRoZSBnaXZlbiBpbmRleC4KCiAgIGZ1
bmN0aW9uIExlbmd0aCAoTCA6IExpc3QpIHJldHVybiBOYXR1cmFsOwogICAtLSAgUmV0dXJuIHRo
ZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGxpc3QuCgogICBmdW5jdGlvbiBJc19OdWxsIChMIDog
TGlzdCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm4gVHJ1ZSBpZiBhbmQgb25seSB0aGVy
ZSBhcmUgbm8gaXRlbXMgaW4gdGhlIGxpc3QuCgogICBmdW5jdGlvbiBJc19TaGFyZWQgKEwgOiBM
aXN0KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVlIGlmIGFuZCBvbmx5IGlmIHRo
ZSBsaXN0IGhhcyBhbiBhbGlhcy4KCiAgIGZ1bmN0aW9uIEhlYWQgKEwgOiBMaXN0KSByZXR1cm4g
SXRlbTsKICAgLS0gIFJldHVybiBhIGNvcHkgb2YgdGhlIGl0ZW0gYXQgdGhlIGhlYWQgb2YgdGhl
IGxpc3QuCgogICBnZW5lcmljCiAgICAgIHdpdGggcHJvY2VkdXJlIFByb2Nlc3MgKEVsZW0gOiBp
biBvdXQgSXRlbSk7CiAgIHByb2NlZHVyZSBQcm9jZXNzX0hlYWQgKEwgOiBpbiBvdXQgTGlzdCk7
CiAgIC0tICBBY2Nlc3MgdGhlIGl0ZW0gYXQgdGhlIGhlYWQgb2YgdGhlIGxpc3QuCgogICBmdW5j
dGlvbiBGb290IChMIDogTGlzdCkgcmV0dXJuIEl0ZW07CiAgIC0tICBSZXR1cm4gYSBjb3B5IG9m
IHRoZSBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCgogICBnZW5lcmljCiAgICAgIHdpdGgg
cHJvY2VkdXJlIFByb2Nlc3MgKEVsZW0gOiBpbiBvdXQgSXRlbSk7CiAgIHByb2NlZHVyZSBQcm9j
ZXNzX0Zvb3QgKEwgOiBpbiBvdXQgTGlzdCk7CiAgIC0tICBBY2Nlc3MgdGhlIGl0ZW0gYXQgdGhl
IGVuZCBvZiB0aGUgbGlzdC4KCiAgIGZ1bmN0aW9uIEl0ZW1fQXQgKEwgOiBMaXN0OyBJbmRleCA6
IFBvc2l0aXZlKSByZXR1cm4gSXRlbTsKICAgLS0gIFJldHVybiBhIGNvcHkgb2YgdGhlIGl0ZW0g
YXQgdGhlIGdpdmVuIGluZGV4LgoKICAgZnVuY3Rpb24gTmV3X0l0ZXJhdG9yIChGb3JfVGhlX0xp
c3QgOiBMaXN0KSByZXR1cm4gSXRlcmF0b3InQ2xhc3M7CiAgIC0tICBSZXR1cm4gYSByZXNldCBJ
dGVyYXRvciBib3VuZCB0byB0aGUgc3BlY2lmaWMgTGlzdC4KCnByaXZhdGUKCiAgIGZ1bmN0aW9u
IEl0ZW1fQXQgKEwgOiBMaXN0OyBJbmRleCA6IFBvc2l0aXZlKSByZXR1cm4gSXRlbV9QdHI7Cgog
ICAtLSAgVHlwZSBkZW5vdGluZyBhIHNpbXBsZSBub2RlIGNvbnNpc3Rpbmcgb2YgYW4gaXRlbSwg
YSBwb2ludGVyIHRvCiAgIC0tICB0aGUgbmV4dCBpdGVtLCBhbmQgYSByZWZlcmVuY2UgY291bnQK
CiAgIHR5cGUgU2luZ2xlX05vZGU7CiAgIHR5cGUgU2luZ2xlX05vZGVfUmVmIGlzIGFjY2VzcyBT
aW5nbGVfTm9kZTsKICAgZm9yIFNpbmdsZV9Ob2RlX1JlZidTdG9yYWdlX1Bvb2wgdXNlIFN0b3Jh
Z2U7CiAgIHR5cGUgU2luZ2xlX05vZGUgaXMgcmVjb3JkCiAgICAgIEVsZW1lbnQgOiBJdGVtOwog
ICAgICBOZXh0IDogU2luZ2xlX05vZGVfUmVmOwogICAgICBDb3VudCA6IE5hdHVyYWwgOj0gMTsK
ICAgZW5kIHJlY29yZDsKCiAgIHR5cGUgTGlzdCBpcyBuZXcgQ29udGFpbmVyIHdpdGggcmVjb3Jk
CiAgICAgIFJlcCA6IFNpbmdsZV9Ob2RlX1JlZjsKICAgZW5kIHJlY29yZDsKCiAgIHByb2NlZHVy
ZSBJbml0aWFsaXplIChMIDogaW4gb3V0IExpc3QpOwogICBwcm9jZWR1cmUgQWRqdXN0IChMIDog
aW4gb3V0IExpc3QpOwogICBwcm9jZWR1cmUgRmluYWxpemUgKEwgOiBpbiBvdXQgTGlzdCk7Cgog
ICB0eXBlIExpc3RfSXRlcmF0b3IgaXMgbmV3IEl0ZXJhdG9yIHdpdGggcmVjb3JkCiAgICAgIElu
ZGV4IDogU2luZ2xlX05vZGVfUmVmOwogICBlbmQgcmVjb3JkOwoKICAgLS0gIE92ZXJyaWRpbmcg
cHJpbWl0aXZlIHN1cGJyb2dyYW1zIG9mIHRoZSBjb25jcmV0ZSBhY3R1YWwKICAgLS0gIEl0ZXJh
dG9yLgoKICAgcHJvY2VkdXJlIFJlc2V0IChJdCA6IGluIG91dCBMaXN0X0l0ZXJhdG9yKTsKCiAg
IHByb2NlZHVyZSBOZXh0IChJdCA6IGluIG91dCBMaXN0X0l0ZXJhdG9yKTsKCiAgIGZ1bmN0aW9u
IElzX0RvbmUgKEl0IDogTGlzdF9JdGVyYXRvcikgcmV0dXJuIEJvb2xlYW47CgogICBmdW5jdGlv
biBDdXJyZW50X0l0ZW0gKEl0IDogTGlzdF9JdGVyYXRvcikgcmV0dXJuIEl0ZW07CgogICBmdW5j
dGlvbiBDdXJyZW50X0l0ZW1fUHRyIChJdCA6IExpc3RfSXRlcmF0b3IpIHJldHVybiBJdGVtX1B0
cjsKCiAgIHByb2NlZHVyZSBEZWxldGVfSXRlbV9BdCAoSXQgOiBpbiBvdXQgTGlzdF9JdGVyYXRv
cik7CgplbmQgQkMuQ29udGFpbmVycy5MaXN0cy5TaW5nbGU7Ci0tICBDb3B5cmlnaHQgKEMpIDE5
OTggUGF0IFJvZ2Vycy4KLS0gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0tCi0tICAgICAgVGhpcyBw
cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0Ci0tICAgICAg
YW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEFkYSBDb21tdW5pdHkKLS0g
ICAgICBMaWNlbnNlIHdoaWNoIGNvbWVzIHdpdGggdGhpcyBMaWJyYXJ5LgotLQotLSAgICAgIFRo
aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUKLS0g
ICAgICB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkCi0tICAgICAgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotLSAgICAgIFBVUlBPU0UuIFNlZSB0aGUgQWRhIENvbW11bml0eSBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0tICAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgQWRhIENvbW11bml0eQotLSAgICAgIExpY2Vuc2Ugd2l0aCB0aGlzIGxpYnJh
cnksIGluIHRoZSBmaWxlIG5hbWVkICJBZGEgQ29tbXVuaXR5Ci0tICAgICAgTGljZW5zZSIgb3Ig
IkFDTCIuIElmIG5vdCwgY29udGFjdCB0aGUgYXV0aG9yIG9mIHRoaXMgbGlicmFyeQotLSAgICAg
IGZvciBhIGNvcHkuCi0tCgotLSAgJElkOiBnbG9iYWxfaGVhcC5hZHMsdiAxLjUgMjAwMS8wOS8y
MyAxNToyNToxMCBzaW1vbiBFeHAgJAoKd2l0aCBCQy5TdXBwb3J0Lk1hbmFnZWRfU3RvcmFnZTsK
d2l0aCBTeXN0ZW0uU3RvcmFnZV9Qb29sczsKCnBhY2thZ2UgR2xvYmFsX0hlYXAgaXMKCiAgIHN1
YnR5cGUgUG9vbCBpcyBCQy5TdXBwb3J0Lk1hbmFnZWRfU3RvcmFnZS5Qb29sOwogICBTdG9yYWdl
X1Bvb2wgOiBQb29sIChDaHVua19TaXplID0+IDEwMjQpOwoKICAgU3RvcmFnZSA6IFN5c3RlbS5T
dG9yYWdlX1Bvb2xzLlJvb3RfU3RvcmFnZV9Qb29sJ0NsYXNzCiAgICAgcmVuYW1lcyBTeXN0ZW0u
U3RvcmFnZV9Qb29scy5Sb290X1N0b3JhZ2VfUG9vbCdDbGFzcyAoU3RvcmFnZV9Qb29sKTsKCmVu
ZCBHbG9iYWxfSGVhcDsKLS0gIENvcHlyaWdodCAoQykgMTk5NC0xOTk4LDIwMDEgR3JhZHkgQm9v
Y2gsIERhdmlkIFdlbGxlciBhbmQgU2ltb24gV3JpZ2h0LgotLSAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLS0KLS0gICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQKLS0gICAgICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgQWRhIENvbW11bml0eQotLSAgICAgIExpY2Vuc2Ugd2hpY2ggY29tZXMgd2l0aCB0aGlzIExp
YnJhcnkuCi0tCi0tICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZQotLSAgICAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQKLS0gICAgICB3YXJyYW50eSBvZiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0tICAgICAgUFVSUE9TRS4gU2VlIHRo
ZSBBZGEgQ29tbXVuaXR5IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0gICAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBBZGEgQ29tbXVuaXR5Ci0tICAgICAgTGlj
ZW5zZSB3aXRoIHRoaXMgbGlicmFyeSwgaW4gdGhlIGZpbGUgbmFtZWQgIkFkYSBDb21tdW5pdHkK
LS0gICAgICBMaWNlbnNlIiBvciAiQUNMIi4gSWYgbm90LCBjb250YWN0IHRoZSBhdXRob3Igb2Yg
dGhpcyBsaWJyYXJ5Ci0tICAgICAgZm9yIGEgY29weS4KLS0KCi0tICAkUkNTZmlsZTogYmMtc3Vw
cG9ydC5hZHMsdiAkCi0tICAkUmV2aXNpb246IDEuNSAkCi0tICAkRGF0ZTogMjAwMS8wOS8yMiAx
NzozMDoyNiAkCi0tICAkQXV0aG9yOiBzaW1vbiAkCgpwYWNrYWdlIEJDLlN1cHBvcnQgaXMgZW5k
IEJDLlN1cHBvcnQ7Ci0tICBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBHcmFkeSBCb29jaCwgUGF0
IFJvZ2VycyBhbmQgU2ltb24gV3JpZ2h0LgotLSAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS0KLS0g
ICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQKLS0gICAgICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgQWRhIENv
bW11bml0eQotLSAgICAgIExpY2Vuc2Ugd2hpY2ggY29tZXMgd2l0aCB0aGlzIExpYnJhcnkuCi0t
Ci0tICAgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZQotLSAgICAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQKLS0gICAgICB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0tICAgICAgUFVSUE9TRS4gU2VlIHRoZSBBZGEgQ29t
bXVuaXR5IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0gICAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBBZGEgQ29tbXVuaXR5Ci0tICAgICAgTGljZW5zZSB3aXRo
IHRoaXMgbGlicmFyeSwgaW4gdGhlIGZpbGUgbmFtZWQgIkFkYSBDb21tdW5pdHkKLS0gICAgICBM
aWNlbnNlIiBvciAiQUNMIi4gSWYgbm90LCBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhpcyBsaWJy
YXJ5Ci0tICAgICAgZm9yIGEgY29weS4KLS0KCi0tICAkUkNTZmlsZTogYmMtc3VwcG9ydC1tYW5h
Z2VkX3N0b3JhZ2UuYWRzLHYgJAotLSAgJFJldmlzaW9uOiAxLjEwICQKLS0gICREYXRlOiAyMDAx
LzA5LzIzIDE1OjI1OjEwICQKLS0gICRBdXRob3I6IHNpbW9uICQKCndpdGggU3lzdGVtLlN0b3Jh
Z2VfUG9vbHM7CndpdGggU3lzdGVtLlN0b3JhZ2VfRWxlbWVudHM7CgpwYWNrYWdlIEJDLlN1cHBv
cnQuTWFuYWdlZF9TdG9yYWdlIGlzCgogICBwcmFnbWEgRWxhYm9yYXRlX0JvZHk7CgogICBwYWNr
YWdlIFNTRSByZW5hbWVzIFN5c3RlbS5TdG9yYWdlX0VsZW1lbnRzOwogICBwYWNrYWdlIFNTUCBy
ZW5hbWVzIFN5c3RlbS5TdG9yYWdlX1Bvb2xzOwoKICAgdHlwZSBQb29sIChDaHVua19TaXplIDog
U1NFLlN0b3JhZ2VfQ291bnQpIGlzCiAgICAgbmV3IFNTUC5Sb290X1N0b3JhZ2VfUG9vbCB3aXRo
IHByaXZhdGU7CiAgIC0tICBUaGlzIHBvb2wgY2FuIGFsbG9jYXRlIG9iamVjdHMgb2YgdHlwZSBZ
b3VyX1R5cGUgdGhhdCBhcmUgbm8KICAgLS0gIGxhcmdlciB0aGFuIENodW5rX1NpemUgLSBQb29s
X092ZXJoZWFkIChBbGlnbm1lbnQgPT4KICAgLS0gIFlvdXJfVHlwZSdBbGlnbm1lbnQpLiAgQkMu
U3RvcmFnZV9FcnJvciB3aWxsIGJlIHJhaXNlZCBmb3IKICAgLS0gIGF0dGVtcHRzIHRvIGFsbG9j
YXRlIGxhcmdlciBvYmplY3RzLgogICAtLSAgKFBvb2xfT3ZlcmhlYWQncyBUeXBlX092ZXJoZWFk
IHBhcmFtZXRlciBpcyBmb3IgdXNlIHdoZW4KICAgLS0gIFlvdXJfVHlwZSBpcyB1bmNvbnN0cmFp
bmVkLCBzbyB0aGF0IHNvbWUgYWRkaXRpb25hbCBzdG9yYWdlIGlzCiAgIC0tICByZXF1aXJlZCB0
byBob2xkIHRoZSBhY3R1YWwgb2JqZWN0J3MgY29uc3RyYWludHMpLgoKICAgcHJvY2VkdXJlIEFs
bG9jYXRlIChUaGVfUG9vbCA6IGluIG91dCBQb29sOwogICAgICAgICAgICAgICAgICAgICAgIFN0
b3JhZ2VfQWRkcmVzcyA6IG91dCBTeXN0ZW0uQWRkcmVzczsKICAgICAgICAgICAgICAgICAgICAg
ICBTaXplX0luX1N0b3JhZ2VfRWxlbWVudHMgOiBTU0UuU3RvcmFnZV9Db3VudDsKICAgICAgICAg
ICAgICAgICAgICAgICBBbGlnbm1lbnQgOiBTU0UuU3RvcmFnZV9Db3VudCk7CgogICBwcm9jZWR1
cmUgRGVhbGxvY2F0ZSAoVGhlX1Bvb2wgOiBpbiBvdXQgUG9vbDsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFN0b3JhZ2VfQWRkcmVzcyA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAg
ICAgICAgICAgU2l6ZV9Jbl9TdG9yYWdlX0VsZW1lbnRzIDogU1NFLlN0b3JhZ2VfQ291bnQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBBbGlnbm1lbnQgOiBTU0UuU3RvcmFnZV9Db3VudCk7Cgog
ICBmdW5jdGlvbiBTdG9yYWdlX1NpemUgKFRoaXMgOiBQb29sKSByZXR1cm4gU1NFLlN0b3JhZ2Vf
Q291bnQ7CgogICBmdW5jdGlvbiBQb29sX092ZXJoZWFkCiAgICAgKFR5cGVfT3ZlcmhlYWQgIDog
U1NFLlN0b3JhZ2VfQ291bnQgOj0gMDsKICAgICAgQWxpZ25tZW50IDogU1NFLlN0b3JhZ2VfQ291
bnQpIHJldHVybiBTU0UuU3RvcmFnZV9Db3VudDsKCiAgIHByb2NlZHVyZSBQcmVhbGxvY2F0ZV9D
aHVua3MgKFRoaXMgOiBpbiBvdXQgUG9vbDsgIENvdW50IDogUG9zaXRpdmUpOwoKICAgcHJvY2Vk
dXJlIFJlY2xhaW1fVW51c2VkX0NodW5rcyAoVGhpcyA6IGluIG91dCBQb29sKTsKCiAgIHByb2Nl
ZHVyZSBQdXJnZV9VbnVzZWRfQ2h1bmtzIChUaGlzIDogaW4gb3V0IFBvb2wpOwoKICAgZnVuY3Rp
b24gVG90YWxfQ2h1bmtzIChUaGlzIDogUG9vbCkgcmV0dXJuIE5hdHVyYWw7CgogICBmdW5jdGlv
biBEaXJ0eV9DaHVua3MgKFRoaXMgOiBQb29sKSByZXR1cm4gTmF0dXJhbDsKCiAgIGZ1bmN0aW9u
IFVudXNlZF9DaHVua3MgKFRoaXMgOiBQb29sKSByZXR1cm4gTmF0dXJhbDsKCnByaXZhdGUKCiAg
IHR5cGUgQ2h1bmsgKFBheWxvYWRfU2l6ZSA6IFNTRS5TdG9yYWdlX0NvdW50KTsKCiAgIHR5cGUg
Q2h1bmtfUG9pbnRlciBpcyBhY2Nlc3MgYWxsIENodW5rOwoKICAgdHlwZSBDaHVuayAoUGF5bG9h
ZF9TaXplIDogU1NFLlN0b3JhZ2VfQ291bnQpIGlzCiAgICAgIHJlY29yZAogICAgICAgICBQcmV2
aW91c19TaXplZF9DaHVuayA6IENodW5rX1BvaW50ZXI7CiAgICAgICAgIE5leHRfU2l6ZWRfQ2h1
bmsgOiBDaHVua19Qb2ludGVyOwogICAgICAgICBOZXh0X0NodW5rIDogQ2h1bmtfUG9pbnRlcjsK
ICAgICAgICAgRWxlbWVudF9TaXplIDogU1NFLlN0b3JhZ2VfQ291bnQ7CiAgICAgICAgIEFsaWdu
bWVudCA6IFNTRS5TdG9yYWdlX0NvdW50OwogICAgICAgICBOdW1iZXJfRWxlbWVudHMgOiBTU0Uu
U3RvcmFnZV9Db3VudDsKICAgICAgICAgTmV4dF9FbGVtZW50IDogU3lzdGVtLkFkZHJlc3M7CiAg
ICAgICAgIFBheWxvYWQgOiBTU0UuU3RvcmFnZV9BcnJheSAoMSAuLiBQYXlsb2FkX1NpemUpOwog
ICAgICBlbmQgcmVjb3JkOwoKICAgdHlwZSBQb29sIChDaHVua19TaXplIDogU1NFLlN0b3JhZ2Vf
Q291bnQpIGlzCiAgICAgbmV3IFNTUC5Sb290X1N0b3JhZ2VfUG9vbCB3aXRoCiAgICAgIHJlY29y
ZAogICAgICAgICBIZWFkIDogQ2h1bmtfUG9pbnRlcjsKICAgICAgICAgVW51c2VkIDogQ2h1bmtf
UG9pbnRlcjsKICAgICAgICAgQWxsb2NhdGVkX0NodW5rX1NpemUgOiBTU0UuU3RvcmFnZV9Db3Vu
dDsKICAgICAgZW5kIHJlY29yZDsKCiAgIHByb2NlZHVyZSBJbml0aWFsaXplIChUaGlzIDogaW4g
b3V0IFBvb2wpOwogICBwcm9jZWR1cmUgRmluYWxpemUgKFRoaXMgOiBpbiBvdXQgUG9vbCk7Cgog
ICBmdW5jdGlvbiBBbGlnbmVkIChTaXplIDogU1NFLlN0b3JhZ2VfQ291bnQ7CiAgICAgICAgICAg
ICAgICAgICAgIEFsaWdubWVudCA6IFNTRS5TdG9yYWdlX0NvdW50KSByZXR1cm4gU1NFLlN0b3Jh
Z2VfT2Zmc2V0OwoKICAgZnVuY3Rpb24gTmV3X0FsbG9jYXRpb24gKFNpemUgOiBTU0UuU3RvcmFn
ZV9Db3VudCkgcmV0dXJuIENodW5rX1BvaW50ZXI7CgogICBmdW5jdGlvbiBXaXRoaW5fUmFuZ2Ug
KFRhcmdldCA6IFN5c3RlbS5BZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2Ug
OiBDaHVua19Qb2ludGVyOwogICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCA6IFNTRS5T
dG9yYWdlX0NvdW50KSByZXR1cm4gQm9vbGVhbjsKICAgcHJhZ21hIElubGluZSAoV2l0aGluX1Jh
bmdlKTsKCiAgIHByb2NlZHVyZSBHZXRfQ2h1bmsgKFJlc3VsdCA6IG91dCBDaHVua19Qb2ludGVy
OwogICAgICAgICAgICAgICAgICAgICAgICBGcm9tIDogaW4gb3V0IFBvb2w7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFJlcXVlc3RlZF9FbGVtZW50X1NpemUgOiBTU0UuU3RvcmFnZV9Db3VudDsK
ICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdGVkX0FsaWdubWVudCA6IFNTRS5TdG9yYWdl
X0NvdW50KTsKCgogICB1c2UgdHlwZSBTU0UuU3RvcmFnZV9PZmZzZXQ7CgogICB0eXBlIEVtcHR5
X0NodW5rIGlzIG5ldyBDaHVuayAoUGF5bG9hZF9TaXplID0+IDApOwogICBDaHVua19PdmVyaGVh
ZCA6IGNvbnN0YW50IFNTRS5TdG9yYWdlX0NvdW50CiAgICAgOj0gKEVtcHR5X0NodW5rJ1NpemUg
KyBTeXN0ZW0uU3RvcmFnZV9Vbml0IC0gMSkgLyBTeXN0ZW0uU3RvcmFnZV9Vbml0OwoKZW5kIEJD
LlN1cHBvcnQuTWFuYWdlZF9TdG9yYWdlOwp3aXRoIEFkYS5TdHJpbmdzIDsgdXNlIEFkYS5TdHJp
bmdzIDsKCnBhY2thZ2UgQWRhbGliLlN0cmluZ3MgaXMKCmZ1bmN0aW9uIFRvX1N0cmluZyAocyA6
ICAgICAgICBUX1N0cmluZ19CdWZmZXIpIHJldHVybiBTdHJpbmcKICAgIHJlbmFtZXMgQWRhLlN0
cmluZ3MuVW5ib3VuZGVkLlRvX1N0cmluZyA7CgpmdW5jdGlvbiBUb19TdHJpbmdfQnVmZmVyIChz
IDogICAgICAgIFN0cmluZykgcmV0dXJuIFRfU3RyaW5nX0J1ZmZlcgogICAgcmVuYW1lcyBBZGEu
U3RyaW5ncy5VbmJvdW5kZWQuVG9fVW5ib3VuZGVkX1N0cmluZyA7CgpmdW5jdGlvbiBUb19TdHJp
bmdfQnVmZmVyIChMZW5ndGggOiBpbiBOYXR1cmFsKSByZXR1cm4gVF9TdHJpbmdfQnVmZmVyCiAg
ICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5Ub19VbmJvdW5kZWRfU3RyaW5nIDsKCmZ1
bmN0aW9uIExlbmd0aCAocyA6ICAgICAgICBUX1N0cmluZ19CdWZmZXIpIHJldHVybiBOYXR1cmFs
CiAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5MZW5ndGggOwoKCiAgIHByb2NlZHVy
ZSBBcHBlbmQKICAgICAoU291cmNlICAgOiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVyOwogICAgICBO
ZXdfSXRlbSA6IGluIFRfU3RyaW5nX0J1ZmZlcikKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5V
bmJvdW5kZWQuQXBwZW5kOwoKICAgcHJvY2VkdXJlIEFwcGVuZAogICAgIChTb3VyY2UgICA6IGlu
IG91dCBUX1N0cmluZ19CdWZmZXI7CiAgICAgIE5ld19JdGVtIDogaW4gU3RyaW5nKQogICAgICBy
ZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5BcHBlbmQ7CgogICBwcm9jZWR1cmUgQXBwZW5k
CiAgICAgKFNvdXJjZSAgIDogaW4gb3V0IFRfU3RyaW5nX0J1ZmZlcjsKICAgICAgTmV3X0l0ZW0g
OiBpbiBDaGFyYWN0ZXIpCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLkFwcGVu
ZDsKCiAgIGZ1bmN0aW9uICImIiAoTGVmdCwgUmlnaHQgOiBUX1N0cmluZ19CdWZmZXIpIHJldHVy
biBUX1N0cmluZ19CdWZmZXIKICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIiYiOwoK
ICAgZnVuY3Rpb24gIiYiCiAgICAgKExlZnQgIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBS
aWdodCA6IGluIFN0cmluZykKICAgICAgcmV0dXJuICBUX1N0cmluZ19CdWZmZXIKICAgICAgcmVu
YW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIiYiOwoKICAgZnVuY3Rpb24gIiYiCiAgICAgKExl
ZnQgIDogaW4gU3RyaW5nOwogICAgICBSaWdodCA6IGluIFRfU3RyaW5nX0J1ZmZlcikKICAgICAg
cmV0dXJuICBUX1N0cmluZ19CdWZmZXIKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5k
ZWQuIiYiOwoKICAgZnVuY3Rpb24gIiYiCiAgICAgKExlZnQgIDogaW4gVF9TdHJpbmdfQnVmZmVy
OwogICAgICBSaWdodCA6IGluIENoYXJhY3RlcikKICAgICAgcmV0dXJuICBUX1N0cmluZ19CdWZm
ZXIKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIiYiOwoKICAgZnVuY3Rpb24g
IiYiCiAgICAgKExlZnQgIDogaW4gQ2hhcmFjdGVyOwogICAgICBSaWdodCA6IGluIFRfU3RyaW5n
X0J1ZmZlcikKICAgICAgcmV0dXJuICBUX1N0cmluZ19CdWZmZXIKICAgICAgcmVuYW1lcyBBZGEu
U3RyaW5ncy5VbmJvdW5kZWQuIiYiOwoKICAgZnVuY3Rpb24gRWxlbWVudAogICAgIChTb3VyY2Ug
OiBpbiBUX1N0cmluZ19CdWZmZXI7CiAgICAgIEluZGV4ICA6IGluIFBvc2l0aXZlKQogICAgICBy
ZXR1cm4gICBDaGFyYWN0ZXIKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuRWxl
bWVudDsKCiAgIHByb2NlZHVyZSBSZXBsYWNlX0VsZW1lbnQKICAgICAoU291cmNlIDogaW4gb3V0
IFRfU3RyaW5nX0J1ZmZlcjsKICAgICAgSW5kZXggIDogaW4gUG9zaXRpdmU7CiAgICAgIEJ5ICAg
ICA6IENoYXJhY3RlcikKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuUmVwbGFj
ZV9FbGVtZW50OwoKICAgZnVuY3Rpb24gU2xpY2UKICAgICAoU291cmNlIDogaW4gVF9TdHJpbmdf
QnVmZmVyOwogICAgICBMb3cgICAgOiBpbiBQb3NpdGl2ZTsKICAgICAgSGlnaCAgIDogaW4gTmF0
dXJhbCkKICAgICAgcmV0dXJuICAgU3RyaW5nCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5i
b3VuZGVkLlNsaWNlOwoKICAgZnVuY3Rpb24gIj0iIChMZWZ0LCBSaWdodCA6IGluIFRfU3RyaW5n
X0J1ZmZlcikgcmV0dXJuIEJvb2xlYW4KICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5k
ZWQuIj0iOwoKICAgZnVuY3Rpb24gIj0iCiAgICAgKExlZnQgIDogaW4gVF9TdHJpbmdfQnVmZmVy
OwogICAgICBSaWdodCA6IGluIFN0cmluZykKICAgICAgcmV0dXJuICBCb29sZWFuCiAgICAgIHJl
bmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLiI9IjsKCiAgIGZ1bmN0aW9uICI9IgogICAgIChM
ZWZ0ICA6IGluIFN0cmluZzsKICAgICAgUmlnaHQgOiBpbiBUX1N0cmluZ19CdWZmZXIpCiAgICAg
IHJldHVybiAgQm9vbGVhbgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC4iPSI7
CgogICBmdW5jdGlvbiAiPCIgKExlZnQsIFJpZ2h0IDogaW4gVF9TdHJpbmdfQnVmZmVyKSByZXR1
cm4gQm9vbGVhbgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC4iPCI7CgogICBm
dW5jdGlvbiAiPCIKICAgICAoTGVmdCAgOiBpbiBUX1N0cmluZ19CdWZmZXI7CiAgICAgIFJpZ2h0
IDogaW4gU3RyaW5nKQogICAgICByZXR1cm4gIEJvb2xlYW4KICAgICAgcmVuYW1lcyBBZGEuU3Ry
aW5ncy5VbmJvdW5kZWQuIjwiOwoKICAgZnVuY3Rpb24gIjwiCiAgICAgKExlZnQgIDogaW4gU3Ry
aW5nOwogICAgICBSaWdodCA6IGluIFRfU3RyaW5nX0J1ZmZlcikKICAgICAgcmV0dXJuICBCb29s
ZWFuCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLiI8IjsKCiAgIGZ1bmN0aW9u
ICI8PSIgKExlZnQsIFJpZ2h0IDogaW4gVF9TdHJpbmdfQnVmZmVyKSByZXR1cm4gQm9vbGVhbgog
ICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC4iPD0iOwoKICAgZnVuY3Rpb24gIjw9
IgogICAgIChMZWZ0ICA6IGluIFRfU3RyaW5nX0J1ZmZlcjsKICAgICAgUmlnaHQgOiBpbiBTdHJp
bmcpCiAgICAgIHJldHVybiAgQm9vbGVhbgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91
bmRlZC4iPD0iOwoKICAgZnVuY3Rpb24gIjw9IgogICAgIChMZWZ0ICA6IGluIFN0cmluZzsKICAg
ICAgUmlnaHQgOiBpbiBUX1N0cmluZ19CdWZmZXIpCiAgICAgIHJldHVybiAgQm9vbGVhbgogICAg
ICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC4iPD0iOwoKICAgZnVuY3Rpb24gIj4iIChM
ZWZ0LCBSaWdodCA6IGluIFRfU3RyaW5nX0J1ZmZlcikgcmV0dXJuIEJvb2xlYW4KICAgcmVuYW1l
cyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIj4iOwoKICAgZnVuY3Rpb24gIj4iCiAgICAgKExlZnQg
IDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBSaWdodCA6IGluIFN0cmluZykKICAgICAgcmV0
dXJuICBCb29sZWFuCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLiI+IjsKCiAg
IGZ1bmN0aW9uICI+IgogICAgIChMZWZ0ICA6IGluIFN0cmluZzsKICAgICAgUmlnaHQgOiBpbiBU
X1N0cmluZ19CdWZmZXIpCiAgICAgIHJldHVybiAgQm9vbGVhbgogICAgICByZW5hbWVzIEFkYS5T
dHJpbmdzLlVuYm91bmRlZC4iPiI7CgogICBmdW5jdGlvbiAiPj0iIChMZWZ0LCBSaWdodCA6IGlu
IFRfU3RyaW5nX0J1ZmZlcikgcmV0dXJuIEJvb2xlYW4KICAgICAgcmVuYW1lcyBBZGEuU3RyaW5n
cy5VbmJvdW5kZWQuIj49IjsKCiAgIGZ1bmN0aW9uICI+PSIKICAgICAoTGVmdCAgOiBpbiBUX1N0
cmluZ19CdWZmZXI7CiAgICAgIFJpZ2h0IDogaW4gU3RyaW5nKQogICAgICByZXR1cm4gIEJvb2xl
YW4KICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIj49IjsKCiAgIGZ1bmN0aW9u
ICI+PSIKICAgICAoTGVmdCAgOiBpbiBTdHJpbmc7CiAgICAgIFJpZ2h0IDogaW4gVF9TdHJpbmdf
QnVmZmVyKQogICAgICByZXR1cm4gIEJvb2xlYW4KICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5V
bmJvdW5kZWQuIj49IjsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTZWFyY2gg
U3VicHJvZ3JhbXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBJ
bmRleAogICAgIChTb3VyY2UgICA6IGluIFRfU3RyaW5nX0J1ZmZlcjsKICAgICAgUGF0dGVybiAg
OiBpbiBTdHJpbmc7CiAgICAgIEdvaW5nICAgIDogaW4gRGlyZWN0aW9uIDo9IEZvcndhcmQ7CiAg
ICAgIE1hcHBpbmcgIDogaW4gTWFwcy5DaGFyYWN0ZXJfTWFwcGluZyA6PSBNYXBzLklkZW50aXR5
KQogICAgICByZXR1cm4gICAgIE5hdHVyYWwKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJv
dW5kZWQuSW5kZXg7CgogICBmdW5jdGlvbiBJbmRleAogICAgIChTb3VyY2UgICA6IGluIFRfU3Ry
aW5nX0J1ZmZlcjsKICAgICAgUGF0dGVybiAgOiBpbiBTdHJpbmc7CiAgICAgIEdvaW5nICAgIDog
aW4gRGlyZWN0aW9uIDo9IEZvcndhcmQ7CiAgICAgIE1hcHBpbmcgIDogaW4gTWFwcy5DaGFyYWN0
ZXJfTWFwcGluZ19GdW5jdGlvbikKICAgICAgcmV0dXJuICAgICBOYXR1cmFsCiAgICAgIHJlbmFt
ZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLkluZGV4OwoKICAgZnVuY3Rpb24gSW5kZXgKICAgICAo
U291cmNlIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBTZXQgICAgOiBpbiBNYXBzLkNoYXJh
Y3Rlcl9TZXQ7CiAgICAgIFRlc3QgICA6IGluIE1lbWJlcnNoaXAgOj0gSW5zaWRlOwogICAgICBH
b2luZyAgOiBpbiBEaXJlY3Rpb24gIDo9IEZvcndhcmQpCiAgICAgIHJldHVybiAgIE5hdHVyYWwK
ICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuSW5kZXg7CgogICBmdW5jdGlvbiBJ
bmRleF9Ob25fQmxhbmsKICAgICAoU291cmNlIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBH
b2luZyAgOiBpbiBEaXJlY3Rpb24gOj0gRm9yd2FyZCkKICAgICAgcmV0dXJuICAgTmF0dXJhbAog
ICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5JbmRleF9Ob25fQmxhbms7CgogICBm
dW5jdGlvbiBDb3VudAogICAgIChTb3VyY2UgIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBQ
YXR0ZXJuIDogaW4gU3RyaW5nOwogICAgICBNYXBwaW5nIDogaW4gTWFwcy5DaGFyYWN0ZXJfTWFw
cGluZyA6PSBNYXBzLklkZW50aXR5KQogICAgICByZXR1cm4gICAgTmF0dXJhbAogICAgICByZW5h
bWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5Db3VudDsKCiAgIGZ1bmN0aW9uIENvdW50CiAgICAg
KFNvdXJjZSAgIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBQYXR0ZXJuICA6IGluIFN0cmlu
ZzsKICAgICAgTWFwcGluZyAgOiBpbiBNYXBzLkNoYXJhY3Rlcl9NYXBwaW5nX0Z1bmN0aW9uKQog
ICAgICByZXR1cm4gICAgIE5hdHVyYWwKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5k
ZWQuQ291bnQ7CgogICBmdW5jdGlvbiBDb3VudAogICAgIChTb3VyY2UgOiBpbiBUX1N0cmluZ19C
dWZmZXI7CiAgICAgIFNldCAgICA6IGluIE1hcHMuQ2hhcmFjdGVyX1NldCkKICAgICAgcmV0dXJu
ICAgTmF0dXJhbAogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5Db3VudDsKCiAg
IHByb2NlZHVyZSBGaW5kX1Rva2VuCiAgICAgKFNvdXJjZSA6IGluIFRfU3RyaW5nX0J1ZmZlcjsK
ICAgICAgU2V0ICAgIDogaW4gTWFwcy5DaGFyYWN0ZXJfU2V0OwogICAgICBUZXN0ICAgOiBpbiBN
ZW1iZXJzaGlwOwogICAgICBGaXJzdCAgOiBvdXQgUG9zaXRpdmU7CiAgICAgIExhc3QgICA6IG91
dCBOYXR1cmFsKQogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5GaW5kX1Rva2Vu
OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN0cmluZyBU
cmFuc2xhdGlvbiBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCiAgIGZ1bmN0aW9uIFRyYW5zbGF0ZQogICAgIChTb3VyY2UgIDogaW4gVF9TdHJp
bmdfQnVmZmVyOwogICAgICBNYXBwaW5nIDogaW4gTWFwcy5DaGFyYWN0ZXJfTWFwcGluZykKICAg
ICAgcmV0dXJuICAgIFRfU3RyaW5nX0J1ZmZlcgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVu
Ym91bmRlZC5UcmFuc2xhdGU7CgogICBwcm9jZWR1cmUgVHJhbnNsYXRlCiAgICAgKFNvdXJjZSAg
OiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVyOwogICAgICBNYXBwaW5nIDogTWFwcy5DaGFyYWN0ZXJf
TWFwcGluZykKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuVHJhbnNsYXRlOwoK
ICAgZnVuY3Rpb24gVHJhbnNsYXRlCiAgICAgKFNvdXJjZSAgOiBpbiBUX1N0cmluZ19CdWZmZXI7
CiAgICAgIE1hcHBpbmcgOiBpbiBNYXBzLkNoYXJhY3Rlcl9NYXBwaW5nX0Z1bmN0aW9uKQogICAg
ICByZXR1cm4gICAgVF9TdHJpbmdfQnVmZmVyCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5i
b3VuZGVkLlRyYW5zbGF0ZTsKCiAgIHByb2NlZHVyZSBUcmFuc2xhdGUKICAgICAoU291cmNlICA6
IGluIG91dCBUX1N0cmluZ19CdWZmZXI7CiAgICAgIE1hcHBpbmcgOiBpbiBNYXBzLkNoYXJhY3Rl
cl9NYXBwaW5nX0Z1bmN0aW9uKQogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5U
cmFuc2xhdGU7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg
LS0gU3RyaW5nIFRyYW5zZm9ybWF0aW9uIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gUmVwbGFjZV9TbGljZQogICAg
IChTb3VyY2UgOiBpbiBUX1N0cmluZ19CdWZmZXI7CiAgICAgIExvdyAgICA6IGluIFBvc2l0aXZl
OwogICAgICBIaWdoICAgOiBpbiBOYXR1cmFsOwogICAgICBCeSAgICAgOiBpbiBTdHJpbmcpCiAg
ICAgIHJldHVybiAgIFRfU3RyaW5nX0J1ZmZlcgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVu
Ym91bmRlZC5SZXBsYWNlX1NsaWNlOwoKICAgcHJvY2VkdXJlIFJlcGxhY2VfU2xpY2UKICAgICAo
U291cmNlICAgOiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVyOwogICAgICBMb3cgICAgICA6IGluIFBv
c2l0aXZlOwogICAgICBIaWdoICAgICA6IGluIE5hdHVyYWw7CiAgICAgIEJ5ICAgICAgIDogaW4g
U3RyaW5nKQogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5SZXBsYWNlX1NsaWNl
OwoKICAgZnVuY3Rpb24gSW5zZXJ0CiAgICAgKFNvdXJjZSAgIDogaW4gVF9TdHJpbmdfQnVmZmVy
OwogICAgICBCZWZvcmUgICA6IGluIFBvc2l0aXZlOwogICAgICBOZXdfSXRlbSA6IGluIFN0cmlu
ZykKICAgICAgcmV0dXJuICAgICBUX1N0cmluZ19CdWZmZXIKICAgICAgcmVuYW1lcyBBZGEuU3Ry
aW5ncy5VbmJvdW5kZWQuSW5zZXJ0OwoKICAgcHJvY2VkdXJlIEluc2VydAogICAgIChTb3VyY2Ug
ICA6IGluIG91dCBUX1N0cmluZ19CdWZmZXI7CiAgICAgIEJlZm9yZSAgIDogaW4gUG9zaXRpdmU7
CiAgICAgIE5ld19JdGVtIDogaW4gU3RyaW5nKQogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVu
Ym91bmRlZC5JbnNlcnQ7CgogICBmdW5jdGlvbiBPdmVyd3JpdGUKICAgICAoU291cmNlICAgOiBp
biBUX1N0cmluZ19CdWZmZXI7CiAgICAgIFBvc2l0aW9uIDogaW4gUG9zaXRpdmU7CiAgICAgIE5l
d19JdGVtIDogaW4gU3RyaW5nKQogICAgICByZXR1cm4gICAgIFRfU3RyaW5nX0J1ZmZlcgogICAg
ICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5PdmVyd3JpdGU7CgogICBwcm9jZWR1cmUg
T3ZlcndyaXRlCiAgICAgKFNvdXJjZSAgICA6IGluIG91dCBUX1N0cmluZ19CdWZmZXI7CiAgICAg
IFBvc2l0aW9uICA6IGluIFBvc2l0aXZlOwogICAgICBOZXdfSXRlbSAgOiBpbiBTdHJpbmcpCiAg
ICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLk92ZXJ3cml0ZTsKCiAgIGZ1bmN0aW9u
IERlbGV0ZQogICAgIChTb3VyY2UgIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBGcm9tICAg
IDogaW4gUG9zaXRpdmU7CiAgICAgIFRocm91Z2ggOiBpbiBOYXR1cmFsKQogICAgICByZXR1cm4g
ICAgVF9TdHJpbmdfQnVmZmVyCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLkRl
bGV0ZTsKCiAgIHByb2NlZHVyZSBEZWxldGUKICAgICAoU291cmNlICA6IGluIG91dCBUX1N0cmlu
Z19CdWZmZXI7CiAgICAgIEZyb20gICAgOiBpbiBQb3NpdGl2ZTsKICAgICAgVGhyb3VnaCA6IGlu
IE5hdHVyYWwpCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLkRlbGV0ZTsKCiAg
IGZ1bmN0aW9uIFRyaW0KICAgICAoU291cmNlIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBT
aWRlICAgOiBpbiBUcmltX0VuZCkKICAgICAgcmV0dXJuICAgVF9TdHJpbmdfQnVmZmVyCiAgICAg
IHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLlRyaW07CgogICBwcm9jZWR1cmUgVHJpbQog
ICAgIChTb3VyY2UgOiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVyOwogICAgICBTaWRlICAgOiBpbiBU
cmltX0VuZCkKICAgICAgcmVuYW1lcyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuVHJpbTsKCiAgIGZ1
bmN0aW9uIFRyaW0KICAgICAoU291cmNlIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBMZWZ0
ICAgOiBpbiBNYXBzLkNoYXJhY3Rlcl9TZXQ7CiAgICAgIFJpZ2h0ICA6IGluIE1hcHMuQ2hhcmFj
dGVyX1NldCkKICAgICAgcmV0dXJuICAgVF9TdHJpbmdfQnVmZmVyCiAgICAgIHJlbmFtZXMgQWRh
LlN0cmluZ3MuVW5ib3VuZGVkLlRyaW07CgogICBwcm9jZWR1cmUgVHJpbQogICAgIChTb3VyY2Ug
OiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVyOwogICAgICBMZWZ0ICAgOiBpbiBNYXBzLkNoYXJhY3Rl
cl9TZXQ7CiAgICAgIFJpZ2h0ICA6IGluIE1hcHMuQ2hhcmFjdGVyX1NldCkKICAgICAgcmVuYW1l
cyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuVHJpbTsKCiAgIGZ1bmN0aW9uIEhlYWQKICAgICAoU291
cmNlIDogaW4gVF9TdHJpbmdfQnVmZmVyOwogICAgICBDb3VudCAgOiBpbiBOYXR1cmFsOwogICAg
ICBQYWQgICAgOiBpbiBDaGFyYWN0ZXIgOj0gU3BhY2UpCiAgICAgIHJldHVybiAgIFRfU3RyaW5n
X0J1ZmZlcgogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5IZWFkOwoKICAgcHJv
Y2VkdXJlIEhlYWQKICAgICAoU291cmNlIDogaW4gb3V0IFRfU3RyaW5nX0J1ZmZlcjsKICAgICAg
Q291bnQgIDogaW4gTmF0dXJhbDsKICAgICAgUGFkICAgIDogaW4gQ2hhcmFjdGVyIDo9IFNwYWNl
KQogICAgICByZW5hbWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC5IZWFkOwoKICAgZnVuY3Rpb24g
VGFpbAogICAgIChTb3VyY2UgOiBpbiBUX1N0cmluZ19CdWZmZXI7CiAgICAgIENvdW50ICA6IGlu
IE5hdHVyYWw7CiAgICAgIFBhZCAgICA6IGluIENoYXJhY3RlciA6PSBTcGFjZSkKICAgICAgcmV0
dXJuICAgVF9TdHJpbmdfQnVmZmVyCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVk
LlRhaWw7CgogICBwcm9jZWR1cmUgVGFpbAogICAgIChTb3VyY2UgOiBpbiBvdXQgVF9TdHJpbmdf
QnVmZmVyOwogICAgICBDb3VudCAgOiBpbiBOYXR1cmFsOwogICAgICBQYWQgICAgOiBpbiBDaGFy
YWN0ZXIgOj0gU3BhY2UpCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLlRhaWw7
CgogICBmdW5jdGlvbiAiKiIKICAgICAoTGVmdCAgOiBpbiBOYXR1cmFsOwogICAgICBSaWdodCA6
IGluIENoYXJhY3RlcikKICAgICAgcmV0dXJuICBUX1N0cmluZ19CdWZmZXIKICAgICAgcmVuYW1l
cyBBZGEuU3RyaW5ncy5VbmJvdW5kZWQuIioiOwoKICAgZnVuY3Rpb24gIioiCiAgICAgKExlZnQg
IDogaW4gTmF0dXJhbDsKICAgICAgUmlnaHQgOiBpbiBTdHJpbmcpCiAgICAgIHJldHVybiAgVF9T
dHJpbmdfQnVmZmVyCiAgICAgIHJlbmFtZXMgQWRhLlN0cmluZ3MuVW5ib3VuZGVkLiIqIjsKCiAg
IGZ1bmN0aW9uICIqIgogICAgIChMZWZ0ICA6IGluIE5hdHVyYWw7CiAgICAgIFJpZ2h0IDogaW4g
VF9TdHJpbmdfQnVmZmVyKQogICAgICByZXR1cm4gIFRfU3RyaW5nX0J1ZmZlcgogICAgICByZW5h
bWVzIEFkYS5TdHJpbmdzLlVuYm91bmRlZC4iKiI7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAgIC0tIFN0cmluZyBjb252ZXJzaW9ucwogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CgpmdW5jdGlvbiAgVUMgKCBjIDogICAgICAgIENoYXJhY3RlcikgcmV0dXJuIFRfU3RyaW5nX0J1
ZmZlciA7CmZ1bmN0aW9uICBVQyAoIHMgOiAgICAgICAgU3RyaW5nKSByZXR1cm4gVF9TdHJpbmdf
QnVmZmVyIDsKZnVuY3Rpb24gIFVDICggcyA6ICAgICAgICBUX1N0cmluZ19CdWZmZXIpIHJldHVy
biBUX1N0cmluZ19CdWZmZXIgOwoKcHJvY2VkdXJlIFVDICggcyA6IGluIG91dCBUX1N0cmluZ19C
dWZmZXIgKSA7CnByb2NlZHVyZSBVQyAoIHMgOiBpbiAgICAgU3RyaW5nOwogICAgICAgICAgICAg
ICByIDogICAgb3V0IFRfU3RyaW5nX0J1ZmZlciApIDsKcHJvY2VkdXJlIFVDICggcyA6IGluICAg
ICBUX1N0cmluZ19CdWZmZXI7CiAgICAgICAgICAgICAgIHIgOiAgICBvdXQgVF9TdHJpbmdfQnVm
ZmVyICkgOwoKCmZ1bmN0aW9uICBVQ19GaXJzdCAoIHMgOiAgICAgICAgU3RyaW5nKSByZXR1cm4g
VF9TdHJpbmdfQnVmZmVyIDsKZnVuY3Rpb24gIFVDX0ZpcnN0ICggcyA6ICAgICAgICBUX1N0cmlu
Z19CdWZmZXIpIHJldHVybiBUX1N0cmluZ19CdWZmZXIgOwoKcHJvY2VkdXJlIFVDX0ZpcnN0ICgg
cyA6IGluIG91dCBUX1N0cmluZ19CdWZmZXIgKSA7CnByb2NlZHVyZSBVQ19GaXJzdCAoIHMgOiBp
biAgICAgU3RyaW5nOwogICAgICAgICAgICAgICAgICAgICByIDogICAgb3V0IFRfU3RyaW5nX0J1
ZmZlciApIDsKcHJvY2VkdXJlIFVDX0ZpcnN0ICggcyA6IGluICAgICBUX1N0cmluZ19CdWZmZXI7
CiAgICAgICAgICAgICAgICAgICAgIHIgOiAgICBvdXQgVF9TdHJpbmdfQnVmZmVyICkgOwoKZnVu
Y3Rpb24gIExDICggYyA6ICAgICAgICBDaGFyYWN0ZXIpIHJldHVybiBUX1N0cmluZ19CdWZmZXIg
OwpmdW5jdGlvbiAgTEMgKCBzIDogICAgICAgIFN0cmluZykgcmV0dXJuIFRfU3RyaW5nX0J1ZmZl
ciA7CmZ1bmN0aW9uICBMQyAoIHMgOiAgICAgICAgVF9TdHJpbmdfQnVmZmVyKSByZXR1cm4gVF9T
dHJpbmdfQnVmZmVyIDsKCnByb2NlZHVyZSBMQyAoIHMgOiBpbiBvdXQgVF9TdHJpbmdfQnVmZmVy
ICkgOwpwcm9jZWR1cmUgTEMgKCBzIDogaW4gICAgIFN0cmluZzsKICAgICAgICAgICAgICAgciA6
ICAgIG91dCBUX1N0cmluZ19CdWZmZXIgKSA7CnByb2NlZHVyZSBMQyAoIHMgOiBpbiAgICAgVF9T
dHJpbmdfQnVmZmVyOwogICAgICAgICAgICAgICByIDogICAgb3V0IFRfU3RyaW5nX0J1ZmZlciAp
IDsKCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN0cmluZyBJbnB1dC1PdXRw
dXQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS1wcm9jZWR1cmUgR2V0IChG
aWxlIDogaW4gQWRhLlRleHRfSU8uRmlsZV9UeXBlOyAKICAgLS0gICAgICAgICAgICAgICBJdGVt
IDogb3V0IFRfU3RyaW5nX0J1ZmZlcik7CiAgIC0tcHJvY2VkdXJlIEdldCAoSXRlbSA6IG91dCBU
X1N0cmluZ19CdWZmZXIpOwogICBwcm9jZWR1cmUgUHV0IChGaWxlIDogaW4gQWRhLlRleHRfSU8u
RmlsZV9UeXBlOyAKICAgICAgICAgICAgICAgICAgSXRlbSA6IGluIFRfU3RyaW5nX0J1ZmZlcik7
CiAgIHByb2NlZHVyZSBQdXQgKEl0ZW0gOiBpbiBUX1N0cmluZ19CdWZmZXIpOwoKICAgLS1wcm9j
ZWR1cmUgR2V0X0xpbmUKICAgLS0gIChGaWxlIDogaW4gQWRhLlRleHRfSU8uRmlsZV9UeXBlOwog
ICAtLSAgIEl0ZW0gOiBvdXQgVF9TdHJpbmdfQnVmZmVyKTsKCiAgIC0tcHJvY2VkdXJlIEdldF9M
aW5lCiAgIC0tICAoSXRlbSA6IG91dCBUX1N0cmluZ19CdWZmZXIpOwoKICAgcHJvY2VkdXJlIFB1
dF9MaW5lCiAgICAgKEZpbGUgOiBpbiBBZGEuVGV4dF9JTy5GaWxlX1R5cGU7CiAgICAgIEl0ZW0g
OiBpbiBUX1N0cmluZ19CdWZmZXIpOwoKICAgcHJvY2VkdXJlIFB1dF9MaW5lCiAgICAgKEl0ZW0g
OiBpbiBUX1N0cmluZ19CdWZmZXIpOwoKCmVuZCBBZGFsaWIuU3RyaW5ncyA7CndpdGggQWRhLkNo
YXJhY3RlcnMuTGF0aW5fMSA7CgpwYWNrYWdlIEFkYWxpYi5TcHJpbnRmIGlzCgogICB1c2UgQWRh
LkV4Y2VwdGlvbnMgOwoKICAgdHlwZSBBbGlnbm1lbnQgaXMgCiAgICAgICAgIChMZWZ0LCAgCiAg
ICAgICAgICBSaWdodCwgCiAgICAgICAgICBDZW50ZXIpOyAKICAgdHlwZSBNYXBwaW5nIGlzIAog
ICAgICAgICAoTm9uZSwgICAgIAogICAgICAgICAgVXBwZXIsICAgIAogICAgICAgICAgTG93ZXIs
ICAgIAogICAgICAgICAgUHJpbnRhYmxlKTsgCiAgIHR5cGUgQmFzZXR5cGUgaXMgCiAgICAgICAg
IChCaW5hcnksICAgICAgICAKICAgICAgICAgIE9jdGFsLCAgICAgICAgIAogICAgICAgICAgRGVj
aW1hbCwgICAgICAgCiAgICAgICAgICBIZXhhZGVjaW1hbCwgICAKICAgICAgICAgIERvdHRlZF9E
ZWNpbWFsKTsgCiAgIHR5cGUgRW5jb2RpbmcgaXMgCiAgICAgICAgIChQbGFpbiwgICAKICAgICAg
ICAgIERlY2ltYWwsIAogICAgICAgICAgVGV4dHVhbCk7IAogICB0eXBlIEZsb2F0X1JlcCBpcyAK
ICAgICAgICAgKFN0YW5kYXJkLCAgIAogICAgICAgICAgU2NpZW50aWZpYywgCiAgICAgICAgICBF
bmdpbmVlcmluZyk7IAoKICAgdHlwZSBOYmFzZV9BcnJheSBpcyBhcnJheSAoQmFzZXR5cGUpIG9m
IFBvc2l0aXZlOyAKICAgdHlwZSBOZGlnaXRfQXJyYXkgaXMgYXJyYXkgKE5hdHVyYWwgcmFuZ2Ug
MCAuLiAxNSkgb2YgQ2hhcmFjdGVyOyAKCiAgIE5iYXNlICA6IE5iYXNlX0FycmF5ICA6PSAoQmlu
YXJ5ID0+IDIsIE9jdGFsID0+IDgsIEhleGFkZWNpbWFsID0+IDE2LAogICAgIG90aGVycyA9PiAx
MCk7ICAKICAgTmRpZ2l0IDogTmRpZ2l0X0FycmF5IDo9ICgwID0+ICcwJywgMSA9PiAnMScsIDIg
PT4gJzInLCAzID0+ICczJywgNCA9PgogICAgICc0JywgNSA9PiAnNScsIDYgPT4gJzYnLCA3ID0+
ICc3JywgOCA9PiAnOCcsIDkgPT4gJzknLCAxMCA9PiAnQScsIDExCiAgICAgPT4gJ0InLCAxMiA9
PiAnQycsIDEzID0+ICdEJywgMTQgPT4gJ0UnLCAxNSA9PiAnRicpOyAgCiAgIGZ1bmN0aW9uIEZv
cm1hdCAoCiAgICAgICAgIEMgICAgIDogQ2hhcmFjdGVyOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICBXaWR0aCA6IEludGVnZXIgICAgICA6PSAtIDE7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgQWxpZ24gOiBBbGlnbm1lbnQgICAgOj0gQWxp
Z25tZW50JyhMZWZ0KTsgICAgICAgICAgICAgICAKICAgICAgICAgUGFkICAgOiBDaGFyYWN0ZXIg
ICAgOj0gQWRhLkNoYXJhY3RlcnMuTGF0aW5fMS5TcGFjZTsgCiAgICAgICAgIE1hcCAgIDogTWFw
cGluZyAgICAgIDo9IE1hcHBpbmcnKE5vbmUpICAgICAgICAgICAgICAgICAgKSAKICAgICByZXR1
cm4gU3RyaW5nOyAKCiAgIGZ1bmN0aW9uIEZvcm1hdCAoCiAgICAgICAgIFMgICAgIDogU3RyaW5n
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBXaWR0aCA6
IEludGVnZXIgICAgICA6PSAtIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
QWxpZ24gOiBBbGlnbm1lbnQgICAgOj0gQWxpZ25tZW50JyhMZWZ0KTsgICAgICAgICAgICAgICAK
ICAgICAgICAgUGFkICAgOiBDaGFyYWN0ZXIgICAgOj0gQWRhLkNoYXJhY3RlcnMuTGF0aW5fMS5T
cGFjZTsgCiAgICAgICAgIE1hcCAgIDogTWFwcGluZyAgICAgIDo9IE1hcHBpbmcnKE5vbmUpICAg
ICAgICAgICAgICAgICAgKSAKICAgICByZXR1cm4gU3RyaW5nOyAKCiAgIGZ1bmN0aW9uIEZvcm1h
dCAoCiAgICAgICAgIFMgICAgICAgICAgICA6IFN0cmluZzsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgIFdpZHRoICAgICAgICA6IEludGVnZXI7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgIEluZGVudCAgICAgICA6IEludGVn
ZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgIEZpcnN0X0lu
ZGVudCA6IEJvb2xlYW4gICAgOj0gRmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgIFdyYXBfTGluZSAgICA6IEJvb2xlYW4gICAgOj0gRmFsc2U7ICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIFBhZCAgICAgICAgICA6IENoYXJhY3RlciAgOj0gQWRhLkNoYXJhY3Rl
cnMuTGF0aW5fMS5TcGFjZTsgCiAgICAgICAgIE1hcCAgICAgICAgICA6IE1hcHBpbmcgICAgOj0g
TWFwcGluZycoTm9uZSkgICAgICAgICAgICAgICAgICApIAogICAgIHJldHVybiBTdHJpbmc7IAoK
ICAgZnVuY3Rpb24gRm9ybWF0ICgKICAgICAgICAgUyAgICAgOiBUX1N0cmluZ19CdWZmZXI7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgIFdpZHRoIDogSW50
ZWdlciAgICAgIDo9IC0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBBbGln
biA6IEFsaWdubWVudCAgICA6PSBBbGlnbm1lbnQnKExlZnQpOyAgICAgICAgICAgICAgIAogICAg
ICAgICBQYWQgICA6IENoYXJhY3RlciAgICA6PSBBZGEuQ2hhcmFjdGVycy5MYXRpbl8xLlNwYWNl
OyAKICAgICAgICAgTWFwICAgOiBNYXBwaW5nICAgICAgOj0gTWFwcGluZycoTm9uZSkgICAgICAg
ICAgICAgICAgICApIAogICAgIHJldHVybiBTdHJpbmc7IAoKICAgZnVuY3Rpb24gRm9ybWF0ICgK
ICAgICAgICAgUyAgICAgICAgICAgIDogVF9TdHJpbmdfQnVmZmVyOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgV2lkdGggICAgICAgIDogSW50ZWdlcjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgSW5kZW50ICAgICAgIDog
SW50ZWdlcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgRmly
c3RfSW5kZW50IDogQm9vbGVhbiAgICA6PSBGYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgV3JhcF9MaW5lICAgIDogQm9vbGVhbiAgICA6PSBGYWxzZTsgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgUGFkICAgICAgICAgIDogQ2hhcmFjdGVyICA6PSBBZGEuQ2hh
cmFjdGVycy5MYXRpbl8xLlNwYWNlOyAKICAgICAgICAgTWFwICAgICAgICAgIDogTWFwcGluZyAg
ICA6PSBNYXBwaW5nJyhOb25lKSAgICAgICAgICAgICAgICAgICkgCiAgICAgcmV0dXJuIFN0cmlu
ZzsgCgogIAogICBmdW5jdGlvbiBGb3JtYXQgKAogICAgICAgICBJICAgICA6IEludGVnZXI7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBXaWR0aCA6IEludGVn
ZXIgICAgICA6PSAtIDE7ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBBbGlnbiA6
IEFsaWdubWVudCAgICA6PSBBbGlnbm1lbnQnKFJpZ2h0KTsgICAgICAgICAgICAgCiAgICAgICAg
IFNpZ24gIDogQm9vbGVhbiAgICAgIDo9IEZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgIFBhZCAgIDogQ2hhcmFjdGVyICAgIDo9IEFkYS5DaGFyYWN0ZXJzLkxhdGluXzEuU3Bh
Y2UgKSAKICAgICByZXR1cm4gU3RyaW5nOyAKCiAgIGZ1bmN0aW9uIEZvcm1hdCAoCiAgICAgICAg
IEkgICAgIDogTmF0dXJhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgIEJhc2UgIDogQmFzZXR5cGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgIFdpZHRoIDogSW50ZWdlciAgICAgIDo9IC0gMTsgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgIEFsaWduIDogQWxpZ25tZW50ICAgIDo9IEFsaWdubWVudCcoUmln
aHQpOyAgICAgICAgICAgICAKICAgICAgICAgUGFkICAgOiBDaGFyYWN0ZXIgICAgOj0gQWRhLkNo
YXJhY3RlcnMuTGF0aW5fMS5TcGFjZSApIAogICAgIHJldHVybiBTdHJpbmc7IAoKICAgZnVuY3Rp
b24gRm9ybWF0ICgKICAgICAgICAgQiAgICAgIDogQm9vbGVhbjsgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgV2lkdGggIDogSW50ZWdlciAgICAgIDo9IC0gMTsgICAgICAgICAgICAK
ICAgICAgICAgQWxpZ24gIDogQWxpZ25tZW50ICAgIDo9IEFsaWdubWVudCcoTGVmdCk7IAogICAg
ICAgICBFbmNvZGUgOiBFbmNvZGluZyAgICAgOj0gRW5jb2RpbmcnKFBsYWluKSAgKSAKICAgICBy
ZXR1cm4gU3RyaW5nOyAKCiAgIGZ1bmN0aW9uIEZvcm1hdCAoCiAgICAgICAgIEYgICAgICAgICAg
ICAgIDogRmxvYXQ7CiAgICAgICAgIFByZWNpc2lvbiAgICAgIDogTmF0dXJhbCAgICAgIDo9IDI7
CiAgICAgICAgIFdpZHRoICAgICAgICAgIDogSW50ZWdlciAgICAgIDo9IC0gMTsgICAgICAgICAg
ICAKICAgICAgICAgQWxpZ24gICAgICAgICAgOiBBbGlnbm1lbnQgICAgOj0gQWxpZ25tZW50JyhM
ZWZ0KTsgCiAgICAgICAgIFJlcHJlc2VudGF0aW9uIDogRmxvYXRfUmVwICAgIDo9IEZsb2F0X1Jl
cCcoU3RhbmRhcmQpICApIAogICAgIHJldHVybiBTdHJpbmc7IAoKZW5kIEFkYWxpYi5TcHJpbnRm
IDsK


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

end of thread, other threads:[~2003-05-12 23:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-12 23:46 ada/8247: Compiler bug reported; may have to do with variant records Dara Hazeghi
  -- strict thread matches above, loose matches on Subject: below --
2002-10-16 15:16 Erik.Pessers

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).