<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>156557</bug_id>
          
          <creation_ts>2016-04-13 14:56:27 -0700</creation_ts>
          <short_desc>REGRESSION(r199502): Appears to have in-browser perf regression (Requested by mlam on #webkit).</short_desc>
          <delta_ts>2016-04-13 15:02:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>156013</blocked>
    
    <blocked>156331</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1183552</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-13 14:56:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199502 broke the build:
Appears to have in-browser perf regression (Requested by mlam on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183556</commentid>
    <comment_count>1</comment_count>
      <attachid>276359</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-13 14:57:13 -0700</bug_when>
    <thetext>Created attachment 276359
ROLLOUT of r199502

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183558</commentid>
    <comment_count>2</comment_count>
      <attachid>276359</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-13 15:02:21 -0700</bug_when>
    <thetext>Comment on attachment 276359
ROLLOUT of r199502

Clearing flags on attachment: 276359

Committed r199514: &lt;http://trac.webkit.org/changeset/199514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183559</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-13 15:02:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276359</attachid>
            <date>2016-04-13 14:57:13 -0700</date>
            <delta_ts>2016-04-13 15:02:21 -0700</delta_ts>
            <desc>ROLLOUT of r199502</desc>
            <filename>bug-156557-20160413145724.patch</filename>
            <type>text/plain</type>
            <size>215522</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTgzMjQzMzg4N2ZkZTJiNjUyM2U3MDcxYTdlZDVkNzE1NzFhNzcyLi5hNTBhYjc5YjdlZmU0ZWI4
NTBiNjI5YzA0MmM5MTBiYzEwYTU3ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNi0wNC0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5OTUwMiBhbmQgcjE5
OTUxMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NjU1NworCisgICAgICAgIEFwcGVhcnMgdG8gaGF2ZSBpbi1icm93c2VyIHBlcmYgcmVncmVzc2lv
biAoUmVxdWVzdGVkIGJ5IG1sYW0KKyAgICAgICAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2
ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiRVM2OiBJbXBsZW1lbnQgU3RyaW5nLnByb3Rv
dHlwZS5zcGxpdCBhbmQKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0XS4iCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYwMTMKKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk5NTAyCisKKyAgICAgICAgIkVT
NjogSW1wbGVtZW50IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdLiIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjMzMQorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTk1MTEKKwogMjAxNi0wNC0xMyAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBpc0pTQXJyYXkgc2hvdWxk
IHVzZSBBcnJheVR5cGUgcmF0aGVyIHRoYW4gdGhlIENsYXNzSW5mbwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDI0ZmIwMjlhZGZlNTFkMjdhZGEwZGUxNzk5Mjg5NzNhOTVm
Njc5ZmMuLmVlNjdmODlkZDgwNGY4NTU0MTFkNmVjOGQwYTc2NmZhNzU2NTVmZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYzOCw3ICs2MzgsNiBAQCBzZXQoSmF2YVNj
cmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmNwcAogICAgIHJ1
bnRpbWUvRGlyZWN0QXJndW1lbnRzT2Zmc2V0LmNwcAogICAgIHJ1bnRpbWUvRHVtcENvbnRleHQu
Y3BwCi0gICAgcnVudGltZS9FQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmNwcAogICAg
IHJ1bnRpbWUvRXJyb3IuY3BwCiAgICAgcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAogICAg
IHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwYzhjYmU1ZTQzZmE4ZjQxNWI2MjExOTMxM2I3NTU1YjRiMDFiMzQ4Li5mNzNmODE0
MWIxMWIzYmYyMGMyZWZkYTBhYTk3ZWRlNTdjYTY1MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjA1NCw4ICsyMDU0LDYgQEAKIAkJRkUxQzBGRkYxQjE5NEZEMTAwQjUzRkNB
IC8qIEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRTFDMEZGRTFCMTk0RkQxMDBCNTNGQ0EgLyogRXhjZXB0aW9uLmNwcCAqLzsgfTsK
IAkJRkUyMENFOUQxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyMENFOUIxNUYwNEE5NTAwREYz
NDMwIC8qIExMSW50Q0xvb3AuY3BwICovOyB9OwogCQlGRTIwQ0U5RTE1RjA0QTk1MDBERjM0MzAg
LyogTExJbnRDTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkUyMENFOUMxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRTMxOEZERjFDQUM5ODI3
MDBERkNDNTQgLyogRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTMxOEZERDFDQUM4QzUzMDBE
RkNDNTQgLyogRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAgKi87IH07Ci0JCUZF
MzE4RkUwMUNBQzk4MkYwMERGQ0M1NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTMxOEZE
RTFDQUM4QzUzMDBERkNDNTQgLyogRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5oICov
OyB9OwogCQlGRTM4NEVFNTFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM4NEVFMTFBRERCN0FE
MDA1NURFMkMgLyogSlNEb2xsYXJWTS5jcHAgKi87IH07CiAJCUZFMzg0RUU2MUFEREI3QUQwMDU1
REUyQyAvKiBKU0RvbGxhclZNLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTM4NEVFMjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFMzg0RUU3MUFE
REI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMzg0RUUzMUFEREI3QUQwMDU1REUyQyAv
KiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCAqLzsgfTsKQEAgLTQzMDMsOCArNDMwMSw2IEBACiAJ
CUZFMUMwRkZFMUIxOTRGRDEwMEI1M0ZDQSAvKiBFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkUyMENFOUIxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTExJbnRDTG9vcC5jcHA7IHBhdGgg
PSBsbGludC9MTEludENMb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUy
MENFOUMxNUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTExJbnRDTG9vcC5oOyBwYXRoID0gbGxpbnQvTExJbnRDTG9vcC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRTMxOEZERDFDQUM4QzUzMDBERkNDNTQgLyog
RUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkUzMThGREUxQ0FDOEM1MzAwREZDQzU0IC8qIEVD
TUFTY3JpcHRTcGVjSW50ZXJuYWxGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTM4NEVFMTFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvbGxhclZNLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzODRFRTIxQUREQjdBRDAwNTVERTJDIC8q
IEpTRG9sbGFyVk0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEb2xsYXJW
TS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTM4NEVFMzFBRERCN0FEMDA1NURF
MkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RvbGxhclZNUHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTU1ODUsOCArNTU4MSw2IEBACiAJCQkJMEZFMDUwMEUxQUE5MDkxMTAwRDMzQjMz
IC8qIERpcmVjdEFyZ3VtZW50c09mZnNldC5oICovLAogCQkJCUE3MDQ0N0VCMTdBMEJENzAwMEY1
ODk4RSAvKiBEdW1wQ29udGV4dC5jcHAgKi8sCiAJCQkJQTcwNDQ3RUMxN0EwQkQ3MDAwRjU4OThF
IC8qIER1bXBDb250ZXh0LmggKi8sCi0JCQkJRkUzMThGREQxQ0FDOEM1MzAwREZDQzU0IC8qIEVD
TUFTY3JpcHRTcGVjSW50ZXJuYWxGdW5jdGlvbnMuY3BwICovLAotCQkJCUZFMzE4RkRFMUNBQzhD
NTMwMERGQ0M1NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmggKi8sCiAJCQkJ
MkFEMkVERkExOTc5OUUzODAwNEQ2NDc4IC8qIEVudW1lcmF0aW9uTW9kZS5oICovLAogCQkJCUJD
MzM3QkVBMEUxQjAwQ0IwMDc2OTE4QSAvKiBFcnJvci5jcHAgKi8sCiAJCQkJQkMzMDQ2MDYwRTFG
NDk3RjAwMzIzMkNGIC8qIEVycm9yLmggKi8sCkBAIC03OTQ5LDcgKzc5NDMsNiBAQAogCQkJCTUy
QzA2MTFGMUFBNTFFMUMwMEI0QURCQSAvKiBSdW50aW1lVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzIyQjMxQjkxNDA1NzdENzAwREI0NzVBIC8qIFNhbXBsaW5nQ291bnRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFMDUwMjgxQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3BlZEFyZ3VtZW50cy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRkUzMThGRTAxQ0FDOTgyRjAwREZDQzU0IC8qIEVDTUFTY3Jp
cHRTcGVjSW50ZXJuYWxGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI5MUFB
OTA5NTYwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHNUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFMDUwMkIxQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3BlT2Zmc2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjI0RTU1MjE3RUUyNzQ5MDBBQkIyMTcgLyogU2NyYXRjaFJlZ2lzdGVyQWxsb2Nh
dG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTg3NjcsNyArODc2MCw2IEBACiAJCQkJRkU1MDY4Njcx
QUUyNUUyODAwMDlEQUI3IC8qIERlZmVycmVkU291cmNlRHVtcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzdBNDIzRDE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNTVDMTk0MTcyNzZFNDYwMENFQUJGRCAvKiBERkdBYnN0cmFjdFZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFMzE4RkRGMUNBQzk4MjcwMERGQ0M1NCAvKiBF
Q01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RDNFNDAxMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1
ZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEQzQ0YxQjU1QTZFMDAwMkM1
QzlGIC8qIERGR0FkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJERDgxMTFBQjNEOEJFMDBCQkI4RTggLyogREZHQXJndW1lbnRzRWxpbWluYXRpb25Q
aGFzZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvR2xvYmFsT2JqZWN0LmpzCmluZGV4IGQyOGJmMmJlYmFhZWNhYTQyY2Y1OGRkM2VlMTFmZjE5
MDE3ZDljMzYuLjViY2JjMjI2ZDJmNTI2ZDkxYzNkZTg5OWYxYmJjYTk1NzM5ZTY3OWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPYmplY3QuanMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9iamVjdC5qcwpAQCAtMSw2
ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYxLDE4
ICs2MCwzIEBAIGZ1bmN0aW9uIHNwZWNpZXNHZXR0ZXIoKQogewogICAgIHJldHVybiB0aGlzOwog
fQotCi1mdW5jdGlvbiBzcGVjaWVzQ29uc3RydWN0b3Iob2JqLCBkZWZhdWx0Q29uc3RydWN0b3Ip
Ci17Ci0gICAgdmFyIGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yOwotICAgIGlmIChjb25z
dHJ1Y3RvciA9PT0gQHVuZGVmaW5lZCkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRDb25zdHJ1Y3Rv
cjsKLSAgICBpZiAoIUBpc09iamVjdChjb25zdHJ1Y3RvcikpCi0gICAgICAgIHRocm93IG5ldyBA
VHlwZUVycm9yKCJ8dGhpc3wuY29uc3RydWN0b3IgaXMgbm90IGFuIE9iamVjdCBvciB1bmRlZmlu
ZWQiKTsKLSAgICBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yW0BzeW1ib2xTcGVjaWVzXTsKLSAg
ICBpZiAoY29uc3RydWN0b3IgPT0gbnVsbCkKLSAgICAgICAgcmV0dXJuIGRlZmF1bHRDb25zdHJ1
Y3RvcjsKLSAgICBpZiAoQGlzQ29uc3RydWN0b3IoY29uc3RydWN0b3IpKQotICAgICAgICByZXR1
cm4gY29uc3RydWN0b3I7Ci0gICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoInx0aGlzfC5jb25zdHJ1
Y3RvcltTeW1ib2wuc3BlY2llc10gaXMgbm90IGEgY29uc3RydWN0b3IiKTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9Qcm9taXNlUHJvdG90eXBlLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1Byb21pc2VQcm90b3R5cGUuanMKaW5kZXgg
M2VhOTkyZjc3MTc3MWQ2OTY0MmIzZDQ3OTNkOTU3ZjQ5MThmZTEyYi4uNGFlMDMwNDJlYzFhMjA0
M2ZiOGQ1NTM1YzJiZWVlZTNlN2FmYTYzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL1Byb21pc2VQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL1Byb21pc2VQcm90b3R5cGUuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDE2IEBAIGZ1bmN0aW9u
IHRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpCiAgICAgaWYgKCFAaXNQcm9taXNlKHRoaXMp
KQogICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigifHRoaXN8IGlzIG5vdCBhIG9iamVjdCIp
OwogCi0gICAgdmFyIGNvbnN0cnVjdG9yID0gQHNwZWNpZXNDb25zdHJ1Y3Rvcih0aGlzLCBAUHJv
bWlzZSk7CisgICAgdmFyIGNvbnN0cnVjdG9yID0gdGhpcy5jb25zdHJ1Y3RvcjsKKyAgICBpZiAo
Y29uc3RydWN0b3IgPT09IEB1bmRlZmluZWQpCisgICAgICAgIGNvbnN0cnVjdG9yID0gQFByb21p
c2U7CisgICAgZWxzZSBpZiAoIUBpc09iamVjdChjb25zdHJ1Y3RvcikpCisgICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKCJ8dGhpc3wuY29uc3RydWN0b3IgaXMgbm90IGFuIE9iamVjdCBvciB1
bmRlZmluZWQiKTsKKyAgICBlbHNlIHsKKyAgICAgICAgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rv
cltAc3ltYm9sU3BlY2llc107CisgICAgICAgIGlmIChjb25zdHJ1Y3RvciA9PSBudWxsKQorICAg
ICAgICAgICAgY29uc3RydWN0b3IgPSBAUHJvbWlzZTsKKyAgICB9CiAKICAgICB2YXIgcmVzdWx0
Q2FwYWJpbGl0eSA9IEBuZXdQcm9taXNlQ2FwYWJpbGl0eShjb25zdHJ1Y3Rvcik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCmluZGV4
IDYxYzcwZGNhZGE3OTc2OWM5OGM3ZjRjZTg5ZmM1ODliZTA2M2MzMzAuLjFiNjAyNmIxOTBjZWQ1
MGE4YmYzMTE3MWUzOGNkZmViZDhmNzA5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwpAQCAtMjMsMTUgKzIzLDEzIEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKICAqLwogCi1mdW5jdGlvbiBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyaW5nLCBp
bmRleCwgdW5pY29kZSkKK2Z1bmN0aW9uIGFkdmFuY2VTdHJpbmdJbmRleFVuaWNvZGUoc3RyaW5n
LCBzdHJpbmdMZW5ndGgsIGluZGV4KQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50
cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGluIEVTNiAyMS4yLjUuMi4zLgorICAgIC8v
IFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyBBZHZhbmNlU3RyaW5nSW5kZXggZGVzY3JpYmVkIGlu
IEVTNiAyMS4yLjUuMi4zLCBzdGVwcyA2LTExLgorICAgIC8vIEl0IGFzc3VtZXMgdGhhdCAidW5p
Y29kZSIgaXMgdHJ1ZSBmb3IgaXRzIGNhbGxlcnMuCiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAg
aWYgKCF1bmljb2RlKQotICAgICAgICByZXR1cm4gaW5kZXggKyAxOwotCi0gICAgaWYgKGluZGV4
ICsgMSA+PSBzdHJpbmcubGVuZ3RoKQorICAgIGlmIChpbmRleCArIDEgPj0gc3RyaW5nTGVuZ3Ro
KQogICAgICAgICByZXR1cm4gaW5kZXggKyAxOwogCiAgICAgbGV0IGZpcnN0ID0gc3RyaW5nLkBj
aGFyQ29kZUF0KGluZGV4KTsKQEAgLTQ5LDEwICs0NywxMCBAQCBmdW5jdGlvbiBtYXRjaChzdHIp
CiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgaWYgKCFAaXNPYmplY3QodGhpcykpCisgICAg
aWYgKCEodGhpcyBpbnN0YW5jZW9mIEBPYmplY3QpKQogICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcigiUmVnRXhwLnByb3RvdHlwZS5AQG1hdGNoIHJlcXVpcmVzIHRoYXQgfHRoaXN8IGJlIGFu
IE9iamVjdCIpOwogCi0gICAgbGV0IHJlZ2V4cCA9IHRoaXM7CisgICAgbGV0IHJlZ2V4cCA9IEBP
YmplY3QodGhpcyk7CiAgICAgbGV0IHN0cmluZ0FyZyA9IEB0b1N0cmluZyhzdHIpOwogCiAgICAg
aWYgKCFyZWdleHAuZ2xvYmFsKQpAQCAtODEsOCArNzksMTIgQEAgZnVuY3Rpb24gbWF0Y2goc3Ry
KQogCiAgICAgICAgICAgICBsZXQgcmVzdWx0U3RyaW5nID0gQHRvU3RyaW5nKHJlc3VsdFswXSk7
CiAKLSAgICAgICAgICAgIGlmICghcmVzdWx0U3RyaW5nLmxlbmd0aCkKLSAgICAgICAgICAgICAg
ICByZWdleHAubGFzdEluZGV4ID0gQGFkdmFuY2VTdHJpbmdJbmRleChzdHJpbmdBcmcsIHJlZ2V4
cC5sYXN0SW5kZXgsIHVuaWNvZGUpOworICAgICAgICAgICAgaWYgKCFyZXN1bHRTdHJpbmcubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUpCisgICAgICAgICAgICAgICAgICAg
IHJlZ2V4cC5sYXN0SW5kZXggPSBAYWR2YW5jZVN0cmluZ0luZGV4VW5pY29kZShzdHJpbmdBcmcs
IHN0cmluZ0xlbmd0aCwgcmVnZXhwLmxhc3RJbmRleCk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICByZWdleHAubGFzdEluZGV4Kys7CisgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIHJlc3VsdExpc3QuQHB1c2gocmVzdWx0U3RyaW5nKTsKIApAQCAtOTMsMjIx
ICs5NSwzIEBAIGZ1bmN0aW9uIG1hdGNoKHN0cikKICAgICByZXR1cm4gcmVnZXhwLkBtYXRjaChz
dHJpbmdBcmcpOwogfQogCi1mdW5jdGlvbiByZWdFeHBFeGVjKHJlZ2V4cCwgc3RyKQotewotICAg
ICJ1c2Ugc3RyaWN0IjsKLQotICAgIGxldCBleGVjID0gcmVnZXhwLmV4ZWM7Ci0gICAgbGV0IGJ1
aWx0aW5FeGVjID0gQFJlZ0V4cC5wcm90b3R5cGUuQGV4ZWM7Ci0gICAgaWYgKGV4ZWMgIT09IGJ1
aWx0aW5FeGVjICYmIHR5cGVvZiBleGVjID09PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSBleGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPT0g
bnVsbCAmJiAhQGlzT2JqZWN0KHJlc3VsdCkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcigiVGhlIHJlc3VsdCBvZiBhIFJlZ0V4cCBleGVjIG11c3QgYmUgbnVsbCBvciBhbiBvYmpl
Y3QiKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1aWx0aW5F
eGVjLkBjYWxsKHJlZ2V4cCwgc3RyKTsKLX0KLQotLy8gMjEuMi41LjkgUmVnRXhwLnByb3RvdHlw
ZVtAQHNlYXJjaF0gKHN0cmluZykKLWZ1bmN0aW9uIHNlYXJjaChzdHJBcmcpCi17Ci0gICAgInVz
ZSBzdHJpY3QiOwotCi0gICAgbGV0IHJlZ2V4cCA9IHRoaXM7Ci0KLSAgICAvLyBDaGVjayBmb3Ig
b2JzZXJ2YWJsZSBzaWRlIGVmZmVjdHMgYW5kIGNhbGwgdGhlIGZhc3QgcGF0aCBpZiB0aGVyZSBh
cmVuJ3QgYW55LgotICAgIGlmIChAaXNSZWdFeHBPYmplY3QocmVnZXhwKSAmJiBAdHJ5R2V0QnlJ
ZChyZWdleHAsICJleGVjIikgPT09IEBSZWdFeHAucHJvdG90eXBlLkBleGVjKQotICAgICAgICBy
ZXR1cm4gQHJlZ0V4cFNlYXJjaEZhc3QuQGNhbGwocmVnZXhwLCBzdHJBcmcpOwotCi0gICAgLy8g
MS4gTGV0IHJ4IGJlIHRoZSB0aGlzIHZhbHVlLgotICAgIC8vIDIuIElmIFR5cGUocngpIGlzIG5v
dCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgICBpZiAoIUBpc09iamVj
dCh0aGlzKSkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlJlZ0V4cC5wcm90b3R5cGUu
QEBzZWFyY2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgYmUgYW4gT2JqZWN0Iik7Ci0KLSAgICAvLyAz
LiBMZXQgUyBiZSA/IFRvU3RyaW5nKHN0cmluZykuCi0gICAgbGV0IHN0ciA9IEB0b1N0cmluZyhz
dHJBcmcpCi0KLSAgICAvLyA0LiBMZXQgcHJldmlvdXNMYXN0SW5kZXggYmUgPyBHZXQocngsICJs
YXN0SW5kZXgiKS4KLSAgICBsZXQgcHJldmlvdXNMYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4
OwotICAgIC8vIDUuIFBlcmZvcm0gPyBTZXQocngsICJsYXN0SW5kZXgiLCAwLCB0cnVlKS4KLSAg
ICByZWdleHAubGFzdEluZGV4ID0gMDsKLSAgICAvLyA2LiBMZXQgcmVzdWx0IGJlID8gUmVnRXhw
RXhlYyhyeCwgUykuCi0gICAgbGV0IHJlc3VsdCA9IEByZWdFeHBFeGVjKHJlZ2V4cCwgc3RyKTsK
LSAgICAvLyA3LiBQZXJmb3JtID8gU2V0KHJ4LCAibGFzdEluZGV4IiwgcHJldmlvdXNMYXN0SW5k
ZXgsIHRydWUpLgotICAgIHJlZ2V4cC5sYXN0SW5kZXggPSBwcmV2aW91c0xhc3RJbmRleDsKLSAg
ICAvLyA4LiBJZiByZXN1bHQgaXMgbnVsbCwgcmV0dXJuIC0xLgotICAgIGlmIChyZXN1bHQgPT09
IG51bGwpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICAvLyA5LiBSZXR1cm4gPyBHZXQocmVzdWx0
LCAiaW5kZXgiKS4KLSAgICByZXR1cm4gcmVzdWx0LmluZGV4OwotfQotCi1mdW5jdGlvbiBoYXNP
YnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdChyZWdleHApIHsKLSAgICAvLyBUaGlz
IGlzIGFjY2Vzc2VkIGJ5IHRoZSBSZWdFeHBFeGVjIGludGVybmFsIGZ1bmN0aW9uLgotICAgIGxl
dCByZWdleHBFeGVjID0gQHRyeUdldEJ5SWQocmVnZXhwLCAiZXhlYyIpOwotICAgIGlmIChyZWdl
eHBFeGVjICE9PSBAUmVnRXhwLnByb3RvdHlwZS5AZXhlYykKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgCi0gICAgLy8gVGhpcyBpcyBhY2Nlc3NlZCBieSBzdGVwIDUgYmVsb3cuCi0gICAgbGV0
IHJlZ2V4cEZsYWdzID0gQHRyeUdldEJ5SWQocmVnZXhwLCAiZmxhZ3MiKTsKLSAgICBpZiAocmVn
ZXhwRmxhZ3MgIT09IEByZWdFeHBQcm90b0ZsYWdzR2V0dGVyKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAKLSAgICAvLyBUaGVzZSBhcmUgYWNjZXNzZWQgYnkgdGhlIGJ1aWx0aW4gZmxhZ3Mg
Z2V0dGVyLgotICAgIGxldCByZWdleHBHbG9iYWwgPSBAdHJ5R2V0QnlJZChyZWdleHAsICJnbG9i
YWwiKTsKLSAgICBpZiAocmVnZXhwR2xvYmFsICE9PSBAcmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGxldCByZWdleHBJZ25vcmVDYXNlID0gQHRyeUdl
dEJ5SWQocmVnZXhwLCAiaWdub3JlQ2FzZSIpOwotICAgIGlmIChyZWdleHBJZ25vcmVDYXNlICE9
PSBAcmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBsZXQgcmVnZXhwTXVsdGlsaW5lID0gQHRyeUdldEJ5SWQocmVnZXhwLCAibXVsdGlsaW5lIik7
Ci0gICAgaWYgKHJlZ2V4cE11bHRpbGluZSAhPT0gQHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVy
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBsZXQgcmVnZXhwU3RpY2t5ID0gQHRyeUdldEJ5
SWQocmVnZXhwLCAic3RpY2t5Iik7Ci0gICAgaWYgKHJlZ2V4cFN0aWNreSAhPT0gQHJlZ0V4cFBy
b3RvU3RpY2t5R2V0dGVyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBsZXQgcmVnZXhwVW5p
Y29kZSA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgInVuaWNvZGUiKTsKLSAgICBpZiAocmVnZXhwVW5p
Y29kZSAhPT0gQHJlZ0V4cFByb3RvVW5pY29kZUdldHRlcikKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgCi0gICAgLy8gVGhpcyBpcyBhY2Nlc3NlZCBieSB0aGUgUmVnRXhwIHNwZWNpZXMgY29u
c3RydWN0b3IuCi0gICAgbGV0IHJlZ2V4cFNvdXJjZSA9IEB0cnlHZXRCeUlkKHJlZ2V4cCwgInNv
dXJjZSIpOwotICAgIGlmIChyZWdleHBTb3VyY2UgIT09IEByZWdFeHBQcm90b1NvdXJjZUdldHRl
cikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuICFAaXNSZWdFeHBPYmpl
Y3QocmVnZXhwKTsKLX0KLQotLy8gRVMgMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxp
dF0oc3RyaW5nLCBsaW1pdCkKLWZ1bmN0aW9uIHNwbGl0KHN0cmluZywgbGltaXQpCi17Ci0gICAg
InVzZSBzdHJpY3QiOwotCi0gICAgLy8gMS4gTGV0IHJ4IGJlIHRoZSB0aGlzIHZhbHVlLgotICAg
IC8vIDIuIElmIFR5cGUocngpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2Vw
dGlvbi4KLSAgICBpZiAoIUBpc09iamVjdCh0aGlzKSkKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoIlJlZ0V4cC5wcm90b3R5cGUuQEBzcGxpdCByZXF1aXJlcyB0aGF0IHx0aGlzfCBiZSBh
biBPYmplY3QiKTsKLSAgICBsZXQgcmVnZXhwID0gdGhpczsKLQotICAgIC8vIDMuIExldCBTIGJl
ID8gVG9TdHJpbmcoc3RyaW5nKS4KLSAgICBsZXQgc3RyID0gQHRvU3RyaW5nKHN0cmluZyk7Ci0K
LSAgICAvLyA0LiBMZXQgQyBiZSA/IFNwZWNpZXNDb25zdHJ1Y3RvcihyeCwgJVJlZ0V4cCUpLgot
ICAgIGxldCBzcGVjaWVzQ29uc3RydWN0b3IgPSBAc3BlY2llc0NvbnN0cnVjdG9yKHJlZ2V4cCwg
QFJlZ0V4cCk7Ci0KLSAgICBpZiAoc3BlY2llc0NvbnN0cnVjdG9yID09PSBAUmVnRXhwICYmICFA
aGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQocmVnZXhwKSkKLSAgICAgICAg
cmV0dXJuIEByZWdFeHBTcGxpdEZhc3QuQGNhbGwocmVnZXhwLCBzdHIsIGxpbWl0KTsKLQotICAg
IC8vIDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0KHJ4LCAiZmxhZ3MiKSkuCi0gICAg
bGV0IGZsYWdzID0gQHRvU3RyaW5nKHJlZ2V4cC5mbGFncyk7Ci0KLSAgICAvLyA2LiBJZiBmbGFn
cyBjb250YWlucyAidSIsIGxldCB1bmljb2RlTWF0Y2hpbmcgYmUgdHJ1ZS4KLSAgICAvLyA3LiBF
bHNlLCBsZXQgdW5pY29kZU1hdGNoaW5nIGJlIGZhbHNlLgotICAgIGxldCB1bmljb2RlTWF0Y2hp
bmcgPSBAc3RyaW5nSW5jbHVkZXNJbnRlcm5hbC5AY2FsbChmbGFncywgInUiKTsKLSAgICAvLyA4
LiBJZiBmbGFncyBjb250YWlucyAieSIsIGxldCBuZXdGbGFncyBiZSBmbGFncy4KLSAgICAvLyA5
LiBFbHNlLCBsZXQgbmV3RmxhZ3MgYmUgdGhlIHN0cmluZyB0aGF0IGlzIHRoZSBjb25jYXRlbmF0
aW9uIG9mIGZsYWdzIGFuZCAieSIuCi0gICAgbGV0IG5ld0ZsYWdzID0gQHN0cmluZ0luY2x1ZGVz
SW50ZXJuYWwuQGNhbGwoZmxhZ3MsICJ5IikgPyBmbGFncyA6IGZsYWdzICsgInkiOwotCi0gICAg
Ly8gMTAuIExldCBzcGxpdHRlciBiZSA/IENvbnN0cnVjdChDLCDCqyByeCwgbmV3RmxhZ3Mgwrsp
LgotICAgIGxldCBzcGxpdHRlciA9IG5ldyBzcGVjaWVzQ29uc3RydWN0b3IocmVnZXhwLCBuZXdG
bGFncyk7Ci0KLSAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGFnYWluIGZvciBSZWdFeHAgc3ViY2xh
c3NlcyB0aGF0IHdpbGwgZmFpbCB0aGUgc3BlY2llc0NvbnN0cnVjdG9yIHRlc3QKLSAgICAvLyBi
dXQgY2FuIHN0aWxsIHVzZSB0aGUgZmFzdCBwYXRoIGFmdGVyIHdlIGludm9rZSB0aGUgY29uc3Ry
dWN0b3IgYWJvdmUuCi0gICAgaWYgKCFAaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhw
U3BsaXQoc3BsaXR0ZXIpKQotICAgICAgICByZXR1cm4gQHJlZ0V4cFNwbGl0RmFzdC5AY2FsbChz
cGxpdHRlciwgc3RyLCBsaW1pdCk7Ci0KLSAgICAvLyAxMS4gTGV0IEEgYmUgQXJyYXlDcmVhdGUo
MCkuCi0gICAgLy8gMTIuIExldCBsZW5ndGhBIGJlIDAuCi0gICAgbGV0IHJlc3VsdCA9IFtdOwot
Ci0gICAgLy8gMTMuIElmIGxpbWl0IGlzIHVuZGVmaW5lZCwgbGV0IGxpbSBiZSAyXjMyLTE7IGVs
c2UgbGV0IGxpbSBiZSA/IFRvVWludDMyKGxpbWl0KS4KLSAgICBsaW1pdCA9IChsaW1pdCA9PT0g
QHVuZGVmaW5lZCkgPyAweGZmZmZmZmZmIDogbGltaXQgPj4+IDA7Ci0KLSAgICAvLyAxNi4gSWYg
bGltID0gMCwgcmV0dXJuIEEuCi0gICAgaWYgKCFsaW1pdCkKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLQotICAgIC8vIDE0LiBbRGVmZXJlZCBmcm9tIGFib3ZlXSBMZXQgc2l6ZSBiZSB0aGUgbnVt
YmVyIG9mIGVsZW1lbnRzIGluIFMuCi0gICAgbGV0IHNpemUgPSBzdHIubGVuZ3RoOwotCi0gICAg
Ly8gMTcuIElmIHNpemUgPSAwLCB0aGVuCi0gICAgaWYgKCFzaXplKSB7Ci0gICAgICAgIC8vIGEu
IExldCB6IGJlID8gUmVnRXhwRXhlYyhzcGxpdHRlciwgUykuCi0gICAgICAgIGxldCB6ID0gQHJl
Z0V4cEV4ZWMoc3BsaXR0ZXIsIHN0cik7Ci0gICAgICAgIC8vIGIuIElmIHogaXMgbm90IG51bGws
IHJldHVybiBBLgotICAgICAgICBpZiAoeiAhPSBudWxsKQotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgLy8gYy4gUGVyZm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShBLCAiMCIs
IFMpLgotICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCAwLCBzdHIpOwotICAgICAgICAv
LyBkLiBSZXR1cm4gQS4KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvLyAx
NS4gW0RlZmVyZWQgZnJvbSBhYm92ZV0gTGV0IHAgYmUgMC4KLSAgICBsZXQgcG9zaXRpb24gPSAw
OwotICAgIC8vIDE4LiBMZXQgcSBiZSBwLgotICAgIGxldCBtYXRjaFBvc2l0aW9uID0gMDsKLQot
ICAgIC8vIDE5LiBSZXBlYXQsIHdoaWxlIHEgPCBzaXplCi0gICAgd2hpbGUgKG1hdGNoUG9zaXRp
b24gPCBzaXplKSB7Ci0gICAgICAgIC8vIGEuIFBlcmZvcm0gPyBTZXQoc3BsaXR0ZXIsICJsYXN0
SW5kZXgiLCBxLCB0cnVlKS4KLSAgICAgICAgc3BsaXR0ZXIubGFzdEluZGV4ID0gbWF0Y2hQb3Np
dGlvbjsKLSAgICAgICAgLy8gYi4gTGV0IHogYmUgPyBSZWdFeHBFeGVjKHNwbGl0dGVyLCBTKS4K
LSAgICAgICAgbGV0IG1hdGNoZXMgPSBAcmVnRXhwRXhlYyhzcGxpdHRlciwgc3RyKTsKLSAgICAg
ICAgLy8gYy4gSWYgeiBpcyBudWxsLCBsZXQgcSBiZSBBZHZhbmNlU3RyaW5nSW5kZXgoUywgcSwg
dW5pY29kZU1hdGNoaW5nKS4KLSAgICAgICAgaWYgKG1hdGNoZXMgPT09IG51bGwpCi0gICAgICAg
ICAgICBtYXRjaFBvc2l0aW9uID0gQGFkdmFuY2VTdHJpbmdJbmRleChzdHIsIG1hdGNoUG9zaXRp
b24sIHVuaWNvZGVNYXRjaGluZyk7Ci0gICAgICAgIC8vIGQuIEVsc2UgeiBpcyBub3QgbnVsbCwK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBpLiBMZXQgZSBiZSA/IFRvTGVuZ3RoKD8g
R2V0KHNwbGl0dGVyLCAibGFzdEluZGV4IikpLgotICAgICAgICAgICAgbGV0IGVuZFBvc2l0aW9u
ID0gQHRvTGVuZ3RoKHNwbGl0dGVyLmxhc3RJbmRleCk7Ci0gICAgICAgICAgICAvLyBpaS4gTGV0
IGUgYmUgbWluKGUsIHNpemUpLgotICAgICAgICAgICAgZW5kUG9zaXRpb24gPSAoZW5kUG9zaXRp
b24gPD0gc2l6ZSkgPyBlbmRQb3NpdGlvbiA6IHNpemU7Ci0gICAgICAgICAgICAvLyBpaWkuIElm
IGUgPSBwLCBsZXQgcSBiZSBBZHZhbmNlU3RyaW5nSW5kZXgoUywgcSwgdW5pY29kZU1hdGNoaW5n
KS4KLSAgICAgICAgICAgIGlmIChlbmRQb3NpdGlvbiA9PT0gcG9zaXRpb24pCi0gICAgICAgICAg
ICAgICAgbWF0Y2hQb3NpdGlvbiA9IEBhZHZhbmNlU3RyaW5nSW5kZXgoc3RyLCBtYXRjaFBvc2l0
aW9uLCB1bmljb2RlTWF0Y2hpbmcpOwotICAgICAgICAgICAgLy8gaXYuIEVsc2UgZSAhPSBwLAot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gMS4gTGV0IFQgYmUgYSBTdHJp
bmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1YnN0cmluZyBvZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGVs
ZW1lbnRzIGF0IGluZGljZXMgcCAoaW5jbHVzaXZlKSB0aHJvdWdoIHEgKGV4Y2x1c2l2ZSkuCi0g
ICAgICAgICAgICAgICAgbGV0IHN1YlN0ciA9IEBzdHJpbmdTdWJzdHJJbnRlcm5hbC5AY2FsbChz
dHIsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pOwotICAgICAgICAgICAgICAg
IC8vIDIuIFBlcmZvcm0gISBDcmVhdGVEYXRhUHJvcGVydHkoQSwgISBUb1N0cmluZyhsZW5ndGhB
KSwgVCkuCi0gICAgICAgICAgICAgICAgLy8gMy4gTGV0IGxlbmd0aEEgYmUgbGVuZ3RoQSArIDEu
Ci0gICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgcmVzdWx0Lmxlbmd0aCwg
c3ViU3RyKTsKLSAgICAgICAgICAgICAgICAvLyA0LiBJZiBsZW5ndGhBID0gbGltLCByZXR1cm4g
QS4KLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PSBsaW1pdCkKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQotICAgICAgICAgICAgICAgIC8vIDUuIExldCBw
IGJlIGUuCi0gICAgICAgICAgICAgICAgcG9zaXRpb24gPSBlbmRQb3NpdGlvbjsKLSAgICAgICAg
ICAgICAgICAvLyA2LiBMZXQgbnVtYmVyT2ZDYXB0dXJlcyBiZSA/IFRvTGVuZ3RoKD8gR2V0KHos
ICJsZW5ndGgiKSkuCi0gICAgICAgICAgICAgICAgLy8gNy4gTGV0IG51bWJlck9mQ2FwdHVyZXMg
YmUgbWF4KG51bWJlck9mQ2FwdHVyZXMtMSwgMCkuCi0gICAgICAgICAgICAgICAgbGV0IG51bWJl
ck9mQ2FwdHVyZXMgPSBtYXRjaGVzLmxlbmd0aCA+IDEgPyBtYXRjaGVzLmxlbmd0aCAtIDEgOiAw
OwotCi0gICAgICAgICAgICAgICAgLy8gOC4gTGV0IGkgYmUgMS4KLSAgICAgICAgICAgICAgICBs
ZXQgaSA9IDE7Ci0gICAgICAgICAgICAgICAgLy8gOS4gUmVwZWF0LCB3aGlsZSBpIDw9IG51bWJl
ck9mQ2FwdHVyZXMsCi0gICAgICAgICAgICAgICAgd2hpbGUgKGkgPD0gbnVtYmVyT2ZDYXB0dXJl
cykgewotICAgICAgICAgICAgICAgICAgICAvLyBhLiBMZXQgbmV4dENhcHR1cmUgYmUgPyBHZXQo
eiwgISBUb1N0cmluZyhpKSkuCi0gICAgICAgICAgICAgICAgICAgIGxldCBuZXh0Q2FwdHVyZSA9
IG1hdGNoZXNbaV07Ci0gICAgICAgICAgICAgICAgICAgIC8vIGIuIFBlcmZvcm0gISBDcmVhdGVE
YXRhUHJvcGVydHkoQSwgISBUb1N0cmluZyhsZW5ndGhBKSwgbmV4dENhcHR1cmUpLgotICAgICAg
ICAgICAgICAgICAgICAvLyBkLiBMZXQgbGVuZ3RoQSBiZSBsZW5ndGhBICsgMS4KLSAgICAgICAg
ICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgcmVzdWx0Lmxlbmd0aCwgbmV4dENh
cHR1cmUpOwotICAgICAgICAgICAgICAgICAgICAvLyBlLiBJZiBsZW5ndGhBID0gbGltLCByZXR1
cm4gQS4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPT0gbGltaXQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgICAgICAg
ICAvLyBjLiBMZXQgaSBiZSBpICsgMS4KLSAgICAgICAgICAgICAgICAgICAgaSsrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyAxMC4gTGV0IHEgYmUgcC4KLSAgICAgICAg
ICAgICAgICBtYXRjaFBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgLy8gMjAuIExldCBUIGJlIGEgU3RyaW5nIHZhbHVlIGVxdWFsIHRvIHRo
ZSBzdWJzdHJpbmcgb2YgUyBjb25zaXN0aW5nIG9mIHRoZSBlbGVtZW50cyBhdCBpbmRpY2VzIHAg
KGluY2x1c2l2ZSkgdGhyb3VnaCBzaXplIChleGNsdXNpdmUpLgotICAgIGxldCByZW1haW5pbmdT
dHIgPSBAc3RyaW5nU3Vic3RySW50ZXJuYWwuQGNhbGwoc3RyLCBwb3NpdGlvbiwgc2l6ZSk7Ci0g
ICAgLy8gMjEuIFBlcmZvcm0gISBDcmVhdGVEYXRhUHJvcGVydHkoQSwgISBUb1N0cmluZyhsZW5n
dGhBKSwgVCkuCi0gICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgcmVzdWx0Lmxlbmd0aCwgcmVt
YWluaW5nU3RyKTsKLSAgICAvLyAyMi4gUmV0dXJuIEEuCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3Rv
dHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUu
anMKaW5kZXggODA3ODA1ZTAzNjU2MTYxNTQ1M2E3ZDc3MmE0ODAwNWY1ODhkODk0ZS4uMmRhNjQw
NTNiYjI0NDY2ZGU3YjE2MGJkZTVkNjVmMTMwZjlkNGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCkBAIC01Nyw4ICs1Nyw4IEBA
IGZ1bmN0aW9uIHNlYXJjaChyZWdleHApCiAgICAgfQogCiAgICAgaWYgKHJlZ2V4cCAhPSBudWxs
KSB7Ci0gICAgICAgIHZhciBzZWFyY2hlciA9IHJlZ2V4cFtAc3ltYm9sU2VhcmNoXTsKLSAgICAg
ICAgaWYgKHNlYXJjaGVyICE9IEB1bmRlZmluZWQpCisgICAgICAgICB2YXIgc2VhcmNoZXIgPSBy
ZWdleHBbQHN5bWJvbFNlYXJjaF07CisgICAgICAgICBpZiAoc2VhcmNoZXIgIT0gQHVuZGVmaW5l
ZCkKICAgICAgICAgICAgIHJldHVybiBzZWFyY2hlci5AY2FsbChyZWdleHAsIHRoaXMpOwogICAg
IH0KIApAQCAtMTI1LDIyICsxMjUsMyBAQCBmdW5jdGlvbiByZXBlYXQoY291bnQpCiAKICAgICBy
ZXR1cm4gQHJlcGVhdFNsb3dQYXRoKHN0cmluZywgY291bnQpOwogfQotCi1mdW5jdGlvbiBzcGxp
dChzZXBhcmF0b3IsIGxpbWl0KQotewotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAKLSAgICBpZiAo
dGhpcyA9PSBudWxsKSB7Ci0gICAgICAgIGlmICh0aGlzID09PSBudWxsKQotICAgICAgICAgICAg
dGhyb3cgbmV3IEBUeXBlRXJyb3IoIlN0cmluZy5wcm90b3R5cGUuc3BsaXQgcmVxdWlyZXMgdGhh
dCB8dGhpc3wgbm90IGJlIG51bGwiKTsKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIlN0
cmluZy5wcm90b3R5cGUuc3BsaXQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5l
ZCIpOwotICAgIH0KLSAgICAKLSAgICBpZiAoc2VwYXJhdG9yICE9IG51bGwpIHsKLSAgICAgICAg
dmFyIHNwbGl0dGVyID0gc2VwYXJhdG9yW0BzeW1ib2xTcGxpdF07Ci0gICAgICAgIGlmIChzcGxp
dHRlciAhPSBAdW5kZWZpbmVkKQotICAgICAgICAgICAgcmV0dXJuIHNwbGl0dGVyLkBjYWxsKHNl
cGFyYXRvciwgdGhpcywgbGltaXQpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gQHN0cmluZ1Nw
bGl0RmFzdC5AY2FsbCh0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTsKLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lz
dHJ5LmNwcAppbmRleCAwNTFmMWQzZjNhMzZiOTcyYzczZjQwZWZmMzdmOGY1ZmZkZmE2ZjQxLi5k
NTg1NGIwYzFlNDA2NjlkY2Y1ZjFhODQ2MjA2YTdiYjY5MDRhMjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuY3BwCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1
a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTksNyArNTgsNiBAQCBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpCeXRl
Y29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICBtX3N5bWJvbE1hdGNoLnNldChtX3Zt
LCBTeW1ib2w6OmNyZWF0ZShtX3ZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm1fdm0ucHJv
cGVydHlOYW1lcy0+bWF0Y2hTeW1ib2wuaW1wbCgpKSkpOwogICAgIG1fc3ltYm9sU2VhcmNoLnNl
dChtX3ZtLCBTeW1ib2w6OmNyZWF0ZShtX3ZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm1f
dm0ucHJvcGVydHlOYW1lcy0+c2VhcmNoU3ltYm9sLmltcGwoKSkpKTsKICAgICBtX3N5bWJvbFNw
ZWNpZXMuc2V0KG1fdm0sIFN5bWJvbDo6Y3JlYXRlKG1fdm0sIHN0YXRpY19jYXN0PFN5bWJvbElt
cGwmPigqbV92bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sLmltcGwoKSkpKTsKLSAgICBt
X3N5bWJvbFNwbGl0LnNldChtX3ZtLCBTeW1ib2w6OmNyZWF0ZShtX3ZtLCBzdGF0aWNfY2FzdDxT
eW1ib2xJbXBsJj4oKm1fdm0ucHJvcGVydHlOYW1lcy0+c3BsaXRTeW1ib2wuaW1wbCgpKSkpOwog
fQogCiBCeXRlY29kZUludHJpbnNpY05vZGU6OkVtaXR0ZXJUeXBlIEJ5dGVjb2RlSW50cmluc2lj
UmVnaXN0cnk6Omxvb2t1cChjb25zdCBJZGVudGlmaWVyJiBpZGVudCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lz
dHJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5oCmluZGV4IGY5NTI0YzJiZWViYjYxMTU3YzY1YTI0MzZjNzU5ZDhhYjllNGYxOTgu
LjEyYmEwOWQyMmFhMDk0MTJhNzRmMWNiZDRlMzhmNDIwMTQ0ZmUzZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuaApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtl
IFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTYyLDcgKzYxLDYgQEAgY2xhc3MgSWRlbnRpZmllcjsKICAgICBtYWNybyhzeW1i
b2xNYXRjaCkgXAogICAgIG1hY3JvKHN5bWJvbFNlYXJjaCkgXAogICAgIG1hY3JvKHN5bWJvbFNw
ZWNpZXMpIFwKLSAgICBtYWNybyhzeW1ib2xTcGxpdCkgXAogCiBjbGFzcyBCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA0Nzk4OWY2YWZjNWY1Nzg1MDgzM2Y1
NGI5Nzk1ZGE2NTNlNTc0NzVhLi5mYjU0NGZjNTE0ZWY1ZGRjZTA3MDFiZDc5Y2FmY2Q2MDY5MDk0
ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC05NzQsOCArOTc0LDcgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICBjYXNlIElzU3RyaW5nOgogICAgIGNhc2UgSXNPYmplY3Q6CiAgICAg
Y2FzZSBJc09iamVjdE9yTnVsbDoKLSAgICBjYXNlIElzRnVuY3Rpb246Ci0gICAgY2FzZSBJc1Jl
Z0V4cE9iamVjdDogeworICAgIGNhc2UgSXNGdW5jdGlvbjogewogICAgICAgICBBYnN0cmFjdFZh
bHVlIGNoaWxkID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIGlmIChjaGlsZC52
YWx1ZSgpKSB7CiAgICAgICAgICAgICBib29sIGNvbnN0YW50V2FzU2V0ID0gdHJ1ZTsKQEAgLTEw
NTAsOSArMTA0OSw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihm
YWxzZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBJc1JlZ0V4
cE9iamVjdDoKLSAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oY2hp
bGQudmFsdWUoKS5pc09iamVjdCgpICYmIGNoaWxkLnZhbHVlKCkuZ2V0T2JqZWN0KCktPnR5cGUo
KSA9PSBSZWdFeHBPYmplY3RUeXBlKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTk1LDIxICsxMTkxLDYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgSXNSZWdFeHBPYmplY3Q6Ci0gICAgICAgICAg
ICAvLyBXZSBkb24ndCBoYXZlIGEgU3BlY3VsYXRlZFR5cGUgZm9yIFByb3hpZXMgeWV0IHNvIHdl
IGNhbid0IGRvIGJldHRlciBhdCBwcm92aW5nIGZhbHNlLgotICAgICAgICAgICAgaWYgKCEoY2hp
bGQubV90eXBlICYgflNwZWNSZWdFeHBPYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgc2V0Q29u
c3RhbnQobm9kZSwganNCb29sZWFuKHRydWUpKTsKLSAgICAgICAgICAgICAgICBjb25zdGFudFdh
c1NldCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoIShjaGlsZC5tX3R5cGUgJiBTcGVjT2JqZWN0KSkgewotICAgICAgICAgICAg
ICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOwotICAgICAgICAgICAgICAg
IGNvbnN0YW50V2FzU2V0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCBmMTAxNGM4OWIwOWRkNjIzYjJkNjU4NTJkYzUxMmFjMTcw
N2YxN2E4Li4xYWExZDJjNzE1Y2RjZmRkYjZjMDM0NWNmZWE2NzY4MmY1NjMyOTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjI0
MiwxNSArMjI0Miw2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwo
Tm9kZSogY2FsbGVlLCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmluCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIGNhc2UgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWM6IHsKLSAgICAg
ICAgQVNTRVJUKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09IDIpOwotCi0gICAgICAgIGlu
c2VydENoZWNrcygpOwotICAgICAgICBOb2RlKiBpc1JlZ0V4cE9iamVjdCA9IGFkZFRvR3JhcGgo
SXNSZWdFeHBPYmplY3QsIE9wSW5mbyhwcmVkaWN0aW9uKSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZv
ckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KSkpOwotICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKHJlc3VsdE9wZXJhbmQpLCBpc1JlZ0V4cE9iamVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLQogICAgIGNhc2UgU3RyaW5nUHJvdG90eXBlUmVwbGFjZUludHJpbnNpYzogewog
ICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMykKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
aW5kZXggZjFmYWE1MzQ1ZmY5MjYwNzI5YTMyNmYwZjk5ZGI3OWZjNGVhNTQzNS4uYWQxMDVjNDM1
ZmE5M2NmNTQxMTVhZmViZmJhNjg5YWZjN2NhOGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTE2MCw3ICsxNjAsNiBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgIGNhc2UgSXNOdW1iZXI6CiAgICAgY2FzZSBJc1N0cmluZzoKICAgICBjYXNl
IElzT2JqZWN0OgotICAgIGNhc2UgSXNSZWdFeHBPYmplY3Q6CiAgICAgY2FzZSBMb2dpY2FsTm90
OgogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIERvdWJsZVJlcDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCBkMmVlZDFiYmUyNTRkMDhmMWU3YmQz
OGM1ZTViZWEyOGQ4ZWQ1YTI3Li42YTY0NjQ3MzQyZWM2MGRkMzY3MjM0MTc5ZDkxNjIwNzY4OTZm
Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xNjIsNyAr
MTYyLDYgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2Ug
SXNPYmplY3Q6CiAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAgICBjYXNlIElzRnVuY3Rpb246
Ci0gICAgY2FzZSBJc1JlZ0V4cE9iamVjdDoKICAgICBjYXNlIFR5cGVPZjoKICAgICBjYXNlIExv
Z2ljYWxOb3Q6CiAgICAgY2FzZSBUb1ByaW1pdGl2ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDJkMWNiMGY5MDMxODhiYjdkMzZmOTYwMjY2MjRm
ZGVkNmY2MzY4MWUuLjIwZGNkMGQ1MWM3MGYzZmEwYjY3ODZiMWRhYTZmMGY1NDAzMGYxNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTUxMCw3
ICsxNTEwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJc051bWJlcjoKICAgICAgICAgY2Fz
ZSBJc09iamVjdE9yTnVsbDoKICAgICAgICAgY2FzZSBJc0Z1bmN0aW9uOgotICAgICAgICBjYXNl
IElzUmVnRXhwT2JqZWN0OgogICAgICAgICBjYXNlIENyZWF0ZURpcmVjdEFyZ3VtZW50czoKICAg
ICAgICAgY2FzZSBDcmVhdGVDbG9uZWRBcmd1bWVudHM6CiAgICAgICAgIGNhc2UgSnVtcDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCAzOWM1MjczN2JkYWFiMDNi
MGMwMjYzNjRhODU5ZDQ3MDZjMTRiMDRjLi5iY2JmZTFiZjU0MWNmZTg4ZDY1MDAzNmE4MmFkOGE2
Yjk0ZDBmNmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0z
MDksNyArMzA5LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3Jv
KElzT2JqZWN0LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzT2JqZWN0T3JOdWxs
LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzRnVuY3Rpb24sIE5vZGVSZXN1bHRC
b29sZWFuKSBcCi0gICAgbWFjcm8oSXNSZWdFeHBPYmplY3QsIE5vZGVSZXN1bHRCb29sZWFuKSBc
CiAgICAgbWFjcm8oVHlwZU9mLCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2dpY2FsTm90
LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVzdWx0
SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDc1OGFl
ZDE3NWI4ZGFiMGE0ZTVjMzU5NzE3OGFkM2ViMmYyN2MxNTEuLjg0NGM3NDk3YTYzNDRjZjJhMTky
Nzg3MTdiM2JhNWIxNDVmMDkzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC00MzEsOCAr
NDMxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJc1N0cmluZzoKICAgICAgICAgY2FzZSBJ
c09iamVjdDoKICAgICAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKLSAgICAgICAgY2FzZSBJc0Z1
bmN0aW9uOgotICAgICAgICBjYXNlIElzUmVnRXhwT2JqZWN0OiB7CisgICAgICAgIGNhc2UgSXNG
dW5jdGlvbjogewogICAgICAgICAgICAgY2hhbmdlZCB8PSBzZXRQcmVkaWN0aW9uKFNwZWNCb29s
ZWFuKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDQ5YTFkMjM0ZDYxYzc2NWFhYWRhZDEw
ZTY3YzE0ZDY0OGNlMDQ2N2EuLjIyMDQ4NDlmNmFhYTRiMTkyMDhhMzA0OWJjNjkxNTlmM2I0YjUw
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBA
IC0yNjIsNyArMjYyLDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBz
dGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgSXNPYmplY3Q6CiAgICAg
Y2FzZSBJc09iamVjdE9yTnVsbDoKICAgICBjYXNlIElzRnVuY3Rpb246Ci0gICAgY2FzZSBJc1Jl
Z0V4cE9iamVjdDoKICAgICBjYXNlIFR5cGVPZjoKICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAg
Y2FzZSBDYWxsT2JqZWN0Q29uc3RydWN0b3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDdmN2QwZTdhYTkyZWYyMTQ2NmFlMDQzYTA3
ZTA4Nzk5NDU3ZWQxOTYuLjk1NGJlMDc3YzI5YzRlOTJmNGI1NTBiNTVmNTIwN2FkOWYwMjIxYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CkBAIC0zNDI1LDMwICszNDI1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzQXJy
YXlDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQogICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVz
dWx0R1BSLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzUmVnRXhw
T2JqZWN0KE5vZGUqIG5vZGUpCi17Ci0gICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwotICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKLQot
ICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7Ci0gICAgR1BS
UmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgIEpJVENvbXBpbGVyOjpKdW1wIGlz
Tm90Q2VsbCA9IG1faml0LmJyYW5jaElmTm90Q2VsbCh2YWx1ZVJlZ3MpOwotCi0gICAgbV9qaXQu
Y29tcGFyZTgoSklUQ29tcGlsZXI6OkVxdWFsLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwK
LSAgICAgICAgVHJ1c3RlZEltbTMyKFJlZ0V4cE9iamVjdFR5cGUpLAotICAgICAgICByZXN1bHRH
UFIpOwotICAgIGJsZXNzQm9vbGVhbihyZXN1bHRHUFIpOwotICAgIEpJVENvbXBpbGVyOjpKdW1w
IGRvbmUgPSBtX2ppdC5qdW1wKCk7Ci0KLSAgICBpc05vdENlbGwubGluaygmbV9qaXQpOwotICAg
IG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7Ci0KLSAgICBkb25lLmxpbmsoJm1faml0KTsKLSAgICBi
bGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotfQotCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQ2FsbE9iamVjdENvbnN0cnVjdG9yKE5vZGUqIG5vZGUpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDY3
ZDhjN2MwODAyMzZhMDM0YjA3NzIxNTNiM2ZhNjZkOWI4ZDliMjIuLjFhNWZkYjAzZGFkMTA2MWM4
ZTJjYjQwZTUyZmFhOWVlNzRjNGFkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTczNyw3ICs3MzcsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjb21waWxlSXNKU0FycmF5KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc0FycmF5Q29uc3Ry
dWN0b3IoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUlzQXJyYXlPYmplY3QoTm9kZSopOwotICAg
IHZvaWQgY29tcGlsZUlzUmVnRXhwT2JqZWN0KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGVtaXRD
YWxsKE5vZGUqKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGY4OTkyOGY1ZWZmMzkwYTEyZWRiY2YxZGVh
MmIzOGM5N2JiNTU2Y2IuLjZhNzBhNjhiNzRlMzY1NTdmZjE4ZmE2NWY0MzIxNjQ2OWY2MzlkYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtNDUyOSwxMiArNDUyOSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUlzRnVuY3Rpb24obm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLQotICAgIGNhc2UgSXNSZWdFeHBPYmplY3Q6IHsKLSAgICAgICAg
Y29tcGlsZUlzUmVnRXhwT2JqZWN0KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBjYXNlIFR5cGVPZjogewogICAgICAgICBjb21waWxlVHlwZU9mKG5vZGUpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCmluZGV4IDZmMDFmYTMwZWE4M2ZiYmY2OGFmNzZhYzgwN2RlNGYzZjYzMWVjZGYuLjJi
ZTI3ZGEwMWY0MTE5YzcyNTkzY2RmMzU5ZDIxYzY0NTA2MjcwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDU0MiwxMSAr
NDU0Miw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBJc1JlZ0V4cE9iamVjdDogewotICAgICAgICBj
b21waWxlSXNSZWdFeHBPYmplY3Qobm9kZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAg
IGNhc2UgVHlwZU9mOiB7CiAgICAgICAgIGNvbXBpbGVUeXBlT2Yobm9kZSk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmlu
ZGV4IDNlYzUwZDUwZTQ1OGVhOWI5MzYxODYzZjBmZjNkZTI3NmRkMjc0NjkuLjNhOGE3ZDMwNWZl
MjAyY2E2MDJlNTM4ZjIzNmMxODA2ZmQ2NDk5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTE4Niw3ICsxODYsNiBAQCBpbmxpbmUgQ2Fw
YWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElzT2JqZWN0Ogog
ICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgotICAgIGNhc2Ug
SXNSZWdFeHBPYmplY3Q6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBP
dmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMjhiNzkwMjRhMzY4OGI2
ZGMzZjA4MGM4NzQ5NjgyZmIwNDNlYzQ4Yy4uMzFhZmY2NmQyMTFjZmIyMTkxNjA5ZWNkODI0ODcy
MTUwNGIwZWVlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcApAQCAtODcwLDkgKzg3MCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgSXNGdW5j
dGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVJc0Z1bmN0aW9uKCk7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBJc1JlZ0V4cE9iamVjdDoKLSAgICAgICAgICAgIGNvbXBpbGVJc1Jl
Z0V4cE9iamVjdCgpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZU9mOgog
ICAgICAgICAgICAgY29tcGlsZVR5cGVPZigpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01OTA1
LDI2ICs1OTAyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmJvb2xlYW4sIG5vdENl
bGxSZXN1bHQsIGZ1bmN0aW9uUmVzdWx0LCBvYmplY3RSZXN1bHQsIHNsb3dSZXN1bHQpOwogICAg
ICAgICBzZXRCb29sZWFuKHJlc3VsdCk7CiAgICAgfQotCi0gICAgdm9pZCBjb21waWxlSXNSZWdF
eHBPYmplY3QoKQotICAgIHsKLSAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25v
ZGUtPmNoaWxkMSgpKTsKLQotICAgICAgICBMQmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQu
bmV3QmxvY2soKTsKLSAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3
QmxvY2soKTsKLQotICAgICAgICBWYWx1ZUZyb21CbG9jayBub3RDZWxsUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKG1fb3V0LmJvb2xlYW5GYWxzZSk7Ci0gICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAg
ICAgICAgIGlzQ2VsbCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSksIHVuc3Vy
ZShpc0NlbGxDYXNlKSwgdW5zdXJlKGNvbnRpbnVhdGlvbikpOwotCi0gICAgICAgIExCYXNpY0Js
b2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaXNDZWxsQ2FzZSwgY29udGludWF0aW9uKTsK
LSAgICAgICAgVmFsdWVGcm9tQmxvY2sgY2VsbFJlc3VsdCA9IG1fb3V0LmFuY2hvcihpc1JlZ0V4
cE9iamVjdCh2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUtPmNoaWxkMSgpKSkpOwotICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7Ci0KLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKG1fb3V0LmJv
b2xlYW4sIG5vdENlbGxSZXN1bHQsIGNlbGxSZXN1bHQpKTsKLSAgICB9Ci0KKyAgICAKICAgICB2
b2lkIGNvbXBpbGVUeXBlT2YoKQogICAgIHsKICAgICAgICAgRWRnZSBjaGlsZCA9IG1fbm9kZS0+
Y2hpbGQxKCk7CkBAIC05OTcyLDE2ICs5OTUwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAog
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgVHlw
ZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKSk7CiAgICAgfQotCi0gICAgTFZhbHVlIGlzUmVnRXhw
T2JqZWN0KExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCi0g
ICAgewotICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNw
ZWNDZWxsLCBTcGVjUmVnRXhwT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBwcm92ZW47Ci0g
ICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKLSAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4
dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCi0gICAgICAgICAgICBtX291
dC5jb25zdEludDMyKFJlZ0V4cE9iamVjdFR5cGUpKTsKLSAgICB9Ci0KKyAgICAKICAgICBMVmFs
dWUgaXNUeXBlKExWYWx1ZSBjZWxsLCBKU1R5cGUgdHlwZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBtX291dC5lcXVhbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IDFlYzc5NjM0NDdjNzYyYWY5YjhjODVhNWZjZWI3ZjA0NWFl
NTY5YmMuLjcyZmUxNjQ3NDk0YzExMjcxYTUyMDk3NDQyYzBlZTc1YzcwZTNlMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAt
MzA5LDYgKzMwOSw3IEBACiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0xfTk9UX0lNUExFTUVOVEVEX1lFVChtYWNybylcCiAgICAg
bWFjcm8ocmVwbGFjZSkgXAorICAgIG1hY3JvKHNwbGl0KQogCiAjZGVmaW5lIEpTQ19DT01NT05f
UFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKG1hY3JvKSBcCiAgICAg
bWFjcm8oaGFzSW5zdGFuY2UpIFwKQEAgLTMxNyw3ICszMTgsNiBAQAogICAgIG1hY3JvKG1hdGNo
KSBcCiAgICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc3BlY2llcykgXAotICAgIG1hY3Jv
KHNwbGl0KSBcCiAgICAgbWFjcm8odG9QcmltaXRpdmUpIFwKICAgICBtYWNybyh0b1N0cmluZ1Rh
ZykgXAogICAgIG1hY3JvKHVuc2NvcGFibGVzKQpAQCAtNDEzLDggKzQxMyw2IEBACiAgICAgbWFj
cm8oaXNBcnJheSkgXAogICAgIG1hY3JvKGlzSlNBcnJheSkgXAogICAgIG1hY3JvKGlzQXJyYXlD
b25zdHJ1Y3RvcikgXAotICAgIG1hY3JvKGlzQ29uc3RydWN0b3IpIFwKLSAgICBtYWNybyhpc1Jl
Z0V4cE9iamVjdCkgXAogICAgIG1hY3JvKGNvbmNhdE1lbWNweSkgXAogICAgIG1hY3JvKGFwcGVu
ZE1lbWNweSkgXAogICAgIG1hY3JvKHByZWRpY3RGaW5hbExlbmd0aEZyb21Bcmd1bXVudHMpIFwK
QEAgLTQyNiwxOCArNDI0LDcgQEAKICAgICBtYWNybyhzZXRJdGVyYXRvck5leHQpIFwKICAgICBt
YWNybyhNYXBJdGVyYXRvcikgXAogICAgIG1hY3JvKG1hcEl0ZXJhdG9yTmV4dCkgXAotICAgIG1h
Y3JvKHJlZ0V4cFByb3RvRmxhZ3NHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b0dsb2Jh
bEdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlcikgXAotICAg
IG1hY3JvKHJlZ0V4cFByb3RvTXVsdGlsaW5lR2V0dGVyKSBcCi0gICAgbWFjcm8ocmVnRXhwUHJv
dG9Tb3VyY2VHZXR0ZXIpIFwKLSAgICBtYWNybyhyZWdFeHBQcm90b1N0aWNreUdldHRlcikgXAot
ICAgIG1hY3JvKHJlZ0V4cFByb3RvVW5pY29kZUdldHRlcikgXAotICAgIG1hY3JvKHJlZ0V4cFNl
YXJjaEZhc3QpIFwKLSAgICBtYWNybyhyZWdFeHBTcGxpdEZhc3QpIFwKLSAgICBtYWNybyhzdHJp
bmdJbmNsdWRlc0ludGVybmFsKSBcCi0gICAgbWFjcm8oc3RyaW5nU3BsaXRGYXN0KSBcCi0gICAg
bWFjcm8oc3RyaW5nU3Vic3RySW50ZXJuYWwpIFwKKwogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VDTUFTY3JpcHRTcGVj
SW50ZXJuYWxGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRUNN
QVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDBhYWI2YzdmMTkwMzk3OWFmZDRiMjUyMDg0YTNjOWYwNzIyODZmNDguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkVDTUFTY3JpcHRTcGVj
SW50ZXJuYWxGdW5jdGlvbnMuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkNvbnN0cnVjdERhdGEuaCIKLSNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgotI2luY2x1
ZGUgIlJlZ0V4cE9iamVjdC5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBlc1NwZWNJc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAg
ICBib29sIGlzQ29uc3RydWN0b3IgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc0NvbnN0
cnVjdG9yKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNDb25zdHJ1
Y3RvcikpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVzU3BlY0lzUmVnRXhw
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCk7Ci0gICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHZhbHVlLmdldE9iamVjdCgpLT50eXBlKCkg
PT0gUmVnRXhwT2JqZWN0VHlwZSkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKGZhbHNlKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1
bmN0aW9ucy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTFlMDcwNzkwMTZmZjA1
MGE1ZjRhNjk3YmJhYjA4MmNlNDNmOTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VDTUFTY3JpcHRT
cGVjSW50ZXJuYWxGdW5jdGlvbnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEVDTUFT
Y3JpcHRTcGVjSW50ZXJuYWxGdW5jdGlvbnNfaAotI2RlZmluZSBFQ01BU2NyaXB0U3BlY0ludGVy
bmFsRnVuY3Rpb25zX2gKLQotI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKLQotbmFtZXNwYWNlIEpT
QyB7Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjSXNDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjSXNSZWdFeHBP
YmplY3QoRXhlY1N0YXRlKik7Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRUNN
QVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludHJpbnNpYy5oCmluZGV4IDkxOTRkZjk2NTA4YWM2NGNkZmZjOTRmMGY4NWVlNTYyMmUz
NzE3YjkuLmI4ZTY2MjNiNmU0MDhlOWQ5M2ZmZWQzODRhOWMzNmM5ZjJjMDMwMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC02MCw3ICs2MCw2IEBAIGVu
dW0gSlNfRVhQT1JUX1BSSVZBVEUgSW50cmluc2ljIHsKICAgICBJc0FycmF5SW50cmluc2ljLAog
ICAgIElzQXJyYXlDb25zdHJ1Y3RvckludHJpbnNpYywKICAgICBJc0pTQXJyYXlJbnRyaW5zaWMs
Ci0gICAgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMsCiAKICAgICAvLyBHZXR0ZXIgaW50cmluc2lj
cy4KICAgICBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2ljLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDNlM2Y3YzdiNGMzZGNiMjNk
OWM3OWRhMjk1N2EwOTM5YzYxOGQxMjMuLmRmYTVkODVhNWQ5ODAwNDQxYjMyZTUzMmI1MjcwOGIy
NDBiNzhlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2lu
Y2x1ZGUgIkRlYnVnZ2VyU2NvcGUuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKLSNp
bmNsdWRlICJFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiRXJy
b3IuaCIKICNpbmNsdWRlICJFcnJvckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiRXJyb3JQcm90
b3R5cGUuaCIKQEAgLTI1NywxNSArMjU2LDYgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6c2V0R2xv
YmFsVGhpcyhWTSYgdm0sIEpTT2JqZWN0KiBnbG9iYWxUaGlzKQogICAgIG1fZ2xvYmFsVGhpcy5z
ZXQodm0sIHRoaXMsIGdsb2JhbFRoaXMpOwogfQogCi0KLXN0YXRpYyBKU09iamVjdCogZ2V0R2V0
dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCkKLXsKLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWUoYmFzZSk7Ci0gICAg
UHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6Vk1JbnF1aXJ5KTsKLSAgICBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlk
ZW50LCBzbG90KTsKLSAgICByZXR1cm4gc2xvdC5nZXRQdXJlUmVzdWx0KCkudG9PYmplY3QoZXhl
Yyk7Ci19Ci0KIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogewogICAgIEFTU0VS
VCh2bS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKQEAgLTU1NiwxNCArNTQ2LDYg
QEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05h
bWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0Fw
cGVuZE1lbWNweSA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGFy
cmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweSk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNDb25jYXRTbG93UGF0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgYXJyYXlQcm90b3R5cGVDb25jYXRTbG93UGF0aENvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsK
IAotICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b0ZsYWdzR2V0dGVyT2JqZWN0ID0gZ2V0R2V0dGVy
QnlJZChleGVjLCBtX3JlZ0V4cFByb3RvdHlwZS5nZXQoKSwgdm0ucHJvcGVydHlOYW1lcy0+Zmxh
Z3MpOwotICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b0dsb2JhbEdldHRlck9iamVjdCA9IGdldEdl
dHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCksIHZtLnByb3BlcnR5TmFtZXMt
Pmdsb2JhbCk7Ci0gICAgSlNPYmplY3QqIHJlZ0V4cFByb3RvSWdub3JlQ2FzZUdldHRlck9iamVj
dCA9IGdldEdldHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0KCksIHZtLnByb3Bl
cnR5TmFtZXMtPmlnbm9yZUNhc2UpOwotICAgIEpTT2JqZWN0KiByZWdFeHBQcm90b011bHRpbGlu
ZUdldHRlck9iamVjdCA9IGdldEdldHRlckJ5SWQoZXhlYywgbV9yZWdFeHBQcm90b3R5cGUuZ2V0
KCksIHZtLnByb3BlcnR5TmFtZXMtPm11bHRpbGluZSk7Ci0gICAgSlNPYmplY3QqIHJlZ0V4cFBy
b3RvU291cmNlR2V0dGVyT2JqZWN0ID0gZ2V0R2V0dGVyQnlJZChleGVjLCBtX3JlZ0V4cFByb3Rv
dHlwZS5nZXQoKSwgdm0ucHJvcGVydHlOYW1lcy0+c291cmNlKTsKLSAgICBKU09iamVjdCogcmVn
RXhwUHJvdG9TdGlja3lHZXR0ZXJPYmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1fcmVnRXhw
UHJvdG90eXBlLmdldCgpLCB2bS5wcm9wZXJ0eU5hbWVzLT5zdGlja3kpOwotICAgIEpTT2JqZWN0
KiByZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJPYmplY3QgPSBnZXRHZXR0ZXJCeUlkKGV4ZWMsIG1f
cmVnRXhwUHJvdG90eXBlLmdldCgpLCB2bS5wcm9wZXJ0eU5hbWVzLT51bmljb2RlKTsKLSAgICAK
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjppbmZpbml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAt
NjIyLDYgKzYwNCw3IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVhY3Rp
b25Kb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IHByb21pc2VPcGVyYXRpb25zUHJvbWlzZVJlYWN0aW9uSm9iQ29kZUdlbmVyYXRvcih2bSksIHRo
aXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUmVzb2x2
ZVRoZW5hYmxlSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc1Byb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlR2Vu
ZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
Lkluc3BlY3Rvckluc3RydW1lbnRhdGlvblByaXZhdGVOYW1lKCksIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkp
KSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYWR2YW5jZVN0cmluZ0lu
ZGV4VW5pY29kZVByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgcmVnRXhwUHJvdG90eXBlQWR2YW5jZVN0cmluZ0luZGV4VW5pY29kZUNvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TWFwUHJpdmF0ZU5hbWUsIG1h
cENvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZW5l
cmF0b3JSZXN1bWVQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rp
b24odm0sIGdlbmVyYXRvclByb3RvdHlwZUdlbmVyYXRvclJlc3VtZUNvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudGhpc1RpbWVW
YWx1ZVByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVGhpc1RpbWVWYWx1ZSwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAtNjMxLDMwICs2MTQsNyBAQCBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMj
IENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuTnVtYmVyRm9ybWF0UHJpdmF0ZU5hbWUoKSwgaW50bC0+Z2V0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5OdW1iZXJGb3JtYXQpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAjZW5kaWYgLy8gRU5BQkxFKElOVEwpCiAKLSAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQ29uc3RydWN0b3JQcml2YXRlTmFtZSwg
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBTdHJpbmcoKSwgZXNTcGVjSXNDb25zdHJ1
Y3RvciwgTm9JbnRyaW5zaWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0g
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc1JlZ0V4cE9iamVj
dFByaXZhdGVOYW1lLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDEsIFN0cmluZygpLCBl
c1NwZWNJc1JlZ0V4cE9iamVjdCwgSXNSZWdFeHBPYmplY3RJbnRyaW5zaWMpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zcGVjaWVzQ29uc3RydWN0b3JQcml2YXRlTmFt
ZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFNw
ZWNpZXNDb25zdHJ1Y3RvckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0ZsYWdzR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3Rv
RmxhZ3NHZXR0ZXJPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvR2xv
YmFsR2V0dGVyUHJpdmF0ZU5hbWUsIHJlZ0V4cFByb3RvR2xvYmFsR2V0dGVyT2JqZWN0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBQcm90b0lnbm9yZUNhc2VHZXR0ZXJQcml2YXRlTmFt
ZSwgcmVnRXhwUHJvdG9JZ25vcmVDYXNlR2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5yZWdFeHBQcm90b011bHRpbGluZUdldHRlclByaXZhdGVOYW1lLCByZWdFeHBQcm90b011
bHRpbGluZUdldHRlck9iamVjdCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAot
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwUHJvdG9T
b3VyY2VHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9Tb3VyY2VHZXR0ZXJPYmplY3QsIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPnJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyUHJpdmF0ZU5hbWUs
IHJlZ0V4cFByb3RvU3RpY2t5R2V0dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5y
ZWdFeHBQcm90b1VuaWNvZGVHZXR0ZXJQcml2YXRlTmFtZSwgcmVnRXhwUHJvdG9Vbmljb2RlR2V0
dGVyT2JqZWN0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0KLSAgICAgICAg
Ly8gUmVnRXhwLnByb3RvdHlwZSBoZWxwZXJzLgogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+cmVnRXhwQ3JlYXRlUHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5nKCksIGVzU3BlY1JlZ0V4cENyZWF0ZSwgTm9JbnRyaW5z
aWMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNPYnNlcnZhYmxl
U2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxpdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0
ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90eXBlSGFzT2JzZXJ2YWJsZVNpZGVFZmZl
Y3RzRm9yUmVnRXhwU3BsaXRDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFkdmFuY2VTdHJpbmdJbmRleFByaXZhdGVOYW1lKCks
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcmVnRXhwUHJvdG90eXBlQWR2
YW5jZVN0cmluZ0luZGV4Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWdFeHBFeGVjUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlv
bjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCByZWdFeHBQcm90b3R5cGVSZWdFeHBFeGVjQ29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
Ci0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5yZWdFeHBTZWFy
Y2hGYXN0UHJpdmF0ZU5hbWUsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMiwgU3RyaW5n
KCksIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5y
ZWdFeHBTcGxpdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAy
LCBTdHJpbmcoKSwgcmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAotCi0gICAgICAgIC8vIFN0cmluZy5wcm90b3R5cGUgaGVscGVycy4K
LSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnN0cmluZ0luY2x1
ZGVzSW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAxLCBT
dHJpbmcoKSwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpLCBEb250RW51bSB8IERvbnRE
ZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0
eU5hbWVzLT5zdHJpbmdTcGxpdEZhc3RQcml2YXRlTmFtZSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAyLCBTdHJpbmcoKSwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+c3RyaW5nU3Vic3RySW50ZXJuYWxQcml2YXRlTmFtZSwgSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAyLCBTdHJpbmcoKSwgYnVpbHRpblN0cmluZ1N1YnN0ckludGVy
bmFsKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgIH07CiAgICAgYWRk
U3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RIKHN0YXRpY0dsb2Jh
bHMpKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5RGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwCmluZGV4IDJjYWY1OGM1MTZmNTRjZDU0ODYzYjdiNzE4NGJiZjk4
NWI0M2YzNDYuLmMyMTI4YzQ1YTM3OTZjYjNkZWVhOTQwMmIxMTdmNmE3NDY1MGFjMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9y
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTE0LDYgKzExNCw3IEBAIEpTT2JqZWN0KiBQcm9wZXJ0eURlc2NyaXB0b3I6OnNldHRl
ck9iamVjdCgpIGNvbnN0CiB2b2lkIFByb3BlcnR5RGVzY3JpcHRvcjo6c2V0RGVzY3JpcHRvcihK
U1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIEFTU0VSVCh2YWx1ZSk7
CisgICAgQVNTRVJUKHZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgPT0gISEoYXR0cmlidXRlcyAmIEFj
Y2Vzc29yKSk7CiAKICAgICBtX2F0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOwogICAgIGlmICh2YWx1
ZS5pc0dldHRlclNldHRlcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5oCmluZGV4IGJiMDJhNTdlYjUzZTY0ZTNjNGRlZTNjYTExOTU5NTJiZGFjNmMx
NWMuLmViOWQ0NDg1ZjRmNmU2Yjg2NDQ2ODc2NzlmOTQ1MTYxNTVlYjliYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNy0yMDA4LCAyMDEyLCAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcs
IDIwMDgsIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpAQCAtOTMsOCArOTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX2xhc3RJbmRleElzV3JpdGFibGUpOwogICAg
IH0KIAotICAgIHN0YXRpYyB1bnNpZ25lZCBhZHZhbmNlU3RyaW5nVW5pY29kZShTdHJpbmcsIHVu
c2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgY3VycmVudEluZGV4KTsKLQogcHJvdGVjdGVkOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIFJlZ0V4cE9iamVjdChWTSYsIFN0cnVjdHVyZSosIFJlZ0V4cCop
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKQEAgLTEw
Niw2ICsxMDQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZv
aWQgZ2V0UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9p
ZCBnZXRHZW5lcmljUHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0
aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CisgICAg
dW5zaWduZWQgYWR2YW5jZVN0cmluZ1VuaWNvZGUoU3RyaW5nLCB1bnNpZ25lZCwgdW5zaWduZWQp
OwogCiBwcml2YXRlOgogICAgIE1hdGNoUmVzdWx0IG1hdGNoSW5saW5lKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IGQ3OTZmYmE4OTZlOTg0YjU4MDg4MDJk
YjE4ZWJiNjE3Zjc4NDU0NzcuLmIwNjkxZGU4OGMzYWFkNjQzODYyMDA1MmFjOTNiMjE0NTcxOTU3
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDctMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA3LCAyMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJS
ZWdFeHBDYWNoZS5oIgogI2luY2x1ZGUgIlJlZ0V4cENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
UmVnRXhwTWF0Y2hlc0FycmF5LmgiCi0jaW5jbHVkZSAiU3RyaW5nT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQ5LDYg
KzQ4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jRXhlYyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZ0V4cFByb3RvRnVuY01hdGNoUHJpdmF0ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKik7
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0
cmluZyhFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvRnVuY1NlYXJjaChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyR2xvYmFsKEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNl
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9HZXR0ZXJNdWx0aWxpbmUoRXhlY1N0YXRlKik7CkBAIC04MCw4ICs4MCw3IEBAIHZvaWQg
UmVnRXhwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgSlNDX05BVElWRV9HRVRURVIodm0ucHJvcGVydHlOYW1lcy0+Zmxh
Z3MsIHJlZ0V4cFByb3RvR2V0dGVyRmxhZ3MsIERvbnRFbnVtIHwgQWNjZXNzb3IpOwogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLm1hdGNoUHJpdmF0ZU5hbWUoKSwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hQcml2
YXRlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSwgMSk7CiAgICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm1hdGNoU3lt
Ym9sLCByZWdFeHBQcm90b3R5cGVNYXRjaENvZGVHZW5lcmF0b3IsIERvbnRFbnVtKTsKLSAgICBK
U0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
c2VhcmNoU3ltYm9sLCByZWdFeHBQcm90b3R5cGVTZWFyY2hDb2RlR2VuZXJhdG9yLCBEb250RW51
bSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPnNwbGl0U3ltYm9sLCByZWdFeHBQcm90b3R5cGVTcGxpdENvZGVHZW5lcmF0b3Is
IERvbnRFbnVtKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5zZWFyY2hTeW1ib2wsIHJlZ0V4cFByb3RvRnVuY1NlYXJjaCwgRG9u
dEVudW0sIDEpOwogCiAgICAgSlNGdW5jdGlvbiogZXhlY0Z1bmN0aW9uID0gSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDEsIHZtLnByb3BlcnR5TmFtZXMtPmV4ZWMuc3RyaW5n
KCksIHJlZ0V4cFByb3RvRnVuY0V4ZWMsIFJlZ0V4cEV4ZWNJbnRyaW5zaWMpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5leGVjUHJpdmF0ZU5h
bWUsIGV4ZWNGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwpAQCAt
MTE2LDcgKzExNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jRXhlYyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6
OmluZm8oKSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsICJCdWlsdGlu
IFJlZ0V4cCBleGVjIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiKTsKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgSlNTdHJpbmcqIHN0cmlu
ZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIGlmICghc3Ry
aW5nKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAt
NDE4LDE4MyArNDE3LDIxIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9HZXR0ZXJTb3VyY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBwYXR0ZXJu
LmNoYXJhY3RlcnMxNigpLCBwYXR0ZXJuLmxlbmd0aCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdChFeGVjU3RhdGUqIGV4ZWMp
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NlYXJjaChFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CiAgICAgUmVnRXhwKiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5y
ZWdFeHAoKTsKIAotICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKS50b1N0cmluZyhleGVjKTsKKyAgICBKU1N0cmluZyogc3RyaW5nID0gZXhlYy0+YXJndW1l
bnQoMCkudG9TdHJpbmcoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSBzdHJpbmctPnZhbHVlKGV4ZWMp
OwotICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBS
ZWdFeHBDb25zdHJ1Y3RvciogcmVnRXhwQ29uc3RydWN0b3IgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPnJlZ0V4cENvbnN0cnVjdG9yKCk7Ci0gICAgTWF0Y2hSZXN1bHQgcmVzdWx0ID0g
cmVnRXhwQ29uc3RydWN0b3ItPnBlcmZvcm1NYXRjaCh2bSwgcmVnRXhwLCBzdHJpbmcsIHMsIDAp
OworICAgIE1hdGNoUmVzdWx0IHJlc3VsdCA9IHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0
Y2goZXhlYy0+dm0oKSwgcmVnRXhwLCBzdHJpbmcsIHMsIDApOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0ID8ganNOdW1iZXIocmVzdWx0LnN0YXJ0KSA6IGpzTnVtYmVyKC0xKSk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgYWR2YW5jZVN0cmluZ0luZGV4KFN0cmluZyBz
dHIsIHVuc2lnbmVkIHN0clNpemUsIHVuc2lnbmVkIGluZGV4LCBib29sIGlzVW5pY29kZSkKLXsK
LSAgICBpZiAoIWlzVW5pY29kZSkKLSAgICAgICAgcmV0dXJuICsraW5kZXg7Ci0gICAgcmV0dXJu
IFJlZ0V4cE9iamVjdDo6YWR2YW5jZVN0cmluZ1VuaWNvZGUoc3RyLCBzdHJTaXplLCBpbmRleCk7
Ci19Ci0KLS8vIEVTIDIxLjIuNS4xMSBSZWdFeHAucHJvdG90eXBlW0BAc3BsaXRdKHN0cmluZywg
bGltaXQpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NwbGl0
RmFzdChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLQotICAg
IC8vIDEuIFtoYW5kbGVkIGJ5IEpTIGJ1aWx0aW5dIExldCByeCBiZSB0aGUgdGhpcyB2YWx1ZS4K
LSAgICAvLyAyLiBbaGFuZGxlZCBieSBKUyBidWlsdGluXSBJZiBUeXBlKHJ4KSBpcyBub3QgT2Jq
ZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBSZWdFeHAqIHJlZ2V4cCA9IGFzUmVnRXhwT2JqZWN0
KHRoaXNWYWx1ZSktPnJlZ0V4cCgpOwotCi0gICAgLy8gMy4gW2hhbmRsZWQgYnkgSlMgYnVpbHRp
bl0gTGV0IFMgYmUgPyBUb1N0cmluZyhzdHJpbmcpLgotICAgIFN0cmluZyBpbnB1dCA9IGV4ZWMt
PmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICBpZiAodm0uZXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0gICAgQVNTRVJUKCFpbnB1dC5pc051bGwoKSk7Ci0KLSAgICAvLyA0LiBbaGFuZGxlZCBieSBK
UyBidWlsdGluXSBMZXQgQyBiZSA/IFNwZWNpZXNDb25zdHJ1Y3RvcihyeCwgJVJlZ0V4cCUpLgot
ICAgIC8vIDUuIFtoYW5kbGVkIGJ5IEpTIGJ1aWx0aW5dIExldCBmbGFncyBiZSA/IFRvU3RyaW5n
KD8gR2V0KHJ4LCAiZmxhZ3MiKSkuCi0gICAgLy8gNi4gW2hhbmRsZWQgYnkgSlMgYnVpbHRpbl0g
SWYgZmxhZ3MgY29udGFpbnMgInUiLCBsZXQgdW5pY29kZU1hdGNoaW5nIGJlIHRydWUuCi0gICAg
Ly8gNy4gW2hhbmRsZWQgYnkgSlMgYnVpbHRpbl0gRWxzZSwgbGV0IHVuaWNvZGVNYXRjaGluZyBi
ZSBmYWxzZS4KLSAgICAvLyA4LiBbaGFuZGxlZCBieSBKUyBidWlsdGluXSBJZiBmbGFncyBjb250
YWlucyAieSIsIGxldCBuZXdGbGFncyBiZSBmbGFncy4KLSAgICAvLyA5LiBbaGFuZGxlZCBieSBK
UyBidWlsdGluXSBFbHNlLCBsZXQgbmV3RmxhZ3MgYmUgdGhlIHN0cmluZyB0aGF0IGlzIHRoZSBj
b25jYXRlbmF0aW9uIG9mIGZsYWdzIGFuZCAieSIuCi0gICAgLy8gMTAuIFtoYW5kbGVkIGJ5IEpT
IGJ1aWx0aW5dIExldCBzcGxpdHRlciBiZSA/IENvbnN0cnVjdChDLCDCqyByeCwgbmV3RmxhZ3Mg
wrspLgotCi0gICAgLy8gMTEuIExldCBBIGJlIEFycmF5Q3JlYXRlKDApLgotICAgIC8vIDEyLiBM
ZXQgbGVuZ3RoQSBiZSAwLgotICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJy
YXkoZXhlYywgMCk7Ci0gICAgdW5zaWduZWQgcmVzdWx0TGVuZ3RoID0gMDsKLQotICAgIC8vIDEz
LiBJZiBsaW1pdCBpcyB1bmRlZmluZWQsIGxldCBsaW0gYmUgMl4zMi0xOyBlbHNlIGxldCBsaW0g
YmUgPyBUb1VpbnQzMihsaW1pdCkuCi0gICAgSlNWYWx1ZSBsaW1pdFZhbHVlID0gZXhlYy0+YXJn
dW1lbnQoMSk7Ci0gICAgdW5zaWduZWQgbGltaXQgPSBsaW1pdFZhbHVlLmlzVW5kZWZpbmVkKCkg
PyAweEZGRkZGRkZGdSA6IGxpbWl0VmFsdWUudG9VSW50MzIoZXhlYyk7Ci0KLSAgICAvLyAxNC4g
TGV0IHNpemUgYmUgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBTLgotICAgIHVuc2lnbmVkIGlu
cHV0U2l6ZSA9IGlucHV0Lmxlbmd0aCgpOwotCi0gICAgLy8gMTUuIExldCBwID0gMC4KLSAgICB1
bnNpZ25lZCBwb3NpdGlvbiA9IDA7Ci0KLSAgICAvLyAxNi4gSWYgbGltID09IDAsIHJldHVybiBB
LgotICAgIGlmICghbGltaXQpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKLQotICAgIC8vIDE3LiBJZiBzaXplID09IDAsIHRoZW4KLSAgICBpZiAoaW5wdXQuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIC8vIGEuIExldCB6IGJlID8gUmVnRXhwRXhlYyhzcGxpdHRlciwgUyku
Ci0gICAgICAgIC8vIGIuIElmIHogaXMgbm90IG51bGwsIHJldHVybiBBLgotICAgICAgICAvLyBj
LiBQZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KEEsICIwIiwgUykuCi0gICAgICAgIC8vIGQu
IFJldHVybiBBLgotICAgICAgICBpZiAoIXJlZ2V4cC0+bWF0Y2godm0sIGlucHV0LCAwKSkKLSAg
ICAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgMCwganNTdHJpbmdXaXRoUmV1
c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgLy8gMTguIExldCBxID0gcC4KLSAgICB1bnNpZ25l
ZCBtYXRjaFBvc2l0aW9uID0gcG9zaXRpb247Ci0gICAgLy8gMTkuIFJlcGVhdCwgd2hpbGUgcSA8
IHNpemUKLSAgICBib29sIHJlZ0V4cElzU3RpY2t5ID0gcmVnZXhwLT5zdGlja3koKTsKLSAgICBi
b29sIHJlZ0V4cElzVW5pY29kZSA9IHJlZ2V4cC0+dW5pY29kZSgpOwotICAgIHdoaWxlIChtYXRj
aFBvc2l0aW9uIDwgaW5wdXRTaXplKSB7Ci0gICAgICAgIFZlY3RvcjxpbnQsIDMyPiBvdmVjdG9y
OwotCi0gICAgICAgIC8vIGEuIFBlcmZvcm0gPyBTZXQoc3BsaXR0ZXIsICJsYXN0SW5kZXgiLCBx
LCB0cnVlKS4KLSAgICAgICAgLy8gYi4gTGV0IHogYmUgPyBSZWdFeHBFeGVjKHNwbGl0dGVyLCBT
KS4KLSAgICAgICAgaW50IG1wb3MgPSByZWdleHAtPm1hdGNoKHZtLCBpbnB1dCwgbWF0Y2hQb3Np
dGlvbiwgb3ZlY3Rvcik7Ci0KLSAgICAgICAgLy8gYy4gSWYgeiBpcyBudWxsLCBsZXQgcSBiZSBB
ZHZhbmNlU3RyaW5nSW5kZXgoUywgcSwgdW5pY29kZU1hdGNoaW5nKS4KLSAgICAgICAgaWYgKG1w
b3MgPCAwKSB7Ci0gICAgICAgICAgICBpZiAoIXJlZ0V4cElzU3RpY2t5KQotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgbWF0Y2hQb3NpdGlvbiA9IGFkdmFuY2VTdHJpbmdJbmRl
eChpbnB1dCwgaW5wdXRTaXplLCBtYXRjaFBvc2l0aW9uLCByZWdFeHBJc1VuaWNvZGUpOwotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihtcG9zKSA+PSBpbnB1dFNpemUpIHsKLSAgICAgICAgICAgIC8vIFRoZSBzcGVjIHJl
ZG9lcyB0aGUgUmVnRXhwRXhlYyBzdGFydGluZyBhdCB0aGUgbmV4dCBjaGFyYWN0ZXIgb2YgdGhl
IGlucHV0LgotICAgICAgICAgICAgLy8gQnV0IGluIG91ciBjYXNlLCBtcG9zIDwgMCBtZWFucyB0
aGF0IHRoZSBuYXRpdmUgcmVnZXhwIGFscmVhZHkgc2VhcmNoZWQgYWxsIHBlcm11dGF0aW9ucwot
ICAgICAgICAgICAgLy8gYW5kIGtub3cgdGhhdCB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYSBt
YXRjaCBmb3IgdGhlIHNlcGFyYXRvciBldmVuIGlmIHdlIHJlZG8gdGhlCi0gICAgICAgICAgICAv
LyBSZWdFeHBFeGVjIHN0YXJ0aW5nIGF0IHRoZSBuZXh0IGNoYXJhY3RlciBvZiB0aGUgaW5wdXQu
IFNvLCBqdXN0IGJhaWwuCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAg
IC8vIGQuIEVsc2UsIHogaXMgbm90IG51bGwKLSAgICAgICAgLy8gICAgaS4gTGV0IGUgYmUgPyBU
b0xlbmd0aCg/IEdldChzcGxpdHRlciwgImxhc3RJbmRleCIpKS4KLSAgICAgICAgLy8gICBpaS4g
TGV0IGUgYmUgbWluKGUsIHNpemUpLgotICAgICAgICBtYXRjaFBvc2l0aW9uID0gbXBvczsKLSAg
ICAgICAgdW5zaWduZWQgbWF0Y2hFbmQgPSBvdmVjdG9yWzFdOwotCi0gICAgICAgIC8vICBpaWku
IElmIGUgPSBwLCBsZXQgcSBiZSBBZHZhbmNlU3RyaW5nSW5kZXgoUywgcSwgdW5pY29kZU1hdGNo
aW5nKS4KLSAgICAgICAgaWYgKG1hdGNoRW5kID09IHBvc2l0aW9uKSB7Ci0gICAgICAgICAgICBt
YXRjaFBvc2l0aW9uID0gYWR2YW5jZVN0cmluZ0luZGV4KGlucHV0LCBpbnB1dFNpemUsIG1hdGNo
UG9zaXRpb24sIHJlZ0V4cElzVW5pY29kZSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotICAgICAgICAvLyBpZiBtYXRjaEVuZCA9PSAwIHRoZW4gcG9zaXRpb24gc2hvdWxkIGFs
c28gYmUgemVybyBhbmQgdGh1cyBtYXRjaEVuZCBzaG91bGQgZXF1YWwgcG9zaXRpb24uCi0gICAg
ICAgIEFTU0VSVChtYXRjaEVuZCk7Ci0KLSAgICAgICAgLy8gICBpdi4gRWxzZSBlICE9IHAsCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bWJlck9mQ2FwdHVyZXMgPSByZWdleHAt
Pm51bVN1YnBhdHRlcm5zKCk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBuZXdSZXN1bHRMZW5ndGgg
PSByZXN1bHRMZW5ndGggKyBudW1iZXJPZkNhcHR1cmVzICsgMTsKLSAgICAgICAgICAgIGlmIChu
ZXdSZXN1bHRMZW5ndGggPCBudW1iZXJPZkNhcHR1cmVzIHx8IG5ld1Jlc3VsdExlbmd0aCA+PSBN
QVhfU1RPUkFHRV9WRUNUT1JfSU5ERVgpIHsKLSAgICAgICAgICAgICAgICAvLyBMZXQncyBjb25z
aWRlciB3aGF0J3MgYmVzdCBmb3IgdXNlcnMgaGVyZS4gV2UncmUgYWJvdXQgdG8gaW5jcmVhc2Ug
dGhlIGxlbmd0aCBvZgotICAgICAgICAgICAgICAgIC8vIHRoZSBzcGxpdCBhcnJheSBiZXlvbmQg
dGhlIG1heGltdW0gbGVuZ3RoIHRoYXQgd2UgY2FuIHN1cHBvcnQgZWZmaWNpZW50bHkuIFRoaXMK
LSAgICAgICAgICAgICAgICAvLyB3aWxsIGNhdXNlIHVzIHRvIHVzZSBhIEhhc2hNYXAgZm9yIHRo
ZSBuZXcgZW50cmllcyBhZnRlciB0aGlzIHBvaW50LiBUaGF0J3MgZ29pbmcKLSAgICAgICAgICAg
ICAgICAvLyB0byByZXN1bHQgaW4gYSB2ZXJ5IGxvbmcgcnVubmluZyB0aW1lIG9mIHRoaXMgZnVu
Y3Rpb24gYW5kIHZlcnkgbGFyZ2UgbWVtb3J5Ci0gICAgICAgICAgICAgICAgLy8gdXNhZ2UuIElu
IG15IGV4cGVyaW1lbnRzLCBKU0Mgd2lsbCBzaXQgc3Bpbm5pbmcgZm9yIG1pbnV0ZXMgYWZ0ZXIg
Z2V0dGluZyBoZXJlIGFuZAotICAgICAgICAgICAgICAgIC8vIGl0IHdhcyB1c2luZyA+NEdCIG9m
IG1lbW9yeSBhbmQgZXZlbnR1YWxseSBncmV3IHRvIDhHQi4gSXQga2VwdCBydW5uaW5nIHdpdGhv
dXQKLSAgICAgICAgICAgICAgICAvLyBmaW5pc2hpbmcgdW50aWwgSSBraWxsZWQgaXQuIFRoYXQn
cyBwcm9iYWJseSBub3Qgd2hhdCB0aGUgdXNlciB3YW50ZWQuIFRoZSB1c2VyLAotICAgICAgICAg
ICAgICAgIC8vIG9yIHRoZSBwcm9ncmFtIHRoYXQgdGhlIHVzZXIgaXMgcnVubmluZywgcHJvYmFi
bHkgbWFkZSBhIG1pc3Rha2UgYnkgY2FsbGluZyB0aGlzCi0gICAgICAgICAgICAgICAgLy8gbWV0
aG9kIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCByZXN1bHRlZCBpbiBzdWNoIGFuIG9ibm94aW91cyBh
cnJheS4gVGhlcmVmb3JlLCB0bwotICAgICAgICAgICAgICAgIC8vIHByb3RlY3Qgb3Vyc2VsdmVz
LCB3ZSBiYWlsIGF0IHRoaXMgcG9pbnQuCi0gICAgICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9y
eUVycm9yKGV4ZWMpOwotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIDEuIExldCBUIGJl
IGEgU3RyaW5nIHZhbHVlIGVxdWFsIHRvIHRoZSBzdWJzdHJpbmcgb2YgUyBjb25zaXN0aW5nIG9m
IHRoZSBlbGVtZW50cyBhdCBpbmRpY2VzIHAgKGluY2x1c2l2ZSkgdGhyb3VnaCBxIChleGNsdXNp
dmUpLgotICAgICAgICAgICAgLy8gMi4gUGVyZm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShBLCAh
IFRvU3RyaW5nKGxlbmd0aEEpLCBUKS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5k
ZXgoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCB0aGlzVmFsdWUsIGlucHV0
LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7Ci0KLSAgICAgICAgICAgIC8v
IDMuIExldCBsZW5ndGhBIGJlIGxlbmd0aEEgKyAxLgotICAgICAgICAgICAgLy8gNC4gSWYgbGVu
Z3RoQSA9IGxpbSwgcmV0dXJuIEEuCi0gICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0g
bGltaXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwot
Ci0gICAgICAgICAgICAvLyA1LiBMZXQgcCBiZSBlLgotICAgICAgICAgICAgcG9zaXRpb24gPSBt
YXRjaEVuZDsKLQotICAgICAgICAgICAgLy8gNi4gTGV0IG51bWJlck9mQ2FwdHVyZXMgYmUgPyBU
b0xlbmd0aCg/IEdldCh6LCAibGVuZ3RoIikpLgotICAgICAgICAgICAgLy8gNy4gTGV0IG51bWJl
ck9mQ2FwdHVyZXMgYmUgbWF4KG51bWJlck9mQ2FwdHVyZXMtMSwgMCkuCi0gICAgICAgICAgICAv
LyA4LiBMZXQgaSBiZSAxLgotICAgICAgICAgICAgLy8gOS4gUmVwZWF0LCB3aGlsZSBpIDw9IG51
bWJlck9mQ2FwdHVyZXMsCi0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDw9IG51
bWJlck9mQ2FwdHVyZXM7ICsraSkgewotICAgICAgICAgICAgICAgIC8vIGEuIExldCBuZXh0Q2Fw
dHVyZSBiZSA/IEdldCh6LCAhIFRvU3RyaW5nKGkpKS4KLSAgICAgICAgICAgICAgICAvLyBiLiBQ
ZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KEEsICEgVG9TdHJpbmcobGVuZ3RoQSksIG5leHRD
YXB0dXJlKS4KLSAgICAgICAgICAgICAgICBpbnQgc3ViID0gb3ZlY3RvcltpICogMl07Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChleGVjLCByZXN1bHRMZW5ndGgsIHN1
YiA8IDAgPyBqc1VuZGVmaW5lZCgpIDoganNTdWJzdHJpbmcoZXhlYywgdGhpc1ZhbHVlLCBpbnB1
dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKLQotICAgICAgICAgICAgICAgIC8v
IGMuIExldCBpIGJlIGkgKyAxLgotICAgICAgICAgICAgICAgIC8vIGQuIExldCBsZW5ndGhBIGJl
IGxlbmd0aEEgKyAxLgotICAgICAgICAgICAgICAgIC8vIGUuIElmIGxlbmd0aEEgPSBsaW0sIHJl
dHVybiBBLgotICAgICAgICAgICAgICAgIGlmICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAvLyAxMC4gTGV0IHEgYmUgcC4KLSAgICAgICAgICAgIG1h
dGNoUG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIDIwLiBM
ZXQgVCBiZSBhIFN0cmluZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lz
dGluZyBvZiB0aGUgZWxlbWVudHMgYXQgaW5kaWNlcyBwIChpbmNsdXNpdmUpIHRocm91Z2ggc2l6
ZSAoZXhjbHVzaXZlKS4KLSAgICAvLyAyMS4gUGVyZm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShB
LCAhIFRvU3RyaW5nKGxlbmd0aEEpLCBUKS4KLSAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIHJlc3VsdExlbmd0aCsrLCBqc1N1YnN0cmluZyhleGVjLCB0aGlzVmFsdWUsIGlucHV0LCBw
b3NpdGlvbiwgaW5wdXRTaXplIC0gcG9zaXRpb24pKTsKLQotICAgIC8vIDIyLiBSZXR1cm4gQS4K
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
aAppbmRleCBkNzNlZWEzZDk0OGM0OWZlMjc2MjkxMGQ4ZmRlOTg0YmZhMGRkNGZiLi42Y2ZjZTVk
Yjk3NGUyZjU1YmY1ODQwYjBmODhjYzFmZjQyZTZiZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNTgsOSArNTgsNiBAQCBwcml2
YXRlOgogICAgIFdyaXRlQmFycmllcjxSZWdFeHA+IG1fZW1wdHlSZWdFeHA7CiB9OwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QoRXhlY1N0
YXRlKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NwbGl0
RmFzdChFeGVjU3RhdGUqKTsKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBSZWdF
eHBQcm90b3R5cGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuaAppbmRleCBlZDJhNWI1Y2U0YjU0M2M0N2M1NWU4NDI2Y2Q5MDY0ODc4NTA5MGUwLi40Zjg5
Njk3NDM5YzU2NWZmNTA2YzM5Y2Y5ZjBmN2I1ZmYxNzBlOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTgxLDI5ICs4MSw2IEBAIGlubGlu
ZSBTdHJpbmdPYmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUgdmFsdWUpCiAKIEpTX0VYUE9S
VF9QUklWQVRFIFN0cmluZ09iamVjdCogY29uc3RydWN0U3RyaW5nKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBKU1ZhbHVlKTsKIAotLy8gSGVscGVyIGZvciBwcm9kdWNpbmcgYSBKU1N0cmluZyBmb3Ig
J3N0cmluZycsIHdoZXJlICdzdHJpbmcnIHdhcyBiZWVuIHByb2R1Y2VkIGJ5Ci0vLyBjYWxsaW5n
IFRvU3RyaW5nIG9uICdvcmlnaW5hbFZhbHVlJy4gSW4gY2FzZXMgd2hlcmUgJ29yaWdpbmFsVmFs
dWUnIGFscmVhZHkgd2FzIGEKLS8vIHN0cmluZyBwcmltaXRpdmUgd2UgY2FuIGp1c3QgdXNlIHRo
aXMsIG90aGVyd2lzZSB3ZSBuZWVkIHRvIGFsbG9jYXRlIGEgbmV3IEpTU3RyaW5nLgotc3RhdGlj
IGlubGluZSBKU1N0cmluZyoganNTdHJpbmdXaXRoUmV1c2UoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIG9yaWdpbmFsVmFsdWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIGlmIChvcmln
aW5hbFZhbHVlLmlzU3RyaW5nKCkpIHsKLSAgICAgICAgQVNTRVJUKGFzU3RyaW5nKG9yaWdpbmFs
VmFsdWUpLT52YWx1ZShleGVjKSA9PSBzdHJpbmcpOwotICAgICAgICByZXR1cm4gYXNTdHJpbmco
b3JpZ2luYWxWYWx1ZSk7Ci0gICAgfQotICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBzdHJpbmcp
OwotfQotCi0vLyBIZWxwZXIgdGhhdCB0cmllcyB0byB1c2UgdGhlIEpTU3RyaW5nIHN1YnN0cmlu
ZyBzaGFyaW5nIG1lY2hhbmlzbSBpZiAnb3JpZ2luYWxWYWx1ZScgaXMgYSBKU1N0cmluZy4KLXN0
YXRpYyBpbmxpbmUgSlNTdHJpbmcqIGpzU3Vic3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBvcmlnaW5hbFZhbHVlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgaWYgKG9yaWdpbmFsVmFsdWUuaXNTdHJpbmcoKSkgewot
ICAgICAgICBBU1NFUlQoYXNTdHJpbmcob3JpZ2luYWxWYWx1ZSktPnZhbHVlKGV4ZWMpID09IHN0
cmluZyk7Ci0gICAgICAgIHJldHVybiBqc1N1YnN0cmluZyhleGVjLCBhc1N0cmluZyhvcmlnaW5h
bFZhbHVlKSwgb2Zmc2V0LCBsZW5ndGgpOwotICAgIH0KLSAgICByZXR1cm4ganNTdWJzdHJpbmco
ZXhlYywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCk7Ci19Ci0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBTdHJpbmdPYmplY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggMDBjNTFkMDI2NDA0MTI5OTNiZWUx
YmNkZGUzZDRhMTZiMmM2OTA1OS4uZjZiMWVhNGJlNjQxZmRlOGY5ZmJmYjdhM2ZlN2M3MDg3MTUx
NTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAw
MSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNC0y
MDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBN
b2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJhbmQgKGxqaGFy
YkBnbWFpbC5jb20pCiAgKgpAQCAtNzAsNiArNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1BhZEVuZChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUGFkU3RhcnQoRXhlY1N0YXRlKik7CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2UoRXhlY1N0YXRl
Kik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NsaWNlKEV4
ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNT
cGxpdChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3Vic3RyKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKEV4ZWNTdGF0ZSopOwpAQCAtMTEy
LDcgKzExMyw2IEBAIGNvbnN0IENsYXNzSW5mbyBTdHJpbmdQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IlN0cmluZyIsICZTdHJpbmdPYmplY3Q6OnNfaW5mbywgJnN0CiAgICAgbWF0Y2ggICAgIEpTQnVp
bHRpbiAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgICAgcmVwZWF0ICAgIEpTQnVpbHRpbiAgICBE
b250RW51bXxGdW5jdGlvbiAxCiAgICAgc2VhcmNoICAgIEpTQnVpbHRpbiAgICBEb250RW51bXxG
dW5jdGlvbiAxCi0gICAgc3BsaXQgICAgIEpTQnVpbHRpbiAgICBEb250RW51bXxGdW5jdGlvbiAx
CiBAZW5kCiAqLwogCkBAIC0xMzksNiArMTM5LDcgQEAgdm9pZCBTdHJpbmdQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHIK
ICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicGFkU3RhcnQiLCBz
dHJpbmdQcm90b0Z1bmNQYWRTdGFydCwgRG9udEVudW0sIDEpOwogICAgIEpTQ19OQVRJVkVfSU5U
UklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmVwbGFjZSIsIHN0cmluZ1Byb3Rv
RnVuY1JlcGxhY2UsIERvbnRFbnVtLCAyLCBTdHJpbmdQcm90b3R5cGVSZXBsYWNlSW50cmluc2lj
KTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic2xpY2UiLCBz
dHJpbmdQcm90b0Z1bmNTbGljZSwgRG9udEVudW0sIDIpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzcGxpdCIsIHN0cmluZ1Byb3RvRnVuY1NwbGl0LCBEb250
RW51bSwgMik7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInN1
YnN0ciIsIHN0cmluZ1Byb3RvRnVuY1N1YnN0ciwgRG9udEVudW0sIDIpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJzdWJzdHJpbmciLCBzdHJpbmdQcm90b0Z1
bmNTdWJzdHJpbmcsIERvbnRFbnVtLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigidG9Mb3dlckNhc2UiLCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZSwg
RG9udEVudW0sIDApOwpAQCAtMTk0LDYgKzE5NSwyOCBAQCBib29sIFN0cmluZ1Byb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKKy8vIEhlbHBlciBmb3IgcHJvZHVjaW5nIGEgSlNTdHJpbmcg
Zm9yICdzdHJpbmcnLCB3aGVyZSAnc3RyaW5nJyB3YXMgYmVlbiBwcm9kdWNlZCBieQorLy8gY2Fs
bGluZyBUb1N0cmluZyBvbiAnb3JpZ2luYWxWYWx1ZScuIEluIGNhc2VzIHdoZXJlICdvcmlnaW5h
bFZhbHVlJyBhbHJlYWR5IHdhcyBhCisvLyBzdHJpbmcgcHJpbWl0aXZlIHdlIGNhbiBqdXN0IHVz
ZSB0aGlzLCBvdGhlcndpc2Ugd2UgbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyBKU1N0cmluZy4KK3N0
YXRpYyBpbmxpbmUgSlNTdHJpbmcqIGpzU3RyaW5nV2l0aFJldXNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBvcmlnaW5hbFZhbHVlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAo
b3JpZ2luYWxWYWx1ZS5pc1N0cmluZygpKSB7CisgICAgICAgIEFTU0VSVChhc1N0cmluZyhvcmln
aW5hbFZhbHVlKS0+dmFsdWUoZXhlYykgPT0gc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIGFzU3Ry
aW5nKG9yaWdpbmFsVmFsdWUpOworICAgIH0KKyAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgc3Ry
aW5nKTsKK30KKworLy8gSGVscGVyIHRoYXQgdHJpZXMgdG8gdXNlIHRoZSBKU1N0cmluZyBzdWJz
dHJpbmcgc2hhcmluZyBtZWNoYW5pc20gaWYgJ29yaWdpbmFsVmFsdWUnIGlzIGEgSlNTdHJpbmcu
CitzdGF0aWMgaW5saW5lIEpTU3RyaW5nKiBqc1N1YnN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgb3JpZ2luYWxWYWx1ZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGlmIChvcmlnaW5hbFZhbHVlLmlzU3RyaW5nKCkp
IHsKKyAgICAgICAgQVNTRVJUKGFzU3RyaW5nKG9yaWdpbmFsVmFsdWUpLT52YWx1ZShleGVjKSA9
PSBzdHJpbmcpOworICAgICAgICByZXR1cm4ganNTdWJzdHJpbmcoZXhlYywgYXNTdHJpbmcob3Jp
Z2luYWxWYWx1ZSksIG9mZnNldCwgbGVuZ3RoKTsKKyAgICB9CisgICAgcmV0dXJuIGpzU3Vic3Ry
aW5nKGV4ZWMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpOworfQorCiBzdGF0aWMgTkVWRVJfSU5M
SU5FIFN0cmluZyBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXNTbG93KFN0cmluZ1ZpZXcgcmVwbGFj
ZW1lbnQsIFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCogcmVn
LCBzaXplX3QgaSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN1YnN0aXR1dGVkUmVwbGFjZW1lbnQ7
CkBAIC0xMTU4LDU4ICsxMTgxLDE2OSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHNwbGl0
U3RyaW5nQnlPbmVDaGFyYWN0ZXJJbXBsKEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotLy8gRVMgMjEuMS4zLjE3IFN0cmluZy5wcm90b3R5cGUuc3BsaXQo
c2VwYXJhdG9yLCBsaW1pdCkKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3BsaXRGYXN0KEV4ZWNTdGF0ZSogZXhlYykKKy8vIEVTIDUuMSAtIDE1LjUuNC4xNCBT
dHJpbmcucHJvdG90eXBlLnNwbGl0IChzZXBhcmF0b3IsIGxpbWl0KQorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiB7Cisg
ICAgLy8gMS4gQ2FsbCBDaGVja09iamVjdENvZXJjaWJsZSBwYXNzaW5nIHRoZSB0aGlzIHZhbHVl
IGFzIGl0cyBhcmd1bWVudC4KICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIEFTU0VSVChjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKTsKKyAgICBp
ZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwogCi0gICAgLy8gMy4gTGV0IFMgYmUgdGhlIHJlc3VsdCBvZiBj
YWxsaW5nIFRvU3RyaW5nLCBnaXZpbmcgaXQgdGhlIHRoaXMgdmFsdWUgYXMgaXRzIGFyZ3VtZW50
LgotICAgIC8vIDcuIExldCBzIGJlIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBTLgorICAg
IC8vIDIuIExldCBTIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyBUb1N0cmluZywgZ2l2aW5nIGl0
IHRoZSB0aGlzIHZhbHVlIGFzIGl0cyBhcmd1bWVudC4KKyAgICAvLyA2LiBMZXQgcyBiZSB0aGUg
bnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gUy4KICAgICBTdHJpbmcgaW5wdXQgPSB0aGlzVmFsdWUu
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBB
U1NFUlQoIWlucHV0LmlzTnVsbCgpKTsKIAotICAgIC8vIDQuIExldCBBIGJlIGEgbmV3IGFycmF5
IGNyZWF0ZWQgYXMgaWYgYnkgdGhlIGV4cHJlc3Npb24gbmV3IEFycmF5KCkKKyAgICAvLyAzLiBM
ZXQgQSBiZSBhIG5ldyBhcnJheSBjcmVhdGVkIGFzIGlmIGJ5IHRoZSBleHByZXNzaW9uIG5ldyBB
cnJheSgpCiAgICAgLy8gICAgd2hlcmUgQXJyYXkgaXMgdGhlIHN0YW5kYXJkIGJ1aWx0LWluIGNv
bnN0cnVjdG9yIHdpdGggdGhhdCBuYW1lLgogICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVj
dEVtcHR5QXJyYXkoZXhlYywgMCk7CiAKLSAgICAvLyA1LiBMZXQgbGVuZ3RoQSBiZSAwLgorICAg
IC8vIDQuIExldCBsZW5ndGhBIGJlIDAuCiAgICAgdW5zaWduZWQgcmVzdWx0TGVuZ3RoID0gMDsK
IAotICAgIC8vIDYuIElmIGxpbWl0IGlzIHVuZGVmaW5lZCwgbGV0IGxpbSA9IDJeMzItMTsgZWxz
ZSBsZXQgbGltID0gVG9VaW50MzIobGltaXQpLgotICAgIEpTVmFsdWUgbGltaXRWYWx1ZSA9IGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworICAgIC8vIDUuIElmIGxpbWl0IGlzIHVuZGVmaW5l
ZCwgbGV0IGxpbSA9IDJeMzItMTsgZWxzZSBsZXQgbGltID0gVG9VaW50MzIobGltaXQpLgorICAg
IEpTVmFsdWUgbGltaXRWYWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIHVuc2lnbmVkIGxp
bWl0ID0gbGltaXRWYWx1ZS5pc1VuZGVmaW5lZCgpID8gMHhGRkZGRkZGRnUgOiBsaW1pdFZhbHVl
LnRvVUludDMyKGV4ZWMpOwogCi0gICAgLy8gOC4gTGV0IHAgPSAwLgorICAgIC8vIDcuIExldCBw
ID0gMC4KICAgICBzaXplX3QgcG9zaXRpb24gPSAwOwogCi0gICAgLy8gOS4gSWYgc2VwYXJhdG9y
IGlzIGEgUmVnRXhwIG9iamVjdCAoaXRzIFtbQ2xhc3NdXSBpcyAiUmVnRXhwIiksIGxldCBSID0g
c2VwYXJhdG9yOworICAgIC8vIDguIElmIHNlcGFyYXRvciBpcyBhIFJlZ0V4cCBvYmplY3QgKGl0
cyBbW0NsYXNzXV0gaXMgIlJlZ0V4cCIpLCBsZXQgUiA9IHNlcGFyYXRvcjsKICAgICAvLyAgICBv
dGhlcndpc2UgbGV0IFIgPSBUb1N0cmluZyhzZXBhcmF0b3IpLgotICAgIEpTVmFsdWUgc2VwYXJh
dG9yVmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICB7IC8vIEZJWE1FOiBL
ZWVwaW5nIHRoaXMgaW5kZW50YXRpb24gaGVyZSB0byBtaW5pbWl6ZSB0aGUgZGlmZi4gV2lsbCB1
bmluZGVudCBhbmQgcmVtb3ZlIHRoaXMgbGF0ZXIuCisgICAgSlNWYWx1ZSBzZXBhcmF0b3JWYWx1
ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOworICAgIGlmIChzZXBhcmF0b3JWYWx1ZS5pbmhlcml0cyhS
ZWdFeHBPYmplY3Q6OmluZm8oKSkpIHsKKyAgICAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Cisg
ICAgICAgIFJlZ0V4cCogcmVnID0gYXNSZWdFeHBPYmplY3Qoc2VwYXJhdG9yVmFsdWUpLT5yZWdF
eHAoKTsKKworICAgICAgICAvLyA5LiBJZiBsaW0gPT0gMCwgcmV0dXJuIEEuCisgICAgICAgIGlm
ICghbGltaXQpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisK
KyAgICAgICAgLy8gMTAuIElmIHNlcGFyYXRvciBpcyB1bmRlZmluZWQsIHRoZW4KKyAgICAgICAg
aWYgKHNlcGFyYXRvclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgICAgIC8vIGEuIENh
bGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFy
Z3VtZW50cyAiMCIsCisgICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1Zh
bHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29u
ZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCisgICAgICAgICAgICByZXN1bHQtPnB1dERp
cmVjdEluZGV4KGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5w
dXQpKTsKKyAgICAgICAgICAgIC8vIGIuIFJldHVybiBBLgorICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gMTEuIElmIHMg
PT0gMCwgdGhlbgorICAgICAgICBpZiAoaW5wdXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAv
LyBhLiBDYWxsIFNwbGl0TWF0Y2goUywgMCwgUikgYW5kIGxldCB6IGJlIGl0cyBNYXRjaFJlc3Vs
dCByZXN1bHQuCisgICAgICAgICAgICAvLyBiLiBJZiB6IGlzIG5vdCBmYWlsdXJlLCByZXR1cm4g
QS4KKyAgICAgICAgICAgIC8vIGMuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRl
cm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCisgICAgICAgICAgICAvLyAgICBQ
cm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tF
bnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCisg
ICAgICAgICAgICAvLyBkLiBSZXR1cm4gQS4KKyAgICAgICAgICAgIGlmICghcmVnLT5tYXRjaCgq
dm0sIGlucHV0LCAwKSkKKyAgICAgICAgICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4
ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIDEyLiBMZXQgcSA9IHAuCisgICAgICAgIHNpemVfdCBtYXRjaFBvc2l0aW9uID0gMDsK
KyAgICAgICAgLy8gMTMuIFJlcGVhdCwgd2hpbGUgcSAhPSBzCisgICAgICAgIHdoaWxlIChtYXRj
aFBvc2l0aW9uIDwgaW5wdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIGEuIENhbGwgU3Bs
aXRNYXRjaChTLCBxLCBSKSBhbmQgbGV0IHogYmUgaXRzIE1hdGNoUmVzdWx0IHJlc3VsdC4KKyAg
ICAgICAgICAgIFZlY3RvcjxpbnQsIDMyPiBvdmVjdG9yOworICAgICAgICAgICAgaW50IG1wb3Mg
PSByZWctPm1hdGNoKCp2bSwgaW5wdXQsIG1hdGNoUG9zaXRpb24sIG92ZWN0b3IpOworCisgICAg
ICAgICAgICAvLyBiLiBJZiB6IGlzIGEgZmFpbHVyZSB0aGVuIHdlIGNhbiBicmVhayBiZWNhdXNl
IHRoZXJlIGFyZSBubyBtYXRjaGVzCisgICAgICAgICAgICBpZiAobXBvcyA8IDApCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBtYXRjaFBvc2l0aW9uID0gbXBvczsKKworICAg
ICAgICAgICAgLy8gaWYgdGhlIG1hdGNoIGlzIHRoZSBlbXB0eSBtYXRjaCBhdCB0aGUgZW5kLCBi
cmVhay4KKyAgICAgICAgICAgIGlmIChtYXRjaFBvc2l0aW9uID49IGlucHV0Lmxlbmd0aCgpKQor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBjLiBFbHNlLCB6IGlzIG5v
dCBmYWlsdXJlCisgICAgICAgICAgICAvLyBpLiB6IG11c3QgYmUgYSBTdGF0ZS4gTGV0IGUgYmUg
eidzIGVuZEluZGV4IGFuZCBsZXQgY2FwIGJlIHoncyBjYXB0dXJlcyBhcnJheS4KKyAgICAgICAg
ICAgIHNpemVfdCBtYXRjaEVuZCA9IG92ZWN0b3JbMV07CisKKyAgICAgICAgICAgIC8vIGlpLiBJ
ZiBlID09IHAsIHRoZW4gbGV0IHEgPSBxICsgMS4KKyAgICAgICAgICAgIGlmIChtYXRjaEVuZCA9
PSBwb3NpdGlvbikgeworICAgICAgICAgICAgICAgICsrbWF0Y2hQb3NpdGlvbjsKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGlpaS4gaWYg
bWF0Y2hFbmQgPT0gMCB0aGVuIHBvc2l0aW9uIHNob3VsZCBhbHNvIGJlIHplcm8gYW5kIHRodXMg
bWF0Y2hFbmQgc2hvdWxkIGVxdWFsIHBvc2l0aW9uLgorICAgICAgICAgICAgQVNTRVJUKG1hdGNo
RW5kKTsKKworICAgICAgICAgICAgLy8gaWlpLiBFbHNlLCBlICE9IHAKKworICAgICAgICAgICAg
Ly8gMS4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1YnN0cmluZyBvZiBT
IGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlcnMgYXQgcG9zaXRpb25zIHAgKGluY2x1c2l2ZSkK
KyAgICAgICAgICAgIC8vICAgIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KKyAgICAgICAgICAgIC8v
IDIuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3
aXRoIGFyZ3VtZW50cyBUb1N0cmluZyhsZW5ndGhBKSwKKyAgICAgICAgICAgIC8vICAgIFByb3Bl
cnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1l
cmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KKyAgICAg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgcmVzdWx0TGVuZ3RoLCBqc1N1YnN0
cmluZyhleGVjLCB0aGlzVmFsdWUsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBv
c2l0aW9uKSk7CisKKyAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCisg
ICAgICAgICAgICAvLyA0LiBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCisgICAgICAgICAg
ICArK3Jlc3VsdExlbmd0aDsKKyAgICAgICAgICAgIGlmIChyZXN1bHRMZW5ndGggPT0gbGltaXQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAg
ICAgICAgaWYgKHJlc3VsdExlbmd0aCA+PSBNQVhfU1RPUkFHRV9WRUNUT1JfSU5ERVgpIHsKKyAg
ICAgICAgICAgICAgICAvLyBMZXQncyBjb25zaWRlciB3aGF0J3MgYmVzdCBmb3IgdXNlcnMgaGVy
ZS4gV2UncmUgYWJvdXQgdG8gaW5jcmVhc2UgdGhlIGxlbmd0aCBvZgorICAgICAgICAgICAgICAg
IC8vIHRoZSBzcGxpdCBhcnJheSBiZXlvbmQgdGhlIG1heGltdW0gbGVuZ3RoIHRoYXQgd2UgY2Fu
IHN1cHBvcnQgZWZmaWNpZW50bHkuIFRoaXMKKyAgICAgICAgICAgICAgICAvLyB3aWxsIGNhdXNl
IHVzIHRvIHVzZSBhIEhhc2hNYXAgZm9yIHRoZSBuZXcgZW50cmllcyBhZnRlciB0aGlzIHBvaW50
LiBUaGF0J3MgZ29pbmcKKyAgICAgICAgICAgICAgICAvLyB0byByZXN1bHQgaW4gYSB2ZXJ5IGxv
bmcgcnVubmluZyB0aW1lIG9mIHRoaXMgZnVuY3Rpb24gYW5kIHZlcnkgbGFyZ2UgbWVtb3J5Cisg
ICAgICAgICAgICAgICAgLy8gdXNhZ2UuIEluIG15IGV4cGVyaW1lbnRzLCBKU0Mgd2lsbCBzaXQg
c3Bpbm5pbmcgZm9yIG1pbnV0ZXMgYWZ0ZXIgZ2V0dGluZyBoZXJlIGFuZAorICAgICAgICAgICAg
ICAgIC8vIGl0IHdhcyB1c2luZyA+NEdCIG9mIG1lbW9yeSBhbmQgZXZlbnR1YWxseSBncmV3IHRv
IDhHQi4gSXQga2VwdCBydW5uaW5nIHdpdGhvdXQKKyAgICAgICAgICAgICAgICAvLyBmaW5pc2hp
bmcgdW50aWwgSSBraWxsZWQgaXQuIFRoYXQncyBwcm9iYWJseSBub3Qgd2hhdCB0aGUgdXNlciB3
YW50ZWQuIFRoZSB1c2VyLAorICAgICAgICAgICAgICAgIC8vIG9yIHRoZSBwcm9ncmFtIHRoYXQg
dGhlIHVzZXIgaXMgcnVubmluZywgcHJvYmFibHkgbWFkZSBhIG1pc3Rha2UgYnkgY2FsbGluZyB0
aGlzCisgICAgICAgICAgICAgICAgLy8gbWV0aG9kIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCByZXN1
bHRlZCBpbiBzdWNoIGFuIG9ibm94aW91cyBhcnJheS4gVGhlcmVmb3JlLCB0bworICAgICAgICAg
ICAgICAgIC8vIHByb3RlY3Qgb3Vyc2VsdmVzLCB3ZSBiYWlsIGF0IHRoaXMgcG9pbnQuCisgICAg
ICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMpOworICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIDUuIExldCBwID0gZS4KKyAgICAgICAgICAgIC8vIDguIExldCBxID0g
cC4KKyAgICAgICAgICAgIHBvc2l0aW9uID0gbWF0Y2hFbmQ7CisgICAgICAgICAgICBtYXRjaFBv
c2l0aW9uID0gbWF0Y2hFbmQ7CisKKyAgICAgICAgICAgIC8vIDYuIExldCBpID0gMC4KKyAgICAg
ICAgICAgIC8vIDcuIFJlcGVhdCwgd2hpbGUgaSBpcyBub3QgZXF1YWwgdG8gdGhlIG51bWJlciBv
ZiBlbGVtZW50cyBpbiBjYXAuCisgICAgICAgICAgICAvLyAgYSBMZXQgaSA9IGkgKyAxLgorICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8PSByZWctPm51bVN1YnBhdHRlcm5zKCk7
ICsraSkgeworICAgICAgICAgICAgICAgIC8vIGIgQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0
eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzCisgICAgICAgICAgICAgICAg
Ly8gICBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBj
YXBbaV0sIFtbV3JpdGFibGVdXToKKyAgICAgICAgICAgICAgICAvLyAgIHRydWUsIFtbRW51bWVy
YWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgorICAgICAg
ICAgICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKKyAgICAgICAgICAgICAgICByZXN1
bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZp
bmVkKCkgOiBqc1N1YnN0cmluZyhleGVjLCB0aGlzVmFsdWUsIGlucHV0LCBzdWIsIG92ZWN0b3Jb
aSAqIDIgKyAxXSAtIHN1YikpOworICAgICAgICAgICAgICAgIC8vIGMgSW5jcmVtZW50IGxlbmd0
aEEgYnkgMS4KKyAgICAgICAgICAgICAgICAvLyBkIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4g
QS4KKyAgICAgICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGggPT0gbGltaXQpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBzZXBhcmF0b3IgPSBz
ZXBhcmF0b3JWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKLSAgICAgICAgLy8gMTAuIElmIGxpbSA9PSAwLCByZXR1cm4gQS4K
KyAgICAgICAgLy8gOS4gSWYgbGltID09IDAsIHJldHVybiBBLgogICAgICAgICBpZiAoIWxpbWl0
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogCi0gICAgICAg
IC8vIDExLiBJZiBzZXBhcmF0b3IgaXMgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIC8vIDEwLiBJ
ZiBzZXBhcmF0b3IgaXMgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIEpTVmFsdWUgc2VwYXJhdG9y
VmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlz
VW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAgIC8vIGEuICBDYWxsIHRoZSBbW0RlZmluZU93blBy
b3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgIjAiLAorICAgICAg
ICAgICAgLy8gICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJs
ZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0s
IGFuZCBmYWxzZS4KICAgICAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgMCwg
anNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAg
Ly8gYi4gIFJldHVybiBBLgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gMTIuIElmIHMgPT0gMCwgdGhlbgorICAgICAg
ICAvLyAxMS4gSWYgcyA9PSAwLCB0aGVuCiAgICAgICAgIGlmIChpbnB1dC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgIC8vIGEuIExldCB6IGJlIFNwbGl0TWF0Y2goUywgMCwgUikgd2hlcmUgUyBp
cyBpbnB1dCwgUiBpcyBzZXBhcmF0b3IuCi0gICAgICAgICAgICAvLyBiLiBJZiB6IGlzIG5vdCBm
YWxzZSwgcmV0dXJuIEEuCi0gICAgICAgICAgICAvLyBjLiBDYWxsIENyZWF0ZURhdGFQcm9wZXJ0
eShBLCAiMCIsIFMpLgorICAgICAgICAgICAgLy8gYS4gQ2FsbCBTcGxpdE1hdGNoKFMsIDAsIFIp
IGFuZCBsZXQgeiBiZSBpdHMgTWF0Y2hSZXN1bHQgcmVzdWx0LgorICAgICAgICAgICAgLy8gYi4g
SWYgeiBpcyBub3QgZmFpbHVyZSwgcmV0dXJuIEEuCisgICAgICAgICAgICAvLyBjLiBDYWxsIHRo
ZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVu
dHMgIjAiLAorICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4gUmV0dXJuIEEuCiAg
ICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXREaXJlY3RJbmRleChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlz
VmFsdWUsIGlucHV0KSk7CkBAIC0xMjUyLDE2ICsxMzg2LDE3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gMTMuIExldCBxID0gcC4K
KyAgICAgICAgICAgIC8vIDEyLiBMZXQgcSA9IHAuCiAgICAgICAgICAgICBzaXplX3QgbWF0Y2hQ
b3NpdGlvbjsKLSAgICAgICAgICAgIC8vIDE0LiBSZXBlYXQsIHdoaWxlIHEgIT0gcwotICAgICAg
ICAgICAgLy8gICBhLiBsZXQgZSBiZSBTcGxpdE1hdGNoKFMsIHEsIFIpLgotICAgICAgICAgICAg
Ly8gICBiLiBJZiBlIGlzIGZhaWx1cmUsIHRoZW4gbGV0IHEgPSBxKzEuCi0gICAgICAgICAgICAv
LyAgIGMuIEVsc2UsIGUgaXMgYW4gaW50ZWdlciBpbmRleCA8PSBzLgorICAgICAgICAgICAgLy8g
MTMuIFJlcGVhdCwgd2hpbGUgcSAhPSBzCisgICAgICAgICAgICAvLyAgIGEuIENhbGwgU3BsaXRN
YXRjaChTLCBxLCBSKSBhbmQgbGV0IHogYmUgaXRzIE1hdGNoUmVzdWx0IHJlc3VsdC4KKyAgICAg
ICAgICAgIC8vICAgYi4gSWYgeiBpcyBmYWlsdXJlLCB0aGVuIGxldCBxID0gcSsxLgorICAgICAg
ICAgICAgLy8gICBjLiBFbHNlLCB6IGlzIG5vdCBmYWlsdXJlCiAgICAgICAgICAgICB3aGlsZSAo
KG1hdGNoUG9zaXRpb24gPSBzdHJpbmdJbXBsLT5maW5kKHNlcGFyYXRvckltcGwsIHBvc2l0aW9u
KSkgIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgICAgICAvLyAxLiBMZXQgVCBiZSBhIFN0cmlu
ZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGluZyBvZiB0aGUgY2hh
cmFjdGVycyBhdCBwb3NpdGlvbnMgcCAoaW5jbHVzaXZlKQogICAgICAgICAgICAgICAgIC8vICAg
IHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KLSAgICAgICAgICAgICAgICAvLyAyLiBDYWxsIENyZWF0
ZURhdGFQcm9wZXJ0eShBLCBUb1N0cmluZyhsZW5ndGhBKSwgVCkuCisgICAgICAgICAgICAgICAg
Ly8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBB
IHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0aEEpLAorICAgICAgICAgICAgICAgIC8vICAg
IFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBb
W0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4K
ICAgICAgICAgICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIHJlc3VsdExlbmd0
aCwganNTdWJzdHJpbmcoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9z
aXRpb24gLSBwb3NpdGlvbikpOwogICAgICAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5n
dGhBIGJ5IDEuCiAgICAgICAgICAgICAgICAgLy8gNC4gSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVy
biBBLgpAQCAtMTI2OSwxOCArMTQwNCwxOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIAogICAgICAgICAgICAgICAg
IC8vIDUuIExldCBwID0gZS4KLSAgICAgICAgICAgICAgICAvLyA2LiBMZXQgcSA9IHAuCisgICAg
ICAgICAgICAgICAgLy8gOC4gTGV0IHEgPSBwLgogICAgICAgICAgICAgICAgIHBvc2l0aW9uID0g
bWF0Y2hQb3NpdGlvbiArIHNlcGFyYXRvci5sZW5ndGgoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQotICAgIH0gLy8gRklYTUU6IEtlZXBpbmcgdGhpcyBpbmRlbnRhdGlvbiBoZXJlIHRvIG1p
bmltaXplIHRoZSBkaWZmLiBXaWxsIHVuaW5kZW50IGFuZCByZW1vdmUgdGhpcyBsYXRlci4KKyAg
ICB9CiAKLSAgICAvLyAxNS4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8gdGhlIHN1
YnN0cmluZyBvZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlcnMgYXQgcG9zaXRpb25zIHAg
KGluY2x1c2l2ZSkKKyAgICAvLyAxNC4gTGV0IFQgYmUgYSBTdHJpbmcgdmFsdWUgZXF1YWwgdG8g
dGhlIHN1YnN0cmluZyBvZiBTIGNvbnNpc3Rpbmcgb2YgdGhlIGNoYXJhY3RlcnMgYXQgcG9zaXRp
b25zIHAgKGluY2x1c2l2ZSkKICAgICAvLyAgICAgdGhyb3VnaCBzIChleGNsdXNpdmUpLgotICAg
IC8vIDE2LiBDYWxsIENyZWF0ZURhdGFQcm9wZXJ0eShBLCBUb1N0cmluZyhsZW5ndGhBKSwgVCku
CisgICAgLy8gMTUuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRo
b2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3Jp
cHRvcgorICAgIC8vICAgICB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51
bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAg
IHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywgcmVzdWx0TGVuZ3RoKyssIGpzU3Vic3RyaW5n
KGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0
aW9uKSk7CiAKLSAgICAvLyAxNy4gUmV0dXJuIEEuCisgICAgLy8gMTYuIFJldHVybiBBLgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTMyMywyMyArMTQ1OSw2
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3Vic3RyaW5nKGV4
ZWMsIHVTdHJpbmcsIHN1YnN0cmluZ1N0YXJ0LCBzdWJzdHJpbmdMZW5ndGgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RySW50ZXJuYWwoRXhl
Y1N0YXRlKiBleGVjKQotewotICAgIC8vIEBzdWJzdHJJbnRlcm5hbCBzaG91bGQgbm90IGhhdmUg
YW55IG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIChlLmcuIGl0IHNob3VsZCBub3QgY2FsbAotICAg
IC8vIEdldE1ldGhvZCguLi4sIEBAdG9QcmltaXRpdmUpIG9uIHRoZSB0aGlzVmFsdWUpLgotCi0g
ICAgLy8gSXQgaXMgb2sgdG8gdXNlIHRoZSBkZWZhdWx0IHN0cmluZ1Byb3RvRnVuY1N1YnN0ciBh
cyB0aGUgaW1wbGVtZW50YXRpb24gb2YKLSAgICAvLyBAc3Vic3RySW50ZXJuYWwgYmVjYXVzZSBA
c3Vic3RySW50ZXJuYWwgd2lsbCBvbmx5IGJlIGNhbGxlZCBieSBidWlsdGlucywgd2hpY2ggd2ls
bAotICAgIC8vIGd1YXJhbnRlZSB0aGF0IHdlIG9ubHkgcGFzcyBpdCBhIHN0cmluZyB0aGlzVmFs
dWUuIEFzIGEgcmVzdWx0LCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIKLSAgICAvLyB3aWxsIG5vdCBu
ZWVkIHRvIGNhbGwgdG9TdHJpbmcoKSBvbiB0aGUgdGhpc1ZhbHVlLCBhbmQgdGhlcmUgd2lsbCBi
ZSBubyBvYnNlcnZhYmxlCi0gICAgLy8gc2lkZS1lZmZlY3RzLgotI2lmICFBU1NFUlRfRElTQUJM
RUQKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIEFTU0VS
VCh0aGlzVmFsdWUuaXNTdHJpbmcoKSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gc3RyaW5nUHJvdG9G
dW5jU3Vic3RyKGV4ZWMpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1N1YnN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKQEAgLTE4NzYsMjEgKzE5OTUsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzdHJpbmdUb1NlYXJj
aEluLmhhc0luZml4RW5kaW5nQXQoc2VhcmNoU3RyaW5nLCBzdGQ6Om1pbihlbmQsIGxlbmd0aCkp
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0luY2x1
ZGVzSW1wbChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nIHN0cmluZ1RvU2VhcmNoSW4s
IFN0cmluZyBzZWFyY2hTdHJpbmcsIEpTVmFsdWUgcG9zaXRpb25BcmcpCi17Ci0gICAgdW5zaWdu
ZWQgc3RhcnQgPSAwOwotICAgIGlmIChwb3NpdGlvbkFyZy5pc0ludDMyKCkpCi0gICAgICAgIHN0
YXJ0ID0gc3RkOjptYXgoMCwgcG9zaXRpb25BcmcuYXNJbnQzMigpKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5nVG9TZWFyY2hJbi5sZW5ndGgoKTsKLSAgICAg
ICAgc3RhcnQgPSBjbGFtcEFuZFRydW5jYXRlVG9VbnNpZ25lZChwb3NpdGlvbkFyZy50b0ludGVn
ZXIoZXhlYyksIDAsIGxlbmd0aCk7Ci0gICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc3RyaW5nVG9TZWFyY2hJbi5jb250
YWlucyhzZWFyY2hTdHJpbmcsIHRydWUsIHN0YXJ0KSkpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwpAQCAtMTkxNCwyOCAr
MjAxOCwxNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0lu
Y2x1ZGVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIAogICAgIEpTVmFsdWUgcG9zaXRpb25BcmcgPSBleGVjLT5hcmd1bWVu
dCgxKTsKKyAgICB1bnNpZ25lZCBzdGFydCA9IDA7CisgICAgaWYgKHBvc2l0aW9uQXJnLmlzSW50
MzIoKSkKKyAgICAgICAgc3RhcnQgPSBzdGQ6Om1heCgwLCBwb3NpdGlvbkFyZy5hc0ludDMyKCkp
OworICAgIGVsc2UgeworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmdUb1NlYXJjaElu
Lmxlbmd0aCgpOworICAgICAgICBzdGFydCA9IGNsYW1wQW5kVHJ1bmNhdGVUb1Vuc2lnbmVkKHBv
c2l0aW9uQXJnLnRvSW50ZWdlcihleGVjKSwgMCwgbGVuZ3RoKTsKKyAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nSW5jbHVkZXNJbXBsKHZtLCBl
eGVjLCBzdHJpbmdUb1NlYXJjaEluLCBzZWFyY2hTdHJpbmcsIHBvc2l0aW9uQXJnKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5h
bChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKLSAgICBBU1NFUlQoY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSk7Ci0K
LSAgICBTdHJpbmcgc3RyaW5nVG9TZWFyY2hJbiA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgSlNWYWx1ZSBhMCA9IGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAg
U3RyaW5nIHNlYXJjaFN0cmluZyA9IGEwLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBKU1ZhbHVlIHBvc2l0aW9uQXJnID0gZXhlYy0+YXJn
dW1lbnQoMSk7Ci0KLSAgICByZXR1cm4gc3RyaW5nSW5jbHVkZXNJbXBsKHZtLCBleGVjLCBzdHJp
bmdUb1NlYXJjaEluLCBzZWFyY2hTdHJpbmcsIHBvc2l0aW9uQXJnKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzdHJpbmdUb1NlYXJjaEluLmNvbnRhaW5zKHNlYXJjaFN0
cmluZywgdHJ1ZSwgc3RhcnQpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAppbmRleCBjOWNlMDZkNWM5Njkz
YWRiZTM1YTE2NzU4NGQ5NWFmMmM0NmUxMDY1Li5jZTY0Mjg0ZmIwYTlmYjdhODc5MTI4M2VmMTc3
MTVmNmM0Zjk5ZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTY2LDEwICs2Niw2IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJl
Z0V4cFN0cmluZygKIFN0cmluZyBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXMoY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudCwgU3RyaW5nVmlldyBzb3VyY2UsIGNvbnN0IGludCogb3ZlY3RvciwgUmVn
RXhwKiByZWcpOwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y1JlcGVhdENoYXJhY3RlcihFeGVjU3RhdGUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KEV4ZWNTdGF0ZSopOwotCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJJbnRlcm5hbChFeGVjU3RhdGUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJu
YWwoRXhlY1N0YXRlKik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2LnlhbWwKaW5kZXggMmI2OGNiODBlMTU1MzhkMWQzZWZiNmJmYmY0NmIxZDliZjEx
NmRjYS4uNGU4NGU0MzE1MDM4MWFlMzM4YTM4OTAzNDdlNGQwMDVkYWE1Mzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbApAQCAtMTAwNSw5ICsxMDA1LDkgQEAKIC0gcGF0aDog
ZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBs
YWNlXS5qcwogICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxf
Z2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uanMKLSAgY21kOiBydW5F
UzYgOm5vcm1hbAorICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJu
YWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5qcwotICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfUmVnRXhwX2NvbnN0cnVjdG9yLmpzCiAgIGNtZDogcnVuRVM2IDpub3Jt
YWwKIC0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBl
Lm1hdGNoLmpzCkBAIC0xMDE3LDcgKzEwMTcsNyBAQAogLSBwYXRoOiBlczYvUHJveHlfaW50ZXJu
YWxfZ2V0X2NhbGxzX1N0cmluZy5wcm90b3R5cGUuc2VhcmNoLmpzCiAgIGNtZDogcnVuRVM2IDpu
b3JtYWwKIC0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90
eXBlLnNwbGl0LmpzCi0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwK
IC0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucmF3LmpzCiAgIGNt
ZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19U
b1ByaW1pdGl2ZS5qcwpAQCAtMTA5Myw3ICsxMDkzLDcgQEAKIC0gcGF0aDogZXM2L1JlZ0V4cC5w
cm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zZWFyY2hdLmpzCiAg
IGNtZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVy
dGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanMKLSAgY21kOiBydW5FUzYgOm5v
cm1hbAorICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvUmVnRXhwLnByb3RvdHlwZV9w
cm9wZXJ0aWVzX1JlZ0V4cFtTeW1ib2wuc3BlY2llc10uanMKICAgY21kOiBydW5FUzYgOm5vcm1h
bAogLSBwYXRoOiBlczYvUmVnRXhwX2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0X3Byb3RvdHlwZV9j
aGFpbi5qcwpAQCAtMTIxNSw5ICsxMjE1LDkgQEAKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3lt
Ym9sc19TeW1ib2wuc3BlY2llc19leGlzdGVuY2UuanMKICAgY21kOiBydW5FUzYgOm5vcm1hbAog
LSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX1JlZ0V4cC5wcm90
b3R5cGVbU3ltYm9sLnNwbGl0XS5qcwotICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVu
RVM2IDpmYWlsCiAtIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwbGl0Lmpz
Ci0gIGNtZDogcnVuRVM2IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2
L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wudG9QcmltaXRpdmUuanMKICAgY21kOiBydW5FUzYg
Om5vcm1hbAogLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC50b1N0cmluZ1Rh
Zy5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWdl
eHAtc2VhcmNoLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWdleHAt
c2VhcmNoLmpzCmluZGV4IDBjMzkzNmIwNWI4ODY5MGExOTAzZGIwZjA4ZmJiNzUwYzBiMjZlOGYu
LjJmZDM0YWMxMDE3NGNjZjcxYTFmOWFiM2FiNGEwZjEzYjY0MzIyOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVnZXhwLXNlYXJjaC5qcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlZ2V4cC1zZWFyY2guanMKQEAgLTU5
LDcgKzU5LDcgQEAgdmFyIHByaW1pdGl2ZXMgPSBbCiBmb3IgKHZhciBwcmltaXRpdmUgb2YgcHJp
bWl0aXZlcykgewogICAgIHNob3VsZFRocm93KGZ1bmN0aW9uICgpIHsKICAgICAgICAgUmVnRXhw
LnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5jYWxsKHByaW1pdGl2ZSkKLSAgICB9LCAnVHlwZUVy
cm9yOiBSZWdFeHAucHJvdG90eXBlLkBAc2VhcmNoIHJlcXVpcmVzIHRoYXQgfHRoaXN8IGJlIGFu
IE9iamVjdCcpOworICAgIH0sICdUeXBlRXJyb3I6IFR5cGUgZXJyb3InKTsKIH0KIAogc2hvdWxk
VGhyb3coZnVuY3Rpb24gKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY2MDQ4NGM1MzVjYmMyOTIxOTEwODYyMmIzMDE3
OThlOThlNGRmYzQuLjVmNTZkNDU5NjcxMmQ3OGNiM2Y2YjEyZWI5ZGNmNGRhMzdjOGJlZDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNC0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5OTUw
MiBhbmQgcjE5OTUxMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NjU1NworCisgICAgICAgIEFwcGVhcnMgdG8gaGF2ZSBpbi1icm93c2VyIHBlcmYg
cmVncmVzc2lvbiAoUmVxdWVzdGVkIGJ5IG1sYW0KKyAgICAgICAgb24gI3dlYmtpdCkuCisKKyAg
ICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiRVM2OiBJbXBsZW1lbnQgU3Ry
aW5nLnByb3RvdHlwZS5zcGxpdCBhbmQKKyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0
XS4iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTYw
MTMKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk5NTAyCisKKyAg
ICAgICAgIkVTNjogSW1wbGVtZW50IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdLiIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjMzMQorICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTk1MTEKKwogMjAxNi0wNC0xMyAg
QW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5vbi1yZXNp
emFibGUgdGV4dCBmaWVsZCBsb29rcyByZXNpemFibGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAppbmRleCAxNmVjYjgz
NWRmMjFjM2YzNzIzNzRmOTk1ZDFjYzczNTkzM2M5YWU0Li41ZjczYjBiYjFjY2QwNmFiODYyNzc4
YWI3NzA2ZmJlNGIzYjI0MmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0
T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC02MSw3ICs2MSw3IEBAIFBBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJvcikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yLnByb3RvdHlw
ZSkgaXMgWydjb25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXQogUEFT
UyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE1hdGgpIGlzIFsnRScsJ0xOMTAnLCdMTjInLCdM
T0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3No
JywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2Ns
ejMyJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcs
J2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3Jh
bmRvbScsJ3JvdW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3Ry
dW5jJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhKU09OKSBpcyBbJ3BhcnNlJywg
J3N0cmluZ2lmeSddCi1QQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBb
J2ZvcicsICdoYXNJbnN0YW5jZScsICdpc0NvbmNhdFNwcmVhZGFibGUnLCAnaXRlcmF0b3InLCAn
a2V5Rm9yJywgJ2xlbmd0aCcsICdtYXRjaCcsICduYW1lJywgJ3Byb3RvdHlwZScsICdzZWFyY2gn
LCAnc3BlY2llcycsICdzcGxpdCcsICd0b1ByaW1pdGl2ZScsICd0b1N0cmluZ1RhZycsICd1bnNj
b3BhYmxlcyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2Zv
cicsICdoYXNJbnN0YW5jZScsICdpc0NvbmNhdFNwcmVhZGFibGUnLCAnaXRlcmF0b3InLCAna2V5
Rm9yJywgJ2xlbmd0aCcsICdtYXRjaCcsICduYW1lJywgJ3Byb3RvdHlwZScsICdzZWFyY2gnLCAn
c3BlY2llcycsICd0b1ByaW1pdGl2ZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddCiBQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sLnByb3RvdHlwZSkgaXMgWydjb25z
dHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhNYXApIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0
U29ydGVkT3duUHJvcGVydHlOYW1lcyhNYXAucHJvdG90eXBlKSBpcyBbJ2NsZWFyJywgJ2NvbnN0
cnVjdG9yJywgJ2RlbGV0ZScsICdlbnRyaWVzJywgJ2ZvckVhY2gnLCAnZ2V0JywgJ2hhcycsICdr
ZXlzJywgJ3NldCcsICdzaXplJywgJ3ZhbHVlcyddCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9kb20vc3RyaW5nLXByb3RvdHlwZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL2RvbS9zdHJpbmctcHJvdG90eXBlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGZlNjEyNDE4MTNiNjdjNWY1OGFiZGIyMmZhMGQ5ODJkZjQwNDFmZjkuLmIyZjkwNmVkZDJlOTQ4
MDA2OTAxOGMxMWJmYWE3ZDBkNzk1Y2NjOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2Rv
bS9zdHJpbmctcHJvdG90eXBlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2pzL2RvbS9zdHJpbmctcHJvdG90eXBlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0x
NCw3ICsxNCw3IEBAIFBBU1MgU3RyaW5nLnByb3RvdHlwZS5tYXRjaC5jYWxsKHVuZGVmaW5lZCwg
LzIrLykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU3RyCiBQQVNTIFN0cmluZy5wcm90b3R5
cGUucmVwbGFjZS5jYWxsKHVuZGVmaW5lZCwgLzIrLywgJy0nKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBTdHJpbmcucHJvdG90eXBlLnNlYXJjaC5jYWxsKHVu
ZGVmaW5lZCwgJzQnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTdHJpbmcucHJvdG90eXBl
LnNlYXJjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgdW5kZWZpbmVkLgogUEFTUyBTdHJp
bmcucHJvdG90eXBlLnNsaWNlLmNhbGwodW5kZWZpbmVkLCAxLCAzKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBTdHJpbmcucHJvdG90eXBlLnNwbGl0LmNhbGwo
dW5kZWZpbmVkLCAnMicpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFN0cmluZy5wcm90b3R5
cGUuc3BsaXQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZC4KK1BBU1MgU3Ry
aW5nLnByb3RvdHlwZS5zcGxpdC5jYWxsKHVuZGVmaW5lZCwgJzInKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBTdHJpbmcucHJvdG90eXBlLnNsaWNlLmNhbGwo
dW5kZWZpbmVkLCAxLCAzKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgog
UEFTUyBTdHJpbmcucHJvdG90eXBlLnN1YnN0ci5jYWxsKHVuZGVmaW5lZCwgMSwgMykgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgU3RyaW5nLnByb3RvdHlwZS5z
dWJzdHJpbmcuY2FsbCh1bmRlZmluZWQsIDEsIDMpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1w
cm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
N2NkNjZjOTdlMzA5MDEyYzFmNjAxOTAzZmRlYzM3MDMyNzE2ZTI3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVn
ZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5
cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDEyM2I1NzhlZjYxYjQ1MTg0YmFlMDkxMzk5NTg5YjA0NmJiNzVjZjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9y
ZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4
cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmODhmMzE1YzNhZDBjZjQ2NTg5NTg3ODYx
YjcyZTQ3NGQxZWI3MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotSlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzMgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNl
cHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90
eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMy
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNTJiNjRlOTRlZTAwYzY3NmUy
NGFmNTExM2RmMGYwNDEzMWJiZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNlYXJj
aC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Jl
Z2V4cC1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiZTJlZjdjMGE0YmJiNjlmMmQyZjZkMWMxNDY4MWIzYTI2MjAxOWRhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvcmVnZXhw
LXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cwotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2E0NzkxYTNlZTVjMDkzMDkzYWE1MDQ0NjdkZjYxMTA4NTNiNGNlMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHMyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVn
ZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2M2MTk5MTQ3YjlmZmE5MjNhOWEwZjJl
Mzg3YmQyNDJlZGY0NWRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotSlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMyCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0ODJiYTU5NDcwOGU1ZDg1YzllY2Nm
ZmEzNmIyMjQwZWU2MTA5ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBA
QAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVnZXhw
LXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jl
Z2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZmxhZ3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MTFjNGUzZWM0NjIzZWYxNTRhYjg0ODljMWNjMjU4MjVhOGJhZGU1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0czMtZmxhZ3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAot
SlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMz
LWZsYWdzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMz
LWZsYWdzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZTllM2Y2NGQ3NjUz
ZjJhMTE0MzdjYmRjZGU1ZDcxMGM0MDM3MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
ZmxhZ3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLWdsb2JhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Jl
Z2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwNThmN2U4ZDI0MGI3NjNi
ODUzZWYxMTI5N2I3YjZmYzMwY2I1MzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9iYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQt
b2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1n
bG9iYWwuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM1YTFiNWUxZGQwZWE4OTc1NTJhZjQ4NGMwZWNhYmYxNDU2OGI4ZDUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
My1nbG9iYWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNWVmZDFlZDIzOWU5MjliY2MxNDBkODViNTcwYTc1MzIwZDVk
YmZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtaWdub3JlQ2FzZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtaWdub3JlQ2FzZQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdl
eHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1pZ25vcmVDYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjFiYzNhNDczM2YwMWYwYjk1NTcxNGI1NTNjNWExZmMwYTkxYTFmNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWln
bm9yZUNhc2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4
cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQt
b2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2ODQ3MDg5NmZhN2JhNTVhNjlhZjU0NmZhYmMwMWVhYzk4
YmU1NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzMy1tdWx0aWxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotSlNSZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLW11bHRpbGluZQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdl
eHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUuaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZh
YmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY5ZTg3MmNjMGFkNTBlZmUwZjdiNTNmMjU4NDIwNTJiZTIxMDJiMTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0
aWxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQt
b2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZh
YmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWNlNGY1NmU4ZDIyN2NmMmViZjQxZTQzMzc1NDEyOGRkMDc2MzJkOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMz
LXN0aWNreS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1Jl
Z3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3Rp
Y2t5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0
aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNreS5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1z
dGlja3kuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgyZGJhZDE5NjNiMzk1
OGY1MDUwYTM1NzA1ZDFjNWEyNjEyZGI1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNreS5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
c3RpY2t5LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lk
ZS1lZmZlY3RzMy11bmljb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
cmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtdW5pY29kZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1MDllN2UxM2ZjOWZi
ZTUxMDUzYTI2YTUwNjNlYjM1YzMwMmM3OTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVj
dHMzLXVuaWNvZGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlw
ZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtdW5pY29kZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5MmVlMGUxYWUxNDYzOTZiMTI2NTUyOWFkNjhhM2M1M2M4NjMy
ZTc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtdW5pY29kZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmVnZXhwLXByb3Rv
dHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtdW5pY29kZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
cmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzNC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDc2ZjQ2MDY2NjYwOTAzYmQ2OGUzMjg4ZGIxYmEyODg2MDc1ZjYyM2EuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvcmVnZXhw
LXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQKLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czQuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvcmVnZXhwLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjE2NjA1NjcwZjA1ZWNmNTkxN2I0MTk3YzYzYWQwYzAwYWY2Mjg1My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzNC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5
cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MWY2MjhlMzkxMzgy
ZDMzYmM5ZmU1ODFmNzdhNzFhMDM4Njk5ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVn
ZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwyODEgKzAsMCBAQAotLy9AIHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0
KHRlc3RlZFZhbHVlLCBtc2cpIHsKLSAgICBpZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJv
dyBFcnJvcihtc2cpOwotfQotCi0vLyBSZWdFeHAgc3ViY2xhc3Mgc2hvdWxkIG5vdCBiZSBhYmxl
IHRvIG92ZXJyaWRlIGxhc3RJbmRleC4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2Vz
ID0gW107Ci0gICAgY2xhc3MgU3ViUmVnRXhwIGV4dGVuZHMgUmVnRXhwIHsKLSAgICAgICAgZ2V0
IGxhc3RJbmRleCgpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImdldExhc3RJbmRleCIp
OwotICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmxhc3RJbmRleDsKLSAgICAgICAgfQotICAgICAg
ICBzZXQgbGFzdEluZGV4KG5ld0luZGV4KSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJz
ZXRMYXN0SW5kZXgiKTsKLSAgICAgICAgICAgIHN1cGVyLmxhc3RJbmRleCA9IG5ld0luZGV4Owot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgbGV0IG9iaiA9IG5ldyBTdWJSZWdFeHAoL3JjaC8pOwot
Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIG92ZXJy
aWRlIGxhc3RJbmRleCIpOwotICAgIGxldCByZXN1bHQgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJv
bC5zZWFyY2hdLmNhbGwob2JqLCAic2VhcmNobWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0g
IiIsICJTaG91bGQgbm90IGJlIGFibGUgdG8gb3ZlcnJpZGUgbGFzdEluZGV4Iik7Ci0gICAgYXNz
ZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyBSZWdF
eHAgc3ViY2xhc3Mgb3ZlcnJpZGluZyBleGVjLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNj
ZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBTdWJSZWdFeHAgZXh0ZW5kcyBSZWdFeHAgewotICAgICAg
ICBleGVjKHN0cikgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZXhlYyIpOwotICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyLmV4ZWMoc3RyKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxl
dCBvYmogPSBuZXcgU3ViUmVnRXhwKC9yY2gvKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAi
IiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3Vs
dCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uY2FsbChvYmosICJzZWFyY2htZSIp
OwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZXhlYyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBu
b3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09PSAzLCAiVW5leHBl
Y3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0gCi0vLyBBbnkgb2JqZWN0IHdpdGggY3VzdG9tIHByb3Rv
dHlwZSBvdmVycmlkaW5nIGxhc3RJbmRleC4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vz
c2VzID0gW107Ci0gICAgbGV0IFRlc3RSZWdFeHBQcm90byA9IHsKLSAgICAgICAgZ2V0IGxhc3RJ
bmRleCgpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImdldExhc3RJbmRleCIpOwotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2V4Lmxhc3RJbmRleDsKLSAgICAgICAgfSwKLSAgICAg
ICAgc2V0IGxhc3RJbmRleChuZXdJbmRleCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgi
c2V0TGFzdEluZGV4Iik7Ci0gICAgICAgICAgICB0aGlzLl9yZWdleC5sYXN0SW5kZXggPSBuZXdJ
bmRleDsKLSAgICAgICAgfSwKLSAgICB9Ci0gICAgVGVzdFJlZ0V4cFByb3RvLl9fcHJvdG9fXyA9
IFJlZ0V4cC5wcm90b3R5cGU7Ci0KLSAgICBsZXQgVGVzdFJlZ0V4cCA9IGZ1bmN0aW9uKHJlZ2V4
KSB7Ci0gICAgICAgIHRoaXMuX3JlZ2V4ID0gbmV3IFJlZ0V4cChyZWdleCk7Ci0gICAgfQotICAg
IFRlc3RSZWdFeHAucHJvdG90eXBlID0gVGVzdFJlZ0V4cFByb3RvOwotICAgIFRlc3RSZWdFeHBQ
cm90by5jb25zdHJ1Y3RvciA9IFRlc3RSZWdFeHA7Ci0KLSAgICBsZXQgb2JqID0gbmV3IFRlc3RS
ZWdFeHAoL3JjaC8pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBj
YWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICB0cnkgewotICAgICAgICBSZWdFeHAucHJv
dG90eXBlW1N5bWJvbC5zZWFyY2hdLmNhbGwob2JqLCAic2VhcmNobWUiKTsKLSAgICAgICAgYXNz
ZXJ0KGZhbHNlLCAiRXJyb3Igbm90IHRocm93biIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgYXNzZXJ0KGUudG9TdHJpbmcoKSA9PSAiVHlwZUVycm9yOiBCdWlsdGluIFJlZ0V4cCBleGVj
IGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiLAotICAgICAgICAgICAgIlVu
ZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZSIpOwotICAgIH0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0g
ImdldExhc3RJbmRleCxzZXRMYXN0SW5kZXgiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1h
dGNoIGV4cGVjdGF0aW9uIik7Ci19KSgpOwotCi0vLyBBbnkgb2JqZWN0IHdpdGggY3VzdG9tIHBy
b3RvdHlwZSBvdmVycmlkaW5nIGV4ZWMuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3Nl
cyA9IFtdOwotICAgIGxldCBUZXN0UmVnRXhwUHJvdG8gPSB7Ci0gICAgICAgIGV4ZWMoc3RyKSB7
Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICByZXR1cm4g
dGhpcy5fcmVnZXguZXhlYyhzdHIpOwotICAgICAgICB9Ci0gICAgfQotICAgIFRlc3RSZWdFeHBQ
cm90by5fX3Byb3RvX18gPSBSZWdFeHAucHJvdG90eXBlOwotCi0gICAgbGV0IFRlc3RSZWdFeHAg
PSBmdW5jdGlvbihyZWdleCkgewotICAgICAgICB0aGlzLl9yZWdleCA9IG5ldyBSZWdFeHAocmVn
ZXgpOwotICAgIH0KLSAgICBUZXN0UmVnRXhwLnByb3RvdHlwZSA9IFRlc3RSZWdFeHBQcm90bzsK
LSAgICBUZXN0UmVnRXhwUHJvdG8uY29uc3RydWN0b3IgPSBUZXN0UmVnRXhwOwotCi0gICAgbGV0
IG9iaiA9IG5ldyBUZXN0UmVnRXhwKC9yY2gvKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAi
IiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3Vs
dCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uY2FsbChvYmosICJzZWFyY2htZSIp
OwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZXhlYyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBu
b3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09PSAzLCAiVW5leHBl
Y3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIDIgbGV2ZWxzIG9mIFJlZ0V4cCBzdWJjbGFzc2Vz
IHdpdGggdGhlIG1pZGRsZSBwYXJlbnQgb3ZlcnJpZGluZyBleGVjLgotKGZ1bmN0aW9uICgpIHsK
LSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBSZWdFeHBCIGV4dGVuZHMgUmVnRXhw
IHsKLSAgICAgICAgZXhlYyhzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImV4ZWMi
KTsKLSAgICAgICAgICAgIHJldHVybiBzdXBlci5leGVjKHN0cik7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgY2xhc3MgUmVnRXhwQyBleHRlbmRzIFJlZ0V4cEIgeyB9Ci0KLSAgICBhc3NlcnQoUmVn
RXhwQi5fX3Byb3RvX18gPT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoUmVnRXhwQy5fX3Byb3RvX18g
PT0gUmVnRXhwQik7Ci0KLSAgICBsZXQgb2JqID0gbmV3IFJlZ0V4cEMoL3JjaC8pOwotCi0gICAg
YXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJv
cHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5j
YWxsKG9iaiwgInNlYXJjaG1lIik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJleGVjIiwgIlBy
b3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChy
ZXN1bHQgPT09IDMsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotLy8gMiBsZXZlbHMg
b2YgUmVnRXhwIHN1YmNsYXNzZXMgd2l0aCBzdWJzdGl0dXRlZCBwcm90b3R5cGUgYmVmb3JlIGlu
c3RhbnRpYXRpb24uCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotCi0g
ICAgY2xhc3MgQiBleHRlbmRzIFJlZ0V4cCB7IH0KLSAgICBjbGFzcyBDIGV4dGVuZHMgQiB7IH0K
LQotICAgIGFzc2VydChCLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoQy5fX3By
b3RvX18gPT09IEIpOwotICAgIGFzc2VydChCLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4
cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IEIucHJv
dG90eXBlKTsKLQotICAgIGxldCBYID0gZnVuY3Rpb24gKCkge30KLSAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoWC5wcm90b3R5cGUsICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24o
c3RyKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gL3JjaC8uZXhlYyhzdHIpOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KFgucHJvdG90eXBlLCAibGFzdEluZGV4IiwgewotICAgICAgICBnZXQ6IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZ2V0TGFzdEluZGV4Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfSwKLSAgICAgICAgc2V0OiBmdW5jdGlvbih2
YWx1ZSkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgic2V0TGFzdEluZGV4Iik7Ci0gICAg
ICAgIH0KLSAgICB9KTsKLQotICAgIC8vIE1vbmtleSB3aXRoIHRoZSBwcm90b3R5cGUgY2hhaW4g
YmVmb3JlIGluc3RhbnRpYXRpbmcgQy4KLSAgICBYLl9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBY
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBSZWdFeHAucHJvdG90eXBlOwotICAgIEMuX19wcm90b19f
ID0gWDsKLSAgICBDLnByb3RvdHlwZS5fX3Byb3RvX18gPSBYLnByb3RvdHlwZTsKLQotICAgIGFz
c2VydChYLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoQy5fX3Byb3RvX18gPT09
IFgpOwotICAgIGFzc2VydChYLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4cC5wcm90b3R5
cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFgucHJvdG90eXBlKTsK
LQotICAgIGxldCBvYmogPSBuZXcgQygpOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAi
dW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0g
UmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5jYWxsKG9iaiwgInNlYXJjaG1lIik7Ci0g
ICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJnZXRMYXN0SW5kZXgsc2V0TGFzdEluZGV4LGV4ZWMsc2V0
TGFzdEluZGV4IiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIp
OwotICAgIGFzc2VydChyZXN1bHQgPT09IDMsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsK
LQotLy8gMiBsZXZlbHMgb2YgUmVnRXhwIHN1YmNsYXNzZXMgd2l0aCBzdWJzdGl0dXRlZCBwcm90
b3R5cGUgYWZ0ZXIgaW5zdGFudGlhdGlvbi4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vz
c2VzID0gW107Ci0KLSAgICBjbGFzcyBCIGV4dGVuZHMgUmVnRXhwIHsgfQotICAgIGNsYXNzIEMg
ZXh0ZW5kcyBCIHsgfQotCi0gICAgYXNzZXJ0KEIuX19wcm90b19fID09PSBSZWdFeHApOwotICAg
IGFzc2VydChDLl9fcHJvdG9fXyA9PT0gQik7Ci0gICAgYXNzZXJ0KEIucHJvdG90eXBlLl9fcHJv
dG9fXyA9PT0gUmVnRXhwLnByb3RvdHlwZSk7Ci0gICAgYXNzZXJ0KEMucHJvdG90eXBlLl9fcHJv
dG9fXyA9PT0gQi5wcm90b3R5cGUpOwotCi0gICAgbGV0IG9iaiA9IG5ldyBDKCk7Ci0KLSAgICBs
ZXQgWCA9IGZ1bmN0aW9uICgpIHt9Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFgucHJvdG90
eXBlLCAiZXhlYyIsIHsKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHN0cikgewotICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaCgiZXhlYyIpOwotICAgICAgICAgICAgcmV0dXJuIC9yY2gvLmV4ZWMo
c3RyKTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYLnBy
b3RvdHlwZSwgImxhc3RJbmRleCIsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGFjY2Vzc2VzLnB1c2goImdldExhc3RJbmRleCIpOwotICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgIH0sCi0gICAgICAgIHNldDogZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAg
ICAgIGFjY2Vzc2VzLnB1c2goInNldExhc3RJbmRleCIpOwotICAgICAgICB9Ci0gICAgfSk7Ci0K
LSAgICAvLyBNb25rZXkgd2l0aCB0aGUgcHJvdG90eXBlIGNoYWluIGFmdGVyIGluc3RhbnRpYXRp
bmcgQy4KLSAgICBYLl9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBYLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBSZWdFeHAucHJvdG90eXBlOwotICAgIEMuX19wcm90b19fID0gWDsKLSAgICBDLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBYLnByb3RvdHlwZTsKLQotICAgIGFzc2VydChYLl9fcHJvdG9fXyA9
PT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoQy5fX3Byb3RvX18gPT09IFgpOwotICAgIGFzc2VydChY
LnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChD
LnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFgucHJvdG90eXBlKTsKLQotICAgIGFzc2VydChhY2Nl
c3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAg
bGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uY2FsbChvYmosICJz
ZWFyY2htZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZXhlYyIsICJQcm9wZXJ0eSBhY2Nl
c3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09PSAz
LCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIDIgbGV2ZWxzIG9mIFJlZ0V4cCBz
dWJjbGFzc2VzIHdpdGggcHJveGllZCBwcm90b3R5cGUuCi0oZnVuY3Rpb24gKCkgewotICAgIGxl
dCBhY2Nlc3NlcyA9IFtdOwotCi0gICAgY2xhc3MgQiBleHRlbmRzIFJlZ0V4cCB7IH07Ci0KLSAg
ICBhc3NlcnQoQi5fX3Byb3RvX18gPT09IFJlZ0V4cCk7Ci0gICAgYXNzZXJ0KEIucHJvdG90eXBl
Ll9fcHJvdG9fXyA9PT0gUmVnRXhwLnByb3RvdHlwZSk7Ci0KLSAgICBsZXQgcHJveHkgPSBuZXcg
UHJveHkoUmVnRXhwLnByb3RvdHlwZSwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKG9iaiwgcHJv
cCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZ2V0XyIgKyBwcm9wLnRvU3RyaW5nKCkp
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBwcm94eUV4ZWMoc3RyKSB7Ci0gICAgICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaCgiZXhlYyIpOwotICAgICAgICAgICAgICAgIHJldHVybiAvcmNoLy5l
eGVjKHN0cik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChwcm9wID09PSAiZXhl
YyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHByb3h5RXhlYzsKLSAgICAgICAgICAgIHJldHVy
biBvYmpbcHJvcF07Ci0gICAgICAgIH0sCi0gICAgICAgIHNldDogZnVuY3Rpb24ob2JqLCBwcm9w
LCB2YWx1ZSkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgic2V0XyIgKyBwcm9wLnRvU3Ry
aW5nKCkpOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgQi5wcm90b3R5cGUuX19wcm90b19fID0g
cHJveHk7Ci0KLSAgICBsZXQgb2JqID0gbmV3IEIoKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9
PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJl
c3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uY2FsbChvYmosICJzZWFyY2ht
ZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZ2V0X2V4ZWMsZXhlYyIsICJQcm9wZXJ0eSBh
Y2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09
PSAzLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIFByb3hpZWQgUmVnRXhwIG9i
c2VydmluZyBldmVyeSBnZXQuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtd
OwotICAgIGxldCByZWdleHAgPSBuZXcgUmVnRXhwKC9yY2gvKTsKLSAgICBsZXQgcHJveHkgPSBu
ZXcgUHJveHkocmVnZXhwLCB7Ci0gICAgICAgIGdldChvYmosIHByb3ApIHsKLSAgICAgICAgICAg
IGFjY2Vzc2VzLnB1c2gocHJvcC50b1N0cmluZygpKTsKLSAgICAgICAgICAgIGlmIChwcm9wID09
ICJleGVjIikgewotICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihzdHIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG9iai5leGVjKHN0cik7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9ialtwcm9wXTsKLSAgICAgICAgfQot
ICAgIH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRv
IG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtT
eW1ib2wuc2VhcmNoXS5jYWxsKHByb3h5LCAic2VhcmNobWUiKTsKLSAgICBhc3NlcnQoYWNjZXNz
ZXMudG9TdHJpbmcoKSA9PSAibGFzdEluZGV4LGV4ZWMiLCAiUHJveHkgbm90IGFibGUgdG8gb2Jz
ZXJ2ZSBzb21lIGdldHMiKTsKLSAgICBhc3NlcnQocmVzdWx0ID09PSAzLCAiVW5leHBlY3RlZCBy
ZXN1bHQiKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIu
anMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBl
LXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQyY2JlYjAzMzFlZjA5MmVlZDA2NWQ3NmVlNzM2YzhlNTc0Y2RlNWIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLy9AIHJ1bkRl
ZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3RlZFZhbHVlLCBtc2cpIHsKLSAgICBpZiAoIXRl
c3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJvcihtc2cpOwotfQotCi0vLyBSZWdFeHAucHJv
dG90eXBlIHdpdGggb3ZlcnJpZGRlbiBleGVjLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNj
ZXNzZXMgPSBbXTsKLSAgICBsZXQgb3JpZ0V4ZWMgPSBSZWdFeHAucHJvdG90eXBlLmV4ZWM7Ci0K
LSAgICBsZXQgb2JqID0gL3JjaC87Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cC5w
cm90b3R5cGUsICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oc3RyKSB7Ci0gICAg
ICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICByZXR1cm4gb3JpZ0V4
ZWMuY2FsbCh0aGlzLCBzdHIpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnQoYWNj
ZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAg
IGxldCByZXN1bHQgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zZWFyY2hdLmNhbGwob2JqLCAi
c2VhcmNobWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImV4ZWMiLCAiUHJvcGVydHkgYWNj
ZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0g
MywgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
cmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2NDRkZjYyN2M5YWQxMmYwYmU2ZjljZDhmMjc5NTBj
NTkxZmRjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0
LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDA2ICswLDAg
QEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNnKSB7
Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0KLQot
Ly8gU3ViY2xhc3Mgd2l0aCBvdmVycmlkZGVuIFtAQHNwZWNpZXNdOiBUZXN0aW5nIEVTNiAyMS4y
LjUuMTE6IDQuIExldCBDIGJlID8gU3BlY2llc0NvbnN0cnVjdG9yKHJ4LCAlUmVnRXhwJSkuCi0o
ZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgIGNsYXNzIFRlc3RSZWdF
eHAgZXh0ZW5kcyBSZWdFeHAgeyB9Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRlc3RSZWdF
eHAsIFN5bWJvbC5zcGVjaWVzLCB7Ci0gICAgICAgIHZhbHVlOiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGFjY2Vzc2VzLnB1c2goU3ltYm9sLnNwZWNpZXMudG9TdHJpbmcoKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gL2l0L3k7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gbmV3
IFRlc3RSZWdFeHAoL2l0Lyk7Ci0gICAgbGV0IGVycm9yU3RyOwotCi0gICAgYXNzZXJ0KGFjY2Vz
c2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBs
ZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3Bs
aXRtZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5zcGVjaWVzKSIs
ICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3Nl
cnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8v
IFJlZ0V4cCBzdWJjbGFzcyB3aXRoIGNvbnN0cnVjdG9yOiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6
IDQuIExldCBDIGJlID8gU3BlY2llc0NvbnN0cnVjdG9yKHJ4LCAlUmVnRXhwJSkuCi0oZnVuY3Rp
b24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgIGNsYXNzIFRlc3RSZWdFeHAgZXh0
ZW5kcyBSZWdFeHAgewotICAgICAgICBjb25zdHJ1Y3RvcihzdHIsIGZsYWdzKSB7Ci0gICAgICAg
ICAgICBzdXBlcihzdHIsIGZsYWdzKTsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImNvbnN0
cnVjdG9yIik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgbGV0IG9iaiA9IG5ldyBUZXN0UmVnRXhw
KCJpdCIpOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJjb25zdHJ1Y3RvciIsICJ1bmV4cGVj
dGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSBSZWdFeHAu
cHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChvYmosICJzcGxpdG1lIik7Ci0gICAgYXNzZXJ0
KGFjY2Vzc2VzID09ICJjb25zdHJ1Y3Rvcixjb25zdHJ1Y3RvciIsICJQcm9wZXJ0eSBhY2Nlc3Nl
cyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGws
bWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIEFuIG9iamVjdCB3aXRoIHNw
ZWNpZXMgY29uc3RydWN0b3I6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNC4gTGV0IEMgYmUgPyBT
cGVjaWVzQ29uc3RydWN0b3IocngsICVSZWdFeHAlKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0
IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9iaiA9IHsgY29uc3RydWN0b3I6IHt9IH07Ci0gICAg
b2JqLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBh
Y2Nlc3Nlcy5wdXNoKCJjb25zdHJ1Y3RvciIpOwotICAgICAgICByZXR1cm4gL2l0L3k7Ci0gICAg
fTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVy
cmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9s
LnNwbGl0XS5jYWxsKG9iaiwgInNwbGl0bWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImNv
bnN0cnVjdG9yIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIp
OwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwot
fSkoKTsKLQotLy8gUmVnRXhwIG9iamVjdCB3aXRoIG92ZXJyaWRkZW4gZmxhZ3M6IFRlc3Rpbmcg
RVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJmbGFn
cyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGZsYWdzID0gWyAiZmxhZ3MiLCAiZ2xvYmFs
IiwgImlnbm9yZUNhc2UiLCAibXVsdGlsaW5lIiwgInN0aWNreSIsICJ1bmljb2RlIiBdOwotICAg
IGxldCBmbGFnVmFsdWVzID0gWyAiIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
IF07Ci0gICAgZm9yIChsZXQgaW5kZXggaW4gZmxhZ3MpIHsKLSAgICAgICAgKGZ1bmN0aW9uKGZs
YWcsIGZsYWdWYWx1ZSkgewotICAgICAgICAgICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgICAg
ICAgICBsZXQgb2JqID0gL2l0LzsKLSAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosIGZsYWcsIHsKLSAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKGZsYWcpOwotICAgICAgICAgICAgICAgICAgICBwYXNz
ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ1ZhbHVlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBhc3NlcnQoYWNjZXNz
ZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5jYWxsKG9i
aiwgInNwbGl0bWUiKTsKLSAgICAgICAgICAgIGFzc2VydChhY2Nlc3NlcyA9PSBmbGFnLCAiUHJv
cGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgICAgICAgICBh
c3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLSAgICAgICAg
fSkgKGZsYWdzW2luZGV4XSwgZmxhZ1ZhbHVlc1tpbmRleF0pOwotICAgIH0KLX0pKCk7Ci0KLS8v
IFJlZ0V4cCBzdWJjbGFzcyB3aXRoIG92ZXJyaWRkZW4gZmxhZ3MgaW4gc3ViY2xhc3MgbWV0aG9k
OiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0
KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBmbGFncyA9IFsgImZsYWdz
IiwgImdsb2JhbCIsICJpZ25vcmVDYXNlIiwgIm11bHRpbGluZSIsICJzdGlja3kiLCAidW5pY29k
ZSIgXTsKLSAgICBsZXQgZmxhZ1ZhbHVlcyA9IFsgIiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSBdOwotICAgIGZvciAobGV0IGluZGV4IGluIGZsYWdzKSB7Ci0gICAgICAgIChm
dW5jdGlvbihmbGFnLCBmbGFnVmFsdWUpIHsKLSAgICAgICAgICAgIGxldCBhY2Nlc3NlcyA9IFtd
OwotICAgICAgICAgICAgY2xhc3MgVGVzdFJlZ0V4cCBleHRlbmRzIFJlZ0V4cCB7Ci0gICAgICAg
ICAgICAgICAgZ2V0IFtmbGFnXSgpIHsKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzZXMucHVz
aChmbGFnKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgbGV0IG9iaiA9IG5ldyBUZXN0
UmVnRXhwKC9pdC8pOwotCi0gICAgICAgICAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4
cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgICAgICAgICAgbGV0IHJlc3Vs
dCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5jYWxsKG9iaiwgInNwbGl0bWUiKTsK
LSAgICAgICAgICAgIGFzc2VydChhY2Nlc3NlcyA9PSBmbGFnLCAiUHJvcGVydHkgYWNjZXNzZXMg
ZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVzdWx0ID09
ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLQotICAgICAgICB9KSAoZmxhZ3NbaW5k
ZXhdLCBmbGFnVmFsdWVzW2luZGV4XSk7Ci0gICAgfQotfSkoKTsKLQotLy8gUmVnRXhwIHN1YmNs
YXNzIHdpdGggb3ZlcnJpZGRlbiBmbGFncyB1c2luZyBPYmplY3QuZGVmaW5lUHJvcGVydHk6IFRl
c3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngs
ICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGZsYWdzID0gWyAiZmxhZ3MiLCAi
Z2xvYmFsIiwgImlnbm9yZUNhc2UiLCAibXVsdGlsaW5lIiwgInN0aWNreSIsICJ1bmljb2RlIiBd
OwotICAgIGxldCBmbGFnVmFsdWVzID0gWyAiIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlIF07Ci0gICAgZm9yIChsZXQgaW5kZXggaW4gZmxhZ3MpIHsKLSAgICAgICAgKGZ1bmN0
aW9uKGZsYWcsIGZsYWdWYWx1ZSkgewotICAgICAgICAgICAgbGV0IGFjY2Vzc2VzID0gW107Ci0g
ICAgICAgICAgICBjbGFzcyBUZXN0UmVnRXhwIGV4dGVuZHMgUmVnRXhwIHsgfTsKLSAgICAgICAg
ICAgIGxldCBvYmogPSBuZXcgVGVzdFJlZ0V4cCgvaXQvKTsKLQotICAgICAgICAgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KG9iaiwgZmxhZywgewotICAgICAgICAgICAgICAgIGdldDogZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goZmxhZyk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmbGFnVmFsdWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0
ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0g
UmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3BsaXRtZSIpOwotICAg
ICAgICAgICAgYXNzZXJ0KGFjY2Vzc2VzID09IGZsYWcsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBu
b3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICAgICAgICAgIGFzc2VydChyZXN1bHQgPT0gInNw
bCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotCi0gICAgICAgIH0pIChmbGFnc1tpbmRleF0s
IGZsYWdWYWx1ZXNbaW5kZXhdKTsKLSAgICB9Ci19KSgpOwotCi0vLyBBbnkgb2JqZWN0IHdpdGgg
c3BlY2llcyBjb25zdHJ1Y3RvcjogVGVzdGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3Mg
YmUgPyBUb1N0cmluZyg/IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBs
ZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQgb2JqID0geyBjb25zdHJ1Y3Rvcjoge30gfTsKLSAg
ICBvYmouY29uc3RydWN0b3JbU3ltYm9sLnNwZWNpZXNdID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGFjY2Vzc2VzLnB1c2goImNvbnN0cnVjdG9yIik7Ci0gICAgICAgIHJldHVybiAvaXQveTsKLSAg
ICB9OwotCi0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgImZsYWdzIiwgewotICAgICAg
ICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZmxhZ3MiKTsK
LSAgICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgYXNzZXJ0
KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsK
LSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2Jq
LCAic3BsaXRtZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZmxhZ3MsY29uc3RydWN0b3Ii
LCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNz
ZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0v
LyBBbnkgb2JqZWN0IHdpdGggY3VzdG9tIHByb3RvdHlwZTogVGVzdGluZyBFUzYgMjEuMi41LjEx
OiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0
aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQgVGVzdFJlZ0V4cFByb3Rv
ID0gewotICAgICAgICBnZXQgZmxhZ3MoKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJm
bGFncyIpOwotICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgICB9LAotICAgICAgICB0b1N0
cmluZygpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goInRvU3RyaW5nIik7Ci0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5fcmVnZXgudG9TdHJpbmcoKTsKLSAgICAgICAgfSwKLSAgICAgICAg
Z2V0IHNvdXJjZSgpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goInNvdXJjZSIpOwotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2V4LnNvdXJjZTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICBUZXN0UmVnRXhwUHJvdG8uX19wcm90b19fID0gUmVnRXhwLnByb3RvdHlwZTsKLQotICAgIGxl
dCBUZXN0UmVnRXhwID0gZnVuY3Rpb24ocmVnZXgpIHsKLSAgICAgICAgYWNjZXNzZXMucHVzaCgi
Y29uc3RydWN0b3IiKTsKLSAgICAgICAgdGhpcy5fcmVnZXggPSBuZXcgUmVnRXhwKHJlZ2V4KTsK
LSAgICB9Ci0gICAgVGVzdFJlZ0V4cC5wcm90b3R5cGUgPSBUZXN0UmVnRXhwUHJvdG87Ci0gICAg
VGVzdFJlZ0V4cFByb3RvLmNvbnN0cnVjdG9yID0gVGVzdFJlZ0V4cDsKLQotICAgIGxldCBvYmog
PSBuZXcgVGVzdFJlZ0V4cCgvaXQvKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiY29uc3Ry
dWN0b3IiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQg
cmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3BsaXRt
ZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiY29uc3RydWN0b3IsZmxhZ3Msc291cmNlIiwg
IlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2Vy
dChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotLy8g
MiBsZXZlbHMgb2Ygc3ViY2xhc3NlczogVGVzdGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxh
Z3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAg
ICBsZXQgYWNjZXNzZXMgPSBbXTsKLQotICAgIGNsYXNzIFJlZ0V4cEIgZXh0ZW5kcyBSZWdFeHAg
ewotICAgICAgICBnZXQgZmxhZ3MoKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJmbGFn
cyIpOwotICAgICAgICAgICAgcmV0dXJuICIiOwotICAgICAgICB9Ci0gICAgfQotICAgIGNsYXNz
IFJlZ0V4cEMgZXh0ZW5kcyBSZWdFeHBCIHsgfQotCi0gICAgYXNzZXJ0KFJlZ0V4cEIuX19wcm90
b19fID09IFJlZ0V4cCk7Ci0gICAgYXNzZXJ0KFJlZ0V4cEMuX19wcm90b19fID09IFJlZ0V4cEIp
OwotCi0gICAgbGV0IG9iaiA9IG5ldyBSZWdFeHBDKC9pdC8pOwotCi0gICAgYXNzZXJ0KGFjY2Vz
c2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBs
ZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3Bs
aXRtZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZmxhZ3MiLCAiUHJvcGVydHkgYWNjZXNz
ZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3Bs
LG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyAyIGxldmVscyBvZiBzdWJj
bGFzc2VzIHdpdGggc3Vic3RpdHV0ZWQgcHJvdG90eXBlIGJlZm9yZSBpbnN0YW50aWF0aW9uOiBU
ZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0KHJ4
LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotCi0g
ICAgY2xhc3MgQiBleHRlbmRzIFJlZ0V4cCB7IH0KLSAgICBjbGFzcyBDIGV4dGVuZHMgQiB7IH0K
LQotICAgIGFzc2VydChCLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoQy5fX3By
b3RvX18gPT09IEIpOwotICAgIGFzc2VydChCLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4
cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IEIucHJv
dG90eXBlKTsKLQotICAgIGxldCBYID0gZnVuY3Rpb24gKCkge30KLSAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoWC5wcm90b3R5cGUsICJmbGFncyIsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImZsYWdzIik7Ci0gICAgICAgICAgICByZXR1
cm4gIiI7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoWC5w
cm90b3R5cGUsICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oc3RyKSB7Ci0gICAg
ICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICB2YXIgbWF0Y2hSZXN1
bHQgPSAvaXQveS5leGVjKHN0ci5zdWJzdHIodGhpcy5sYXN0SW5kZXgpKTsKLSAgICAgICAgICAg
IGlmIChtYXRjaFJlc3VsdCkKLSAgICAgICAgICAgICAgICB0aGlzLmxhc3RJbmRleCArPSAyOyAv
LyBsZW5ndGggb2YgIml0Ii4KLSAgICAgICAgICAgIHJldHVybiBtYXRjaFJlc3VsdDsKLSAgICAg
ICAgfQotICAgIH0pOwotCi0gICAgLy8gTW9ua2V5IHdpdGggdGhlIHByb3RvdHlwZSBjaGFpbiBi
ZWZvcmUgaW5zdGFudGlhdGluZyBDLgotICAgIFguX19wcm90b19fID0gUmVnRXhwOwotICAgIFgu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFJlZ0V4cC5wcm90b3R5cGU7Ci0gICAgQy5fX3Byb3RvX18g
PSBYOwotICAgIEMucHJvdG90eXBlLl9fcHJvdG9fXyA9IFgucHJvdG90eXBlOwotCi0gICAgYXNz
ZXJ0KFguX19wcm90b19fID09PSBSZWdFeHApOwotICAgIGFzc2VydChDLl9fcHJvdG9fXyA9PT0g
WCk7Ci0gICAgYXNzZXJ0KFgucHJvdG90eXBlLl9fcHJvdG9fXyA9PT0gUmVnRXhwLnByb3RvdHlw
ZSk7Ci0gICAgYXNzZXJ0KEMucHJvdG90eXBlLl9fcHJvdG9fXyA9PT0gWC5wcm90b3R5cGUpOwot
Ci0gICAgbGV0IG9iaiA9IG5ldyBDOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5l
eHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gUmVn
RXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3BsaXRtZSIpOwotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiZmxhZ3MsZXhlYyxleGVjLGV4ZWMsZXhlYyxleGVjLGV4ZWMiLCAi
UHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0
KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyAy
IGxldmVscyBvZiBzdWJjbGFzc2VzIHdpdGggc3Vic3RpdHV0ZWQgcHJvdG90eXBlIGFmdGVyIGlu
c3RhbnRpYXRpb246IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9T
dHJpbmcoPyBHZXQocngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vz
c2VzID0gW107Ci0KLSAgICBjbGFzcyBCIGV4dGVuZHMgUmVnRXhwIHsgfQotICAgIGNsYXNzIEMg
ZXh0ZW5kcyBCIHsgfQotCi0gICAgYXNzZXJ0KEIuX19wcm90b19fID09PSBSZWdFeHApOwotICAg
IGFzc2VydChDLl9fcHJvdG9fXyA9PT0gQik7Ci0gICAgYXNzZXJ0KEIucHJvdG90eXBlLl9fcHJv
dG9fXyA9PT0gUmVnRXhwLnByb3RvdHlwZSk7Ci0gICAgYXNzZXJ0KEMucHJvdG90eXBlLl9fcHJv
dG9fXyA9PT0gQi5wcm90b3R5cGUpOwotCi0gICAgbGV0IFggPSBmdW5jdGlvbiAoKSB7fQotICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYLnByb3RvdHlwZSwgImZsYWdzIiwgewotICAgICAgICBn
ZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZmxhZ3MiKTsKLSAg
ICAgICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgfQotICAgIH0pOwotICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eShYLnByb3RvdHlwZSwgImV4ZWMiLCB7Ci0gICAgICAgIHZhbHVlOiBmdW5jdGlv
bihzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImV4ZWMiKTsKLSAgICAgICAgICAg
IHZhciBtYXRjaFJlc3VsdCA9IC9pdC95LmV4ZWMoc3RyLnN1YnN0cih0aGlzLmxhc3RJbmRleCkp
OwotICAgICAgICAgICAgaWYgKG1hdGNoUmVzdWx0KQotICAgICAgICAgICAgICAgIHRoaXMubGFz
dEluZGV4ICs9IDI7IC8vIGxlbmd0aCBvZiAiaXQiLgotICAgICAgICAgICAgcmV0dXJuIG1hdGNo
UmVzdWx0OwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICAvLyBJbnN0YW50aWF0ZSBDIGJlZm9y
ZSBtb25rZXlpbmcgd2l0aCB0aGUgcHJvdG90eXBlIGNoYWluLgotICAgIGxldCBvYmogPSBuZXcg
QygpOwotCi0gICAgWC5fX3Byb3RvX18gPSBSZWdFeHA7Ci0gICAgWC5wcm90b3R5cGUuX19wcm90
b19fID0gUmVnRXhwLnByb3RvdHlwZTsKLSAgICBDLl9fcHJvdG9fXyA9IFg7Ci0gICAgQy5wcm90
b3R5cGUuX19wcm90b19fID0gWC5wcm90b3R5cGU7Ci0KLSAgICBhc3NlcnQoWC5fX3Byb3RvX18g
PT09IFJlZ0V4cCk7Ci0gICAgYXNzZXJ0KEMuX19wcm90b19fID09PSBYKTsKLSAgICBhc3NlcnQo
WC5wcm90b3R5cGUuX19wcm90b19fID09PSBSZWdFeHAucHJvdG90eXBlKTsKLSAgICBhc3NlcnQo
Qy5wcm90b3R5cGUuX19wcm90b19fID09PSBYLnByb3RvdHlwZSk7Ci0KLSAgICBhc3NlcnQoYWNj
ZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAg
IGxldCByZXN1bHQgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChvYmosICJz
cGxpdG1lIik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJmbGFncyxleGVjLGV4ZWMsZXhlYyxl
eGVjLGV4ZWMsZXhlYyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRp
b24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQi
KTsKLX0pKCk7Ci0KLS8vIDIgbGV2ZWxzIG9mIHN1YmNsYXNzZXMgd2l0aCBwcm94aWVkIHByb3Rv
dHlwZTogVGVzdGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/
IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBb
XTsKLQotICAgIGNsYXNzIEIgZXh0ZW5kcyBSZWdFeHAgeyB9OwotCi0gICAgYXNzZXJ0KEIuX19w
cm90b19fID09PSBSZWdFeHApOwotICAgIGFzc2VydChCLnByb3RvdHlwZS5fX3Byb3RvX18gPT09
IFJlZ0V4cC5wcm90b3R5cGUpOwotCi0gICAgbGV0IHByb3h5ID0gbmV3IFByb3h5KFJlZ0V4cC5w
cm90b3R5cGUsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbihvYmosIHByb3ApIHsKLSAgICAgICAg
ICAgIGFjY2Vzc2VzLnB1c2gocHJvcC50b1N0cmluZygpKTsKLSAgICAgICAgICAgIGlmIChwcm9w
ID09PSAiZXhlYyIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oc3RyKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImluX2V4ZWMiKTsKLSAgICAgICAgICAg
ICAgICAgICAgdmFyIG1hdGNoUmVzdWx0ID0gL2l0L3kuZXhlYyhzdHIuc3Vic3RyKHRoaXMubGFz
dEluZGV4KSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaFJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMubGFzdEluZGV4ICs9IDI7IC8vIGxlbmd0aCBvZiAiaXQiLgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hSZXN1bHQ7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9ialtwcm9wXTsKLSAgICAgICAg
fQotICAgIH0pOwotICAgIEIucHJvdG90eXBlLl9fcHJvdG9fXyA9IHByb3h5OwotCi0gICAgbGV0
IG9iaiA9IG5ldyBCKCk7Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVk
IGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSBSZWdFeHAucHJv
dG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChvYmosICJzcGxpdG1lIik7Ci0gICAgYXNzZXJ0KGFj
Y2Vzc2VzID09ICJmbGFncyxTeW1ib2woU3ltYm9sLm1hdGNoKSxleGVjLGluX2V4ZWMsZXhlYyxp
bl9leGVjLGV4ZWMsaW5fZXhlYyxleGVjLGluX2V4ZWMsZXhlYyxpbl9leGVjLGV4ZWMsaW5fZXhl
YyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBh
c3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0K
LS8vIFJlZ0V4cCBzdWJjbGFzcyB3aXRoIG92ZXJyaWRkZW4gZXhlYzogVGVzdGluZyBFUzYgMjEu
Mi41LjExOiAxOS5iLiBMZXQgeiBiZSA/IFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpLgotKGZ1bmN0
aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBUZXN0UmVnRXhwIGV4
dGVuZHMgUmVnRXhwIHsKLSAgICAgICAgZXhlYyhzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2Vz
LnB1c2goImV4ZWMiKTsKLSAgICAgICAgICAgIHJldHVybiBSZWdFeHAucHJvdG90eXBlLmV4ZWMu
Y2FsbCh0aGlzLCBzdHIpOwotICAgICAgICB9Ci0gICAgfTsKLSAgICBsZXQgb2JqID0gbmV3IFRl
c3RSZWdFeHAoL2l0Lyk7Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVk
IGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSBSZWdFeHAucHJv
dG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChvYmosICJzcGxpdG1lIik7Ci0gICAgYXNzZXJ0KGFj
Y2Vzc2VzID09ICJleGVjLGV4ZWMsZXhlYyxleGVjLGV4ZWMsZXhlYyIsICJQcm9wZXJ0eSBhY2Nl
c3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJz
cGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIFByb3hpZWQgUmVnRXhw
IG9ic2VydmluZyBldmVyeSBnZXQuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9
IFtdOwotICAgIGxldCByZWdleHAgPSBuZXcgUmVnRXhwKC9pdC8pOwotICAgIGxldCBwcm94eSA9
IG5ldyBQcm94eShyZWdleHAsIHsKLSAgICAgICAgZ2V0KG9iaiwgcHJvcCkgewotICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaChwcm9wLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuIG9i
altwcm9wXTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIi
LCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0
ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwocHJveHksICJzcGxpdG1lIik7
Ci0gICAgLy8gTm90ZTogQEBzcGxpdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBSZWdF
eHAgdXNpbmcgaXRzIEBAc3BlY2llcywgYW5kIHBlcmZvcm1zCi0gICAgLy8gdGhlIHNwbGl0IG9w
ZXJhdGlvbiB3aXRoIHRoYXQgbmV3IGluc3RhbmNlLiBIZW5jZSwgdGhlIHByb3h5IGlzIG9ubHkg
YWJsZSB0byBvYnNlcnZlCi0gICAgLy8gZ2V0cyB1cCB0byB0aGUgY3JlYXRpb24gb2YgdGhlIG5l
dyBpbnN0YW5jZS4KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImNvbnN0cnVjdG9yLGZsYWdzLFN5
bWJvbChTeW1ib2wubWF0Y2gpLHNvdXJjZSIsCi0gICAgICAgICJQcm94eSBub3QgYWJsZSB0byBv
YnNlcnZlIHNvbWUgZ2V0cyIpOwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4
cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotLy8gUHJveGllZCBSZWdFeHAgKHdpdGhvdXQgQEBt
YXRjaCkgb2JzZXJ2aW5nIGV2ZXJ5IGdldC4KLS8vIFRoaXMgaXMgdG8gZm9yY2UgdGhlIFJlZ0V4
cCBAc3BlY2llcyBjb25zdHJ1Y3RvciB0byBhY2Nlc3Mgc291cmNlLgotKGZ1bmN0aW9uICgpIHsK
LSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQgcmVnZXhwID0gbmV3IFJlZ0V4cCgvaXQv
KTsKLSAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkocmVnZXhwLCB7Ci0gICAgICAgIGdldChvYmos
IHByb3ApIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2gocHJvcC50b1N0cmluZygpKTsKLSAg
ICAgICAgICAgIGlmIChwcm9wID09IFN5bWJvbC5tYXRjaCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgcmV0dXJuIG9ialtwcm9wXTsKLSAgICAgICAgfQot
ICAgIH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRv
IG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtT
eW1ib2wuc3BsaXRdLmNhbGwocHJveHksICJzcGxpdG1lIik7Ci0gICAgLy8gTm90ZTogQEBzcGxp
dCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBSZWdFeHAgdXNpbmcgaXRzIEBAc3BlY2ll
cywgYW5kIHBlcmZvcm1zCi0gICAgLy8gdGhlIHNwbGl0IG9wZXJhdGlvbiB3aXRoIHRoYXQgbmV3
IGluc3RhbmNlLiBIZW5jZSwgdGhlIHByb3h5IGlzIG9ubHkgYWJsZSB0byBvYnNlcnZlCi0gICAg
Ly8gZ2V0cyB1cCB0byB0aGUgY3JlYXRpb24gb2YgdGhlIG5ldyBpbnN0YW5jZS4KLSAgICBhc3Nl
cnQoYWNjZXNzZXMgPT0gImNvbnN0cnVjdG9yLGZsYWdzLFN5bWJvbChTeW1ib2wubWF0Y2gpLFN5
bWJvbChTeW1ib2wudG9QcmltaXRpdmUpLHRvU3RyaW5nLHNvdXJjZSxmbGFncyIsCi0gICAgICAg
ICJQcm94eSBub3QgYWJsZSB0byBvYnNlcnZlIHNvbWUgZ2V0cyIpOwotICAgIC8vIFRoZSBuZXcg
aW5zdGFuY2Ugb2YgdGhlIFJlZ0V4cCB3b3VsZCBoYXZlIGJlZW4gY29uc3RydWN0ZWQgd2l0aCB0
aGUgcGF0dGVybiBmcm9tCi0gICAgLy8gdGhlIHByb3h5IHRvU3RyaW5nKCkgaS5lLiAiXC9sdFwv
IiBpbnN0ZWFkIG9mIHNvdXJjZSwgYmVjYXVzZSB0aGUgcHJveHkgaXMgYW4KLSAgICAvLyBvYmpl
Y3Qgd2l0aG91dCBhIFtAQG1hdGNoXSBwcm9wZXJ0eS4KLSAgICBhc3NlcnQocmVzdWx0ID09ICJz
cGxpdG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzMi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjQ3ODY0ZWYzMmY0NzA1NzQwNTUxMmU4
MjAyMWE1ZTQzNGU2OGYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotLy9AIHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3RlZFZhbHVl
LCBtc2cpIHsKLSAgICBpZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJvcihtc2cp
OwotfQotCi0vLyBSZWdFeHAgd2l0aCBvdmVycmlkZGVuIFtAQHNwZWNpZXNdOiBUZXN0aW5nIEVT
NiAyMS4yLjUuMTE6IDQuIExldCBDIGJlID8gU3BlY2llc0NvbnN0cnVjdG9yKHJ4LCAlUmVnRXhw
JSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgIGxldCBvcmln
RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLCBTeW1i
b2wuc3BlY2llcyk7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cCwgU3ltYm9sLnNw
ZWNpZXMsIHsKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNz
ZXMucHVzaChTeW1ib2wuc3BlY2llcy50b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiAv
aXQveTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGxldCBvYmogPSBuZXcgUmVnRXhwOwotICAg
IGxldCBlcnJvclN0cjsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQg
Y2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90
b3R5cGVbU3ltYm9sLnNwbGl0XS5jYWxsKG9iaiwgInNwbGl0bWUiKTsKLSAgICBhc3NlcnQoYWNj
ZXNzZXMgPT0gIlN5bWJvbChTeW1ib2wuc3BlY2llcykiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8g
bm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwg
IlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0czMtZmxhZ3MuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODljYmZmYTNkNjFkMmNhYWY1ZDdhNDMy
Mzc4OTJiYWZhZTJkYmVlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncy5qcworKysgL2Rldi9udWxs
CkBAIC0xLDI4ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0
ZWRWYWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJy
b3IobXNnKTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlwZSB3aXRoIG92ZXJyaWRkZW4gZmxhZ3M6
IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQo
cngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGZsYWcgPSAiZmxhZ3MiOwot
ICAgIGxldCBmbGFnVmFsdWUgPSAiIjsKLQotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgIGxl
dCBvcmlnRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhw
LnByb3RvdHlwZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVnRXhwLnBy
b3RvdHlwZSwgZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
YWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBmbGFnVmFsdWU7Ci0gICAg
ICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAgIGFzc2VydChhY2Nlc3Nl
cyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0
IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5jYWxsKG9iaiwgInNwbGl0
bWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gZmxhZywgIlByb3BlcnR5IGFjY2Vzc2VzIGRv
IG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIs
ICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMzLWdsb2JhbC5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2Jh
bC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI2N2IyNTUwZjFiMzljNzUxYmQ1
MmI2ZmFiNGFhNTNhYmYzMGQ2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9iYWwuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwyOCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBhc3NlcnQo
dGVzdGVkVmFsdWUsIG1zZykgewotICAgIGlmICghdGVzdGVkVmFsdWUpCi0gICAgICAgIHRocm93
IEVycm9yKG1zZyk7Ci19Ci0KLS8vIFJlZ0V4cC5wcm90b3R5cGUgd2l0aCBvdmVycmlkZGVuIGZs
YWdzOiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8g
R2V0KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBmbGFnID0gImdsb2Jh
bCI7Ci0gICAgbGV0IGZsYWdWYWx1ZSA9IGZhbHNlOwotCi0gICAgbGV0IGFjY2Vzc2VzID0gW107
Ci0gICAgbGV0IG9yaWdEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihSZWdFeHAucHJvdG90eXBlLCBmbGFnKTsKLQotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShS
ZWdFeHAucHJvdG90eXBlLCBmbGFnLCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBhY2Nlc3Nlcy5wdXNoKGZsYWcpOwotICAgICAgICAgICAgcmV0dXJuIGZsYWdWYWx1
ZTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGxldCBvYmogPSAvaXQvOwotCi0gICAgYXNzZXJ0
KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsK
LSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmNhbGwob2Jq
LCAic3BsaXRtZSIpOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSBmbGFnLCAiUHJvcGVydHkgYWNj
ZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAi
c3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMzLWlnbm9yZUNhc2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmYzg2
NDBkYTk5NjEwNDc4ZmQxNWFlMDI1MDkzYjI0YjEzZDA4ZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdu
b3JlQ2FzZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0
Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRW
YWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlw
ZSB3aXRoIG92ZXJyaWRkZW4gZmxhZ3M6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZs
YWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0g
ICAgbGV0IGZsYWcgPSAiaWdub3JlQ2FzZSI7Ci0gICAgbGV0IGZsYWdWYWx1ZSA9IGZhbHNlOwot
Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9yaWdEZXNjcmlwdG9yID0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJvdG90eXBlLCBmbGFnKTsKLQotICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWdFeHAucHJvdG90eXBlLCBmbGFnLCB7Ci0gICAgICAg
IGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKGZsYWcpOwotICAg
ICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGxldCBv
YmogPSAvaXQvOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxs
IHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gUmVnRXhwLnByb3RvdHlw
ZVtTeW1ib2wuc3BsaXRdLmNhbGwob2JqLCAic3BsaXRtZSIpOwotICAgIGFzc2VydChhY2Nlc3Nl
cyA9PSBmbGFnLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7
Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19
KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVn
ZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLmpz
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZThmYzI2ODlkZDgzZTE2YjczNmFjMDY3MjZlNTczN2VjOTc4MGFm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw
LDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNn
KSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0K
LQotLy8gUmVnRXhwLnByb3RvdHlwZSB3aXRoIG92ZXJyaWRkZW4gZmxhZ3M6IFRlc3RpbmcgRVM2
IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJmbGFncyIp
KS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGZsYWcgPSAibXVsdGlsaW5lIjsKLSAgICBsZXQg
ZmxhZ1ZhbHVlID0gZmFsc2U7Ci0KLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQgb3Jp
Z0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90
b3R5cGUsIGZsYWcpOwotCi0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4cC5wcm90b3R5
cGUsIGZsYWcsIHsKLSAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFjY2Vz
c2VzLnB1c2goZmxhZyk7Ci0gICAgICAgICAgICByZXR1cm4gZmxhZ1ZhbHVlOwotICAgICAgICB9
Ci0gICAgfSk7Ci0gICAgbGV0IG9iaiA9IC9pdC87Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0g
IiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1
bHQgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChvYmosICJzcGxpdG1lIik7
Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09IGZsYWcsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3Qg
bWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5l
eHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy1zdGlja3kuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9y
ZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlja3kuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlZDk1NjAyMjFmOWU5M2Q1N2ZmYmE3MGU5
MzM0OTkwNTRhYWI4NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlw
ZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5LmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjggKzAsMCBAQAotLy9AIHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3Rl
ZFZhbHVlLCBtc2cpIHsKLSAgICBpZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJv
cihtc2cpOwotfQotCi0vLyBSZWdFeHAucHJvdG90eXBlIHdpdGggb3ZlcnJpZGRlbiBmbGFnczog
VGVzdGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChy
eCwgImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgZmxhZyA9ICJzdGlja3kiOwot
ICAgIGxldCBmbGFnVmFsdWUgPSBmYWxzZTsKLQotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAg
IGxldCBvcmlnRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVn
RXhwLnByb3RvdHlwZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVnRXhw
LnByb3RvdHlwZSwgZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBmbGFnVmFsdWU7Ci0g
ICAgICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAgIGFzc2VydChhY2Nl
c3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAg
bGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5jYWxsKG9iaiwgInNw
bGl0bWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gZmxhZywgIlByb3BlcnR5IGFjY2Vzc2Vz
IGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxt
ZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHMzLXVuaWNvZGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9yZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11
bmljb2RlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjEyOTA4NjY1YTQwZTZi
ZTkyZjRmZGUwNzIzZDBkMDhjZGE4ZDNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4
cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXVuaWNvZGUuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBh
c3NlcnQodGVzdGVkVmFsdWUsIG1zZykgewotICAgIGlmICghdGVzdGVkVmFsdWUpCi0gICAgICAg
IHRocm93IEVycm9yKG1zZyk7Ci19Ci0KLS8vIFJlZ0V4cC5wcm90b3R5cGUgd2l0aCBvdmVycmlk
ZGVuIGZsYWdzOiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3Ry
aW5nKD8gR2V0KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBmbGFnID0g
InVuaWNvZGUiOwotICAgIGxldCBmbGFnVmFsdWUgPSBmYWxzZTsKLQotICAgIGxldCBhY2Nlc3Nl
cyA9IFtdOwotICAgIGxldCBvcmlnRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoUmVnRXhwLnByb3RvdHlwZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoUmVnRXhwLnByb3RvdHlwZSwgZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBm
bGFnVmFsdWU7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAg
IGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHBy
b3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5j
YWxsKG9iaiwgInNwbGl0bWUiKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gZmxhZywgIlByb3Bl
cnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1
bHQgPT0gInNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3JlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkNmUwZTIzOTA0OTU3MzU0NmZh
Nzc3YzBiYmI1ZWYyYmYyNzY5YzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvcmVnZXhwLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBhc3NlcnQodGVzdGVk
VmFsdWUsIG1zZykgewotICAgIGlmICghdGVzdGVkVmFsdWUpCi0gICAgICAgIHRocm93IEVycm9y
KG1zZyk7Ci19Ci0KLS8vIFJlZ0V4cC5wcm90b3R5cGUgd2l0aCBvdmVycmlkZGVuIGV4ZWM6IFRl
c3RpbmcgRVM2IDIxLjIuNS4xMTogMTkuYi4gTGV0IHogYmUgPyBSZWdFeHBFeGVjKHNwbGl0dGVy
LCBTKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9y
aWdEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJv
dG90eXBlLCAiZXhlYyIpOwotICAgIGxldCBvcmlnRXhlYyA9IG9yaWdEZXNjcmlwdG9yLnZhbHVl
OwotCi0gICAgbGV0IG9iaiA9IC9pdC87Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlZ0V4
cC5wcm90b3R5cGUsICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oc3RyKSB7Ci0g
ICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICByZXR1cm4gb3Jp
Z0V4ZWMuY2FsbCh0aGlzLCBzdHIpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICAvLyBUaGUg
QEBzcGxpdCBzbG93IHBhdGggc2hvdWxkIG9ubHkgY2FsbCB0aGUgaW50ZXJuYWwgdmVyc2lvbiBv
ZiBzdWJzdHIuIE1ha2Ugc3VyZQotICAgIC8vIHRoYXQgaXQncyBub3QgY2FsbGluZyB0aGUgcHVi
bGljIHZlcnNpb24gd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4uCi0gICAgU3RyaW5nLnByb3RvdHlw
ZS5zdWJzdHIgPSBmdW5jdGlvbihzdGFydCwgbGVuZ3RoKSB7Ci0gICAgICAgIHRocm93IEVycm9y
KCJTaG91bGQgbm90IGNhbGwgb3ZlcnJpZGRlbiBzdWJzdHIiKTsKLSAgICB9Ci0KLSAgICAvLyBU
aGUgQEBzcGxpdCBzbG93IHBhdGggc2hvdWxkIG9ubHkgY2FsbCB0aGUgaW50ZXJuYWwgdmVyc2lv
biBvZiBpbmNsdWRlcy4gTWFrZSBzdXJlCi0gICAgLy8gdGhhdCBpdCdzIG5vdCBjYWxsaW5nIHRo
ZSBwdWJsaWMgdmVyc2lvbiB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbi4KLSAgICBTdHJpbmcucHJv
dG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24ocGF0dGVybikgewotICAgICAgICB0aHJvdyBFcnJv
cigiU2hvdWxkIG5vdCBjYWxsIG92ZXJyaWRkZW4gaW5jbHVkZXMiKTsKLSAgICB9Ci0KLSAgICBh
c3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9w
cyIpOwotICAgIGxldCByZXN1bHQgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2Fs
bChvYmosICJzcGxpdG1lIik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJleGVjLGV4ZWMsZXhl
YyxleGVjLGV4ZWMsZXhlYyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0
YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1
bHQiKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5qcyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc2Vh
cmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiNWRhOGYzNmMwMTVjNDlkMjM0YjRmNjYwNjUyNzY0YTRkNTBiYmU3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzc5ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0
Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRW
YWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0KLQotLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLy8gVGVzdGluZyB0aGUgc3RyaW5nIHRoYXQgd2UncmUgY2FsbGluZyBz
ZWFyY2ggb24uCi0KLS8vIFByb3hpZWQgU3RyaW5nIHN1YmNsYXNzLgotKGZ1bmN0aW9uICgpIHsK
LSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBFeHRTdHJpbmcgZXh0ZW5kcyBTdHJp
bmcgeyB9Ci0gICAgdmFyIG9iaiA9IG5ldyBFeHRTdHJpbmcoInNlYXJjaG1lIik7Ci0gICAgdmFy
IHByb3h5ID0gbmV3IFByb3h5KG9iaiwgewotICAgICAgICBnZXQob2JqLCBwcm9wKSB7Ci0gICAg
ICAgICAgICBhY2Nlc3Nlcy5wdXNoKHByb3AudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAo
cHJvcCA9PT0gInRvU3RyaW5nIikgewotICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiaW5fdG9TdHJpbmciKTsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iai50b1N0cmluZygpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBvYmpbcHJvcF07Ci0gICAgICAg
IH0KLSAgICB9KTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2Fs
bCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9IFN0cmluZy5wcm90b3R5
cGUuc2VhcmNoLmNhbGwocHJveHksICJyY2giKTsgICAgCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09
ICJTeW1ib2woU3ltYm9sLnRvUHJpbWl0aXZlKSx0b1N0cmluZyxpbl90b1N0cmluZyIsICJQcm9w
ZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVz
dWx0ID09PSAzLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIE9iamVjdCB0aGF0
IGxvb2tzIGxpa2UgYSBzdHJpbmcuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9
IFtdOwotICAgIHZhciBvYmogPSB7Ci0gICAgICAgIFtTeW1ib2wudG9QcmltaXRpdmVdKCkgewot
ICAgICAgICAgICAgYWNjZXNzZXMucHVzaChTeW1ib2wudG9QcmltaXRpdmUudG9TdHJpbmcoKSk7
Ci0gICAgICAgICAgICByZXR1cm4gInNlYXJjaG1lIjsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHBy
b3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9IFN0cmluZy5wcm90b3R5cGUuc2VhcmNoLmNhbGwob2Jq
LCAicmNoIik7ICAgIAotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC50b1By
aW1pdGl2ZSkiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7
Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwot
Ci0vLyBPYmplY3QgdGhhdCBsb29rcyBsaWtlIGEgc3RyaW5nLgotKGZ1bmN0aW9uICgpIHsKLSAg
ICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICB2YXIgb2JqID0gewotICAgICAgICB0b1N0cmluZygp
IHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goInRvU3RyaW5nIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gInNlYXJjaG1lIjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGFzc2VydChhY2Nlc3Nl
cyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0
IHJlc3VsdCA9IFN0cmluZy5wcm90b3R5cGUuc2VhcmNoLmNhbGwob2JqLCAicmNoIik7ICAgIAot
ICAgIGFzc2VydChhY2Nlc3NlcyA9PSAidG9TdHJpbmciLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8g
bm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhw
ZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyBTdHJpbmcgc3ViY2xhc3Mgd2l0aCBvdmVycmlk
ZGVuIEBAc2VhcmNoLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAg
ICBjbGFzcyBFeHRTdHJpbmcgZXh0ZW5kcyBTdHJpbmcgewotICAgICAgICBbU3ltYm9sLnNlYXJj
aF0gKHN0cikgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiU3ltYm9sKFN5bWJvbC5zZWFy
Y2gpIik7Ci0gICAgICAgICAgICByZXR1cm4gL3JjaC9bU3ltYm9sLnNlYXJjaF0oc3RyKTsKLSAg
ICAgICAgfQotICAgIH07Ci0KLSAgICB2YXIgb2JqID0gbmV3IEV4dFN0cmluZzsKLQotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3Bz
Iik7Ci0gICAgbGV0IHJlc3VsdCA9ICJzZWFyY2htZSIuc2VhcmNoKG9iaik7ICAgIAotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5zZWFyY2gpIiwgIlByb3BlcnR5IGFjY2Vz
c2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMs
ICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotCi0vLyBPYmplY3Qgd2l0aCBvdmVycmlk
ZGVuIEBAc2VhcmNoLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAg
ICB2YXIgb2JqID0gewotICAgICAgICBbU3ltYm9sLnNlYXJjaF0gKHN0cikgewotICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaCgiU3ltYm9sKFN5bWJvbC5zZWFyY2gpIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gL3JjaC9bU3ltYm9sLnNlYXJjaF0oc3RyKTsKLSAgICAgICAgfSwKLSAgICB9Ci0KLSAg
ICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBw
cm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic2VhcmNobWUiLnNlYXJjaChvYmopOwotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5zZWFyY2gpIiwgIlByb3BlcnR5IGFjY2Vz
c2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMs
ICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotCi0vLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0vLyBUZXN0aW5nIHRoZSByZWdleHAgb2JqZWN0IHRoYXQgd2UncmUgY2FsbGlu
ZyBzZWFyY2ggd2l0aC4KLQotLy8gUmVnRXhwIHN1YmNsYXNzIHNob3VsZCBub3QgYmUgYWJsZSB0
byBvdmVycmlkZSBsYXN0SW5kZXguCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9
IFtdOwotICAgIGNsYXNzIFN1YlJlZ0V4cCBleHRlbmRzIFJlZ0V4cCB7Ci0gICAgICAgIGdldCBs
YXN0SW5kZXgoKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJnZXRMYXN0SW5kZXgiKTsK
LSAgICAgICAgICAgIHJldHVybiBzdXBlci5sYXN0SW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAg
c2V0IGxhc3RJbmRleChuZXdJbmRleCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgic2V0
TGFzdEluZGV4Iik7Ci0gICAgICAgICAgICBzdXBlci5sYXN0SW5kZXggPSBuZXdJbmRleDsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGxldCBvYmogPSBuZXcgU3ViUmVnRXhwKC9yY2gvKTsKLQot
ICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgIlNob3VsZCBub3QgYmUgYWJsZSB0byBvdmVycmlk
ZSBsYXN0SW5kZXgiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNlYXJjaG1lIi5zZWFyY2gob2JqKTsK
LSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJTaG91bGQgbm90IGJlIGFibGUgdG8gb3ZlcnJp
ZGUgbGFzdEluZGV4Iik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVz
dWx0Iik7Ci19KSgpOwotCi0vLyBSZWdFeHAgc3ViY2xhc3Mgb3ZlcnJpZGluZyBleGVjLgotKGZ1
bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBTdWJSZWdFeHAg
ZXh0ZW5kcyBSZWdFeHAgewotICAgICAgICBleGVjKHN0cikgewotICAgICAgICAgICAgYWNjZXNz
ZXMucHVzaCgiZXhlYyIpOwotICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmV4ZWMoc3RyKTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGxldCBvYmogPSBuZXcgU3ViUmVnRXhwKC9yY2gvKTsKLQot
ICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVu
IHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJzZWFyY2htZSIuc2VhcmNoKG9iaik7Ci0gICAg
YXNzZXJ0KGFjY2Vzc2VzID09ICJleGVjIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRj
aCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMsICJVbmV4cGVjdGVkIHJl
c3VsdCIpOwotfSkoKTsKLSAKLS8vIEFueSBvYmplY3Qgd2l0aCBjdXN0b20gcHJvdG90eXBlIG92
ZXJyaWRpbmcgbGFzdEluZGV4LgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBb
XTsKLSAgICBsZXQgVGVzdFJlZ0V4cFByb3RvID0gewotICAgICAgICBnZXQgbGFzdEluZGV4KCkg
ewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZ2V0TGFzdEluZGV4Iik7Ci0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcmVnZXgubGFzdEluZGV4OwotICAgICAgICB9LAotICAgICAgICBzZXQg
bGFzdEluZGV4KG5ld0luZGV4KSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJzZXRMYXN0
SW5kZXgiKTsKLSAgICAgICAgICAgIHRoaXMuX3JlZ2V4Lmxhc3RJbmRleCA9IG5ld0luZGV4Owot
ICAgICAgICB9LAotICAgIH0KLSAgICBUZXN0UmVnRXhwUHJvdG8uX19wcm90b19fID0gUmVnRXhw
LnByb3RvdHlwZTsKLQotICAgIGxldCBUZXN0UmVnRXhwID0gZnVuY3Rpb24ocmVnZXgpIHsKLSAg
ICAgICAgdGhpcy5fcmVnZXggPSBuZXcgUmVnRXhwKHJlZ2V4KTsKLSAgICB9Ci0gICAgVGVzdFJl
Z0V4cC5wcm90b3R5cGUgPSBUZXN0UmVnRXhwUHJvdG87Ci0gICAgVGVzdFJlZ0V4cFByb3RvLmNv
bnN0cnVjdG9yID0gVGVzdFJlZ0V4cDsKLQotICAgIGxldCBvYmogPSBuZXcgVGVzdFJlZ0V4cCgv
cmNoLyk7Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8g
b3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIHRyeSB7Ci0gICAgICAgIGxldCByZXN1bHQgPSAic2Vh
cmNobWUiLnNlYXJjaChvYmopOwotICAgICAgICBhc3NlcnQoZmFsc2UsICJFcnJvciBub3QgdGhy
b3duIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBhc3NlcnQoZS50b1N0cmluZygpID09
ICJUeXBlRXJyb3I6IEJ1aWx0aW4gUmVnRXhwIGV4ZWMgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEg
UmVnRXhwIG9iamVjdCIsCi0gICAgICAgICAgICAiVW5leHBlY3RlZCBlcnJvciBtZXNzYWdlIik7
Ci0gICAgfQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZ2V0TGFzdEluZGV4LHNldExhc3RJbmRl
eCIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLX0pKCk7
Ci0KLS8vIEFueSBvYmplY3Qgd2l0aCBjdXN0b20gcHJvdG90eXBlIG92ZXJyaWRpbmcgZXhlYy4K
LShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IFRlc3RSZWdF
eHBQcm90byA9IHsKLSAgICAgICAgZXhlYyhzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1
c2goImV4ZWMiKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWdleC5leGVjKHN0cik7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgVGVzdFJlZ0V4cFByb3RvLl9fcHJvdG9fXyA9IFJlZ0V4cC5w
cm90b3R5cGU7Ci0KLSAgICBsZXQgVGVzdFJlZ0V4cCA9IGZ1bmN0aW9uKHJlZ2V4KSB7Ci0gICAg
ICAgIHRoaXMuX3JlZ2V4ID0gbmV3IFJlZ0V4cChyZWdleCk7Ci0gICAgfQotICAgIFRlc3RSZWdF
eHAucHJvdG90eXBlID0gVGVzdFJlZ0V4cFByb3RvOwotICAgIFRlc3RSZWdFeHBQcm90by5jb25z
dHJ1Y3RvciA9IFRlc3RSZWdFeHA7Ci0KLSAgICBsZXQgb2JqID0gbmV3IFRlc3RSZWdFeHAoL3Jj
aC8pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92
ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNlYXJjaG1lIi5zZWFyY2gob2Jq
KTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImV4ZWMiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8g
bm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhw
ZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyAyIGxldmVscyBvZiBSZWdFeHAgc3ViY2xhc3Nl
cyB3aXRoIHRoZSBtaWRkbGUgcGFyZW50IG92ZXJyaWRpbmcgZXhlYy4KLShmdW5jdGlvbiAoKSB7
Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgY2xhc3MgUmVnRXhwQiBleHRlbmRzIFJlZ0V4
cCB7Ci0gICAgICAgIGV4ZWMoc3RyKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVj
Iik7Ci0gICAgICAgICAgICByZXR1cm4gc3VwZXIuZXhlYyhzdHIpOwotICAgICAgICB9Ci0gICAg
fQotICAgIGNsYXNzIFJlZ0V4cEMgZXh0ZW5kcyBSZWdFeHBCIHsgfQotCi0gICAgYXNzZXJ0KFJl
Z0V4cEIuX19wcm90b19fID09IFJlZ0V4cCk7Ci0gICAgYXNzZXJ0KFJlZ0V4cEMuX19wcm90b19f
ID09IFJlZ0V4cEIpOwotCi0gICAgbGV0IG9iaiA9IG5ldyBSZWdFeHBDKC9yY2gvKTsKLQotICAg
IGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHBy
b3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJzZWFyY2htZSIuc2VhcmNoKG9iaik7Ci0gICAgYXNz
ZXJ0KGFjY2Vzc2VzID09ICJleGVjIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBl
eHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMsICJVbmV4cGVjdGVkIHJlc3Vs
dCIpOwotfSkoKTsKLQotLy8gMiBsZXZlbHMgb2YgUmVnRXhwIHN1YmNsYXNzZXMgd2l0aCBzdWJz
dGl0dXRlZCBwcm90b3R5cGUgYmVmb3JlIGluc3RhbnRpYXRpb24uCi0oZnVuY3Rpb24gKCkgewot
ICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotCi0gICAgY2xhc3MgQiBleHRlbmRzIFJlZ0V4cCB7IH0K
LSAgICBjbGFzcyBDIGV4dGVuZHMgQiB7IH0KLQotICAgIGFzc2VydChCLl9fcHJvdG9fXyA9PT0g
UmVnRXhwKTsKLSAgICBhc3NlcnQoQy5fX3Byb3RvX18gPT09IEIpOwotICAgIGFzc2VydChCLnBy
b3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnBy
b3RvdHlwZS5fX3Byb3RvX18gPT09IEIucHJvdG90eXBlKTsKLQotICAgIGxldCBYID0gZnVuY3Rp
b24gKCkge30KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoWC5wcm90b3R5cGUsICJleGVjIiwg
ewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oc3RyKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5w
dXNoKCJleGVjIik7Ci0gICAgICAgICAgICByZXR1cm4gL3JjaC8uZXhlYyhzdHIpOwotICAgICAg
ICB9Ci0gICAgfSk7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFgucHJvdG90eXBlLCAibGFz
dEluZGV4IiwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNz
ZXMucHVzaCgiZ2V0TGFzdEluZGV4Iik7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
fSwKLSAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAgYWNjZXNzZXMu
cHVzaCgic2V0TGFzdEluZGV4Iik7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIC8vIE1vbmtl
eSB3aXRoIHRoZSBwcm90b3R5cGUgY2hhaW4gYmVmb3JlIGluc3RhbnRpYXRpbmcgQy4KLSAgICBY
Ll9fcHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBYLnByb3RvdHlwZS5fX3Byb3RvX18gPSBSZWdFeHAu
cHJvdG90eXBlOwotICAgIEMuX19wcm90b19fID0gWDsKLSAgICBDLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBYLnByb3RvdHlwZTsKLQotICAgIGFzc2VydChYLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsK
LSAgICBhc3NlcnQoQy5fX3Byb3RvX18gPT09IFgpOwotICAgIGFzc2VydChYLnByb3RvdHlwZS5f
X3Byb3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5f
X3Byb3RvX18gPT09IFgucHJvdG90eXBlKTsKLQotICAgIGxldCBvYmogPSBuZXcgQygpOwotCi0g
ICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4g
cHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNlYXJjaG1lIi5zZWFyY2gob2JqKTsKLSAgICBh
c3NlcnQoYWNjZXNzZXMgPT0gImdldExhc3RJbmRleCxzZXRMYXN0SW5kZXgsZXhlYyxzZXRMYXN0
SW5kZXgiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0g
ICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0v
LyAyIGxldmVscyBvZiBSZWdFeHAgc3ViY2xhc3NlcyB3aXRoIHN1YnN0aXR1dGVkIHByb3RvdHlw
ZSBhZnRlciBpbnN0YW50aWF0aW9uLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMg
PSBbXTsKLQotICAgIGNsYXNzIEIgZXh0ZW5kcyBSZWdFeHAgeyB9Ci0gICAgY2xhc3MgQyBleHRl
bmRzIEIgeyB9Ci0KLSAgICBhc3NlcnQoQi5fX3Byb3RvX18gPT09IFJlZ0V4cCk7Ci0gICAgYXNz
ZXJ0KEMuX19wcm90b19fID09PSBCKTsKLSAgICBhc3NlcnQoQi5wcm90b3R5cGUuX19wcm90b19f
ID09PSBSZWdFeHAucHJvdG90eXBlKTsKLSAgICBhc3NlcnQoQy5wcm90b3R5cGUuX19wcm90b19f
ID09PSBCLnByb3RvdHlwZSk7Ci0KLSAgICBsZXQgb2JqID0gbmV3IEMoKTsKLQotICAgIGxldCBY
ID0gZnVuY3Rpb24gKCkge30KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoWC5wcm90b3R5cGUs
ICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rpb24oc3RyKSB7Ci0gICAgICAgICAgICBh
Y2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAgICByZXR1cm4gL3JjaC8uZXhlYyhzdHIp
OwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFgucHJvdG90
eXBlLCAibGFzdEluZGV4IiwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgYWNjZXNzZXMucHVzaCgiZ2V0TGFzdEluZGV4Iik7Ci0gICAgICAgICAgICByZXR1cm4gMDsK
LSAgICAgICAgfSwKLSAgICAgICAgc2V0OiBmdW5jdGlvbih2YWx1ZSkgewotICAgICAgICAgICAg
YWNjZXNzZXMucHVzaCgic2V0TGFzdEluZGV4Iik7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAg
IC8vIE1vbmtleSB3aXRoIHRoZSBwcm90b3R5cGUgY2hhaW4gYWZ0ZXIgaW5zdGFudGlhdGluZyBD
LgotICAgIFguX19wcm90b19fID0gUmVnRXhwOwotICAgIFgucHJvdG90eXBlLl9fcHJvdG9fXyA9
IFJlZ0V4cC5wcm90b3R5cGU7Ci0gICAgQy5fX3Byb3RvX18gPSBYOwotICAgIEMucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFgucHJvdG90eXBlOwotCi0gICAgYXNzZXJ0KFguX19wcm90b19fID09PSBS
ZWdFeHApOwotICAgIGFzc2VydChDLl9fcHJvdG9fXyA9PT0gWCk7Ci0gICAgYXNzZXJ0KFgucHJv
dG90eXBlLl9fcHJvdG9fXyA9PT0gUmVnRXhwLnByb3RvdHlwZSk7Ci0gICAgYXNzZXJ0KEMucHJv
dG90eXBlLl9fcHJvdG9fXyA9PT0gWC5wcm90b3R5cGUpOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2Vz
ID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQg
cmVzdWx0ID0gInNlYXJjaG1lIi5zZWFyY2gob2JqKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0g
ImV4ZWMiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0g
ICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0v
LyAyIGxldmVscyBvZiBSZWdFeHAgc3ViY2xhc3NlcyB3aXRoIHByb3hpZWQgcHJvdG90eXBlLgot
KGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLQotICAgIGNsYXNzIEIgZXh0
ZW5kcyBSZWdFeHAgeyB9OwotCi0gICAgYXNzZXJ0KEIuX19wcm90b19fID09PSBSZWdFeHApOwot
ICAgIGFzc2VydChCLnByb3RvdHlwZS5fX3Byb3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwot
Ci0gICAgbGV0IHByb3h5ID0gbmV3IFByb3h5KFJlZ0V4cC5wcm90b3R5cGUsIHsKLSAgICAgICAg
Z2V0OiBmdW5jdGlvbihvYmosIHByb3ApIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImdl
dF8iICsgcHJvcC50b1N0cmluZygpKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gcHJveHlFeGVj
KHN0cikgewotICAgICAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImV4ZWMiKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gL3JjaC8uZXhlYyhzdHIpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBpZiAocHJvcCA9PT0gImV4ZWMiKQotICAgICAgICAgICAgICAgIHJldHVybiBwcm94eUV4
ZWM7Ci0gICAgICAgICAgICByZXR1cm4gb2JqW3Byb3BdOwotICAgICAgICB9LAotICAgICAgICBz
ZXQ6IGZ1bmN0aW9uKG9iaiwgcHJvcCwgdmFsdWUpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1
c2goInNldF8iICsgcHJvcC50b1N0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIEIu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IHByb3h5OwotCi0gICAgbGV0IG9iaiA9IG5ldyBCKCk7Ci0K
LSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRl
biBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic2VhcmNobWUiLnNlYXJjaChvYmopOwotICAg
IGFzc2VydChhY2Nlc3NlcyA9PSAiZ2V0X1N5bWJvbChTeW1ib2wuc2VhcmNoKSxnZXRfZXhlYyxl
eGVjIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAg
IGFzc2VydChyZXN1bHQgPT09IDMsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKLQotLy8g
UHJveGllZCBSZWdFeHAgb2JzZXJ2aW5nIGV2ZXJ5IGdldC4KLShmdW5jdGlvbiAoKSB7Ci0gICAg
bGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoL3JjaC8pOwot
ICAgIGxldCBwcm94eSA9IG5ldyBQcm94eShyZWdleHAsIHsKLSAgICAgICAgZ2V0KG9iaiwgcHJv
cCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaChwcm9wLnRvU3RyaW5nKCkpOwotICAgICAg
ICAgICAgaWYgKHByb3AgPT0gImV4ZWMiKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKHN0cikgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmV4ZWMoc3RyKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gb2JqW3By
b3BdOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1
bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAi
c2VhcmNobWUiLnNlYXJjaChwcm94eSk7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzLnRvU3RyaW5nKCkg
PT0gIlN5bWJvbChTeW1ib2wuc2VhcmNoKSxsYXN0SW5kZXgsZXhlYyIsICJQcm94eSBub3QgYWJs
ZSB0byBvYnNlcnZlIHNvbWUgZ2V0cyIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMsICJVbmV4
cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1w
cm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2U4ZjM4NWQ2NTJkZWZlOGM0MjBmNTkxYTdmMDkzNmQwOTc3Y2Y2
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0v
L0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBhc3NlcnQodGVzdGVkVmFsdWUsIG1zZykgewotICAg
IGlmICghdGVzdGVkVmFsdWUpCi0gICAgICAgIHRocm93IEVycm9yKG1zZyk7Ci19Ci0KLS8vIFN0
cmluZyBwcm90b3R5cGUgd2l0aCBvdmVycmlkZGVuIEBAc2VhcmNoLgotKGZ1bmN0aW9uICgpIHsK
LSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICB2YXIgb2JqID0gU3RyaW5nKCIiKTsKLSAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgU3ltYm9sLnNlYXJjaCwgewot
ICAgICAgICB2YWx1ZTogZnVuY3Rpb24gKHN0cikgewotICAgICAgICAgICAgYWNjZXNzZXMucHVz
aCgiU3ltYm9sKFN5bWJvbC5zZWFyY2gpIik7Ci0gICAgICAgICAgICByZXR1cm4gL3JjaC9bU3lt
Ym9sLnNlYXJjaF0oc3RyKTsKLSAgICAgICAgfSwKLSAgICAgICAgd3JpdGFibGU6IHRydWUsCi0g
ICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKLSAgICB9KTsKLQotICAgIGFzc2VydChhY2Nlc3Nl
cyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0
IHJlc3VsdCA9ICJzZWFyY2htZSIuc2VhcmNoKG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09
ICJTeW1ib2woU3ltYm9sLnNlYXJjaCkiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNo
IGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhwZWN0ZWQgcmVz
dWx0Iik7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgU3lt
Ym9sLnNlYXJjaCwgeyB2YWx1ZTogdW5kZWZpbmVkLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3Vy
YWJsZTogdHJ1ZSB9KTsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0czMuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJv
dG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ2Mjg2ODkwODE5NzBhZmEyZWI4NTdmM2MyOWJhNmYyZTA0Y2ExYWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLy9A
IHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3RlZFZhbHVlLCBtc2cpIHsKLSAgICBp
ZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJvcihtc2cpOwotfQotCi0vLyBTdHJp
bmcgcHJvdG90eXBlIHdpdGggb3ZlcnJpZGRlbiBAQHNlYXJjaDogdGVzdCB3aXRoIHN0cmluZyBs
aXRlcmFsLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICB2YXIg
b2JqID0gIiI7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmluZy5wcm90b3R5cGUsIFN5
bWJvbC5zZWFyY2gsIHsKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIChzdHIpIHsKLSAgICAgICAg
ICAgIGFjY2Vzc2VzLnB1c2goIlN5bWJvbChTeW1ib2wuc2VhcmNoKSIpOwotICAgICAgICAgICAg
cmV0dXJuIC9yY2gvW1N5bWJvbC5zZWFyY2hdKHN0cik7Ci0gICAgICAgIH0sCi0gICAgICAgIHdy
aXRhYmxlOiB0cnVlLAotICAgICAgICBjb25maWd1cmFibGU6IHRydWUsCi0gICAgfSk7Ci0KLSAg
ICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBw
cm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic2VhcmNobWUiLnNlYXJjaChvYmopOwotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5zZWFyY2gpIiwgIlByb3BlcnR5IGFjY2Vz
c2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT09IDMs
ICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotCi0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFN0cmlu
Zy5wcm90b3R5cGUsIFN5bWJvbC5zZWFyY2gsIHsgdmFsdWU6IHVuZGVmaW5lZCwgd3JpdGFibGU6
IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWUgfSk7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHM0LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0Lmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2ZlMTlmNDQxYzQyZjYzMDY1NWVmNjQw
YWFiNDYzNTVhZDZjMDFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5
cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI1ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1
ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNn
KTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlwZSB3aXRoIG92ZXJyaWRkZW4gZXhlYy4KLShmdW5j
dGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9yaWdFeGVjID0gUmVn
RXhwLnByb3RvdHlwZS5leGVjOwotCi0gICAgbGV0IG9iaiA9IC9yY2gvOwotICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShSZWdFeHAucHJvdG90eXBlLCAiZXhlYyIsIHsKLSAgICAgICAgdmFsdWU6
IGZ1bmN0aW9uKHN0cikgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZXhlYyIpOwotICAg
ICAgICAgICAgcmV0dXJuIG9yaWdFeGVjLmNhbGwodGhpcywgc3RyKTsKLSAgICAgICAgfQotICAg
IH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92
ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNlYXJjaG1lIi5zZWFyY2gob2Jq
KTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImV4ZWMiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8g
bm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PT0gMywgIlVuZXhw
ZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0cy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90
b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM0M2I4YzFlNjhkNTg5Njg1NjgzZGFkZThkNWQ5OTc3YTQ3MjE3YTUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxl
LXNpZGUtZWZmZWN0cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDUxMCArMCwwIEBACi0vL0AgcnVu
RGVmYXVsdAotCi1mdW5jdGlvbiBhc3NlcnQodGVzdGVkVmFsdWUsIG1zZykgewotICAgIGlmICgh
dGVzdGVkVmFsdWUpCi0gICAgICAgIHRocm93IEVycm9yKG1zZyk7Ci19Ci0KLS8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS8vIFRlc3RpbmcgdGhlIHN0cmluZyB0aGF0IHdlJ3JlIGNh
bGxpbmcgc3BsaXQgb24uCi0KLS8vIFByb3hpZWQgU3RyaW5nIHN1YmNsYXNzLgotKGZ1bmN0aW9u
ICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBFeHRTdHJpbmcgZXh0ZW5k
cyBTdHJpbmcgeyB9Ci0gICAgdmFyIG9iaiA9IG5ldyBFeHRTdHJpbmcoInNwbGl0bWUiKTsKLSAg
ICB2YXIgcHJveHkgPSBuZXcgUHJveHkob2JqLCB7Ci0gICAgICAgIGdldChvYmosIHByb3ApIHsK
LSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2gocHJvcC50b1N0cmluZygpKTsKLSAgICAgICAgICAg
IGlmIChwcm9wID09PSAidG9TdHJpbmciKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJpbl90b1N0cmluZyIp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLnRvU3RyaW5nKCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9ialtwcm9wXTsKLSAg
ICAgICAgfQotICAgIH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3Rl
ZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gU3RyaW5nLnBy
b3RvdHlwZS5zcGxpdC5jYWxsKHByb3h5LCAiaXQiKTsgICAgCi0gICAgYXNzZXJ0KGFjY2Vzc2Vz
ID09ICJTeW1ib2woU3ltYm9sLnRvUHJpbWl0aXZlKSx0b1N0cmluZyxpbl90b1N0cmluZyIsICJQ
cm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQo
cmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIE9i
amVjdCB0aGF0IGxvb2tzIGxpa2UgYSBzdHJpbmcuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBh
Y2Nlc3NlcyA9IFtdOwotICAgIHZhciBvYmogPSB7Ci0gICAgICAgIFtTeW1ib2wudG9QcmltaXRp
dmVdKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaChTeW1ib2wudG9QcmltaXRpdmUudG9T
dHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gInNwbGl0bWUiOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJy
aWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gU3RyaW5nLnByb3RvdHlwZS5zcGxpdC5j
YWxsKG9iaiwgIml0Iik7ICAgIAotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJv
bC50b1ByaW1pdGl2ZSkiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0
aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0
Iik7Ci19KSgpOwotCi0vLyBPYmplY3QgdGhhdCBsb29rcyBsaWtlIGEgc3RyaW5nLgotKGZ1bmN0
aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICB2YXIgb2JqID0gewotICAgICAg
ICB0b1N0cmluZygpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goInRvU3RyaW5nIik7Ci0g
ICAgICAgICAgICByZXR1cm4gInNwbGl0bWUiOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgYXNz
ZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMi
KTsKLSAgICBsZXQgcmVzdWx0ID0gU3RyaW5nLnByb3RvdHlwZS5zcGxpdC5jYWxsKG9iaiwgIml0
Iik7ICAgIAotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAidG9TdHJpbmciLCAiUHJvcGVydHkgYWNj
ZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAi
c3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyBTdHJpbmcgc3ViY2xh
c3Mgd2l0aCBvdmVycmlkZGVuIEBAc3BsaXQuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nl
c3NlcyA9IFtdOwotICAgIGNsYXNzIEV4dFN0cmluZyBleHRlbmRzIFN0cmluZyB7Ci0gICAgICAg
IFtTeW1ib2wuc3BsaXRdIChzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goIlN5bWJv
bChTeW1ib2wuc3BsaXQpIik7Ci0gICAgICAgICAgICByZXR1cm4gUmVnRXhwLnByb3RvdHlwZVtT
eW1ib2wuc3BsaXRdLmNhbGwoL2l0Lywgc3RyKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICB2
YXIgb2JqID0gbmV3IEV4dFN0cmluZzsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVu
ZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJz
cGxpdG1lIi5zcGxpdChvYmopOyAgICAKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIlN5bWJvbChT
eW1ib2wuc3BsaXQpIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlv
biIpOwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIp
OwotfSkoKTsKLQotCi0vLyBPYmplY3Qgd2l0aCBvdmVycmlkZGVuIEBAc2VhcmNoLgotKGZ1bmN0
aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICB2YXIgb2JqID0gewotICAgICAg
ICBbU3ltYm9sLnNwbGl0XSAoc3RyKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJTeW1i
b2woU3ltYm9sLnNwbGl0KSIpOwotICAgICAgICAgICAgcmV0dXJuIFJlZ0V4cC5wcm90b3R5cGVb
U3ltYm9sLnNwbGl0XS5jYWxsKC9pdC8sIHN0cik7Ci0gICAgICAgIH0sCi0gICAgfQotCi0gICAg
YXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJv
cHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNwbGl0bWUiLnNwbGl0KG9iaik7ICAgIAotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5zcGxpdCkiLCAiUHJvcGVydHkgYWNjZXNz
ZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3Bs
LG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0vLyBUZXN0aW5nIHRoZSByZWdleHAgb2JqZWN0IHRoYXQgd2UncmUgY2Fs
bGluZyBzcGxpdCB3aXRoLgotCi0vLyBTdWJjbGFzcyB3aXRoIG92ZXJyaWRkZW4gW0BAc3BlY2ll
c106IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNC4gTGV0IEMgYmUgPyBTcGVjaWVzQ29uc3RydWN0
b3IocngsICVSZWdFeHAlKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107
Ci0gICAgY2xhc3MgVGVzdFJlZ0V4cCBleHRlbmRzIFJlZ0V4cCB7IH0KLSAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoVGVzdFJlZ0V4cCwgU3ltYm9sLnNwZWNpZXMsIHsKLSAgICAgICAgdmFsdWU6
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaChTeW1ib2wuc3BlY2llcy50
b1N0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiAvaXQveTsKLSAgICAgICAgfQotICAgIH0p
OwotICAgIGxldCBvYmogPSBuZXcgVGVzdFJlZ0V4cDsKLSAgICBsZXQgZXJyb3JTdHI7Ci0KLSAg
ICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBw
cm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIuc3BsaXQob2JqKTsKLSAgICBhc3Nl
cnQoYWNjZXNzZXMgPT0gIlN5bWJvbChTeW1ib2wuc3BlY2llcykiLCAiUHJvcGVydHkgYWNjZXNz
ZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3Bs
LG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyBSZWdFeHAgc3ViY2xhc3Mg
d2l0aCBjb25zdHJ1Y3RvcjogVGVzdGluZyBFUzYgMjEuMi41LjExOiA0LiBMZXQgQyBiZSA/IFNw
ZWNpZXNDb25zdHJ1Y3RvcihyeCwgJVJlZ0V4cCUpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQg
YWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBUZXN0UmVnRXhwIGV4dGVuZHMgUmVnRXhwIHsKLSAg
ICAgICAgY29uc3RydWN0b3Ioc3RyLCBmbGFncykgewotICAgICAgICAgICAgc3VwZXIoc3RyLCBm
bGFncyk7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJjb25zdHJ1Y3RvciIpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIGxldCBvYmogPSBuZXcgVGVzdFJlZ0V4cCgiaXQiKTsKLQotICAgIGFz
c2VydChhY2Nlc3NlcyA9PSAiY29uc3RydWN0b3IiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJy
aWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNwbGl0bWUiLnNwbGl0KG9iaik7Ci0g
ICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJjb25zdHJ1Y3Rvcixjb25zdHJ1Y3RvciIsICJQcm9wZXJ0
eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0
ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIEFuIG9iamVj
dCB3aXRoIHNwZWNpZXMgY29uc3RydWN0b3I6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNC4gTGV0
IEMgYmUgPyBTcGVjaWVzQ29uc3RydWN0b3IocngsICVSZWdFeHAlKS4KLShmdW5jdGlvbiAoKSB7
Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9iaiA9IHsgY29uc3RydWN0b3I6IHt9
IH07Ci0gICAgb2JqLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVzXSA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJjb25zdHJ1Y3RvciIpOwotICAgICAgICByZXR1cm4gL2l0
L3k7Ci0gICAgfTsKLSAgICBvYmpbU3ltYm9sLnNwbGl0XSA9IGZ1bmN0aW9uKHN0ciwgbGltaXQp
IHsKLSAgICAgICAgYWNjZXNzZXMucHVzaChTeW1ib2wuc3BsaXQudG9TdHJpbmcoKSk7Ci0gICAg
ICAgIHJldHVybiBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbCh0aGlzLCBzdHIs
IGxpbWl0KTsKLSAgICB9OwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3Rl
ZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNwbGl0bWUi
LnNwbGl0KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJTeW1ib2woU3ltYm9sLnNwbGl0
KSxjb25zdHJ1Y3RvciIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRp
b24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQi
KTsKLX0pKCk7Ci0KLS8vIFJlZ0V4cCBvYmplY3Qgd2l0aCBvdmVycmlkZGVuIGZsYWdzOiBUZXN0
aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0KHJ4LCAi
ZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBmbGFncyA9IFsgImZsYWdzIiwgImds
b2JhbCIsICJpZ25vcmVDYXNlIiwgIm11bHRpbGluZSIsICJzdGlja3kiLCAidW5pY29kZSIgXTsK
LSAgICBsZXQgZmxhZ1ZhbHVlcyA9IFsgIiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSBdOwotICAgIGZvciAobGV0IGluZGV4IGluIGZsYWdzKSB7Ci0gICAgICAgIChmdW5jdGlv
bihmbGFnLCBmbGFnVmFsdWUpIHsKLSAgICAgICAgICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAg
ICAgICAgICAgbGV0IG9iaiA9IC9pdC87Ci0gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkob2JqLCBmbGFnLCB7Ci0gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgICAgICAgICAg
cGFzc2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgYXNzZXJ0KGFj
Y2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAg
ICAgICAgICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIuc3BsaXQob2JqKTsKLSAgICAgICAgICAg
IGFzc2VydChhY2Nlc3NlcyA9PSBmbGFnLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNo
IGV4cGVjdGF0aW9uIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAi
VW5leHBlY3RlZCByZXN1bHQiKTsKLSAgICAgICAgfSkgKGZsYWdzW2luZGV4XSwgZmxhZ1ZhbHVl
c1tpbmRleF0pOwotICAgIH0KLX0pKCk7Ci0KLS8vIFJlZ0V4cCBzdWJjbGFzcyB3aXRoIG92ZXJy
aWRkZW4gZmxhZ3MgaW4gc3ViY2xhc3MgbWV0aG9kOiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUu
IExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24g
KCkgewotICAgIGxldCBmbGFncyA9IFsgImZsYWdzIiwgImdsb2JhbCIsICJpZ25vcmVDYXNlIiwg
Im11bHRpbGluZSIsICJzdGlja3kiLCAidW5pY29kZSIgXTsKLSAgICBsZXQgZmxhZ1ZhbHVlcyA9
IFsgIiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSBdOwotICAgIGZvciAobGV0
IGluZGV4IGluIGZsYWdzKSB7Ci0gICAgICAgIChmdW5jdGlvbihmbGFnLCBmbGFnVmFsdWUpIHsK
LSAgICAgICAgICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgICAgICAgICAgY2xhc3MgVGVzdFJl
Z0V4cCBleHRlbmRzIFJlZ0V4cCB7Ci0gICAgICAgICAgICAgICAgZ2V0IFtmbGFnXSgpIHsKLSAg
ICAgICAgICAgICAgICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Owot
ICAgICAgICAgICAgbGV0IG9iaiA9IG5ldyBUZXN0UmVnRXhwKC9pdC8pOwotCi0gICAgICAgICAg
ICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRlbiBw
cm9wcyIpOwotICAgICAgICAgICAgbGV0IHJlc3VsdCA9ICJzcGxpdG1lIi5zcGxpdChvYmopOwot
ICAgICAgICAgICAgYXNzZXJ0KGFjY2Vzc2VzID09IGZsYWcsICJQcm9wZXJ0eSBhY2Nlc3NlcyBk
byBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICAgICAgICAgIGFzc2VydChyZXN1bHQgPT0g
InNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwotCi0gICAgICAgIH0pIChmbGFnc1tpbmRl
eF0sIGZsYWdWYWx1ZXNbaW5kZXhdKTsKLSAgICB9Ci19KSgpOwotCi0vLyBSZWdFeHAgc3ViY2xh
c3Mgd2l0aCBvdmVycmlkZGVuIGZsYWdzIHVzaW5nIE9iamVjdC5kZWZpbmVQcm9wZXJ0eTogVGVz
dGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwg
ImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgZmxhZ3MgPSBbICJmbGFncyIsICJn
bG9iYWwiLCAiaWdub3JlQ2FzZSIsICJtdWx0aWxpbmUiLCAic3RpY2t5IiwgInVuaWNvZGUiIF07
Ci0gICAgbGV0IGZsYWdWYWx1ZXMgPSBbICIiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UgXTsKLSAgICBmb3IgKGxldCBpbmRleCBpbiBmbGFncykgewotICAgICAgICAoZnVuY3Rp
b24oZmxhZywgZmxhZ1ZhbHVlKSB7Ci0gICAgICAgICAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAg
ICAgICAgICAgIGNsYXNzIFRlc3RSZWdFeHAgZXh0ZW5kcyBSZWdFeHAgeyB9OwotICAgICAgICAg
ICAgbGV0IG9iaiA9IG5ldyBUZXN0UmVnRXhwKC9pdC8pOwotCi0gICAgICAgICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkob2JqLCBmbGFnLCB7Ci0gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9KTsKLQotICAgICAgICAgICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3Rl
ZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSAi
c3BsaXRtZSIuc3BsaXQob2JqKTsKLSAgICAgICAgICAgIGFzc2VydChhY2Nlc3NlcyA9PSBmbGFn
LCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgICAg
ICAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLQot
ICAgICAgICB9KSAoZmxhZ3NbaW5kZXhdLCBmbGFnVmFsdWVzW2luZGV4XSk7Ci0gICAgfQotfSko
KTsKLQotLy8gQW55IG9iamVjdCB3aXRoIHNwZWNpZXMgY29uc3RydWN0b3I6IFRlc3RpbmcgRVM2
IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJmbGFncyIp
KS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9iaiA9
IHsgY29uc3RydWN0b3I6IHt9IH07Ci0gICAgb2JqLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVjaWVz
XSA9IGZ1bmN0aW9uKCkgewotICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJjb25zdHJ1Y3RvciIpOwot
ICAgICAgICByZXR1cm4gL2l0L3k7Ci0gICAgfTsKLSAgICBvYmpbU3ltYm9sLnNwbGl0XSA9IGZ1
bmN0aW9uKHN0ciwgbGltaXQpIHsKLSAgICAgICAgYWNjZXNzZXMucHVzaChTeW1ib2wuc3BsaXQu
dG9TdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxp
dF0uY2FsbCh0aGlzLCBzdHIsIGxpbWl0KTsKLSAgICB9OwotCi0gICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iaiwgImZsYWdzIiwgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgYWNjZXNzZXMucHVzaCgiZmxhZ3MiKTsKLSAgICAgICAgICAgIHJldHVybiAiIjsKLSAg
ICAgICAgfQotICAgIH0pOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3Rl
ZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNwbGl0bWUi
LnNwbGl0KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJTeW1ib2woU3ltYm9sLnNwbGl0
KSxmbGFncyxjb25zdHJ1Y3RvciIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhw
ZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCBy
ZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIEFueSBvYmplY3Qgd2l0aCBjdXN0b20gcHJvdG90eXBlOiBU
ZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0KHJ4
LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAg
IGxldCBUZXN0UmVnRXhwUHJvdG8gPSB7Ci0gICAgICAgIGdldCBmbGFncygpIHsKLSAgICAgICAg
ICAgIGFjY2Vzc2VzLnB1c2goImZsYWdzIik7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAg
ICAgIH0sCi0gICAgICAgIHRvU3RyaW5nKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgi
dG9TdHJpbmciKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZWdleC50b1N0cmluZygpOwot
ICAgICAgICB9LAotICAgICAgICBnZXQgc291cmNlKCkgewotICAgICAgICAgICAgYWNjZXNzZXMu
cHVzaCgic291cmNlIik7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fcmVnZXguc291cmNlOwot
ICAgICAgICB9Ci0gICAgfQotICAgIFRlc3RSZWdFeHBQcm90by5fX3Byb3RvX18gPSBSZWdFeHAu
cHJvdG90eXBlOwotCi0gICAgbGV0IFRlc3RSZWdFeHAgPSBmdW5jdGlvbihyZWdleCkgewotICAg
ICAgICBhY2Nlc3Nlcy5wdXNoKCJjb25zdHJ1Y3RvciIpOwotICAgICAgICB0aGlzLl9yZWdleCA9
IG5ldyBSZWdFeHAocmVnZXgpOwotICAgIH0KLSAgICBUZXN0UmVnRXhwLnByb3RvdHlwZSA9IFRl
c3RSZWdFeHBQcm90bzsKLSAgICBUZXN0UmVnRXhwUHJvdG8uY29uc3RydWN0b3IgPSBUZXN0UmVn
RXhwOwotCi0gICAgbGV0IG9iaiA9IG5ldyBUZXN0UmVnRXhwKC9pdC8pOwotCi0gICAgYXNzZXJ0
KGFjY2Vzc2VzID09ICJjb25zdHJ1Y3RvciIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRl
biBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIuc3BsaXQob2JqKTsKLSAgICBh
c3NlcnQoYWNjZXNzZXMgPT0gImNvbnN0cnVjdG9yLGZsYWdzLHNvdXJjZSIsICJQcm9wZXJ0eSBh
Y2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09
ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIDIgbGV2ZWxzIG9m
IHN1YmNsYXNzZXM6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9T
dHJpbmcoPyBHZXQocngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vz
c2VzID0gW107Ci0KLSAgICBjbGFzcyBSZWdFeHBCIGV4dGVuZHMgUmVnRXhwIHsKLSAgICAgICAg
Z2V0IGZsYWdzKCkgewotICAgICAgICAgICAgYWNjZXNzZXMucHVzaCgiZmxhZ3MiKTsKLSAgICAg
ICAgICAgIHJldHVybiAiIjsKLSAgICAgICAgfQotICAgIH0KLSAgICBjbGFzcyBSZWdFeHBDIGV4
dGVuZHMgUmVnRXhwQiB7IH0KLQotICAgIGFzc2VydChSZWdFeHBCLl9fcHJvdG9fXyA9PSBSZWdF
eHApOwotICAgIGFzc2VydChSZWdFeHBDLl9fcHJvdG9fXyA9PSBSZWdFeHBCKTsKLQotICAgIGxl
dCBvYmogPSBuZXcgUmVnRXhwQygvaXQvKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwg
InVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9
ICJzcGxpdG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZmxhZ3MiLCAi
UHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0
KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyAy
IGxldmVscyBvZiBzdWJjbGFzc2VzIHdpdGggc3Vic3RpdHV0ZWQgcHJvdG90eXBlIGJlZm9yZSBp
bnN0YW50aWF0aW9uOiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRv
U3RyaW5nKD8gR2V0KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBhY2Nl
c3NlcyA9IFtdOwotCi0gICAgY2xhc3MgQiBleHRlbmRzIFJlZ0V4cCB7IH0KLSAgICBjbGFzcyBD
IGV4dGVuZHMgQiB7IH0KLQotICAgIGFzc2VydChCLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAg
ICBhc3NlcnQoQy5fX3Byb3RvX18gPT09IEIpOwotICAgIGFzc2VydChCLnByb3RvdHlwZS5fX3By
b3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5fX3By
b3RvX18gPT09IEIucHJvdG90eXBlKTsKLQotICAgIGxldCBYID0gZnVuY3Rpb24gKCkge30KLSAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoWC5wcm90b3R5cGUsICJmbGFncyIsIHsKLSAgICAgICAg
Z2V0OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImZsYWdzIik7Ci0g
ICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoWC5wcm90b3R5cGUsICJleGVjIiwgewotICAgICAgICB2YWx1ZTogZnVuY3Rp
b24oc3RyKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJleGVjIik7Ci0gICAgICAgICAg
ICB2YXIgbWF0Y2hSZXN1bHQgPSAvaXQveS5leGVjKHN0ci5zdWJzdHIodGhpcy5sYXN0SW5kZXgp
KTsKLSAgICAgICAgICAgIGlmIChtYXRjaFJlc3VsdCkKLSAgICAgICAgICAgICAgICB0aGlzLmxh
c3RJbmRleCArPSAyOyAvLyBsZW5ndGggb2YgIml0Ii4KLSAgICAgICAgICAgIHJldHVybiBtYXRj
aFJlc3VsdDsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgLy8gTW9ua2V5IHdpdGggdGhlIHBy
b3RvdHlwZSBjaGFpbiBiZWZvcmUgaW5zdGFudGlhdGluZyBDLgotICAgIFguX19wcm90b19fID0g
UmVnRXhwOwotICAgIFgucHJvdG90eXBlLl9fcHJvdG9fXyA9IFJlZ0V4cC5wcm90b3R5cGU7Ci0g
ICAgQy5fX3Byb3RvX18gPSBYOwotICAgIEMucHJvdG90eXBlLl9fcHJvdG9fXyA9IFgucHJvdG90
eXBlOwotCi0gICAgYXNzZXJ0KFguX19wcm90b19fID09PSBSZWdFeHApOwotICAgIGFzc2VydChD
Ll9fcHJvdG9fXyA9PT0gWCk7Ci0gICAgYXNzZXJ0KFgucHJvdG90eXBlLl9fcHJvdG9fXyA9PT0g
UmVnRXhwLnByb3RvdHlwZSk7Ci0gICAgYXNzZXJ0KEMucHJvdG90eXBlLl9fcHJvdG9fXyA9PT0g
WC5wcm90b3R5cGUpOwotCi0gICAgbGV0IG9iaiA9IG5ldyBDOwotCi0gICAgYXNzZXJ0KGFjY2Vz
c2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBs
ZXQgcmVzdWx0ID0gInNwbGl0bWUiLnNwbGl0KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09
ICJmbGFncyxleGVjLGV4ZWMsZXhlYyxleGVjLGV4ZWMsZXhlYyIsICJQcm9wZXJ0eSBhY2Nlc3Nl
cyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGws
bWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIDIgbGV2ZWxzIG9mIHN1YmNs
YXNzZXMgd2l0aCBzdWJzdGl0dXRlZCBwcm90b3R5cGUgYWZ0ZXIgaW5zdGFudGlhdGlvbjogVGVz
dGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwg
ImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLQotICAg
IGNsYXNzIEIgZXh0ZW5kcyBSZWdFeHAgeyB9Ci0gICAgY2xhc3MgQyBleHRlbmRzIEIgeyB9Ci0K
LSAgICBhc3NlcnQoQi5fX3Byb3RvX18gPT09IFJlZ0V4cCk7Ci0gICAgYXNzZXJ0KEMuX19wcm90
b19fID09PSBCKTsKLSAgICBhc3NlcnQoQi5wcm90b3R5cGUuX19wcm90b19fID09PSBSZWdFeHAu
cHJvdG90eXBlKTsKLSAgICBhc3NlcnQoQy5wcm90b3R5cGUuX19wcm90b19fID09PSBCLnByb3Rv
dHlwZSk7Ci0KLSAgICBsZXQgWCA9IGZ1bmN0aW9uICgpIHt9Ci0gICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KFgucHJvdG90eXBlLCAiZmxhZ3MiLCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJmbGFncyIpOwotICAgICAgICAgICAgcmV0dXJu
ICIiOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFgucHJv
dG90eXBlLCAiZXhlYyIsIHsKLSAgICAgICAgdmFsdWU6IGZ1bmN0aW9uKHN0cikgewotICAgICAg
ICAgICAgYWNjZXNzZXMucHVzaCgiZXhlYyIpOwotICAgICAgICAgICAgdmFyIG1hdGNoUmVzdWx0
ID0gL2l0L3kuZXhlYyhzdHIuc3Vic3RyKHRoaXMubGFzdEluZGV4KSk7Ci0gICAgICAgICAgICBp
ZiAobWF0Y2hSZXN1bHQpCi0gICAgICAgICAgICAgICAgdGhpcy5sYXN0SW5kZXggKz0gMjsgLy8g
bGVuZ3RoIG9mICJpdCIuCi0gICAgICAgICAgICByZXR1cm4gbWF0Y2hSZXN1bHQ7Ci0gICAgICAg
IH0KLSAgICB9KTsKLQotICAgIC8vIEluc3RhbnRpYXRlIEMgYmVmb3JlIG1vbmtleWluZyB3aXRo
IHRoZSBwcm90b3R5cGUgY2hhaW4uCi0gICAgbGV0IG9iaiA9IG5ldyBDKCk7Ci0KLSAgICBYLl9f
cHJvdG9fXyA9IFJlZ0V4cDsKLSAgICBYLnByb3RvdHlwZS5fX3Byb3RvX18gPSBSZWdFeHAucHJv
dG90eXBlOwotICAgIEMuX19wcm90b19fID0gWDsKLSAgICBDLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBYLnByb3RvdHlwZTsKLQotICAgIGFzc2VydChYLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAg
ICBhc3NlcnQoQy5fX3Byb3RvX18gPT09IFgpOwotICAgIGFzc2VydChYLnByb3RvdHlwZS5fX3By
b3RvX18gPT09IFJlZ0V4cC5wcm90b3R5cGUpOwotICAgIGFzc2VydChDLnByb3RvdHlwZS5fX3By
b3RvX18gPT09IFgucHJvdG90eXBlKTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVu
ZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJz
cGxpdG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZmxhZ3MsZXhlYyxl
eGVjLGV4ZWMsZXhlYyxleGVjLGV4ZWMiLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNo
IGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0
ZWQgcmVzdWx0Iik7Ci19KSgpOwotCi0vLyAyIGxldmVscyBvZiBzdWJjbGFzc2VzIHdpdGggcHJv
eGllZCBwcm90b3R5cGU6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8g
VG9TdHJpbmcoPyBHZXQocngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFj
Y2Vzc2VzID0gW107Ci0KLSAgICBjbGFzcyBCIGV4dGVuZHMgUmVnRXhwIHsgfTsKLQotICAgIGFz
c2VydChCLl9fcHJvdG9fXyA9PT0gUmVnRXhwKTsKLSAgICBhc3NlcnQoQi5wcm90b3R5cGUuX19w
cm90b19fID09PSBSZWdFeHAucHJvdG90eXBlKTsKLQotICAgIGxldCBwcm94eSA9IG5ldyBQcm94
eShSZWdFeHAucHJvdG90eXBlLCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24ob2JqLCBwcm9wKSB7
Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKHByb3AudG9TdHJpbmcoKSk7Ci0gICAgICAgICAg
ICBpZiAocHJvcCA9PT0gImV4ZWMiKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KHN0cikgewotICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKCJpbl9leGVjIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaFJlc3VsdCA9IC9pdC95LmV4ZWMoc3RyLnN1YnN0
cih0aGlzLmxhc3RJbmRleCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hSZXN1bHQp
Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RJbmRleCArPSAyOyAvLyBsZW5ndGgg
b2YgIml0Ii4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoUmVzdWx0OwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBvYmpbcHJvcF07
Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBCLnByb3RvdHlwZS5fX3Byb3RvX18gPSBwcm94eTsK
LQotICAgIGxldCBvYmogPSBuZXcgQigpOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAi
dW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0g
InNwbGl0bWUiLnNwbGl0KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJTeW1ib2woU3lt
Ym9sLnNwbGl0KSxmbGFncyxTeW1ib2woU3ltYm9sLm1hdGNoKSxleGVjLGluX2V4ZWMsZXhlYyxp
bl9leGVjLGV4ZWMsaW5fZXhlYyxleGVjLGluX2V4ZWMsZXhlYyxpbl9leGVjLGV4ZWMsaW5fZXhl
YyIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBh
c3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0K
LS8vIFJlZ0V4cCBzdWJjbGFzcyB3aXRoIG92ZXJyaWRkZW4gZXhlYzogVGVzdGluZyBFUzYgMjEu
Mi41LjExOiAxOS5iLiBMZXQgeiBiZSA/IFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpLgotKGZ1bmN0
aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBjbGFzcyBUZXN0UmVnRXhwIGV4
dGVuZHMgUmVnRXhwIHsKLSAgICAgICAgZXhlYyhzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2Vz
LnB1c2goImV4ZWMiKTsKLSAgICAgICAgICAgIHJldHVybiBSZWdFeHAucHJvdG90eXBlLmV4ZWMu
Y2FsbCh0aGlzLCBzdHIpOwotICAgICAgICB9Ci0gICAgfTsKLSAgICBsZXQgb2JqID0gbmV3IFRl
c3RSZWdFeHAoL2l0Lyk7Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVk
IGNhbGwgdG8gb3ZlcnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIu
c3BsaXQob2JqKTsKLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gImV4ZWMsZXhlYyxleGVjLGV4ZWMs
ZXhlYyxleGVjIiwgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBtYXRjaCBleHBlY3RhdGlvbiIp
OwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4cGVjdGVkIHJlc3VsdCIpOwot
fSkoKTsKLQotLy8gUHJveGllZCBSZWdFeHAgb2JzZXJ2aW5nIGV2ZXJ5IGdldC4KLShmdW5jdGlv
biAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IHJlZ2V4cCA9IG5ldyBSZWdF
eHAoL2l0Lyk7Ci0gICAgbGV0IHByb3h5ID0gbmV3IFByb3h5KHJlZ2V4cCwgewotICAgICAgICBn
ZXQob2JqLCBwcm9wKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKHByb3AudG9TdHJpbmco
KSk7Ci0gICAgICAgICAgICByZXR1cm4gb2JqW3Byb3BdOwotICAgICAgICB9Ci0gICAgfSk7Ci0K
LSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3ZlcnJpZGRl
biBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIuc3BsaXQocHJveHkpOwotICAg
IC8vIE5vdGU6IEBAc3BsaXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgUmVnRXhwIHVz
aW5nIGl0cyBAQHNwZWNpZXMsIGFuZCBwZXJmb3JtcwotICAgIC8vIHRoZSBzcGxpdCBvcGVyYXRp
b24gd2l0aCB0aGF0IG5ldyBpbnN0YW5jZS4gSGVuY2UsIHRoZSBwcm94eSBpcyBvbmx5IGFibGUg
dG8gb2JzZXJ2ZQotICAgIC8vIGdldHMgdXAgdG8gdGhlIGNyZWF0aW9uIG9mIHRoZSBuZXcgaW5z
dGFuY2UuCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICJTeW1ib2woU3ltYm9sLnNwbGl0KSxjb25z
dHJ1Y3RvcixmbGFncyxTeW1ib2woU3ltYm9sLm1hdGNoKSxzb3VyY2UiLAotICAgICAgICAiUHJv
eHkgbm90IGFibGUgdG8gb2JzZXJ2ZSBzb21lIGdldHMiKTsKLSAgICBhc3NlcnQocmVzdWx0ID09
ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7Ci0KLS8vIFByb3hpZWQgUmVn
RXhwICh3aXRob3V0IEBAbWF0Y2gpIG9ic2VydmluZyBldmVyeSBnZXQuCi0vLyBUaGlzIGlzIHRv
IGZvcmNlIHRoZSBSZWdFeHAgQHNwZWNpZXMgY29uc3RydWN0b3IgdG8gYWNjZXNzIHNvdXJjZS4K
LShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IHJlZ2V4cCA9
IG5ldyBSZWdFeHAoL2l0Lyk7Ci0gICAgbGV0IHByb3h5ID0gbmV3IFByb3h5KHJlZ2V4cCwgewot
ICAgICAgICBnZXQob2JqLCBwcm9wKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKHByb3Au
dG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAocHJvcCA9PSBTeW1ib2wubWF0Y2gpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKLSAgICAgICAgICAgIHJldHVybiBvYmpbcHJv
cF07Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVu
ZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJz
cGxpdG1lIi5zcGxpdChwcm94eSk7Ci0gICAgLy8gTm90ZTogQEBzcGxpdCBjcmVhdGVzIGEgbmV3
IGluc3RhbmNlIG9mIHRoZSBSZWdFeHAgdXNpbmcgaXRzIEBAc3BlY2llcywgYW5kIHBlcmZvcm1z
Ci0gICAgLy8gdGhlIHNwbGl0IG9wZXJhdGlvbiB3aXRoIHRoYXQgbmV3IGluc3RhbmNlLiBIZW5j
ZSwgdGhlIHByb3h5IGlzIG9ubHkgYWJsZSB0byBvYnNlcnZlCi0gICAgLy8gZ2V0cyB1cCB0byB0
aGUgY3JlYXRpb24gb2YgdGhlIG5ldyBpbnN0YW5jZS4KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0g
IlN5bWJvbChTeW1ib2wuc3BsaXQpLGNvbnN0cnVjdG9yLGZsYWdzLFN5bWJvbChTeW1ib2wubWF0
Y2gpLFN5bWJvbChTeW1ib2wudG9QcmltaXRpdmUpLHRvU3RyaW5nLHNvdXJjZSxmbGFncyIsCi0g
ICAgICAgICJQcm94eSBub3QgYWJsZSB0byBvYnNlcnZlIHNvbWUgZ2V0cyIpOwotICAgIC8vIFRo
ZSBuZXcgaW5zdGFuY2Ugb2YgdGhlIFJlZ0V4cCB3b3VsZCBoYXZlIGJlZW4gY29uc3RydWN0ZWQg
d2l0aCB0aGUgcGF0dGVybiBmcm9tCi0gICAgLy8gdGhlIHByb3h5IHRvU3RyaW5nKCkgaS5lLiAi
XC9sdFwvIiBpbnN0ZWFkIG9mIHNvdXJjZSwgYmVjYXVzZSB0aGUgcHJveHkgaXMgYW4KLSAgICAv
LyBvYmplY3Qgd2l0aG91dCBhIFtAQG1hdGNoXSBwcm9wZXJ0eS4KLSAgICBhc3NlcnQocmVzdWx0
ID09ICJzcGxpdG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3Rz
Mi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNiMzljZTYwZGNiZjFmYzEzNmQ1
YzAzODFlOTM0MzdhMDdjM2I5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi5qcworKysgL2Rldi9udWxsCkBA
IC0xLDI2ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRW
YWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3Io
bXNnKTsKLX0KLQotLy8gUmVnRXhwIHdpdGggb3ZlcnJpZGRlbiBbQEBzcGVjaWVzXTogVGVzdGlu
ZyBFUzYgMjEuMi41LjExOiA0LiBMZXQgQyBiZSA/IFNwZWNpZXNDb25zdHJ1Y3RvcihyeCwgJVJl
Z0V4cCUpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQg
b3JpZ0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwg
U3ltYm9sLnNwZWNpZXMpOwotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWdFeHAsIFN5bWJv
bC5zcGVjaWVzLCB7Ci0gICAgICAgIHZhbHVlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFj
Y2Vzc2VzLnB1c2goU3ltYm9sLnNwZWNpZXMudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1
cm4gL2l0L3k7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIGxldCBvYmogPSBuZXcgUmVnRXhw
OwotICAgIGxldCBlcnJvclN0cjsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhw
ZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJzcGxp
dG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiU3ltYm9sKFN5bWJvbC5z
cGVjaWVzKSIsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsK
LSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0p
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJp
bmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncy5qcyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQt
b2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmNjgxYzk2ZWQ5MTZlYjNlYTllYThmMzE4ZDYxZDU4YjgyNzkxYjI1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLWZsYWdzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLy9AIHJ1
bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3RlZFZhbHVlLCBtc2cpIHsKLSAgICBpZiAo
IXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJvcihtc2cpOwotfQotCi0vLyBSZWdFeHAu
cHJvdG90eXBlIHdpdGggb3ZlcnJpZGRlbiBmbGFnczogVGVzdGluZyBFUzYgMjEuMi41LjExOiA1
LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0aW9u
ICgpIHsKLSAgICBsZXQgZmxhZyA9ICJmbGFncyI7Ci0gICAgbGV0IGZsYWdWYWx1ZSA9ICIiOwot
Ci0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAgbGV0IG9yaWdEZXNjcmlwdG9yID0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJvdG90eXBlLCBmbGFnKTsKLQotICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWdFeHAucHJvdG90eXBlLCBmbGFnLCB7Ci0gICAgICAg
IGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nlcy5wdXNoKGZsYWcpOwotICAg
ICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIGxldCBv
YmogPSAvaXQvOwotCi0gICAgYXNzZXJ0KGFjY2Vzc2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxs
IHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBsZXQgcmVzdWx0ID0gInNwbGl0bWUiLnNwbGl0
KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09IGZsYWcsICJQcm9wZXJ0eSBhY2Nlc3NlcyBk
byBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAgICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUi
LCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUt
c2lkZS1lZmZlY3RzMy1nbG9iYWwuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9i
YWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlZTlkODg0ZjgyOWFiNTU2YjE0
OTFhYWZlMGI2MzRjZmE0YjU3OWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXBy
b3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjggKzAsMCBAQAotLy9AIHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0
KHRlc3RlZFZhbHVlLCBtc2cpIHsKLSAgICBpZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJv
dyBFcnJvcihtc2cpOwotfQotCi0vLyBSZWdFeHAucHJvdG90eXBlIHdpdGggb3ZlcnJpZGRlbiBm
bGFnczogVGVzdGluZyBFUzYgMjEuMi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/
IEdldChyeCwgImZsYWdzIikpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgZmxhZyA9ICJnbG9i
YWwiOwotICAgIGxldCBmbGFnVmFsdWUgPSBmYWxzZTsKLQotICAgIGxldCBhY2Nlc3NlcyA9IFtd
OwotICAgIGxldCBvcmlnRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoUmVnRXhwLnByb3RvdHlwZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
UmVnRXhwLnByb3RvdHlwZSwgZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBmbGFnVmFs
dWU7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAgIGFzc2Vy
dChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7
Ci0gICAgbGV0IHJlc3VsdCA9ICJzcGxpdG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nl
c3NlcyA9PSBmbGFnLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9u
Iik7Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7
Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
c3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2Fz
ZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2M2EzYzc5YWFlZjkwNTlkMWRjYzgwNWZkYzc4NTg3MDcw
MDcyOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI4ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1
ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNn
KTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlwZSB3aXRoIG92ZXJyaWRkZW4gZmxhZ3M6IFRlc3Rp
bmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdzIGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJm
bGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAgbGV0IGZsYWcgPSAiaWdub3JlQ2FzZSI7Ci0g
ICAgbGV0IGZsYWdWYWx1ZSA9IGZhbHNlOwotCi0gICAgbGV0IGFjY2Vzc2VzID0gW107Ci0gICAg
bGV0IG9yaWdEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdF
eHAucHJvdG90eXBlLCBmbGFnKTsKLQotICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWdFeHAu
cHJvdG90eXBlLCBmbGFnLCB7Ci0gICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBhY2Nlc3Nlcy5wdXNoKGZsYWcpOwotICAgICAgICAgICAgcmV0dXJuIGZsYWdWYWx1ZTsKLSAg
ICAgICAgfQotICAgIH0pOwotICAgIGxldCBvYmogPSAvaXQvOwotCi0gICAgYXNzZXJ0KGFjY2Vz
c2VzID09ICIiLCAidW5leHBlY3RlZCBjYWxsIHRvIG92ZXJyaWRkZW4gcHJvcHMiKTsKLSAgICBs
ZXQgcmVzdWx0ID0gInNwbGl0bWUiLnNwbGl0KG9iaik7Ci0gICAgYXNzZXJ0KGFjY2Vzc2VzID09
IGZsYWcsICJQcm9wZXJ0eSBhY2Nlc3NlcyBkbyBub3QgbWF0Y2ggZXhwZWN0YXRpb24iKTsKLSAg
ICBhc3NlcnQocmVzdWx0ID09ICJzcGwsbWUiLCAiVW5leHBlY3RlZCByZXN1bHQiKTsKLX0pKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUuanMgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0
LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhYTI2ZjQ0ODMyZTFiZTIzODFjNjk3YjZkMjFiOTIwYmEyOTYzMGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxl
LXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBA
QAotLy9AIHJ1bkRlZmF1bHQKLQotZnVuY3Rpb24gYXNzZXJ0KHRlc3RlZFZhbHVlLCBtc2cpIHsK
LSAgICBpZiAoIXRlc3RlZFZhbHVlKQotICAgICAgICB0aHJvdyBFcnJvcihtc2cpOwotfQotCi0v
LyBSZWdFeHAucHJvdG90eXBlIHdpdGggb3ZlcnJpZGRlbiBmbGFnczogVGVzdGluZyBFUzYgMjEu
Mi41LjExOiA1LiBMZXQgZmxhZ3MgYmUgPyBUb1N0cmluZyg/IEdldChyeCwgImZsYWdzIikpLgot
KGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgZmxhZyA9ICJtdWx0aWxpbmUiOwotICAgIGxldCBmbGFn
VmFsdWUgPSBmYWxzZTsKLQotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwotICAgIGxldCBvcmlnRGVz
Y3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwLnByb3RvdHlw
ZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVnRXhwLnByb3RvdHlwZSwg
ZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgYWNjZXNzZXMu
cHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBmbGFnVmFsdWU7Ci0gICAgICAgIH0KLSAg
ICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwg
InVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9
ICJzcGxpdG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nlc3NlcyA9PSBmbGFnLCAiUHJv
cGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0KHJl
c3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5LmpzIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0czMtc3RpY2t5LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjc2
NGFiMmY0NDFjOWQ5N2M3OTEyYmQ3MGVhOWRiM2ZhNjYzM2MzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0
aWNreS5qcworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0K
LWZ1bmN0aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1
ZSkKLSAgICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlwZSB3
aXRoIG92ZXJyaWRkZW4gZmxhZ3M6IFRlc3RpbmcgRVM2IDIxLjIuNS4xMTogNS4gTGV0IGZsYWdz
IGJlID8gVG9TdHJpbmcoPyBHZXQocngsICJmbGFncyIpKS4KLShmdW5jdGlvbiAoKSB7Ci0gICAg
bGV0IGZsYWcgPSAic3RpY2t5IjsKLSAgICBsZXQgZmxhZ1ZhbHVlID0gZmFsc2U7Ci0KLSAgICBs
ZXQgYWNjZXNzZXMgPSBbXTsKLSAgICBsZXQgb3JpZ0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsIGZsYWcpOwotCi0gICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KFJlZ0V4cC5wcm90b3R5cGUsIGZsYWcsIHsKLSAgICAgICAgZ2V0OiBm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goZmxhZyk7Ci0gICAgICAgICAg
ICByZXR1cm4gZmxhZ1ZhbHVlOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgbGV0IG9iaiA9IC9p
dC87Ci0KLSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gIiIsICJ1bmV4cGVjdGVkIGNhbGwgdG8gb3Zl
cnJpZGRlbiBwcm9wcyIpOwotICAgIGxldCByZXN1bHQgPSAic3BsaXRtZSIuc3BsaXQob2JqKTsK
LSAgICBhc3NlcnQoYWNjZXNzZXMgPT0gZmxhZywgIlByb3BlcnR5IGFjY2Vzc2VzIGRvIG5vdCBt
YXRjaCBleHBlY3RhdGlvbiIpOwotICAgIGFzc2VydChyZXN1bHQgPT0gInNwbCxtZSIsICJVbmV4
cGVjdGVkIHJlc3VsdCIpOwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMzLXVuaWNvZGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9z
dHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzQyOWMwZjE5NzhlNzcwZDVhN2MxZmZh
YmEyNmMwZmQ4NDczMzc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXVuaWNvZGUuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwyOCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdAotCi1mdW5jdGlvbiBhc3NlcnQodGVz
dGVkVmFsdWUsIG1zZykgewotICAgIGlmICghdGVzdGVkVmFsdWUpCi0gICAgICAgIHRocm93IEVy
cm9yKG1zZyk7Ci19Ci0KLS8vIFJlZ0V4cC5wcm90b3R5cGUgd2l0aCBvdmVycmlkZGVuIGZsYWdz
OiBUZXN0aW5nIEVTNiAyMS4yLjUuMTE6IDUuIExldCBmbGFncyBiZSA/IFRvU3RyaW5nKD8gR2V0
KHJ4LCAiZmxhZ3MiKSkuCi0oZnVuY3Rpb24gKCkgewotICAgIGxldCBmbGFnID0gInVuaWNvZGUi
OwotICAgIGxldCBmbGFnVmFsdWUgPSBmYWxzZTsKLQotICAgIGxldCBhY2Nlc3NlcyA9IFtdOwot
ICAgIGxldCBvcmlnRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
UmVnRXhwLnByb3RvdHlwZSwgZmxhZyk7Ci0KLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVn
RXhwLnByb3RvdHlwZSwgZmxhZywgewotICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgYWNjZXNzZXMucHVzaChmbGFnKTsKLSAgICAgICAgICAgIHJldHVybiBmbGFnVmFsdWU7
Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBsZXQgb2JqID0gL2l0LzsKLQotICAgIGFzc2VydChh
Y2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVycmlkZGVuIHByb3BzIik7Ci0g
ICAgbGV0IHJlc3VsdCA9ICJzcGxpdG1lIi5zcGxpdChvYmopOwotICAgIGFzc2VydChhY2Nlc3Nl
cyA9PSBmbGFnLCAiUHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7
Ci0gICAgYXNzZXJ0KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19
KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQuanMgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzNC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODk5
OGUxZWJhZTExM2IzNzhlMzg5YjMyYzAwOWE2ODQ3OGFlMjRhZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8vQCBydW5EZWZhdWx0Ci0KLWZ1bmN0
aW9uIGFzc2VydCh0ZXN0ZWRWYWx1ZSwgbXNnKSB7Ci0gICAgaWYgKCF0ZXN0ZWRWYWx1ZSkKLSAg
ICAgICAgdGhyb3cgRXJyb3IobXNnKTsKLX0KLQotLy8gUmVnRXhwLnByb3RvdHlwZSB3aXRoIG92
ZXJyaWRkZW4gZXhlYzogVGVzdGluZyBFUzYgMjEuMi41LjExOiAxOS5iLiBMZXQgeiBiZSA/IFJl
Z0V4cEV4ZWMoc3BsaXR0ZXIsIFMpLgotKGZ1bmN0aW9uICgpIHsKLSAgICBsZXQgYWNjZXNzZXMg
PSBbXTsKLSAgICBsZXQgb3JpZ0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKFJlZ0V4cC5wcm90b3R5cGUsICJleGVjIik7Ci0gICAgbGV0IG9yaWdFeGVjID0gb3Jp
Z0Rlc2NyaXB0b3IudmFsdWU7Ci0KLSAgICBsZXQgb2JqID0gL2l0LzsKLSAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoUmVnRXhwLnByb3RvdHlwZSwgImV4ZWMiLCB7Ci0gICAgICAgIHZhbHVlOiBm
dW5jdGlvbihzdHIpIHsKLSAgICAgICAgICAgIGFjY2Vzc2VzLnB1c2goImV4ZWMiKTsKLSAgICAg
ICAgICAgIHJldHVybiBvcmlnRXhlYy5jYWxsKHRoaXMsIHN0cik7Ci0gICAgICAgIH0KLSAgICB9
KTsKLQotICAgIC8vIFRoZSBAQHNwbGl0IHNsb3cgcGF0aCBzaG91bGQgY2FsbCBhbiBpbnRlcm5h
bCB2ZXJzaW9uIG9mIHN1YnN0ci4gTWFrZSBzdXJlIHRoYXQKLSAgICAvLyBpdCdzIG5vdCBjYWxs
aW5nIHRoZSBwdWJsaWMgdmVyc2lvbiB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbi4KLSAgICBTdHJp
bmcucHJvdG90eXBlLnN1YnN0ciA9IGZ1bmN0aW9uKHN0YXJ0LCBsZW5ndGgpIHsKLSAgICAgICAg
dGhyb3cgRXJyb3IoIlNob3VsZCBub3QgY2FsbCBvdmVycmlkZGVuIHN1YnN0ciIpOwotICAgIH0K
LQotICAgIC8vIFRoZSBAQHNwbGl0IHNsb3cgcGF0aCBzaG91bGQgb25seSBjYWxsIHRoZSBpbnRl
cm5hbCB2ZXJzaW9uIG9mIGluY2x1ZGVzLiBNYWtlIHN1cmUKLSAgICAvLyB0aGF0IGl0J3Mgbm90
IGNhbGxpbmcgdGhlIHB1YmxpYyB2ZXJzaW9uIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuLgotICAg
IFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMgPSBmdW5jdGlvbihwYXR0ZXJuKSB7Ci0gICAgICAg
IHRocm93IEVycm9yKCJTaG91bGQgbm90IGNhbGwgb3ZlcnJpZGRlbiBpbmNsdWRlcyIpOwotICAg
IH0KLQotICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiIiwgInVuZXhwZWN0ZWQgY2FsbCB0byBvdmVy
cmlkZGVuIHByb3BzIik7Ci0gICAgbGV0IHJlc3VsdCA9ICJzcGxpdG1lIi5zcGxpdChvYmopOwot
ICAgIGFzc2VydChhY2Nlc3NlcyA9PSAiZXhlYyxleGVjLGV4ZWMsZXhlYyxleGVjLGV4ZWMiLCAi
UHJvcGVydHkgYWNjZXNzZXMgZG8gbm90IG1hdGNoIGV4cGVjdGF0aW9uIik7Ci0gICAgYXNzZXJ0
KHJlc3VsdCA9PSAic3BsLG1lIiwgIlVuZXhwZWN0ZWQgcmVzdWx0Iik7Ci19KSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQwMWUwMWUzNGM1MzBhNTU0YzZk
YWFjYmJjYmQ1ZjllNWM5NDI5Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNo
LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEwICswLDAgQEAKLUpTUmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxl
LXNpZGUtZWZmZWN0cwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJv
dG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDE0Yjk5OWNjMjM1MGRlNDNk
N2UwNTY1NDgyMjdiYmE2MTcxMDA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFy
Y2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0
cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3NjZiNTI5NDM5MTk5YTgxOWY2NGIzODQzOGNhNzNlMDE2MGJjYTM3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMy
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9z
dHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIKLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHMyLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90
b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyY2RhNzI0ZWYyOTJkZGIwN2JiZjNlM2E2YWRhZDQ0OGUwNGE2ZTQ2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNlYXJj
aC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUt
c2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZl
Y3RzMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZGUyZDU5
MjhlNzU0NmRhN2Q1MDVmOGVmNGI3ODZiNmZkYjg0N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJv
dG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc2Vh
cmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMuaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcz
MjlhODI4ZDQ4NjQ5Y2RlYjJiNDdhYzFjZGUyMWE1ZDc1NDQyZWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJp
bmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHM0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5n
LXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNkZjI4OThkNmYyMjEyYTkwN2M4NWNjMmJk
MjBlOGRlNGYxMDg0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHM0Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5
cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q2ZmJhODQyYzQ4OGEyODU1YTc0
MjgyOTA0ZjA5ZjI3NTMzNDhjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc2VhcmNo
LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAs
MCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3Ry
aW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE3MjUwMDE4ZWU3ZjMxNjk3OTYwYWNiMjYxZjhiMTY4ZjhiNmY3NGYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9zdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMTNkNjQzNGFhNjEyMjY5ZTAzODQwZGI3NzRiM2ZlYjg1MDk0YTdlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxl
LXNpZGUtZWZmZWN0czItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJp
bmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyZjZmNTg2ZjRlYzRhYTlhMDljMDI1M2Fi
ZGQ1N2I4NTMxZjJkZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzMi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlw
ZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NiMDAzNjIyZjJhMWRlMGFkYzZmYWMw
ZWZmODFhY2MzODQ4MDM0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2Jz
ZXJ2YWJsZS1zaWRlLWVmZmVjdHMyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZmxhZ3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM0NGVjYTNjMTRhMTE2NDk0ZTY1ZWU0N2IwNDhiMDU1YmJiNGEwZmMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZl
Y3RzMy1mbGFncy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1K
U1JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
ZmxhZ3MKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZmxhZ3MuaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
ZmxhZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU1ZDI2ZDMwZDg2ZTc2
NTAyMjlmOGY4MzJmMDEyZWFmOTlkN2ZkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1m
bGFncy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtZ2xvYmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRmZGRkNTVjZDA0NzZlMjE1
NTFiNTk4NjcxOTUyMzUxZDI3MjE5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWdsb2JhbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWds
b2JhbC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0
LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1nbG9iYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjAxYjU2ZmFhZjBhNzU4MTQ2Y2I2ZDJmNmQ3NWMyYWM3NTY1NmZiYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMz
LWdsb2JhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1pZ25vcmVDYXNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNl
cnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYyOTQ1OTYwN2ZiMjUxYjg4YWM3NWY1OGViOWY2Nzc0YmQyNTFm
YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy1pZ25vcmVDYXNlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLUpTUmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy1pZ25vcmVDYXNlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmlu
Zy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZh
YmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMjJmNDQ0NmMyZjJlZTM5NTZkNjU0NjA3MzcyMjU3YjBmZmI5ZjlmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdu
b3JlQ2FzZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtaWdub3JlQ2FzZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5n
LXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjMjU0OWMxMDE4Mzc3ZjQwZjhmMTM4YWYzYTljZmFlOGZk
MDk4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLW11bHRpbGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czMtbXVsdGlsaW5lCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmlu
Zy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZS5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODJkODcxNTliODczZDdhYmRkYjQ3MWU5MGFjNjViYzBhYjlkN2I0MC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRp
bGluZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtbXVsdGlsaW5lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJv
dG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlja3ktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzMy1zdGlja3ktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkODY5MTNkZmRjNjg2YzYyMWQ0ZjRiYTg3NDUwNDQwZTRhYzY2MzRiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMt
c3RpY2t5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVn
cmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1zdGlj
a3kKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxp
dC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0
aWNreS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjM4YWM1YmRiOWViZjYy
NzFkYWM5MWFkNDY5ZTNmNzM0MDJkNGJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtc3RpY2t5Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1z
dGlja3kuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLXVuaWNvZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
dHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWNiYmIwOTA4NmFjNjdl
YjRlYzcwOGVlZWIyZGZhOWNkZGU5YTMyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUt
c3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXVuaWNvZGUtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXVuaWNvZGUKLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0
czMtdW5pY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDRmMjc4ZmYxYTNkZTFkM2Y4NWI2YTljODg0ZjBmYzM2YjhmMmQx
NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMy11bmljb2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
dHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHM0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjY4ZWRlMzU4N2Q2YmUxMjVmNzYyMDkyYjJiZjFkYjBjZjRmMDIyNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHM0LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9zdHJpbmct
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNAotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzNC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MGE4ZjVmYmFiM2U0MDFkZGJmNDZlMmZmM2I0YzY0YmQ1NjNhNGE0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHM0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0
eU5hbWVzLmpzCmluZGV4IDY4ZTkyMmM1N2Q4NGEwNGMzN2NlNDcxMTJjZTMxNWQ2YmQ4MWJkMjQu
LjZmNTMxNmI3YWFkMTc1NjAzNmNlMzQ4MDFmZTU1NmJlMTdlNGNjMDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFt
ZXMuanMKQEAgLTcwLDcgKzcwLDcgQEAgdmFyIGV4cGVjdGVkUHJvcGVydHlOYW1lc1NldCA9IHsK
ICAgICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICduYW1l
JywgJ3RvU3RyaW5nJ10iLAogICAgICJNYXRoIjogIlsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUn
LCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNp
bicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywn
Y29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwn
LCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScs
J3JvdW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10i
LAogICAgICJKU09OIjogIlsncGFyc2UnLCAnc3RyaW5naWZ5J10iLAotICAgICJTeW1ib2wiOiAi
Wydmb3InLCAnaGFzSW5zdGFuY2UnLCAnaXNDb25jYXRTcHJlYWRhYmxlJywgJ2l0ZXJhdG9yJywg
J2tleUZvcicsICdsZW5ndGgnLCAnbWF0Y2gnLCAnbmFtZScsICdwcm90b3R5cGUnLCAnc2VhcmNo
JywgJ3NwZWNpZXMnLCAnc3BsaXQnLCAndG9QcmltaXRpdmUnLCAndG9TdHJpbmdUYWcnLCAndW5z
Y29wYWJsZXMnXSIsCisgICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdoYXNJbnN0YW5jZScsICdpc0Nv
bmNhdFNwcmVhZGFibGUnLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICdtYXRjaCcs
ICduYW1lJywgJ3Byb3RvdHlwZScsICdzZWFyY2gnLCAnc3BlY2llcycsICd0b1ByaW1pdGl2ZScs
ICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddIiwKICAgICAiU3ltYm9sLnByb3RvdHlwZSI6
ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIsCiAgICAgIk1hcCI6ICJb
J2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddIiwKICAgICAiTWFwLnByb3RvdHlwZSI6ICJb
J2NsZWFyJywgJ2NvbnN0cnVjdG9yJywgJ2RlbGV0ZScsICdlbnRyaWVzJywgJ2ZvckVhY2gnLCAn
Z2V0JywgJ2hhcycsICdrZXlzJywgJ3NldCcsICdzaXplJywgJ3ZhbHVlcyddIiwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3NwdXRuaWsvQ29uZm9ybWFuY2UvMTVfTmF0aXZlX09iamVjdHMvMTUu
NV9TdHJpbmcvMTUuNS40LzE1LjUuNC4xNF9TdHJpbmcucHJvdG90eXBlLnNwbGl0L1MxNS41LjQu
MTRfQTFfVDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3B1dG5pay9Db25mb3JtYW5jZS8x
NV9OYXRpdmVfT2JqZWN0cy8xNS41X1N0cmluZy8xNS41LjQvMTUuNS40LjE0X1N0cmluZy5wcm90
b3R5cGUuc3BsaXQvUzE1LjUuNC4xNF9BMV9UMy1leHBlY3RlZC50eHQKaW5kZXggOGRjZGFmNzAy
YWZhNzMyYTFiMTg1NWJjN2I3ZTc0YmQxZDU5NjdmOS4uZTIxMGI5N2EyMTI2YjExYmI2NDE1OGYy
ZDlmZjA2ZTA0ODFkZDFhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3B1dG5pay9Db25mb3Jt
YW5jZS8xNV9OYXRpdmVfT2JqZWN0cy8xNS41X1N0cmluZy8xNS41LjQvMTUuNS40LjE0X1N0cmlu
Zy5wcm90b3R5cGUuc3BsaXQvUzE1LjUuNC4xNF9BMV9UMy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3B1dG5pay9Db25mb3JtYW5jZS8xNV9OYXRpdmVfT2JqZWN0cy8xNS41X1N0cmlu
Zy8xNS41LjQvMTUuNS40LjE0X1N0cmluZy5wcm90b3R5cGUuc3BsaXQvUzE1LjUuNC4xNF9BMV9U
My1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiBTMTUuNS40LjE0X0ExX1QzCiAKLUZBSUwg
VHlwZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnNwbGl0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSB1bmRlZmluZWQKK0ZBSUwgVHlwZUVycm9yOiBUeXBlIGVycm9yCiAKIFRFU1QgQ09NUExF
VEUKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>