<?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>197824</bug_id>
          
          <creation_ts>2019-05-12 11:02:19 -0700</creation_ts>
          <short_desc>Refactor composited backing-sharing code</short_desc>
          <delta_ts>2019-05-12 20:01:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>197561</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</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>1535447</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-12 11:02:19 -0700</bug_when>
    <thetext>Refactor composited backing-sharing code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535448</commentid>
    <comment_count>1</comment_count>
      <attachid>369678</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-12 11:09:24 -0700</bug_when>
    <thetext>Created attachment 369678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535449</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-12 11:11:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/50705506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535450</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-12 11:11:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/50705507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535511</commentid>
    <comment_count>4</comment_count>
      <attachid>369678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-12 20:01:32 -0700</bug_when>
    <thetext>Comment on attachment 369678
Patch

Clearing flags on attachment: 369678

Committed r245218: &lt;https://trac.webkit.org/changeset/245218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535512</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-12 20:01:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369678</attachid>
            <date>2019-05-12 11:09:24 -0700</date>
            <delta_ts>2019-05-12 20:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197824-20190512110923.patch</filename>
            <type>text/plain</type>
            <size>19376</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI2YzU1ZjE5NzQ5OGQ0
MTdiZDA0MGVhOWFmMDM1OWM0ZGFiNWEzOC4uYTMxZTEwZGE4OWUzYmZlNTU1YWRjN2QwOGMxMTky
NGNmMDkzMzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA1LTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIGNv
bXBvc2l0ZWQgYmFja2luZy1zaGFyaW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzgyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENsZWFuIHVwIHRoZSBiYWNraW5nLXNoYXJpbmcgY29kZSB0
byBzaGFyZSBtb3JlIGNvZGUsIGFuZCBtYWtlIGl0IGVhc2llciB0byB1bmRlcnN0YW5kLgorICAg
ICAgICAKKyAgICAgICAgTW92ZXMgbW9yZSBsb2dpYyBpbnRvIG1lbWJlciBmdW5jdGlvbnMgb24g
QmFja2luZ1NoYXJpbmdTdGF0ZSwgd2hpY2ggYXJlIG5hbWVkIHRvIG1ha2UKKyAgICAgICAgdGhl
aXIgZnVuY3Rpb25zIGNsZWFyZXI6IHN0YXJ0QmFja2luZ1NoYXJpbmdTZXF1ZW5jZS9lbmRCYWNr
aW5nU2hhcmluZ1NlcXVlbmNlLgorICAgICAgICAKKyAgICAgICAgY29tcHV0ZUNvbXBvc2l0aW5n
UmVxdWlyZW1lbnRzKCkgYW5kIHRyYXZlcnNlVW5jaGFuZ2VkU3VidHJlZSgpIG5vdyBqdXN0IGNh
bGwKKyAgICAgICAgdXBkYXRlQmVmb3JlRGVzY2VuZGFudFRyYXZlcnNhbC91cGRhdGVBZnRlckRl
c2NlbmRhbnRUcmF2ZXJzYWwuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnNldEJhY2tpbmdTaGFyaW5nTGF5ZXJzKTogUmVtb3ZlIHRo
ZSBlYXJseSByZXR1cm4sIHNpbmNlCisgICAgICAgIHdlIG5lZWQgdG8gY2FsbCBzZXRCYWNraW5n
UHJvdmlkZXJMYXllcigpIG9uIHRoZSBzaGFyaW5nIGxheWVycyBpbiBib3RoIGNvZGUgcGF0aHMu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnJlbW92ZUJhY2tpbmdTaGFy
aW5nTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpjbGVhckJh
Y2tpbmdTaGFyaW5nTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6QmFj
a2luZ1NoYXJpbmdTdGF0ZTo6YmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6QmFja2luZ1NoYXJpbmdTdGF0ZTo6
YXBwZW5kU2hhcmluZ0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6QmFja2luZ1NoYXJpbmdTdGF0ZTo6c3RhcnRCYWNraW5nU2hhcmluZ1NlcXVlbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6QmFja2luZ1NoYXJpbmdT
dGF0ZTo6ZW5kQmFja2luZ1NoYXJpbmdTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3RhdGU6OnVwZGF0ZUJlZm9yZURlc2Nl
bmRhbnRUcmF2ZXJzYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpCYWNraW5nU2hhcmluZ1N0YXRlOjp1cGRhdGVBZnRlckRlc2NlbmRhbnRUcmF2ZXJzYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp0cmF2ZXJzZVVuY2hhbmdlZFN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpCYWNraW5nU2hhcmluZ1N0YXRlOjpyZXNldEJhY2tpbmdQcm92aWRlckNh
bmRpZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oOgorCiAyMDE5LTA1LTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIE92ZXJmbG93IHNjcm9sbCB0aGF0IGJlY29tZXMgbm9uLXNjcm9sbGFi
bGUgc2hvdWxkIHN0b3AgYmVpbmcgY29tcG9zaXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA0M2QxYTU3NWNjZDZjNDVmMDEyYjRl
NGFlMDU2OTJiOWE1M2M3MDM1Li5mODM5ZTQ2ZTNlYmQwNGUyMzQzOWI1YTk0MGFjMTNkM2E5YmY1
MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMjYwLDggKzI2MCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp3aWxsQmVE
ZXN0cm95ZWQoKQogICAgIEFTU0VSVChtX293bmluZ0xheWVyLmJhY2tpbmcoKSA9PSB0aGlzKTsK
ICAgICBjb21wb3NpdG9yKCkucmVtb3ZlRnJvbVNjcm9sbENvb3JkaW5hdGVkTGF5ZXJzKG1fb3du
aW5nTGF5ZXIpOwogCi0gICAgTE9HKENvbXBvc2l0aW5nLCAiUmVuZGVyTGF5ZXIoYmFja2luZykg
JXAgd2lsbEJlRGVzdHJveWVkIiwgJm1fb3duaW5nTGF5ZXIpOwotCiAgICAgY2xlYXJCYWNraW5n
U2hhcmluZ0xheWVycygpOwogfQogCkBAIC0yODIsMjkgKzI4MCwyMSBAQCBzdGF0aWMgdm9pZCBj
bGVhckJhY2tpbmdTaGFyaW5nTGF5ZXJQcm92aWRlcnMoVmVjdG9yPFdlYWtQdHI8UmVuZGVyTGF5
ZXI+PiYgc2hhcgogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0QmFja2luZ1NoYXJpbmdM
YXllcnMoVmVjdG9yPFdlYWtQdHI8UmVuZGVyTGF5ZXI+PiYmIHNoYXJpbmdMYXllcnMpCiB7Ci0g
ICAgaWYgKG1fYmFja2luZ1NoYXJpbmdMYXllcnMgPT0gc2hhcmluZ0xheWVycykgewotICAgICAg
ICBzaGFyaW5nTGF5ZXJzLmNsZWFyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBj
bGVhckJhY2tpbmdTaGFyaW5nTGF5ZXJQcm92aWRlcnMobV9iYWNraW5nU2hhcmluZ0xheWVycyk7
CiAgICAgbV9iYWNraW5nU2hhcmluZ0xheWVycyA9IFdURk1vdmUoc2hhcmluZ0xheWVycyk7CisK
ICAgICBmb3IgKGF1dG8mIGxheWVyV2Vha1B0ciA6IG1fYmFja2luZ1NoYXJpbmdMYXllcnMpCiAg
ICAgICAgIGxheWVyV2Vha1B0ci0+c2V0QmFja2luZ1Byb3ZpZGVyTGF5ZXIoJm1fb3duaW5nTGF5
ZXIpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cmVtb3ZlQmFja2luZ1NoYXJpbmdM
YXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiB7Ci0gICAgTE9HKENvbXBvc2l0aW5nLCAiUmVuZGVy
TGF5ZXIgJXAgcmVtb3ZlQmFja2luZ1NoYXJpbmdMYXllciAlcCIsICZtX293bmluZ0xheWVyLCAm
bGF5ZXIpOwotCiAgICAgbGF5ZXIuc2V0QmFja2luZ1Byb3ZpZGVyTGF5ZXIobnVsbHB0cik7CiAg
ICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5yZW1vdmVBbGwoJmxheWVyKTsKIH0KIAogdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OmNsZWFyQmFja2luZ1NoYXJpbmdMYXllcnMoKQogewotICAgIExP
RyhDb21wb3NpdGluZywgIlJlbmRlckxheWVyICVwIGNsZWFyQmFja2luZ1NoYXJpbmdMYXllcnMi
LCAmbV9vd25pbmdMYXllcik7Ci0KICAgICBjbGVhckJhY2tpbmdTaGFyaW5nTGF5ZXJQcm92aWRl
cnMobV9iYWNraW5nU2hhcmluZ0xheWVycyk7CiAgICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5j
bGVhcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAppbmRleCAyODMyNzNjMGY5N2FhOGE0MWIzZGY2MTI3MWQyODQ4NDIyMzFl
ZWM4Li4wN2U4Y2M3OWI5NWU0ZjBjM2QxNzZkNWFjNDI5YmRkNjUxZjA0YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAt
Mjg0LDIyICsyODQsODUgQEAgc3RydWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Q29tcG9zaXRp
bmdTdGF0ZSB7CiAjZW5kaWYKIH07CiAKLXN0cnVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJh
Y2tpbmdTaGFyaW5nU3RhdGUgewotICAgIFJlbmRlckxheWVyKiBiYWNraW5nUHJvdmlkZXJDYW5k
aWRhdGUgeyBudWxscHRyIH07Ci0gICAgUmVuZGVyTGF5ZXIqIGJhY2tpbmdQcm92aWRlclN0YWNr
aW5nQ29udGV4dCB7IG51bGxwdHIgfTsKLSAgICBWZWN0b3I8V2Vha1B0cjxSZW5kZXJMYXllcj4+
IGJhY2tpbmdTaGFyaW5nTGF5ZXJzOworY2xhc3MgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpCYWNr
aW5nU2hhcmluZ1N0YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYWNraW5nU2hhcmlu
Z1N0YXRlKTsKK3B1YmxpYzoKKyAgICBCYWNraW5nU2hhcmluZ1N0YXRlKCkgPSBkZWZhdWx0Owog
Ci0gICAgdm9pZCByZXNldEJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZShSZW5kZXJMYXllciogY2Fu
ZGlkYXRlTGF5ZXIgPSBudWxscHRyLCBSZW5kZXJMYXllciogY2FuZGlkYXRlU3RhY2tpbmdDb250
ZXh0ID0gbnVsbHB0cikKKyAgICBSZW5kZXJMYXllciogYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRl
KCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGU7IH07CisgICAgCisg
ICAgdm9pZCBhcHBlbmRTaGFyaW5nTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIHsKLSAg
ICAgICAgaWYgKCFiYWNraW5nU2hhcmluZ0xheWVycy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IEFTU0VSVChiYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUpOwotICAgICAgICAgICAgYmFja2luZ1By
b3ZpZGVyQ2FuZGlkYXRlLT5iYWNraW5nKCktPnNldEJhY2tpbmdTaGFyaW5nTGF5ZXJzKFdURk1v
dmUoYmFja2luZ1NoYXJpbmdMYXllcnMpKTsKLSAgICAgICAgfQotICAgICAgICBiYWNraW5nUHJv
dmlkZXJDYW5kaWRhdGUgPSBjYW5kaWRhdGVMYXllcjsKLSAgICAgICAgYmFja2luZ1Byb3ZpZGVy
U3RhY2tpbmdDb250ZXh0ID0gY2FuZGlkYXRlTGF5ZXIgPyBjYW5kaWRhdGVTdGFja2luZ0NvbnRl
eHQgOiBudWxscHRyOworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVh
bSA8PCAmbGF5ZXIgPDwgIiBhcHBlbmRTaGFyaW5nTGF5ZXIgIiA8PCAmbGF5ZXIgPDwgIiBmb3Ig
YmFja2luZyBwcm92aWRlciAiIDw8IG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKTsKKyAgICAg
ICAgbV9iYWNraW5nU2hhcmluZ0xheWVycy5hcHBlbmQobWFrZVdlYWtQdHIobGF5ZXIpKTsKICAg
ICB9CisKKyAgICB2b2lkIHVwZGF0ZUJlZm9yZURlc2NlbmRhbnRUcmF2ZXJzYWwoUmVuZGVyTGF5
ZXImLCBib29sIHdpbGxCZUNvbXBvc2l0ZWQpOworICAgIHZvaWQgdXBkYXRlQWZ0ZXJEZXNjZW5k
YW50VHJhdmVyc2FsKFJlbmRlckxheWVyJiwgUmVuZGVyTGF5ZXIqIHN0YWNraW5nQ29udGV4dEFu
Y2VzdG9yKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGxheWVyV2lsbEJlQ29tcG9zaXRlZChSZW5k
ZXJMYXllciYpOworCisgICAgdm9pZCBzdGFydEJhY2tpbmdTaGFyaW5nU2VxdWVuY2UoUmVuZGVy
TGF5ZXImIGNhbmRpZGF0ZUxheWVyLCBSZW5kZXJMYXllciogY2FuZGlkYXRlU3RhY2tpbmdDb250
ZXh0KTsKKyAgICB2b2lkIGVuZEJhY2tpbmdTaGFyaW5nU2VxdWVuY2UoKTsKKworICAgIFJlbmRl
ckxheWVyKiBtX2JhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSB7IG51bGxwdHIgfTsKKyAgICBSZW5k
ZXJMYXllciogbV9iYWNraW5nUHJvdmlkZXJTdGFja2luZ0NvbnRleHQgeyBudWxscHRyIH07Cisg
ICAgVmVjdG9yPFdlYWtQdHI8UmVuZGVyTGF5ZXI+PiBtX2JhY2tpbmdTaGFyaW5nTGF5ZXJzOwog
fTsKIAordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3RhdGU6OnN0
YXJ0QmFja2luZ1NoYXJpbmdTZXF1ZW5jZShSZW5kZXJMYXllciYgY2FuZGlkYXRlTGF5ZXIsIFJl
bmRlckxheWVyKiBjYW5kaWRhdGVTdGFja2luZ0NvbnRleHQpCit7CisgICAgQVNTRVJUKCFtX2Jh
Y2tpbmdQcm92aWRlckNhbmRpZGF0ZSk7CisgICAgQVNTRVJUKG1fYmFja2luZ1NoYXJpbmdMYXll
cnMuaXNFbXB0eSgpKTsKKworICAgIG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlID0gJmNhbmRp
ZGF0ZUxheWVyOworICAgIG1fYmFja2luZ1Byb3ZpZGVyU3RhY2tpbmdDb250ZXh0ID0gY2FuZGlk
YXRlU3RhY2tpbmdDb250ZXh0OworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6QmFj
a2luZ1NoYXJpbmdTdGF0ZTo6ZW5kQmFja2luZ1NoYXJpbmdTZXF1ZW5jZSgpCit7CisgICAgaWYg
KG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKSB7CisgICAgICAgIG1fYmFja2luZ1Byb3ZpZGVy
Q2FuZGlkYXRlLT5iYWNraW5nKCktPnNldEJhY2tpbmdTaGFyaW5nTGF5ZXJzKFdURk1vdmUobV9i
YWNraW5nU2hhcmluZ0xheWVycykpOworICAgICAgICBtX2JhY2tpbmdTaGFyaW5nTGF5ZXJzLmNs
ZWFyKCk7CisgICAgfQorICAgIAorICAgIG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlID0gbnVs
bHB0cjsKK30KKwordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OkJhY2tpbmdTaGFyaW5nU3Rh
dGU6OnVwZGF0ZUJlZm9yZURlc2NlbmRhbnRUcmF2ZXJzYWwoUmVuZGVyTGF5ZXImIGxheWVyLCBi
b29sIHdpbGxCZUNvbXBvc2l0ZWQpCit7CisgICAgbGF5ZXIuc2V0QmFja2luZ1Byb3ZpZGVyTGF5
ZXIobnVsbHB0cik7CisKKyAgICAvLyBBIGxheWVyIHRoYXQgY29tcG9zaXRlcyByZXNldHMgYmFj
a2luZy1zaGFyaW5nLCBzaW5jZSBzdWJzZXF1ZW50IGxheWVycyBuZWVkIHRvIGNvbXBvc2l0ZSB0
byBvdmVybGFwIGl0LgorICAgIGlmICh3aWxsQmVDb21wb3NpdGVkKSB7CisgICAgICAgIG1fYmFj
a2luZ1NoYXJpbmdMYXllcnMucmVtb3ZlQWxsKCZsYXllcik7CisgICAgICAgIExPR19XSVRIX1NU
UkVBTShDb21wb3NpdGluZywgc3RyZWFtIDw8ICJQcmUtZGVzY2VuZGFudCBjb21wb3NpdGluZyBv
ZiAiIDw8ICZsYXllciA8PCAiLCBlbmRpbmcgc2hhcmluZyBzZXF1ZW5jZSBmb3IgIiA8PCBtX2Jh
Y2tpbmdQcm92aWRlckNhbmRpZGF0ZSA8PCAiIHdpdGggIiA8PCBtX2JhY2tpbmdTaGFyaW5nTGF5
ZXJzLnNpemUoKSA8PCAiIHNoYXJpbmcgbGF5ZXJzIik7CisgICAgICAgIGVuZEJhY2tpbmdTaGFy
aW5nU2VxdWVuY2UoKTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpC
YWNraW5nU2hhcmluZ1N0YXRlOjp1cGRhdGVBZnRlckRlc2NlbmRhbnRUcmF2ZXJzYWwoUmVuZGVy
TGF5ZXImIGxheWVyLCBSZW5kZXJMYXllciogc3RhY2tpbmdDb250ZXh0QW5jZXN0b3IpCit7Cisg
ICAgaWYgKGxheWVyLmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgIC8vIElmIHRoaXMgbGF5ZXIg
aXMgYmVpbmcgY29tcG9zaXRlZCwgY2xlYW4gdXAgc2hhcmluZy1yZWxhdGVkIHN0YXRlLgorICAg
ICAgICBsYXllci5kaXNjb25uZWN0RnJvbUJhY2tpbmdQcm92aWRlckxheWVyKCk7CisgICAgICAg
IG1fYmFja2luZ1NoYXJpbmdMYXllcnMucmVtb3ZlQWxsKCZsYXllcik7CisgICAgfQorCisgICAg
aWYgKG1fYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlICYmICZsYXllciA9PSBtX2JhY2tpbmdQcm92
aWRlclN0YWNraW5nQ29udGV4dCkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRp
bmcsIHN0cmVhbSA8PCAiRW5kIG9mIHN0YWNraW5nIGNvbnRleHQgZm9yIGJhY2tpbmcgcHJvdmlk
ZXIgIiA8PCBtX2JhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSA8PCAiLCBlbmRpbmcgc2hhcmluZyBz
ZXF1ZW5jZSB3aXRoICIgPDwgbV9iYWNraW5nU2hhcmluZ0xheWVycy5zaXplKCkgPDwgIiBzaGFy
aW5nIGxheWVycyIpOworICAgICAgICBlbmRCYWNraW5nU2hhcmluZ1NlcXVlbmNlKCk7CisgICAg
fSBlbHNlIGlmICghbV9iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUgJiYgbGF5ZXIuaXNDb21wb3Np
dGVkKCkpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwg
IlBvc3QtZGVzY2VuZGFudCBjb21wb3NpdGluZyBvZiAiIDw8ICZsYXllciA8PCAiLCBlbmRpbmcg
c2hhcmluZyBzZXF1ZW5jZSBmb3IgIiA8PCBtX2JhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSA8PCAi
IHdpdGggIiA8PCBtX2JhY2tpbmdTaGFyaW5nTGF5ZXJzLnNpemUoKSA8PCAiIHNoYXJpbmcgbGF5
ZXJzIik7CisgICAgICAgIGVuZEJhY2tpbmdTaGFyaW5nU2VxdWVuY2UoKTsKKyAgICAgICAgc3Rh
cnRCYWNraW5nU2hhcmluZ1NlcXVlbmNlKGxheWVyLCBzdGFja2luZ0NvbnRleHRBbmNlc3Rvcik7
CisgICAgfQorICAgIAorICAgIGlmICgmbGF5ZXIgIT0gbV9iYWNraW5nUHJvdmlkZXJDYW5kaWRh
dGUgJiYgbGF5ZXIuaXNDb21wb3NpdGVkKCkpCisgICAgICAgIGxheWVyLmJhY2tpbmcoKS0+Y2xl
YXJCYWNraW5nU2hhcmluZ0xheWVycygpOworfQorCiBzdHJ1Y3QgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpPdmVybGFwRXh0ZW50IHsKICAgICBMYXlvdXRSZWN0IGJvdW5kczsKICAgICBib29sIGV4
dGVudENvbXB1dGVkIHsgZmFsc2UgfTsKQEAgLTg4MCw3ICs5NDMsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVy
KiBhbmNlc3RvcgogICAgIH0KIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICBMT0co
Q29tcG9zaXRpbmcsICIlKnAgJXMgY29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzIChiYWNr
aW5nIHByb3ZpZGVyIGNhbmRpZGF0ZSAlcCkiLCAxMiArIGNvbXBvc2l0aW5nU3RhdGUuZGVwdGgg
KiAyLCAmbGF5ZXIsIGxheWVyLmlzTm9ybWFsRmxvd09ubHkoKSA/ICJuIiA6ICJzIiwgYmFja2lu
Z1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUpOworICAgIExPRyhDb21wb3Np
dGluZywgIiUqcCAlcyBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMgKGJhY2tpbmcgcHJv
dmlkZXIgY2FuZGlkYXRlICVwKSIsIDEyICsgY29tcG9zaXRpbmdTdGF0ZS5kZXB0aCAqIDIsICZs
YXllciwgbGF5ZXIuaXNOb3JtYWxGbG93T25seSgpID8gIm4iIDogInMiLCBiYWNraW5nU2hhcmlu
Z1N0YXRlLmJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpKTsKICNlbmRpZgogCiAgICAgLy8gRklY
TUU6IG1heWJlIHdlIGNhbiBhdm9pZCB1cGRhdGluZyBhbGwgcmVtYWluaW5nIGxheWVycyBpbiBw
YWludCBvcmRlci4KQEAgLTg5MSw3ICs5NTQsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3Rvcgog
ICAgIGxheWVyLnVwZGF0ZUxheWVyTGlzdHNJZk5lZWRlZCgpOwogCiAgICAgbGF5ZXIuc2V0SGFz
Q29tcG9zaXRpbmdEZXNjZW5kYW50KGZhbHNlKTsKLSAgICBsYXllci5zZXRCYWNraW5nUHJvdmlk
ZXJMYXllcihudWxscHRyKTsKIAogICAgIC8vIFdlIHVwZGF0ZWQgY29tcG9zaXRpbmcgZm9yIGRp
cmVjdCByZWFzb25zIGluIGxheWVyU3R5bGVDaGFuZ2VkKCkuIEhlcmUsIGNoZWNrIGZvciBjb21w
b3NpdGluZyB0aGF0IGNhbiBvbmx5IGJlIGV2YWx1YXRlZCBhZnRlciBsYXlvdXQuCiAgICAgUmVx
dWlyZXNDb21wb3NpdGluZ0RhdGEgcXVlcnlEYXRhOwpAQCAtOTIxLDkgKzk4Myw5IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVu
ZGVyTGF5ZXIqIGFuY2VzdG9yCiAKICAgICAgICAgLy8gSWYgd2UncmUgdGVzdGluZyBmb3Igb3Zl
cmxhcCwgd2Ugb25seSBuZWVkIHRvIGNvbXBvc2l0ZSBpZiB3ZSBvdmVybGFwIHNvbWV0aGluZyB0
aGF0IGlzIGFscmVhZHkgY29tcG9zaXRlZC4KICAgICAgICAgaWYgKG92ZXJsYXBNYXAub3Zlcmxh
cHNMYXllcnMobGF5ZXJFeHRlbnQuYm91bmRzKSkgewotICAgICAgICAgICAgaWYgKGJhY2tpbmdT
aGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlICYmIGNhbkJlQ29tcG9zaXRlZChs
YXllcikgJiYgYmFja2luZ1Byb3ZpZGVyTGF5ZXJDYW5JbmNsdWRlTGF5ZXIoKmJhY2tpbmdTaGFy
aW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlLCBsYXllcikpIHsKLSAgICAgICAgICAg
ICAgICBiYWNraW5nU2hhcmluZ1N0YXRlLmJhY2tpbmdTaGFyaW5nTGF5ZXJzLmFwcGVuZChtYWtl
V2Vha1B0cihsYXllcikpOwotICAgICAgICAgICAgICAgIExPRyhDb21wb3NpdGluZywgIiBsYXll
ciAlcCBjYW4gc2hhcmUgd2l0aCAlcCIsICZsYXllciwgYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNr
aW5nUHJvdmlkZXJDYW5kaWRhdGUpOworICAgICAgICAgICAgaWYgKGJhY2tpbmdTaGFyaW5nU3Rh
dGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCkgJiYgY2FuQmVDb21wb3NpdGVkKGxheWVyKSAm
JiBiYWNraW5nUHJvdmlkZXJMYXllckNhbkluY2x1ZGVMYXllcigqYmFja2luZ1NoYXJpbmdTdGF0
ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUoKSwgbGF5ZXIpKSB7CisgICAgICAgICAgICAgICAg
YmFja2luZ1NoYXJpbmdTdGF0ZS5hcHBlbmRTaGFyaW5nTGF5ZXIobGF5ZXIpOworICAgICAgICAg
ICAgICAgIExPRyhDb21wb3NpdGluZywgIiBsYXllciAlcCBjYW4gc2hhcmUgd2l0aCAlcCIsICZs
YXllciwgYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUoKSk7CiAg
ICAgICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFzb24gPSBSZW5kZXJMYXllcjo6SW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbjo6Tm9uZTsKICAgICAgICAgICAgICAgICBsYXllclBhaW50c0ludG9Q
cm92aWRlZEJhY2tpbmcgPSB0cnVlOwogICAgICAgICAgICAgfSBlbHNlCkBAIC05NjcsMTAgKzEw
MjksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgICAgICAvLyBhbmltYXRpb24gcnVu
bmluZyBiZWhpbmQgdGhpcyBsYXllciwgbWVhbmluZyB0aGV5IGNhbiByZWx5IG9uIHRoZSBvdmVy
bGFwIG1hcCB0ZXN0aW5nIGFnYWluLgogICAgICAgICBjaGlsZFN0YXRlLnRlc3RpbmdPdmVybGFw
ID0gdHJ1ZTsKICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9IHRydWU7Ci0KICAgICAgICAgbGF5
ZXJQYWludHNJbnRvUHJvdmlkZWRCYWNraW5nID0gZmFsc2U7Ci0gICAgICAgIGxheWVyLmRpc2Nv
bm5lY3RGcm9tQmFja2luZ1Byb3ZpZGVyTGF5ZXIoKTsKLSAgICAgICAgYmFja2luZ1NoYXJpbmdT
dGF0ZS5iYWNraW5nU2hhcmluZ0xheWVycy5yZW1vdmVBbGwoJmxheWVyKTsKICAgICB9OwogCiAg
ICAgaWYgKHdpbGxCZUNvbXBvc2l0ZWQpIHsKQEAgLTk4MywxNSArMTA0MiwxMyBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRl
ckxheWVyKiBhbmNlc3RvcgogICAgICAgICBjaGlsZFN0YXRlLmFuY2VzdG9ySGFzVHJhbnNmb3Jt
QW5pbWF0aW9uIHw9IGxheWVyRXh0ZW50Lmhhc1RyYW5zZm9ybUFuaW1hdGlvbjsKICAgICAgICAg
Ly8gVG9vIGhhcmQgdG8gY29tcHV0ZSBhbmltYXRlZCBib3VuZHMgaWYgYm90aCB1cyBhbmQgc29t
ZSBhbmNlc3RvciBpcyBhbmltYXRpbmcgdHJhbnNmb3JtLgogICAgICAgICBsYXllckV4dGVudC5h
bmltYXRpb25DYXVzZXNFeHRlbnRVbmNlcnRhaW50eSB8PSBsYXllckV4dGVudC5oYXNUcmFuc2Zv
cm1BbmltYXRpb24gJiYgY29tcG9zaXRpbmdTdGF0ZS5hbmNlc3Rvckhhc1RyYW5zZm9ybUFuaW1h
dGlvbjsKLQotICAgICAgICAvLyBDb21wb3NpdGluZyBmb3IgYW55IHJlYXNvbiBkaXNhYmxlcyBi
YWNraW5nIHNoYXJpbmcuCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShDb21wb3NpdGluZywgc3Ry
ZWFtIDw8ICZsYXllciA8PCAiIGlzIGNvbXBvc2l0aW5nIC0gZmx1c2hpbmcgc2hhcmluZyB0byAi
IDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlIDw8ICIgd2l0
aCAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1NoYXJpbmdMYXllcnMuc2l6ZSgpIDw8
ICIgc2hhcmluZyBsYXllcnMiKTsKLSAgICAgICAgYmFja2luZ1NoYXJpbmdTdGF0ZS5yZXNldEJh
Y2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpOwogICAgIH0gZWxzZSBpZiAobGF5ZXJQYWludHNJbnRv
UHJvdmlkZWRCYWNraW5nKSB7CiAgICAgICAgIGNoaWxkU3RhdGUuYmFja2luZ1NoYXJpbmdBbmNl
c3RvciA9ICZsYXllcjsKICAgICAgICAgb3ZlcmxhcE1hcC5wdXNoQ29tcG9zaXRpbmdDb250YWlu
ZXIoKTsKICAgICB9CiAKKyAgICBiYWNraW5nU2hhcmluZ1N0YXRlLnVwZGF0ZUJlZm9yZURlc2Nl
bmRhbnRUcmF2ZXJzYWwobGF5ZXIsIHdpbGxCZUNvbXBvc2l0ZWQpOworCiAjaWYgIUFTU0VSVF9E
SVNBQkxFRAogICAgIExheWVyTGlzdE11dGF0aW9uRGV0ZWN0b3IgbXV0YXRpb25DaGVja2VyKGxh
eWVyKTsKICNlbmRpZgpAQCAtMTEwMCwxOCArMTE1NywxMCBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNl
c3RvcgogICAgICAgICBsYXllci5zZXRDaGlsZHJlbk5lZWRDb21wb3NpdGluZ0dlb21ldHJ5VXBk
YXRlKCk7CiAgICAgICAgIC8vIFRoZSBjb21wb3NpdGVkIGJvdW5kcyBvZiBlbmNsb3NpbmcgbGF5
ZXJzIGRlcGVuZHMgb24gd2hpY2ggZGVzY2VuZGFudHMgYXJlIGNvbXBvc2l0ZWQsIHNvIHRoZXkg
bmVlZCBhIGdlb21ldHJ5IHVwZGF0ZS4KICAgICAgICAgbGF5ZXIuc2V0TmVlZHNDb21wb3NpdGlu
Z0dlb21ldHJ5VXBkYXRlT25BbmNlc3RvcnMoKTsKLSAgICB9IGVsc2UgaWYgKGxheWVyLmlzQ29t
cG9zaXRlZCgpKQotICAgICAgICBsYXllci5iYWNraW5nKCktPmNsZWFyQmFja2luZ1NoYXJpbmdM
YXllcnMoKTsKLQotICAgIGlmIChiYWNraW5nU2hhcmluZ1N0YXRlLmJhY2tpbmdQcm92aWRlckNh
bmRpZGF0ZSAmJiAmbGF5ZXIgPT0gYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJT
dGFja2luZ0NvbnRleHQpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBz
dHJlYW0gPDwgJmxheWVyIDw8ICIgcG9wcGluZyBzdGFja2luZyBjb250ZXh0ICIgPDwgYmFja2lu
Z1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJTdGFja2luZ0NvbnRleHQgPDwgIiwgZmx1c2hp
bmcgY2FuZGlkYXRlICIgPDwgYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5k
aWRhdGUgPDwgIiB3aXRoICIgPDwgYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nU2hhcmluZ0xh
eWVycy5zaXplKCkgPDwgIiBzaGFyaW5nIGxheWVycyIpOwotICAgICAgICBiYWNraW5nU2hhcmlu
Z1N0YXRlLnJlc2V0QmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCk7Ci0gICAgfSBlbHNlIGlmICgh
YmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUgJiYgbGF5ZXIuaXND
b21wb3NpdGVkKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJl
YW0gPDwgJmxheWVyIDw8ICIgY29tcG9zaXRpbmcgLSBzaGFyaW5nIGNhbmRpZGF0ZSAiIDw8IGJh
Y2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlIDw8ICIgd2l0aCAiIDw8
IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1NoYXJpbmdMYXllcnMuc2l6ZSgpIDw8ICIgc2hh
cmluZyBsYXllcnMiKTsKLSAgICAgICAgLy8gRmx1c2ggb3V0IGFueSBlYXJsaWVyIGNhbmRpZGF0
ZSBpbiB0aGlzIHN0YWNraW5nIGNvbnRleHQuIFRoaXMgbGF5ZXIgYmVjb21lcyBhIGNhbmRpZGF0
ZS4KLSAgICAgICAgYmFja2luZ1NoYXJpbmdTdGF0ZS5yZXNldEJhY2tpbmdQcm92aWRlckNhbmRp
ZGF0ZSgmbGF5ZXIsIGNvbXBvc2l0aW5nU3RhdGUuc3RhY2tpbmdDb250ZXh0QW5jZXN0b3IpOwog
ICAgIH0KIAorICAgIGJhY2tpbmdTaGFyaW5nU3RhdGUudXBkYXRlQWZ0ZXJEZXNjZW5kYW50VHJh
dmVyc2FsKGxheWVyLCBjb21wb3NpdGluZ1N0YXRlLnN0YWNraW5nQ29udGV4dEFuY2VzdG9yKTsK
KwogICAgIGlmIChsYXllci5yZWZsZWN0aW9uTGF5ZXIoKSAmJiB1cGRhdGVMYXllckNvbXBvc2l0
aW5nU3RhdGUoKmxheWVyLnJlZmxlY3Rpb25MYXllcigpLCBxdWVyeURhdGEsIENvbXBvc2l0aW5n
Q2hhbmdlUmVwYWludE5vdykpCiAgICAgICAgIGxheWVyLnNldE5lZWRzQ29tcG9zaXRpbmdMYXll
ckNvbm5lY3Rpb24oKTsKIApAQCAtMTEyNCw3ICsxMTczLDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5j
ZXN0b3IKICAgICB9CiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCi0gICAgTE9HKENvbXBv
c2l0aW5nLCAiJSpwIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyAtIHdpbGxCZUNvbXBv
c2l0ZWQgJWQgKGJhY2tpbmcgcHJvdmlkZXIgY2FuZGlkYXRlICVwKSIsIDEyICsgY29tcG9zaXRp
bmdTdGF0ZS5kZXB0aCAqIDIsICZsYXllciwgd2lsbEJlQ29tcG9zaXRlZCwgYmFja2luZ1NoYXJp
bmdTdGF0ZS5iYWNraW5nUHJvdmlkZXJDYW5kaWRhdGUpOworICAgIExPRyhDb21wb3NpdGluZywg
IiUqcCBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMgLSB3aWxsQmVDb21wb3NpdGVkICVk
IChiYWNraW5nIHByb3ZpZGVyIGNhbmRpZGF0ZSAlcCkiLCAxMiArIGNvbXBvc2l0aW5nU3RhdGUu
ZGVwdGggKiAyLCAmbGF5ZXIsIHdpbGxCZUNvbXBvc2l0ZWQsIGJhY2tpbmdTaGFyaW5nU3RhdGUu
YmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCkpOwogI2VuZGlmCiAKICAgICBsYXllci5jbGVhckNv
bXBvc2l0aW5nUmVxdWlyZW1lbnRzVHJhdmVyc2FsU3RhdGUoKTsKQEAgLTExNjAsOSArMTIwOSw5
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp0cmF2ZXJzZVVuY2hhbmdlZFN1YnRyZWUo
UmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsCiAgICAgICAgIGNvbXB1dGVFeHRlbnQob3Zlcmxh
cE1hcCwgbGF5ZXIsIGxheWVyRXh0ZW50KTsKIAogICAgIGlmIChsYXllci5wYWludHNJbnRvUHJv
dmlkZWRCYWNraW5nKCkpIHsKLSAgICAgICAgQVNTRVJUKGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFj
a2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKTsKLSAgICAgICAgQVNTRVJUKGJhY2tpbmdQcm92aWRlckxh
eWVyQ2FuSW5jbHVkZUxheWVyKCpiYWNraW5nU2hhcmluZ1N0YXRlLmJhY2tpbmdQcm92aWRlckNh
bmRpZGF0ZSwgbGF5ZXIpKTsKLSAgICAgICAgYmFja2luZ1NoYXJpbmdTdGF0ZS5iYWNraW5nU2hh
cmluZ0xheWVycy5hcHBlbmQobWFrZVdlYWtQdHIobGF5ZXIpKTsKKyAgICAgICAgQVNTRVJUKGJh
Y2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCkpOworICAgICAgICBB
U1NFUlQoYmFja2luZ1Byb3ZpZGVyTGF5ZXJDYW5JbmNsdWRlTGF5ZXIoKmJhY2tpbmdTaGFyaW5n
U3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCksIGxheWVyKSk7CisgICAgICAgIGJhY2tp
bmdTaGFyaW5nU3RhdGUuYXBwZW5kU2hhcmluZ0xheWVyKGxheWVyKTsKICAgICB9CiAKICAgICBD
b21wb3NpdGluZ1N0YXRlIGNoaWxkU3RhdGUgPSBjb21wb3NpdGluZ1N0YXRlLnN0YXRlRm9yUGFp
bnRPcmRlckNoaWxkcmVuKGxheWVyKTsKQEAgLTExODIsMTIgKzEyMzEsMTAgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnRyYXZlcnNlVW5jaGFuZ2VkU3VidHJlZShSZW5kZXJMYXllciog
YW5jZXN0b3JMYXllciwKICAgICAgICAgY2hpbGRTdGF0ZS5hbmNlc3Rvckhhc1RyYW5zZm9ybUFu
aW1hdGlvbiB8PSBsYXllckV4dGVudC5oYXNUcmFuc2Zvcm1BbmltYXRpb247CiAgICAgICAgIC8v
IFRvbyBoYXJkIHRvIGNvbXB1dGUgYW5pbWF0ZWQgYm91bmRzIGlmIGJvdGggdXMgYW5kIHNvbWUg
YW5jZXN0b3IgaXMgYW5pbWF0aW5nIHRyYW5zZm9ybS4KICAgICAgICAgbGF5ZXJFeHRlbnQuYW5p
bWF0aW9uQ2F1c2VzRXh0ZW50VW5jZXJ0YWludHkgfD0gbGF5ZXJFeHRlbnQuaGFzVHJhbnNmb3Jt
QW5pbWF0aW9uICYmIGNvbXBvc2l0aW5nU3RhdGUuYW5jZXN0b3JIYXNUcmFuc2Zvcm1BbmltYXRp
b247Ci0KLSAgICAgICAgLy8gQ29tcG9zaXRpbmcgZm9yIGFueSByZWFzb24gZGlzYWJsZXMgYmFj
a2luZyBzaGFyaW5nLgotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVh
bSA8PCAidHVzOiAiIDw8ICZsYXllciA8PCAiIGlzIGNvbXBvc2l0aW5nIC0gZmx1c2hpbmcgc2hh
cmluZyB0byAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRl
IDw8ICIgd2l0aCAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1NoYXJpbmdMYXllcnMu
c2l6ZSgpIDw8ICIgc2hhcmluZyBsYXllcnMiKTsKLSAgICAgICAgYmFja2luZ1NoYXJpbmdTdGF0
ZS5yZXNldEJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpOwogICAgIH0KIAorICAgIGJhY2tpbmdT
aGFyaW5nU3RhdGUudXBkYXRlQmVmb3JlRGVzY2VuZGFudFRyYXZlcnNhbChsYXllciwgbGF5ZXJJ
c0NvbXBvc2l0ZWQpOworCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIExheWVyTGlzdE11dGF0
aW9uRGV0ZWN0b3IgbXV0YXRpb25DaGVja2VyKGxheWVyKTsKICNlbmRpZgpAQCAtMTI0MCwxNyAr
MTI4Nyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp0cmF2ZXJzZVVuY2hhbmdlZFN1
YnRyZWUoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsCiAgICAgaWYgKChjaGlsZFN0YXRlLmNv
bXBvc2l0aW5nQW5jZXN0b3IgPT0gJmxheWVyICYmICFsYXllci5pc1JlbmRlclZpZXdMYXllcigp
KSB8fCBjaGlsZFN0YXRlLmJhY2tpbmdTaGFyaW5nQW5jZXN0b3IgPT0gJmxheWVyKQogICAgICAg
ICBvdmVybGFwTWFwLnBvcENvbXBvc2l0aW5nQ29udGFpbmVyKCk7CiAKLSAgICBpZiAobGF5ZXIu
aXNDb21wb3NpdGVkKCkpCi0gICAgICAgIGxheWVyLmJhY2tpbmcoKS0+Y2xlYXJCYWNraW5nU2hh
cmluZ0xheWVycygpOwotCi0gICAgaWYgKGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3Zp
ZGVyQ2FuZGlkYXRlICYmICZsYXllciA9PSBiYWNraW5nU2hhcmluZ1N0YXRlLmJhY2tpbmdQcm92
aWRlclN0YWNraW5nQ29udGV4dCkgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRp
bmcsIHN0cmVhbSA8PCAmbGF5ZXIgPDwgIiB0dXM6IHBvcHBpbmcgc3RhY2tpbmcgY29udGV4dCAi
IDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyU3RhY2tpbmdDb250ZXh0IDw8
ICIsIGZsdXNoaW5nIGNhbmRpZGF0ZSAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1By
b3ZpZGVyQ2FuZGlkYXRlIDw8ICIgd2l0aCAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2lu
Z1NoYXJpbmdMYXllcnMuc2l6ZSgpIDw8ICIgc2hhcmluZyBsYXllcnMiKTsKLSAgICAgICAgYmFj
a2luZ1NoYXJpbmdTdGF0ZS5yZXNldEJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpOwotICAgIH0g
ZWxzZSBpZiAoIWJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlICYm
IGxheWVyLmlzQ29tcG9zaXRlZCgpKSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVBTShDb21wb3Np
dGluZywgc3RyZWFtIDw8ICZsYXllciA8PCAiIHR1czogY29tcG9zaXRpbmcgLSBzaGFyaW5nIGNh
bmRpZGF0ZSAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRl
IDw8ICIgd2l0aCAiIDw8IGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1NoYXJpbmdMYXllcnMu
c2l6ZSgpIDw8ICIgc2hhcmluZyBsYXllcnMiKTsKLSAgICAgICAgLy8gRmx1c2ggb3V0IGFueSBl
YXJsaWVyIGNhbmRpZGF0ZSBpbiB0aGlzIHN0YWNraW5nIGNvbnRleHQuIFRoaXMgbGF5ZXIgYmVj
b21lcyBhIGNhbmRpZGF0ZS4KLSAgICAgICAgYmFja2luZ1NoYXJpbmdTdGF0ZS5yZXNldEJhY2tp
bmdQcm92aWRlckNhbmRpZGF0ZSgmbGF5ZXIsIGNvbXBvc2l0aW5nU3RhdGUuc3RhY2tpbmdDb250
ZXh0QW5jZXN0b3IpOwotICAgIH0KKyAgICBiYWNraW5nU2hhcmluZ1N0YXRlLnVwZGF0ZUFmdGVy
RGVzY2VuZGFudFRyYXZlcnNhbChsYXllciwgY29tcG9zaXRpbmdTdGF0ZS5zdGFja2luZ0NvbnRl
eHRBbmNlc3Rvcik7CiAKICAgICBkZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0gfD0gYW55RGVzY2Vu
ZGFudEhhczNEVHJhbnNmb3JtIHx8IGxheWVyLmhhczNEVHJhbnNmb3JtKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA1NGNh
NDY2YWU2MTM3NzM3YzJjNzdmNzU2OTkwN2M1ZjIzOWE3NmQxLi4xMjViMzI5MjE2MmVkY2M0MGJh
ZGE1MjU4NjAzNDMzNjM5ZTYxNjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zNjcsOSArMzY3LDkgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIGNvbXBvc2l0aW5nVXBkYXRlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBv
c2l0aW5nVXBkYXRlQ291bnQ7IH0KIAogcHJpdmF0ZToKKyAgICBjbGFzcyBCYWNraW5nU2hhcmlu
Z1N0YXRlOwogICAgIGNsYXNzIE92ZXJsYXBNYXA7CiAgICAgc3RydWN0IENvbXBvc2l0aW5nU3Rh
dGU7Ci0gICAgc3RydWN0IEJhY2tpbmdTaGFyaW5nU3RhdGU7CiAgICAgc3RydWN0IE92ZXJsYXBF
eHRlbnQ7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBvbGljeSBjaGFuZ2VkLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>