<?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>205628</bug_id>
          
          <creation_ts>2019-12-29 07:08:24 -0800</creation_ts>
          <short_desc>Make RuleSet refcounted</short_desc>
          <delta_ts>2019-12-29 09:38:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601755</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-29 07:08:24 -0800</bug_when>
    <thetext>For safety and to support shared ownership.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601756</commentid>
    <comment_count>1</comment_count>
      <attachid>386489</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-29 07:37:08 -0800</bug_when>
    <thetext>Created attachment 386489
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601765</commentid>
    <comment_count>2</comment_count>
      <attachid>386489</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-29 09:18:42 -0800</bug_when>
    <thetext>Comment on attachment 386489
patch

Clearing flags on attachment: 386489

Committed r253935: &lt;https://trac.webkit.org/changeset/253935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601766</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-29 09:18:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601767</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-29 09:19:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/58231798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601769</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-29 09:38:59 -0800</bug_when>
    <thetext>Followup fix in https://trac.webkit.org/r253936</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386489</attachid>
            <date>2019-12-29 07:37:08 -0800</date>
            <delta_ts>2019-12-29 09:18:42 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ruleset-refcounted.patch</filename>
            <type>text/plain</type>
            <size>20594</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNTU2MTFmMDgzNC4uM2YzZTc5NmM5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOS0xMi0yOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWFrZSBSdWxlU2V0IHJlZmNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYyOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBzYWZldHksIGFuZCB0byBzdXBwb3J0IHNo
YXJlZCBvd25lcnNoaXAuCisKKyAgICAgICAgQWxzbyBjb252ZXJ0IGEgYnVuY2ggb2YgcGxhY2Vz
IHRoYXQgdXNlIHJhdyBSdWxlU2V0IHBvaW50ZXJzIHRvIHVzZSBSZWYvUmVmUHRyIGluc3RlYWQu
CisKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ0F1dGhv
clJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
Y29sbGVjdFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTbG90KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMpOgorICAgICAg
ICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmg6CisgICAgICAgICogc3R5bGUvUnVsZVNl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnVsZXMpOgorICAgICAgICAqIHN0eWxlL1J1bGVTZXQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlJ1bGVTZXQ6OlJ1bGVTZXRTZWxlY3RvclBhaXI6OlJ1bGVTZXRTZWxlY3RvclBhaXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjpJbnZhbGlkYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6SW52YWxpZGF0b3I6OmNvbGxlY3RSdWxlSW5mb3JtYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9yOjphZGRUb01hdGNoRWxlbWVudFJ1bGVTZXRz
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmg6CisgICAgICAgICogc3R5bGUv
U3R5bGVTY29wZVJ1bGVTZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1
bGVTZXRzOjpTY29wZVJ1bGVTZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1
bGVTZXRzOjp1cGRhdGVVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGVJZk5lZWRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6aW5pdGlhbGl6ZVVzZXJTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6bWFrZVJ1bGVTZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OnJlc2V0QXV0aG9yU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmVuc3VyZUludmFsaWRhdGlvblJ1bGVTZXRzKToKKyAgICAgICAgKiBz
dHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29w
ZVJ1bGVTZXRzOjphdXRob3JTdHlsZSBjb25zdCk6CisgICAgICAgICogc3R5bGUvVXNlckFnZW50
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVzZXJBZ2VudFN0eWxlOjpsb2Fk
RnVsbERlZmF1bHRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VXNlckFnZW50U3R5
bGU6OmxvYWRTaW1wbGVEZWZhdWx0U3R5bGUpOgorCiAyMDE5LTEyLTIzICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciB0byBzaW1wbGlmeSBicm9hZGNh
c3RpbmcgdG8gYWxsIG1lZGlhIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggODEyN2MyZjNjNTEuLjkwN2I4NzgwYjY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC0yMjgs
NyArMjI4LDcgQEAgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hlc0FueUF1dGhvclJ1
bGVzKCkKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ0F1dGhvclJ1
bGVzKCkKIHsKICAgICB7Ci0gICAgICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3QoJm1fYXV0
aG9yU3R5bGUpOworICAgICAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1fYXV0aG9yU3R5
bGUucHRyKCkpOwogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaFJlcXVlc3QpOwog
ICAgIH0KIApAQCAtMzU0LDggKzM1NCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxl
RGF0YVZlY3Rvcj4gRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RTbG90dGVkUHNlCiAgICAg
bV9tb2RlID0gU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXM7CiAKICAgICAv
LyBNYXRjaCBnbG9iYWwgYXV0aG9yIHJ1bGVzLgotICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVl
c3QoJm1fYXV0aG9yU3R5bGUpOwotICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCgmbV9h
dXRob3JTdHlsZS5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCksIG1hdGNoUmVxdWVzdCk7Cisg
ICAgTWF0Y2hSZXF1ZXN0IG1hdGNoUmVxdWVzdChtX2F1dGhvclN0eWxlLnB0cigpKTsKKyAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoJm1fYXV0aG9yU3R5bGUtPnNsb3R0ZWRQc2V1ZG9F
bGVtZW50UnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKIAogICAgIGlmIChtX21hdGNoZWRSdWxlcy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0zNzUsNyArMzc1LDcgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMoKQogICAgIAogICAgIGNsZWFyTWF0
Y2hlZFJ1bGVzKCk7CiAKLSAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1fdXNlclN0eWxl
KTsKKyAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1fdXNlclN0eWxlLmdldCgpKTsKICAg
ICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaFJlcXVlc3QpOwogCiAgICAgc29ydEFuZFRyYW5z
ZmVyTWF0Y2hlZFJ1bGVzKERlY2xhcmF0aW9uT3JpZ2luOjpVc2VyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCmluZGV4IDE4OGFhOGU2ZDIzLi4zYjI3NTNj
NzE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCkBA
IC0xNTIsMTAgKzE1MiwxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KIAogICAgIGNvbnN0IFJlZjxjb25z
dCBFbGVtZW50PiBtX2VsZW1lbnQ7Ci0gICAgY29uc3QgUnVsZVNldCYgbV9hdXRob3JTdHlsZTsK
LSAgICBjb25zdCBSdWxlU2V0KiBtX3VzZXJTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBjb25zdCBS
dWxlU2V0KiBtX3VzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBjb25z
dCBTZWxlY3RvckZpbHRlciogbV9zZWxlY3RvckZpbHRlciB7IG51bGxwdHIgfTsKKyAgICBSZWY8
Y29uc3QgUnVsZVNldD4gbV9hdXRob3JTdHlsZTsKKyAgICBSZWZQdHI8Y29uc3QgUnVsZVNldD4g
bV91c2VyU3R5bGU7CisgICAgUmVmUHRyPGNvbnN0IFJ1bGVTZXQ+IG1fdXNlckFnZW50TWVkaWFR
dWVyeVN0eWxlOworICAgIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBtX3NlbGVjdG9yRmlsdGVyOwog
CiAgICAgYm9vbCBtX3Nob3VsZEluY2x1ZGVFbXB0eVJ1bGVzIHsgZmFsc2UgfTsKICAgICBib29s
IG1faXNQcmludFN0eWxlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5jcHAKaW5kZXgg
NGUzMzFmZWFhODQuLjVjNmQwYTFkYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmNwcApAQCAt
NDIyLDcgKzQyMiw3IEBAIE9wdGlvbmFsPER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5n
ZXM+IFJ1bGVTZXQ6OmV2YWx1dGVEeW5hbWljTWVkaWFRdWVyeVJ1CiAgICAgICAgIHJldHVybiB7
IH07CiAKICAgICBhdXRvJiBydWxlU2V0ID0gbV9tZWRpYVF1ZXJ5SW52YWxpZGF0aW9uUnVsZVNl
dENhY2hlLmVuc3VyZShjb2xsZWN0ZWRDaGFuZ2VzLmNoYW5nZWRRdWVyeUluZGV4ZXMsIFsmXSB7
Ci0gICAgICAgIGF1dG8gcnVsZVNldCA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICAgICAg
YXV0byBydWxlU2V0ID0gUnVsZVNldDo6Y3JlYXRlKCk7CiAgICAgICAgIGZvciAoYXV0byogZmVh
dHVyZVZlY3RvciA6IGNvbGxlY3RlZENoYW5nZXMucnVsZUZlYXR1cmVzKSB7CiAgICAgICAgICAg
ICBmb3IgKGF1dG8mIGZlYXR1cmUgOiAqZmVhdHVyZVZlY3RvcikKICAgICAgICAgICAgICAgICBy
dWxlU2V0LT5hZGRSdWxlKCpmZWF0dXJlLnJ1bGUsIGZlYXR1cmUuc2VsZWN0b3JJbmRleCwgZmVh
dHVyZS5zZWxlY3Rvckxpc3RJbmRleCk7CkBAIC00MzAsNyArNDMwLDcgQEAgT3B0aW9uYWw8RHlu
YW1pY01lZGlhUXVlcnlFdmFsdWF0aW9uQ2hhbmdlcz4gUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNN
ZWRpYVF1ZXJ5UnUKICAgICAgICAgcmV0dXJuIHJ1bGVTZXQ7CiAgICAgfSkuaXRlcmF0b3ItPnZh
bHVlOwogCi0gICAgcmV0dXJuIHsgeyBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2Vz
OjpUeXBlOjpJbnZhbGlkYXRlU3R5bGUsIHsgcnVsZVNldC5nZXQoKSB9IH0gfTsKKyAgICByZXR1
cm4geyB7IER5bmFtaWNNZWRpYVF1ZXJ5RXZhbHVhdGlvbkNoYW5nZXM6OlR5cGU6OkludmFsaWRh
dGVTdHlsZSwgeyBydWxlU2V0LmNvcHlSZWYoKSB9IH0gfTsKIH0KIAogUnVsZVNldDo6Q29sbGVj
dGVkTWVkaWFRdWVyeUNoYW5nZXMgUnVsZVNldDo6ZXZhbHV0ZUR5bmFtaWNNZWRpYVF1ZXJ5UnVs
ZXMoY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgZXZhbHVhdG9yLCBzaXplX3Qgc3RhcnRJbmRl
eCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCA0ZGMzNzYyZTIzNi4uZTY5MmI2NzAzNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmgKQEAgLTQzLDEwICs0MywxMiBAQCBuYW1lc3BhY2UgU3R5bGUg
ewogY2xhc3MgUmVzb2x2ZXI7CiBjbGFzcyBSdWxlU2V0OwogCit1c2luZyBJbnZhbGlkYXRpb25S
dWxlU2V0VmVjdG9yID0gVmVjdG9yPFJlZlB0cjxjb25zdCBSdWxlU2V0PiwgMT47CisKIHN0cnVj
dCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzIHsKICAgICBlbnVtIGNsYXNzIFR5
cGUgeyBJbnZhbGlkYXRlU3R5bGUsIFJlc2V0U3R5bGUgfTsKICAgICBUeXBlIHR5cGU7Ci0gICAg
VmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBpbnZhbGlkYXRpb25SdWxlU2V0cyB7IH07CisgICAg
SW52YWxpZGF0aW9uUnVsZVNldFZlY3RvciBpbnZhbGlkYXRpb25SdWxlU2V0cyB7IH07CiAKICAg
ICB2b2lkIGFwcGVuZChEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzJiYgb3RoZXIp
CiAgICAgewpAQCAtNTgsMjIgKzYwLDExIEBAIHN0cnVjdCBEeW5hbWljTWVkaWFRdWVyeUV2YWx1
YXRpb25DaGFuZ2VzIHsKICAgICB9OwogfTsKIAotY2xhc3MgUnVsZVNldCB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoUnVsZVNldCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3Mg
UnVsZVNldCA6IHB1YmxpYyBSZWZDb3VudGVkPFJ1bGVTZXQ+IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSdWxlU2V0KTsKIHB1YmxpYzoKLSAgICBzdHJ1Y3QgUnVsZVNldFNlbGVjdG9yUGFp
ciB7Ci0gICAgICAgIFJ1bGVTZXRTZWxlY3RvclBhaXIoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gcnVsZVNldCkKLSAgICAgICAgICAgIDogc2Vs
ZWN0b3Ioc2VsZWN0b3IpLCBydWxlU2V0KFdURk1vdmUocnVsZVNldCkpCi0gICAgICAgIHsgfQot
ICAgICAgICBSdWxlU2V0U2VsZWN0b3JQYWlyKGNvbnN0IFJ1bGVTZXRTZWxlY3RvclBhaXImIHBh
aXIpCi0gICAgICAgICAgICA6IHNlbGVjdG9yKHBhaXIuc2VsZWN0b3IpLCBydWxlU2V0KGNvbnN0
X2Nhc3Q8UnVsZVNldFNlbGVjdG9yUGFpcio+KCZwYWlyKS0+cnVsZVNldC5yZWxlYXNlKCkpCi0g
ICAgICAgIHsgfQotCi0gICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJ1bGVTZXQ+IHJ1bGVTZXQ7Ci0gICAgfTsKKyAgICBzdGF0aWMg
UmVmPFJ1bGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUnVsZVNldCk7IH0K
IAotICAgIFJ1bGVTZXQoKTsKICAgICB+UnVsZVNldCgpOwogCiAgICAgdHlwZWRlZiBWZWN0b3I8
UnVsZURhdGEsIDE+IFJ1bGVEYXRhVmVjdG9yOwpAQCAtMTQ4LDYgKzEzOSw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1RyZWUoKSBj
b25zdCB7IHJldHVybiBtX2hhc0hvc3RQc2V1ZG9DbGFzc1J1bGVzTWF0Y2hpbmdJblNoYWRvd1Ry
ZWU7IH0KIAogcHJpdmF0ZToKKyAgICBSdWxlU2V0KCk7CisKICAgICBlbnVtIGNsYXNzIEFkZFJ1
bGVzTW9kZSB7IE5vcm1hbCwgUmVzb2x2ZXJNdXRhdGlvblNjYW4gfTsKICAgICB2b2lkIGFkZFJ1
bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYsIE1lZGlhUXVlcnlDb2xsZWN0b3ImLCBT
dHlsZTo6UmVzb2x2ZXIqLCBBZGRSdWxlc01vZGUpOwogICAgIHZvaWQgYWRkQ2hpbGRSdWxlcyhj
b25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYsIE1lZGlhUXVlcnlDb2xsZWN0b3Im
LCBTdHlsZTo6UmVzb2x2ZXIqLCBBZGRSdWxlc01vZGUpOwpAQCAtMTgyLDcgKzE3NSw3IEBAIHBy
aXZhdGU6CiAgICAgUnVsZUZlYXR1cmVTZXQgbV9mZWF0dXJlczsKICAgICBib29sIG1faGFzVmll
d3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxEeW5hbWlj
TWVkaWFRdWVyeVJ1bGVzPiBtX2R5bmFtaWNNZWRpYVF1ZXJ5UnVsZXM7Ci0gICAgSGFzaE1hcDxW
ZWN0b3I8c2l6ZV90Piwgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJ1bGVTZXQ+PiBtX21lZGlhUXVl
cnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGU7CisgICAgSGFzaE1hcDxWZWN0b3I8c2l6ZV90Piwg
UmVmPGNvbnN0IFJ1bGVTZXQ+PiBtX21lZGlhUXVlcnlJbnZhbGlkYXRpb25SdWxlU2V0Q2FjaGU7
CiB9OwogCiBpbmxpbmUgY29uc3QgUnVsZVNldDo6UnVsZURhdGFWZWN0b3IqIFJ1bGVTZXQ6OnRh
Z1J1bGVzKGNvbnN0IEF0b21TdHJpbmcmIGtleSwgYm9vbCBpc0hUTUxOYW1lKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcAppbmRleCBmYWM4ZjE5MjY0NS4u
ZDY3MjU2ODgwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxp
ZGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3Bw
CkBAIC04Myw4ICs4Myw4IEBAIHN0YXRpYyBib29sIHNob3VsZERpcnR5QWxsU3R5bGUoY29uc3Qg
VmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+JiBzaGVldHMpCiB9CiAKIEludmFsaWRhdG9yOjpJ
bnZhbGlkYXRvcihjb25zdCBWZWN0b3I8U3R5bGVTaGVldENvbnRlbnRzKj4mIHNoZWV0cywgY29u
c3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgbWVkaWFRdWVyeUV2YWx1YXRvcikKLSAgICA6IG1fb3du
ZWRSdWxlU2V0KG1ha2VVbmlxdWU8UnVsZVNldD4oKSkKLSAgICAsIG1fcnVsZVNldHMoeyBtX293
bmVkUnVsZVNldC5nZXQoKSB9KQorICAgIDogbV9vd25lZFJ1bGVTZXQoUnVsZVNldDo6Y3JlYXRl
KCkpCisgICAgLCBtX3J1bGVTZXRzKHsgbV9vd25lZFJ1bGVTZXQgfSkKICAgICAsIG1fZGlydGll
c0FsbFN0eWxlKHNob3VsZERpcnR5QWxsU3R5bGUoc2hlZXRzKSkKIHsKICAgICBpZiAobV9kaXJ0
aWVzQWxsU3R5bGUpCkBAIC05NywxNyArOTcsMTkgQEAgSW52YWxpZGF0b3I6OkludmFsaWRhdG9y
KGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiYgc2hlZXRzLCBjb25zdCBNZWRpYVEK
ICAgICBtX3J1bGVJbmZvcm1hdGlvbiA9IGNvbGxlY3RSdWxlSW5mb3JtYXRpb24oKTsKIH0KIAot
SW52YWxpZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4m
IHJ1bGVTZXRzKQorSW52YWxpZGF0b3I6OkludmFsaWRhdG9yKGNvbnN0IEludmFsaWRhdGlvblJ1
bGVTZXRWZWN0b3ImIHJ1bGVTZXRzKQogICAgIDogbV9ydWxlU2V0cyhydWxlU2V0cykKICAgICAs
IG1fcnVsZUluZm9ybWF0aW9uKGNvbGxlY3RSdWxlSW5mb3JtYXRpb24oKSkKIHsKICAgICBBU1NF
UlQobV9ydWxlU2V0cy5zaXplKCkpOwogfQogCitJbnZhbGlkYXRvcjo6fkludmFsaWRhdG9yKCkg
PSBkZWZhdWx0OworCiBJbnZhbGlkYXRvcjo6UnVsZUluZm9ybWF0aW9uIEludmFsaWRhdG9yOjpj
b2xsZWN0UnVsZUluZm9ybWF0aW9uKCkKIHsKICAgICBSdWxlSW5mb3JtYXRpb24gaW5mb3JtYXRp
b247Ci0gICAgZm9yIChhdXRvKiBydWxlU2V0IDogbV9ydWxlU2V0cykgeworICAgIGZvciAoYXV0
byYgcnVsZVNldCA6IG1fcnVsZVNldHMpIHsKICAgICAgICAgaWYgKCFydWxlU2V0LT5zbG90dGVk
UHNldWRvRWxlbWVudFJ1bGVzKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgaW5mb3JtYXRpb24u
aGFzU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcyA9IHRydWU7CiAgICAgICAgIGlmICghcnVsZVNl
dC0+aG9zdFBzZXVkb0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkpCkBAIC0xMzcsNyArMTM5LDcgQEAg
SW52YWxpZGF0b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5l
ZWRlZChFbGVtZW50JiBlbGVtZW50LAogCiAgICAgc3dpdGNoIChlbGVtZW50LnN0eWxlVmFsaWRp
dHkoKSkgewogICAgIGNhc2UgU3R5bGU6OlZhbGlkaXR5OjpWYWxpZDogewotICAgICAgICBmb3Ig
KGF1dG8qIHJ1bGVTZXQgOiBtX3J1bGVTZXRzKSB7CisgICAgICAgIGZvciAoYXV0byYgcnVsZVNl
dCA6IG1fcnVsZVNldHMpIHsKICAgICAgICAgICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIHJ1bGVD
b2xsZWN0b3IoZWxlbWVudCwgKnJ1bGVTZXQsIGZpbHRlcik7CiAgICAgICAgICAgICBydWxlQ29s
bGVjdG9yLnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXNJZ25v
cmluZ1ZpcnR1YWxQc2V1ZG9FbGVtZW50cyk7CiAKQEAgLTMyMSw4ICszMjMsOCBAQCB2b2lkIElu
dmFsaWRhdG9yOjppbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVu
dCkKIHZvaWQgSW52YWxpZGF0b3I6OmFkZFRvTWF0Y2hFbGVtZW50UnVsZVNldHMoSW52YWxpZGF0
b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRzJiBtYXRjaEVsZW1lbnRSdWxlU2V0cywgY29uc3QgSW52
YWxpZGF0aW9uUnVsZVNldCYgaW52YWxpZGF0aW9uUnVsZVNldCkKIHsKICAgICBtYXRjaEVsZW1l
bnRSdWxlU2V0cy5lbnN1cmUoaW52YWxpZGF0aW9uUnVsZVNldC5tYXRjaEVsZW1lbnQsIFtdIHsK
LSAgICAgICAgcmV0dXJuIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4geyB9OwotICAgIH0pLml0
ZXJhdG9yLT52YWx1ZS5hcHBlbmQoaW52YWxpZGF0aW9uUnVsZVNldC5ydWxlU2V0LmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIEludmFsaWRhdGlvblJ1bGVTZXRWZWN0b3IgeyB9OworICAgIH0pLml0
ZXJhdG9yLT52YWx1ZS5hcHBlbmQoaW52YWxpZGF0aW9uUnVsZVNldC5ydWxlU2V0LmNvcHlSZWYo
KSk7CiB9CiAKIHZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVXaXRoTWF0Y2hFbGVtZW50UnVs
ZVNldHMoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgTWF0Y2hFbGVtZW50UnVsZVNldHMmIG1hdGNo
RWxlbWVudFJ1bGVTZXRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJ
bnZhbGlkYXRvci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCmlu
ZGV4IGVkMzEzYTI1MDhkLi5lODc1ZWE2NmY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
SW52YWxpZGF0b3IuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJSdWxlRmVhdHVyZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTQwLDEzICs0MSwxNCBAQCBj
bGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKLWNsYXNzIFJ1
bGVTZXQ7CiBzdHJ1Y3QgSW52YWxpZGF0aW9uUnVsZVNldDsKIAogY2xhc3MgSW52YWxpZGF0b3Ig
ewogcHVibGljOgogICAgIEludmFsaWRhdG9yKGNvbnN0IFZlY3RvcjxTdHlsZVNoZWV0Q29udGVu
dHMqPiYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKLSAgICBJbnZhbGlkYXRvcihjb25z
dCBWZWN0b3I8Y29uc3QgUnVsZVNldCosIDE+Jik7CisgICAgSW52YWxpZGF0b3IoY29uc3QgSW52
YWxpZGF0aW9uUnVsZVNldFZlY3RvciYpOworCisgICAgfkludmFsaWRhdG9yKCk7CiAKICAgICBi
b29sIGRpcnRpZXNBbGxTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlydGllc0FsbFN0eWxlOyB9
CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUoRG9jdW1lbnQmKTsKQEAgLTU1LDcgKzU3LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVNoYWRvd1BhcnRzKFNoYWRvd1Jv
b3QmKTsKIAotICAgIHVzaW5nIE1hdGNoRWxlbWVudFJ1bGVTZXRzID0gSGFzaE1hcDxNYXRjaEVs
ZW1lbnQsIFZlY3Rvcjxjb25zdCBSdWxlU2V0KiwgMT4sIFdURjo6SW50SGFzaDxNYXRjaEVsZW1l
bnQ+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1hdGNoRWxlbWVudD4+OworICAgIHVzaW5n
IE1hdGNoRWxlbWVudFJ1bGVTZXRzID0gSGFzaE1hcDxNYXRjaEVsZW1lbnQsIEludmFsaWRhdGlv
blJ1bGVTZXRWZWN0b3IsIFdURjo6SW50SGFzaDxNYXRjaEVsZW1lbnQ+LCBXVEY6OlN0cm9uZ0Vu
dW1IYXNoVHJhaXRzPE1hdGNoRWxlbWVudD4+OwogICAgIHN0YXRpYyB2b2lkIGFkZFRvTWF0Y2hF
bGVtZW50UnVsZVNldHMoSW52YWxpZGF0b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRzJiwgY29uc3Qg
SW52YWxpZGF0aW9uUnVsZVNldCYpOwogICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVXaXRoTWF0
Y2hFbGVtZW50UnVsZVNldHMoRWxlbWVudCYsIGNvbnN0IE1hdGNoRWxlbWVudFJ1bGVTZXRzJik7
CiAKQEAgLTc1LDggKzc3LDggQEAgcHJpdmF0ZToKICAgICB9OwogICAgIFJ1bGVJbmZvcm1hdGlv
biBjb2xsZWN0UnVsZUluZm9ybWF0aW9uKCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNl
dD4gbV9vd25lZFJ1bGVTZXQ7Ci0gICAgY29uc3QgVmVjdG9yPGNvbnN0IFJ1bGVTZXQqLCAxPiBt
X3J1bGVTZXRzOworICAgIFJlZlB0cjxSdWxlU2V0PiBtX293bmVkUnVsZVNldDsKKyAgICBjb25z
dCBJbnZhbGlkYXRpb25SdWxlU2V0VmVjdG9yIG1fcnVsZVNldHM7CiAKICAgICBSdWxlSW5mb3Jt
YXRpb24gbV9ydWxlSW5mb3JtYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuY3BwCmluZGV4IGFkMGNiOTk3YjMwLi42NjcwNTQ3ZTRkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCkBAIC00MSw3ICs0MSw3IEBA
IG5hbWVzcGFjZSBTdHlsZSB7CiBTY29wZVJ1bGVTZXRzOjpTY29wZVJ1bGVTZXRzKFJlc29sdmVy
JiBzdHlsZVJlc29sdmVyKQogICAgIDogbV9zdHlsZVJlc29sdmVyKHN0eWxlUmVzb2x2ZXIpCiB7
Ci0gICAgbV9hdXRob3JTdHlsZSA9IG1ha2VVbmlxdWU8UnVsZVNldD4oKTsKKyAgICBtX2F1dGhv
clN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCk7CiAgICAgbV9hdXRob3JTdHlsZS0+ZGlzYWJsZUF1
dG9TaHJpbmtUb0ZpdCgpOwogfQogCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgU2NvcGVSdWxlU2V0
czo6dXBkYXRlVXNlckFnZW50TWVkaWFRdWVyeVN0eWxlSWZOZWVkZWQoKSBjb25zdAogCiAgICAg
Ly8gTWVkaWEgcXVlcmllcyBvbiB1c2VyIGFnZW50IHNoZWV0IG5lZWQgdG8gZXZhbHVhdGVkIGlu
IGRvY3VtZW50IGNvbnRleHQuIFRoZXkgYmVoYXZlIGxpa2UgYXV0aG9yIHNoZWV0cyBpbiB0aGlz
IHJlc3BlY3QuCiAgICAgYXV0byYgbWVkaWFRdWVyeUV2YWx1YXRvciA9IG1fc3R5bGVSZXNvbHZl
ci5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCk7Ci0gICAgbV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUg
PSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAgbV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUg
PSBSdWxlU2V0OjpjcmVhdGUoKTsKICAgICAKICAgICBtX3VzZXJBZ2VudE1lZGlhUXVlcnlTdHls
ZS0+YWRkUnVsZXNGcm9tU2hlZXQoKlVzZXJBZ2VudFN0eWxlOjptZWRpYVF1ZXJ5U3R5bGVTaGVl
dCwgbnVsbHB0ciwgbWVkaWFRdWVyeUV2YWx1YXRvciwgbV9zdHlsZVJlc29sdmVyKTsKIH0KQEAg
LTg0LDExICs4NCwxMSBAQCB2b2lkIFNjb3BlUnVsZVNldHM6OmluaXRpYWxpemVVc2VyU3R5bGUo
KQogewogICAgIGF1dG8mIGV4dGVuc2lvblN0eWxlU2hlZXRzID0gbV9zdHlsZVJlc29sdmVyLmRv
Y3VtZW50KCkuZXh0ZW5zaW9uU3R5bGVTaGVldHMoKTsKICAgICBhdXRvJiBtZWRpYVF1ZXJ5RXZh
bHVhdG9yID0gbV9zdHlsZVJlc29sdmVyLm1lZGlhUXVlcnlFdmFsdWF0b3IoKTsKLSAgICBhdXRv
IHRlbXBVc2VyU3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAgYXV0byB0ZW1wVXNl
clN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCk7CiAgICAgaWYgKENTU1N0eWxlU2hlZXQqIHBhZ2VV
c2VyU2hlZXQgPSBleHRlbnNpb25TdHlsZVNoZWV0cy5wYWdlVXNlclNoZWV0KCkpCiAgICAgICAg
IHRlbXBVc2VyU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhZ2VVc2VyU2hlZXQtPmNvbnRlbnRz
KCksIG51bGxwdHIsIG1lZGlhUXVlcnlFdmFsdWF0b3IsIG1fc3R5bGVSZXNvbHZlcik7Ci0gICAg
Y29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhleHRlbnNpb25TdHlsZVNoZWV0cy5pbmpl
Y3RlZFVzZXJTdHlsZVNoZWV0cygpLCAqdGVtcFVzZXJTdHlsZSwgbWVkaWFRdWVyeUV2YWx1YXRv
cik7Ci0gICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhleHRlbnNpb25TdHlsZVNo
ZWV0cy5kb2N1bWVudFVzZXJTdHlsZVNoZWV0cygpLCAqdGVtcFVzZXJTdHlsZSwgbWVkaWFRdWVy
eUV2YWx1YXRvcik7CisgICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyhleHRlbnNp
b25TdHlsZVNoZWV0cy5pbmplY3RlZFVzZXJTdHlsZVNoZWV0cygpLCB0ZW1wVXNlclN0eWxlLmdl
dCgpLCBtZWRpYVF1ZXJ5RXZhbHVhdG9yKTsKKyAgICBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxl
U2hlZXRzKGV4dGVuc2lvblN0eWxlU2hlZXRzLmRvY3VtZW50VXNlclN0eWxlU2hlZXRzKCksIHRl
bXBVc2VyU3R5bGUuZ2V0KCksIG1lZGlhUXVlcnlFdmFsdWF0b3IpOwogICAgIGlmICh0ZW1wVXNl
clN0eWxlLT5ydWxlQ291bnQoKSA+IDAgfHwgdGVtcFVzZXJTdHlsZS0+cGFnZVJ1bGVzKCkuc2l6
ZSgpID4gMCkKICAgICAgICAgbV91c2VyU3R5bGUgPSBXVEZNb3ZlKHRlbXBVc2VyU3R5bGUpOwog
fQpAQCAtMTAxLDEyICsxMDEsMTIgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xsZWN0UnVsZXNG
cm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGUKICAgICB9CiB9
CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gbWFrZVJ1bGVTZXQoY29uc3QgVmVj
dG9yPFJ1bGVGZWF0dXJlPiYgcnVsZXMpCitzdGF0aWMgUmVmUHRyPFJ1bGVTZXQ+IG1ha2VSdWxl
U2V0KGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4mIHJ1bGVzKQogewogICAgIHNpemVfdCBzaXpl
ID0gcnVsZXMuc2l6ZSgpOwogICAgIGlmICghc2l6ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgYXV0byBydWxlU2V0ID0gbWFrZVVuaXF1ZTxSdWxlU2V0PigpOworICAgIGF1dG8gcnVs
ZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6
ZTsgKytpKQogICAgICAgICBydWxlU2V0LT5hZGRSdWxlKCpydWxlc1tpXS5ydWxlLCBydWxlc1tp
XS5zZWxlY3RvckluZGV4LCBydWxlc1tpXS5zZWxlY3Rvckxpc3RJbmRleCk7CiAgICAgcnVsZVNl
dC0+c2hyaW5rVG9GaXQoKTsKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVTZXQ+IG1ha2VSdWxlU2V0KGNvbnN0IFZlY3RvcjxSdWxlRmVhdHVyZT4mIHJ1bGVz
KQogdm9pZCBTY29wZVJ1bGVTZXRzOjpyZXNldEF1dGhvclN0eWxlKCkKIHsKICAgICBtX2lzQXV0
aG9yU3R5bGVEZWZpbmVkID0gdHJ1ZTsKLSAgICBtX2F1dGhvclN0eWxlID0gbWFrZVVuaXF1ZTxS
dWxlU2V0PigpOworICAgIG1fYXV0aG9yU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKTsKICAgICBt
X2F1dGhvclN0eWxlLT5kaXNhYmxlQXV0b1Nocmlua1RvRml0KCk7CiB9CiAKQEAgLTIwOCwxMyAr
MjA4LDEzIEBAIHN0YXRpYyBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGVuc3VyZUludmFs
aWRhdGlvblJ1bGVTZXRzKGNvbnN0IEF0b21TdHJpbmcmCiAgICAgICAgIGlmICghZmVhdHVyZXMp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBzdGQ6OmFycmF5PHN0ZDo6
dW5pcXVlX3B0cjxSdWxlU2V0PiwgbWF0Y2hFbGVtZW50Q291bnQ+IG1hdGNoRWxlbWVudEFycmF5
OworICAgICAgICBzdGQ6OmFycmF5PFJlZlB0cjxSdWxlU2V0PiwgbWF0Y2hFbGVtZW50Q291bnQ+
IG1hdGNoRWxlbWVudEFycmF5OwogICAgICAgICBzdGQ6OmFycmF5PFZlY3Rvcjxjb25zdCBDU1NT
ZWxlY3Rvcio+LCBtYXRjaEVsZW1lbnRDb3VudD4gaW52YWxpZGF0aW9uU2VsZWN0b3JBcnJheTsK
ICAgICAgICAgZm9yIChhdXRvJiBmZWF0dXJlIDogKmZlYXR1cmVzKSB7CiAgICAgICAgICAgICBh
dXRvIGFycmF5SW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oKmZlYXR1cmUubWF0Y2hFbGVt
ZW50KTsKICAgICAgICAgICAgIGF1dG8mIHJ1bGVTZXQgPSBtYXRjaEVsZW1lbnRBcnJheVthcnJh
eUluZGV4XTsKICAgICAgICAgICAgIGlmICghcnVsZVNldCkKLSAgICAgICAgICAgICAgICBydWxl
U2V0ID0gbWFrZVVuaXF1ZTxSdWxlU2V0PigpOworICAgICAgICAgICAgICAgIHJ1bGVTZXQgPSBS
dWxlU2V0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUoKmZlYXR1cmUu
cnVsZSwgZmVhdHVyZS5zZWxlY3RvckluZGV4LCBmZWF0dXJlLnNlbGVjdG9yTGlzdEluZGV4KTsK
ICAgICAgICAgICAgIGlmIChmZWF0dXJlLmludmFsaWRhdGlvblNlbGVjdG9yKQogICAgICAgICAg
ICAgICAgIGludmFsaWRhdGlvblNlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0uYXBwZW5kKGZlYXR1
cmUuaW52YWxpZGF0aW9uU2VsZWN0b3IpOwpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBWZWN0
b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGVuc3VyZUludmFsaWRhdGlvblJ1bGVTZXRzKGNvbnN0
IEF0b21TdHJpbmcmCiAgICAgICAgIGF1dG8gaW52YWxpZGF0aW9uUnVsZVNldHMgPSBtYWtlVW5p
cXVlPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0Pj4oKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1hdGNoRWxlbWVudEFycmF5LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICBpZiAobWF0Y2hFbGVtZW50QXJyYXlbaV0pCi0gICAgICAgICAgICAgICAgaW52YWxpZGF0aW9u
UnVsZVNldHMtPmFwcGVuZCh7IHN0YXRpY19jYXN0PE1hdGNoRWxlbWVudD4oaSksIFdURk1vdmUo
bWF0Y2hFbGVtZW50QXJyYXlbaV0pLCBXVEZNb3ZlKGludmFsaWRhdGlvblNlbGVjdG9yQXJyYXlb
aV0pIH0pOworICAgICAgICAgICAgICAgIGludmFsaWRhdGlvblJ1bGVTZXRzLT5hcHBlbmQoeyBz
dGF0aWNfY2FzdDxNYXRjaEVsZW1lbnQ+KGkpLCAqbWF0Y2hFbGVtZW50QXJyYXlbaV0sIFdURk1v
dmUoaW52YWxpZGF0aW9uU2VsZWN0b3JBcnJheVtpXSkgfSk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIGludmFsaWRhdGlvblJ1bGVTZXRzOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmgKaW5kZXggODc5NWU0
ODIyMTAuLjhjY2NmYWFhZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNjb3BlUnVsZVNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVs
ZVNldHMuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBSZXNvbHZlcjsKIAogc3RydWN0IEludmFs
aWRhdGlvblJ1bGVTZXQgewogICAgIE1hdGNoRWxlbWVudCBtYXRjaEVsZW1lbnQ7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFJ1bGVTZXQ+IHJ1bGVTZXQ7CisgICAgUmVmPFJ1bGVTZXQ+IHJ1bGVTZXQ7
CiAgICAgVmVjdG9yPGNvbnN0IENTU1NlbGVjdG9yKj4gaW52YWxpZGF0aW9uU2VsZWN0b3JzOwog
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNBdXRob3JTdHlsZURlZmluZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQXV0
aG9yU3R5bGVEZWZpbmVkOyB9CiAgICAgUnVsZVNldCogdXNlckFnZW50TWVkaWFRdWVyeVN0eWxl
KCkgY29uc3Q7Ci0gICAgUnVsZVNldCYgYXV0aG9yU3R5bGUoKSBjb25zdCB7IHJldHVybiAqbV9h
dXRob3JTdHlsZS5nZXQoKTsgfQorICAgIFJ1bGVTZXQmIGF1dGhvclN0eWxlKCkgY29uc3QgeyBy
ZXR1cm4gKm1fYXV0aG9yU3R5bGU7IH0KICAgICBSdWxlU2V0KiB1c2VyU3R5bGUoKSBjb25zdDsK
ICAgICBjb25zdCBSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMoKSBjb25zdDsKICAgICBSdWxlU2V0
KiBzaWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaWJsaW5nUnVsZVNldC5nZXQoKTsgfQpAQCAt
OTEsMTQgKzkxLDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0UnVsZXNGcm9tVXNlclN0
eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiwgUnVsZVNldCYg
dXNlclN0eWxlLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJik7CiAgICAgdm9pZCB1cGRhdGVV
c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGVJZk5lZWRlZCgpIGNvbnN0OwogCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFJ1bGVTZXQ+IG1fYXV0aG9yU3R5bGU7Ci0gICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9w
dHI8UnVsZVNldD4gbV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGU7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVTZXQ+IG1fdXNlclN0eWxlOworICAgIFJlZlB0cjxSdWxlU2V0PiBtX2F1dGhvclN0
eWxlOworICAgIG11dGFibGUgUmVmUHRyPFJ1bGVTZXQ+IG1fdXNlckFnZW50TWVkaWFRdWVyeVN0
eWxlOworICAgIFJlZlB0cjxSdWxlU2V0PiBtX3VzZXJTdHlsZTsKIAogICAgIFJlc29sdmVyJiBt
X3N0eWxlUmVzb2x2ZXI7CiAgICAgbXV0YWJsZSBSdWxlRmVhdHVyZVNldCBtX2ZlYXR1cmVzOwot
ICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFJ1bGVTZXQ+IG1fc2libGluZ1J1bGVTZXQ7Ci0g
ICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8UnVsZVNldD4gbV91bmNvbW1vbkF0dHJpYnV0ZVJ1
bGVTZXQ7CisgICAgbXV0YWJsZSBSZWZQdHI8UnVsZVNldD4gbV9zaWJsaW5nUnVsZVNldDsKKyAg
ICBtdXRhYmxlIFJlZlB0cjxSdWxlU2V0PiBtX3VuY29tbW9uQXR0cmlidXRlUnVsZVNldDsKICAg
ICBtdXRhYmxlIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZh
bGlkYXRpb25SdWxlU2V0Pj4+IG1fY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsKICAgICBtdXRh
YmxlIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRp
b25SdWxlU2V0Pj4+IG1fYXR0cmlidXRlSW52YWxpZGF0aW9uUnVsZVNldHM7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcAppbmRleCBmNDVlNTU5MzNmOC4uOGYwZjAyNzFl
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1VzZXJBZ2VudFN0eWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Vc2VyQWdlbnRTdHlsZS5jcHAKQEAgLTE3OCwxMSAr
MTc4LDExIEBAIHZvaWQgVXNlckFnZW50U3R5bGU6OmxvYWRGdWxsRGVmYXVsdFN0eWxlKCkKICAg
ICAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIEFTU0VSVCghZGVmYXVsdFN0eWxlKTsKLSAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxl
ID0gbWFrZVVuaXF1ZTxSdWxlU2V0PigpLnJlbGVhc2UoKTsKKyAgICAgICAgZGVmYXVsdFF1aXJr
c1N0eWxlID0gJlJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKICAgICB9CiAKLSAgICBkZWZh
dWx0U3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCkucmVsZWFzZSgpOwotICAgIGRlZmF1bHRQ
cmludFN0eWxlID0gbWFrZVVuaXF1ZTxSdWxlU2V0PigpLnJlbGVhc2UoKTsKKyAgICBkZWZhdWx0
U3R5bGUgPSAmUnVsZVNldDo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIGRlZmF1bHRQcmludFN0
eWxlID0gJlJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKICAgICBtZWRpYVF1ZXJ5U3R5bGVT
aGVldCA9ICZTdHlsZVNoZWV0Q29udGVudHM6OmNyZWF0ZShDU1NQYXJzZXJDb250ZXh0KFVBU2hl
ZXRNb2RlKSkubGVha1JlZigpOwogCiAgICAgLy8gU3RyaWN0LW1vZGUgcnVsZXMuCkBAIC0yMDEs
MTAgKzIwMSwxMCBAQCB2b2lkIFVzZXJBZ2VudFN0eWxlOjpsb2FkU2ltcGxlRGVmYXVsdFN0eWxl
KCkKICAgICBBU1NFUlQoIWRlZmF1bHRTdHlsZSk7CiAgICAgQVNTRVJUKCFzaW1wbGVEZWZhdWx0
U3R5bGVTaGVldCk7CiAKLSAgICBkZWZhdWx0U3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCku
cmVsZWFzZSgpOworICAgIGRlZmF1bHRTdHlsZSA9ICZSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUmVm
KCk7CiAgICAgLy8gVGhlcmUgYXJlIG5vIG1lZGlhLXNwZWNpZmljIHJ1bGVzIGluIHRoZSBzaW1w
bGUgZGVmYXVsdCBzdHlsZS4KICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IGRlZmF1bHRTdHlsZTsK
LSAgICBkZWZhdWx0UXVpcmtzU3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCkucmVsZWFzZSgp
OworICAgIGRlZmF1bHRRdWlya3NTdHlsZSA9ICZSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUmVmKCk7
CiAKICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChzaW1wbGVVc2Vy
QWdlbnRTdHlsZVNoZWV0LCBzdHJsZW4oc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCkpOwogICAg
IGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoKnNpbXBsZURlZmF1bHRTdHlsZVNoZWV0
LCBzY3JlZW5FdmFsKCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>