<?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>306982</bug_id>
          
          <creation_ts>2026-02-04 13:36:08 -0800</creation_ts>
          <short_desc>REGRESSION(306710@main): Breaks meet &lt;https://bugs.webkit.org/show_bug.cgi?id=306963&gt;</short_desc>
          <delta_ts>2026-02-04 19:43:12 -0800</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>306740</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>justin</cc>
    
    <cc>sosuke</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2178041</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-02-04 13:36:08 -0800</bug_when>
    <thetext>https://commits.webkit.org/306710@main introduced a regression:
Breaks meet &lt;https://bugs.webkit.org/show_bug.cgi?id=306963&gt;

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>2178043</commentid>
    <comment_count>1</comment_count>
      <attachid>478254</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-02-04 13:36:14 -0800</bug_when>
    <thetext>Created attachment 478254
REVERT of 306710@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>2178045</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-02-04 13:37:32 -0800</bug_when>
    <thetext>justin@justinmichaud.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/metadata/contributors.json.

Rejecting attachment 478254 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2178207</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-02-04 19:42:35 -0800</bug_when>
    <thetext>Committed 306831@main (af91da05aa11): &lt;https://commits.webkit.org/306831@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478254.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2178210</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-02-04 19:43:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/169675475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478254</attachid>
            <date>2026-02-04 13:36:14 -0800</date>
            <delta_ts>2026-02-04 19:42:36 -0800</delta_ts>
            <desc>REVERT of 306710@main</desc>
            <filename>bug-306982-20260204213613.patch</filename>
            <type>text/plain</type>
            <size>37286</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBjMGY3YzU1OTU0ZWJjN2ZhNzkzNjkxNzE1OGZiZWFmZDRjODE2YjU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDQgRmViIDIwMjYgMjE6MzY6MTEgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMzA2NzEwQG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzA2OTgyCgpCcmVha3MgbWVldCA8aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNjk2Mz4KClJldmVydGVkIGNoYW5nZXNldDoKCiJbSlND
XSBPcHRpbWl6ZSBgWy4uLm1hcC5rZXlzKCldYCBhbmQgYFsuLi5tYXAudmFsdWVzKCldYCIKaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNjc0MApodHRwczovL2NvbW1p
dHMud2Via2l0Lm9yZy8zMDY3MTBAbWFpbgotLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TcGVjdWxhdGVkVHlwZS5oICB8ICAgNSAtCiAuLi4vZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmggICAgICAgfCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAgICB8ICAgNCAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmggICAgICAgICAgfCAgIDcgLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b2RlLmNwcCAgICAgIHwgICA2IC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29k
ZS5oICAgICAgICB8ICAgMSAtCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCAg
ICAgICAgICAgfCAgIDUgLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcCAgIHwgIDE4IC0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmggICAgIHwgICAxIC0KIC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwICB8ICAxMCAtLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwIHwgICA1IC0KIC4uLi9ydW50aW1lL0NvbW1vblNsb3dQYXRoc0lubGluZXMuaCAgICAgICAg
ICB8ICAxMSAtLQogLi4uL3J1bnRpbWUvSlNDZWxsQnV0dGVyZmx5LmNwcCAgICAgICAgICAgICAg
IHwgIDczIC0tLS0tLS0tLQogLi4uL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsQnV0dGVy
Zmx5LmggIHwgICAyIC0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwSXRlcmF0
b3IuaCB8ICAgMiAtCiAuLi4vcnVudGltZS9KU01hcEl0ZXJhdG9ySW5saW5lcy5oICAgICAgICAg
ICAgfCAgMjMgLS0tCiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zcHJlYWQtbWFwLWtleXMuanMg
ICAgfCAgMTYgLS0KIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3NwcmVhZC1tYXAtdmFsdWVzLmpz
ICB8ICAxNiAtLQogSlNUZXN0cy9zdHJlc3Mvc3ByZWFkLW1hcC1pdGVyYXRvci1kZmctZnRsLmpz
IHwgIDc5IC0tLS0tLS0tLS0KIC4uLi9zcHJlYWQtbWFwLWl0ZXJhdG9yLWhhdmluZy1hLWJhZC10
aW1lLmpzICB8IDE0OCAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9zdHJlc3Mvc3ByZWFkLW1hcC1p
dGVyYXRvci1vc3ItZXhpdC5qcyAgICB8IDEyMyAtLS0tLS0tLS0tLS0tLS0KIEpTVGVzdHMvc3Ry
ZXNzL3NwcmVhZC1tYXAtaXRlcmF0b3IuanMgICAgICAgICB8IDE0OCAtLS0tLS0tLS0tLS0tLS0t
LS0KIDIyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNzA1IGRlbGV0aW9ucygtKQog
ZGVsZXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3NwcmVhZC1tYXAta2V5
cy5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3NwcmVhZC1t
YXAtdmFsdWVzLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3Mvc3ByZWFkLW1h
cC1pdGVyYXRvci1kZmctZnRsLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgSlNUZXN0cy9zdHJlc3Mv
c3ByZWFkLW1hcC1pdGVyYXRvci1oYXZpbmctYS1iYWQtdGltZS5qcwogZGVsZXRlIG1vZGUgMTAw
NjQ0IEpTVGVzdHMvc3RyZXNzL3NwcmVhZC1tYXAtaXRlcmF0b3Itb3NyLWV4aXQuanMKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3N0cmVzcy9zcHJlYWQtbWFwLWl0ZXJhdG9yLmpzCgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBm
NmI3YjkyZDVhZjYuLmQ5NTg2NzgzMjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTI1MSwxMSArMjUxLDYgQEAgaW5saW5lIGJv
b2wgaXNTZXRPYmplY3RTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICByZXR1
cm4gdmFsdWUgPT0gU3BlY1NldE9iamVjdDsKIH0KIAotaW5saW5lIGJvb2wgaXNNYXBJdGVyYXRv
clNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQotewotICAgIHJldHVybiB2YWx1ZSA9
PSBTcGVjTWFwSXRlcmF0b3JPYmplY3Q7Ci19Ci0KIGlubGluZSBib29sIGlzR2xvYmFsUHJveHlT
cGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPT0g
U3BlY0dsb2JhbFByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDQ1MDg1MWNkYmU4MS4uMzIw
ZGU4OTMwNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zNjgyLDggKzM2ODIsOCBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1
bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICBpZiAoIW1fZ3JhcGguY2FuRG9GYXN0U3ByZWFkKG5vZGUsIGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpKSkgewotICAgICAgICAgICAgICAgIC8vIFNldE9iamVjdFVzZSBhbmQg
TWFwSXRlcmF0b3JPYmplY3RVc2UgaGF2ZSBubyBzaWRlIGVmZmVjdHMgc2luY2Ugd2UgaXRlcmF0
ZSBkaXJlY3RseSBvdmVyIGludGVybmFsIHN0b3JhZ2UuCi0gICAgICAgICAgICAgICAgaWYgKG5v
ZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBTZXRPYmplY3RVc2UgfHwgbm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpID09IE1hcEl0ZXJhdG9yT2JqZWN0VXNlKQorICAgICAgICAgICAgICAgIC8vIFNl
dE9iamVjdFVzZSBoYXMgbm8gc2lkZSBlZmZlY3RzIHNpbmNlIHdlIGl0ZXJhdGUgZGlyZWN0bHkg
b3ZlciBpbnRlcm5hbCBzdG9yYWdlLgorICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gU2V0T2JqZWN0VXNlKQogICAgICAgICAgICAgICAgICAgICBkaWRGb2xk
Q2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICBjbG9iYmVyV29ybGQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IDZmYzMxMWZkZDM0ZS4uN2M4Mjg1NGNhZGE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTE5NzcsMTAgKzE5NzcsNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgICYmIG1fZ3JhcGguaXNXYXRjaGluZ1NldEl0ZXJhdG9y
UHJvdG9jb2xXYXRjaHBvaW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkKICAgICAgICAgICAgICAg
ICAmJiBtX2dyYXBoLmlzV2F0Y2hpbmdIYXZpbmdBQmFkVGltZVdhdGNocG9pbnQobm9kZS0+Y2hp
bGQxKCkubm9kZSgpKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPFNldE9iamVjdFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZU1hcEl0ZXJhdG9yT2JqZWN0KCkKLSAgICAgICAgICAgICAgICAmJiBtX2dyYXBo
LmlzV2F0Y2hpbmdNYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludChub2RlLT5jaGlsZDEoKS5u
b2RlKCkpCi0gICAgICAgICAgICAgICAgJiYgbV9ncmFwaC5pc1dhdGNoaW5nSGF2aW5nQUJhZFRp
bWVXYXRjaHBvaW50KG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpCi0gICAgICAgICAgICAgICAgZml4
RWRnZTxNYXBJdGVyYXRvck9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKaW5kZXgg
MmY3ZWU0ZGZmNDczLi4yYTRkNjU1ZGQ0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKQEAgLTkwOSwxMyArOTA5LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaXNXYXRj
aGluZ0dsb2JhbE9iamVjdFdhdGNocG9pbnQoZ2xvYmFsT2JqZWN0LCBzZXQsIExpbmtlcklSOjpU
eXBlOjpTZXRJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCk7CiAgICAgfQogCi0gICAgYm9v
bCBpc1dhdGNoaW5nTWFwSXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnQoTm9kZSogbm9kZSkKLSAg
ICB7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBnbG9iYWxPYmplY3RG
b3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLSAgICAgICAgSW5saW5lV2F0Y2hwb2ludFNldCYg
c2V0ID0gZ2xvYmFsT2JqZWN0LT5tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCgpOwot
ICAgICAgICByZXR1cm4gaXNXYXRjaGluZ0dsb2JhbE9iamVjdFdhdGNocG9pbnQoZ2xvYmFsT2Jq
ZWN0LCBzZXQsIExpbmtlcklSOjpUeXBlOjpNYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNl
dCk7Ci0gICAgfQotCiAgICAgYm9vbCBpc1dhdGNoaW5nTnVtYmVyVG9TdHJpbmdXYXRjaHBvaW50
KE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAppbmRleCA4NzFlZGEyMjdkNTAuLjMyMmVmNzg0MDAz
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuY3BwCkBAIC00OSw3ICs0
OSw2IEBAIEpJVERhdGE6OkpJVERhdGEodW5zaWduZWQgc3R1YkluZm9TaXplLCB1bnNpZ25lZCBw
b29sU2l6ZSwgY29uc3QgSklUQ29kZSYgaml0Q29kCiAgICAgICAgIGNhc2UgTGlua2VySVI6OlR5
cGU6OkFycmF5QnVmZmVyRGV0YWNoV2F0Y2hwb2ludFNldDoKICAgICAgICAgY2FzZSBMaW5rZXJJ
Ujo6VHlwZTo6QXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDoKICAgICAgICAgY2Fz
ZSBMaW5rZXJJUjo6VHlwZTo6U2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQ6Ci0gICAg
ICAgIGNhc2UgTGlua2VySVI6OlR5cGU6Ok1hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBvaW50U2V0
OgogICAgICAgICBjYXNlIExpbmtlcklSOjpUeXBlOjpOdW1iZXJUb1N0cmluZ1dhdGNocG9pbnRT
ZXQ6CiAgICAgICAgIGNhc2UgTGlua2VySVI6OlR5cGU6OlN0cnVjdHVyZUNhY2hlQ2xlYXJlZFdh
dGNocG9pbnRTZXQ6CiAgICAgICAgIGNhc2UgTGlua2VySVI6OlR5cGU6OlN0cmluZ1RvU3RyaW5n
V2F0Y2hwb2ludFNldDoKQEAgLTE1NCwxMSArMTUzLDYgQEAgYm9vbCBKSVREYXRhOjp0cnlJbml0
aWFsaXplKFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEpJVENvZGUmIGppdENv
ZGUKICAgICAgICAgICAgIHN1Y2Nlc3MgJj0gYXR0ZW1wdFRvV2F0Y2goY29kZUJsb2NrLCBtX2ds
b2JhbE9iamVjdC0+c2V0SXRlcmF0b3JQcm90b2NvbFdhdGNocG9pbnRTZXQoKSwgd2F0Y2hwb2lu
dCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIExpbmtlcklS
OjpUeXBlOjpNYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldDogewotICAgICAgICAgICAg
YXV0byYgd2F0Y2hwb2ludCA9IG1fd2F0Y2hwb2ludHNbaW5kZXhPZldhdGNocG9pbnRzKytdOwot
ICAgICAgICAgICAgc3VjY2VzcyAmPSBhdHRlbXB0VG9XYXRjaChjb2RlQmxvY2ssIG1fZ2xvYmFs
T2JqZWN0LT5tYXBJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCgpLCB3YXRjaHBvaW50KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgICAgIGNhc2UgTGlua2VySVI6OlR5
cGU6Ok51bWJlclRvU3RyaW5nV2F0Y2hwb2ludFNldDogewogICAgICAgICAgICAgYXV0byYgd2F0
Y2hwb2ludCA9IG1fd2F0Y2hwb2ludHNbaW5kZXhPZldhdGNocG9pbnRzKytdOwogICAgICAgICAg
ICAgc3VjY2VzcyAmPSBhdHRlbXB0VG9XYXRjaChjb2RlQmxvY2ssIG1fZ2xvYmFsT2JqZWN0LT5u
dW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQoKSwgd2F0Y2hwb2ludCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZS5oCmluZGV4IDhkODkwMmU0OTMyZC4uZjEyNzJmZDkzMzgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaApAQCAtOTYsNyArOTYsNiBAQCBw
dWJsaWM6CiAgICAgICAgIEFycmF5QnVmZmVyRGV0YWNoV2F0Y2hwb2ludFNldCwKICAgICAgICAg
QXJyYXlJdGVyYXRvclByb3RvY29sV2F0Y2hwb2ludFNldCwKICAgICAgICAgU2V0SXRlcmF0b3JQ
cm90b2NvbFdhdGNocG9pbnRTZXQsCi0gICAgICAgIE1hcEl0ZXJhdG9yUHJvdG9jb2xXYXRjaHBv
aW50U2V0LAogICAgICAgICBOdW1iZXJUb1N0cmluZ1dhdGNocG9pbnRTZXQsCiAgICAgICAgIFN0
cnVjdHVyZUNhY2hlQ2xlYXJlZFdhdGNocG9pbnRTZXQsCiAgICAgICAgIFN0cmluZ1RvU3RyaW5n
V2F0Y2hwb2ludFNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYzM0YTEw
NWMzYWZlLi5iM2RkMDc4NjAyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBA
IC0zMjUzLDExICszMjUzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gaXNTZXRPYmplY3RT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwogICAgIH0KIAotICAgIGJvb2wgc2hvdWxkU3BlY3Vs
YXRlTWFwSXRlcmF0b3JPYmplY3QoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzTWFwSXRlcmF0
b3JTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwotICAgIH0KLQogICAgIGJvb2wgc2hvdWxkU3Bl
Y3VsYXRlR2xvYmFsUHJveHkoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGlzR2xvYmFsUHJveHlT
cGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggMTkwNmE5Nzg1ZGI2Li4zMzVkY2I0NDE2NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtNjYsNyArNjYsNiBA
QAogI2luY2x1ZGUgIkpTTGV4aWNhbEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIK
ICNpbmNsdWRlICJKU01hcEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiSlNNYXBJdGVyYXRvcklubGlu
ZXMuaCIKICNpbmNsdWRlICJKU1Byb21pc2VDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTUHJv
bWlzZVJlYWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiCkBA
IC00Njg4LDIzICs0Njg3LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNw
cmVhZFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBPUEVSQVRJ
T05fUkVUVVJOKHNjb3BlLCBKU0NlbGxCdXR0ZXJmbHk6OmNyZWF0ZUZyb21TZXQoZ2xvYmFsT2Jq
ZWN0LCBzZXQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVh
ZE1hcEl0ZXJhdG9yLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBjZWxsKSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBBU1NFUlQoanNEeW5h
bWljQ2FzdDxKU01hcEl0ZXJhdG9yKj4oY2VsbCkpOwotICAgIEpTTWFwSXRlcmF0b3IqIGl0ZXJh
dG9yID0ganNDYXN0PEpTTWFwSXRlcmF0b3IqPihjZWxsKTsKLSAgICAvLyBFbnRyaWVzIGlzIG5v
dCBzdXBwb3J0ZWQgaW4gdGhlIGZhc3QgcGF0aCAtIGl0IHJlcXVpcmVzIGNyZWF0aW5nIFtrZXks
IHZhbHVlXSBwYWlycy4KLSAgICAvLyBUaGUgc2xvdyBwYXRoIGluIENvbW1vblNsb3dQYXRoc0lu
bGluZXMuaCBmaWx0ZXJzIG91dCBFbnRyaWVzLCBidXQgREZHL0ZUTCBtYXkgc3RpbGwKLSAgICAv
LyByZWFjaCBoZXJlIGlmIHRoZSBjb2RlIHdhcyBjb21waWxlZCBiZWZvcmUgd2Ugb2JzZXJ2ZWQg
RW50cmllcyB1c2FnZS4KLSAgICBBU1NFUlQoaXRlcmF0b3ItPmtpbmQoKSA9PSBJdGVyYXRpb25L
aW5kOjpLZXlzIHx8IGl0ZXJhdG9yLT5raW5kKCkgPT0gSXRlcmF0aW9uS2luZDo6VmFsdWVzKTsK
LQotICAgIE9QRVJBVElPTl9SRVRVUk4oc2NvcGUsIEpTQ2VsbEJ1dHRlcmZseTo6Y3JlYXRlRnJv
bU1hcEl0ZXJhdG9yKGdsb2JhbE9iamVjdCwgaXRlcmF0b3IpKTsKLX0KLQogSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAppbmRleCAyNDJiNWE5YWQ0YzguLjQzNzZjYTdmZWVkNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTQwMSw3ICs0MDEsNiBAQCBKU0NfREVDTEFSRV9O
T0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZk5vblN0cmluZ0lkZW50
aXR5VmFsdWVDbwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEZh
c3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TcHJlYWRTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3By
ZWFkTWFwSXRlcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ByZWFkR2VuZXJpYywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCB2b2lkKiwgdWludDMyX3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCB1bnNp
Z25lZCBsZW5ndGgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggM2EwMDNjNDg2MzAyLi42NGU4MWNiYzE5ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC04OTY1LDgg
Kzg5NjUsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3ByZWFkKE5vZGUqIG5vZGUp
CiAgICAgICAgIHNwZWN1bGF0ZUFycmF5KG5vZGUtPmNoaWxkMSgpLCBhcmd1bWVudCk7CiAgICAg
ZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFNldE9iamVjdFVzZSkKICAgICAg
ICAgc3BlY3VsYXRlU2V0T2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBhcmd1bWVudCk7Ci0gICAgZWxz
ZSBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IE1hcEl0ZXJhdG9yT2JqZWN0VXNlKQot
ICAgICAgICBzcGVjdWxhdGVNYXBJdGVyYXRvck9iamVjdChub2RlLT5jaGlsZDEoKSwgYXJndW1l
bnQpOwogCiAgICAgaWYgKG1fZ3JhcGguY2FuRG9GYXN0U3ByZWFkKG5vZGUsIG1fc3RhdGUuZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSkpKSB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTkxNDAsMTQg
KzkxMzgsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3ByZWFkKE5vZGUqIG5vZGUp
CiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU3ByZWFkU2V0LCByZXN1bHRHUFIsIExp
bmthYmxlQ29uc3RhbnQ6Omdsb2JhbE9iamVjdCgqdGhpcywgbm9kZSksIGFyZ3VtZW50KTsKICAg
ICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVF
NjQpCi0gICAgfSBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gTWFwSXRlcmF0
b3JPYmplY3RVc2UpIHsKLSAgICAgICAgLy8gTWFwSXRlcmF0b3Igc3ByZWFkIGRvZXMgbm90IHVz
ZSBpbmxpbmUgZmFzdCBwYXRoOyBjYWxsIHRoZSBDKysgb3BlcmF0aW9uIGRpcmVjdGx5LgotICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOwotCi0gICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJl
c3VsdCh0aGlzKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLSAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TcHJlYWRNYXBJdGVyYXRvciwgcmVzdWx0R1BS
LCBMaW5rYWJsZUNvbnN0YW50OjpnbG9iYWxPYmplY3QoKnRoaXMsIG5vZGUpLCBhcmd1bWVudCk7
Ci0gICAgICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggZGIzOWM3NjdhMGVmLi4zODU4MjRkZDFmNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEwMTg4
LDggKzEwMTg4LDYgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgc3Bl
Y3VsYXRlQXJyYXkobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIGVsc2UgaWYgKG1fbm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IFNldE9iamVjdFVzZSkKICAgICAgICAgICAgIHNwZWN1bGF0
ZVNldE9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgZWxzZSBpZiAobV9ub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gTWFwSXRlcmF0b3JPYmplY3RVc2UpCi0gICAgICAgICAgICBz
cGVjdWxhdGVNYXBJdGVyYXRvck9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKIAogICAgICAgICBp
ZiAobV9ncmFwaC5jYW5Eb0Zhc3RTcHJlYWQobV9ub2RlLCBtX3N0YXRlLmZvck5vZGUobV9ub2Rl
LT5jaGlsZDEoKSkpKSB7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb3B5T25Xcml0ZUNvbnRp
Z3VvdXNDaGVjayA9IG1fb3V0Lm5ld0Jsb2NrKCk7CkBAIC0xMDM1NCw5ICsxMDM1Miw2IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRp
bnVhdGlvbiwgbGFzdE5leHQpOwogICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQucGhpKHBvaW50
ZXJUeXBlKCksIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpOwogICAgICAgICAgICAgbXV0YXRvckZl
bmNlKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
TWFwSXRlcmF0b3JPYmplY3RVc2UpIHsKLSAgICAgICAgICAgIC8vIE1hcEl0ZXJhdG9yIHNwcmVh
ZCBkb2VzIG5vdCB1c2UgaW5saW5lIGZhc3QgcGF0aDsgY2FsbCB0aGUgQysrIG9wZXJhdGlvbiBk
aXJlY3RseS4KLSAgICAgICAgICAgIHJlc3VsdCA9IHZtQ2FsbChwb2ludGVyVHlwZSgpLCBvcGVy
YXRpb25TcHJlYWRNYXBJdGVyYXRvciwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgYXJndW1l
bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlc3VsdCA9IHZtQ2FsbChwb2ludGVy
VHlwZSgpLCBvcGVyYXRpb25TcHJlYWRHZW5lcmljLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3Qp
LCBhcmd1bWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRoc0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRoc0lubGluZXMuaAppbmRleCBhOGU5YmNiZDdlMDcuLjRlZjlkNGZhYjI4
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRoc0lubGluZXMuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNsb25lZEFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkRpcmVjdEFy
Z3VtZW50cy5oIgotI2luY2x1ZGUgIkpTTWFwSXRlcmF0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SlNTZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAKQEAgLTIwMiwx
NiArMjAxLDYgQEAgQUxXQVlTX0lOTElORSBKU0NlbGxCdXR0ZXJmbHkqIHRyeVNwcmVhZEZhc3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWwKICAgICAgICAgICAgIHJldHVybiBK
U0NlbGxCdXR0ZXJmbHk6OmNyZWF0ZUZyb21TZXQoZ2xvYmFsT2JqZWN0LCBzZXQpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgY2FzZSBKU01hcEl0ZXJhdG9yVHlwZTogewot
ICAgICAgICBhdXRvKiBpdGVyYXRvciA9IGpzQ2FzdDxKU01hcEl0ZXJhdG9yKj4oaXRlcmFibGUp
OwotICAgICAgICAvLyBJdGVyYXRpb25LaW5kOjpFbnRyaWVzIHJlcXVpcmVzIG1vcmUgY29tcGxl
eCBwcm9jZXNzaW5nIChyZXR1cm5zIFtrZXksIHZhbHVlXSBwYWlycykuCi0gICAgICAgIC8vIFRo
aXMgb3B0aW1pemF0aW9uIG9ubHkgaGFuZGxlcyBLZXlzIGFuZCBWYWx1ZXMuCi0gICAgICAgIGlm
IChpdGVyYXRvci0+a2luZCgpID09IEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaWYgKGl0ZXJhdG9yLT5pc0l0ZXJhdG9yUHJvdG9j
b2xGYXN0QW5kTm9uT2JzZXJ2YWJsZSgpKSBbW2xpa2VseV1dCi0gICAgICAgICAgICByZXR1cm4g
SlNDZWxsQnV0dGVyZmx5OjpjcmVhdGVGcm9tTWFwSXRlcmF0b3IoZ2xvYmFsT2JqZWN0LCBpdGVy
YXRvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGxCdXR0ZXJmbHkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsQnV0dGVyZmx5LmNwcAppbmRleCBjZDQyYjJjYzI3ZDAuLjQzODdjNDhj
YTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsQnV0
dGVyZmx5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxCdXR0
ZXJmbHkuY3BwCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5o
IgogI2luY2x1ZGUgIkNsb25lZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50
cy5oIgotI2luY2x1ZGUgIkpTTWFwSW5saW5lcy5oIgotI2luY2x1ZGUgIkpTTWFwSXRlcmF0b3JJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNTZXRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCkBAIC0yNzMsNzcgKzI3MSw2
IEBAIEpTQ2VsbEJ1dHRlcmZseSogSlNDZWxsQnV0dGVyZmx5OjpjcmVhdGVGcm9tU2V0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlND
ZWxsQnV0dGVyZmx5KiBKU0NlbGxCdXR0ZXJmbHk6OmNyZWF0ZUZyb21NYXBJdGVyYXRvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01hcEl0ZXJhdG9yKiBpdGVyYXRvcikKLXsKLSAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgLy8gSWYgdGhlIGl0ZXJhdG9yIGlzIGNsb3NlZCwgcmV0
dXJuIGFuIGVtcHR5IGFycmF5LgotICAgIEpTQ2VsbCogc2VudGluZWwgPSB2bS5vcmRlcmVkSGFz
aFRhYmxlU2VudGluZWwoKTsKLSAgICBKU0NlbGwqIHN0b3JhZ2UgPSBpdGVyYXRvci0+dHJ5R2V0
U3RvcmFnZSgpOwotICAgIGlmIChzdG9yYWdlID09IHNlbnRpbmVsKSB7Ci0gICAgICAgIEpTQ2Vs
bEJ1dHRlcmZseSogcmVzdWx0ID0gSlNDZWxsQnV0dGVyZmx5Ojp0cnlDcmVhdGUodm0sIHZtLmNl
bGxCdXR0ZXJmbHlTdHJ1Y3R1cmUoQ29weU9uV3JpdGVBcnJheVdpdGhDb250aWd1b3VzKSwgMCk7
Ci0gICAgICAgIGlmICghcmVzdWx0KSBbW3VubGlrZWx5XV0gewotICAgICAgICAgICAgdGhyb3dP
dXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAg
ICBKU01hcCogbWFwID0gaXRlcmF0b3ItPml0ZXJhdGVkT2JqZWN0KCk7Ci0KLSAgICAvLyBJZiBz
dG9yYWdlIGlzIG51bGwgKGVtcHR5IG1hcCksIGdldCBpdCBmcm9tIHRoZSBtYXAuCi0gICAgaWYg
KCFzdG9yYWdlKSB7Ci0gICAgICAgIHN0b3JhZ2UgPSBtYXAtPnN0b3JhZ2UoKTsKLSAgICAgICAg
aWYgKCFzdG9yYWdlKSB7Ci0gICAgICAgICAgICBKU0NlbGxCdXR0ZXJmbHkqIHJlc3VsdCA9IEpT
Q2VsbEJ1dHRlcmZseTo6dHJ5Q3JlYXRlKHZtLCB2bS5jZWxsQnV0dGVyZmx5U3RydWN0dXJlKENv
cHlPbldyaXRlQXJyYXlXaXRoQ29udGlndW91cyksIDApOwotICAgICAgICAgICAgaWYgKCFyZXN1
bHQpIFtbdW5saWtlbHldXSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIC8vIENhbGN1bGF0ZSB0aGUgbWF4aW11bSBwb3NzaWJsZSBsZW5ndGggKHRoaXMg
aXMgYW4gdXBwZXIgYm91bmQpLgotICAgIC8vIFRoZSBhY3R1YWwgbGVuZ3RoIG1heSBiZSBsZXNz
IGlmIHRoZSBpdGVyYXRvciBoYXMgYWxyZWFkeSBiZWVuIHBhcnRpYWxseSBjb25zdW1lZC4KLSAg
ICB1bnNpZ25lZCBtYXhMZW5ndGggPSBtYXAtPnNpemUoKTsKLSAgICBKU0NlbGxCdXR0ZXJmbHkq
IHJlc3VsdCA9IEpTQ2VsbEJ1dHRlcmZseTo6dHJ5Q3JlYXRlKHZtLCB2bS5jZWxsQnV0dGVyZmx5
U3RydWN0dXJlKENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGlndW91cyksIG1heExlbmd0aCk7Ci0g
ICAgaWYgKCFyZXN1bHQpIFtbdW5saWtlbHldXSB7Ci0gICAgICAgIHRocm93T3V0T2ZNZW1vcnlF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
fQotCi0gICAgaWYgKCFtYXhMZW5ndGgpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICB1
c2luZyBIZWxwZXIgPSBKU01hcDo6SGVscGVyOwotICAgIEpTTWFwOjpTdG9yYWdlJiBzdG9yYWdl
UmVmID0gKmpzQ2FzdDxKU01hcDo6U3RvcmFnZSo+KHN0b3JhZ2UpOwotICAgIEl0ZXJhdGlvbktp
bmQga2luZCA9IGl0ZXJhdG9yLT5raW5kKCk7Ci0gICAgLy8gRW50cmllcyBpcyBub3Qgc3VwcG9y
dGVkIGluIHRoZSBmYXN0IHBhdGggLSBpdCByZXF1aXJlcyBjcmVhdGluZyBba2V5LCB2YWx1ZV0g
cGFpcnMuCi0gICAgQVNTRVJUKGtpbmQgPT0gSXRlcmF0aW9uS2luZDo6S2V5cyB8fCBraW5kID09
IEl0ZXJhdGlvbktpbmQ6OlZhbHVlcyk7Ci0gICAgSGVscGVyOjpFbnRyeSBzdGFydEVudHJ5ID0g
aXRlcmF0b3ItPmVudHJ5KCk7Ci0gICAgdW5zaWduZWQgaW5kZXggPSAwOwotCi0gICAgZm9yIChI
ZWxwZXI6OkVudHJ5IGVudHJ5ID0gc3RhcnRFbnRyeTs7ICsrZW50cnkpIHsKLSAgICAgICAgYXV0
byB0cmFuc2l0aW9uUmVzdWx0ID0gSGVscGVyOjp0cmFuc2l0QW5kTmV4dCh2bSwgc3RvcmFnZVJl
ZiwgZW50cnkpOwotICAgICAgICBpZiAoIXRyYW5zaXRpb25SZXN1bHQuc3RvcmFnZSkKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmIChraW5kID09IEl0ZXJhdGlvbktpbmQ6OktleXMp
Ci0gICAgICAgICAgICByZXN1bHQtPnNldEluZGV4KHZtLCBpbmRleCsrLCB0cmFuc2l0aW9uUmVz
dWx0LmtleSk7Ci0gICAgICAgIGVsc2UgLy8gSXRlcmF0aW9uS2luZDo6VmFsdWVzCi0gICAgICAg
ICAgICByZXN1bHQtPnNldEluZGV4KHZtLCBpbmRleCsrLCB0cmFuc2l0aW9uUmVzdWx0LnZhbHVl
KTsKLQotICAgICAgICBlbnRyeSA9IHRyYW5zaXRpb25SZXN1bHQuZW50cnk7Ci0gICAgfQotCi0g
ICAgLy8gQWRqdXN0IHRoZSBwdWJsaWMgbGVuZ3RoIHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVs
ZW1lbnRzLgotICAgIHJlc3VsdC0+dG9CdXR0ZXJmbHkoKS0+c2V0UHVibGljTGVuZ3RoKGluZGV4
KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIEpTQ2VsbEJ1dHRlcmZseSogSlNDZWxsQnV0
dGVyZmx5Ojp0cnlDcmVhdGVGcm9tQXJnTGlzdChWTSYgdm0sIEFyZ0xpc3QgYXJnTGlzdCkKIHsK
ICAgICBKU0NlbGxCdXR0ZXJmbHkqIHJlc3VsdCA9IEpTQ2VsbEJ1dHRlcmZseTo6dHJ5Q3JlYXRl
KHZtLCB2bS5jZWxsQnV0dGVyZmx5U3RydWN0dXJlKENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGln
dW91cyksIGFyZ0xpc3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbEJ1dHRlcmZseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsQnV0dGVyZmx5LmgKaW5kZXggZDA3Mzc3MDY3ODhmLi5hMGI1MmQ0YTI2NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbEJ1dHRlcmZseS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbEJ1dHRlcmZseS5oCkBA
IC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBDbG9uZWRBcmd1bWVudHM7
CiBjbGFzcyBEaXJlY3RBcmd1bWVudHM7Ci1jbGFzcyBKU01hcEl0ZXJhdG9yOwogY2xhc3MgSlNT
ZXQ7CiBjbGFzcyBTY29wZWRBcmd1bWVudHM7CiAKQEAgLTE1MCw3ICsxNDksNiBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIEpTQ2VsbEJ1dHRlcmZseSogY3JlYXRlRnJvbURpcmVjdEFyZ3VtZW50cyhK
U0dsb2JhbE9iamVjdCosIERpcmVjdEFyZ3VtZW50cyopOwogICAgIHN0YXRpYyBKU0NlbGxCdXR0
ZXJmbHkqIGNyZWF0ZUZyb21TY29wZWRBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqLCBTY29wZWRB
cmd1bWVudHMqKTsKICAgICBzdGF0aWMgSlNDZWxsQnV0dGVyZmx5KiBjcmVhdGVGcm9tU2V0KEpT
R2xvYmFsT2JqZWN0KiwgSlNTZXQqKTsKLSAgICBzdGF0aWMgSlNDZWxsQnV0dGVyZmx5KiBjcmVh
dGVGcm9tTWFwSXRlcmF0b3IoSlNHbG9iYWxPYmplY3QqLCBKU01hcEl0ZXJhdG9yKik7CiAgICAg
c3RhdGljIEpTQ2VsbEJ1dHRlcmZseSogY3JlYXRlRnJvbVN0cmluZyhKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKik7CiAgICAgc3RhdGljIEpTQ2VsbEJ1dHRlcmZseSogdHJ5Q3JlYXRlRnJvbUFy
Z0xpc3QoVk0mLCBBcmdMaXN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNYXBJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNNYXBJdGVyYXRvci5oCmluZGV4IDgzNTYxYmM1MmMzNy4uZWZmZDdiOTc1MGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcEl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNYXBJdGVyYXRvci5oCkBAIC0xODIsOCAr
MTgyLDYgQEAgcHVibGljOgogICAgIH0KICAgICBKU01hcDo6SGVscGVyOjpFbnRyeSBlbnRyeSgp
IGNvbnN0IHsgcmV0dXJuIEpTTWFwOjpIZWxwZXI6OnRvTnVtYmVyKGludGVybmFsRmllbGQoRmll
bGQ6OkVudHJ5KS5nZXQoKSk7IH0KIAotICAgIGlubGluZSBib29sIGlzSXRlcmF0b3JQcm90b2Nv
bEZhc3RBbmROb25PYnNlcnZhYmxlKCk7Ci0KICAgICB2b2lkIHNldEl0ZXJhdGVkT2JqZWN0KFZN
JiB2bSwgSlNNYXAqIG1hcCkgeyBpbnRlcm5hbEZpZWxkKEZpZWxkOjpJdGVyYXRlZE9iamVjdCku
c2V0KHZtLCB0aGlzLCBtYXApOyB9CiAgICAgdm9pZCBzZXRTdG9yYWdlKFZNJiB2bSwgSlNDZWxs
KiBzdG9yYWdlKSB7IGludGVybmFsRmllbGQoRmllbGQ6OlN0b3JhZ2UpLnNldCh2bSwgdGhpcywg
c3RvcmFnZSk7IH0KICAgICB2b2lkIHNldEVudHJ5KFZNJiB2bSwgSlNNYXA6OkhlbHBlcjo6RW50
cnkgZW50cnkpIHsgaW50ZXJuYWxGaWVsZChGaWVsZDo6RW50cnkpLnNldCh2bSwgdGhpcywgSlNN
YXA6OkhlbHBlcjo6dG9KU1ZhbHVlKGVudHJ5KSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwSXRlcmF0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01hcEl0ZXJhdG9ySW5saW5lcy5oCmluZGV4IGE1NTc4Y2FmOTZj
Mi4uMTMxOWQ0Nzg2ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01hcEl0ZXJhdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTWFwSXRlcmF0b3JJbmxpbmVzLmgKQEAgLTI1LDkgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdElubGluZXMuaCIKICNpbmNsdWRlICJKU01h
cEl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAiTWFwSXRlcmF0b3JQcm90b3R5cGUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTM2LDI1ICszNCw0IEBAIGlubGluZSBTdHJ1Y3R1cmUqIEpTTWFwSXRl
cmF0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oSlNNYXBJdGVyYXRvclR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0K
IAotQUxXQVlTX0lOTElORSBib29sIEpTTWFwSXRlcmF0b3I6OmlzSXRlcmF0b3JQcm90b2NvbEZh
c3RBbmROb25PYnNlcnZhYmxlKCkKLXsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gdGhpcy0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmlzTWFwUHJv
dG90eXBlSXRlcmF0b3JQcm90b2NvbEZhc3RBbmROb25PYnNlcnZhYmxlKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSgpOwotICAgIC8vIFRoaXMgaXMgdGhl
IGZhc3QgY2FzZS4gTWFueSBtYXAgaXRlcmF0b3JzIHdpbGwgYmUgYW4gb3JpZ2luYWwgbWFwIGl0
ZXJhdG9yLgotICAgIGlmIChzdHJ1Y3R1cmUgPT0gZ2xvYmFsT2JqZWN0LT5tYXBJdGVyYXRvclN0
cnVjdHVyZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChnZXRQcm90b3R5cGVE
aXJlY3QoKSAhPSBnbG9iYWxPYmplY3QtPm1hcEl0ZXJhdG9yUHJvdG90eXBlKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmIChnZXREaXJlY3RPZmZzZXQodm0sIHZtLnByb3BlcnR5
TmFtZXMtPm5leHQpICE9IGludmFsaWRPZmZzZXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL3NwcmVhZC1tYXAta2V5cy5qcyBiL0pTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL3NwcmVhZC1tYXAta2V5cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTg2NzVmY2VlZmUwLi4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3Mvc3ByZWFkLW1hcC1rZXlzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLy8g
QmVuY2htYXJrIGZvciBzcHJlYWQgb24gTWFwLmtleXMoKQotCi1mdW5jdGlvbiBiZW5jaG1hcmtT
cHJlYWRNYXBLZXlzKCkgewotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKLSAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDsgaSsrKQotICAgICAgICBtYXAuc2V0KGksIGkgKiAyKTsKLQotICAg
IGxldCBzdW0gPSAwOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewotICAg
ICAgICBjb25zdCBhcnIgPSBbLi4ubWFwLmtleXMoKV07Ci0gICAgICAgIHN1bSArPSBhcnIubGVu
Z3RoOwotICAgIH0KLSAgICByZXR1cm4gc3VtOwotfQotCi1iZW5jaG1hcmtTcHJlYWRNYXBLZXlz
KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zcHJlYWQtbWFwLXZhbHVl
cy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3NwcmVhZC1tYXAtdmFsdWVzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDkyY2M3Yzc3NzIuLjAwMDAwMDAwMDAwMAotLS0g
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zcHJlYWQtbWFwLXZhbHVlcy5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDE2ICswLDAgQEAKLS8vIEJlbmNobWFyayBmb3Igc3ByZWFkIG9uIE1hcC52YWx1
ZXMoKQotCi1mdW5jdGlvbiBiZW5jaG1hcmtTcHJlYWRNYXBWYWx1ZXMoKSB7Ci0gICAgY29uc3Qg
bWFwID0gbmV3IE1hcCgpOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspCi0gICAg
ICAgIG1hcC5zZXQoaSwgaSAqIDIpOwotCi0gICAgbGV0IHN1bSA9IDA7Ci0gICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGFyciA9IFsuLi5tYXAudmFs
dWVzKCldOwotICAgICAgICBzdW0gKz0gYXJyLmxlbmd0aDsKLSAgICB9Ci0gICAgcmV0dXJuIHN1
bTsKLX0KLQotYmVuY2htYXJrU3ByZWFkTWFwVmFsdWVzKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9zcHJlYWQtbWFwLWl0ZXJhdG9yLWRmZy1mdGwuanMgYi9KU1Rlc3RzL3N0cmVzcy9z
cHJlYWQtbWFwLWl0ZXJhdG9yLWRmZy1mdGwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZmMWQ3MDJkYWE5NC4uMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL3NwcmVh
ZC1tYXAtaXRlcmF0b3ItZGZnLWZ0bC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAK
LS8vQCBydW5EZWZhdWx0KCItLWZvcmNlRWFnZXJDb21waWxhdGlvbj10cnVlIiwgIi0tdXNlQ29u
Y3VycmVudEpJVD1mYWxzZSIpCi0KLS8vIERGRy9GVEwgb3B0aW1pemF0aW9uIHRlc3RzIGZvciBz
cHJlYWQgb24gTWFwIGl0ZXJhdG9yIG9iamVjdHMKLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7Ci19
Ci0KLWZ1bmN0aW9uIHNob3VsZEJlQXJyYXkoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIHNob3Vs
ZEJlKGFjdHVhbC5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCk7Ci0gICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykKLSAgICAgICAgc2hvdWxkQmUoYWN0dWFsW2ldLCBl
eHBlY3RlZFtpXSk7Ci19Ci0KLS8vIFRlc3QgdGhhdCBzcHJlYWQgb3B0aW1pemF0aW9uIHdvcmtz
IGluIERGRy9GVEwKLWZ1bmN0aW9uIHRlc3RTcHJlYWRLZXlzKG1hcCkgewotICAgIHJldHVybiBb
Li4ubWFwLmtleXMoKV07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTcHJlYWRWYWx1ZXMobWFwKSB7Ci0g
ICAgcmV0dXJuIFsuLi5tYXAudmFsdWVzKCldOwotfQotCi1jb25zdCBtYXAgPSBuZXcgTWFwKFtb
MSwgJ2EnXSwgWzIsICdiJ10sIFszLCAnYyddXSk7Ci0KLS8vIFdhcm0gdXAgdG8gdHJpZ2dlciBE
RkcvRlRMIGNvbXBpbGF0aW9uCi1mb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAg
ICB0ZXN0U3ByZWFkS2V5cyhtYXApOwotICAgIHRlc3RTcHJlYWRWYWx1ZXMobWFwKTsKLX0KLQot
Ly8gVmVyaWZ5IGNvcnJlY3RuZXNzIGFmdGVyIG9wdGltaXphdGlvbgotc2hvdWxkQmVBcnJheSh0
ZXN0U3ByZWFkS2V5cyhtYXApLCBbMSwgMiwgM10pOwotc2hvdWxkQmVBcnJheSh0ZXN0U3ByZWFk
VmFsdWVzKG1hcCksIFsnYScsICdiJywgJ2MnXSk7Ci0KLS8vIFRlc3Qgd2l0aCBkaWZmZXJlbnQg
bWFwcyB0byBlbnN1cmUgcG9seW1vcnBoaWMgYmVoYXZpb3IKLWNvbnN0IG1hcDIgPSBuZXcgTWFw
KFtbJ3gnLCAxMF0sIFsneScsIDIwXV0pOwotc2hvdWxkQmVBcnJheSh0ZXN0U3ByZWFkS2V5cyht
YXAyKSwgWyd4JywgJ3knXSk7Ci1zaG91bGRCZUFycmF5KHRlc3RTcHJlYWRWYWx1ZXMobWFwMiks
IFsxMCwgMjBdKTsKLQotLy8gVGVzdCBlbXB0eSBtYXAKLWNvbnN0IGVtcHR5TWFwID0gbmV3IE1h
cCgpOwotc2hvdWxkQmVBcnJheSh0ZXN0U3ByZWFkS2V5cyhlbXB0eU1hcCksIFtdKTsKLXNob3Vs
ZEJlQXJyYXkodGVzdFNwcmVhZFZhbHVlcyhlbXB0eU1hcCksIFtdKTsKLQotLy8gVGVzdCB0aGF0
IGl0ZXJhdG9yIGNvbnN1bXB0aW9uIGlzIGNvcnJlY3QgaW4gb3B0aW1pemVkIGNvZGUKLWZ1bmN0
aW9uIHRlc3RQYXJ0aWFsSXRlcmF0b3JLZXlzKG1hcCkgewotICAgIGNvbnN0IGl0ZXIgPSBtYXAu
a2V5cygpOwotICAgIGl0ZXIubmV4dCgpOwotICAgIHJldHVybiBbLi4uaXRlcl07Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RQYXJ0aWFsSXRlcmF0b3JWYWx1ZXMobWFwKSB7Ci0gICAgY29uc3QgaXRlciA9
IG1hcC52YWx1ZXMoKTsKLSAgICBpdGVyLm5leHQoKTsKLSAgICByZXR1cm4gWy4uLml0ZXJdOwot
fQotCi1mb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAgICB0ZXN0UGFydGlhbEl0
ZXJhdG9yS2V5cyhtYXApOwotICAgIHRlc3RQYXJ0aWFsSXRlcmF0b3JWYWx1ZXMobWFwKTsKLX0K
LQotc2hvdWxkQmVBcnJheSh0ZXN0UGFydGlhbEl0ZXJhdG9yS2V5cyhtYXApLCBbMiwgM10pOwot
c2hvdWxkQmVBcnJheSh0ZXN0UGFydGlhbEl0ZXJhdG9yVmFsdWVzKG1hcCksIFsnYicsICdjJ10p
OwotCi0vLyBUZXN0IGlubGluZSBjYWNoaW5nIHdpdGggY29uc2lzdGVudCBzdHJ1Y3R1cmUKLWZ1
bmN0aW9uIHRlc3RDb25zaXN0ZW50U3RydWN0dXJlKCkgewotICAgIGNvbnN0IG0gPSBuZXcgTWFw
KCk7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspCi0gICAgICAgIG0uc2V0KGksIGkg
KiAxMCk7Ci0gICAgcmV0dXJuIFsuLi5tLmtleXMoKV0ucmVkdWNlKChhLCBiKSA9PiBhICsgYiwg
MCk7Ci19Ci0KLWZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKLSAgICB0ZXN0Q29uc2lz
dGVudFN0cnVjdHVyZSgpOwotCi1zaG91bGRCZSh0ZXN0Q29uc2lzdGVudFN0cnVjdHVyZSgpLCAw
ICsgMSArIDIgKyAzICsgNCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zcHJlYWQtbWFw
LWl0ZXJhdG9yLWhhdmluZy1hLWJhZC10aW1lLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3ByZWFkLW1h
cC1pdGVyYXRvci1oYXZpbmctYS1iYWQtdGltZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2U4OTlhMTQzOGNkLi4wMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc3By
ZWFkLW1hcC1pdGVyYXRvci1oYXZpbmctYS1iYWQtdGltZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0OCArMCwwIEBACi0vL0AgcnVuRGVmYXVsdCgiLS1mb3JjZUVhZ2VyQ29tcGlsYXRpb249dHJ1
ZSIsICItLXVzZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiKQotCi0vLyBIYXZpbmctYS1iYWQtdGltZSB0
ZXN0cyBmb3Igc3ByZWFkIG9uIE1hcCBpdGVyYXRvciBvYmplY3RzCi0KLWZ1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0
dWFsfWApOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZUFycmF5KGFjdHVhbCwgZXhwZWN0ZWQpIHsK
LSAgICBzaG91bGRCZShhY3R1YWwubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgpOwotICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCi0gICAgICAgIHNob3VsZEJlKGFj
dHVhbFtpXSwgZXhwZWN0ZWRbaV0pOwotfQotCi0vLyBUZXN0IHRoYXQgc3ByZWFkIHdvcmtzIGNv
cnJlY3RseSBldmVuIGluIGhhdmluZy1hLWJhZC10aW1lIG1vZGUKLXsKLSAgICBmdW5jdGlvbiBz
cHJlYWRLZXlzKG1hcCkgewotICAgICAgICByZXR1cm4gWy4uLm1hcC5rZXlzKCldOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIHNwcmVhZFZhbHVlcyhtYXApIHsKLSAgICAgICAgcmV0dXJuIFsuLi5t
YXAudmFsdWVzKCldOwotICAgIH0KLQotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sxLCAnYSdd
LCBbMiwgJ2InXSwgWzMsICdjJ11dKTsKLQotICAgIC8vIFdhcm0gdXAKLSAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAgICAgICAgc3ByZWFkS2V5cyhtYXApOwotICAgICAg
ICBzcHJlYWRWYWx1ZXMobWFwKTsKLSAgICB9Ci0KLSAgICBzaG91bGRCZUFycmF5KHNwcmVhZEtl
eXMobWFwKSwgWzEsIDIsIDNdKTsKLSAgICBzaG91bGRCZUFycmF5KHNwcmVhZFZhbHVlcyhtYXAp
LCBbJ2EnLCAnYicsICdjJ10pOwotCi0gICAgLy8gVHJpZ2dlciBoYXZpbmctYS1iYWQtdGltZSBi
eSBtb2RpZnlpbmcgQXJyYXkgcHJvdG90eXBlCi0gICAgQXJyYXkucHJvdG90eXBlWzEwXSA9ICdi
YWQnOwotCi0gICAgLy8gU3ByZWFkIHNob3VsZCBzdGlsbCB3b3JrIGNvcnJlY3RseQotICAgIGNv
bnN0IGtleXMgPSBzcHJlYWRLZXlzKG1hcCk7Ci0gICAgY29uc3QgdmFsdWVzID0gc3ByZWFkVmFs
dWVzKG1hcCk7Ci0KLSAgICBzaG91bGRCZUFycmF5KGtleXMsIFsxLCAyLCAzXSk7Ci0gICAgc2hv
dWxkQmVBcnJheSh2YWx1ZXMsIFsnYScsICdiJywgJ2MnXSk7Ci0KLSAgICAvLyBWZXJpZnkgdGhl
IGFycmF5IGRvZXNuJ3QgaGF2ZSBwcm90b3R5cGUgcG9sbHV0aW9uCi0gICAgc2hvdWxkQmUoa2V5
cy5oYXNPd25Qcm9wZXJ0eSgxMCksIGZhbHNlKTsKLSAgICBzaG91bGRCZSh2YWx1ZXMuaGFzT3du
UHJvcGVydHkoMTApLCBmYWxzZSk7Ci0KLSAgICAvLyBDbGVhbiB1cAotICAgIGRlbGV0ZSBBcnJh
eS5wcm90b3R5cGVbMTBdOwotfQotCi0vLyBUZXN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBtb2Rp
ZmljYXRpb24KLXsKLSAgICBmdW5jdGlvbiBzcHJlYWRLZXlzKG1hcCkgewotICAgICAgICByZXR1
cm4gWy4uLm1hcC5rZXlzKCldOwotICAgIH0KLQotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sn
eCcsIDFdLCBbJ3knLCAyXV0pOwotCi0gICAgLy8gV2FybSB1cAotICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgNTAwMDsgaSsrKQotICAgICAgICBzcHJlYWRLZXlzKG1hcCk7Ci0KLSAgICAvLyBNb2Rp
ZnkgT2JqZWN0LnByb3RvdHlwZQotICAgIE9iamVjdC5wcm90b3R5cGUuYmFkUHJvcGVydHkgPSAn
ZXZpbCc7Ci0KLSAgICBjb25zdCByZXN1bHQgPSBzcHJlYWRLZXlzKG1hcCk7Ci0gICAgc2hvdWxk
QmVBcnJheShyZXN1bHQsIFsneCcsICd5J10pOwotCi0gICAgLy8gQ2xlYW4gdXAKLSAgICBkZWxl
dGUgT2JqZWN0LnByb3RvdHlwZS5iYWRQcm9wZXJ0eTsKLX0KLQotLy8gVGVzdCB3aXRoIEFycmF5
IGNvbnN0cnVjdG9yIHJlcGxhY2VtZW50IChzaG91bGQgbm90IGFmZmVjdCBNYXAgc3ByZWFkKQot
ewotICAgIGZ1bmN0aW9uIHNwcmVhZFZhbHVlcyhtYXApIHsKLSAgICAgICAgcmV0dXJuIFsuLi5t
YXAudmFsdWVzKCldOwotICAgIH0KLQotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sxLCAxMDBd
LCBbMiwgMjAwXV0pOwotCi0gICAgLy8gV2FybSB1cAotICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
NTAwMDsgaSsrKQotICAgICAgICBzcHJlYWRWYWx1ZXMobWFwKTsKLQotICAgIC8vIE5vdGU6IFdl
IGNhbid0IGFjdHVhbGx5IHJlcGxhY2UgQXJyYXkgY29uc3RydWN0b3IgZ2xvYmFsbHksCi0gICAg
Ly8gYnV0IHdlIGNhbiB2ZXJpZnkgdGhlIHNwcmVhZCBjcmVhdGVzIHByb3BlciBhcnJheXMKLSAg
ICBjb25zdCByZXN1bHQgPSBzcHJlYWRWYWx1ZXMobWFwKTsKLSAgICBzaG91bGRCZShBcnJheS5p
c0FycmF5KHJlc3VsdCksIHRydWUpOwotICAgIHNob3VsZEJlKHJlc3VsdC5jb25zdHJ1Y3Rvciwg
QXJyYXkpOwotICAgIHNob3VsZEJlQXJyYXkocmVzdWx0LCBbMTAwLCAyMDBdKTsKLX0KLQotLy8g
VGVzdCB3aXRoIGluZGV4ZWQgcHJvcGVydHkgb24gQXJyYXkucHJvdG90eXBlIChoYXZpbmctYS1i
YWQtdGltZSB0cmlnZ2VyKQotewotICAgIGZ1bmN0aW9uIHRlc3RTcHJlYWQobWFwKSB7Ci0gICAg
ICAgIGNvbnN0IGtleXMgPSBbLi4ubWFwLmtleXMoKV07Ci0gICAgICAgIGNvbnN0IHZhbHVlcyA9
IFsuLi5tYXAudmFsdWVzKCldOwotICAgICAgICByZXR1cm4geyBrZXlzLCB2YWx1ZXMgfTsKLSAg
ICB9Ci0KLSAgICBjb25zdCBtYXAgPSBuZXcgTWFwKFtbMCwgJ3plcm8nXSwgWzEsICdvbmUnXSwg
WzIsICd0d28nXV0pOwotCi0gICAgLy8gV2FybSB1cAotICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
NTAwMDsgaSsrKQotICAgICAgICB0ZXN0U3ByZWFkKG1hcCk7Ci0KLSAgICAvLyBBZGQgaW5kZXhl
ZCBwcm9wZXJ0eSB0byBBcnJheS5wcm90b3R5cGUKLSAgICBBcnJheS5wcm90b3R5cGVbMV0gPSAn
cHJvdG90eXBlLXZhbHVlJzsKLQotICAgIGNvbnN0IHJlc3VsdCA9IHRlc3RTcHJlYWQobWFwKTsK
LQotICAgIC8vIFRoZSBzcHJlYWQgcmVzdWx0IHNob3VsZCBoYXZlIGl0cyBvd24gcHJvcGVydHkg
YXQgaW5kZXggMQotICAgIHNob3VsZEJlKHJlc3VsdC5rZXlzLmhhc093blByb3BlcnR5KDEpLCB0
cnVlKTsKLSAgICBzaG91bGRCZShyZXN1bHQua2V5c1sxXSwgMSk7Ci0gICAgc2hvdWxkQmUocmVz
dWx0LnZhbHVlcy5oYXNPd25Qcm9wZXJ0eSgxKSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUocmVzdWx0
LnZhbHVlc1sxXSwgJ29uZScpOwotCi0gICAgLy8gQ2xlYW4gdXAKLSAgICBkZWxldGUgQXJyYXku
cHJvdG90eXBlWzFdOwotfQotCi0vLyBUZXN0IGNvbWJpbmF0aW9uIG9mIG1vZGlmaWNhdGlvbnMK
LXsKLSAgICBmdW5jdGlvbiBzcHJlYWRUZXN0KG1hcCkgewotICAgICAgICByZXR1cm4gWy4uLm1h
cC5rZXlzKCksIC4uLm1hcC52YWx1ZXMoKV07Ci0gICAgfQotCi0gICAgY29uc3QgbWFwID0gbmV3
IE1hcChbWydhJywgMV0sIFsnYicsIDJdXSk7Ci0KLSAgICAvLyBXYXJtIHVwCi0gICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCA1MDAwOyBpKyspCi0gICAgICAgIHNwcmVhZFRlc3QobWFwKTsKLQotICAg
IC8vIE11bHRpcGxlIG1vZGlmaWNhdGlvbnMKLSAgICBBcnJheS5wcm90b3R5cGVbNV0gPSAnYmFk
NSc7Ci0gICAgT2JqZWN0LnByb3RvdHlwZS53ZWlyZCA9ICd3ZWlyZCc7Ci0KLSAgICBjb25zdCBy
ZXN1bHQgPSBzcHJlYWRUZXN0KG1hcCk7Ci0gICAgc2hvdWxkQmVBcnJheShyZXN1bHQsIFsnYScs
ICdiJywgMSwgMl0pOwotCi0gICAgLy8gQ2xlYW4gdXAKLSAgICBkZWxldGUgQXJyYXkucHJvdG90
eXBlWzVdOwotICAgIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLndlaXJkOwotfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvc3ByZWFkLW1hcC1pdGVyYXRvci1vc3ItZXhpdC5qcyBiL0pTVGVz
dHMvc3RyZXNzL3NwcmVhZC1tYXAtaXRlcmF0b3Itb3NyLWV4aXQuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFhNGRiYTY3ODJiZC4uMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMv
c3RyZXNzL3NwcmVhZC1tYXAtaXRlcmF0b3Itb3NyLWV4aXQuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMjMgKzAsMCBAQAotLy9AIHJ1bkRlZmF1bHQoIi0tZm9yY2VFYWdlckNvbXBpbGF0aW9uPXRy
dWUiLCAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIikKLQotLy8gT1NSIGV4aXQgdGVzdHMgZm9y
IHNwcmVhZCBvbiBNYXAgaXRlcmF0b3Igb2JqZWN0cwotCi1mdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsK
LX0KLQotZnVuY3Rpb24gc2hvdWxkQmVBcnJheShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgc2hv
dWxkQmUoYWN0dWFsLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoKTsKLSAgICBmb3IgKGxldCBpID0g
MDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQotICAgICAgICBzaG91bGRCZShhY3R1YWxbaV0s
IGV4cGVjdGVkW2ldKTsKLX0KLQotLy8gVGVzdCBPU1IgZXhpdCB3aGVuIGl0ZXJhdG9yIHByb3Rv
Y29sIGlzIG1vZGlmaWVkCi17Ci0gICAgZnVuY3Rpb24gc3ByZWFkS2V5cyhtYXApIHsKLSAgICAg
ICAgcmV0dXJuIFsuLi5tYXAua2V5cygpXTsKLSAgICB9Ci0KLSAgICBjb25zdCBtYXAgPSBuZXcg
TWFwKFtbMSwgJ2EnXSwgWzIsICdiJ10sIFszLCAnYyddXSk7Ci0KLSAgICAvLyBXYXJtIHVwCi0g
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgICAgICBzcHJlYWRLZXlzKG1h
cCk7Ci0KLSAgICBzaG91bGRCZUFycmF5KHNwcmVhZEtleXMobWFwKSwgWzEsIDIsIDNdKTsKLQot
ICAgIC8vIE1vZGlmeSBpdGVyYXRvciBwcm90b2NvbCAtIHNob3VsZCBjYXVzZSBPU1IgZXhpdAot
ICAgIGNvbnN0IE1hcEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5l
dyBNYXAoKS5rZXlzKCkpOwotICAgIGNvbnN0IG9yaWdpbmFsTmV4dCA9IE1hcEl0ZXJhdG9yUHJv
dG90eXBlLm5leHQ7Ci0KLSAgICBsZXQgY2FsbENvdW50ID0gMDsKLSAgICBNYXBJdGVyYXRvclBy
b3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGNhbGxDb3VudCsrOwotICAgICAg
ICByZXR1cm4gb3JpZ2luYWxOZXh0LmNhbGwodGhpcyk7Ci0gICAgfTsKLQotICAgIC8vIFRoaXMg
c2hvdWxkIHVzZSB0aGUgc2xvdyBwYXRoCi0gICAgY29uc3QgcmVzdWx0ID0gc3ByZWFkS2V5cyht
YXApOwotICAgIHNob3VsZEJlQXJyYXkocmVzdWx0LCBbMSwgMiwgM10pOwotICAgIHNob3VsZEJl
KGNhbGxDb3VudCA+IDAsIHRydWUpOwotCi0gICAgLy8gUmVzdG9yZQotICAgIE1hcEl0ZXJhdG9y
UHJvdG90eXBlLm5leHQgPSBvcmlnaW5hbE5leHQ7Ci19Ci0KLS8vIFRlc3QgT1NSIGV4aXQgd2hl
biBTeW1ib2wuaXRlcmF0b3IgaXMgbW9kaWZpZWQgb24gaXRlcmF0b3IKLXsKLSAgICBmdW5jdGlv
biBzcHJlYWRWYWx1ZXMobWFwKSB7Ci0gICAgICAgIHJldHVybiBbLi4ubWFwLnZhbHVlcygpXTsK
LSAgICB9Ci0KLSAgICBjb25zdCBtYXAgPSBuZXcgTWFwKFtbMSwgJ3gnXSwgWzIsICd5J11dKTsK
LQotICAgIC8vIFdhcm0gdXAKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCi0g
ICAgICAgIHNwcmVhZFZhbHVlcyhtYXApOwotCi0gICAgc2hvdWxkQmVBcnJheShzcHJlYWRWYWx1
ZXMobWFwKSwgWyd4JywgJ3knXSk7Ci0KLSAgICAvLyBNb2RpZnkgU3ltYm9sLml0ZXJhdG9yIG9u
IE1hcEl0ZXJhdG9yIHByb3RvdHlwZQotICAgIGNvbnN0IE1hcEl0ZXJhdG9yUHJvdG90eXBlID0g
T2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBNYXAoKS52YWx1ZXMoKSk7Ci0gICAgY29uc3Qgb3Jp
Z2luYWxJdGVyYXRvciA9IE1hcEl0ZXJhdG9yUHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl07Ci0K
LSAgICBNYXBJdGVyYXRvclByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBuZXh0OiAoKSA9PiAoeyBkb25lOiB0cnVl
IH0pCi0gICAgICAgIH07Ci0gICAgfTsKLQotICAgIC8vIFRoaXMgc2hvdWxkIHVzZSB0aGUgc2xv
dyBwYXRoIHdpdGggbW9kaWZpZWQgYmVoYXZpb3IKLSAgICBjb25zdCByZXN1bHQgPSBzcHJlYWRW
YWx1ZXMobWFwKTsKLSAgICBzaG91bGRCZUFycmF5KHJlc3VsdCwgW10pOwotCi0gICAgLy8gUmVz
dG9yZQotICAgIE1hcEl0ZXJhdG9yUHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBvcmlnaW5h
bEl0ZXJhdG9yOwotfQotCi0vLyBUZXN0IE9TUiBleGl0IHdpdGggZGlmZmVyZW50IG1hcCB0eXBl
cwotewotICAgIGZ1bmN0aW9uIHRlc3RNaXhlZChpdGVyYWJsZSkgewotICAgICAgICByZXR1cm4g
Wy4uLml0ZXJhYmxlXTsKLSAgICB9Ci0KLSAgICBjb25zdCBtYXAgPSBuZXcgTWFwKFtbMSwgJ2En
XSwgWzIsICdiJ11dKTsKLSAgICBjb25zdCBzZXQgPSBuZXcgU2V0KFsxLCAyLCAzXSk7Ci0gICAg
Y29uc3QgYXJyYXkgPSBbNCwgNSwgNl07Ci0KLSAgICAvLyBXYXJtIHVwIHdpdGggbWFwIGl0ZXJh
dG9yCi0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MDAwOyBpKyspCi0gICAgICAgIHRlc3RNaXhl
ZChtYXAua2V5cygpKTsKLQotICAgIHNob3VsZEJlQXJyYXkodGVzdE1peGVkKG1hcC5rZXlzKCkp
LCBbMSwgMl0pOwotCi0gICAgLy8gU2hvdWxkIHN0aWxsIHdvcmsgd2l0aCBkaWZmZXJlbnQgaXRl
cmFibGVzIChjYXVzZXMgc3BlY3VsYXRpb24gZmFpbHVyZSkKLSAgICBzaG91bGRCZUFycmF5KHRl
c3RNaXhlZChzZXQpLCBbMSwgMiwgM10pOwotICAgIHNob3VsZEJlQXJyYXkodGVzdE1peGVkKGFy
cmF5KSwgWzQsIDUsIDZdKTsKLSAgICBzaG91bGRCZUFycmF5KHRlc3RNaXhlZChtYXAudmFsdWVz
KCkpLCBbJ2EnLCAnYiddKTsKLX0KLQotLy8gVGVzdCBPU1IgZXhpdCB3aGVuIG1hcCBpcyBtb2Rp
ZmllZCBkdXJpbmcgaXRlcmF0aW9uCi17Ci0gICAgZnVuY3Rpb24gc3ByZWFkS2V5c1dpdGhNb2Rp
ZmljYXRpb24obWFwLCBtb2RpZnlGbikgewotICAgICAgICBjb25zdCBpdGVyID0gbWFwLmtleXMo
KTsKLSAgICAgICAgbW9kaWZ5Rm4obWFwKTsKLSAgICAgICAgcmV0dXJuIFsuLi5pdGVyXTsKLSAg
ICB9Ci0KLSAgICAvLyBXYXJtIHVwIHdpdGhvdXQgbW9kaWZpY2F0aW9uCi0gICAgZm9yIChsZXQg
aSA9IDA7IGkgPCA1MDAwOyBpKyspIHsKLSAgICAgICAgY29uc3QgbSA9IG5ldyBNYXAoW1sxLCAn
YSddLCBbMiwgJ2InXV0pOwotICAgICAgICBzcHJlYWRLZXlzV2l0aE1vZGlmaWNhdGlvbihtLCAo
KSA9PiB7fSk7Ci0gICAgfQotCi0gICAgLy8gTm93IHRlc3Qgd2l0aCBtb2RpZmljYXRpb24KLSAg
ICBjb25zdCBtYXAgPSBuZXcgTWFwKFtbMSwgJ2EnXSwgWzIsICdiJ10sIFszLCAnYyddXSk7Ci0g
ICAgY29uc3QgcmVzdWx0ID0gc3ByZWFkS2V5c1dpdGhNb2RpZmljYXRpb24obWFwLCAobSkgPT4g
bS5kZWxldGUoMikpOwotICAgIC8vIEFmdGVyIGRlbGV0aW9uLCBzcHJlYWQgc2hvdWxkIHJldHVy
biByZW1haW5pbmcga2V5cwotICAgIC8vIE5vdGU6IGJlaGF2aW9yIGRlcGVuZHMgb24gaW1wbGVt
ZW50YXRpb24gLSB3ZSBqdXN0IHZlcmlmeSBpdCBkb2Vzbid0IGNyYXNoCi0gICAgc2hvdWxkQmUo
cmVzdWx0Lmxlbmd0aCA8PSAzLCB0cnVlKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3NwcmVhZC1tYXAtaXRlcmF0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9zcHJlYWQtbWFwLWl0ZXJh
dG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmM3MmRhZDgwNzEuLjAwMDAw
MDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zcHJlYWQtbWFwLWl0ZXJhdG9yLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLS8vIEJhc2ljIGZ1bmN0aW9uYWxpdHkgdGVzdHMg
Zm9yIHNwcmVhZCBvbiBNYXAgaXRlcmF0b3Igb2JqZWN0cwotCi1mdW5jdGlvbiBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1g
KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmVBcnJheShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAg
c2hvdWxkQmUoYWN0dWFsLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoKTsKLSAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKQotICAgICAgICBzaG91bGRCZShhY3R1YWxb
aV0sIGV4cGVjdGVkW2ldKTsKLX0KLQotLy8gVGVzdCBiYXNpYyBzcHJlYWQgb24gbWFwLmtleXMo
KQotewotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sxLCAnYSddLCBbMiwgJ2InXSwgWzMsICdj
J11dKTsKLSAgICBjb25zdCBrZXlzID0gWy4uLm1hcC5rZXlzKCldOwotICAgIHNob3VsZEJlQXJy
YXkoa2V5cywgWzEsIDIsIDNdKTsKLX0KLQotLy8gVGVzdCBiYXNpYyBzcHJlYWQgb24gbWFwLnZh
bHVlcygpCi17Ci0gICAgY29uc3QgbWFwID0gbmV3IE1hcChbWzEsICdhJ10sIFsyLCAnYiddLCBb
MywgJ2MnXV0pOwotICAgIGNvbnN0IHZhbHVlcyA9IFsuLi5tYXAudmFsdWVzKCldOwotICAgIHNo
b3VsZEJlQXJyYXkodmFsdWVzLCBbJ2EnLCAnYicsICdjJ10pOwotfQotCi0vLyBUZXN0IGVtcHR5
IG1hcAotewotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTsKLSAgICBjb25zdCBrZXlzID0gWy4u
Lm1hcC5rZXlzKCldOwotICAgIGNvbnN0IHZhbHVlcyA9IFsuLi5tYXAudmFsdWVzKCldOwotICAg
IHNob3VsZEJlQXJyYXkoa2V5cywgW10pOwotICAgIHNob3VsZEJlQXJyYXkodmFsdWVzLCBbXSk7
Ci19Ci0KLS8vIFRlc3Qgc2luZ2xlIGVsZW1lbnQKLXsKLSAgICBjb25zdCBtYXAgPSBuZXcgTWFw
KFtbNDIsICdhbnN3ZXInXV0pOwotICAgIHNob3VsZEJlQXJyYXkoWy4uLm1hcC5rZXlzKCldLCBb
NDJdKTsKLSAgICBzaG91bGRCZUFycmF5KFsuLi5tYXAudmFsdWVzKCldLCBbJ2Fuc3dlciddKTsK
LX0KLQotLy8gVGVzdCB2YXJpb3VzIGtleS92YWx1ZSB0eXBlcwotewotICAgIGNvbnN0IG9iaiA9
IHt9OwotICAgIGNvbnN0IHN5bSA9IFN5bWJvbCgndGVzdCcpOwotICAgIGNvbnN0IG1hcCA9IG5l
dyBNYXAoWwotICAgICAgICBbJ3N0cmluZycsIDFdLAotICAgICAgICBbNDIsIDJdLAotICAgICAg
ICBbb2JqLCAzXSwKLSAgICAgICAgW3N5bSwgNF0sCi0gICAgICAgIFtudWxsLCA1XSwKLSAgICAg
ICAgW3VuZGVmaW5lZCwgNl0KLSAgICBdKTsKLQotICAgIGNvbnN0IGtleXMgPSBbLi4ubWFwLmtl
eXMoKV07Ci0gICAgc2hvdWxkQmUoa2V5cy5sZW5ndGgsIDYpOwotICAgIHNob3VsZEJlKGtleXNb
MF0sICdzdHJpbmcnKTsKLSAgICBzaG91bGRCZShrZXlzWzFdLCA0Mik7Ci0gICAgc2hvdWxkQmUo
a2V5c1syXSwgb2JqKTsKLSAgICBzaG91bGRCZShrZXlzWzNdLCBzeW0pOwotICAgIHNob3VsZEJl
KGtleXNbNF0sIG51bGwpOwotICAgIHNob3VsZEJlKGtleXNbNV0sIHVuZGVmaW5lZCk7Ci0KLSAg
ICBjb25zdCB2YWx1ZXMgPSBbLi4ubWFwLnZhbHVlcygpXTsKLSAgICBzaG91bGRCZUFycmF5KHZh
bHVlcywgWzEsIDIsIDMsIDQsIDUsIDZdKTsKLX0KLQotLy8gVGVzdCB0aGF0IHNwcmVhZCBjb25z
dW1lcyBpdGVyYXRvcgotewotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sxLCAnYSddLCBbMiwg
J2InXSwgWzMsICdjJ11dKTsKLSAgICBjb25zdCBpdGVyID0gbWFwLmtleXMoKTsKLSAgICBpdGVy
Lm5leHQoKTsgLy8gY29uc3VtZSBmaXJzdCBlbGVtZW50Ci0gICAgY29uc3QgcmVtYWluaW5nID0g
Wy4uLml0ZXJdOwotICAgIHNob3VsZEJlQXJyYXkocmVtYWluaW5nLCBbMiwgM10pOwotfQotCi0v
LyBUZXN0IHRoYXQgc3ByZWFkIGNvbnN1bWVzIGl0ZXJhdG9yICh2YWx1ZXMpCi17Ci0gICAgY29u
c3QgbWFwID0gbmV3IE1hcChbWzEsICdhJ10sIFsyLCAnYiddLCBbMywgJ2MnXV0pOwotICAgIGNv
bnN0IGl0ZXIgPSBtYXAudmFsdWVzKCk7Ci0gICAgaXRlci5uZXh0KCk7IC8vIGNvbnN1bWUgZmly
c3QgZWxlbWVudAotICAgIGNvbnN0IHJlbWFpbmluZyA9IFsuLi5pdGVyXTsKLSAgICBzaG91bGRC
ZUFycmF5KHJlbWFpbmluZywgWydiJywgJ2MnXSk7Ci19Ci0KLS8vIFRlc3QgY2xvc2VkIGl0ZXJh
dG9yCi17Ci0gICAgY29uc3QgbWFwID0gbmV3IE1hcChbWzEsICdhJ10sIFsyLCAnYiddXSk7Ci0g
ICAgY29uc3QgaXRlciA9IG1hcC5rZXlzKCk7Ci0gICAgaXRlci5uZXh0KCk7Ci0gICAgaXRlci5u
ZXh0KCk7Ci0gICAgaXRlci5uZXh0KCk7IC8vIGNsb3NlIGl0ZXJhdG9yCi0gICAgY29uc3QgcmVz
dWx0ID0gWy4uLml0ZXJdOwotICAgIHNob3VsZEJlQXJyYXkocmVzdWx0LCBbXSk7Ci19Ci0KLS8v
IFRlc3QgbGFyZ2UgbWFwCi17Ci0gICAgY29uc3QgbWFwID0gbmV3IE1hcCgpOwotICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgICBtYXAuc2V0KGksIGkgKiAyKTsKLQot
ICAgIGNvbnN0IGtleXMgPSBbLi4ubWFwLmtleXMoKV07Ci0gICAgY29uc3QgdmFsdWVzID0gWy4u
Lm1hcC52YWx1ZXMoKV07Ci0KLSAgICBzaG91bGRCZShrZXlzLmxlbmd0aCwgMTAwMCk7Ci0gICAg
c2hvdWxkQmUodmFsdWVzLmxlbmd0aCwgMTAwMCk7Ci0gICAgc2hvdWxkQmUoa2V5c1s1MDBdLCA1
MDApOwotICAgIHNob3VsZEJlKHZhbHVlc1s1MDBdLCAxMDAwKTsKLX0KLQotLy8gVGVzdCB0aGF0
IG9yaWdpbmFsIG1hcCBpcyBub3QgbW9kaWZpZWQKLXsKLSAgICBjb25zdCBtYXAgPSBuZXcgTWFw
KFtbMSwgJ2EnXSwgWzIsICdiJ11dKTsKLSAgICBjb25zdCBrZXlzID0gWy4uLm1hcC5rZXlzKCld
OwotICAgIGtleXMucHVzaCgzKTsKLSAgICBzaG91bGRCZShtYXAuc2l6ZSwgMik7Ci0gICAgc2hv
dWxkQmUoa2V5cy5sZW5ndGgsIDMpOwotfQotCi0vLyBUZXN0IGluc2VydGlvbiBvcmRlciBpcyBw
cmVzZXJ2ZWQKLXsKLSAgICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7Ci0gICAgbWFwLnNldCgneics
IDEpOwotICAgIG1hcC5zZXQoJ2EnLCAyKTsKLSAgICBtYXAuc2V0KCdtJywgMyk7Ci0KLSAgICBz
aG91bGRCZUFycmF5KFsuLi5tYXAua2V5cygpXSwgWyd6JywgJ2EnLCAnbSddKTsKLSAgICBzaG91
bGRCZUFycmF5KFsuLi5tYXAudmFsdWVzKCldLCBbMSwgMiwgM10pOwotfQotCi0vLyBUZXN0IHJl
LWluc2VydGlvbiBtYWludGFpbnMgb3JkZXIKLXsKLSAgICBjb25zdCBtYXAgPSBuZXcgTWFwKFtb
MSwgJ2EnXSwgWzIsICdiJ10sIFszLCAnYyddXSk7Ci0gICAgbWFwLnNldCgxLCAneCcpOyAvLyBy
ZS1pbnNlcnQsIHNob3VsZCBub3QgY2hhbmdlIG9yZGVyCi0gICAgc2hvdWxkQmVBcnJheShbLi4u
bWFwLmtleXMoKV0sIFsxLCAyLCAzXSk7Ci0gICAgc2hvdWxkQmVBcnJheShbLi4ubWFwLnZhbHVl
cygpXSwgWyd4JywgJ2InLCAnYyddKTsKLX0KLQotLy8gVGVzdCBkZWxldGUgYW5kIHNwcmVhZAot
ewotICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoW1sxLCAnYSddLCBbMiwgJ2InXSwgWzMsICdjJ11d
KTsKLSAgICBtYXAuZGVsZXRlKDIpOwotICAgIHNob3VsZEJlQXJyYXkoWy4uLm1hcC5rZXlzKCld
LCBbMSwgM10pOwotICAgIHNob3VsZEJlQXJyYXkoWy4uLm1hcC52YWx1ZXMoKV0sIFsnYScsICdj
J10pOwotfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>