<?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>246192</bug_id>
          
          <creation_ts>2022-10-06 17:09:53 -0700</creation_ts>
          <short_desc>[Outline] Add support for outline with border-radius (inline edition)</short_desc>
          <delta_ts>2023-03-23 13:05:47 -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>Layout and Rendering</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>20807</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>bobprokop</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>muratcorlu</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1903941</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-06 17:09:53 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903942</commentid>
    <comment_count>1</comment_count>
      <attachid>462851</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-06 17:12:04 -0700</bug_when>
    <thetext>Created attachment 462851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903962</commentid>
    <comment_count>2</comment_count>
      <attachid>462856</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-06 19:43:34 -0700</bug_when>
    <thetext>Created attachment 462856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904029</commentid>
    <comment_count>3</comment_count>
      <attachid>462864</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-07 06:24:52 -0700</bug_when>
    <thetext>Created attachment 462864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904209</commentid>
    <comment_count>4</comment_count>
      <attachid>462875</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-07 20:51:12 -0700</bug_when>
    <thetext>Created attachment 462875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904252</commentid>
    <comment_count>5</comment_count>
      <attachid>462882</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-08 07:17:57 -0700</bug_when>
    <thetext>Created attachment 462882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904269</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-08 11:04:52 -0700</bug_when>
    <thetext>Committed 255314@main (acd85199c2bd): &lt;https://commits.webkit.org/255314@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462882.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904270</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-08 11:05:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/100936198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930033</commentid>
    <comment_count>8</comment_count>
    <who name="Murat Çorlu">muratcorlu</who>
    <bug_when>2023-02-01 02:26:29 -0800</bug_when>
    <thetext>Is there a blocker to release this fix in stable Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1943426</commentid>
    <comment_count>9</comment_count>
    <who name="Bob Prokop">bobprokop</who>
    <bug_when>2023-03-23 11:18:05 -0700</bug_when>
    <thetext>Can anyone answer why this hasn&apos;t landed in stable Safari? We are still receiving complaints from users and our designers regarding this issue but I have suggested to our developers that the days of chasing non-conforming browsers are done -- if visitors get a reduced visual experience in Safari for issues like this, so be it. Please provide an update as to when this will make it stable release. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1943432</commentid>
    <comment_count>10</comment_count>
    <who name="Bob Prokop">bobprokop</who>
    <bug_when>2023-03-23 11:20:35 -0700</bug_when>
    <thetext>This has been in STP since November of 2022: https://webkit.org/blog/13575/release-notes-for-safari-technology-preview-157/ 

It is now 4 months later and we still don&apos;t have it in stable Safari. Please provide an update. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1943466</commentid>
    <comment_count>11</comment_count>
    <who name="Murat Çorlu">muratcorlu</who>
    <bug_when>2023-03-23 13:05:47 -0700</bug_when>
    <thetext>Apparently this will be released with with Safari 16.4 

https://developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes?ref=refind

&gt; Added support for outline following the curve of border-radius.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462851</attachid>
            <date>2022-10-06 17:12:04 -0700</date>
            <delta_ts>2022-10-06 19:43:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246192-20221006171203.patch</filename>
            <type>text/plain</type>
            <size>14488</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1ZWE4YTVmMGMyNGI1MTQxNTFhNDdkMzlhNzA5MTRhZDI3YjM5MjQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDYgT2N0IDIwMjIgMTc6MTA6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
QWRkIHN1cHBvcnQgZm9yIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzIChpbmxpbmUKIGVkaXRp
b24pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDYxOTIKClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMS4gVXNlIHBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3Rz
Rm9yT3V0bGluZSB0byBtZXJnZSBqb2ludCBpbmxpbmUgYm94IHJlY3RhbmdsZXMKMi4gVXNlIHJl
Z3VsYXIgb3V0bGluZSBwYWludGluZyBpZiB0aGVyZSdzIG9ubHkgb25lIHJlY3Qgb3IgdGhlIGxp
bmUgc3Bhbm5pbmcgaW5saW5lIGJveCByZWN0YW5nbGVzIGFyZSBkaXNqb2ludAoKKiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcDoKKFdlYkNvcmU6OlBh
dGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZSk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwOgooV2ViQ29yZTo6Qm9yZGVy
UGFpbnRlcjo6cGFpbnRPdXRsaW5lKToKKFdlYkNvcmU6OkJvcmRlclBhaW50ZXI6OnBhaW50T3V0
bGluZUZvckxpbmUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQ
YWludGVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSk6Ci0tLQogLi4uL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwICAgICAgIHwgICAyIC0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcCAgICB8IDE3OSArKysrLS0tLS0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmggICAgICB8ICAgMSAtCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAgICAgfCAgIDQgLQogNCBmaWxl
cyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAppbmRleCAx
ZDAwNGZjMTE0YWMuLjhjYTgxMDRjZGY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKQEAgLTQ5NSw4ICs0OTUsNiBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHJlY3RGcm9tUG9seWdvbihjb25zdCBGbG9hdFBv
aW50R3JhcGg6OlBvbHlnb24mCiBQYXRoIFBhdGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5rV3Jh
cHBlZFJlY3RzRm9yT3V0bGluZShjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGNvbnN0
IEJvcmRlckRhdGEmIGJvcmRlckRhdGEsCiAgICAgZmxvYXQgb3V0bGluZU9mZnNldCwgVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24sIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcikKIHsKLSAgICBBU1NFUlQoYm9yZGVyRGF0YS5oYXNCb3JkZXJSYWRpdXMoKSk7
Ci0KICAgICBGbG9hdFNpemUgdG9wTGVmdFJhZGl1cyB7IGJvcmRlckRhdGEudG9wTGVmdFJhZGl1
cygpLndpZHRoLnZhbHVlKCksIGJvcmRlckRhdGEudG9wTGVmdFJhZGl1cygpLmhlaWdodC52YWx1
ZSgpIH07CiAgICAgRmxvYXRTaXplIHRvcFJpZ2h0UmFkaXVzIHsgYm9yZGVyRGF0YS50b3BSaWdo
dFJhZGl1cygpLndpZHRoLnZhbHVlKCksIGJvcmRlckRhdGEudG9wUmlnaHRSYWRpdXMoKS5oZWln
aHQudmFsdWUoKSB9OwogICAgIEZsb2F0U2l6ZSBib3R0b21SaWdodFJhZGl1cyB7IGJvcmRlckRh
dGEuYm90dG9tUmlnaHRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLmJvdHRvbVJp
Z2h0UmFkaXVzKCkuaGVpZ2h0LnZhbHVlKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9C
b3JkZXJQYWludGVyLmNwcAppbmRleCAzMmU0Y2I2Y2JhZTguLmIzNWI5MmQwY2MyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIk5pbmVQaWVjZUltYWdl
LmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCisjaW5jbHVkZSAiUGF0aFV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI1Nywx
NjEgKzI1OCw1MSBAQCB2b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50T3V0bGluZShjb25zdCBMYXlv
dXRSZWN0JiBwYWludFJlY3QpCiAKIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lKGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgVmVjdG9yPExheW91dFJlY3Q+JiBs
aW5lUmVjdHMpCiB7Ci0gICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gbV9wYWludEluZm8uY29u
dGV4dCgpOwotICAgIGF1dG8mIHN0eWxlVG9Vc2UgPSBtX3JlbmRlcmVyLnN0eWxlKCk7Ci0gICAg
YXV0byBvdXRsaW5lQ29sb3IgPSBzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhD
b2xvckZpbHRlcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcik7Ci0gICAgYm9vbCB1c2VUcmFuc3Bh
cmVuY3lMYXllciA9ICFvdXRsaW5lQ29sb3IuaXNPcGFxdWUoKTsKLSAgICBpZiAodXNlVHJhbnNw
YXJlbmN5TGF5ZXIpIHsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5
TGF5ZXIob3V0bGluZUNvbG9yLmFscGhhQXNGbG9hdCgpKTsKLSAgICAgICAgb3V0bGluZUNvbG9y
ID0gb3V0bGluZUNvbG9yLm9wYXF1ZUNvbG9yKCk7CisgICAgaWYgKGxpbmVSZWN0cy5zaXplKCkg
PT0gMSkgeworICAgICAgICBhdXRvIGFkanVzdGVkUGFpbnRSZWN0ID0gbGluZVJlY3RzWzBdOwor
ICAgICAgICBhZGp1c3RlZFBhaW50UmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOworICAgICAgICBw
YWludE91dGxpbmUoYWRqdXN0ZWRQYWludFJlY3QpOworICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBsaW5lUmVjdHMuc2l6ZSgpIC0gMTsgaSsrKQot
ICAgICAgICBwYWludE91dGxpbmVGb3JMaW5lKHBhaW50T2Zmc2V0LCBsaW5lUmVjdHNbaSAtIDFd
LCBsaW5lUmVjdHNbaV0sIGxpbmVSZWN0c1tpICsgMV0sIG91dGxpbmVDb2xvcik7Ci0KLSAgICBp
ZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5lbmRUcmFu
c3BhcmVuY3lMYXllcigpOwotfQotCi12b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50T3V0bGluZUZv
ckxpbmUoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBw
cmV2aW91c0xpbmUsIGNvbnN0IExheW91dFJlY3QmIGN1cnJlbnRMaW5lLCBjb25zdCBMYXlvdXRS
ZWN0JiBuZXh0TGluZSwgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xvcikKLXsKICAgICBhdXRvJiBz
dHlsZVRvVXNlID0gbV9yZW5kZXJlci5zdHlsZSgpOwotICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4
dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBhdXRvIG91dGxpbmVPZmZzZXQgPSBzdHls
ZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKKyAgICBhdXRvIG91dGxpbmVXaWR0aCA9IHN0eWxlVG9V
c2Uub3V0bGluZVdpZHRoKCk7CisgICAgYXV0byBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3VtZW50
KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKIAotICAgIGZsb2F0IG91dGxpbmVPZmZzZXQgPSBzdHls
ZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKLSAgICBMYXlvdXRSZWN0IG91dGxpbmVCb3hSZWN0ID0g
Y3VycmVudExpbmU7Ci0gICAgb3V0bGluZUJveFJlY3QuaW5mbGF0ZShvdXRsaW5lT2Zmc2V0KTsK
LSAgICBvdXRsaW5lQm94UmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwotICAgIGlmIChvdXRsaW5l
Qm94UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8RmxvYXRSZWN0
PiBwaXhlbFNuYXBwZWRSZWN0czsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwg
bGluZVJlY3RzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBhdXRvIHJlY3QgPSBsaW5lUmVj
dHNbaW5kZXhdOwogCi0gICAgYXV0byYgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAg
IGZsb2F0IG91dGxpbmVXaWR0aCA9IHN0eWxlVG9Vc2Uub3V0bGluZVdpZHRoKCk7Ci0gICAgQm9y
ZGVyU3R5bGUgb3V0bGluZVN0eWxlID0gc3R5bGVUb1VzZS5vdXRsaW5lU3R5bGUoKTsKLSAgICBi
b29sIGFudGlhbGlhcyA9IHNob3VsZEFudGlhbGlhc0xpbmVzKGdyYXBoaWNzQ29udGV4dCk7Ci0K
LSAgICBhdXRvIGFkanVzdGVkUHJldmlvdXNMaW5lID0gcHJldmlvdXNMaW5lOwotICAgIGFkanVz
dGVkUHJldmlvdXNMaW5lLm1vdmVCeShwYWludE9mZnNldCk7Ci0gICAgYXV0byBhZGp1c3RlZE5l
eHRMaW5lID0gbmV4dExpbmU7Ci0gICAgYWRqdXN0ZWROZXh0TGluZS5tb3ZlQnkocGFpbnRPZmZz
ZXQpOwotICAgIAotICAgIGZsb2F0IGFkamFjZW50V2lkdGgxID0gMDsKLSAgICBmbG9hdCBhZGph
Y2VudFdpZHRoMiA9IDA7Ci0gICAgLy8gbGVmdCBlZGdlCi0gICAgYXV0byB0b3BMZWZ0ID0gb3V0
bGluZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICBpZiAocHJldmlvdXNMaW5lLmlzRW1w
dHkoKSB8fCBjdXJyZW50TGluZS54KCkgPCBwcmV2aW91c0xpbmUueCgpIHx8IChwcmV2aW91c0xp
bmUubWF4WCgpKSA8PSBjdXJyZW50TGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1v
dXRsaW5lV2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91
dGxpbmVXaWR0aDsKLSAgICB9IGVsc2UgewotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVX
aWR0aCwgMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRs
aW5lV2lkdGg7Ci0gICAgfQotICAgIGF1dG8gYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5t
aW5YTWF4WUNvcm5lcigpOwotICAgIGlmIChuZXh0TGluZS5pc0VtcHR5KCkgfHwgY3VycmVudExp
bmUueCgpIDw9IG5leHRMaW5lLngoKSB8fCAobmV4dExpbmUubWF4WCgpKSA8PSBjdXJyZW50TGlu
ZS54KCkpIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCBvdXRsaW5lV2lkdGgpOwotICAg
ICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVsc2UgewotICAgICAg
ICBib3R0b21SaWdodC5tb3ZlKDAsIC0yICogb3V0bGluZU9mZnNldCk7Ci0gICAgICAgIGFkamFj
ZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICB9Ci0gICAgZHJhd0xpbmVGb3JCb3hTaWRl
KGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdo
dCksIEJveFNpZGU6OkxlZnQsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdp
ZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgCi0gICAgLy8gcmlnaHQgZWRn
ZQotICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOwotICAgIGlm
IChwcmV2aW91c0xpbmUuaXNFbXB0eSgpIHx8IHByZXZpb3VzTGluZS5tYXhYKCkgPCBjdXJyZW50
TGluZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9IHByZXZpb3VzTGluZS54KCkpIHsK
LSAgICAgICAgdG9wTGVmdC5tb3ZlKDAsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2Vu
dFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVsc2UgewotICAgICAgICB0b3BMZWZ0Lm1v
dmUoMCwgMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRs
aW5lV2lkdGg7Ci0gICAgfQotICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1h
eFlDb3JuZXIoKTsKLSAgICBpZiAobmV4dExpbmUuaXNFbXB0eSgpIHx8IG5leHRMaW5lLm1heFgo
KSA8PSBjdXJyZW50TGluZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9IG5leHRMaW5l
LngoKSkgewotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdp
ZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIC0yICogb3V0bGluZU9m
ZnNldCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKKyAgICAgICAg
cmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOworICAgICAgICByZWN0LmluZmxhdGUob3V0bGluZU9m
ZnNldCArIG91dGxpbmVXaWR0aCAvIDIpOworICAgICAgICBwaXhlbFNuYXBwZWRSZWN0cy5hcHBl
bmQoc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0LCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAg
IH0KLSAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxv
YXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6UmlnaHQsIG91dGxpbmVDb2xv
ciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlh
cyk7Ci0KLSAgICAvLyB1cHBlciBlZGdlCi0gICAgaWYgKGN1cnJlbnRMaW5lLngoKSA8IHByZXZp
b3VzTGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5Z
Q29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdp
ZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGJv
dHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllDb3JuZXIoKTsKLSAgICAgICAgYm90
dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBpZiAoIXByZXZpb3VzTGlu
ZS5pc0VtcHR5KCkgJiYgYWRqdXN0ZWRQcmV2aW91c0xpbmUueCgpIDwgYm90dG9tUmlnaHQueCgp
KSB7Ci0gICAgICAgICAgICBib3R0b21SaWdodC5zZXRYKGFkanVzdGVkUHJldmlvdXNMaW5lLngo
KSAtIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSAtb3V0bGlu
ZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0
bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBk
b2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6VG9wLCBv
dXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgy
LCBhbnRpYWxpYXMpOwotICAgIH0KLSAgICAKLSAgICBpZiAocHJldmlvdXNMaW5lLm1heFgoKSA8
IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3Qu
bWluWE1pbllDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIC1v
dXRsaW5lV2lkdGgpOwotICAgICAgICBpZiAoIXByZXZpb3VzTGluZS5pc0VtcHR5KCkgJiYgYWRq
dXN0ZWRQcmV2aW91c0xpbmUubWF4WCgpID4gdG9wTGVmdC54KCkpIHsKLSAgICAgICAgICAgIHRv
cExlZnQuc2V0WChhZGp1c3RlZFByZXZpb3VzTGluZS5tYXhYKCkgKyBvdXRsaW5lT2Zmc2V0KTsK
LSAgICAgICAgICAgIGFkamFjZW50V2lkdGgxID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAg
Ym90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOwotICAgICAgICBi
b3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgy
ID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250
ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6
VG9wLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50
V2lkdGgyLCBhbnRpYWxpYXMpOworICAgIGF1dG8gcGF0aCA9IFBhdGhVdGlsaXRpZXM6OnBhdGhX
aXRoU2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZShwaXhlbFNuYXBwZWRSZWN0cywgc3R5bGVU
b1VzZS5ib3JkZXIoKSwgb3V0bGluZU9mZnNldCwgc3R5bGVUb1VzZS5kaXJlY3Rpb24oKSwgc3R5
bGVUb1VzZS53cml0aW5nTW9kZSgpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgaWYgKHBhdGgu
aXNFbXB0eSgpKSB7CisgICAgICAgIC8vIERpc2pvaW50IGxpbmUgc3Bhbm5pbmcgaW5saW5lIGJv
eGVzLgorICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IGxpbmVSZWN0cykgeworICAgICAgICAgICAg
cmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOworICAgICAgICAgICAgcGFpbnRPdXRsaW5lKHJlY3Qp
OworICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY3VycmVudExp
bmUueCgpID09IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGlu
ZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5l
V2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVX
aWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5l
cigpOwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7Ci0gICAgICAg
IGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNp
ZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJp
Z2h0KSwgQm94U2lkZTo6VG9wLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRX
aWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOworICAgIGF1dG8mIGdyYXBoaWNzQ29u
dGV4dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBhdXRvIG91dGxpbmVDb2xvciA9IHN0
eWxlVG9Vc2UudmlzaXRlZERlcGVuZGVudENvbG9yV2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5
T3V0bGluZUNvbG9yKTsKKyAgICBhdXRvIHVzZVRyYW5zcGFyZW5jeUxheWVyID0gIW91dGxpbmVD
b2xvci5pc09wYXF1ZSgpOworICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikgeworICAgICAg
ICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihvdXRsaW5lQ29sb3IuYWxw
aGFBc0Zsb2F0KCkpOworICAgICAgICBvdXRsaW5lQ29sb3IgPSBvdXRsaW5lQ29sb3Iub3BhcXVl
Q29sb3IoKTsKICAgICB9CiAKLSAgICAvLyBsb3dlciBlZGdlCi0gICAgaWYgKGN1cnJlbnRMaW5l
LngoKSA8IG5leHRMaW5lLngoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3Qu
bWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDAp
OwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9t
UmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigpOwotICAgICAgICBib3R0b21S
aWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAgaWYgKCFuZXh0
TGluZS5pc0VtcHR5KCkgJiYgKGFkanVzdGVkTmV4dExpbmUueCgpIDwgYm90dG9tUmlnaHQueCgp
KSkgewotICAgICAgICAgICAgYm90dG9tUmlnaHQuc2V0WChhZGp1c3RlZE5leHRMaW5lLngoKSAt
IG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSAtb3V0bGluZVdp
ZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGlu
ZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1
bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBv
dXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgy
LCBhbnRpYWxpYXMpOwotICAgIH0KLSAgICAKLSAgICBpZiAobmV4dExpbmUubWF4WCgpIDwgY3Vy
cmVudExpbmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5taW5Y
TWF4WUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwgMCk7Ci0g
ICAgICAgIGlmICghbmV4dExpbmUuaXNFbXB0eSgpICYmIGFkanVzdGVkTmV4dExpbmUubWF4WCgp
ID4gdG9wTGVmdC54KCkpIHsKLSAgICAgICAgICAgIHRvcExlZnQuc2V0WChhZGp1c3RlZE5leHRM
aW5lLm1heFgoKSArIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDEg
PSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lk
dGgxID0gb3V0bGluZVdpZHRoOwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0
Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRo
LCBvdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsK
LSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZs
b2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OkJvdHRvbSwgb3V0bGluZUNv
bG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFs
aWFzKTsKLSAgICB9CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZUNvbG9yKG91dGxpbmVD
b2xvcik7CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhvdXRsaW5lV2lk
dGgpOworICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VTdHlsZShTb2xpZFN0cm9rZSk7Cisg
ICAgZ3JhcGhpY3NDb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiAKLSAgICBpZiAoY3VycmVudExp
bmUueCgpID09IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGlu
ZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5l
V2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAg
ICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigpOwotICAgICAg
ICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAg
YWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lk
ZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmln
aHQpLCBCb3hTaWRlOjpCb3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2Vu
dFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQorICAgIGlmICh1c2VU
cmFuc3BhcmVuY3lMYXllcikKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmVuZFRyYW5zcGFyZW5j
eUxheWVyKCk7CiB9CiAKIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRTaWRlcyhjb25zdCBTaWRl
cyYgc2lkZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFp
bnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaAppbmRleCBh
MTk0ZjdlMDlkNjEuLjM1NzM0NjI0ZDdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0JvcmRlclBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9y
ZGVyUGFpbnRlci5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29sb3Ig
Y2FsY3VsYXRlQm9yZGVyU3R5bGVDb2xvcihjb25zdCBCb3JkZXJTdHlsZSYsIGNvbnN0IEJveFNp
ZGUmLCBjb25zdCBDb2xvciYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9y
TGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIHBy
ZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYgY3VycmVudExpbmUsIGNvbnN0IExheW91dFJl
Y3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0bGluZUNvbG9yKTsKICAgICB2b2lkIHBhaW50
VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNv
bnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwgY29uc3QgSW50UG9pbnQmIGlubmVyQm9yZGVy
QWRqdXN0bWVudCwKICAgICAgICAgY29uc3QgQm9yZGVyRWRnZXMmLCBCb3hTaWRlU2V0IGVkZ2Vz
VG9EcmF3LCBzdGQ6Om9wdGlvbmFsPEJvcmRlckRhdGE6OlJhZGlpPiwgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBib29sIGlzSG9yaXpvbnRhbCk7CiAgICAgdm9p
ZCBwYWludEJvcmRlclNpZGVzKGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3Qg
Um91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1
c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlcyYsIEJveFNpZGVTZXQgZWRnZVNldCwgc3RkOjpvcHRp
b25hbDxCb3JkZXJEYXRhOjpSYWRpaT4sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29s
IGFudGlhbGlhcywgYm9vbCBpc0hvcml6b250YWwsIGNvbnN0IENvbG9yKiBvdmVycmlkZUNvbG9y
ID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmlu
ZGV4IDgwNTQ1Mjc1MTRjNS4uMTVkMTk2NWUzZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcApAQCAtOTU3LDggKzk1Nyw2IEBAIHZvaWQgUmVuZGVySW5saW5l
OjpwYWludE91dGxpbmUoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxMYXlvdXRSZWN0PiByZWN0czsK
LSAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKLQogICAgIGZvciAoYXV0byBib3ggPSBJ
bmxpbmVJdGVyYXRvcjo6Zmlyc3RJbmxpbmVCb3hGb3IoKnRoaXMpOyBib3g7IGJveC50cmF2ZXJz
ZU5leHRJbmxpbmVCb3goKSkgewogICAgICAgICBhdXRvIGxpbmVCb3ggPSBib3gtPmxpbmVCb3go
KTsKICAgICAgICAgYXV0byB0b3AgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgobGluZUJveC0+Y29u
dGVudExvZ2ljYWxUb3AoKSwgYm94LT5sb2dpY2FsVG9wKCkpIH07CkBAIC05NjYsOCArOTY0LDYg
QEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZShQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbWl4
aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgogICAgICAgICByZWN0cy5hcHBl
bmQoeyBMYXlvdXRVbml0KGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS54
KCkpLCB0b3AsIExheW91dFVuaXQoYm94LT5sb2dpY2FsV2lkdGgoKSksIGJvdHRvbSAtIHRvcCB9
KTsKICAgICB9Ci0gICAgcmVjdHMuYXBwZW5kKExheW91dFJlY3QoKSk7Ci0KICAgICBCb3JkZXJQ
YWludGVyIHsgKnRoaXMsIHBhaW50SW5mbyB9LnBhaW50T3V0bGluZShwYWludE9mZnNldCwgcmVj
dHMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462856</attachid>
            <date>2022-10-06 19:43:34 -0700</date>
            <delta_ts>2022-10-07 06:24:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246192-20221006194333.patch</filename>
            <type>text/plain</type>
            <size>16195</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkNmE1NDY2MTc1MDhjYzI1NTAwN2Y0MzkxYjJmOTJjOWI1YTM0ZDY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDYgT2N0IDIwMjIgMTc6MTA6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
QWRkIHN1cHBvcnQgZm9yIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzIChpbmxpbmUKIGVkaXRp
b24pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDYxOTIKClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMS4gVXNlIHBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3Rz
Rm9yT3V0bGluZSB0byBtZXJnZSBqb2ludCBpbmxpbmUgYm94IHJlY3RhbmdsZXMKMi4gVXNlIHJl
Z3VsYXIgb3V0bGluZSBwYWludGluZyBpZiB0aGVyZSdzIG9ubHkgb25lIHJlY3Qgb3IgdGhlIGxp
bmUgc3Bhbm5pbmcgaW5saW5lIGJveCByZWN0YW5nbGVzIGFyZSBkaXNqb2ludAoKKiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcDoKKFdlYkNvcmU6OlBh
dGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZSk6CiogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwOgooV2ViQ29yZTo6Qm9yZGVy
UGFpbnRlcjo6cGFpbnRPdXRsaW5lKToKKFdlYkNvcmU6OkJvcmRlclBhaW50ZXI6OnBhaW50T3V0
bGluZUZvckxpbmUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQ
YWludGVyLmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSk6Ci0tLQogLi4uL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwICAgICAgIHwgICAyIC0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcCAgICB8IDE3OSArKysrLS0tLS0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmggICAgICB8ICAgMSAtCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCAgICAgfCAgIDQgLQogLi4uZS1v
dXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy1leHBlY3RlZC5odG1sIHwgIDEzICsrCiAuLi4vaW5s
aW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLmh0bWwgICAgfCAgMTYgKysKIDYgZmlsZXMg
Y2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTUxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvaW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVy
LXJhZGl1cy1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLmh0bWwKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwCmluZGV4
IDFkMDA0ZmMxMTRhYy4uOGNhODEwNGNkZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcApAQCAtNDk1LDggKzQ5NSw2IEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gcmVjdEZyb21Qb2x5Z29uKGNvbnN0IEZsb2F0
UG9pbnRHcmFwaDo6UG9seWdvbiYKIFBhdGggUGF0aFV0aWxpdGllczo6cGF0aFdpdGhTaHJpbmtX
cmFwcGVkUmVjdHNGb3JPdXRsaW5lKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgY29u
c3QgQm9yZGVyRGF0YSYgYm9yZGVyRGF0YSwKICAgICBmbG9hdCBvdXRsaW5lT2Zmc2V0LCBUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbiwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKQogewotICAgIEFTU0VSVChib3JkZXJEYXRhLmhhc0JvcmRlclJhZGl1cygp
KTsKLQogICAgIEZsb2F0U2l6ZSB0b3BMZWZ0UmFkaXVzIHsgYm9yZGVyRGF0YS50b3BMZWZ0UmFk
aXVzKCkud2lkdGgudmFsdWUoKSwgYm9yZGVyRGF0YS50b3BMZWZ0UmFkaXVzKCkuaGVpZ2h0LnZh
bHVlKCkgfTsKICAgICBGbG9hdFNpemUgdG9wUmlnaHRSYWRpdXMgeyBib3JkZXJEYXRhLnRvcFJp
Z2h0UmFkaXVzKCkud2lkdGgudmFsdWUoKSwgYm9yZGVyRGF0YS50b3BSaWdodFJhZGl1cygpLmhl
aWdodC52YWx1ZSgpIH07CiAgICAgRmxvYXRTaXplIGJvdHRvbVJpZ2h0UmFkaXVzIHsgYm9yZGVy
RGF0YS5ib3R0b21SaWdodFJhZGl1cygpLndpZHRoLnZhbHVlKCksIGJvcmRlckRhdGEuYm90dG9t
UmlnaHRSYWRpdXMoKS5oZWlnaHQudmFsdWUoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0JvcmRlclBhaW50ZXIuY3BwCmluZGV4IDMyZTRjYjZjYmFlOC4uYjM1YjkyZDBjYzJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1h
Z2UuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJQYXRoVXRpbGl0aWVzLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjU3
LDE2MSArMjU4LDUxIEBAIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lKGNvbnN0IExh
eW91dFJlY3QmIHBhaW50UmVjdCkKIAogdm9pZCBCb3JkZXJQYWludGVyOjpwYWludE91dGxpbmUo
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBWZWN0b3I8TGF5b3V0UmVjdD4m
IGxpbmVSZWN0cykKIHsKLSAgICBhdXRvJiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5j
b250ZXh0KCk7Ci0gICAgYXV0byYgc3R5bGVUb1VzZSA9IG1fcmVuZGVyZXIuc3R5bGUoKTsKLSAg
ICBhdXRvIG91dGxpbmVDb2xvciA9IHN0eWxlVG9Vc2UudmlzaXRlZERlcGVuZGVudENvbG9yV2l0
aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5T3V0bGluZUNvbG9yKTsKLSAgICBib29sIHVzZVRyYW5z
cGFyZW5jeUxheWVyID0gIW91dGxpbmVDb2xvci5pc09wYXF1ZSgpOwotICAgIGlmICh1c2VUcmFu
c3BhcmVuY3lMYXllcikgewotICAgICAgICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFuc3BhcmVu
Y3lMYXllcihvdXRsaW5lQ29sb3IuYWxwaGFBc0Zsb2F0KCkpOwotICAgICAgICBvdXRsaW5lQ29s
b3IgPSBvdXRsaW5lQ29sb3Iub3BhcXVlQ29sb3IoKTsKKyAgICBpZiAobGluZVJlY3RzLnNpemUo
KSA9PSAxKSB7CisgICAgICAgIGF1dG8gYWRqdXN0ZWRQYWludFJlY3QgPSBsaW5lUmVjdHNbMF07
CisgICAgICAgIGFkanVzdGVkUGFpbnRSZWN0Lm1vdmVCeShwYWludE9mZnNldCk7CisgICAgICAg
IHBhaW50T3V0bGluZShhZGp1c3RlZFBhaW50UmVjdCk7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGxpbmVSZWN0cy5zaXplKCkgLSAxOyBpKysp
Ci0gICAgICAgIHBhaW50T3V0bGluZUZvckxpbmUocGFpbnRPZmZzZXQsIGxpbmVSZWN0c1tpIC0g
MV0sIGxpbmVSZWN0c1tpXSwgbGluZVJlY3RzW2kgKyAxXSwgb3V0bGluZUNvbG9yKTsKLQotICAg
IGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmVuZFRy
YW5zcGFyZW5jeUxheWVyKCk7Ci19Ci0KLXZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5l
Rm9yTGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3Qm
IHByZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYgY3VycmVudExpbmUsIGNvbnN0IExheW91
dFJlY3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0bGluZUNvbG9yKQotewogICAgIGF1dG8m
IHN0eWxlVG9Vc2UgPSBtX3JlbmRlcmVyLnN0eWxlKCk7Ci0gICAgYXV0byYgZ3JhcGhpY3NDb250
ZXh0ID0gbV9wYWludEluZm8uY29udGV4dCgpOworICAgIGF1dG8gb3V0bGluZU9mZnNldCA9IHN0
eWxlVG9Vc2Uub3V0bGluZU9mZnNldCgpOworICAgIGF1dG8gb3V0bGluZVdpZHRoID0gc3R5bGVU
b1VzZS5vdXRsaW5lV2lkdGgoKTsKKyAgICBhdXRvIGRldmljZVNjYWxlRmFjdG9yID0gZG9jdW1l
bnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogCi0gICAgZmxvYXQgb3V0bGluZU9mZnNldCA9IHN0
eWxlVG9Vc2Uub3V0bGluZU9mZnNldCgpOwotICAgIExheW91dFJlY3Qgb3V0bGluZUJveFJlY3Qg
PSBjdXJyZW50TGluZTsKLSAgICBvdXRsaW5lQm94UmVjdC5pbmZsYXRlKG91dGxpbmVPZmZzZXQp
OwotICAgIG91dGxpbmVCb3hSZWN0Lm1vdmVCeShwYWludE9mZnNldCk7Ci0gICAgaWYgKG91dGxp
bmVCb3hSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOworICAgIFZlY3RvcjxGbG9hdFJl
Y3Q+IHBpeGVsU25hcHBlZFJlY3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXgg
PCBsaW5lUmVjdHMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgIGF1dG8gcmVjdCA9IGxpbmVS
ZWN0c1tpbmRleF07CiAKLSAgICBhdXRvJiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7Ci0g
ICAgZmxvYXQgb3V0bGluZVdpZHRoID0gc3R5bGVUb1VzZS5vdXRsaW5lV2lkdGgoKTsKLSAgICBC
b3JkZXJTdHlsZSBvdXRsaW5lU3R5bGUgPSBzdHlsZVRvVXNlLm91dGxpbmVTdHlsZSgpOwotICAg
IGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFsaWFzTGluZXMoZ3JhcGhpY3NDb250ZXh0KTsK
LQotICAgIGF1dG8gYWRqdXN0ZWRQcmV2aW91c0xpbmUgPSBwcmV2aW91c0xpbmU7Ci0gICAgYWRq
dXN0ZWRQcmV2aW91c0xpbmUubW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICBhdXRvIGFkanVzdGVk
TmV4dExpbmUgPSBuZXh0TGluZTsKLSAgICBhZGp1c3RlZE5leHRMaW5lLm1vdmVCeShwYWludE9m
ZnNldCk7Ci0gICAgCi0gICAgZmxvYXQgYWRqYWNlbnRXaWR0aDEgPSAwOwotICAgIGZsb2F0IGFk
amFjZW50V2lkdGgyID0gMDsKLSAgICAvLyBsZWZ0IGVkZ2UKLSAgICBhdXRvIHRvcExlZnQgPSBv
dXRsaW5lQm94UmVjdC5taW5YTWluWUNvcm5lcigpOwotICAgIGlmIChwcmV2aW91c0xpbmUuaXNF
bXB0eSgpIHx8IGN1cnJlbnRMaW5lLngoKSA8IHByZXZpb3VzTGluZS54KCkgfHwgKHByZXZpb3Vz
TGluZS5tYXhYKCkpIDw9IGN1cnJlbnRMaW5lLngoKSkgewotICAgICAgICB0b3BMZWZ0Lm1vdmUo
LW91dGxpbmVXaWR0aCwgLW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0g
b3V0bGluZVdpZHRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGlu
ZVdpZHRoLCAyICogb3V0bGluZU9mZnNldCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gLW91
dGxpbmVXaWR0aDsKLSAgICB9Ci0gICAgYXV0byBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0
Lm1pblhNYXhZQ29ybmVyKCk7Ci0gICAgaWYgKG5leHRMaW5lLmlzRW1wdHkoKSB8fCBjdXJyZW50
TGluZS54KCkgPD0gbmV4dExpbmUueCgpIHx8IChuZXh0TGluZS5tYXhYKCkpIDw9IGN1cnJlbnRM
aW5lLngoKSkgewotICAgICAgICBib3R0b21SaWdodC5tb3ZlKDAsIG91dGxpbmVXaWR0aCk7Ci0g
ICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGJvdHRvbVJpZ2h0Lm1vdmUoMCwgLTIgKiBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgYWRq
YWNlbnRXaWR0aDIgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBkcmF3TGluZUZvckJveFNp
ZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJp
Z2h0KSwgQm94U2lkZTo6TGVmdCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50
V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICAKLSAgICAvLyByaWdodCBl
ZGdlCi0gICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29ybmVyKCk7Ci0gICAg
aWYgKHByZXZpb3VzTGluZS5pc0VtcHR5KCkgfHwgcHJldmlvdXNMaW5lLm1heFgoKSA8IGN1cnJl
bnRMaW5lLm1heFgoKSB8fCBjdXJyZW50TGluZS5tYXhYKCkgPD0gcHJldmlvdXNMaW5lLngoKSkg
ewotICAgICAgICB0b3BMZWZ0Lm1vdmUoMCwgLW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFj
ZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRvcExlZnQu
bW92ZSgwLCAyICogb3V0bGluZU9mZnNldCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gLW91
dGxpbmVXaWR0aDsKLSAgICB9Ci0gICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhY
TWF4WUNvcm5lcigpOwotICAgIGlmIChuZXh0TGluZS5pc0VtcHR5KCkgfHwgbmV4dExpbmUubWF4
WCgpIDw9IGN1cnJlbnRMaW5lLm1heFgoKSB8fCBjdXJyZW50TGluZS5tYXhYKCkgPD0gbmV4dExp
bmUueCgpKSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCBvdXRsaW5l
V2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVs
c2UgewotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgLTIgKiBvdXRsaW5l
T2Zmc2V0KTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSAtb3V0bGluZVdpZHRoOworICAgICAg
ICByZWN0Lm1vdmVCeShwYWludE9mZnNldCk7CisgICAgICAgIHJlY3QuaW5mbGF0ZShvdXRsaW5l
T2Zmc2V0ICsgb3V0bGluZVdpZHRoIC8gMik7CisgICAgICAgIHBpeGVsU25hcHBlZFJlY3RzLmFw
cGVuZChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3QsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAg
ICAgfQotICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBG
bG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpSaWdodCwgb3V0bGluZUNv
bG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFs
aWFzKTsKLQotICAgIC8vIHVwcGVyIGVkZ2UKLSAgICBpZiAoY3VycmVudExpbmUueCgpIDwgcHJl
dmlvdXNMaW5lLngoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1p
bllDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIC1vdXRsaW5l
V2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAg
Ym90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOwotICAgICAgICBi
b3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7Ci0gICAgICAgIGlmICghcHJldmlvdXNM
aW5lLmlzRW1wdHkoKSAmJiBhZGp1c3RlZFByZXZpb3VzTGluZS54KCkgPCBib3R0b21SaWdodC54
KCkpIHsKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0LnNldFgoYWRqdXN0ZWRQcmV2aW91c0xpbmUu
eCgpIC0gb3V0bGluZU9mZnNldCk7Ci0gICAgICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRs
aW5lV2lkdGg7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBv
dXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQs
IGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpUb3As
IG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0
aDIsIGFudGlhbGlhcyk7Ci0gICAgfQotICAgIAotICAgIGlmIChwcmV2aW91c0xpbmUubWF4WCgp
IDwgY3VycmVudExpbmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVj
dC5taW5YTWluWUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwg
LW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGlmICghcHJldmlvdXNMaW5lLmlzRW1wdHkoKSAmJiBh
ZGp1c3RlZFByZXZpb3VzTGluZS5tYXhYKCkgPiB0b3BMZWZ0LngoKSkgewotICAgICAgICAgICAg
dG9wTGVmdC5zZXRYKGFkanVzdGVkUHJldmlvdXNMaW5lLm1heFgoKSArIG91dGxpbmVPZmZzZXQp
OwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAgICAg
ICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29ybmVyKCk7Ci0gICAgICAg
IGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0
aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRl
OjpUb3AsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNl
bnRXaWR0aDIsIGFudGlhbGlhcyk7CisgICAgYXV0byBwYXRoID0gUGF0aFV0aWxpdGllczo6cGF0
aFdpdGhTaHJpbmtXcmFwcGVkUmVjdHNGb3JPdXRsaW5lKHBpeGVsU25hcHBlZFJlY3RzLCBzdHls
ZVRvVXNlLmJvcmRlcigpLCBvdXRsaW5lT2Zmc2V0LCBzdHlsZVRvVXNlLmRpcmVjdGlvbigpLCBz
dHlsZVRvVXNlLndyaXRpbmdNb2RlKCksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBpZiAocGF0
aC5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRGlzam9pbnQgbGluZSBzcGFubmluZyBpbmxpbmUg
Ym94ZXMuCisgICAgICAgIGZvciAoYXV0byByZWN0IDogbGluZVJlY3RzKSB7CisgICAgICAgICAg
ICByZWN0Lm1vdmVCeShwYWludE9mZnNldCk7CisgICAgICAgICAgICBwYWludE91dGxpbmUocmVj
dCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChjdXJyZW50
TGluZS54KCkgPT0gY3VycmVudExpbmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRs
aW5lQm94UmVjdC5taW5YTWluWUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxp
bmVXaWR0aCwgLW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGlu
ZVdpZHRoOwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29y
bmVyKCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKLSAgICAg
ICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94
U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9t
UmlnaHQpLCBCb3hTaWRlOjpUb3AsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2Vu
dFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7CisgICAgYXV0byYgZ3JhcGhpY3ND
b250ZXh0ID0gbV9wYWludEluZm8uY29udGV4dCgpOworICAgIGF1dG8gb3V0bGluZUNvbG9yID0g
c3R5bGVUb1VzZS52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVy
dHlPdXRsaW5lQ29sb3IpOworICAgIGF1dG8gdXNlVHJhbnNwYXJlbmN5TGF5ZXIgPSAhb3V0bGlu
ZUNvbG9yLmlzT3BhcXVlKCk7CisgICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKSB7CisgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG91dGxpbmVDb2xvci5h
bHBoYUFzRmxvYXQoKSk7CisgICAgICAgIG91dGxpbmVDb2xvciA9IG91dGxpbmVDb2xvci5vcGFx
dWVDb2xvcigpOwogICAgIH0KIAotICAgIC8vIGxvd2VyIGVkZ2UKLSAgICBpZiAoY3VycmVudExp
bmUueCgpIDwgbmV4dExpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVj
dC5taW5YTWF4WUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0aCwg
MCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAgICAgICBib3R0
b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIGJvdHRv
bVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOwotICAgICAgICBpZiAoIW5l
eHRMaW5lLmlzRW1wdHkoKSAmJiAoYWRqdXN0ZWROZXh0TGluZS54KCkgPCBib3R0b21SaWdodC54
KCkpKSB7Ci0gICAgICAgICAgICBib3R0b21SaWdodC5zZXRYKGFkanVzdGVkTmV4dExpbmUueCgp
IC0gb3V0bGluZU9mZnNldCk7Ci0gICAgICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5l
V2lkdGg7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRs
aW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRv
Y3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpCb3R0b20s
IG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0
aDIsIGFudGlhbGlhcyk7Ci0gICAgfQotICAgIAotICAgIGlmIChuZXh0TGluZS5tYXhYKCkgPCBj
dXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1p
blhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAwKTsK
LSAgICAgICAgaWYgKCFuZXh0TGluZS5pc0VtcHR5KCkgJiYgYWRqdXN0ZWROZXh0TGluZS5tYXhY
KCkgPiB0b3BMZWZ0LngoKSkgewotICAgICAgICAgICAgdG9wTGVmdC5zZXRYKGFkanVzdGVkTmV4
dExpbmUubWF4WCgpICsgb3V0bGluZU9mZnNldCk7Ci0gICAgICAgICAgICBhZGphY2VudFdpZHRo
MSA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWRqYWNlbnRX
aWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJl
Y3QubWF4WE1heFlDb3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lk
dGgsIG91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRo
OwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwg
RmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBvdXRsaW5l
Q29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRp
YWxpYXMpOwotICAgIH0KKyAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlQ29sb3Iob3V0bGlu
ZUNvbG9yKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKG91dGxpbmVX
aWR0aCk7CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsK
KyAgICBncmFwaGljc0NvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKIAotICAgIGlmIChjdXJyZW50
TGluZS54KCkgPT0gY3VycmVudExpbmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRs
aW5lQm94UmVjdC5taW5YTWF4WUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxp
bmVXaWR0aCwgMCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAg
ICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAg
ICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOwotICAgICAg
ICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hT
aWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21S
aWdodCksIEJveFNpZGU6OkJvdHRvbSwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFj
ZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9CisgICAgaWYgKHVz
ZVRyYW5zcGFyZW5jeUxheWVyKQorICAgICAgICBncmFwaGljc0NvbnRleHQuZW5kVHJhbnNwYXJl
bmN5TGF5ZXIoKTsKIH0KIAogdm9pZCBCb3JkZXJQYWludGVyOjpwYWludFNpZGVzKGNvbnN0IFNp
ZGVzJiBzaWRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQ
YWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oCmluZGV4
IGExOTRmN2UwOWQ2MS4uMzU3MzQ2MjRkN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9C
b3JkZXJQYWludGVyLmgKQEAgLTU5LDcgKzU5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBDb2xv
ciBjYWxjdWxhdGVCb3JkZXJTdHlsZUNvbG9yKGNvbnN0IEJvcmRlclN0eWxlJiwgY29uc3QgQm94
U2lkZSYsIGNvbnN0IENvbG9yJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBwYWludE91dGxpbmVG
b3JMaW5lKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgTGF5b3V0UmVjdCYg
cHJldmlvdXNMaW5lLCBjb25zdCBMYXlvdXRSZWN0JiBjdXJyZW50TGluZSwgY29uc3QgTGF5b3V0
UmVjdCYgbmV4dExpbmUsIGNvbnN0IENvbG9yJiBvdXRsaW5lQ29sb3IpOwogICAgIHZvaWQgcGFp
bnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwg
Y29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3Jk
ZXJBZGp1c3RtZW50LAogICAgICAgICBjb25zdCBCb3JkZXJFZGdlcyYsIEJveFNpZGVTZXQgZWRn
ZXNUb0RyYXcsIHN0ZDo6b3B0aW9uYWw8Qm9yZGVyRGF0YTo6UmFkaWk+LCBCYWNrZ3JvdW5kQmxl
ZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGJvb2wgaXNIb3Jpem9udGFsKTsKICAgICB2
b2lkIHBhaW50Qm9yZGVyU2lkZXMoY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25z
dCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBvaW50JiBpbm5lckJvcmRlckFk
anVzdG1lbnQsIGNvbnN0IEJvcmRlckVkZ2VzJiwgQm94U2lkZVNldCBlZGdlU2V0LCBzdGQ6Om9w
dGlvbmFsPEJvcmRlckRhdGE6OlJhZGlpPiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBib29s
IGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJv
b2wgYW50aWFsaWFzLCBib29sIGlzSG9yaXpvbnRhbCwgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29s
b3IgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAK
aW5kZXggODA1NDUyNzUxNGM1Li4xNWQxOTY1ZTNkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC05NTcsOCArOTU3LDYgQEAgdm9pZCBSZW5kZXJJbmxp
bmU6OnBhaW50T3V0bGluZShQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2YKICAgICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPExheW91dFJlY3Q+IHJlY3Rz
OwotICAgIHJlY3RzLmFwcGVuZChMYXlvdXRSZWN0KCkpOwotCiAgICAgZm9yIChhdXRvIGJveCA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdElubGluZUJveEZvcigqdGhpcyk7IGJveDsgYm94LnRyYXZl
cnNlTmV4dElubGluZUJveCgpKSB7CiAgICAgICAgIGF1dG8gbGluZUJveCA9IGJveC0+bGluZUJv
eCgpOwogICAgICAgICBhdXRvIHRvcCA9IExheW91dFVuaXQgeyBzdGQ6Om1heChsaW5lQm94LT5j
b250ZW50TG9naWNhbFRvcCgpLCBib3gtPmxvZ2ljYWxUb3AoKSkgfTsKQEAgLTk2Niw4ICs5NjQs
NiBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBt
aXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCiAgICAgICAgIHJlY3RzLmFw
cGVuZCh7IExheW91dFVuaXQoYm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigp
LngoKSksIHRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9w
IH0pOwogICAgIH0KLSAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKLQogICAgIEJvcmRl
clBhaW50ZXIgeyAqdGhpcywgcGFpbnRJbmZvIH0ucGFpbnRPdXRsaW5lKHBhaW50T2Zmc2V0LCBy
ZWN0cyk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2lubGluZS1v
dXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40OWQ1YjUwNzlhNjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13
aXRoLWJvcmRlci1yYWRpdXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c3R5bGU+
CitkaXYgeworICBtYXJnaW46IDEwcHg7CisgIGZvbnQtc2l6ZTogMjBweDsKKyAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICBmb250LWZhbWlseTogQWhlbTsKKyAgb3V0bGluZTogNHB4IHNvbGlk
IGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdj48c3Bhbj5YWFhYPC9zcGFuPjwvZGl2PgorPGRpdiBz
dHlsZT0iYm9yZGVyLXJhZGl1czogMTBweDsiPlhYWFg8L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxl
PSJib3JkZXItcmFkaXVzOiAxMHB4OyBvdXRsaW5lLW9mZnNldDogNHB4OyI+WFhYWDwvc3Bhbj48
L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDFweCA1cHggMTBweCAxNXB4OyBvdXRs
aW5lLW9mZnNldDogNHB4OyI+WFhYWDwvc3Bhbj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iY2Q0YTJlNjFh
ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0
bGluZS13aXRoLWJvcmRlci1yYWRpdXMuaHRtbApAQCAtMCwwICsxLDE2IEBACis8c3R5bGU+Citk
aXYgeworICBtYXJnaW46IDEwcHg7CisgIGZvbnQtc2l6ZTogMjBweDsKKyAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOworICBmb250LWZhbWlseTogQWhlbTsKK30KKworc3BhbiB7CisgIG91dGxpbmU6
IDRweCBzb2xpZCBibHVlOworfQorPC9zdHlsZT4KKzxkaXY+PHNwYW4+WFhYWDwvc3Bhbj48L2Rp
dj4KKzxkaXY+PHNwYW4gc3R5bGU9ImJvcmRlci1yYWRpdXM6IDEwcHg7Ij5YWFhYPC9zcGFuPjwv
ZGl2PgorPGRpdj48c3BhbiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMTBweDsgb3V0bGluZS1vZmZz
ZXQ6IDRweDsiPlhYWFg8L3NwYW4+PC9kaXY+Cis8ZGl2PjxzcGFuIHN0eWxlPSJib3JkZXItcmFk
aXVzOiAxcHggNXB4IDEwcHggMTVweDsgb3V0bGluZS1vZmZzZXQ6IDRweDsiPlhYWFg8L3NwYW4+
PC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462864</attachid>
            <date>2022-10-07 06:24:52 -0700</date>
            <delta_ts>2022-10-07 20:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246192-20221007062452.patch</filename>
            <type>text/plain</type>
            <size>16437</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjN2Q2NDliMjk2NjdjZTJmNTllZGRiNDdmNjBkYWM1MDRjMDFlYzA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBU
aHUsIDYgT2N0IDIwMjIgMTc6MTA6MDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
QWRkIHN1cHBvcnQgZm9yIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzIChpbmxpbmUKIGVkaXRp
b24pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDYxOTIKClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMS4gQ29sbGVjdCAobGluZSBzcGFubmluZykgaW5saW5l
IGJveCByZWN0YW5nbGVzIChSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSkKMi4gQ2FsbCBwYXRo
V2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUgdG8gaGF2ZSB0aGUgam9pbnQgaW5saW5l
IGJveCByZWN0YW5nbGVzIG1lcmdlZAozLiBVc2UgcmVndWxhciBvdXRsaW5lIHBhaW50aW5nIGlm
IHRoZXJlJ3Mgb25seSBvbmUgcmVjdCBvciB0aGUgcmVjdGFuZ2xlcyBhcmUgY29tcGxldGVseSBk
aXNqb2ludCAoZW1wdHkgcGF0aCksIG90aGVyd2lzZSBjYWxsIHN0cm9rZVBhdGggKHRoaXMgbWF0
Y2hlcyBmb2N1c3JpbmcgYmVoYXZpb3IpLgoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QYXRoVXRpbGl0aWVzLmNwcDoKKFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBhdGhXaXRo
U2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZSk6IFRoaXMgY2FuIGhhbmRsZSAwIGJvcmRlci1y
YWRpdXMgY2FzZXMgYXMgd2VsbC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFp
bnRlci5jcHA6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWludE91dGxpbmUpOgooV2ViQ29y
ZTo6Qm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lRm9yTGluZSk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cGFpbnRPdXRs
aW5lKTogTm8gbmVlZCBmb3IgdGhlIGVtcHR5IGZpcnN0L2xhc3QgcmVjdGFuZ2xlcy4KLS0tCiAu
Li4vcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAgICAgICAgfCAgIDIgLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwICAgIHwgMTc5ICsrKystLS0t
LS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaCAgICAg
IHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwICAgICB8
ICAgNCAtCiAuLi5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwgfCAg
MTMgKysKIC4uLi9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMuaHRtbCAgICB8ICAx
NiArKwogNiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91dGxp
bmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMu
aHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxp
dGllcy5jcHAKaW5kZXggMWQwMDRmYzExNGFjLi44Y2E4MTA0Y2RmOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwCkBAIC00OTUs
OCArNDk1LDYgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0RnJvbVBvbHln
b24oY29uc3QgRmxvYXRQb2ludEdyYXBoOjpQb2x5Z29uJgogUGF0aCBQYXRoVXRpbGl0aWVzOjpw
YXRoV2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUoY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlY3RzLCBjb25zdCBCb3JkZXJEYXRhJiBib3JkZXJEYXRhLAogICAgIGZsb2F0IG91dGxp
bmVPZmZzZXQsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7Ci0gICAgQVNTRVJUKGJvcmRlckRhdGEuaGFz
Qm9yZGVyUmFkaXVzKCkpOwotCiAgICAgRmxvYXRTaXplIHRvcExlZnRSYWRpdXMgeyBib3JkZXJE
YXRhLnRvcExlZnRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLnRvcExlZnRSYWRp
dXMoKS5oZWlnaHQudmFsdWUoKSB9OwogICAgIEZsb2F0U2l6ZSB0b3BSaWdodFJhZGl1cyB7IGJv
cmRlckRhdGEudG9wUmlnaHRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLnRvcFJp
Z2h0UmFkaXVzKCkuaGVpZ2h0LnZhbHVlKCkgfTsKICAgICBGbG9hdFNpemUgYm90dG9tUmlnaHRS
YWRpdXMgeyBib3JkZXJEYXRhLmJvdHRvbVJpZ2h0UmFkaXVzKCkud2lkdGgudmFsdWUoKSwgYm9y
ZGVyRGF0YS5ib3R0b21SaWdodFJhZGl1cygpLmhlaWdodC52YWx1ZSgpIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAKaW5kZXggMzJlNGNiNmNiYWU4Li5iMzVi
OTJkMGNjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWlu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJOaW5lUGllY2VJbWFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgorI2luY2x1ZGUgIlBh
dGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0yNTcsMTYxICsyNTgsNTEgQEAgdm9pZCBCb3JkZXJQYWludGVyOjpwYWludE91
dGxpbmUoY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogCiB2b2lkIEJvcmRlclBhaW50ZXI6
OnBhaW50T3V0bGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IFZlY3Rv
cjxMYXlvdXRSZWN0PiYgbGluZVJlY3RzKQogewotICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4dCA9
IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKLSAgICBhdXRvJiBzdHlsZVRvVXNlID0gbV9yZW5kZXJl
ci5zdHlsZSgpOwotICAgIGF1dG8gb3V0bGluZUNvbG9yID0gc3R5bGVUb1VzZS52aXNpdGVkRGVw
ZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IpOwotICAg
IGJvb2wgdXNlVHJhbnNwYXJlbmN5TGF5ZXIgPSAhb3V0bGluZUNvbG9yLmlzT3BhcXVlKCk7Ci0g
ICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKSB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5i
ZWdpblRyYW5zcGFyZW5jeUxheWVyKG91dGxpbmVDb2xvci5hbHBoYUFzRmxvYXQoKSk7Ci0gICAg
ICAgIG91dGxpbmVDb2xvciA9IG91dGxpbmVDb2xvci5vcGFxdWVDb2xvcigpOworICAgIGlmIChs
aW5lUmVjdHMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgYXV0byBhZGp1c3RlZFBhaW50UmVjdCA9
IGxpbmVSZWN0c1swXTsKKyAgICAgICAgYWRqdXN0ZWRQYWludFJlY3QubW92ZUJ5KHBhaW50T2Zm
c2V0KTsKKyAgICAgICAgcGFpbnRPdXRsaW5lKGFkanVzdGVkUGFpbnRSZWN0KTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgbGluZVJlY3RzLnNp
emUoKSAtIDE7IGkrKykKLSAgICAgICAgcGFpbnRPdXRsaW5lRm9yTGluZShwYWludE9mZnNldCwg
bGluZVJlY3RzW2kgLSAxXSwgbGluZVJlY3RzW2ldLCBsaW5lUmVjdHNbaSArIDFdLCBvdXRsaW5l
Q29sb3IpOwotCi0gICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKQotICAgICAgICBncmFwaGlj
c0NvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKLX0KLQotdm9pZCBCb3JkZXJQYWludGVy
OjpwYWludE91dGxpbmVGb3JMaW5lKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29u
c3QgTGF5b3V0UmVjdCYgcHJldmlvdXNMaW5lLCBjb25zdCBMYXlvdXRSZWN0JiBjdXJyZW50TGlu
ZSwgY29uc3QgTGF5b3V0UmVjdCYgbmV4dExpbmUsIGNvbnN0IENvbG9yJiBvdXRsaW5lQ29sb3Ip
Ci17CiAgICAgYXV0byYgc3R5bGVUb1VzZSA9IG1fcmVuZGVyZXIuc3R5bGUoKTsKLSAgICBhdXRv
JiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisgICAgYXV0byBvdXRs
aW5lT2Zmc2V0ID0gc3R5bGVUb1VzZS5vdXRsaW5lT2Zmc2V0KCk7CisgICAgYXV0byBvdXRsaW5l
V2lkdGggPSBzdHlsZVRvVXNlLm91dGxpbmVXaWR0aCgpOworICAgIGF1dG8gZGV2aWNlU2NhbGVG
YWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CiAKLSAgICBmbG9hdCBvdXRs
aW5lT2Zmc2V0ID0gc3R5bGVUb1VzZS5vdXRsaW5lT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVjdCBv
dXRsaW5lQm94UmVjdCA9IGN1cnJlbnRMaW5lOwotICAgIG91dGxpbmVCb3hSZWN0LmluZmxhdGUo
b3V0bGluZU9mZnNldCk7Ci0gICAgb3V0bGluZUJveFJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsK
LSAgICBpZiAob3V0bGluZUJveFJlY3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47CisgICAg
VmVjdG9yPEZsb2F0UmVjdD4gcGl4ZWxTbmFwcGVkUmVjdHM7CisgICAgZm9yIChzaXplX3QgaW5k
ZXggPSAwOyBpbmRleCA8IGxpbmVSZWN0cy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0
byByZWN0ID0gbGluZVJlY3RzW2luZGV4XTsKIAotICAgIGF1dG8mIGRvY3VtZW50ID0gdGhpcy0+
ZG9jdW1lbnQoKTsKLSAgICBmbG9hdCBvdXRsaW5lV2lkdGggPSBzdHlsZVRvVXNlLm91dGxpbmVX
aWR0aCgpOwotICAgIEJvcmRlclN0eWxlIG91dGxpbmVTdHlsZSA9IHN0eWxlVG9Vc2Uub3V0bGlu
ZVN0eWxlKCk7Ci0gICAgYm9vbCBhbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXNMaW5lcyhncmFw
aGljc0NvbnRleHQpOwotCi0gICAgYXV0byBhZGp1c3RlZFByZXZpb3VzTGluZSA9IHByZXZpb3Vz
TGluZTsKLSAgICBhZGp1c3RlZFByZXZpb3VzTGluZS5tb3ZlQnkocGFpbnRPZmZzZXQpOwotICAg
IGF1dG8gYWRqdXN0ZWROZXh0TGluZSA9IG5leHRMaW5lOwotICAgIGFkanVzdGVkTmV4dExpbmUu
bW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICAKLSAgICBmbG9hdCBhZGphY2VudFdpZHRoMSA9IDA7
Ci0gICAgZmxvYXQgYWRqYWNlbnRXaWR0aDIgPSAwOwotICAgIC8vIGxlZnQgZWRnZQotICAgIGF1
dG8gdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgaWYgKHBy
ZXZpb3VzTGluZS5pc0VtcHR5KCkgfHwgY3VycmVudExpbmUueCgpIDwgcHJldmlvdXNMaW5lLngo
KSB8fCAocHJldmlvdXNMaW5lLm1heFgoKSkgPD0gY3VycmVudExpbmUueCgpKSB7Ci0gICAgICAg
IHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRq
YWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdG9wTGVm
dC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDIgKiBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgYWRqYWNl
bnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBhdXRvIGJvdHRvbVJpZ2h0ID0g
b3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICBpZiAobmV4dExpbmUuaXNFbXB0
eSgpIHx8IGN1cnJlbnRMaW5lLngoKSA8PSBuZXh0TGluZS54KCkgfHwgKG5leHRMaW5lLm1heFgo
KSkgPD0gY3VycmVudExpbmUueCgpKSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUoMCwgb3V0
bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCAtMiAqIG91dGxpbmVPZmZzZXQp
OwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgfQotICAgIGRy
YXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9w
TGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpMZWZ0LCBvdXRsaW5lQ29sb3IsIG91dGxpbmVT
dHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotICAgIAot
ICAgIC8vIHJpZ2h0IGVkZ2UKLSAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllD
b3JuZXIoKTsKLSAgICBpZiAocHJldmlvdXNMaW5lLmlzRW1wdHkoKSB8fCBwcmV2aW91c0xpbmUu
bWF4WCgpIDwgY3VycmVudExpbmUubWF4WCgpIHx8IGN1cnJlbnRMaW5lLm1heFgoKSA8PSBwcmV2
aW91c0xpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQubW92ZSgwLCAtb3V0bGluZVdpZHRoKTsK
LSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgdG9wTGVmdC5tb3ZlKDAsIDIgKiBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgYWRqYWNl
bnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBib3R0b21SaWdodCA9IG91dGxp
bmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgaWYgKG5leHRMaW5lLmlzRW1wdHkoKSB8
fCBuZXh0TGluZS5tYXhYKCkgPD0gY3VycmVudExpbmUubWF4WCgpIHx8IGN1cnJlbnRMaW5lLm1h
eFgoKSA8PSBuZXh0TGluZS54KCkpIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5l
V2lkdGgsIG91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdp
ZHRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRo
LCAtMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5l
V2lkdGg7CisgICAgICAgIHJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKKyAgICAgICAgcmVjdC5p
bmZsYXRlKG91dGxpbmVPZmZzZXQgKyBvdXRsaW5lV2lkdGggLyAyKTsKKyAgICAgICAgcGl4ZWxT
bmFwcGVkUmVjdHMuYXBwZW5kKHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdCwgZGV2aWNlU2Nh
bGVGYWN0b3IpKTsKICAgICB9Ci0gICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4
dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlJp
Z2h0LCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50
V2lkdGgyLCBhbnRpYWxpYXMpOwotCi0gICAgLy8gdXBwZXIgZWRnZQotICAgIGlmIChjdXJyZW50
TGluZS54KCkgPCBwcmV2aW91c0xpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5l
Qm94UmVjdC5taW5YTWluWUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVX
aWR0aCwgLW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGluZVdp
ZHRoOwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29ybmVy
KCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAg
aWYgKCFwcmV2aW91c0xpbmUuaXNFbXB0eSgpICYmIGFkanVzdGVkUHJldmlvdXNMaW5lLngoKSA8
IGJvdHRvbVJpZ2h0LngoKSkgewotICAgICAgICAgICAgYm90dG9tUmlnaHQuc2V0WChhZGp1c3Rl
ZFByZXZpb3VzTGluZS54KCkgLSBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgICAgIGFkamFjZW50
V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhZGph
Y2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCks
IEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgx
LCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHByZXZp
b3VzTGluZS5tYXhYKCkgPCBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAgICAgdG9wTGVmdCA9
IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgt
b3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgaWYgKCFwcmV2aW91c0xpbmUu
aXNFbXB0eSgpICYmIGFkanVzdGVkUHJldmlvdXNMaW5lLm1heFgoKSA+IHRvcExlZnQueCgpKSB7
Ci0gICAgICAgICAgICB0b3BMZWZ0LnNldFgoYWRqdXN0ZWRQcmV2aW91c0xpbmUubWF4WCgpICsg
b3V0bGluZU9mZnNldCk7Ci0gICAgICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRsaW5lV2lk
dGg7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5l
V2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllDb3Ju
ZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIDApOwotICAgICAg
ICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hT
aWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21S
aWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50
V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKKyAgICBhdXRvIHBhdGggPSBQYXRo
VXRpbGl0aWVzOjpwYXRoV2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUocGl4ZWxTbmFw
cGVkUmVjdHMsIHN0eWxlVG9Vc2UuYm9yZGVyKCksIG91dGxpbmVPZmZzZXQsIHN0eWxlVG9Vc2Uu
ZGlyZWN0aW9uKCksIHN0eWxlVG9Vc2Uud3JpdGluZ01vZGUoKSwgZGV2aWNlU2NhbGVGYWN0b3Ip
OworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBEaXNqb2ludCBsaW5lIHNw
YW5uaW5nIGlubGluZSBib3hlcy4KKyAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBsaW5lUmVjdHMp
IHsKKyAgICAgICAgICAgIHJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKKyAgICAgICAgICAgIHBh
aW50T3V0bGluZShyZWN0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKGN1cnJlbnRMaW5lLngoKSA9PSBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAgICAg
dG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExl
ZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRX
aWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJl
Y3QubWF4WE1pbllDb3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lk
dGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAg
ZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0
b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5l
U3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKKyAgICBh
dXRvJiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisgICAgYXV0byBv
dXRsaW5lQ29sb3IgPSBzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xvckZp
bHRlcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcik7CisgICAgYXV0byB1c2VUcmFuc3BhcmVuY3lM
YXllciA9ICFvdXRsaW5lQ29sb3IuaXNPcGFxdWUoKTsKKyAgICBpZiAodXNlVHJhbnNwYXJlbmN5
TGF5ZXIpIHsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
b3V0bGluZUNvbG9yLmFscGhhQXNGbG9hdCgpKTsKKyAgICAgICAgb3V0bGluZUNvbG9yID0gb3V0
bGluZUNvbG9yLm9wYXF1ZUNvbG9yKCk7CiAgICAgfQogCi0gICAgLy8gbG93ZXIgZWRnZQotICAg
IGlmIChjdXJyZW50TGluZS54KCkgPCBuZXh0TGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVmdCA9
IG91dGxpbmVCb3hSZWN0Lm1pblhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgt
b3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7
Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1heFlDb3JuZXIoKTsK
LSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIG91dGxpbmVXaWR0aCk7Ci0g
ICAgICAgIGlmICghbmV4dExpbmUuaXNFbXB0eSgpICYmIChhZGp1c3RlZE5leHRMaW5lLngoKSA8
IGJvdHRvbVJpZ2h0LngoKSkpIHsKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0LnNldFgoYWRqdXN0
ZWROZXh0TGluZS54KCkgLSBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgICAgIGFkamFjZW50V2lk
dGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhZGphY2Vu
dFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBo
aWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJv
eFNpZGU6OkJvdHRvbSwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgx
LCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG5leHRM
aW5lLm1heFgoKSA8IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0
bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRs
aW5lV2lkdGgsIDApOwotICAgICAgICBpZiAoIW5leHRMaW5lLmlzRW1wdHkoKSAmJiBhZGp1c3Rl
ZE5leHRMaW5lLm1heFgoKSA+IHRvcExlZnQueCgpKSB7Ci0gICAgICAgICAgICB0b3BMZWZ0LnNl
dFgoYWRqdXN0ZWROZXh0TGluZS5tYXhYKCkgKyBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgICAg
IGFkamFjZW50V2lkdGgxID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQg
PSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdodC5t
b3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIg
PSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRl
eHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpC
b3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNl
bnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQorICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJv
a2VDb2xvcihvdXRsaW5lQ29sb3IpOworICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VUaGlj
a25lc3Mob3V0bGluZVdpZHRoKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlU3R5bGUo
U29saWRTdHJva2UpOworICAgIGdyYXBoaWNzQ29udGV4dC5zdHJva2VQYXRoKHBhdGgpOwogCi0g
ICAgaWYgKGN1cnJlbnRMaW5lLngoKSA9PSBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAgICAg
dG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExl
ZnQubW92ZSgtb3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRs
aW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1heFlD
b3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIG91dGxpbmVX
aWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBk
cmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRv
cExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBvdXRsaW5lQ29sb3IsIG91dGxp
bmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotICAg
IH0KKyAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCisgICAgICAgIGdyYXBoaWNzQ29udGV4
dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogfQogCiB2b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50
U2lkZXMoY29uc3QgU2lkZXMmIHNpZGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0JvcmRlclBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQ
YWludGVyLmgKaW5kZXggYTE5NGY3ZTA5ZDYxLi4zNTczNDYyNGQ3ZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaApAQCAtNTksNyArNTksNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIENvbG9yIGNhbGN1bGF0ZUJvcmRlclN0eWxlQ29sb3IoY29uc3QgQm9yZGVyU3R5
bGUmLCBjb25zdCBCb3hTaWRlJiwgY29uc3QgQ29sb3ImKTsKIAogcHJpdmF0ZToKLSAgICB2b2lk
IHBhaW50T3V0bGluZUZvckxpbmUoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25z
dCBMYXlvdXRSZWN0JiBwcmV2aW91c0xpbmUsIGNvbnN0IExheW91dFJlY3QmIGN1cnJlbnRMaW5l
LCBjb25zdCBMYXlvdXRSZWN0JiBuZXh0TGluZSwgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xvcik7
CiAgICAgdm9pZCBwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoY29uc3QgUm91bmRlZFJlY3Qm
IG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IEludFBv
aW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAgIGNvbnN0IEJvcmRlckVkZ2VzJiwg
Qm94U2lkZVNldCBlZGdlc1RvRHJhdywgc3RkOjpvcHRpb25hbDxCb3JkZXJEYXRhOjpSYWRpaT4s
IEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBi
b29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgYm9vbCBpc0hvcml6
b250YWwpOwogICAgIHZvaWQgcGFpbnRCb3JkZXJTaWRlcyhjb25zdCBSb3VuZGVkUmVjdCYgb3V0
ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwgY29uc3QgSW50UG9pbnQm
IGlubmVyQm9yZGVyQWRqdXN0bWVudCwgY29uc3QgQm9yZGVyRWRnZXMmLCBCb3hTaWRlU2V0IGVk
Z2VTZXQsIHN0ZDo6b3B0aW9uYWw8Qm9yZGVyRGF0YTo6UmFkaWk+LCBCYWNrZ3JvdW5kQmxlZWRB
dm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGJvb2wgaXNIb3Jpem9udGFsLCBjb25zdCBDb2xv
ciogb3ZlcnJpZGVDb2xvciA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAppbmRleCA4MDU0NTI3NTE0YzUuLjE1ZDE5NjVlM2Q2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTk1Nyw4ICs5NTcsNiBAQCB2
b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8TGF5
b3V0UmVjdD4gcmVjdHM7Ci0gICAgcmVjdHMuYXBwZW5kKExheW91dFJlY3QoKSk7Ci0KICAgICBm
b3IgKGF1dG8gYm94ID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0SW5saW5lQm94Rm9yKCp0aGlzKTsg
Ym94OyBib3gudHJhdmVyc2VOZXh0SW5saW5lQm94KCkpIHsKICAgICAgICAgYXV0byBsaW5lQm94
ID0gYm94LT5saW5lQm94KCk7CiAgICAgICAgIGF1dG8gdG9wID0gTGF5b3V0VW5pdCB7IHN0ZDo6
bWF4KGxpbmVCb3gtPmNvbnRlbnRMb2dpY2FsVG9wKCksIGJveC0+bG9naWNhbFRvcCgpKSB9OwpA
QCAtOTY2LDggKzk2NCw2IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNhbCBjb29yZGluYXRlcy4KICAg
ICAgICAgcmVjdHMuYXBwZW5kKHsgTGF5b3V0VW5pdChib3gtPnZpc3VhbFJlY3RJZ25vcmluZ0Js
b2NrRGlyZWN0aW9uKCkueCgpKSwgdG9wLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbFdpZHRoKCkp
LCBib3R0b20gLSB0b3AgfSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChMYXlvdXRSZWN0KCkp
OwotCiAgICAgQm9yZGVyUGFpbnRlciB7ICp0aGlzLCBwYWludEluZm8gfS5wYWludE91dGxpbmUo
cGFpbnRPZmZzZXQsIHJlY3RzKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ5
ZDViNTA3OWE2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2lu
bGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MTMgQEAKKzxzdHlsZT4KK2RpdiB7CisgIG1hcmdpbjogMTBweDsKKyAgZm9udC1zaXplOiAyMHB4
OworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGZvbnQtZmFtaWx5OiBBaGVtOworICBvdXRs
aW5lOiA0cHggc29saWQgYmx1ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PjxzcGFuPlhYWFg8L3NwYW4+
PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItcmFkaXVzOiAxMHB4OyI+WFhYWDwvc3Bhbj48L2Rp
dj4KKzxkaXYgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDEwcHg7IG91dGxpbmUtb2Zmc2V0OiA0cHg7
Ij5YWFhYPC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMXB4IDVweCAx
MHB4IDE1cHg7IG91dGxpbmUtb2Zmc2V0OiA0cHg7Ij5YWFhYPC9zcGFuPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXIt
cmFkaXVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRo
LWJvcmRlci1yYWRpdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmJjZDRhMmU2MWFkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5s
aW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy5odG1sCkBAIC0wLDAgKzEsMTYg
QEAKKzxzdHlsZT4KK2RpdiB7CisgIG1hcmdpbjogMTBweDsKKyAgZm9udC1zaXplOiAyMHB4Owor
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGZvbnQtZmFtaWx5OiBBaGVtOworfQorCitzcGFu
IHsKKyAgb3V0bGluZTogNHB4IHNvbGlkIGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdj48c3Bhbj5Y
WFhYPC9zcGFuPjwvZGl2PgorPGRpdj48c3BhbiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMTBweDsi
PlhYWFg8L3NwYW4+PC9kaXY+Cis8ZGl2PjxzcGFuIHN0eWxlPSJib3JkZXItcmFkaXVzOiAxMHB4
OyBvdXRsaW5lLW9mZnNldDogNHB4OyI+WFhYWDwvc3Bhbj48L2Rpdj4KKzxkaXY+PHNwYW4gc3R5
bGU9ImJvcmRlci1yYWRpdXM6IDFweCA1cHggMTBweCAxNXB4OyBvdXRsaW5lLW9mZnNldDogNHB4
OyI+WFhYWDwvc3Bhbj48L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462875</attachid>
            <date>2022-10-07 20:51:12 -0700</date>
            <delta_ts>2022-10-08 07:17:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246192-20221007205111.patch</filename>
            <type>text/plain</type>
            <size>16440</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhODA0NWIxYjJlYjAyMGVjZTM5OTA1MTAxMjZhMDU2NTBjZWU5YTA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDcgT2N0IDIwMjIgMjA6NDk6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
QWRkIHN1cHBvcnQgZm9yIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzIChpbmxpbmUKIGVkaXRp
b24pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDYxOTIKClJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKMS4gQ29sbGVjdCAobGluZSBzcGFubmluZykgaW5saW5l
IGJveCByZWN0YW5nbGVzIChSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSkKMi4gQ2FsbCBwYXRo
V2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUgdG8gaGF2ZSB0aGUgam9pbnQgaW5saW5l
IGJveCByZWN0YW5nbGVzIG1lcmdlZAozLiBVc2UgcmVndWxhciBvdXRsaW5lIHBhaW50aW5nIGlm
IHRoZXJlJ3Mgb25seSBvbmUgcmVjdCBvciB0aGUgcmVjdGFuZ2xlcyBhcmUgY29tcGxldGVseSBk
aXNqb2ludCAoZW1wdHkgcGF0aCksIG90aGVyd2lzZSBjYWxsIHN0cm9rZVBhdGggKHRoaXMgbWF0
Y2hlcyBmb2N1c3JpbmcgYmVoYXZpb3IpLgoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QYXRoVXRpbGl0aWVzLmNwcDoKKFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBhdGhXaXRo
U2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZSk6IFRoaXMgY2FuIGhhbmRsZSAwIGJvcmRlci1y
YWRpdXMgY2FzZXMgYXMgd2VsbC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFp
bnRlci5jcHA6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWludE91dGxpbmUpOgooV2ViQ29y
ZTo6Qm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lRm9yTGluZSk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cGFpbnRPdXRs
aW5lKTogTm8gbmVlZCBmb3IgdGhlIGVtcHR5IGZpcnN0L2xhc3QgcmVjdGFuZ2xlcy4KLS0tCiAu
Li4vcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAgICAgICAgfCAgIDIgLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwICAgIHwgMTc5ICsrKystLS0t
LS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaCAgICAg
IHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwICAgICB8
ICAgNCAtCiAuLi5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwgfCAg
MTMgKysKIC4uLi9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMuaHRtbCAgICB8ICAx
NiArKwogNiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91dGxp
bmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMu
aHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxp
dGllcy5jcHAKaW5kZXggMWQwMDRmYzExNGFjLi44Y2E4MTA0Y2RmOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhVdGlsaXRpZXMuY3BwCkBAIC00OTUs
OCArNDk1LDYgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiByZWN0RnJvbVBvbHln
b24oY29uc3QgRmxvYXRQb2ludEdyYXBoOjpQb2x5Z29uJgogUGF0aCBQYXRoVXRpbGl0aWVzOjpw
YXRoV2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUoY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlY3RzLCBjb25zdCBCb3JkZXJEYXRhJiBib3JkZXJEYXRhLAogICAgIGZsb2F0IG91dGxp
bmVPZmZzZXQsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7Ci0gICAgQVNTRVJUKGJvcmRlckRhdGEuaGFz
Qm9yZGVyUmFkaXVzKCkpOwotCiAgICAgRmxvYXRTaXplIHRvcExlZnRSYWRpdXMgeyBib3JkZXJE
YXRhLnRvcExlZnRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLnRvcExlZnRSYWRp
dXMoKS5oZWlnaHQudmFsdWUoKSB9OwogICAgIEZsb2F0U2l6ZSB0b3BSaWdodFJhZGl1cyB7IGJv
cmRlckRhdGEudG9wUmlnaHRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLnRvcFJp
Z2h0UmFkaXVzKCkuaGVpZ2h0LnZhbHVlKCkgfTsKICAgICBGbG9hdFNpemUgYm90dG9tUmlnaHRS
YWRpdXMgeyBib3JkZXJEYXRhLmJvdHRvbVJpZ2h0UmFkaXVzKCkud2lkdGgudmFsdWUoKSwgYm9y
ZGVyRGF0YS5ib3R0b21SaWdodFJhZGl1cygpLmhlaWdodC52YWx1ZSgpIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAKaW5kZXggYTdkYjM5NjZmMGI4Li5iYjU0
ZTEyNjkwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWlu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFpbnRlci5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJOaW5lUGllY2VJbWFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgorI2luY2x1ZGUgIlBh
dGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJU
aGVtZS5oIgogCkBAIC0yNTgsMTYxICsyNTksNTEgQEAgdm9pZCBCb3JkZXJQYWludGVyOjpwYWlu
dE91dGxpbmUoY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogCiB2b2lkIEJvcmRlclBhaW50
ZXI6OnBhaW50T3V0bGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IFZl
Y3RvcjxMYXlvdXRSZWN0PiYgbGluZVJlY3RzKQogewotICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4
dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKLSAgICBhdXRvJiBzdHlsZVRvVXNlID0gbV9yZW5k
ZXJlci5zdHlsZSgpOwotICAgIGF1dG8gb3V0bGluZUNvbG9yID0gc3R5bGVUb1VzZS52aXNpdGVk
RGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3IpOwot
ICAgIGJvb2wgdXNlVHJhbnNwYXJlbmN5TGF5ZXIgPSAhb3V0bGluZUNvbG9yLmlzT3BhcXVlKCk7
Ci0gICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKSB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4
dC5iZWdpblRyYW5zcGFyZW5jeUxheWVyKG91dGxpbmVDb2xvci5hbHBoYUFzRmxvYXQoKSk7Ci0g
ICAgICAgIG91dGxpbmVDb2xvciA9IG91dGxpbmVDb2xvci5vcGFxdWVDb2xvcigpOworICAgIGlm
IChsaW5lUmVjdHMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgYXV0byBhZGp1c3RlZFBhaW50UmVj
dCA9IGxpbmVSZWN0c1swXTsKKyAgICAgICAgYWRqdXN0ZWRQYWludFJlY3QubW92ZUJ5KHBhaW50
T2Zmc2V0KTsKKyAgICAgICAgcGFpbnRPdXRsaW5lKGFkanVzdGVkUGFpbnRSZWN0KTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgbGluZVJlY3Rz
LnNpemUoKSAtIDE7IGkrKykKLSAgICAgICAgcGFpbnRPdXRsaW5lRm9yTGluZShwYWludE9mZnNl
dCwgbGluZVJlY3RzW2kgLSAxXSwgbGluZVJlY3RzW2ldLCBsaW5lUmVjdHNbaSArIDFdLCBvdXRs
aW5lQ29sb3IpOwotCi0gICAgaWYgKHVzZVRyYW5zcGFyZW5jeUxheWVyKQotICAgICAgICBncmFw
aGljc0NvbnRleHQuZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKLX0KLQotdm9pZCBCb3JkZXJQYWlu
dGVyOjpwYWludE91dGxpbmVGb3JMaW5lKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
Y29uc3QgTGF5b3V0UmVjdCYgcHJldmlvdXNMaW5lLCBjb25zdCBMYXlvdXRSZWN0JiBjdXJyZW50
TGluZSwgY29uc3QgTGF5b3V0UmVjdCYgbmV4dExpbmUsIGNvbnN0IENvbG9yJiBvdXRsaW5lQ29s
b3IpCi17CiAgICAgYXV0byYgc3R5bGVUb1VzZSA9IG1fcmVuZGVyZXIuc3R5bGUoKTsKLSAgICBh
dXRvJiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisgICAgYXV0byBv
dXRsaW5lT2Zmc2V0ID0gc3R5bGVUb1VzZS5vdXRsaW5lT2Zmc2V0KCk7CisgICAgYXV0byBvdXRs
aW5lV2lkdGggPSBzdHlsZVRvVXNlLm91dGxpbmVXaWR0aCgpOworICAgIGF1dG8gZGV2aWNlU2Nh
bGVGYWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CiAKLSAgICBmbG9hdCBv
dXRsaW5lT2Zmc2V0ID0gc3R5bGVUb1VzZS5vdXRsaW5lT2Zmc2V0KCk7Ci0gICAgTGF5b3V0UmVj
dCBvdXRsaW5lQm94UmVjdCA9IGN1cnJlbnRMaW5lOwotICAgIG91dGxpbmVCb3hSZWN0LmluZmxh
dGUob3V0bGluZU9mZnNldCk7Ci0gICAgb3V0bGluZUJveFJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0
KTsKLSAgICBpZiAob3V0bGluZUJveFJlY3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Cisg
ICAgVmVjdG9yPEZsb2F0UmVjdD4gcGl4ZWxTbmFwcGVkUmVjdHM7CisgICAgZm9yIChzaXplX3Qg
aW5kZXggPSAwOyBpbmRleCA8IGxpbmVSZWN0cy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAg
YXV0byByZWN0ID0gbGluZVJlY3RzW2luZGV4XTsKIAotICAgIGF1dG8mIGRvY3VtZW50ID0gdGhp
cy0+ZG9jdW1lbnQoKTsKLSAgICBmbG9hdCBvdXRsaW5lV2lkdGggPSBzdHlsZVRvVXNlLm91dGxp
bmVXaWR0aCgpOwotICAgIEJvcmRlclN0eWxlIG91dGxpbmVTdHlsZSA9IHN0eWxlVG9Vc2Uub3V0
bGluZVN0eWxlKCk7Ci0gICAgYm9vbCBhbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXNMaW5lcyhn
cmFwaGljc0NvbnRleHQpOwotCi0gICAgYXV0byBhZGp1c3RlZFByZXZpb3VzTGluZSA9IHByZXZp
b3VzTGluZTsKLSAgICBhZGp1c3RlZFByZXZpb3VzTGluZS5tb3ZlQnkocGFpbnRPZmZzZXQpOwot
ICAgIGF1dG8gYWRqdXN0ZWROZXh0TGluZSA9IG5leHRMaW5lOwotICAgIGFkanVzdGVkTmV4dExp
bmUubW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICAKLSAgICBmbG9hdCBhZGphY2VudFdpZHRoMSA9
IDA7Ci0gICAgZmxvYXQgYWRqYWNlbnRXaWR0aDIgPSAwOwotICAgIC8vIGxlZnQgZWRnZQotICAg
IGF1dG8gdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgaWYg
KHByZXZpb3VzTGluZS5pc0VtcHR5KCkgfHwgY3VycmVudExpbmUueCgpIDwgcHJldmlvdXNMaW5l
LngoKSB8fCAocHJldmlvdXNMaW5lLm1heFgoKSkgPD0gY3VycmVudExpbmUueCgpKSB7Ci0gICAg
ICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAg
YWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdG9w
TGVmdC5tb3ZlKC1vdXRsaW5lV2lkdGgsIDIgKiBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgYWRq
YWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBhdXRvIGJvdHRvbVJpZ2h0
ID0gb3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICBpZiAobmV4dExpbmUuaXNF
bXB0eSgpIHx8IGN1cnJlbnRMaW5lLngoKSA8PSBuZXh0TGluZS54KCkgfHwgKG5leHRMaW5lLm1h
eFgoKSkgPD0gY3VycmVudExpbmUueCgpKSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUoMCwg
b3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCAtMiAqIG91dGxpbmVPZmZz
ZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgfQotICAg
IGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3Qo
dG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRlOjpMZWZ0LCBvdXRsaW5lQ29sb3IsIG91dGxp
bmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotICAg
IAotICAgIC8vIHJpZ2h0IGVkZ2UKLSAgICB0b3BMZWZ0ID0gb3V0bGluZUJveFJlY3QubWF4WE1p
bllDb3JuZXIoKTsKLSAgICBpZiAocHJldmlvdXNMaW5lLmlzRW1wdHkoKSB8fCBwcmV2aW91c0xp
bmUubWF4WCgpIDwgY3VycmVudExpbmUubWF4WCgpIHx8IGN1cnJlbnRMaW5lLm1heFgoKSA8PSBw
cmV2aW91c0xpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQubW92ZSgwLCAtb3V0bGluZVdpZHRo
KTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgdG9wTGVmdC5tb3ZlKDAsIDIgKiBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgYWRq
YWNlbnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgIH0KLSAgICBib3R0b21SaWdodCA9IG91
dGxpbmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgaWYgKG5leHRMaW5lLmlzRW1wdHko
KSB8fCBuZXh0TGluZS5tYXhYKCkgPD0gY3VycmVudExpbmUubWF4WCgpIHx8IGN1cnJlbnRMaW5l
Lm1heFgoKSA8PSBuZXh0TGluZS54KCkpIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRs
aW5lV2lkdGgsIG91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGlu
ZVdpZHRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdp
ZHRoLCAtMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IC1vdXRs
aW5lV2lkdGg7CisgICAgICAgIHJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKKyAgICAgICAgcmVj
dC5pbmZsYXRlKG91dGxpbmVPZmZzZXQgKyBvdXRsaW5lV2lkdGggLyAyKTsKKyAgICAgICAgcGl4
ZWxTbmFwcGVkUmVjdHMuYXBwZW5kKHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdCwgZGV2aWNl
U2NhbGVGYWN0b3IpKTsKICAgICB9Ci0gICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29u
dGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6
OlJpZ2h0LCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFj
ZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotCi0gICAgLy8gdXBwZXIgZWRnZQotICAgIGlmIChjdXJy
ZW50TGluZS54KCkgPCBwcmV2aW91c0xpbmUueCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRs
aW5lQm94UmVjdC5taW5YTWluWUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxp
bmVXaWR0aCwgLW91dGxpbmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgxID0gb3V0bGlu
ZVdpZHRoOwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxpbmVCb3hSZWN0Lm1heFhNaW5ZQ29y
bmVyKCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0bGluZVdpZHRoLCAwKTsKLSAgICAg
ICAgaWYgKCFwcmV2aW91c0xpbmUuaXNFbXB0eSgpICYmIGFkanVzdGVkUHJldmlvdXNMaW5lLngo
KSA8IGJvdHRvbVJpZ2h0LngoKSkgewotICAgICAgICAgICAgYm90dG9tUmlnaHQuc2V0WChhZGp1
c3RlZFByZXZpb3VzTGluZS54KCkgLSBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgICAgIGFkamFj
ZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBh
ZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRl
KGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdo
dCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lk
dGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBy
ZXZpb3VzTGluZS5tYXhYKCkgPCBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAgICAgdG9wTGVm
dCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92
ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgaWYgKCFwcmV2aW91c0xp
bmUuaXNFbXB0eSgpICYmIGFkanVzdGVkUHJldmlvdXNMaW5lLm1heFgoKSA+IHRvcExlZnQueCgp
KSB7Ci0gICAgICAgICAgICB0b3BMZWZ0LnNldFgoYWRqdXN0ZWRQcmV2aW91c0xpbmUubWF4WCgp
ICsgb3V0bGluZU9mZnNldCk7Ci0gICAgICAgICAgICBhZGphY2VudFdpZHRoMSA9IC1vdXRsaW5l
V2lkdGg7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRs
aW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllD
b3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIDApOwotICAg
ICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JC
b3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0
b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFj
ZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKKyAgICBhdXRvIHBhdGggPSBQ
YXRoVXRpbGl0aWVzOjpwYXRoV2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUocGl4ZWxT
bmFwcGVkUmVjdHMsIHN0eWxlVG9Vc2UuYm9yZGVyKCksIG91dGxpbmVPZmZzZXQsIHN0eWxlVG9V
c2UuZGlyZWN0aW9uKCksIHN0eWxlVG9Vc2Uud3JpdGluZ01vZGUoKSwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBEaXNqb2ludCBsaW5l
IHNwYW5uaW5nIGlubGluZSBib3hlcy4KKyAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBsaW5lUmVj
dHMpIHsKKyAgICAgICAgICAgIHJlY3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKKyAgICAgICAgICAg
IHBhaW50T3V0bGluZShyZWN0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKGN1cnJlbnRMaW5lLngoKSA9PSBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAg
ICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRv
cExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAtb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNl
bnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJv
eFJlY3QubWF4WE1pbllDb3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5l
V2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAg
ICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVj
dCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OlRvcCwgb3V0bGluZUNvbG9yLCBvdXRs
aW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKKyAg
ICBhdXRvJiBncmFwaGljc0NvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CisgICAgYXV0
byBvdXRsaW5lQ29sb3IgPSBzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xv
ckZpbHRlcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcik7CisgICAgYXV0byB1c2VUcmFuc3BhcmVu
Y3lMYXllciA9ICFvdXRsaW5lQ29sb3IuaXNPcGFxdWUoKTsKKyAgICBpZiAodXNlVHJhbnNwYXJl
bmN5TGF5ZXIpIHsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5
ZXIob3V0bGluZUNvbG9yLmFscGhhQXNGbG9hdCgpKTsKKyAgICAgICAgb3V0bGluZUNvbG9yID0g
b3V0bGluZUNvbG9yLm9wYXF1ZUNvbG9yKCk7CiAgICAgfQogCi0gICAgLy8gbG93ZXIgZWRnZQot
ICAgIGlmIChjdXJyZW50TGluZS54KCkgPCBuZXh0TGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVm
dCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92
ZSgtb3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lk
dGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1heFlDb3JuZXIo
KTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIG91dGxpbmVXaWR0aCk7
Ci0gICAgICAgIGlmICghbmV4dExpbmUuaXNFbXB0eSgpICYmIChhZGp1c3RlZE5leHRMaW5lLngo
KSA8IGJvdHRvbVJpZ2h0LngoKSkpIHsKLSAgICAgICAgICAgIGJvdHRvbVJpZ2h0LnNldFgoYWRq
dXN0ZWROZXh0TGluZS54KCkgLSBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAgICAgIGFkamFjZW50
V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhZGph
Y2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCks
IEJveFNpZGU6OkJvdHRvbSwgb3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lk
dGgxLCBhZGphY2VudFdpZHRoMiwgYW50aWFsaWFzKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG5l
eHRMaW5lLm1heFgoKSA8IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0g
b3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1v
dXRsaW5lV2lkdGgsIDApOwotICAgICAgICBpZiAoIW5leHRMaW5lLmlzRW1wdHkoKSAmJiBhZGp1
c3RlZE5leHRMaW5lLm1heFgoKSA+IHRvcExlZnQueCgpKSB7Ci0gICAgICAgICAgICB0b3BMZWZ0
LnNldFgoYWRqdXN0ZWROZXh0TGluZS5tYXhYKCkgKyBvdXRsaW5lT2Zmc2V0KTsKLSAgICAgICAg
ICAgIGFkamFjZW50V2lkdGgxID0gLW91dGxpbmVXaWR0aDsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmln
aHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdo
dC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0
aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5lRm9yQm94U2lkZShncmFwaGljc0Nv
bnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwgYm90dG9tUmlnaHQpLCBCb3hTaWRl
OjpCb3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRq
YWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQorICAgIGdyYXBoaWNzQ29udGV4dC5zZXRT
dHJva2VDb2xvcihvdXRsaW5lQ29sb3IpOworICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VU
aGlja25lc3Mob3V0bGluZVdpZHRoKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2V0U3Ryb2tlU3R5
bGUoU29saWRTdHJva2UpOworICAgIGdyYXBoaWNzQ29udGV4dC5zdHJva2VQYXRoKHBhdGgpOwog
Ci0gICAgaWYgKGN1cnJlbnRMaW5lLngoKSA9PSBjdXJyZW50TGluZS5tYXhYKCkpIHsKLSAgICAg
ICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0Lm1pblhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIHRv
cExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAwKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBv
dXRsaW5lV2lkdGg7Ci0gICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1h
eFlDb3JuZXIoKTsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIG91dGxp
bmVXaWR0aCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAg
ICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0
KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6Qm90dG9tLCBvdXRsaW5lQ29sb3IsIG91
dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOwot
ICAgIH0KKyAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCisgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogfQogCiB2b2lkIEJvcmRlclBhaW50ZXI6OnBh
aW50U2lkZXMoY29uc3QgU2lkZXMmIHNpZGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3Jk
ZXJQYWludGVyLmgKaW5kZXggYTE5NGY3ZTA5ZDYxLi4zNTczNDYyNGQ3ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaApAQCAtNTksNyArNTksNiBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIENvbG9yIGNhbGN1bGF0ZUJvcmRlclN0eWxlQ29sb3IoY29uc3QgQm9yZGVy
U3R5bGUmLCBjb25zdCBCb3hTaWRlJiwgY29uc3QgQ29sb3ImKTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHBhaW50T3V0bGluZUZvckxpbmUoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBj
b25zdCBMYXlvdXRSZWN0JiBwcmV2aW91c0xpbmUsIGNvbnN0IExheW91dFJlY3QmIGN1cnJlbnRM
aW5lLCBjb25zdCBMYXlvdXRSZWN0JiBuZXh0TGluZSwgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xv
cik7CiAgICAgdm9pZCBwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoY29uc3QgUm91bmRlZFJl
Y3QmIG91dGVyQm9yZGVyLCBjb25zdCBSb3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsIGNvbnN0IElu
dFBvaW50JiBpbm5lckJvcmRlckFkanVzdG1lbnQsCiAgICAgICAgIGNvbnN0IEJvcmRlckVkZ2Vz
JiwgQm94U2lkZVNldCBlZGdlc1RvRHJhdywgc3RkOjpvcHRpb25hbDxCb3JkZXJEYXRhOjpSYWRp
aT4sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgYm9vbCBpc0hv
cml6b250YWwpOwogICAgIHZvaWQgcGFpbnRCb3JkZXJTaWRlcyhjb25zdCBSb3VuZGVkUmVjdCYg
b3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwgY29uc3QgSW50UG9p
bnQmIGlubmVyQm9yZGVyQWRqdXN0bWVudCwgY29uc3QgQm9yZGVyRWRnZXMmLCBCb3hTaWRlU2V0
IGVkZ2VTZXQsIHN0ZDo6b3B0aW9uYWw8Qm9yZGVyRGF0YTo6UmFkaWk+LCBCYWNrZ3JvdW5kQmxl
ZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGJvb2wgaXNIb3Jpem9udGFsLCBjb25zdCBD
b2xvciogb3ZlcnJpZGVDb2xvciA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcAppbmRleCA4MDU0NTI3NTE0YzUuLjE1ZDE5NjVlM2Q2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTk1Nyw4ICs5NTcsNiBA
QCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8
TGF5b3V0UmVjdD4gcmVjdHM7Ci0gICAgcmVjdHMuYXBwZW5kKExheW91dFJlY3QoKSk7Ci0KICAg
ICBmb3IgKGF1dG8gYm94ID0gSW5saW5lSXRlcmF0b3I6OmZpcnN0SW5saW5lQm94Rm9yKCp0aGlz
KTsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5saW5lQm94KCkpIHsKICAgICAgICAgYXV0byBsaW5l
Qm94ID0gYm94LT5saW5lQm94KCk7CiAgICAgICAgIGF1dG8gdG9wID0gTGF5b3V0VW5pdCB7IHN0
ZDo6bWF4KGxpbmVCb3gtPmNvbnRlbnRMb2dpY2FsVG9wKCksIGJveC0+bG9naWNhbFRvcCgpKSB9
OwpAQCAtOTY2LDggKzk2NCw2IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNhbCBjb29yZGluYXRlcy4K
ICAgICAgICAgcmVjdHMuYXBwZW5kKHsgTGF5b3V0VW5pdChib3gtPnZpc3VhbFJlY3RJZ25vcmlu
Z0Jsb2NrRGlyZWN0aW9uKCkueCgpKSwgdG9wLCBMYXlvdXRVbml0KGJveC0+bG9naWNhbFdpZHRo
KCkpLCBib3R0b20gLSB0b3AgfSk7CiAgICAgfQotICAgIHJlY3RzLmFwcGVuZChMYXlvdXRSZWN0
KCkpOwotCiAgICAgQm9yZGVyUGFpbnRlciB7ICp0aGlzLCBwYWludEluZm8gfS5wYWludE91dGxp
bmUocGFpbnRPZmZzZXQsIHJlY3RzKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRp
dXMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjQ5ZDViNTA3OWE2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5l
L2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMTMgQEAKKzxzdHlsZT4KK2RpdiB7CisgIG1hcmdpbjogMTBweDsKKyAgZm9udC1zaXplOiAy
MHB4OworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGZvbnQtZmFtaWx5OiBBaGVtOworICBv
dXRsaW5lOiA0cHggc29saWQgYmx1ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PjxzcGFuPlhYWFg8L3Nw
YW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItcmFkaXVzOiAxMHB4OyI+WFhYWDwvc3Bhbj48
L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDEwcHg7IG91dGxpbmUtb2Zmc2V0OiA0
cHg7Ij5YWFhYPC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMXB4IDVw
eCAxMHB4IDE1cHg7IG91dGxpbmUtb2Zmc2V0OiA0cHg7Ij5YWFhYPC9zcGFuPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91dGxpbmUtd2l0aC1ib3Jk
ZXItcmFkaXVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13
aXRoLWJvcmRlci1yYWRpdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmJjZDRhMmU2MWFkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy5odG1sCkBAIC0wLDAgKzEs
MTYgQEAKKzxzdHlsZT4KK2RpdiB7CisgIG1hcmdpbjogMTBweDsKKyAgZm9udC1zaXplOiAyMHB4
OworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGZvbnQtZmFtaWx5OiBBaGVtOworfQorCitz
cGFuIHsKKyAgb3V0bGluZTogNHB4IHNvbGlkIGJsdWU7Cit9Cis8L3N0eWxlPgorPGRpdj48c3Bh
bj5YWFhYPC9zcGFuPjwvZGl2PgorPGRpdj48c3BhbiBzdHlsZT0iYm9yZGVyLXJhZGl1czogMTBw
eDsiPlhYWFg8L3NwYW4+PC9kaXY+Cis8ZGl2PjxzcGFuIHN0eWxlPSJib3JkZXItcmFkaXVzOiAx
MHB4OyBvdXRsaW5lLW9mZnNldDogNHB4OyI+WFhYWDwvc3Bhbj48L2Rpdj4KKzxkaXY+PHNwYW4g
c3R5bGU9ImJvcmRlci1yYWRpdXM6IDFweCA1cHggMTBweCAxNXB4OyBvdXRsaW5lLW9mZnNldDog
NHB4OyI+WFhYWDwvc3Bhbj48L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462882</attachid>
            <date>2022-10-08 07:17:57 -0700</date>
            <delta_ts>2022-10-08 11:59:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246192-20221008071756.patch</filename>
            <type>text/plain</type>
            <size>17566</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkOGQ1NGQ1ZTFhYTcyOGFkM2U4NWQyMzlmN2RiMTNhMzVjZWM0ZmUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDcgT2N0IDIwMjIgMjA6NDk6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbT3V0bGluZV0g
QWRkIHN1cHBvcnQgZm9yIG91dGxpbmUgd2l0aCBib3JkZXItcmFkaXVzIChpbmxpbmUKIGVkaXRp
b24pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDYxOTIKClJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgoKMS4gQ29sbGVjdCAobGluZSBzcGFubmluZykgaW5saW5l
IGJveCByZWN0YW5nbGVzIChSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSkKMi4gQ2FsbCBwYXRo
V2l0aFNocmlua1dyYXBwZWRSZWN0c0Zvck91dGxpbmUgdG8gaGF2ZSB0aGUgam9pbnQgaW5saW5l
IGJveCByZWN0YW5nbGVzIG1lcmdlZAozLiBVc2UgcmVndWxhciBvdXRsaW5lIHBhaW50aW5nIGlm
IHRoZXJlJ3Mgb25seSBvbmUgcmVjdCBvciB0aGUgcmVjdGFuZ2xlcyBhcmUgY29tcGxldGVseSBk
aXNqb2ludCAoZW1wdHkgcGF0aCksIG90aGVyd2lzZSBjYWxsIHN0cm9rZVBhdGggKHRoaXMgbWF0
Y2hlcyBmb2N1c3JpbmcgYmVoYXZpb3IpLgoKKiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QYXRoVXRpbGl0aWVzLmNwcDoKKFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBhdGhXaXRo
U2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZSk6IFRoaXMgY2FuIGhhbmRsZSAwIGJvcmRlci1y
YWRpdXMgY2FzZXMgYXMgd2VsbC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQm9yZGVyUGFp
bnRlci5jcHA6CihXZWJDb3JlOjpCb3JkZXJQYWludGVyOjpwYWludE91dGxpbmUpOgooV2ViQ29y
ZTo6Qm9yZGVyUGFpbnRlcjo6cGFpbnRPdXRsaW5lRm9yTGluZSk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cGFpbnRPdXRs
aW5lKTogTm8gbmVlZCBmb3IgdGhlIGVtcHR5IGZpcnN0L2xhc3QgcmVjdGFuZ2xlcy4KCipmYXN0
L3JlcGFpbnQvaW5saW5lLW91dGxpbmUtcmVwYWludC5odG1sOiBNYWtlIHN1cmUgdGhlIGNhcmV0
IGlzIG5vdCB2aXNpYmxlIHdoZW4gdGFraW5nIHRoZSBzbmFwc2hvdC4KLS0tCiAuLi4vcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAgICAgICAgfCAgIDIgLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwICAgIHwgMTc5ICsrKystLS0tLS0tLS0tLS0t
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaCAgICAgIHwgICAxIC0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwICAgICB8ICAgNCAtCiAu
Li5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwgfCAgMTMgKysKIC4u
Li9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMuaHRtbCAgICB8ICAxNiArKwogLi4u
L2Zhc3QvcmVwYWludC9pbmxpbmUtb3V0bGluZS1yZXBhaW50Lmh0bWwgIHwgICAzICstCiA3IGZp
bGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDE1MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJv
cmRlci1yYWRpdXMtZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvaW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy5odG1sCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNwcApp
bmRleCAxZDAwNGZjMTE0YWMuLjhjYTgxMDRjZGY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFV0aWxpdGllcy5jcHAKQEAgLTQ5NSw4ICs0OTUsNiBA
QCBzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHJlY3RGcm9tUG9seWdvbihjb25zdCBG
bG9hdFBvaW50R3JhcGg6OlBvbHlnb24mCiBQYXRoIFBhdGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hy
aW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZShjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMs
IGNvbnN0IEJvcmRlckRhdGEmIGJvcmRlckRhdGEsCiAgICAgZmxvYXQgb3V0bGluZU9mZnNldCwg
VGV4dERpcmVjdGlvbiBkaXJlY3Rpb24sIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcikKIHsKLSAgICBBU1NFUlQoYm9yZGVyRGF0YS5oYXNCb3JkZXJSYWRp
dXMoKSk7Ci0KICAgICBGbG9hdFNpemUgdG9wTGVmdFJhZGl1cyB7IGJvcmRlckRhdGEudG9wTGVm
dFJhZGl1cygpLndpZHRoLnZhbHVlKCksIGJvcmRlckRhdGEudG9wTGVmdFJhZGl1cygpLmhlaWdo
dC52YWx1ZSgpIH07CiAgICAgRmxvYXRTaXplIHRvcFJpZ2h0UmFkaXVzIHsgYm9yZGVyRGF0YS50
b3BSaWdodFJhZGl1cygpLndpZHRoLnZhbHVlKCksIGJvcmRlckRhdGEudG9wUmlnaHRSYWRpdXMo
KS5oZWlnaHQudmFsdWUoKSB9OwogICAgIEZsb2F0U2l6ZSBib3R0b21SaWdodFJhZGl1cyB7IGJv
cmRlckRhdGEuYm90dG9tUmlnaHRSYWRpdXMoKS53aWR0aC52YWx1ZSgpLCBib3JkZXJEYXRhLmJv
dHRvbVJpZ2h0UmFkaXVzKCkuaGVpZ2h0LnZhbHVlKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Cb3JkZXJQYWludGVyLmNwcAppbmRleCBhN2RiMzk2NmYwYjguLmJiNTRlMTI2OTA3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Cb3JkZXJQYWludGVyLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIk5pbmVQaWVj
ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCisjaW5jbHVkZSAiUGF0aFV0aWxpdGll
cy5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAK
QEAgLTI1OCwxNjEgKzI1OSw1MSBAQCB2b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50T3V0bGluZShj
b25zdCBMYXlvdXRSZWN0JiBwYWludFJlY3QpCiAKIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRP
dXRsaW5lKGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgVmVjdG9yPExheW91
dFJlY3Q+JiBsaW5lUmVjdHMpCiB7Ci0gICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gbV9wYWlu
dEluZm8uY29udGV4dCgpOwotICAgIGF1dG8mIHN0eWxlVG9Vc2UgPSBtX3JlbmRlcmVyLnN0eWxl
KCk7Ci0gICAgYXV0byBvdXRsaW5lQ29sb3IgPSBzdHlsZVRvVXNlLnZpc2l0ZWREZXBlbmRlbnRD
b2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcik7Ci0gICAgYm9vbCB1
c2VUcmFuc3BhcmVuY3lMYXllciA9ICFvdXRsaW5lQ29sb3IuaXNPcGFxdWUoKTsKLSAgICBpZiAo
dXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmJlZ2luVHJh
bnNwYXJlbmN5TGF5ZXIob3V0bGluZUNvbG9yLmFscGhhQXNGbG9hdCgpKTsKLSAgICAgICAgb3V0
bGluZUNvbG9yID0gb3V0bGluZUNvbG9yLm9wYXF1ZUNvbG9yKCk7CisgICAgaWYgKGxpbmVSZWN0
cy5zaXplKCkgPT0gMSkgeworICAgICAgICBhdXRvIGFkanVzdGVkUGFpbnRSZWN0ID0gbGluZVJl
Y3RzWzBdOworICAgICAgICBhZGp1c3RlZFBhaW50UmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwor
ICAgICAgICBwYWludE91dGxpbmUoYWRqdXN0ZWRQYWludFJlY3QpOworICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBsaW5lUmVjdHMuc2l6ZSgpIC0g
MTsgaSsrKQotICAgICAgICBwYWludE91dGxpbmVGb3JMaW5lKHBhaW50T2Zmc2V0LCBsaW5lUmVj
dHNbaSAtIDFdLCBsaW5lUmVjdHNbaV0sIGxpbmVSZWN0c1tpICsgMV0sIG91dGxpbmVDb2xvcik7
Ci0KLSAgICBpZiAodXNlVHJhbnNwYXJlbmN5TGF5ZXIpCi0gICAgICAgIGdyYXBoaWNzQ29udGV4
dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwotfQotCi12b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50
T3V0bGluZUZvckxpbmUoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlv
dXRSZWN0JiBwcmV2aW91c0xpbmUsIGNvbnN0IExheW91dFJlY3QmIGN1cnJlbnRMaW5lLCBjb25z
dCBMYXlvdXRSZWN0JiBuZXh0TGluZSwgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xvcikKLXsKICAg
ICBhdXRvJiBzdHlsZVRvVXNlID0gbV9yZW5kZXJlci5zdHlsZSgpOwotICAgIGF1dG8mIGdyYXBo
aWNzQ29udGV4dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBhdXRvIG91dGxpbmVPZmZz
ZXQgPSBzdHlsZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKKyAgICBhdXRvIG91dGxpbmVXaWR0aCA9
IHN0eWxlVG9Vc2Uub3V0bGluZVdpZHRoKCk7CisgICAgYXV0byBkZXZpY2VTY2FsZUZhY3RvciA9
IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKIAotICAgIGZsb2F0IG91dGxpbmVPZmZz
ZXQgPSBzdHlsZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKLSAgICBMYXlvdXRSZWN0IG91dGxpbmVC
b3hSZWN0ID0gY3VycmVudExpbmU7Ci0gICAgb3V0bGluZUJveFJlY3QuaW5mbGF0ZShvdXRsaW5l
T2Zmc2V0KTsKLSAgICBvdXRsaW5lQm94UmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwotICAgIGlm
IChvdXRsaW5lQm94UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8
RmxvYXRSZWN0PiBwaXhlbFNuYXBwZWRSZWN0czsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7
IGluZGV4IDwgbGluZVJlY3RzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICBhdXRvIHJlY3Qg
PSBsaW5lUmVjdHNbaW5kZXhdOwogCi0gICAgYXV0byYgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpOwotICAgIGZsb2F0IG91dGxpbmVXaWR0aCA9IHN0eWxlVG9Vc2Uub3V0bGluZVdpZHRoKCk7
Ci0gICAgQm9yZGVyU3R5bGUgb3V0bGluZVN0eWxlID0gc3R5bGVUb1VzZS5vdXRsaW5lU3R5bGUo
KTsKLSAgICBib29sIGFudGlhbGlhcyA9IHNob3VsZEFudGlhbGlhc0xpbmVzKGdyYXBoaWNzQ29u
dGV4dCk7Ci0KLSAgICBhdXRvIGFkanVzdGVkUHJldmlvdXNMaW5lID0gcHJldmlvdXNMaW5lOwot
ICAgIGFkanVzdGVkUHJldmlvdXNMaW5lLm1vdmVCeShwYWludE9mZnNldCk7Ci0gICAgYXV0byBh
ZGp1c3RlZE5leHRMaW5lID0gbmV4dExpbmU7Ci0gICAgYWRqdXN0ZWROZXh0TGluZS5tb3ZlQnko
cGFpbnRPZmZzZXQpOwotICAgIAotICAgIGZsb2F0IGFkamFjZW50V2lkdGgxID0gMDsKLSAgICBm
bG9hdCBhZGphY2VudFdpZHRoMiA9IDA7Ci0gICAgLy8gbGVmdCBlZGdlCi0gICAgYXV0byB0b3BM
ZWZ0ID0gb3V0bGluZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICBpZiAocHJldmlvdXNM
aW5lLmlzRW1wdHkoKSB8fCBjdXJyZW50TGluZS54KCkgPCBwcmV2aW91c0xpbmUueCgpIHx8IChw
cmV2aW91c0xpbmUubWF4WCgpKSA8PSBjdXJyZW50TGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVm
dC5tb3ZlKC1vdXRsaW5lV2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdp
ZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVsc2UgewotICAgICAgICB0b3BMZWZ0Lm1vdmUo
LW91dGxpbmVXaWR0aCwgMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRo
MSA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgfQotICAgIGF1dG8gYm90dG9tUmlnaHQgPSBvdXRsaW5l
Qm94UmVjdC5taW5YTWF4WUNvcm5lcigpOwotICAgIGlmIChuZXh0TGluZS5pc0VtcHR5KCkgfHwg
Y3VycmVudExpbmUueCgpIDw9IG5leHRMaW5lLngoKSB8fCAobmV4dExpbmUubWF4WCgpKSA8PSBj
dXJyZW50TGluZS54KCkpIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZSgwLCBvdXRsaW5lV2lk
dGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBib3R0b21SaWdodC5tb3ZlKDAsIC0yICogb3V0bGluZU9mZnNldCk7Ci0gICAg
ICAgIGFkamFjZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsKLSAgICB9Ci0gICAgZHJhd0xpbmVG
b3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9jdW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBi
b3R0b21SaWdodCksIEJveFNpZGU6OkxlZnQsIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBh
ZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgCi0gICAgLy8g
cmlnaHQgZWRnZQotICAgIHRvcExlZnQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigp
OwotICAgIGlmIChwcmV2aW91c0xpbmUuaXNFbXB0eSgpIHx8IHByZXZpb3VzTGluZS5tYXhYKCkg
PCBjdXJyZW50TGluZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9IHByZXZpb3VzTGlu
ZS54KCkpIHsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKDAsIC1vdXRsaW5lV2lkdGgpOwotICAgICAg
ICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICB9IGVsc2UgewotICAgICAgICB0
b3BMZWZ0Lm1vdmUoMCwgMiAqIG91dGxpbmVPZmZzZXQpOwotICAgICAgICBhZGphY2VudFdpZHRo
MSA9IC1vdXRsaW5lV2lkdGg7Ci0gICAgfQotICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJl
Y3QubWF4WE1heFlDb3JuZXIoKTsKLSAgICBpZiAobmV4dExpbmUuaXNFbXB0eSgpIHx8IG5leHRM
aW5lLm1heFgoKSA8PSBjdXJyZW50TGluZS5tYXhYKCkgfHwgY3VycmVudExpbmUubWF4WCgpIDw9
IG5leHRMaW5lLngoKSkgewotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwg
b3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIC0yICog
b3V0bGluZU9mZnNldCk7Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gLW91dGxpbmVXaWR0aDsK
KyAgICAgICAgcmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOworICAgICAgICByZWN0LmluZmxhdGUo
b3V0bGluZU9mZnNldCArIG91dGxpbmVXaWR0aCAvIDIpOworICAgICAgICBwaXhlbFNuYXBwZWRS
ZWN0cy5hcHBlbmQoc25hcFJlY3RUb0RldmljZVBpeGVscyhyZWN0LCBkZXZpY2VTY2FsZUZhY3Rv
cikpOwogICAgIH0KLSAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1
bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6UmlnaHQsIG91
dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIs
IGFudGlhbGlhcyk7Ci0KLSAgICAvLyB1cHBlciBlZGdlCi0gICAgaWYgKGN1cnJlbnRMaW5lLngo
KSA8IHByZXZpb3VzTGluZS54KCkpIHsKLSAgICAgICAgdG9wTGVmdCA9IG91dGxpbmVCb3hSZWN0
Lm1pblhNaW5ZQ29ybmVyKCk7Ci0gICAgICAgIHRvcExlZnQubW92ZSgtb3V0bGluZVdpZHRoLCAt
b3V0bGluZVdpZHRoKTsKLSAgICAgICAgYWRqYWNlbnRXaWR0aDEgPSBvdXRsaW5lV2lkdGg7Ci0g
ICAgICAgIGJvdHRvbVJpZ2h0ID0gb3V0bGluZUJveFJlY3QubWF4WE1pbllDb3JuZXIoKTsKLSAg
ICAgICAgYm90dG9tUmlnaHQubW92ZShvdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBpZiAoIXBy
ZXZpb3VzTGluZS5pc0VtcHR5KCkgJiYgYWRqdXN0ZWRQcmV2aW91c0xpbmUueCgpIDwgYm90dG9t
UmlnaHQueCgpKSB7Ci0gICAgICAgICAgICBib3R0b21SaWdodC5zZXRYKGFkanVzdGVkUHJldmlv
dXNMaW5lLngoKSAtIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIg
PSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lk
dGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lk
ZTo6VG9wLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFj
ZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotICAgIH0KLSAgICAKLSAgICBpZiAocHJldmlvdXNMaW5l
Lm1heFgoKSA8IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGlu
ZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5l
V2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBpZiAoIXByZXZpb3VzTGluZS5pc0VtcHR5
KCkgJiYgYWRqdXN0ZWRQcmV2aW91c0xpbmUubWF4WCgpID4gdG9wTGVmdC54KCkpIHsKLSAgICAg
ICAgICAgIHRvcExlZnQuc2V0WChhZGp1c3RlZFByZXZpb3VzTGluZS5tYXhYKCkgKyBvdXRsaW5l
T2Zmc2V0KTsKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgxID0gLW91dGxpbmVXaWR0aDsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsK
LSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWluWUNvcm5lcigpOwot
ICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7Ci0gICAgICAgIGFkamFj
ZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3Jh
cGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwg
Qm94U2lkZTo6VG9wLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEs
IGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOworICAgIGF1dG8gcGF0aCA9IFBhdGhVdGlsaXRp
ZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZShwaXhlbFNuYXBwZWRSZWN0
cywgc3R5bGVUb1VzZS5ib3JkZXIoKSwgb3V0bGluZU9mZnNldCwgc3R5bGVUb1VzZS5kaXJlY3Rp
b24oKSwgc3R5bGVUb1VzZS53cml0aW5nTW9kZSgpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAg
aWYgKHBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIERpc2pvaW50IGxpbmUgc3Bhbm5pbmcg
aW5saW5lIGJveGVzLgorICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IGxpbmVSZWN0cykgeworICAg
ICAgICAgICAgcmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOworICAgICAgICAgICAgcGFpbnRPdXRs
aW5lKHJlY3QpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
Y3VycmVudExpbmUueCgpID09IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0
ID0gb3V0bGluZUJveFJlY3QubWluWE1pbllDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3Zl
KC1vdXRsaW5lV2lkdGgsIC1vdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9
IG91dGxpbmVXaWR0aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhY
TWluWUNvcm5lcigpOwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgMCk7
Ci0gICAgICAgIGFkamFjZW50V2lkdGgyID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGlu
ZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQs
IGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6VG9wLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwg
YWRqYWNlbnRXaWR0aDEsIGFkamFjZW50V2lkdGgyLCBhbnRpYWxpYXMpOworICAgIGF1dG8mIGdy
YXBoaWNzQ29udGV4dCA9IG1fcGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBhdXRvIG91dGxpbmVD
b2xvciA9IHN0eWxlVG9Vc2UudmlzaXRlZERlcGVuZGVudENvbG9yV2l0aENvbG9yRmlsdGVyKENT
U1Byb3BlcnR5T3V0bGluZUNvbG9yKTsKKyAgICBhdXRvIHVzZVRyYW5zcGFyZW5jeUxheWVyID0g
IW91dGxpbmVDb2xvci5pc09wYXF1ZSgpOworICAgIGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikg
eworICAgICAgICBncmFwaGljc0NvbnRleHQuYmVnaW5UcmFuc3BhcmVuY3lMYXllcihvdXRsaW5l
Q29sb3IuYWxwaGFBc0Zsb2F0KCkpOworICAgICAgICBvdXRsaW5lQ29sb3IgPSBvdXRsaW5lQ29s
b3Iub3BhcXVlQ29sb3IoKTsKICAgICB9CiAKLSAgICAvLyBsb3dlciBlZGdlCi0gICAgaWYgKGN1
cnJlbnRMaW5lLngoKSA8IG5leHRMaW5lLngoKSkgewotICAgICAgICB0b3BMZWZ0ID0gb3V0bGlu
ZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3ZlKC1vdXRsaW5l
V2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0aDsKLSAgICAg
ICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigpOwotICAgICAg
ICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsKLSAgICAgICAg
aWYgKCFuZXh0TGluZS5pc0VtcHR5KCkgJiYgKGFkanVzdGVkTmV4dExpbmUueCgpIDwgYm90dG9t
UmlnaHQueCgpKSkgewotICAgICAgICAgICAgYm90dG9tUmlnaHQuc2V0WChhZGp1c3RlZE5leHRM
aW5lLngoKSAtIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSAt
b3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFkamFjZW50V2lkdGgy
ID0gb3V0bGluZVdpZHRoOwotICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250
ZXh0LCBkb2N1bWVudCwgRmxvYXRSZWN0KHRvcExlZnQsIGJvdHRvbVJpZ2h0KSwgQm94U2lkZTo6
Qm90dG9tLCBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwgYWRqYWNlbnRXaWR0aDEsIGFkamFj
ZW50V2lkdGgyLCBhbnRpYWxpYXMpOwotICAgIH0KLSAgICAKLSAgICBpZiAobmV4dExpbmUubWF4
WCgpIDwgY3VycmVudExpbmUubWF4WCgpKSB7Ci0gICAgICAgIHRvcExlZnQgPSBvdXRsaW5lQm94
UmVjdC5taW5YTWF4WUNvcm5lcigpOwotICAgICAgICB0b3BMZWZ0Lm1vdmUoLW91dGxpbmVXaWR0
aCwgMCk7Ci0gICAgICAgIGlmICghbmV4dExpbmUuaXNFbXB0eSgpICYmIGFkanVzdGVkTmV4dExp
bmUubWF4WCgpID4gdG9wTGVmdC54KCkpIHsKLSAgICAgICAgICAgIHRvcExlZnQuc2V0WChhZGp1
c3RlZE5leHRMaW5lLm1heFgoKSArIG91dGxpbmVPZmZzZXQpOwotICAgICAgICAgICAgYWRqYWNl
bnRXaWR0aDEgPSAtb3V0bGluZVdpZHRoOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGFk
amFjZW50V2lkdGgxID0gb3V0bGluZVdpZHRoOwotICAgICAgICBib3R0b21SaWdodCA9IG91dGxp
bmVCb3hSZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci0gICAgICAgIGJvdHRvbVJpZ2h0Lm1vdmUob3V0
bGluZVdpZHRoLCBvdXRsaW5lV2lkdGgpOwotICAgICAgICBhZGphY2VudFdpZHRoMiA9IG91dGxp
bmVXaWR0aDsKLSAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4dCwgZG9j
dW1lbnQsIEZsb2F0UmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCksIEJveFNpZGU6OkJvdHRvbSwg
b3V0bGluZUNvbG9yLCBvdXRsaW5lU3R5bGUsIGFkamFjZW50V2lkdGgxLCBhZGphY2VudFdpZHRo
MiwgYW50aWFsaWFzKTsKLSAgICB9CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZUNvbG9y
KG91dGxpbmVDb2xvcik7CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcyhv
dXRsaW5lV2lkdGgpOworICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTdHJva2VTdHlsZShTb2xpZFN0
cm9rZSk7CisgICAgZ3JhcGhpY3NDb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiAKLSAgICBpZiAo
Y3VycmVudExpbmUueCgpID09IGN1cnJlbnRMaW5lLm1heFgoKSkgewotICAgICAgICB0b3BMZWZ0
ID0gb3V0bGluZUJveFJlY3QubWluWE1heFlDb3JuZXIoKTsKLSAgICAgICAgdG9wTGVmdC5tb3Zl
KC1vdXRsaW5lV2lkdGgsIDApOwotICAgICAgICBhZGphY2VudFdpZHRoMSA9IG91dGxpbmVXaWR0
aDsKLSAgICAgICAgYm90dG9tUmlnaHQgPSBvdXRsaW5lQm94UmVjdC5tYXhYTWF4WUNvcm5lcigp
OwotICAgICAgICBib3R0b21SaWdodC5tb3ZlKG91dGxpbmVXaWR0aCwgb3V0bGluZVdpZHRoKTsK
LSAgICAgICAgYWRqYWNlbnRXaWR0aDIgPSBvdXRsaW5lV2lkdGg7Ci0gICAgICAgIGRyYXdMaW5l
Rm9yQm94U2lkZShncmFwaGljc0NvbnRleHQsIGRvY3VtZW50LCBGbG9hdFJlY3QodG9wTGVmdCwg
Ym90dG9tUmlnaHQpLCBCb3hTaWRlOjpCb3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxl
LCBhZGphY2VudFdpZHRoMSwgYWRqYWNlbnRXaWR0aDIsIGFudGlhbGlhcyk7Ci0gICAgfQorICAg
IGlmICh1c2VUcmFuc3BhcmVuY3lMYXllcikKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmVuZFRy
YW5zcGFyZW5jeUxheWVyKCk7CiB9CiAKIHZvaWQgQm9yZGVyUGFpbnRlcjo6cGFpbnRTaWRlcyhj
b25zdCBTaWRlcyYgc2lkZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Qm9yZGVyUGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIu
aAppbmRleCBhMTk0ZjdlMDlkNjEuLjM1NzM0NjI0ZDdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0JvcmRlclBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQm9yZGVyUGFpbnRlci5oCkBAIC01OSw3ICs1OSw2IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgQ29sb3IgY2FsY3VsYXRlQm9yZGVyU3R5bGVDb2xvcihjb25zdCBCb3JkZXJTdHlsZSYsIGNv
bnN0IEJveFNpZGUmLCBjb25zdCBDb2xvciYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgcGFpbnRP
dXRsaW5lRm9yTGluZShjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91
dFJlY3QmIHByZXZpb3VzTGluZSwgY29uc3QgTGF5b3V0UmVjdCYgY3VycmVudExpbmUsIGNvbnN0
IExheW91dFJlY3QmIG5leHRMaW5lLCBjb25zdCBDb2xvciYgb3V0bGluZUNvbG9yKTsKICAgICB2
b2lkIHBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJC
b3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwgY29uc3QgSW50UG9pbnQmIGlu
bmVyQm9yZGVyQWRqdXN0bWVudCwKICAgICAgICAgY29uc3QgQm9yZGVyRWRnZXMmLCBCb3hTaWRl
U2V0IGVkZ2VzVG9EcmF3LCBzdGQ6Om9wdGlvbmFsPEJvcmRlckRhdGE6OlJhZGlpPiwgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBib29sIGlzSG9yaXpvbnRhbCk7
CiAgICAgdm9pZCBwYWludEJvcmRlclNpZGVzKGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRl
ciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJC
b3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlcyYsIEJveFNpZGVTZXQgZWRnZVNldCwg
c3RkOjpvcHRpb25hbDxCb3JkZXJEYXRhOjpSYWRpaT4sIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRF
ZGdlLCBib29sIGFudGlhbGlhcywgYm9vbCBpc0hvcml6b250YWwsIGNvbnN0IENvbG9yKiBvdmVy
cmlkZUNvbG9yID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCmluZGV4IDgwNTQ1Mjc1MTRjNS4uMTVkMTk2NWUzZDY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtOTU3LDggKzk1Nyw2IEBAIHZvaWQgUmVu
ZGVySW5saW5lOjpwYWludE91dGxpbmUoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3RvcjxMYXlvdXRSZWN0
PiByZWN0czsKLSAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKLQogICAgIGZvciAoYXV0
byBib3ggPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RJbmxpbmVCb3hGb3IoKnRoaXMpOyBib3g7IGJv
eC50cmF2ZXJzZU5leHRJbmxpbmVCb3goKSkgewogICAgICAgICBhdXRvIGxpbmVCb3ggPSBib3gt
PmxpbmVCb3goKTsKICAgICAgICAgYXV0byB0b3AgPSBMYXlvdXRVbml0IHsgc3RkOjptYXgobGlu
ZUJveC0+Y29udGVudExvZ2ljYWxUb3AoKSwgYm94LT5sb2dpY2FsVG9wKCkpIH07CkBAIC05NjYs
OCArOTY0LDYgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZShQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgogICAgICAgICBy
ZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJl
Y3Rpb24oKS54KCkpLCB0b3AsIExheW91dFVuaXQoYm94LT5sb2dpY2FsV2lkdGgoKSksIGJvdHRv
bSAtIHRvcCB9KTsKICAgICB9Ci0gICAgcmVjdHMuYXBwZW5kKExheW91dFJlY3QoKSk7Ci0KICAg
ICBCb3JkZXJQYWludGVyIHsgKnRoaXMsIHBhaW50SW5mbyB9LnBhaW50T3V0bGluZShwYWludE9m
ZnNldCwgcmVjdHMpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9p
bmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVyLXJhZGl1cy1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDlkNWI1MDc5
YTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5saW5lLW91
dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PHN0eWxlPgorZGl2IHsKKyAgbWFyZ2luOiAxMHB4OworICBmb250LXNpemU6IDIwcHg7CisgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgZm9udC1mYW1pbHk6IEFoZW07CisgIG91dGxpbmU6IDRw
eCBzb2xpZCBibHVlOworfQorPC9zdHlsZT4KKzxkaXY+PHNwYW4+WFhYWDwvc3Bhbj48L2Rpdj4K
KzxkaXYgc3R5bGU9ImJvcmRlci1yYWRpdXM6IDEwcHg7Ij5YWFhYPC9zcGFuPjwvZGl2PgorPGRp
diBzdHlsZT0iYm9yZGVyLXJhZGl1czogMTBweDsgb3V0bGluZS1vZmZzZXQ6IDRweDsiPlhYWFg8
L3NwYW4+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItcmFkaXVzOiAxcHggNXB4IDEwcHggMTVw
eDsgb3V0bGluZS1vZmZzZXQ6IDRweDsiPlhYWFg8L3NwYW4+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2lubGluZS9pbmxpbmUtb3V0bGluZS13aXRoLWJvcmRlci1yYWRpdXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2lubGluZS1vdXRsaW5lLXdpdGgtYm9yZGVy
LXJhZGl1cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmNk
NGEyZTYxYWQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaW5s
aW5lLW91dGxpbmUtd2l0aC1ib3JkZXItcmFkaXVzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPHN0
eWxlPgorZGl2IHsKKyAgbWFyZ2luOiAxMHB4OworICBmb250LXNpemU6IDIwcHg7CisgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgZm9udC1mYW1pbHk6IEFoZW07Cit9CisKK3NwYW4geworICBv
dXRsaW5lOiA0cHggc29saWQgYmx1ZTsKK30KKzwvc3R5bGU+Cis8ZGl2PjxzcGFuPlhYWFg8L3Nw
YW4+PC9kaXY+Cis8ZGl2PjxzcGFuIHN0eWxlPSJib3JkZXItcmFkaXVzOiAxMHB4OyI+WFhYWDwv
c3Bhbj48L2Rpdj4KKzxkaXY+PHNwYW4gc3R5bGU9ImJvcmRlci1yYWRpdXM6IDEwcHg7IG91dGxp
bmUtb2Zmc2V0OiA0cHg7Ij5YWFhYPC9zcGFuPjwvZGl2PgorPGRpdj48c3BhbiBzdHlsZT0iYm9y
ZGVyLXJhZGl1czogMXB4IDVweCAxMHB4IDE1cHg7IG91dGxpbmUtb2Zmc2V0OiA0cHg7Ij5YWFhY
PC9zcGFuPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2lubGlu
ZS1vdXRsaW5lLXJlcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9pbmxpbmUt
b3V0bGluZS1yZXBhaW50Lmh0bWwKaW5kZXggYTAxMTgwMGU2YzI3Li5jODVhYWMzZDEzYzggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9pbmxpbmUtb3V0bGluZS1yZXBhaW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2lubGluZS1vdXRsaW5lLXJlcGFp
bnQuaHRtbApAQCAtMTMsNiArMTMsNyBAQAogICAgICAgICAgICAgc2VsZWN0aW9uLnNldFBvc2l0
aW9uKGVsZW0sIDEpOwogICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlIik7CisgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdGFibGUiKS5ibHVyKCk7CiAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiAgICAgICAgIH0KQEAgLTMxLDcgKzMyLDcgQEAgQXMgdGhlIHdvcmRzICZsZHF1bztz
aXQgYW1ldCZyZHF1bzsgd2lsbCBiZSBkZWxldGVkLCB0aGUgYmx1ZSBvdXRsaW5lIHdpbGwgbGVh
dmUKIHRyYWlscyBiZWhpbmQgYXMgaXQgc2hyaW5rcyB0byBmaXQgdGhlIHJlbWFpbmluZyB0ZXh0
LgogPC9wPgogCi08ZGl2IGNvbnRlbnRlZGl0YWJsZSBzdHlsZT0id2lkdGg6IDEwMHB4OyBvdXRs
aW5lOiBub25lOyI+Cis8ZGl2IGlkPWVkaXRhYmxlIGNvbnRlbnRlZGl0YWJsZSBzdHlsZT0id2lk
dGg6IDEwMHB4OyBvdXRsaW5lOiBub25lOyI+CiA8c3BhbiBpZD0idGVzdCIgc3R5bGU9Im91dGxp
bmU6IGJsdWUgc29saWQ7Ij5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCZuYnNwOzwvc3Bhbj4K
IDwvZGl2PgogCg==
</data>
<flag name="commit-queue"
          id="491442"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>