<?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>178735</bug_id>
          
          <creation_ts>2017-10-24 11:00:34 -0700</creation_ts>
          <short_desc>Add support for unregistering a service worker</short_desc>
          <delta_ts>2017-11-15 12:49:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1363753</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 11:00:34 -0700</bug_when>
    <thetext>Add support for unregistering a service worker:
- https://w3c.github.io/ServiceWorker/#navigator-service-worker-unregister</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363809</commentid>
    <comment_count>1</comment_count>
      <attachid>324701</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 12:23:37 -0700</bug_when>
    <thetext>Created attachment 324701
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363835</commentid>
    <comment_count>2</comment_count>
      <attachid>324708</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 13:07:06 -0700</bug_when>
    <thetext>Created attachment 324708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364330</commentid>
    <comment_count>3</comment_count>
      <attachid>324708</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-25 11:23:57 -0700</bug_when>
    <thetext>Comment on attachment 324708
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=324708&amp;action=review

&gt; Source/WebCore/workers/service/server/SWServerRegistration.cpp:181
&gt; +    // If the origin of jobâs scope url is not jobâs client&apos;s origin, then:

Get rid of some unicode stuff (check-webkit-style used to catch these things)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364337</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-25 11:29:00 -0700</bug_when>
    <thetext>Committed r223964: &lt;https://trac.webkit.org/changeset/223964&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372259</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:49:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568210&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324701</attachid>
            <date>2017-10-24 12:23:37 -0700</date>
            <delta_ts>2017-10-24 13:07:04 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178735_SW_unregister_wip.patch</filename>
            <type>text/plain</type>
            <size>24906</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNjk0ZmVlNjRmMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKQEAgLTgyLDE3ICs4MiwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwog
ICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFj
b250ZXh0IHx8ICFjb250ZXh0LT5zZXNzaW9uSUQoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52
YWxpZFN0YXRlRXJyb3IpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9z
d0Nvbm5lY3Rpb24pCi0gICAgICAgIG1fc3dDb25uZWN0aW9uID0gJlNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKGNvbnRl
eHQtPnNlc3Npb25JRCgpKTsKLQogICAgIGlmIChyZWxhdGl2ZVNjcmlwdFVSTC5pc0VtcHR5KCkp
IHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlM
aXRlcmFsKCJzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGJlIGNhbGxlZCB3aXRoIGFu
IGVtcHR5IHNjcmlwdCBVUkwiKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
ICghbV9zd0Nvbm5lY3Rpb24pCisgICAgICAgIG1fc3dDb25uZWN0aW9uID0gJlNlcnZpY2VXb3Jr
ZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vzc2lvbklEKCkpOworCiAgICAgU2VydmljZVdv
cmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+aWRlbnRpZmllcigpKTsKIAogICAg
IGpvYkRhdGEuc2NyaXB0VVJMID0gY29udGV4dC0+Y29tcGxldGVVUkwocmVsYXRpdmVTY3JpcHRV
UkwpOwpAQCAtMTM2LDYgKzEzNywzMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFk
ZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwogICAgIHNj
aGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2I6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9taXNl
KSwgV1RGTW92ZShqb2JEYXRhKSkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6
OnJlbW92ZVJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHNjb3BlVVJMLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlc3Npb25JRCgpLmlzVmFs
aWQoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcikpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCFtX3N3Q29ubmVjdGlvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVF
cnJvcikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU2VydmljZVdvcmtlckpvYkRh
dGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+aWRlbnRpZmllcigpKTsKKyAgICBqb2JEYXRhLmNs
aWVudENyZWF0aW9uVVJMID0gY29udGV4dC0+dXJsKCk7CisgICAgam9iRGF0YS50b3BPcmlnaW4g
PSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihjb250ZXh0LT50b3BPcmln
aW4oKSk7CisgICAgam9iRGF0YS50eXBlID0gU2VydmljZVdvcmtlckpvYlR5cGU6OlVucmVnaXN0
ZXI7CisgICAgam9iRGF0YS5zY29wZVVSTCA9IHNjb3BlVVJMOworCisgICAgc2NoZWR1bGVKb2Io
U2VydmljZVdvcmtlckpvYjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3Zl
KGpvYkRhdGEpKSk7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVK
b2IoUmVmPFNlcnZpY2VXb3JrZXJKb2I+JiYgam9iKQogewogICAgIEFTU0VSVChtX3N3Q29ubmVj
dGlvbik7CkBAIC0xODYsNiArMjExLDI0IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwKICAgICBq
b2IucHJvbWlzZSgpLnJlc29sdmU8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24+PihyZWdpc3RyYXRpb24uZ2V0KCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmpvYlJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KFNlcnZpY2VXb3JrZXJKb2Im
IGpvYiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3sKKyAgICBTY29wZUd1YXJkIGd1YXJk
KFt0aGlzLCAmam9iXSB7CisgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOworICAgIH0pOworCisg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JS
ZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdCBjYWxsZWQgYnV0IHRoZSBjb250YWluZXJz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZ29uZSIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwcm9wZXIgc2VsZWN0aW9uIG9mIHNlcnZpY2Ug
d29ya2Vycy4KKyAgICBjb250ZXh0LT5zZXRTZWxlY3RlZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KDApOworCisgICAgam9iLnByb21pc2UoKS5yZXNvbHZlPElETEJvb2xlYW4+KHVucmVnaXN0cmF0
aW9uUmVzdWx0KTsKK30KKwogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzdGFydFNjcmlw
dEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKIHsKICAgICBMT0coU2VydmljZVdv
cmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBzdGFydGluZyBzY3JpcHQgZmV0Y2ggZm9y
IGpvYiAlIiBQUkl1NjQsIHRoaXMsIGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCmluZGV4IDE1ZjU2ZDFmZWUyLi5jMzg1ZmM2YTE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC02
MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBSZWFkeVByb21pc2UmIHJlYWR5KCkgeyByZXR1cm4g
bV9yZWFkeVByb21pc2U7IH0KIAogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmlu
ZyYgc2NyaXB0VVJMLCBjb25zdCBSZWdpc3RyYXRpb25PcHRpb25zJiwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CisgICAgdm9pZCByZW1vdmVSZWdpc3RyYXRpb24oY29uc3QgVVJMJiBzY29wZVVS
TCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb24oY29u
c3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogICAgIHZvaWQgZ2V0UmVn
aXN0cmF0aW9ucyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIApAQCAtNzMsNiArNzQsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBFeGNlcHRpb24mKSBmaW5hbDsKICAgICB2b2lkIGpvYlJlc29sdmVkV2l0aFJl
Z2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEmJikgZmluYWw7CisgICAgdm9pZCBqb2JSZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3Vs
dChTZXJ2aWNlV29ya2VySm9iJiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkgZmluYWw7CiAg
ICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSBmaW5hbDsK
ICAgICB2b2lkIGpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29u
c3QgU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZp
Y2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggNjIw
MjRiOGQ5MDEuLmMzNWQzNTcyMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBAIC02Niw2ICs2NiwxNSBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJKb2I6OnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YSYmCiAgICAgbV9jbGllbnQtPmpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlv
bigqdGhpcywgV1RGTW92ZShkYXRhKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6cmVz
b2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQoYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkK
K3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOworICAg
IEFTU0VSVCghbV9jb21wbGV0ZWQpOworCisgICAgbV9jb21wbGV0ZWQgPSB0cnVlOworICAgIG1f
Y2xpZW50LT5qb2JSZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdCgqdGhpcywgdW5yZWdp
c3RyYXRpb25SZXN1bHQpOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnN0YXJ0U2NyaXB0
RmV0Y2goKQogewogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRocmVh
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckpvYi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJK
b2IuaAppbmRleCAwZWI3YjkzMTUxYy4uMGM4ZDhkNGQ3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaApAQCAtNTYsNiArNTYsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGZhaWxlZFdpdGhFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9u
Jik7CiAgICAgdm9pZCByZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEmJik7CisgICAgdm9pZCByZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3Vs
dChib29sKTsKICAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goKTsKIAogICAgIFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2pvYkRhdGE7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5o
CmluZGV4IDg1MmJmYzNiN2JkLi44NTg1NzFiNjBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCkBAIC00MSw2
ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0
aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBFeGNlcHRpb24mKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBqb2JS
ZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdChTZXJ2aWNlV29ya2VySm9iJiwgYm9vbCB1
bnJlZ2lzdHJhdGlvblJlc3VsdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZl
dGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYkZp
bmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaAppbmRleCBhNmQzNzFhYTgy
OS4uYzZjOTkzNjI5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oCkBAIC03Myw2ICs3Myw4IEBAIHZvaWQgU2Vydmlj
ZVdvcmtlckpvYkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGNhc2Ug
U2VydmljZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyOgogICAgICAgICBlbmNvZGVyIDw8IHJlZ2lz
dHJhdGlvbk9wdGlvbnM7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VydmljZVdvcmtlckpv
YlR5cGU6OlVucmVnaXN0ZXI6CisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApAQCAtMTEwLDYg
KzExMiw4IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGE+IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoam9iRGF0YS0+cmVnaXN0cmF0aW9uT3B0aW9ucykpCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JU
eXBlOjpVbnJlZ2lzdGVyOgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICByZXR1cm4gam9i
RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VySm9iVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJKb2JUeXBlLmgKaW5kZXggNDAyM2ZhYmU1NDkuLjA3OWYzZTg0OTU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYlR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYlR5cGUu
aApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgU2Vy
dmljZVdvcmtlckpvYlR5cGUgewogICAgIFJlZ2lzdGVyLAorICAgIFVucmVnaXN0ZXIsCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggY2Rh
ZTRiODdiMmIuLjI1OTE5YWIxYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yNyw5
ICsyNywyNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJDb250YWluZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgIldvcmtlck5hdmlnYXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyKiBjb250YWluZXJGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgTmF2aWdhdG9yQmFzZSog
bmF2aWdhdG9yID0gbnVsbHB0cjsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7Cisg
ICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuZG9t
V2luZG93KCkpCisgICAgICAgICAgICBuYXZpZ2F0b3IgPSB3aW5kb3ctPm5hdmlnYXRvcigpOwor
ICAgIH0gZWxzZQorICAgICAgICBuYXZpZ2F0b3IgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLm5hdmlnYXRvcigpOworCisgICAgcmV0dXJuIG5hdmlnYXRvciA/IG5hdmln
YXRvci0+c2VydmljZVdvcmtlcigpIDogbnVsbHB0cjsKK30KKwogU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJlZ2lzdHJhdGlvbkRh
dGEpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3JlZ2lzdHJhdGlv
bkRhdGEoV1RGTW92ZShyZWdpc3RyYXRpb25EYXRhKSkKQEAgLTY5LDcgKzg3LDIwIEBAIHZvaWQg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBkYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSkKIAogdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhj
ZXB0aW9uKE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnVucmVnaXN0ZXIgbm90IHlldCBpbXBsZW1lbnRlZCIpKSk7CisgICAgYXV0byog
Y29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChF
eGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8qIGNvbnRhaW5lciA9IGNvbnRhaW5lckZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KmNvbnRleHQpOworICAgIGlmICghY29udGFpbmVyKSB7CisgICAgICAgIHByb21pc2UtPnJlamVj
dChFeGNlcHRpb24oSW52YWxpZFN0YXRlRXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGNvbnRhaW5lci0+cmVtb3ZlUmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uRGF0YS5z
Y29wZVVSTCwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dD
bGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA1ZDM0MzNlOGJhZC4uOGU5M2M1ZTA2YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBTV0NsaWVudENvbm5l
Y3Rpb246OmpvYlJlamVjdGVkSW5TZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3Qg
RXhjZXAKICAgICBqb2ItPmZhaWxlZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2Vw
dGlvbigpKTsKIH0KIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlc29sdmVkSW5TZXJ2
ZXIodWludDY0X3Qgam9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
JiByZWdpc3RyYXRpb25EYXRhKQordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlv
bkpvYlJlc29sdmVkSW5TZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQogewogICAgIGF1dG8gam9iID0g
bV9zY2hlZHVsZWRKb2JzLnRha2Uoam9iSWRlbnRpZmllcik7CiAgICAgaWYgKCFqb2IpIHsKQEAg
LTgyLDYgKzgyLDE3IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZXNvbHZlZEluU2Vy
dmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrCiAgICAgam9iLT5yZXNvbHZl
ZFdpdGhSZWdpc3RyYXRpb24oV1RGTW92ZShyZWdpc3RyYXRpb25EYXRhKSk7CiB9CiAKK3ZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIodWlu
dDY0X3Qgam9iSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3sKKyAgICBh
dXRvIGpvYiA9IG1fc2NoZWR1bGVkSm9icy50YWtlKGpvYklkZW50aWZpZXIpOworICAgIGlmICgh
am9iKSB7CisgICAgICAgIExPR19FUlJPUigiSm9iICUiIFBSSXU2NCAiIHJlc29sdmVkIGluIHNl
cnZlciwgYnV0IHdhcyBub3QgZm91bmQiLCBqb2JJZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGpvYi0+cmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQodW5y
ZWdpc3RyYXRpb25SZXN1bHQpOworfQorCiB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRT
Y3JpcHRGZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyKQogewogICAgIGF1dG8g
am9iID0gbV9zY2hlZHVsZWRKb2JzLmdldChqb2JJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IDljOGExNzBmMTJkLi5jZmY0ZjJiNzhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5o
CkBAIC01NCw3ICs1NCw4IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25z
dCBFeGNlcHRpb25EYXRhJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JSZXNvbHZlZElu
U2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJ
blNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0cmF0aW9uSm9iUmVzb2x2
ZWRJblNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBib29sIHVucmVnaXN0cmF0aW9uUmVz
dWx0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIo
dWludDY0X3Qgam9iSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDA3YWU1ZmFlYTRl
Li4yZWZkNmQyN2M1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTEyMSwxNCArMTIxLDIzIEBAIHZvaWQgU1dTZXJ2ZXI6
OnJlamVjdEpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgRXhj
ZXB0aW9uRGF0CiAgICAgY29ubmVjdGlvbi0+cmVqZWN0Sm9iSW5DbGllbnQoam9iRGF0YS5pZGVu
dGlmaWVyKCksIGV4Y2VwdGlvbkRhdGEpOwogfQogCi12b2lkIFNXU2VydmVyOjpyZXNvbHZlSm9i
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSYgcmVnaXN0cmF0aW9uRGF0YSkKK3ZvaWQgU1dTZXJ2ZXI6OnJlc29s
dmVSZWdpc3RhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lzdHJhdGlvbkRhdGEpCiB7CiAg
ICAgTE9HKFNlcnZpY2VXb3JrZXIsICJSZXNvbHZlZCBTZXJ2aWNlV29ya2VyIGpvYiAlIiBQUkl1
NjQgIi0lIiBQUkl1NjQgIiBpbiBzZXJ2ZXIgd2l0aCByZWdpc3RyYXRpb24gJSIgUFJJdTY0LCBq
b2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdp
c3RyYXRpb25EYXRhLmlkZW50aWZpZXIpOwogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5l
Y3Rpb25zLmdldChqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwogICAgIGlmICghY29u
bmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+cmVzb2x2ZUpvYklu
Q2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25EYXRhKTsKKyAgICBjb25u
ZWN0aW9uLT5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVy
KCksIHJlZ2lzdHJhdGlvbkRhdGEpOworfQorCit2b2lkIFNXU2VydmVyOjpyZXNvbHZlVW5yZWdp
c3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgYm9vbCB1bnJlZ2lz
dHJhdGlvblJlc3VsdCkKK3sKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5n
ZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rpb24tPnJlc29sdmVVbnJlZ2lzdHJhdGlv
bkpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25LZXksIHVucmVn
aXN0cmF0aW9uUmVzdWx0KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6c3RhcnRTY3JpcHRGZXRjaChj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCAxYzFhMmM5MmU4Ni4uNTJm
YzczNzY2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmgKQEAgLTY3LDcgKzY3LDggQEAgcHVibGljOgogICAgIHByaXZhdGU6CiAgICAg
ICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgRXhj
ZXB0aW9uRGF0YSYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVKb2JJbkNsaWVu
dCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25Kb2JJ
bkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVVbnJlZ2lzdHJh
dGlvbkpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHJlZ2lzdHJhdGlvblJlc3VsdCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50
aWZpZXIpID0gMDsKIAogICAgICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgaG9zdCBXZWJQcm9j
ZXNzCkBAIC04MSw3ICs4Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVKb2IoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKICAgICB2b2lkIHJlamVjdEpvYihjb25zdCBTZXJ2
aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKLSAgICB2b2lkIHJlc29s
dmVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgcmVzb2x2ZVJlZ2lzdGF0aW9uSm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
KTsKKyAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVn
aXN0cmF0aW9uUmVzdWx0KTsKICAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZvaWQgcG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCAwZDIxNzhlN2M0Yy4uNDlmNTVmNTY5
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQg
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KFNXU2VydmVy
OjpDb25uZWN0aW9uJiwgY29uCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY3JpcHRDb250
ZXh0U3RhcnRlZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgd29ya2VySUQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHdvcmtlcklEKTsKLSAg
ICByZXNvbHZlQ3VycmVudEpvYihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSB7IG1fcmVn
aXN0cmF0aW9uS2V5LCBpZGVudGlmaWVyLCBtX3Njb3BlVVJMLCBtX3VwZGF0ZVZpYUNhY2hlLnZh
bHVlX29yKFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZTo6SW1wb3J0cykgfSk7CisgICAgcmVz
b2x2ZUN1cnJlbnRSZWdpc3RyYXRpb25Kb2IoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEg
eyBtX3JlZ2lzdHJhdGlvbktleSwgaWRlbnRpZmllciwgbV9zY29wZVVSTCwgbV91cGRhdGVWaWFD
YWNoZS52YWx1ZV9vcihTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6OkltcG9ydHMpIH0pOwog
fQogCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydE5leHRKb2IoKQpAQCAtMTEyLDYg
KzExMiw5IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0TmV4dEpvYigpCiAgICAg
Y2FzZSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6UmVnaXN0ZXI6CiAgICAgICAgIG1fc2VydmVyLnBv
c3RUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9u
OjpydW5SZWdpc3RlckpvYiwgKm1fY3VycmVudEpvYikpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VW5yZWdpc3RlcjoKKyAgICAgICAgbV9zZXJ2ZXIu
cG9zdFRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OnJ1blVucmVnaXN0ZXJKb2IsICptX2N1cnJlbnRKb2IpKTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNzMsNiArMTc2
LDI3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blJlZ2lzdGVySm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiAgICAgcnVuVXBkYXRlSm9iKGpvYik7CiB9CiAKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmIGpvYikKK3sKKyAgICAvLyBJZiB0aGUgb3JpZ2luIG9mIGpvYuKAmXMgc2Nv
cGUgdXJsIGlzIG5vdCBqb2LigJlzIGNsaWVudCdzIG9yaWdpbiwgdGhlbjoKKyAgICBpZiAoIXBy
b3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChqb2Iuc2NvcGVVUkwsIGpvYi5jbGllbnRDcmVhdGlv
blVSTCkpCisgICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4
Y2VwdGlvbkRhdGEgeyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIk9yaWdpbiBvZiBzY29w
ZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIGNsaWVudCdzIG9yaWdpbiIpIH0pOworCisgICAgaWYg
KGlzRW1wdHkoKSkgeworICAgICAgICAvLyBJbnZva2UgUmVzb2x2ZSBKb2IgUHJvbWlzZSB3aXRo
IGpvYiBhbmQgZmFsc2UuCisgICAgICAgIHJlc29sdmVXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHRP
bk1haW5UaHJlYWQoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gU2V0
IHJlZ2lzdHJhdGlvbuKAmXMgdW5pbnN0YWxsaW5nIGZsYWcuCisgICAgbV91bmluc3RhbGxpbmcg
PSB0cnVlOworCisgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5k
IHRydWUuCisgICAgcmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdE9uTWFpblRocmVhZCh0
cnVlKTsKKworICAgIC8vIEZJWE1FOiBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiB3aXRo
IHJlZ2lzdHJhdGlvbi4KK30KKwogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cnVuVXBkYXRl
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiB7CiAgICAgLy8gSWYgcmVnaXN0
cmF0aW9uIGlzIG51bGwgKGluIG91ciBwYXJsYW5jZSAiZW1wdHkiKSBvciByZWdpc3RyYXRpb27i
gJlzIHVuaW5zdGFsbGluZyBmbGFnIGlzIHNldCwgdGhlbjoKQEAgLTE5OCw3ICsyMjIsMTMgQEAg
dm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVh
ZChjb25zdCBFeGNlcHRpb25EYXRhJgogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2
ZVdpdGhSZWdpc3RyYXRpb25Pbk1haW5UaHJlYWQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVDdXJyZW50Sm9iLCBkYXRhKCkp
KTsKKyAgICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhp
cywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudFJlZ2lzdHJhdGlvbkpvYiwg
ZGF0YSgpKSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVXaXRoVW5y
ZWdpc3RyYXRpb25SZXN1bHRPbk1haW5UaHJlYWQoYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBtX3NlcnZlci5wb3N0VGFza1Jl
cGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpy
ZXNvbHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9iLCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkpOwog
fQogCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRnJvbU1haW5U
aHJlYWQoKQpAQCAtMjE3LDEyICsyNDcsMjQgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
cmVqZWN0Q3VycmVudEpvYihjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogICAg
IGZpbmlzaEN1cnJlbnRKb2IoKTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVz
b2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIGRhdGEp
Cit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudFJlZ2lzdHJhdGlvbkpv
Yihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYgZGF0YSkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRKb2IpOworICAgIEFTU0VS
VChtX2N1cnJlbnRKb2ItPnR5cGUgPT0gU2VydmljZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyKTsK
KworICAgIG1fc2VydmVyLnJlc29sdmVSZWdpc3RhdGlvbkpvYigqbV9jdXJyZW50Sm9iLCBkYXRh
KTsKKworICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKK30KKwordm9pZCBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6cmVzb2x2ZUN1cnJlbnRVbnJlZ2lzdHJhdGlvbkpvYihib29sIHVucmVnaXN0cmF0aW9u
UmVzdWx0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY3Vy
cmVudEpvYik7CisgICAgQVNTRVJUKG1fY3VycmVudEpvYi0+dHlwZSA9PSBTZXJ2aWNlV29ya2Vy
Sm9iVHlwZTo6VW5yZWdpc3Rlcik7CiAKLSAgICBtX3NlcnZlci5yZXNvbHZlSm9iKCptX2N1cnJl
bnRKb2IsIGRhdGEpOworICAgIG1fc2VydmVyLnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYigqbV9j
dXJyZW50Sm9iLCBtX3JlZ2lzdHJhdGlvbktleSwgdW5yZWdpc3RyYXRpb25SZXN1bHQpOwogCiAg
ICAgZmluaXNoQ3VycmVudEpvYigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IGMy
NjBjNDlmNTcwLi5iOWJhM2JlMmI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtNTgs
MTUgKzU4LDE4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBqb2JUaW1lckZpcmVkKCk7CiAgICAgdm9p
ZCBzdGFydE5leHRKb2IoKTsKICAgICB2b2lkIHJlamVjdEN1cnJlbnRKb2IoY29uc3QgRXhjZXB0
aW9uRGF0YSYpOwotICAgIHZvaWQgcmVzb2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJlc29sdmVDdXJyZW50UmVnaXN0cmF0aW9u
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7CisgICAgdm9pZCByZXNv
bHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9iKGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpOwog
ICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRKb2IoKTsKICAgICB2b2lkIGZpbmlz
aEN1cnJlbnRKb2IoKTsKIAogICAgIHZvaWQgcnVuUmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmKTsKICAgICB2b2lkIHJ1blVwZGF0ZUpvYihjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYpOwogCiAgICAgdm9pZCByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKGNv
bnN0IEV4Y2VwdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25N
YWluVGhyZWFkKCk7CisgICAgdm9pZCByZXNvbHZlV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0T25N
YWluVGhyZWFkKGJvb2wpOwogICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZyb21NYWluVGhyZWFk
KCk7CiAgICAgYm9vbCBpc0VtcHR5KCk7CiAgICAgU1dTZXJ2ZXJXb3JrZXIqIGdldE5ld2VzdFdv
cmtlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmNThj
MTc1OWJhNi4uYjY0M2U2YTM0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwCkBAIC03NSwxMSArNzUsMTkgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJl
amVjdEpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2UKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OkpvYlJlamVjdGVkSW5TZXJ2ZXIo
am9iSWRlbnRpZmllciwgZXhjZXB0aW9uRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6cmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiByZWdpc3RyYXRpb25EYXRhKQordm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudCh1aW50
NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYg
cmVnaXN0cmF0aW9uRGF0YSkKIHsKICAgICBhdXRvIG9yaWdpbiA9IHJlZ2lzdHJhdGlvbkRhdGEu
a2V5LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpOwogICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVTV09yaWdpblN0b3JlRm9yU2Vzc2lvbihtX3Nlc3Npb25JRCkuYWRkKG9y
aWdpbik7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpKb2JSZXNv
bHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEpKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvbkpvYlJlc29sdmVk
SW5TZXJ2ZXIoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uRGF0YSkpOworfQorCit2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQodWlu
dDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYg
cmVnaXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQoreworICAgIGF1dG8g
b3JpZ2luID0gcmVnaXN0cmF0aW9uS2V5LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpOworICAg
IGlmIChhdXRvKiBzdG9yZSA9IFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5zd09yaWdpblN0
b3JlRm9yU2Vzc2lvbihtX3Nlc3Npb25JRCkpCisgICAgICAgIHN0b3JlLT5yZW1vdmUob3JpZ2lu
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlVucmVnaXN0cmF0
aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCB1bnJlZ2lzdHJhdGlvblJlc3Vs
dCkpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaElu
Q2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmgKaW5kZXggN2NjNzZiZGM5YWQuLjExZTFkYTcwZTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC02MCw3ICs2MCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgLy8gSW1wbGVtZW50IFNXU2VydmVyOjpDb25uZWN0aW9uIChNZXNzYWdlcyB0byB0aGUg
Y2xpZW50IFdlYlByb2Nlc3MpCiAgICAgdm9pZCByZWplY3RKb2JJbkNsaWVudCh1aW50NjRfdCBq
b2JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7Ci0gICAg
dm9pZCByZXNvbHZlSm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJl
c29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpIGZpbmFsOworICAgIHZv
aWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgdW5y
ZWdpc3RyYXRpb25SZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEluQ2xp
ZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgdm9pZCBzdGFydEZldGNo
KHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDg4ZmVh
MDA2ZjQ2Li4xMTU1ZDFiYWFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMjUsNyArMjUsOCBAQAogbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsK
ICAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3NhZ2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBk
aXJlY3RseSBieSBXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbgogICAgIEpvYlJlamVjdGVk
SW5TZXJ2ZXIodWludDY0X3QgaWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEgZXhjZXB0aW9uKQotICAgIEpvYlJlc29sdmVkSW5TZXJ2ZXIodWludDY0X3QgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIHJlZ2lzdHJh
dGlvbikKKyAgICBSZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90IGlkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSByZWdp
c3RyYXRpb24pCisgICAgVW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90
IGlkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCiAgICAgU3RhcnRTY3JpcHRG
ZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyKQogCiAgICAgU2V0U1dPcmlnaW5U
YWJsZVNoYXJlZE1lbW9yeShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324708</attachid>
            <date>2017-10-24 13:07:06 -0700</date>
            <delta_ts>2017-10-25 11:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178735-20171024130705.patch</filename>
            <type>text/plain</type>
            <size>35248</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI5ZTVlYzgyNDZkYjVh
YWMyZTg0NDY4NGYwZTY2ZTc4MGNjNmM1NS4uMTdiZmYxNmQxMWQyN2VmMTU5Mzg3OWQ3ZThjY2U5
NmU4Y2E2MjZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTEwLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVu
cmVnaXN0ZXJpbmcgYSBzZXJ2aWNlIHdvcmtlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVucmVnaXN0ZXJpbmcgYSBzZXJ2
aWNlIHdvcmtlcjoKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtl
ci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXVucmVnaXN0ZXIKKworICAgICAgICBUZXN0OiBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy11bnJlZ2lzdGVyLmh0dHBzLmh0bWwKKwor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3Ry
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVz
b2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6
cmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2JDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckpvYkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGE6OmRl
Y29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JUeXBlLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbmVyRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvbkpv
YlJlc29sdmVkSW5TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9u
Ojp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
cmVzb2x2ZVJlZ2lzdGF0aW9uSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNv
bHZlVW5yZWdpc3RyYXRpb25Kb2IpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVn
aXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpz
Y3JpcHRDb250ZXh0U3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6c3RhcnROZXh0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0
aW9uOjpydW5VbnJlZ2lzdGVySm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpyZXNvbHZlV2l0aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJl
c3VsdE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6cmVzb2x2ZUN1cnJlbnRSZWdpc3RyYXRpb25Kb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVDdXJyZW50VW5yZWdpc3RyYXRpb25Kb2IpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwog
MjAxNy0xMC0yNCAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1gxMV0gV2luZHkuY29tIHNob3dzIGFsd2F5cyBzdHJhaWdodCB3aW5kIGxpbmVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDJmMjkzMTY0Y2Q4YTgyNDFjOTBjNzMxNjZiNjFjM2IwNDIzMjgzNWEuLjlhNWQ2
MzE2ZjExNzIyMTQ3ZTU4OTljZjczODVlNDM1OTg3YjJiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTctMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgdW5yZWdpc3RlcmluZyBhIHNlcnZpY2Ugd29ya2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg3MzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgdW5yZWdpc3RlcmluZyBhIHNlcnZpY2Ugd29ya2VyOgorICAgICAgICAtIGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNuYXZpZ2F0b3Itc2VydmljZS13b3JrZXItdW5yZWdp
c3RlcgorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQpOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0xMC0yNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBnZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMu
cGwgc2hvdWxkIGFsc28gc2NhbiBkZXJpdmVkIHNvdXJjZXMgaW4gV2ViS2l0IGZyYW1ld29yawpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuY3BwCmluZGV4IGU4MzBhOGRhNzNmOTBkN2VlMjMyMGZmYjAyYWRlODFjZDEz
MWY5NzkuLjllNTRmNjMyMGI2NGU0YzBkZWM1ZDFjMmQzMDhhNTEzMjUxYzRmMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKQEAgLTgyLDE3ICs4MiwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwog
ICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFj
b250ZXh0IHx8ICFjb250ZXh0LT5zZXNzaW9uSUQoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52
YWxpZFN0YXRlRXJyb3IpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9z
d0Nvbm5lY3Rpb24pCi0gICAgICAgIG1fc3dDb25uZWN0aW9uID0gJlNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKGNvbnRl
eHQtPnNlc3Npb25JRCgpKTsKLQogICAgIGlmIChyZWxhdGl2ZVNjcmlwdFVSTC5pc0VtcHR5KCkp
IHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlM
aXRlcmFsKCJzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGJlIGNhbGxlZCB3aXRoIGFu
IGVtcHR5IHNjcmlwdCBVUkwiKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
ICghbV9zd0Nvbm5lY3Rpb24pCisgICAgICAgIG1fc3dDb25uZWN0aW9uID0gJlNlcnZpY2VXb3Jr
ZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vzc2lvbklEKCkpOworCiAgICAgU2VydmljZVdv
cmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+aWRlbnRpZmllcigpKTsKIAogICAg
IGpvYkRhdGEuc2NyaXB0VVJMID0gY29udGV4dC0+Y29tcGxldGVVUkwocmVsYXRpdmVTY3JpcHRV
UkwpOwpAQCAtMTM2LDYgKzEzNywzMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFk
ZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwogICAgIHNj
aGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2I6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9taXNl
KSwgV1RGTW92ZShqb2JEYXRhKSkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6
OnJlbW92ZVJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHNjb3BlVVJMLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlc3Npb25JRCgpLmlzVmFs
aWQoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcikpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCFtX3N3Q29ubmVjdGlvbikgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbihJbnZhbGlkU3RhdGVF
cnJvcikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU2VydmljZVdvcmtlckpvYkRh
dGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+aWRlbnRpZmllcigpKTsKKyAgICBqb2JEYXRhLmNs
aWVudENyZWF0aW9uVVJMID0gY29udGV4dC0+dXJsKCk7CisgICAgam9iRGF0YS50b3BPcmlnaW4g
PSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihjb250ZXh0LT50b3BPcmln
aW4oKSk7CisgICAgam9iRGF0YS50eXBlID0gU2VydmljZVdvcmtlckpvYlR5cGU6OlVucmVnaXN0
ZXI7CisgICAgam9iRGF0YS5zY29wZVVSTCA9IHNjb3BlVVJMOworCisgICAgc2NoZWR1bGVKb2Io
U2VydmljZVdvcmtlckpvYjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3Zl
KGpvYkRhdGEpKSk7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVK
b2IoUmVmPFNlcnZpY2VXb3JrZXJKb2I+JiYgam9iKQogewogICAgIEFTU0VSVChtX3N3Q29ubmVj
dGlvbik7CkBAIC0xODYsNiArMjExLDI1IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwKICAgICBq
b2IucHJvbWlzZSgpLnJlc29sdmU8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24+PihyZWdpc3RyYXRpb24uZ2V0KCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmpvYlJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KFNlcnZpY2VXb3JrZXJKb2Im
IGpvYiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3sKKyAgICBTY29wZUd1YXJkIGd1YXJk
KFt0aGlzLCAmam9iXSB7CisgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOworICAgIH0pOworCisg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JS
ZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdCBjYWxsZWQgYnV0IHRoZSBjb250YWluZXJz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZ29uZSIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBwcm9wZXIgc2VsZWN0aW9uIG9mIHNlcnZpY2Ug
d29ya2Vycy4KKyAgICBpZiAodW5yZWdpc3RyYXRpb25SZXN1bHQpCisgICAgICAgIGNvbnRleHQt
PnNldFNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoMCk7CisKKyAgICBqb2IucHJvbWlz
ZSgpLnJlc29sdmU8SURMQm9vbGVhbj4odW5yZWdpc3RyYXRpb25SZXN1bHQpOworfQorCiB2b2lk
IFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2VydmljZVdv
cmtlckpvYiYgam9iKQogewogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29u
dGFpbmVyICVwIHN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9iICUiIFBSSXU2NCwgdGhpcywg
am9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZkMWZlZTI0
NDU0NTc1YWFhMzhjZmNjMTgwMDFmYzQ1MjI2Mi4uYzM4NWZjNmExNGIzNDYzOTllYjUxMzdiMzg4
NTgyYjU4NmQ0M2RjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoK
ICAgICBSZWFkeVByb21pc2UmIHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeVByb21pc2U7IH0KIAog
ICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0VVJMLCBjb25zdCBS
ZWdpc3RyYXRpb25PcHRpb25zJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBy
ZW1vdmVSZWdpc3RyYXRpb24oY29uc3QgVVJMJiBzY29wZVVSTCwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKIApAQCAtNzMsNiArNzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBq
b2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBFeGNlcHRpb24m
KSBmaW5hbDsKICAgICB2b2lkIGpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29y
a2VySm9iJiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJikgZmluYWw7CisgICAgdm9p
ZCBqb2JSZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdChTZXJ2aWNlV29ya2VySm9iJiwg
Ym9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkgZmluYWw7CiAgICAgdm9pZCBzdGFydFNjcmlwdEZl
dGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSBmaW5hbDsKICAgICB2b2lkIGpvYkZpbmlzaGVk
TG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAg
ICAgdm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBS
ZXNvdXJjZUVycm9yJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggNjIwMjRiOGQ5MDE2NmRmNThkNmMyOWZi
OWQ3NWJiYTc3OTYwZmJlMS4uYzM1ZDM1NzIyMWYzMDI1MjNlMDdkZWFkMjA1MTRjMmIzMTc5ZWNl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VySm9iLmNwcApAQCAtNjYsNiArNjYsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpyZXNv
bHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJgogICAg
IG1fY2xpZW50LT5qb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKnRoaXMsIFdURk1vdmUoZGF0
YSkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnJlc29sdmVkV2l0aFVucmVnaXN0cmF0
aW9uUmVzdWx0KGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCit7CisgICAgQVNTRVJUKGN1cnJl
bnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKKyAgICBBU1NFUlQoIW1fY29tcGxldGVk
KTsKKworICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKKyAgICBtX2NsaWVudC0+am9iUmVzb2x2ZWRX
aXRoVW5yZWdpc3RyYXRpb25SZXN1bHQoKnRoaXMsIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKK30K
Kwogdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpzdGFydFNjcmlwdEZldGNoKCkKIHsKICAgICBBU1NF
UlQoY3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5kZXggMGViN2I5MzE1
MWNiZTY4ZmZkOTRhY2VlMTdmMzkwMDliMzA1NDY1NC4uMGM4ZDhkNGQ3NTgxMjIxZDM4ZmJhYTU1
MmE0NjViYzc3Njk0YzcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYi5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZmFpbGVkV2l0aEV4Y2VwdGlvbihjb25zdCBFeGNlcHRpb24mKTsKICAgICB2b2lkIHJlc29s
dmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmKTsKKyAg
ICB2b2lkIHJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KGJvb2wpOwogICAgIHZvaWQg
c3RhcnRTY3JpcHRGZXRjaCgpOwogCiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgZGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fam9iRGF0YTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKaW5kZXggODUyYmZjM2I3YmRj
MDljZmQ5NDgxMjI2ZGYyMTNiNjhlZTU2NmFjNC4uODU4NTcxYjYwZDg2MzgyNDRhM2YzMmQ2YmU3
MTdlY2Q1YjMzMjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBFeGNlcHRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYlJlc29sdmVk
V2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBqb2JSZXNvbHZlZFdpdGhVbnJlZ2lz
dHJhdGlvblJlc3VsdChTZXJ2aWNlV29ya2VySm9iJiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3Vs
dCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9ySm9iKFNlcnZpY2VX
b3JrZXJKb2ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYkZpbmlzaGVkTG9hZGluZ1Njcmlw
dChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJj
ZUVycm9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJKb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckpvYkRhdGEuaAppbmRleCBhNmQzNzFhYTgyOTMwMGY2NTk3NjdkMjVlYmRm
OGYxZTY1M2I1OTVjLi5jNmM5OTM2MjkxMGVmZjljZGM2MmY4NDRjNDE0MzczODc1MDIwYTkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
YkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkRhdGEuaApAQCAtNzMsNiArNzMsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2JEYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JU
eXBlOjpSZWdpc3RlcjoKICAgICAgICAgZW5jb2RlciA8PCByZWdpc3RyYXRpb25PcHRpb25zOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVbnJlZ2lzdGVy
OgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTExMCw2ICsxMTIsOCBAQCBzdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhPiBTZXJ2aWNlV29ya2VySm9iRGF0YTo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZQogICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGpvYkRhdGEtPnJl
Z2lzdHJhdGlvbk9wdGlvbnMpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VW5yZWdpc3RlcjoK
KyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgcmV0dXJuIGpvYkRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYlR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iVHlwZS5oCmlu
ZGV4IDQwMjNmYWJlNTQ5OGZhYWQ4ZWEwMDI0ZTMwNzkyMjk2ZWY3YzdkMzUuLjA3OWYzZTg0OTU1
NDExNWUyZjZiNjMzZGM1MTJiN2ZmMjFhY2U5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iVHlwZS5oCkBAIC0zMSw2ICszMSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VySm9iVHlw
ZSB7CiAgICAgUmVnaXN0ZXIsCisgICAgVW5yZWdpc3RlciwKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBjZGFlNGI4N2IyYjI2M2JiM2U3
Y2IzNTlmY2QyN2M2N2U0MGI4NjU2Li4yNTkxOWFiMWEzOTk2OWFjNTRlYmNmYjg4NDk2MGYwM2U3
MDA5ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yNyw5ICsyNywyNyBAQAogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIu
aCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlck5hdmln
YXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyKiBjb250YWluZXJGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgTmF2aWdhdG9yQmFzZSogbmF2aWdhdG9yID0gbnVs
bHB0cjsKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CisgICAgICAgIGlmIChhdXRv
KiB3aW5kb3cgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuZG9tV2luZG93KCkpCisgICAg
ICAgICAgICBuYXZpZ2F0b3IgPSB3aW5kb3ctPm5hdmlnYXRvcigpOworICAgIH0gZWxzZQorICAg
ICAgICBuYXZpZ2F0b3IgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLm5h
dmlnYXRvcigpOworCisgICAgcmV0dXJuIG5hdmlnYXRvciA/IG5hdmlnYXRvci0+c2VydmljZVdv
cmtlcigpIDogbnVsbHB0cjsKK30KKwogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJlZ2lzdHJhdGlvbkRhdGEpCiAgICAgOiBBY3Rp
dmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3JlZ2lzdHJhdGlvbkRhdGEoV1RGTW92ZShy
ZWdpc3RyYXRpb25EYXRhKSkKQEAgLTY5LDcgKzg3LDIwIEBAIHZvaWQgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6dXBkYXRlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIAogdm9p
ZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKIHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uKE5vdFN1cHBv
cnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVucmVn
aXN0ZXIgbm90IHlldCBpbXBsZW1lbnRlZCIpKSk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52YWxp
ZFN0YXRlRXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8qIGNvbnRh
aW5lciA9IGNvbnRhaW5lckZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKmNvbnRleHQpOworICAg
IGlmICghY29udGFpbmVyKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24oSW52
YWxpZFN0YXRlRXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRhaW5l
ci0+cmVtb3ZlUmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uRGF0YS5zY29wZVVSTCwgV1RGTW92
ZShwcm9taXNlKSk7CiB9CiAKIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9u
LmNwcAppbmRleCA1ZDM0MzNlOGJhZGYwY2M4NmUzZDcwOWUxNGIzZWFjMjhiZGVjZmFkLi44ZTkz
YzVlMDZjOTRhNWJhOTNlZTMzNTRlYTNhMGFlYmFjMzdkMDY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rp
b24uY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWpl
Y3RlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwCiAgICAgam9i
LT5mYWlsZWRXaXRoRXhjZXB0aW9uKGV4Y2VwdGlvbkRhdGEudG9FeGNlcHRpb24oKSk7CiB9CiAK
LXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90IGpv
YklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9u
RGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZElu
U2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkKIHsKICAgICBhdXRvIGpvYiA9IG1fc2NoZWR1bGVkSm9i
cy50YWtlKGpvYklkZW50aWZpZXIpOwogICAgIGlmICgham9iKSB7CkBAIC04Miw2ICs4MiwxNyBA
QCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVzb2x2ZWRJblNlcnZlcih1aW50NjRfdCBq
b2JJZGVudGlmaWVyLCBTZXJ2aWNlV29yawogICAgIGpvYi0+cmVzb2x2ZWRXaXRoUmVnaXN0cmF0
aW9uKFdURk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOwogfQogCit2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6dW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50
aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCit7CisgICAgYXV0byBqb2IgPSBtX3Nj
aGVkdWxlZEpvYnMudGFrZShqb2JJZGVudGlmaWVyKTsKKyAgICBpZiAoIWpvYikgeworICAgICAg
ICBMT0dfRVJST1IoIkpvYiAlIiBQUkl1NjQgIiByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMg
bm90IGZvdW5kIiwgam9iSWRlbnRpZmllcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBqb2ItPnJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KHVucmVnaXN0cmF0aW9uUmVz
dWx0KTsKK30KKwogdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JT
ZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGpvYiA9IG1fc2NoZWR1
bGVkSm9icy5nZXQoam9iSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA5Yzhh
MTcwZjEyZDFmN2Q3ZjdmMWU1YmRlMmFlYjM3MTM4M2MwNWMxLi5jZmY0ZjJiNzhiMGUzODBkMDk2
NzE4OGRkNmU4MTEyYTlhMTAyODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU0LDcgKzU0
LDggQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JS
ZWplY3RlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRh
dGEmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlc29sdmVkSW5TZXJ2ZXIodWludDY0
X3Qgam9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2
NF90IGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHVp
bnQ2NF90IGpvYklkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJ
ZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggMDdhZTVmYWVhNGU2YzBkYTExNmI5Njdi
MTc5M2U0ZDUxMzI2ZWFlMy4uZmJhNjUwMzEyNWJhYzkyNTc4ZTFkM2IyZTNkN2UwNmQxMDFlZWVk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHAKQEAgLTEyMSwxNCArMTIxLDIzIEBAIHZvaWQgU1dTZXJ2ZXI6OnJlamVjdEpvYihj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgRXhjZXB0aW9uRGF0CiAg
ICAgY29ubmVjdGlvbi0+cmVqZWN0Sm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIGV4
Y2VwdGlvbkRhdGEpOwogfQogCi12b2lkIFNXU2VydmVyOjpyZXNvbHZlSm9iKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYgcmVnaXN0cmF0aW9uRGF0YSkKK3ZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRp
b25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhJiByZWdpc3RyYXRpb25EYXRhKQogewogICAgIExPRyhTZXJ2
aWNlV29ya2VyLCAiUmVzb2x2ZWQgU2VydmljZVdvcmtlciBqb2IgJSIgUFJJdTY0ICItJSIgUFJJ
dTY0ICIgaW4gc2VydmVyIHdpdGggcmVnaXN0cmF0aW9uICUiIFBSSXU2NCwgam9iRGF0YS5jb25u
ZWN0aW9uSWRlbnRpZmllcigpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uRGF0
YS5pZGVudGlmaWVyKTsKICAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQo
am9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rpb24tPnJlc29sdmVKb2JJbkNsaWVudChqb2JE
YXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uRGF0YSk7CisgICAgY29ubmVjdGlvbi0+cmVz
b2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3Ry
YXRpb25EYXRhKTsKK30KKwordm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9i
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1
bHQpCit7CisgICAgYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0KGpvYkRhdGEu
Y29ubmVjdGlvbklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjb25uZWN0aW9uLT5yZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVu
dChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uS2V5LCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggMWMxYTJjOTJlODY3YjM4MTNkOTFjZTFmZjgz
ZjJiYThjY2QwMWExNi4uYzk2NjlkYWMwYTNmZDM5YTZhMWQ4ZjhiNjM2YjJhMThlZjU1YTQyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aApAQCAtNjcsNyArNjcsOCBAQCBwdWJsaWM6CiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gTWVz
c2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNzCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWpl
Y3RKb2JJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRh
JikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90
IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgPSAw
OworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KHVp
bnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5D
bGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIGJvb2wgcmVnaXN0cmF0aW9uUmVzdWx0KSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikgPSAw
OwogCiAgICAgICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBob3N0IFdlYlByb2Nlc3MKQEAgLTgx
LDcgKzgyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYpOwogICAgIHZvaWQgcmVqZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJiwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOwotICAgIHZvaWQgcmVzb2x2ZUpvYihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhJik7CisgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2
b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYs
IGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0cmF0aW9u
UmVzdWx0KTsKICAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGEmKTsKIAogICAgIHZvaWQgcG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCAwZDIxNzhlN2M0YzAwZTcwOGFmZTUxNTg1OTQyODI0
ZDQzZTI3NWQ1Li4xNzFjNDc2NzA0Nzc2ZGIxMGMwZDJiYTBjY2NkNzhiM2JhZjJjMTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVn
aXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFNXU2VydmVy
UmVnaXN0cmF0aW9uOjpzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChTV1NlcnZlcjo6Q29ubmVj
dGlvbiYsIGNvbgogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2NyaXB0Q29udGV4dFN0YXJ0
ZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHdvcmtlcklEKQogewogICAgIFVOVVNFRF9QQVJBTSh3b3JrZXJJRCk7Ci0gICAgcmVzb2x2
ZUN1cnJlbnRKb2IoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgeyBtX3JlZ2lzdHJhdGlv
bktleSwgaWRlbnRpZmllciwgbV9zY29wZVVSTCwgbV91cGRhdGVWaWFDYWNoZS52YWx1ZV9vcihT
ZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6OkltcG9ydHMpIH0pOworICAgIHJlc29sdmVDdXJy
ZW50UmVnaXN0cmF0aW9uSm9iKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIHsgbV9yZWdp
c3RyYXRpb25LZXksIGlkZW50aWZpZXIsIG1fc2NvcGVVUkwsIG1fdXBkYXRlVmlhQ2FjaGUudmFs
dWVfb3IoU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlOjpJbXBvcnRzKSB9KTsKIH0KIAogdm9p
ZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3RhcnROZXh0Sm9iKCkKQEAgLTExMiw2ICsxMTIsOSBA
QCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydE5leHRKb2IoKQogICAgIGNhc2UgU2Vy
dmljZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyOgogICAgICAgICBtX3NlcnZlci5wb3N0VGFzayhj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cnVuUmVn
aXN0ZXJKb2IsICptX2N1cnJlbnRKb2IpKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU2Vy
dmljZVdvcmtlckpvYlR5cGU6OlVucmVnaXN0ZXI6CisgICAgICAgIG1fc2VydmVyLnBvc3RUYXNr
KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpydW5V
bnJlZ2lzdGVySm9iLCAqbV9jdXJyZW50Sm9iKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTczLDYgKzE3NiwyOSBAQCB2
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYgam9iKQogICAgIHJ1blVwZGF0ZUpvYihqb2IpOwogfQogCit2b2lkIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpydW5VbnJlZ2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2IpCit7CisgICAgLy8gSWYgdGhlIG9yaWdpbiBvZiBqb2LigJlzIHNjb3BlIHVybCBp
cyBub3Qgam9i4oCZcyBjbGllbnQncyBvcmlnaW4sIHRoZW46CisgICAgaWYgKCFwcm90b2NvbEhv
c3RBbmRQb3J0QXJlRXF1YWwoam9iLnNjb3BlVVJMLCBqb2IuY2xpZW50Q3JlYXRpb25VUkwpKQor
ICAgICAgICByZXR1cm4gcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChFeGNlcHRpb25E
YXRhIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJPcmlnaW4gb2Ygc2NvcGUgVVJMIGRv
ZXMgbm90IG1hdGNoIHRoZSBjbGllbnQncyBvcmlnaW4iKSB9KTsKKworICAgIC8vIExldCByZWdp
c3RyYXRpb24gYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nICJHZXQgUmVnaXN0cmF0aW9uIiBhbGdv
cml0aG0gcGFzc2luZyBqb2LigJlzIHNjb3BlIHVybCBhcyB0aGUgYXJndW1lbnQuCisgICAgLy8g
SWYgcmVnaXN0cmF0aW9uIGlzIG51bGwsIHRoZW46CisgICAgaWYgKGlzRW1wdHkoKSB8fCBtX3Vu
aW5zdGFsbGluZykgeworICAgICAgICAvLyBJbnZva2UgUmVzb2x2ZSBKb2IgUHJvbWlzZSB3aXRo
IGpvYiBhbmQgZmFsc2UuCisgICAgICAgIHJlc29sdmVXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHRP
bk1haW5UaHJlYWQoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gU2V0
IHJlZ2lzdHJhdGlvbuKAmXMgdW5pbnN0YWxsaW5nIGZsYWcuCisgICAgbV91bmluc3RhbGxpbmcg
PSB0cnVlOworCisgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5k
IHRydWUuCisgICAgcmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdE9uTWFpblRocmVhZCh0
cnVlKTsKKworICAgIC8vIEZJWE1FOiBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiB3aXRo
IHJlZ2lzdHJhdGlvbi4KK30KKwogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cnVuVXBkYXRl
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiB7CiAgICAgLy8gSWYgcmVnaXN0
cmF0aW9uIGlzIG51bGwgKGluIG91ciBwYXJsYW5jZSAiZW1wdHkiKSBvciByZWdpc3RyYXRpb27i
gJlzIHVuaW5zdGFsbGluZyBmbGFnIGlzIHNldCwgdGhlbjoKQEAgLTE5OCw3ICsyMjQsMTMgQEAg
dm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVh
ZChjb25zdCBFeGNlcHRpb25EYXRhJgogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2
ZVdpdGhSZWdpc3RyYXRpb25Pbk1haW5UaHJlYWQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNr
KCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVDdXJyZW50Sm9iLCBkYXRhKCkp
KTsKKyAgICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhp
cywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudFJlZ2lzdHJhdGlvbkpvYiwg
ZGF0YSgpKSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVXaXRoVW5y
ZWdpc3RyYXRpb25SZXN1bHRPbk1haW5UaHJlYWQoYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBtX3NlcnZlci5wb3N0VGFza1Jl
cGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpy
ZXNvbHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9iLCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkpOwog
fQogCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRnJvbU1haW5U
aHJlYWQoKQpAQCAtMjE3LDEyICsyNDksMjQgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
cmVqZWN0Q3VycmVudEpvYihjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogICAg
IGZpbmlzaEN1cnJlbnRKb2IoKTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVz
b2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIGRhdGEp
Cit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudFJlZ2lzdHJhdGlvbkpv
Yihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYgZGF0YSkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRKb2IpOworICAgIEFTU0VS
VChtX2N1cnJlbnRKb2ItPnR5cGUgPT0gU2VydmljZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyKTsK
KworICAgIG1fc2VydmVyLnJlc29sdmVSZWdpc3RyYXRpb25Kb2IoKm1fY3VycmVudEpvYiwgZGF0
YSk7CisKKyAgICBmaW5pc2hDdXJyZW50Sm9iKCk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OnJlc29sdmVDdXJyZW50VW5yZWdpc3RyYXRpb25Kb2IoYm9vbCB1bnJlZ2lzdHJhdGlv
blJlc3VsdCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2N1
cnJlbnRKb2IpOworICAgIEFTU0VSVChtX2N1cnJlbnRKb2ItPnR5cGUgPT0gU2VydmljZVdvcmtl
ckpvYlR5cGU6OlVucmVnaXN0ZXIpOwogCi0gICAgbV9zZXJ2ZXIucmVzb2x2ZUpvYigqbV9jdXJy
ZW50Sm9iLCBkYXRhKTsKKyAgICBtX3NlcnZlci5yZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoKm1f
Y3VycmVudEpvYiwgbV9yZWdpc3RyYXRpb25LZXksIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKIAog
ICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCBj
MjYwYzQ5ZjU3MGEzNTI0NTNhMjE3NDViNDFkZTQxODAzYzIwZWM3Li5iOWJhM2JlMmI2ZDA5OTI1
YjBkOTM5NjZhZWQ0YjMwOGM3MTg1ZjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC01
OCwxNSArNTgsMTggQEAgcHJpdmF0ZToKICAgICB2b2lkIGpvYlRpbWVyRmlyZWQoKTsKICAgICB2
b2lkIHN0YXJ0TmV4dEpvYigpOwogICAgIHZvaWQgcmVqZWN0Q3VycmVudEpvYihjb25zdCBFeGNl
cHRpb25EYXRhJik7Ci0gICAgdm9pZCByZXNvbHZlQ3VycmVudEpvYihjb25zdCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgcmVzb2x2ZUN1cnJlbnRSZWdpc3RyYXRp
b25Kb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJl
c29sdmVDdXJyZW50VW5yZWdpc3RyYXRpb25Kb2IoYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7
CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigpOwogICAgIHZvaWQgZmlu
aXNoQ3VycmVudEpvYigpOwogCiAgICAgdm9pZCBydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYpOworICAgIHZvaWQgcnVuVW5yZWdpc3RlckpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYpOwogICAgIHZvaWQgcnVuVXBkYXRlSm9iKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhJik7CiAKICAgICB2b2lkIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQo
Y29uc3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZVdpdGhSZWdpc3RyYXRpb25P
bk1haW5UaHJlYWQoKTsKKyAgICB2b2lkIHJlc29sdmVXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHRP
bk1haW5UaHJlYWQoYm9vbCk7CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJl
YWQoKTsKICAgICBib29sIGlzRW1wdHkoKTsKICAgICBTV1NlcnZlcldvcmtlciogZ2V0TmV3ZXN0
V29ya2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGY1
OGMxNzU5YmE2MGFhMWIxZGRlYTU3Mzg5ZTQ2OTNiYzM3MDY0ZDQuLmI2NDNlNmEzNDVhMTUyNzRi
NWUwM2U3Y2RhNzJkY2U5ODc0ZDUxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCkBAIC03NSwxMSArNzUsMTkgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnJlamVjdEpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2UKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OkpvYlJlamVjdGVkSW5TZXJ2
ZXIoam9iSWRlbnRpZmllciwgZXhjZXB0aW9uRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6cmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNv
bnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiByZWdpc3RyYXRpb25EYXRhKQordm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudCh1
aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYgcmVnaXN0cmF0aW9uRGF0YSkKIHsKICAgICBhdXRvIG9yaWdpbiA9IHJlZ2lzdHJhdGlvbkRh
dGEua2V5LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpOwogICAgIFN0b3JhZ2VQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVTV09yaWdpblN0b3JlRm9yU2Vzc2lvbihtX3Nlc3Npb25JRCkuYWRk
KG9yaWdpbik7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpKb2JS
ZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEpKTsKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvbkpvYlJlc29s
dmVkSW5TZXJ2ZXIoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uRGF0YSkpOworfQorCit2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQo
dWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYgcmVnaXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQoreworICAgIGF1
dG8gb3JpZ2luID0gcmVnaXN0cmF0aW9uS2V5LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpOwor
ICAgIGlmIChhdXRvKiBzdG9yZSA9IFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5zd09yaWdp
blN0b3JlRm9yU2Vzc2lvbihtX3Nlc3Npb25JRCkpCisgICAgICAgIHN0b3JlLT5yZW1vdmUob3Jp
Z2luKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlVucmVnaXN0
cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCkpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRj
aEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmgKaW5kZXggN2NjNzZiZGM5YWRiY2Q5MzUwMTExYjRmZTBiYjNlMDJiNzY2MmFj
MC4uMTFlMWRhNzBlNzhiM2U3ZDMzNWM0MTc2ZjBiZjQwYWMxMmEwYzA3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjAsNyArNjAsOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIC8vIEltcGxlbWVudCBTV1NlcnZlcjo6Q29ubmVjdGlvbiAoTWVzc2FnZXMgdG8g
dGhlIGNsaWVudCBXZWJQcm9jZXNzKQogICAgIHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQodWludDY0
X3Qgam9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpIGZpbmFsOwot
ICAgIHZvaWQgcmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9p
ZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29s
IHVucmVnaXN0cmF0aW9uUmVzdWx0KSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJ
bkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIHZvaWQgc3RhcnRG
ZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA4
OGZlYTAwNmY0NjlkYmJkNWJkZDdmNjI4MTllZDcxYzg3Mjk4YjA2Li4xMTU1ZDFiYWFkODk1NTg2
MzFmMDM4MTMyOWRiNmZjZjA2OGY2NjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCkBAIC0yNSw3ICsyNSw4IEBACiBtZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rp
b24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJlIGltcGxlbWVu
dGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uCiAgICAgSm9iUmVq
ZWN0ZWRJblNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSBleGNlcHRpb24pCi0gICAgSm9iUmVzb2x2ZWRJblNlcnZlcih1aW50NjRfdCBpZGVu
dGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVn
aXN0cmF0aW9uKQorICAgIFJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIodWludDY0X3Qg
aWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
IHJlZ2lzdHJhdGlvbikKKyAgICBVbnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIodWlu
dDY0X3QgaWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKICAgICBTdGFydFNj
cmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIpCiAKICAgICBTZXRTV09y
aWdpblRhYmxlU2hhcmVkTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGI1MTNkMmNhYjc2ODZhMTcwYWE3OWMyZTA5Y2U0ZDRiMmQ1MjAxMzguLjI5NTNm
MWI2YjE2YWEyMDczNzg2MzMyYTE1OGNjNGU3MDAyODhmZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxNy0xMC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB1bnJlZ2lzdGVyaW5nIGEgc2VydmljZSB3b3JrZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODczNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBj
b3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXVu
cmVnaXN0ZXIuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9iYXNpYy11bnJlZ2lzdGVyLmh0dHBzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy11bnJlZ2lz
dGVyLmpzOiBBZGRlZC4KKwogMjAxNy0xMC0yNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFyayBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9kZXRh
aWxzLXN1bW1hcnktYmVmb3JlLWFmdGVyLmh0bWwgYXMgZmFpbGluZyBvbiBXaW5kb3dzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtdW5y
ZWdpc3Rlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9iYXNpYy11bnJlZ2lzdGVyLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZTYzNjQ4MjMzZTQ3Yjc4NjBkMDgzOTI1ZTg5NmM5ZjFkZDJkNzczCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtdW5yZWdp
c3Rlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFTUzogVGhlcmUgaXMg
aW5pdGlhbGx5IG5vIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmlnaW4KK1BB
U1M6IHJlZ2lzdHJhdGlvbiBzY29wZSBpcyBodHRwczovLzEyNy4wLjAuMTo4NDQzL3dvcmtlcnMv
c2VydmljZS8KK1BBU1M6IFRoZXJlIGlzIGEgc2VydmljZSB3b3JrZXIgcmVnaXN0ZXJlZCBmb3Ig
dGhlIG9yaWdpbgorUEFTUzogVW5yZWdpc3RyYXRpb24gd2FzIHN1Y2Nlc3NmdWwKK1BBU1M6IFRo
ZXJlIGlzIG5vIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmlnaW4KK1BBU1M6
IFVucmVnaXN0cmF0aW9uIGZhaWxlZCBhcyBleHBlY3RlZAorUEFTUzogVGhlcmUgaXMgbm8gc2Vy
dmljZSB3b3JrZXIgcmVnaXN0ZXJlZCBmb3IgdGhlIG9yaWdpbgorUEFTUzogcmVnaXN0cmF0aW9u
IHNjb3BlIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvd29ya2Vycy9zZXJ2aWNlLworUEFTUzog
VGhlcmUgaXMgYSBzZXJ2aWNlIHdvcmtlciByZWdpc3RlcmVkIGZvciB0aGUgb3JpZ2luCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXVu
cmVnaXN0ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL2Jhc2ljLXVucmVnaXN0ZXIuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjNhNDUzZjNjNzg0
MTczYjg5YjFhNWE0MDdkY2U1YWY4MmY0Zjk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtdW5yZWdpc3Rlci5odHRwcy5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYmFzaWMtdW5yZWdpc3Rlci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9y
ZXNvdXJjZXMvYmFzaWMtdW5yZWdpc3Rlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy11bnJlZ2lzdGVyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYw
ZWVmNzFmMGFhNzZmZDAyY2VkYzFkZGI4MzY2NmZiZTExYjYxM2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMt
dW5yZWdpc3Rlci5qcwpAQCAtMCwwICsxLDYzIEBACitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBm
aW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsK
KyAgICAgICAgaWYgKCFpbnRlcm5hbHMuaGFzU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmln
aW4oc2VsZi5vcmlnaW4pKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBUaGVyZSBpcyBpbml0aWFs
bHkgbm8gc2VydmljZSB3b3JrZXIgcmVnaXN0ZXJlZCBmb3IgdGhlIG9yaWdpbiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFRoZXJlIGlzIGluaXRpYWxseSBhIHNlcnZp
Y2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmlnaW4iKTsKKworICAgICAgICBsZXQgcmVn
aXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291
cmNlcy9iYXNpYy1mZXRjaC13b3JrZXIuanMiLCB7IH0pOworICAgICAgICBpZiAocmVnaXN0cmF0
aW9uLnNjb3BlID09PSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My93b3JrZXJzL3NlcnZpY2UvIikK
KyAgICAgICAgICAgIGxvZygiUEFTUzogcmVnaXN0cmF0aW9uIHNjb3BlIGlzICIgKyByZWdpc3Ry
YXRpb24uc2NvcGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IHJlZ2lz
dHJhdGlvbiBzY29wZSBpcyAiICsgcmVnaXN0cmF0aW9uLnNjb3BlKTsKKyAKKyAgICAgICAgaWYg
KGludGVybmFscy5oYXNTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihzZWxmLm9yaWdp
bikpCisgICAgICAgICAgICBsb2coIlBBU1M6IFRoZXJlIGlzIGEgc2VydmljZSB3b3JrZXIgcmVn
aXN0ZXJlZCBmb3IgdGhlIG9yaWdpbiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2co
IkZBSUw6IFRoZXJlIGlzIG5vIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmln
aW4iKTsKKworICAgICAgICBsZXQgdW5yZWdpc3RyYXRpb25SZXN1bHQgPSBhd2FpdCByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBpZiAodW5yZWdpc3RyYXRpb25SZXN1bHQpCisg
ICAgICAgICAgICBsb2coIlBBU1M6IFVucmVnaXN0cmF0aW9uIHdhcyBzdWNjZXNzZnVsIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogVW5yZWdpc3RyYXRpb24gZmFpbGVk
Iik7CisKKyAgICAgICAgaWYgKCFpbnRlcm5hbHMuaGFzU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4oc2VsZi5vcmlnaW4pKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBUaGVyZSBpcyBu
byBzZXJ2aWNlIHdvcmtlciByZWdpc3RlcmVkIGZvciB0aGUgb3JpZ2luIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogVGhlcmUgaXMgYSBzZXJ2aWNlIHdvcmtlciByZWdp
c3RlcmVkIGZvciB0aGUgb3JpZ2luIik7CisKKyAgICAgICAgdW5yZWdpc3RyYXRpb25SZXN1bHQg
PSBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBpZiAoIXVucmVnaXN0
cmF0aW9uUmVzdWx0KQorICAgICAgICAgICAgbG9nKCJQQVNTOiBVbnJlZ2lzdHJhdGlvbiBmYWls
ZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMOiBV
bnJlZ2lzdHJhdGlvbiBzdWNjZWVkZWQgdW5leHBlY3RlZGx5Iik7CisgICAgICAgIAorICAgICAg
ICBpZiAoIWludGVybmFscy5oYXNTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihzZWxm
Lm9yaWdpbikpCisgICAgICAgICAgICBsb2coIlBBU1M6IFRoZXJlIGlzIG5vIHNlcnZpY2Ugd29y
a2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmlnaW4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbG9nKCJGQUlMOiBUaGVyZSBpcyBhIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRo
ZSBvcmlnaW4iKTsKKworICAgICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2Jhc2ljLWZldGNoLXdvcmtlci5qcyIsIHsg
fSk7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24uc2NvcGUgPT09ICJodHRwczovLzEyNy4wLjAu
MTo4NDQzL3dvcmtlcnMvc2VydmljZS8iKQorICAgICAgICAgICAgbG9nKCJQQVNTOiByZWdpc3Ry
YXRpb24gc2NvcGUgaXMgIiArIHJlZ2lzdHJhdGlvbi5zY29wZSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGxvZygiRkFJTDogcmVnaXN0cmF0aW9uIHNjb3BlIGlzICIgKyByZWdpc3RyYXRp
b24uc2NvcGUpOworCisgICAgICAgIGlmIChpbnRlcm5hbHMuaGFzU2VydmljZVdvcmtlclJlZ2lz
dGVyZWRGb3JPcmlnaW4oc2VsZi5vcmlnaW4pKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBUaGVy
ZSBpcyBhIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdGVyZWQgZm9yIHRoZSBvcmlnaW4iKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMOiBUaGVyZSBpcyBubyBzZXJ2aWNlIHdvcmtl
ciByZWdpc3RlcmVkIGZvciB0aGUgb3JpZ2luIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAg
IGNvbnNvbGUubG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNX
VGVzdCgpOworfQorCit0ZXN0KCk7Cg==
</data>
<flag name="review"
          id="344316"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>