<?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>204305</bug_id>
          
          <creation_ts>2019-11-18 11:29:34 -0800</creation_ts>
          <short_desc>Speculative loading sometimes happens too early and is missing login cookies</short_desc>
          <delta_ts>2019-11-22 09:25:37 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591138</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-18 11:29:34 -0800</bug_when>
    <thetext>Speculative loading sometimes happens too early and is missing important login cookies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591139</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-18 11:29:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/57063840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591144</commentid>
    <comment_count>2</comment_count>
      <attachid>383767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-18 11:40:48 -0800</bug_when>
    <thetext>Created attachment 383767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591217</commentid>
    <comment_count>3</comment_count>
      <attachid>383784</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-18 13:39:03 -0800</bug_when>
    <thetext>Created attachment 383784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591469</commentid>
    <comment_count>4</comment_count>
      <attachid>383784</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-19 01:08:45 -0800</bug_when>
    <thetext>Comment on attachment 383784
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:143
&gt; +    void retrieve(const WebCore::ResourceRequest&amp;, const GlobalFrameID&amp;, bool isTopMainResourceLoad, RetrieveCompletionHandler&amp;&amp;);

This information seems to be already available in ResourceRequest as oddly named isTopSite() bit. Can we avoid duplicating information?

Also the parameter should be an enum.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:148
&gt; +    void registerMainResourceLoadResponse(const WebCore::ResourceRequest&amp;, const WebCore::ResourceResponse&amp;, const GlobalFrameID&amp;);

This should probably be in #if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION) section. 

This sort of stuff points to speculative load being implemented in a wrong layer. Cache API tries not to be a collection of random functions, but things that actually make sense for a class called Cache. This doesn&apos;t really belong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592795</commentid>
    <comment_count>5</comment_count>
      <attachid>384153</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-22 07:56:22 -0800</bug_when>
    <thetext>Created attachment 384153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592809</commentid>
    <comment_count>6</comment_count>
      <attachid>384156</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-22 08:28:13 -0800</bug_when>
    <thetext>Created attachment 384156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592838</commentid>
    <comment_count>7</comment_count>
      <attachid>384156</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 09:25:36 -0800</bug_when>
    <thetext>Comment on attachment 384156
Patch

Clearing flags on attachment: 384156

Committed r252778: &lt;https://trac.webkit.org/changeset/252778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592839</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-22 09:25:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383767</attachid>
            <date>2019-11-18 11:40:48 -0800</date>
            <delta_ts>2019-11-18 13:39:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204305-20191118114044.patch</filename>
            <type>text/plain</type>
            <size>21845</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQxMzAzZDgwZTM4N2E1ZjIx
NTVhYjlhODFjYTUyMWI4NTExM2IwZWYuLjBlYjViNTAwZTkzYTJiMGZkZWVhMDEwYzA2MDQ2OGMw
ZjAzYzU0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMTEtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBsb2FkaW5nIHNv
bWV0aW1lcyBoYXBwZW5zIHRvbyBlYXJseSBhbmQgaXMgbWlzc2luZyBsb2dpbiBjb29raWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMDUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDYzODQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWN1bGF0aXZlIGxvYWRzIHdlcmUgaXNzdWVkIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIHJlc3BvbnNlIGZyb20gdGhlIG1haW4gcmVzb3VyY2UuIEhvd2V2
ZXIsCisgICAgICAgIHRoZSBtYWluIHJlc291cmNlIG1heSBzZXQgaW1wb3J0YW50IGNvb2tpZXMg
dGhhdCBhcmUgdGh1cyBtaXNzaW5nIGZyb20gdGhlIHNwZWN1bGF0aXZlIHJlcXVlc3RzLgorCisg
ICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlIHdlIG5vdyBkZWxheSBzb21lIHNwZWN1bGF0aXZl
IGxvYWRzIHVudGlsIHdlJ3ZlIHJlY2VpdmVkIHRoZSByZXNwb25zZSBmcm9tCisgICAgICAgIHRo
ZSBtYWluIHJlc291cmNlLiBUbyBnZXQgYXMgbXVjaCBwZXJmb3JtYW5jZSBhcyBwb3NzaWJsZSB3
aGlsZSBtaXRpZ2F0aW5nIHRoZSByaXNrLCB3ZSBvbmx5CisgICAgICAgIGRlbGF5IHNwZWN1bGF0
aXZlIGxvYWRzIG9mIGZpcnN0LXBhcnR5IHJlc291cmNlcyAod2hpY2ggbWF5IHJlbHkgb24gdGhl
IG1haW4gcmVzb3VyY2UgY29va2llcykKKyAgICAgICAgYW5kIG9ubHkgaW4gdGhlIHRvcCBmcmFt
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2Fj
aGVFbnRyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6cmVnaXN0ZXJNYWluUmVz
b3VyY2VMb2FkUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hl
OjpyZXRyaWV2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3Vs
YXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpQZW5kaW5nRnJhbWVM
b2FkOjpkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxv
YWQ6Om1hcmtNYWluUmVzb3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6
OmlzVG9wTWFpblJlc291cmNlTG9hZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6YWRkUG9zdE1h
aW5SZXNvdXJjZVJlc3BvbnNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6UGVuZGluZ0ZyYW1lTG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdl
cjo6UGVuZGluZ0ZyYW1lTG9hZDo6bV9pc1RvcE1haW5SZXNvdXJjZUxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnNob3VsZFJlZ2lz
dGVyTG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6cmVnaXN0ZXJMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdpc3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6
cmV2YWxpZGF0ZVN1YnJlc291cmNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6aXNGaXJzdFBhcnR5IGNvbnN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJj
ZXNFbnRyeS5oOgorCiAyMDE5LTExLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlXSBFbmFibGUgdmFyaWF0aW9uIGZvbnRzIG9uIGFs
bCBBcHBsZSBwbGF0Zm9ybXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjNjNjMGEwMjVjYjg3YzJiMjRhZjE5
YTMxZTcxY2YyNjJlYTQ3NTY3Li4wN2MyZGQyZTE1MmFhZGI2ZmFjODYwNGFkMjA4ZThkMzAzYmI4
NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9jYWNoZS0+cmV0cmll
dmUocmVxdWVzdCwgZ2xvYmFsRnJhbWVJRCgpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0IH1dKGF1dG8gZW50
cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CisgICAgbV9jYWNoZS0+cmV0cmlldmUocmVxdWVzdCwg
Z2xvYmFsRnJhbWVJRCgpLCBpc01haW5GcmFtZUxvYWQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgcmVxdWVzdCB9XShh
dXRvIGVudHJ5LCBhdXRvIGluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00NjYsNiArNDY2LDkgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2
ZWRSZXNwb24KIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRM
ZW5ndGgoKSk7CiAKKyAgICBpZiAobV9jYWNoZSAmJiBvcmlnaW5hbFJlcXVlc3QoKS5yZXF1ZXN0
ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbikKKyAgICAgICAgbV9jYWNo
ZS0+cmVnaXN0ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2Uob3JpZ2luYWxSZXF1ZXN0KCksIHJl
Y2VpdmVkUmVzcG9uc2UsIGdsb2JhbEZyYW1lSUQoKSk7CisKICAgICBtX3Jlc3BvbnNlID0gV1RG
TW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MoKSAmJiBtX25ldHdvcmtMb2FkQ2hlY2tlcikgewpAQCAtOTA0LDYgKzkw
Nyw5IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnko
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6CiB7CiAgICAgYXV0byByZXNwb25zZSA9IGVu
dHJ5LT5yZXNwb25zZSgpOwogCisgICAgaWYgKG1fY2FjaGUgJiYgb3JpZ2luYWxSZXF1ZXN0KCku
cmVxdWVzdGVyKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pCisgICAgICAg
IG1fY2FjaGUtPnJlZ2lzdGVyTWFpblJlc291cmNlTG9hZFJlc3BvbnNlKG9yaWdpbmFsUmVxdWVz
dCgpLCByZXNwb25zZSwgZ2xvYmFsRnJhbWVJRCgpKTsKKwogICAgIGlmIChpc01haW5SZXNvdXJj
ZSgpICYmIHNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0
aW9ucyhyZXNwb25zZSkpIHsKICAgICAgICAgcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQ
b3NzaWJsZShXVEZNb3ZlKHJlc3BvbnNlKSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9u
VHlwZTo6Q3Jvc3NPcmlnaW5TYWZlKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3Vy
Y2VMb2FkZXI6OlN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQ
b2xpY3lEZW5pZWQgeyByZXNwb25zZSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCAyNzVlMDBlZThiMDY4Y2Y5ZmJm
NTQzNjdiY2U3Njg1MWI1ODQwMzY4Li4wOGM0ODA5NTY5NTU4ZGQ2NGE0YTUxN2Y0ZTYxMzhlMTM1
YTdkMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMjcsNyArMzI3LDE2IEBAIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5
bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlCiB9CiAjZW5kaWYKIAotdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBSZXRy
aWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIENhY2hlOjpy
ZWdpc3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBib29sIGNhblVzZVNwZWN1bGF0aXZl
UmV2YWxpZGF0aW9uID0gbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyICYmIGNhblJlcXVlc3RVc2VT
cGVjdWxhdGl2ZVJldmFsaWRhdGlvbihyZXF1ZXN0KTsKKyAgICBpZiAoY2FuVXNlU3BlY3VsYXRp
dmVSZXZhbGlkYXRpb24pCisgICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci0+cmVnaXN0
ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoZnJhbWVJRCwgcmVxdWVzdCwgcmVzcG9uc2UsIG1h
a2VDYWNoZUtleShyZXF1ZXN0KSk7CisjZW5kaWYKK30KKwordm9pZCBDYWNoZTo6cmV0cmlldmUo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFt
ZUlEJiBmcmFtZUlELCBib29sIGlzVG9wTWFpblJlc291cmNlTG9hZCwgUmV0cmlldmVDb21wbGV0
aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChyZXF1ZXN0LnVy
bCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CiAKQEAgLTM0Myw3ICszNTIsNyBAQCB2b2lk
IENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IEdsb2JhbEZyYW1lSQogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikKICAgICBib29sIGNhblVzZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0g
bV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyICYmIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFs
aWRhdGlvbihyZXF1ZXN0KTsKICAgICBpZiAoY2FuVXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24p
Ci0gICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci0+cmVnaXN0ZXJMb2FkKGZyYW1lSUQs
IHJlcXVlc3QsIHN0b3JhZ2VLZXkpOworICAgICAgICBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIt
PnJlZ2lzdGVyTG9hZChmcmFtZUlELCByZXF1ZXN0LCBpc1RvcE1haW5SZXNvdXJjZUxvYWQsIHN0
b3JhZ2VLZXkpOwogI2VuZGlmCiAKICAgICBhdXRvIHJldHJpZXZlRGVjaXNpb24gPSBtYWtlUmV0
cmlldmVEZWNpc2lvbihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDUzNTQwYWVkOGVjMDVkNTU2MjhhN2M2ZTM4
NGIzMDYyNDI5N2JjOTMuLmE5ZDE2NzkyYzMzOGMxMTE1ZmQyMmEzZWQ3ZTM3Y2QyYjA1ZjM2NTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuaApAQCAtMTQwLDExICsxNDAsMTMgQEAgcHVibGljOgogICAgICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICB9OwogICAgIHVzaW5nIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXIg
PSBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4sIGNvbnN0IFJldHJpZXZlSW5m
byYpPjsKLSAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAg
IHZvaWQgcmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgR2xv
YmFsRnJhbWVJRCYsIGJvb2wgaXNUb3BNYWluUmVzb3VyY2VMb2FkLCBSZXRyaWV2ZUNvbXBsZXRp
b25IYW5kbGVyJiYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4gc3RvcmUoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIEZ1bmN0aW9uPHZvaWQoTWFwcGVkQm9k
eSYpPiYmID0gbnVsbHB0cik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiBzdG9yZVJlZGly
ZWN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVx
dWVzdCwgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FwKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RW50cnk+IHVwZGF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiwgY29uc3QgRW50cnkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiB2YWxpZGF0aW5nUmVzcG9uc2UpOwogCisgICAgdm9pZCByZWdpc3Rlck1haW5SZXNvdXJjZUxv
YWRSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYpOworCiAgICAgc3RydWN0
IFRyYXZlcnNhbEVudHJ5IHsKICAgICAgICAgY29uc3QgRW50cnkmIGVudHJ5OwogICAgICAgICBj
b25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKaW5kZXggOTgwNmY2MmVhN2JiMDVjMGMzZWQ3
MmFhZmRlNzQzZGQ1ZWRhYjgzMS4uZTI3MGQyYzQ5ODNhNDVhMDI3ZDM4ZWViODBmYmMwMjQ4Yjc5
NWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3Bw
CkBAIC0xNjAsOSArMTYwLDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgU3BlY3VsYXRpdmVMb2FkTWFu
YWdlcjo6UGVuZGluZ0ZyYW1lTG9hZCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdGcmFtZUxv
YWQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBlbmRpbmdGcmFtZUxvYWQ+IGNyZWF0ZShT
dG9yYWdlJiBzdG9yYWdlLCBjb25zdCBLZXkmIG1haW5SZXNvdXJjZUtleSwgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8UGVuZGlu
Z0ZyYW1lTG9hZD4gY3JlYXRlKFN0b3JhZ2UmIHN0b3JhZ2UsIGNvbnN0IEtleSYgbWFpblJlc291
cmNlS2V5LCBib29sIGlzVG9wTWFpblJlc291cmNlTG9hZCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGVuZGluZ0ZyYW1lTG9hZChzdG9yYWdlLCBtYWluUmVzb3VyY2VLZXksIFdURk1vdmUo
bG9hZENvbXBsZXRpb25IYW5kbGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQ
ZW5kaW5nRnJhbWVMb2FkKHN0b3JhZ2UsIG1haW5SZXNvdXJjZUtleSwgaXNUb3BNYWluUmVzb3Vy
Y2VMb2FkLCBXVEZNb3ZlKGxvYWRDb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9CiAKICAgICB+
UGVuZGluZ0ZyYW1lTG9hZCgpCkBAIC0yMDMsMTIgKzIwMywyNCBAQCBwdWJsaWM6CiAgICAgICAg
IHNhdmVUb0Rpc2tJZlJlYWR5KCk7CiAgICAgfQogCisgICAgYm9vbCBkaWRSZWNlaXZlTWFpblJl
c291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VS
ZXNwb25zZTsgfQorICAgIHZvaWQgbWFya01haW5SZXNvdXJjZVJlc3BvbnNlQXNSZWNlaXZlZCgp
CisgICAgeworICAgICAgICBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZSA9IHRydWU7
CisgICAgICAgIGZvciAoYXV0byYgdGFzayA6IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFz
a3MpCisgICAgICAgICAgICB0YXNrKCk7CisgICAgfQorCisgICAgYm9vbCBpc1RvcE1haW5SZXNv
dXJjZUxvYWQoKSBjb25zdCB7IHJldHVybiBtX2lzVG9wTWFpblJlc291cmNlTG9hZDsgfQorICAg
IHZvaWQgYWRkUG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYg
dGFzaykgeyBtX3Bvc3RNYWluUmVzb3VyY2VSZXNwb25zZVRhc2tzLmFwcGVuZChXVEZNb3ZlKHRh
c2spKTsgfQorCiBwcml2YXRlOgotICAgIFBlbmRpbmdGcmFtZUxvYWQoU3RvcmFnZSYgc3RvcmFn
ZSwgY29uc3QgS2V5JiBtYWluUmVzb3VyY2VLZXksIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGxv
YWRDb21wbGV0aW9uSGFuZGxlcikKKyAgICBQZW5kaW5nRnJhbWVMb2FkKFN0b3JhZ2UmIHN0b3Jh
Z2UsIGNvbnN0IEtleSYgbWFpblJlc291cmNlS2V5LCBib29sIGlzVG9wTWFpblJlc291cmNlTG9h
ZCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgICAg
ICA6IG1fc3RvcmFnZShzdG9yYWdlKQogICAgICAgICAsIG1fbWFpblJlc291cmNlS2V5KG1haW5S
ZXNvdXJjZUtleSkKICAgICAgICAgLCBtX2xvYWRDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGxv
YWRDb21wbGV0aW9uSGFuZGxlcikpCiAgICAgICAgICwgbV9sb2FkSHlzdGVyZXNpc0FjdGl2aXR5
KFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpI
eXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIG1hcmtMb2FkQXNDb21wbGV0ZWQoKTsgfSkKKyAgICAg
ICAgLCBtX2lzVG9wTWFpblJlc291cmNlTG9hZChpc1RvcE1haW5SZXNvdXJjZUxvYWQpCiAgICAg
ewogICAgICAgICBtX2xvYWRIeXN0ZXJlc2lzQWN0aXZpdHkuaW1wdWxzZSgpOwogICAgIH0KQEAg
LTI0Miw4ICsyNTQsMTEgQEAgcHJpdmF0ZToKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9s
b2FkQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgUEFMOjpIeXN0ZXJlc2lzQWN0aXZpdHkgbV9sb2Fk
SHlzdGVyZXNpc0FjdGl2aXR5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNvdXJjZXNFbnRy
eT4gbV9leGlzdGluZ0VudHJ5OworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3Bvc3RN
YWluUmVzb3VyY2VSZXNwb25zZVRhc2tzOwogICAgIGJvb2wgbV9kaWRGaW5pc2hMb2FkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZGlkUmV0cmlldmVFeGlzdGluZ0VudHJ5IHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNlIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNUb3BNYWluUmVzb3VyY2VMb2FkIHsgZmFsc2UgfTsKIH07CiAKIFNwZWN1bGF0aXZl
TG9hZE1hbmFnZXI6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXIoQ2FjaGUmIGNhY2hlLCBTdG9yYWdl
JiBzdG9yYWdlKQpAQCAtMzIzLDE0ICszMzgsMjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5h
Z2VyOjpyZXRyaWV2ZShjb25zdCBLZXkmIHN0b3JhZ2VLZXksIFJldHJpZXZlQ29tcGxldGlvbkgK
ICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTG9h
ZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IEtleSYgcmVzb3VyY2VLZXkpCitib29sIFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI6OnNob3VsZFJlZ2lzdGVyTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCit7CisgICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTG9h
ZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgaXNUb3BNYWluUmVzb3VyY2VMb2FkLCBjb25zdCBLZXkmIHJlc291cmNlS2V5
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKHJlcXVlc3Qu
dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKIAotICAgIGlmIChyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSAhPSAiR0VUIikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcmVxdWVzdC5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlKS5pc0VtcHR5KCkpCisgICAgaWYgKCFz
aG91bGRSZWdpc3RlckxvYWQocmVxdWVzdCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
aXNNYWluUmVzb3VyY2UgPSByZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6
UmVxdWVzdGVyOjpNYWluOwpAQCAtMzQyLDcgKzM2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6cmVnaXN0ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0
IFJlCiAgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nRnJhbWVMb2Fkcy5jb250YWlucyhmcmFtZUlE
KSk7CiAKICAgICAgICAgLy8gU3RhcnQgdHJhY2tpbmcgbG9hZHMgaW4gdGhpcyBmcmFtZS4KLSAg
ICAgICAgYXV0byBwZW5kaW5nRnJhbWVMb2FkID0gUGVuZGluZ0ZyYW1lTG9hZDo6Y3JlYXRlKG1f
c3RvcmFnZSwgcmVzb3VyY2VLZXksIFt0aGlzLCBmcmFtZUlEXSB7CisgICAgICAgIGF1dG8gcGVu
ZGluZ0ZyYW1lTG9hZCA9IFBlbmRpbmdGcmFtZUxvYWQ6OmNyZWF0ZShtX3N0b3JhZ2UsIHJlc291
cmNlS2V5LCBpc1RvcE1haW5SZXNvdXJjZUxvYWQsIFt0aGlzLCBmcmFtZUlEXSB7CiAgICAgICAg
ICAgICBib29sIHdhc1JlbW92ZWQgPSBtX3BlbmRpbmdGcmFtZUxvYWRzLnJlbW92ZShmcmFtZUlE
KTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQod2FzUmVtb3ZlZCwgd2FzUmVtb3ZlZCk7CiAg
ICAgICAgIH0pOwpAQCAtMzYyLDYgKzM4NCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI6OnJlZ2lzdGVyTG9hZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZQog
ICAgICAgICBwZW5kaW5nRnJhbWVMb2FkLT5yZWdpc3RlclN1YnJlc291cmNlTG9hZChyZXF1ZXN0
LCByZXNvdXJjZUtleSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0
ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgS2V5JiByZXNvdXJjZUtleSkKK3sKKyAg
ICBpZiAoIXNob3VsZFJlZ2lzdGVyTG9hZChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHJlc3BvbnNlLmlzUmVkaXJlY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGF1dG8qIHBlbmRpbmdGcmFtZUxvYWQgPSBtX3BlbmRpbmdGcmFtZUxvYWRzLmdldChmcmFt
ZUlEKSkKKyAgICAgICAgcGVuZGluZ0ZyYW1lTG9hZC0+bWFya01haW5SZXNvdXJjZVJlc3BvbnNl
QXNSZWNlaXZlZCgpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OmFkZFByZWxv
YWRlZEVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4gZW50cnksIGNvbnN0IEdsb2JhbEZyYW1l
SUQmIGZyYW1lSUQsIE9wdGlvbmFsPFJlc291cmNlUmVxdWVzdD4mJiByZXZhbGlkYXRpb25SZXF1
ZXN0KQogewogICAgIEFTU0VSVChlbnRyeSk7CkBAIC00MjcsNiArNDYxLDE3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVMb2FkTWFuYWdlcjo6cmV2YWxpZGF0ZVN1YnJlc291cmNlKGNvbnN0IFN1YnJlc291
cmNlSW5mbyYgc3VicmVzCiAgICAgaWYgKCFrZXkucmFuZ2UoKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gdGhpcyBvbiBpT1MgdG9vIChy
ZGFyOi8vcHJvYmxlbS81NzA2Mzg0MCkgb25jZSB3ZSd2ZSBhZGRyZXNzZWQgdGhlIHBlcmZvcm1h
bmNlIGNvbmNlcm5zLgorI2lmICFQTEFURk9STShJT1MpCisgICAgYXV0byogcGVuZGluZ0xvYWQg
PSBtX3BlbmRpbmdGcmFtZUxvYWRzLmdldChmcmFtZUlEKTsKKyAgICBpZiAocGVuZGluZ0xvYWQg
JiYgIXBlbmRpbmdMb2FkLT5kaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UoKSAmJiBwZW5k
aW5nTG9hZC0+aXNUb3BNYWluUmVzb3VyY2VMb2FkKCkgJiYgc3VicmVzb3VyY2VJbmZvLmlzRmly
c3RQYXJ0eSgpKSB7CisgICAgICAgIHBlbmRpbmdMb2FkLT5hZGRQb3N0TWFpblJlc291cmNlUmVz
cG9uc2VUYXNrKFt0aGlzLCBzdWJyZXNvdXJjZUluZm8sIGVudHJ5ID0gV1RGTW92ZShlbnRyeSks
IGZyYW1lSURdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICByZXZhbGlkYXRlU3VicmVzb3VyY2Uo
c3VicmVzb3VyY2VJbmZvLCBXVEZNb3ZlKGVudHJ5KSwgZnJhbWVJRCk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2
YWxpZGF0aW9uUmVxdWVzdCA9IGNvbnN0cnVjdFJldmFsaWRhdGlvblJlcXVlc3Qoa2V5LCBzdWJy
ZXNvdXJjZUluZm8sIGVudHJ5LmdldCgpKTsKIAogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZVByZWxvYWRpbmcsICIoTmV0d29ya1Byb2Nlc3MpIFNwZWN1bGF0aXZlbHkgcmV2YWxpZGF0
aW5nICclcyc6Iiwga2V5LmlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKaW5kZXggM2FmNGZkYjgxMjFmZDdjNWU5
MThhMDM5YjQwMGE1ZjNhM2E4NmVmYS4uNGQ1MjdhYmVhYmRlNTVhYWQzMzQzZGVhOWU2NzUxMzFh
NjE5MTE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgK
QEAgLTQ5LDcgKzQ5LDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFNwZWN1bGF0aXZlTG9hZE1h
bmFnZXIoQ2FjaGUmLCBTdG9yYWdlJik7CiAgICAgflNwZWN1bGF0aXZlTG9hZE1hbmFnZXIoKTsK
IAotICAgIHZvaWQgcmVnaXN0ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBLZXkmIHJlc291cmNlS2V5KTsKKyAgICB2b2lk
IHJlZ2lzdGVyTG9hZChjb25zdCBHbG9iYWxGcmFtZUlEJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgYm9vbCBpc1RvcE1haW5SZXNvdXJjZUxvYWQsIGNvbnN0IEtleSYgcmVzb3Vy
Y2VLZXkpOworICAgIHZvaWQgcmVnaXN0ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoY29uc3Qg
R2xvYmFsRnJhbWVJRCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBLZXkmIHJlc291cmNlS2V5KTsKIAogICAg
IHR5cGVkZWYgRnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPEVudHJ5Pik+IFJldHJpZXZl
Q29tcGxldGlvbkhhbmRsZXI7CiAKQEAgLTU5LDYgKzYwLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBjbGFzcyBQcmVsb2FkZWRFbnRyeTsKIAorICAgIHN0YXRpYyBib29sIHNob3VsZFJlZ2lz
dGVyTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGFkZFBy
ZWxvYWRlZEVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4sIGNvbnN0IEdsb2JhbEZyYW1lSUQm
LCBPcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q+JiYgcmV2YWxpZGF0aW9uUmVxdWVz
dCA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBwcmVsb2FkRW50cnkoY29uc3QgS2V5JiwgY29u
c3QgU3VicmVzb3VyY2VJbmZvJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYpOwogICAgIHZvaWQgcmV0
cmlldmVFbnRyeUZyb21TdG9yYWdlKGNvbnN0IFN1YnJlc291cmNlSW5mbyYsIFJldHJpZXZlQ29t
cGxldGlvbkhhbmRsZXImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3Bw
CmluZGV4IDYzYWQwNDA5ZmRkMjM2ZjZlM2MyY2EzMGU4N2U0YTdjMGEyOTU5MGQuLmIwNTkwZjEw
ZmMzMjViZTk5MDIzN2FlMWUwZjYyNzE4MDRmZWJjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Vi
cmVzb3VyY2VzRW50cnkuY3BwCkBAIC04MSw2ICs4MSwxMSBAQCBib29sIFN1YnJlc291cmNlSW5m
bzo6ZGVjb2RlKFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXImIGRlY29kZXIsIFN1YnJlc291cmNl
SW5mbwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFN1YnJlc291cmNlSW5mbzo6aXNGaXJz
dFBhcnR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4ga2V5KCkuaWRlbnRpZmllcigpLnN0YXJ0c1dp
dGgobV9maXJzdFBhcnR5Rm9yQ29va2llcy5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworfQorCiBT
dG9yYWdlOjpSZWNvcmQgU3VicmVzb3VyY2VzRW50cnk6OmVuY29kZUFzU3RvcmFnZVJlY29yZCgp
IGNvbnN0CiB7CiAgICAgV1RGOjpQZXJzaXN0ZW5jZTo6RW5jb2RlciBlbmNvZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJy
ZXNvdXJjZXNFbnRyeS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oCmluZGV4IDQzOTIxYTAwMjRlOTdkZDM2ZjBkMjIx
ODUxZWM0YWU5ODc2MWExNzEuLjZmZTk1MzA1MjQ4NzA1ZTIzYmFmMDNjNTlmOWMzNjA2MmFjZWM3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3VicmVzb3VyY2VzRW50cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgKQEAgLTU4LDYgKzU4LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXROb25UcmFuc2llbnQoKSB7IG1faXNUcmFuc2llbnQg
PSBmYWxzZTsgfQogCisgICAgYm9vbCBpc0ZpcnN0UGFydHkoKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBLZXkgbV9rZXk7CiAgICAgV2FsbFRpbWUgbV9sYXN0U2VlbjsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZjAzYWNh
ZjU3NWY3OGEyNDg3NTBkYWZiNGYxZTllYWFmMGMyZTA4Li5mNTEwOGYzZGQ1NGIzNGI3YTFiNmY3
ZWQ2ZDIyNGVmZDJlYWE0NDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTEtMTggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBsb2Fk
aW5nIHNvbWV0aW1lcyBoYXBwZW5zIHRvbyBlYXJseSBhbmQgaXMgbWlzc2luZyBsb2dpbiBjb29r
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQz
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDYzODQwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCBsYXlvdXQgdGVzdCBjb3ZlcmFn
ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsaWRhdGlvbiByZXF1ZXN0IGNvbnRhaW5zIHRoZSBs
YXRlc3QgY29va2llcworICAgICAgICBzZXQgYnkgdGhlIG1haW4gcmVzb3VyY2UuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi9y
ZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJl
cXVlc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNo
ZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC5odG1sOgorCiAyMDE5
LTExLTE1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBM
YXlvdXQgdGVzdCBhbmltYXRpb25zL25vLXN0eWxlLXJlY2FsYy1kdXJpbmctYWNjZWxlcmF0ZWQt
YW5pbWF0aW9uLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vcmVzb3VyY2VzL3Zh
bGlkYXRpb24tcmVxdWVzdC1mcmFtZS5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1y
ZXF1ZXN0LWZyYW1lLnBocAppbmRleCBkODhjOTY2NjE0NzY3MDVmMjJlYmY2NTIwN2U5ZTc4M2E5
Yjg2MzQwLi40Y2IzNjIxZDI4NjRkNzMzNjMwZWQ4MmUyYTRiMjE3NDEwMmIzMDRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUt
dmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRh
dGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocApAQCAtMiw5ICsyLDE1
IEBACiBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sJyk7CiBoZWFkZXIoJ0NhY2hlLUNv
bnRyb2w6IG1heC1hZ2U9MCcpOwogaGVhZGVyKCdFdGFnOiAxMjM0NTY3ODknKTsKLQorJGNvb2tp
ZSA9ICJzcGVjdWxhdGl2ZVJlcXVlc3RWYWxpZGF0aW9uPSIgLiB1bmlxaWQoKTsKK2hlYWRlcign
U2V0LUNvb2tpZTogJyAuICRjb29raWUpOwogPz4KIDwhRE9DVFlQRSBodG1sPgogPGJvZHk+CiA8
c2NyaXB0IHNyYz0icmVxdWVzdC1oZWFkZXJzLXNjcmlwdC5waHAiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKzw/cGhwCitlY2hvICJzZW50U2V0Q29va2llSGVhZGVyID0gJyIgLiAkY29va2llIC4gIic7
IjsKKz8+Cis8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24t
cmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2st
Y2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QtZXhwZWN0ZWQu
dHh0CmluZGV4IGNhNDgyMjMzODFmNTRiMzU3MjYzYjRlNDQ3NjUzNDVjNWUxNWE5OTcuLjFjMTJl
YjBmZWM3YWMwMjgyM2FlMmRmY2U4MjMxZDNiMGViYjFkMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Zh
bGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1
ZXN0LWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdJZi1Ob25lLU1hdGNoJykgaXMgIjEy
MzQ1Njc4OSIKK1BBU1MgaXNDb29raWVIZWFkZXJDb3JyZWN0IGlzIHRydWUKIFBBU1MgdmFsaWRh
dGlvblJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcpIGlzIGluaXRpYWxIZWFkZXJWYWx1ZXNbJ0FjY2Vw
dCddCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdBY2NlcHQtRW5jb2RpbmcnKSBpcyBp
bml0aWFsSGVhZGVyVmFsdWVzWydBY2NlcHQtRW5jb2RpbmcnXQogUEFTUyB2YWxpZGF0aW9uUmVx
dWVzdEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJykgaXMgaW5pdGlhbEhlYWRlclZhbHVlc1snQWNj
ZXB0LUxhbmd1YWdlJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUv
ZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZh
bGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwKaW5kZXggZGU2YTU4ZDNlMjIxOWJlODlk
YjBkMGNhODEwMTA4YWUwNjJmZGFmNS4uODFjNGY2MTVjNzAwZDNlZTRkNWE5ZmExM2I0Y2QzODQz
MTY5NTllOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNh
Y2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlk
YXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwKQEAgLTM3LDYgKzM3LDggQEAgZnVuY3Rpb24g
ZnJhbWVMb2FkZWQoKQogICAgIGlmIChzdGF0ZSA9PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24i
KSB7CiAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSBIVFRQIGhlYWRlcnMgb2YgdGhlIHNwZWN1bGF0
aXZlIHZhbGlkYXRpb24gcmVxdWVzdC4KICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ2
YWxpZGF0aW9uUmVxdWVzdEhlYWRlcignSWYtTm9uZS1NYXRjaCcpIiwgIjEyMzQ1Njc4OSIpOwor
ICAgICAgICBpc0Nvb2tpZUhlYWRlckNvcnJlY3QgPSB2YWxpZGF0aW9uUmVxdWVzdEhlYWRlcign
Q29va2llJykgPT09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5jb250ZW50
V2luZG93LnNlbnRTZXRDb29raWVIZWFkZXI7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaXNDb29r
aWVIZWFkZXJDb3JyZWN0Iik7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJz
VG9DaGVjay5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgaGVhZGVyVG9DaGVjayA9IGhlYWRl
cnNUb0NoZWNrW2ldOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383784</attachid>
            <date>2019-11-18 13:39:03 -0800</date>
            <delta_ts>2019-11-22 07:56:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204305-20191118133858.patch</filename>
            <type>text/plain</type>
            <size>21700</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQxMzAzZDgwZTM4N2E1ZjIx
NTVhYjlhODFjYTUyMWI4NTExM2IwZWYuLjBlYjViNTAwZTkzYTJiMGZkZWVhMDEwYzA2MDQ2OGMw
ZjAzYzU0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMTEtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBsb2FkaW5nIHNv
bWV0aW1lcyBoYXBwZW5zIHRvbyBlYXJseSBhbmQgaXMgbWlzc2luZyBsb2dpbiBjb29raWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMDUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDYzODQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWN1bGF0aXZlIGxvYWRzIHdlcmUgaXNzdWVkIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIHJlc3BvbnNlIGZyb20gdGhlIG1haW4gcmVzb3VyY2UuIEhvd2V2
ZXIsCisgICAgICAgIHRoZSBtYWluIHJlc291cmNlIG1heSBzZXQgaW1wb3J0YW50IGNvb2tpZXMg
dGhhdCBhcmUgdGh1cyBtaXNzaW5nIGZyb20gdGhlIHNwZWN1bGF0aXZlIHJlcXVlc3RzLgorCisg
ICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlIHdlIG5vdyBkZWxheSBzb21lIHNwZWN1bGF0aXZl
IGxvYWRzIHVudGlsIHdlJ3ZlIHJlY2VpdmVkIHRoZSByZXNwb25zZSBmcm9tCisgICAgICAgIHRo
ZSBtYWluIHJlc291cmNlLiBUbyBnZXQgYXMgbXVjaCBwZXJmb3JtYW5jZSBhcyBwb3NzaWJsZSB3
aGlsZSBtaXRpZ2F0aW5nIHRoZSByaXNrLCB3ZSBvbmx5CisgICAgICAgIGRlbGF5IHNwZWN1bGF0
aXZlIGxvYWRzIG9mIGZpcnN0LXBhcnR5IHJlc291cmNlcyAod2hpY2ggbWF5IHJlbHkgb24gdGhl
IG1haW4gcmVzb3VyY2UgY29va2llcykKKyAgICAgICAgYW5kIG9ubHkgaW4gdGhlIHRvcCBmcmFt
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgdGVzdC4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2Fj
aGVFbnRyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6cmVnaXN0ZXJNYWluUmVz
b3VyY2VMb2FkUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hl
OjpyZXRyaWV2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3Vs
YXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpQZW5kaW5nRnJhbWVM
b2FkOjpkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxv
YWQ6Om1hcmtNYWluUmVzb3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6
OmlzVG9wTWFpblJlc291cmNlTG9hZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6YWRkUG9zdE1h
aW5SZXNvdXJjZVJlc3BvbnNlVGFzayk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6UGVuZGluZ0ZyYW1lTG9hZDo6UGVuZGluZ0ZyYW1lTG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdl
cjo6UGVuZGluZ0ZyYW1lTG9hZDo6bV9pc1RvcE1haW5SZXNvdXJjZUxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnNob3VsZFJlZ2lz
dGVyTG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6cmVnaXN0ZXJMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdpc3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6
cmV2YWxpZGF0ZVN1YnJlc291cmNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6aXNGaXJzdFBhcnR5IGNvbnN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJj
ZXNFbnRyeS5oOgorCiAyMDE5LTExLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlXSBFbmFibGUgdmFyaWF0aW9uIGZvbnRzIG9uIGFs
bCBBcHBsZSBwbGF0Zm9ybXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjNjNjMGEwMjVjYjg3YzJiMjRhZjE5
YTMxZTcxY2YyNjJlYTQ3NTY3Li4wN2MyZGQyZTE1MmFhZGI2ZmFjODYwNGFkMjA4ZThkMzAzYmI4
NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9jYWNoZS0+cmV0cmll
dmUocmVxdWVzdCwgZ2xvYmFsRnJhbWVJRCgpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0IH1dKGF1dG8gZW50
cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CisgICAgbV9jYWNoZS0+cmV0cmlldmUocmVxdWVzdCwg
Z2xvYmFsRnJhbWVJRCgpLCBpc01haW5GcmFtZUxvYWQoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgcmVxdWVzdCB9XShh
dXRvIGVudHJ5LCBhdXRvIGluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00NjYsNiArNDY2LDkgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2
ZWRSZXNwb24KIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRM
ZW5ndGgoKSk7CiAKKyAgICBpZiAobV9jYWNoZSAmJiBvcmlnaW5hbFJlcXVlc3QoKS5yZXF1ZXN0
ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbikKKyAgICAgICAgbV9jYWNo
ZS0+cmVnaXN0ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2Uob3JpZ2luYWxSZXF1ZXN0KCksIHJl
Y2VpdmVkUmVzcG9uc2UsIGdsb2JhbEZyYW1lSUQoKSk7CisKICAgICBtX3Jlc3BvbnNlID0gV1RG
TW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MoKSAmJiBtX25ldHdvcmtMb2FkQ2hlY2tlcikgewpAQCAtOTA0LDYgKzkw
Nyw5IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnko
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6CiB7CiAgICAgYXV0byByZXNwb25zZSA9IGVu
dHJ5LT5yZXNwb25zZSgpOwogCisgICAgaWYgKG1fY2FjaGUgJiYgb3JpZ2luYWxSZXF1ZXN0KCku
cmVxdWVzdGVyKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pCisgICAgICAg
IG1fY2FjaGUtPnJlZ2lzdGVyTWFpblJlc291cmNlTG9hZFJlc3BvbnNlKG9yaWdpbmFsUmVxdWVz
dCgpLCByZXNwb25zZSwgZ2xvYmFsRnJhbWVJRCgpKTsKKwogICAgIGlmIChpc01haW5SZXNvdXJj
ZSgpICYmIHNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0
aW9ucyhyZXNwb25zZSkpIHsKICAgICAgICAgcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQ
b3NzaWJsZShXVEZNb3ZlKHJlc3BvbnNlKSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9u
VHlwZTo6Q3Jvc3NPcmlnaW5TYWZlKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3Vy
Y2VMb2FkZXI6OlN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQ
b2xpY3lEZW5pZWQgeyByZXNwb25zZSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCAyNzVlMDBlZThiMDY4Y2Y5ZmJm
NTQzNjdiY2U3Njg1MWI1ODQwMzY4Li4wOGM0ODA5NTY5NTU4ZGQ2NGE0YTUxN2Y0ZTYxMzhlMTM1
YTdkMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCkBAIC0zMjcsNyArMzI3LDE2IEBAIHZvaWQgQ2FjaGU6OnN0YXJ0QXN5
bmNSZXZhbGlkYXRpb25JZk5lZWRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlCiB9CiAjZW5kaWYKIAotdm9pZCBDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBSZXRy
aWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIENhY2hlOjpy
ZWdpc3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlEKQoreworI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikKKyAgICBib29sIGNhblVzZVNwZWN1bGF0aXZl
UmV2YWxpZGF0aW9uID0gbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyICYmIGNhblJlcXVlc3RVc2VT
cGVjdWxhdGl2ZVJldmFsaWRhdGlvbihyZXF1ZXN0KTsKKyAgICBpZiAoY2FuVXNlU3BlY3VsYXRp
dmVSZXZhbGlkYXRpb24pCisgICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci0+cmVnaXN0
ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoZnJhbWVJRCwgcmVxdWVzdCwgcmVzcG9uc2UsIG1h
a2VDYWNoZUtleShyZXF1ZXN0KSk7CisjZW5kaWYKK30KKwordm9pZCBDYWNoZTo6cmV0cmlldmUo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBHbG9iYWxGcmFt
ZUlEJiBmcmFtZUlELCBib29sIGlzVG9wTWFpblJlc291cmNlTG9hZCwgUmV0cmlldmVDb21wbGV0
aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChyZXF1ZXN0LnVy
bCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7CiAKQEAgLTM0Myw3ICszNTIsNyBAQCB2b2lk
IENhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IEdsb2JhbEZyYW1lSQogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikKICAgICBib29sIGNhblVzZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uID0g
bV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyICYmIGNhblJlcXVlc3RVc2VTcGVjdWxhdGl2ZVJldmFs
aWRhdGlvbihyZXF1ZXN0KTsKICAgICBpZiAoY2FuVXNlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb24p
Ci0gICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlci0+cmVnaXN0ZXJMb2FkKGZyYW1lSUQs
IHJlcXVlc3QsIHN0b3JhZ2VLZXkpOworICAgICAgICBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIt
PnJlZ2lzdGVyTG9hZChmcmFtZUlELCByZXF1ZXN0LCBpc1RvcE1haW5SZXNvdXJjZUxvYWQsIHN0
b3JhZ2VLZXkpOwogI2VuZGlmCiAKICAgICBhdXRvIHJldHJpZXZlRGVjaXNpb24gPSBtYWtlUmV0
cmlldmVEZWNpc2lvbihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDUzNTQwYWVkOGVjMDVkNTU2MjhhN2M2ZTM4
NGIzMDYyNDI5N2JjOTMuLmE5ZDE2NzkyYzMzOGMxMTE1ZmQyMmEzZWQ3ZTM3Y2QyYjA1ZjM2NTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuaApAQCAtMTQwLDExICsxNDAsMTMgQEAgcHVibGljOgogICAgICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICB9OwogICAgIHVzaW5nIFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXIg
PSBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4sIGNvbnN0IFJldHJpZXZlSW5m
byYpPjsKLSAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBSZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAg
IHZvaWQgcmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgR2xv
YmFsRnJhbWVJRCYsIGJvb2wgaXNUb3BNYWluUmVzb3VyY2VMb2FkLCBSZXRyaWV2ZUNvbXBsZXRp
b25IYW5kbGVyJiYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4gc3RvcmUoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIEZ1bmN0aW9uPHZvaWQoTWFwcGVkQm9k
eSYpPiYmID0gbnVsbHB0cik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVudHJ5PiBzdG9yZVJlZGly
ZWN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlZGlyZWN0UmVx
dWVzdCwgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FwKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RW50cnk+IHVwZGF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBHbG9i
YWxGcmFtZUlEJiwgY29uc3QgRW50cnkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiB2YWxpZGF0aW5nUmVzcG9uc2UpOwogCisgICAgdm9pZCByZWdpc3Rlck1haW5SZXNvdXJjZUxv
YWRSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgR2xvYmFsRnJhbWVJRCYpOworCiAgICAgc3RydWN0
IFRyYXZlcnNhbEVudHJ5IHsKICAgICAgICAgY29uc3QgRW50cnkmIGVudHJ5OwogICAgICAgICBj
b25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKaW5kZXggOTgwNmY2MmVhN2JiMDVjMGMzZWQ3
MmFhZmRlNzQzZGQ1ZWRhYjgzMS4uOTVkZTFhY2IzOTNjMzJjMDcxMTIzMjM1Y2VhMDIyODYxNjgw
ZjM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3Bw
CkBAIC0xNjAsOSArMTYwLDkgQEAgcHJpdmF0ZToKIAogY2xhc3MgU3BlY3VsYXRpdmVMb2FkTWFu
YWdlcjo6UGVuZGluZ0ZyYW1lTG9hZCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdGcmFtZUxv
YWQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBlbmRpbmdGcmFtZUxvYWQ+IGNyZWF0ZShT
dG9yYWdlJiBzdG9yYWdlLCBjb25zdCBLZXkmIG1haW5SZXNvdXJjZUtleSwgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8UGVuZGlu
Z0ZyYW1lTG9hZD4gY3JlYXRlKFN0b3JhZ2UmIHN0b3JhZ2UsIGNvbnN0IEtleSYgbWFpblJlc291
cmNlS2V5LCBib29sIGlzVG9wTWFpblJlc291cmNlTG9hZCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGVuZGluZ0ZyYW1lTG9hZChzdG9yYWdlLCBtYWluUmVzb3VyY2VLZXksIFdURk1vdmUo
bG9hZENvbXBsZXRpb25IYW5kbGVyKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQ
ZW5kaW5nRnJhbWVMb2FkKHN0b3JhZ2UsIG1haW5SZXNvdXJjZUtleSwgaXNUb3BNYWluUmVzb3Vy
Y2VMb2FkLCBXVEZNb3ZlKGxvYWRDb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9CiAKICAgICB+
UGVuZGluZ0ZyYW1lTG9hZCgpCkBAIC0yMDMsMTIgKzIwMywyNCBAQCBwdWJsaWM6CiAgICAgICAg
IHNhdmVUb0Rpc2tJZlJlYWR5KCk7CiAgICAgfQogCisgICAgYm9vbCBkaWRSZWNlaXZlTWFpblJl
c291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VS
ZXNwb25zZTsgfQorICAgIHZvaWQgbWFya01haW5SZXNvdXJjZVJlc3BvbnNlQXNSZWNlaXZlZCgp
CisgICAgeworICAgICAgICBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZSA9IHRydWU7
CisgICAgICAgIGZvciAoYXV0byYgdGFzayA6IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFz
a3MpCisgICAgICAgICAgICB0YXNrKCk7CisgICAgfQorCisgICAgYm9vbCBpc1RvcE1haW5SZXNv
dXJjZUxvYWQoKSBjb25zdCB7IHJldHVybiBtX2lzVG9wTWFpblJlc291cmNlTG9hZDsgfQorICAg
IHZvaWQgYWRkUG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYg
dGFzaykgeyBtX3Bvc3RNYWluUmVzb3VyY2VSZXNwb25zZVRhc2tzLmFwcGVuZChXVEZNb3ZlKHRh
c2spKTsgfQorCiBwcml2YXRlOgotICAgIFBlbmRpbmdGcmFtZUxvYWQoU3RvcmFnZSYgc3RvcmFn
ZSwgY29uc3QgS2V5JiBtYWluUmVzb3VyY2VLZXksIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGxv
YWRDb21wbGV0aW9uSGFuZGxlcikKKyAgICBQZW5kaW5nRnJhbWVMb2FkKFN0b3JhZ2UmIHN0b3Jh
Z2UsIGNvbnN0IEtleSYgbWFpblJlc291cmNlS2V5LCBib29sIGlzVG9wTWFpblJlc291cmNlTG9h
ZCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgICAg
ICA6IG1fc3RvcmFnZShzdG9yYWdlKQogICAgICAgICAsIG1fbWFpblJlc291cmNlS2V5KG1haW5S
ZXNvdXJjZUtleSkKICAgICAgICAgLCBtX2xvYWRDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGxv
YWRDb21wbGV0aW9uSGFuZGxlcikpCiAgICAgICAgICwgbV9sb2FkSHlzdGVyZXNpc0FjdGl2aXR5
KFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpI
eXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIG1hcmtMb2FkQXNDb21wbGV0ZWQoKTsgfSkKKyAgICAg
ICAgLCBtX2lzVG9wTWFpblJlc291cmNlTG9hZChpc1RvcE1haW5SZXNvdXJjZUxvYWQpCiAgICAg
ewogICAgICAgICBtX2xvYWRIeXN0ZXJlc2lzQWN0aXZpdHkuaW1wdWxzZSgpOwogICAgIH0KQEAg
LTI0Miw4ICsyNTQsMTEgQEAgcHJpdmF0ZToKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9s
b2FkQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgUEFMOjpIeXN0ZXJlc2lzQWN0aXZpdHkgbV9sb2Fk
SHlzdGVyZXNpc0FjdGl2aXR5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNvdXJjZXNFbnRy
eT4gbV9leGlzdGluZ0VudHJ5OworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3Bvc3RN
YWluUmVzb3VyY2VSZXNwb25zZVRhc2tzOwogICAgIGJvb2wgbV9kaWRGaW5pc2hMb2FkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZGlkUmV0cmlldmVFeGlzdGluZ0VudHJ5IHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNlIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNUb3BNYWluUmVzb3VyY2VMb2FkIHsgZmFsc2UgfTsKIH07CiAKIFNwZWN1bGF0aXZl
TG9hZE1hbmFnZXI6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXIoQ2FjaGUmIGNhY2hlLCBTdG9yYWdl
JiBzdG9yYWdlKQpAQCAtMzIzLDE0ICszMzgsMjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5h
Z2VyOjpyZXRyaWV2ZShjb25zdCBLZXkmIHN0b3JhZ2VLZXksIFJldHJpZXZlQ29tcGxldGlvbkgK
ICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTG9h
ZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IEtleSYgcmVzb3VyY2VLZXkpCitib29sIFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI6OnNob3VsZFJlZ2lzdGVyTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCit7CisgICAgaWYgKHJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTG9h
ZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgaXNUb3BNYWluUmVzb3VyY2VMb2FkLCBjb25zdCBLZXkmIHJlc291cmNlS2V5
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKHJlcXVlc3Qu
dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKIAotICAgIGlmIChyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSAhPSAiR0VUIikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcmVxdWVzdC5odHRw
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlKS5pc0VtcHR5KCkpCisgICAgaWYgKCFz
aG91bGRSZWdpc3RlckxvYWQocmVxdWVzdCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
aXNNYWluUmVzb3VyY2UgPSByZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6
UmVxdWVzdGVyOjpNYWluOwpAQCAtMzQyLDcgKzM2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6cmVnaXN0ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0
IFJlCiAgICAgICAgIEFTU0VSVCghbV9wZW5kaW5nRnJhbWVMb2Fkcy5jb250YWlucyhmcmFtZUlE
KSk7CiAKICAgICAgICAgLy8gU3RhcnQgdHJhY2tpbmcgbG9hZHMgaW4gdGhpcyBmcmFtZS4KLSAg
ICAgICAgYXV0byBwZW5kaW5nRnJhbWVMb2FkID0gUGVuZGluZ0ZyYW1lTG9hZDo6Y3JlYXRlKG1f
c3RvcmFnZSwgcmVzb3VyY2VLZXksIFt0aGlzLCBmcmFtZUlEXSB7CisgICAgICAgIGF1dG8gcGVu
ZGluZ0ZyYW1lTG9hZCA9IFBlbmRpbmdGcmFtZUxvYWQ6OmNyZWF0ZShtX3N0b3JhZ2UsIHJlc291
cmNlS2V5LCBpc1RvcE1haW5SZXNvdXJjZUxvYWQsIFt0aGlzLCBmcmFtZUlEXSB7CiAgICAgICAg
ICAgICBib29sIHdhc1JlbW92ZWQgPSBtX3BlbmRpbmdGcmFtZUxvYWRzLnJlbW92ZShmcmFtZUlE
KTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQod2FzUmVtb3ZlZCwgd2FzUmVtb3ZlZCk7CiAg
ICAgICAgIH0pOwpAQCAtMzYyLDYgKzM4NCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI6OnJlZ2lzdGVyTG9hZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZQog
ICAgICAgICBwZW5kaW5nRnJhbWVMb2FkLT5yZWdpc3RlclN1YnJlc291cmNlTG9hZChyZXF1ZXN0
LCByZXNvdXJjZUtleSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0
ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgS2V5JiByZXNvdXJjZUtleSkKK3sKKyAg
ICBpZiAoIXNob3VsZFJlZ2lzdGVyTG9hZChyZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHJlc3BvbnNlLmlzUmVkaXJlY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGF1dG8qIHBlbmRpbmdGcmFtZUxvYWQgPSBtX3BlbmRpbmdGcmFtZUxvYWRzLmdldChmcmFt
ZUlEKSkKKyAgICAgICAgcGVuZGluZ0ZyYW1lTG9hZC0+bWFya01haW5SZXNvdXJjZVJlc3BvbnNl
QXNSZWNlaXZlZCgpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OmFkZFByZWxv
YWRlZEVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4gZW50cnksIGNvbnN0IEdsb2JhbEZyYW1l
SUQmIGZyYW1lSUQsIE9wdGlvbmFsPFJlc291cmNlUmVxdWVzdD4mJiByZXZhbGlkYXRpb25SZXF1
ZXN0KQogewogICAgIEFTU0VSVChlbnRyeSk7CkBAIC00MjcsNiArNDYxLDE0IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVMb2FkTWFuYWdlcjo6cmV2YWxpZGF0ZVN1YnJlc291cmNlKGNvbnN0IFN1YnJlc291
cmNlSW5mbyYgc3VicmVzCiAgICAgaWYgKCFrZXkucmFuZ2UoKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAorICAgIGF1dG8qIHBlbmRpbmdMb2FkID0gbV9wZW5kaW5nRnJhbWVMb2Fkcy5n
ZXQoZnJhbWVJRCk7CisgICAgaWYgKHBlbmRpbmdMb2FkICYmICFwZW5kaW5nTG9hZC0+ZGlkUmVj
ZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNlKCkgJiYgcGVuZGluZ0xvYWQtPmlzVG9wTWFpblJlc291
cmNlTG9hZCgpICYmIHN1YnJlc291cmNlSW5mby5pc0ZpcnN0UGFydHkoKSkgeworICAgICAgICBw
ZW5kaW5nTG9hZC0+YWRkUG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFzayhbdGhpcywgc3VicmVz
b3VyY2VJbmZvLCBlbnRyeSA9IFdURk1vdmUoZW50cnkpLCBmcmFtZUlEXSgpIG11dGFibGUgewor
ICAgICAgICAgICAgcmV2YWxpZGF0ZVN1YnJlc291cmNlKHN1YnJlc291cmNlSW5mbywgV1RGTW92
ZShlbnRyeSksIGZyYW1lSUQpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0ID0gY29uc3RydWN0UmV2
YWxpZGF0aW9uUmVxdWVzdChrZXksIHN1YnJlc291cmNlSW5mbywgZW50cnkuZ2V0KCkpOwogCiAg
ICAgTE9HKE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGluZywgIihOZXR3b3JrUHJvY2Vz
cykgU3BlY3VsYXRpdmVseSByZXZhbGlkYXRpbmcgJyVzJzoiLCBrZXkuaWRlbnRpZmllcigpLnV0
ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIu
aAppbmRleCAzYWY0ZmRiODEyMWZkN2M1ZTkxOGEwMzliNDAwYTVmM2EzYTg2ZWZhLi40ZDUyN2Fi
ZWFiZGU1NWFhZDMzNDNkZWE5ZTY3NTEzMWE2MTkxMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaApAQCAtNDksNyArNDksOCBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcihDYWNoZSYsIFN0b3JhZ2UmKTsKICAgICB+
U3BlY3VsYXRpdmVMb2FkTWFuYWdlcigpOwogCi0gICAgdm9pZCByZWdpc3RlckxvYWQoY29uc3Qg
R2xvYmFsRnJhbWVJRCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEtl
eSYgcmVzb3VyY2VLZXkpOworICAgIHZvaWQgcmVnaXN0ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1l
SUQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGlzVG9wTWFpblJlc291
cmNlTG9hZCwgY29uc3QgS2V5JiByZXNvdXJjZUtleSk7CisgICAgdm9pZCByZWdpc3Rlck1haW5S
ZXNvdXJjZUxvYWRSZXNwb25zZShjb25zdCBHbG9iYWxGcmFtZUlEJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IEtleSYgcmVzb3VyY2VLZXkpOwogCiAgICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lkIChzdGQ6OnVu
aXF1ZV9wdHI8RW50cnk+KT4gUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlcjsKIApAQCAtNTksNiAr
NjAsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNsYXNzIFByZWxvYWRlZEVudHJ5OwogCisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkUmVnaXN0ZXJMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwogICAgIHZvaWQgYWRkUHJlbG9hZGVkRW50cnkoc3RkOjp1bmlxdWVfcHRyPEVu
dHJ5PiwgY29uc3QgR2xvYmFsRnJhbWVJRCYsIE9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdD4mJiByZXZhbGlkYXRpb25SZXF1ZXN0ID0gV1RGOjpudWxsb3B0KTsKICAgICB2b2lkIHBy
ZWxvYWRFbnRyeShjb25zdCBLZXkmLCBjb25zdCBTdWJyZXNvdXJjZUluZm8mLCBjb25zdCBHbG9i
YWxGcmFtZUlEJik7CiAgICAgdm9pZCByZXRyaWV2ZUVudHJ5RnJvbVN0b3JhZ2UoY29uc3QgU3Vi
cmVzb3VyY2VJbmZvJiwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKaW5kZXggNjNhZDA0MDlmZGQyMzZmNmUzYzJjYTMw
ZTg3ZTRhN2MwYTI5NTkwZC4uYjA1OTBmMTBmYzMyNWJlOTkwMjM3YWUxZTBmNjI3MTgwNGZlYmNj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKQEAgLTgxLDYgKzgx
LDExIEBAIGJvb2wgU3VicmVzb3VyY2VJbmZvOjpkZWNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RGVj
b2RlciYgZGVjb2RlciwgU3VicmVzb3VyY2VJbmZvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jv
b2wgU3VicmVzb3VyY2VJbmZvOjppc0ZpcnN0UGFydHkoKSBjb25zdAoreworICAgIHJldHVybiBr
ZXkoKS5pZGVudGlmaWVyKCkuc3RhcnRzV2l0aChtX2ZpcnN0UGFydHlGb3JDb29raWVzLnByb3Rv
Y29sSG9zdEFuZFBvcnQoKSk7Cit9CisKIFN0b3JhZ2U6OlJlY29yZCBTdWJyZXNvdXJjZXNFbnRy
eTo6ZW5jb2RlQXNTdG9yYWdlUmVjb3JkKCkgY29uc3QKIHsKICAgICBXVEY6OlBlcnNpc3RlbmNl
OjpFbmNvZGVyIGVuY29kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgKaW5k
ZXggNDM5MjFhMDAyNGU5N2RkMzZmMGQyMjE4NTFlYzRhZTk4NzYxYTE3MS4uNmZlOTUzMDUyNDg3
MDVlMjNiYWYwM2M1OWY5YzM2MDYyYWNlYzdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5vblRy
YW5zaWVudCgpIHsgbV9pc1RyYW5zaWVudCA9IGZhbHNlOyB9CiAKKyAgICBib29sIGlzRmlyc3RQ
YXJ0eSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEtleSBtX2tleTsKICAgICBXYWxsVGltZSBt
X2xhc3RTZWVuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGFmMDNhY2FmNTc1Zjc4YTI0ODc1MGRhZmI0ZjFlOWVhYWYwYzJl
MDguLmY1MTA4ZjNkZDU0YjM0YjdhMWI2ZjdlZDZkMjI0ZWZkMmVhYTQ0NDQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxOS0xMS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFNwZWN1bGF0aXZlIGxvYWRpbmcgc29tZXRpbWVzIGhhcHBlbnMgdG9vIGVhcmx5
IGFuZCBpcyBtaXNzaW5nIGxvZ2luIGNvb2tpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDMwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcw
NjM4NDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXh0ZW5kIGxheW91dCB0ZXN0IGNvdmVyYWdlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB2YWxpZGF0
aW9uIHJlcXVlc3QgY29udGFpbnMgdGhlIGxhdGVzdCBjb29raWVzCisgICAgICAgIHNldCBieSB0
aGUgbWFpbiByZXNvdXJjZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNo
ZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJh
bWUucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2
ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRh
dGlvbi1yZXF1ZXN0Lmh0bWw6CisKIDIwMTktMTEtMTUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCB0ZXN0IGFuaW1hdGlvbnMvbm8tc3R5bGUt
cmVjYWxjLWR1cmluZy1hY2NlbGVyYXRlZC1hbmltYXRpb24uaHRtbCBpcyBmYWlsaW5nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRp
dmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0
aW9uL3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJhbWUucGhwCmluZGV4IGQ4OGM5NjY2
MTQ3NjcwNWYyMmViZjY1MjA3ZTllNzgzYTliODYzNDAuLjRjYjM2MjFkMjg2NGQ3MzM2MzBlZDgy
ZTJhNGIyMTc0MTAyYjMwNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Jlc291cmNlcy92YWxpZGF0aW9u
LXJlcXVlc3QtZnJhbWUucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlz
ay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVl
c3QtZnJhbWUucGhwCkBAIC0yLDkgKzIsMTUgQEAKIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0
L2h0bWwnKTsKIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbWF4LWFnZT0wJyk7CiBoZWFkZXIoJ0V0
YWc6IDEyMzQ1Njc4OScpOwotCiskY29va2llID0gInNwZWN1bGF0aXZlUmVxdWVzdFZhbGlkYXRp
b249IiAuIHVuaXFpZCgpOworaGVhZGVyKCdTZXQtQ29va2llOiAnIC4gJGNvb2tpZSk7CiA/Pgog
PCFET0NUWVBFIGh0bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3JjPSJyZXF1ZXN0LWhlYWRlcnMtc2Ny
aXB0LnBocCI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorPD9waHAKK2VjaG8gInNlbnRTZXRDb29raWVI
ZWFkZXIgPSAnIiAuICRjb29raWUgLiAiJzsiOworPz4KKzwvc2NyaXB0PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0
aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Zh
bGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKaW5kZXggY2E0ODIyMzM4MWY1NGIzNTcyNjNi
NGU0NDc2NTM0NWM1ZTE1YTk5Ny4uMWMxMmViMGZlYzdhYzAyODIzYWUyZGZjZTgyMzFkM2IwZWJi
MWQxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hl
L3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUt
dmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNyBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgdmFsaWRhdGlvblJlcXVlc3RIZWFk
ZXIoJ0lmLU5vbmUtTWF0Y2gnKSBpcyAiMTIzNDU2Nzg5IgorUEFTUyBpc0Nvb2tpZUhlYWRlckNv
cnJlY3QgaXMgdHJ1ZQogUEFTUyB2YWxpZGF0aW9uUmVxdWVzdEhlYWRlcignQWNjZXB0JykgaXMg
aW5pdGlhbEhlYWRlclZhbHVlc1snQWNjZXB0J10KIFBBU1MgdmFsaWRhdGlvblJlcXVlc3RIZWFk
ZXIoJ0FjY2VwdC1FbmNvZGluZycpIGlzIGluaXRpYWxIZWFkZXJWYWx1ZXNbJ0FjY2VwdC1FbmNv
ZGluZyddCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnKSBp
cyBpbml0aWFsSGVhZGVyVmFsdWVzWydBY2NlcHQtTGFuZ3VhZ2UnXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRp
b24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QuaHRt
bAppbmRleCBkZTZhNThkM2UyMjE5YmU4OWRiMGQwY2E4MTAxMDhhZTA2MmZkYWY1Li44MWM0ZjYx
NWM3MDBkM2VlNGQ1YTlmYTEzYjRjZDM4NDMxNjk1OWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxp
ZGF0aW9uLXJlcXVlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rp
c2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QuaHRtbApA
QCAtMzcsNiArMzcsOCBAQCBmdW5jdGlvbiBmcmFtZUxvYWRlZCgpCiAgICAgaWYgKHN0YXRlID09
ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiIpIHsKICAgICAgICAgLy8gVmFsaWRhdGUgdGhlIEhU
VFAgaGVhZGVycyBvZiB0aGUgc3BlY3VsYXRpdmUgdmFsaWRhdGlvbiByZXF1ZXN0LgogICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdJZi1Ob25l
LU1hdGNoJykiLCAiMTIzNDU2Nzg5Iik7CisgICAgICAgIGlzQ29va2llSGVhZGVyQ29ycmVjdCA9
IHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdDb29raWUnKSA9PT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3RGcmFtZSIpLmNvbnRlbnRXaW5kb3cuc2VudFNldENvb2tpZUhlYWRlcjsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJpc0Nvb2tpZUhlYWRlckNvcnJlY3QiKTsKIAogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnNUb0NoZWNrLmxlbmd0aDsgaSsrKSB7CiAgICAgICAg
ICAgICBoZWFkZXJUb0NoZWNrID0gaGVhZGVyc1RvQ2hlY2tbaV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384153</attachid>
            <date>2019-11-22 07:56:22 -0800</date>
            <delta_ts>2019-11-22 08:28:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204305-20191122075614.patch</filename>
            <type>text/plain</type>
            <size>18301</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNmVmZGU1NmNjYmNlNDdh
MzhhOTVmZDU4ZTg0NmUxYWJhZDc4ZDkuLmFhYTU4NTcyM2RiN2RhMzk5MjdkN2UwZmExZjkwY2I0
M2YwZTAxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMTEtMjIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBsb2FkaW5nIHNv
bWV0aW1lcyBoYXBwZW5zIHRvbyBlYXJseSBhbmQgaXMgbWlzc2luZyBsb2dpbiBjb29raWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMDUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDYzODQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWN1bGF0aXZlIGxvYWRzIHdlcmUgaXNzdWVkIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIHJlc3BvbnNlIGZyb20gdGhlIG1haW4gcmVzb3VyY2UuIEhvd2V2
ZXIsCisgICAgICAgIHRoZSBtYWluIHJlc291cmNlIG1heSBzZXQgaW1wb3J0YW50IGNvb2tpZXMg
dGhhdCBhcmUgdGh1cyBtaXNzaW5nIGZyb20gdGhlIHNwZWN1bGF0aXZlIHJlcXVlc3RzLgorCisg
ICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlIHdlIG5vdyBkZWxheSBzcGVjdWxhdGl2ZSBsb2Fk
cyBmb3IgZmlyc3QtcGFydHkgc3VicmVzb3VyY2VzIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2Vp
dmVkIHRoZSByZXNwb25zZSBmcm9tIHRoZSBtYWluIHJlc291cmNlLiBUbyBhdm9pZCByZWdyZXNz
aW5nIFBMVCwgd2Ugc3RpbGwgd2FybSB1cCB0aGUKKyAgICAgICAgZmlyc3QtcGFydHkgc3VicmVz
b3VyY2VzIGZyb20gZGlzayByaWdodCBhd2F5IGFuZCBwcmVjb25uZWN0IHRvIHRoZSBzZXJ2ZXIu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleHRlbmRlZCBleGlzdGluZyB0ZXN0LgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVNYWluUmVzb3Vy
Y2VSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
UmV0cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpQZW5kaW5nRnJhbWVMb2FkOjpkaWRSZWNlaXZl
TWFpblJlc291cmNlUmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6Om1hcmtNYWluUmVz
b3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6OmFkZFBvc3RNYWluUmVz
b3VyY2VSZXNwb25zZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1
bGF0aXZlTG9hZE1hbmFnZXI6OnNob3VsZFJlZ2lzdGVyTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0ZXJMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdp
c3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cHJlY29ubmVjdEZvclN1YnJlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpy
ZXZhbGlkYXRlU3VicmVzb3VyY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjppc0ZpcnN0UGFydHkgY29uc3Qp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNl
c0VudHJ5Lmg6CisKIDIwMTktMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBmaXggd2Via2l0cHkgZmFpbHVyZXMgYWZ0ZXIgcjI1MjY1
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBjNjNjMGEwMjVjYjg3YzJiMjRhZjE5YTMxZTcxY2YyNjJlYTQ3
NTY3Li40MjA4NmEwMzZmNGRmYTUyZjc5ZmJlOTgyZTM4OWNjOWI4ZThjNGQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAi
TmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCkBAIC00NjYsNiAr
NDY3LDkgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2Rl
ID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRS
ZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAKKyAgICBpZiAoaXNNYWluUmVzb3Vy
Y2UoKSkKKyAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNlKHJlY2VpdmVkUmVz
cG9uc2UpOworCiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAK
ICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgJiYgbV9uZXR3
b3JrTG9hZENoZWNrZXIpIHsKQEAgLTkwMCwxMCArOTA0LDIxIEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpCiAgICAgfSk7CiB9CiAKK3ZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisjaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQorICAgIGlmIChhdXRvKiBzcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyID0gbV9jYWNoZSA/IG1fY2FjaGUtPnNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIoKSA6IG51bGxwdHIpCisgICAgICAgIHNwZWN1bGF0aXZlTG9hZE1hbmFnZXItPnJlZ2lzdGVy
TWFpblJlc291cmNlTG9hZFJlc3BvbnNlKGdsb2JhbEZyYW1lSUQoKSwgb3JpZ2luYWxSZXF1ZXN0
KCksIHJlc3BvbnNlKTsKKyNlbmRpZgorfQorCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkUmV0cmlldmVDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5
PiBlbnRyeSkKIHsKICAgICBhdXRvIHJlc3BvbnNlID0gZW50cnktPnJlc3BvbnNlKCk7CiAKKyAg
ICBpZiAoaXNNYWluUmVzb3VyY2UoKSkKKyAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJl
c3BvbnNlKHJlc3BvbnNlKTsKKwogICAgIGlmIChpc01haW5SZXNvdXJjZSgpICYmIHNob3VsZElu
dGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW9ucyhyZXNwb25zZSkp
IHsKICAgICAgICAgcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXVEZNb3Zl
KHJlc3BvbnNlKSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmln
aW5TYWZlKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OlN0b3BM
b2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgeyBy
ZXNwb25zZSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDY2YjI1NjAwNTE2YTg3OTYyZjc4ZDIzODYyYWM1MDdk
YTdkN2U2MzMuLjY4OTBiZjk0ZmZjNzA4MTYzNWZmNjI3ZjFmOTVmMDE3YjYyYzZmOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5ldHdvcmtM
b2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBGaXJzdExvYWQpOwogICAgIHZvaWQgcmVz
dGFydE5ldHdvcmtMb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIGNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWFpblJlc291
cmNlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCiAgICAgZW51
bSBjbGFzcyBMb2FkUmVzdWx0IHsKICAgICAgICAgVW5rbm93biwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCmluZGV4IDk4MDZmNjJlYTdiYjA1YzBjM2Vk
NzJhYWZkZTc0M2RkNWVkYWI4MzEuLmJjYjE1OWI1ODI3NTE3OGY3MTY4NjgwYWJkMWFmNDI4MmMy
YmQ1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9h
ZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg+CiAjaW5jbHVkZSA8cGFsL0h5c3Rl
cmVzaXNBY3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtMjAz
LDYgKzIwNCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHNhdmVUb0Rpc2tJZlJlYWR5KCk7CiAgICAg
fQogCisgICAgYm9vbCBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJl
dHVybiBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZTsgfQorICAgIHZvaWQgbWFya01h
aW5SZXNvdXJjZVJlc3BvbnNlQXNSZWNlaXZlZCgpCisgICAgeworICAgICAgICBtX2RpZFJlY2Vp
dmVNYWluUmVzb3VyY2VSZXNwb25zZSA9IHRydWU7CisgICAgICAgIGZvciAoYXV0byYgdGFzayA6
IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3MpCisgICAgICAgICAgICB0YXNrKCk7Cisg
ICAgfQorCisgICAgdm9pZCBhZGRQb3N0TWFpblJlc291cmNlUmVzcG9uc2VUYXNrKEZ1bmN0aW9u
PHZvaWQoKT4mJiB0YXNrKSB7IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3MuYXBwZW5k
KFdURk1vdmUodGFzaykpOyB9CisKIHByaXZhdGU6CiAgICAgUGVuZGluZ0ZyYW1lTG9hZChTdG9y
YWdlJiBzdG9yYWdlLCBjb25zdCBLZXkmIG1haW5SZXNvdXJjZUtleSwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICA6IG1fc3RvcmFnZShzdG9y
YWdlKQpAQCAtMjQyLDggKzI1MywxMCBAQCBwcml2YXRlOgogICAgIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiBtX2xvYWRDb21wbGV0aW9uSGFuZGxlcjsKICAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0
eSBtX2xvYWRIeXN0ZXJlc2lzQWN0aXZpdHk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFN1YnJlc291
cmNlc0VudHJ5PiBtX2V4aXN0aW5nRW50cnk7CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+
IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3M7CiAgICAgYm9vbCBtX2RpZEZpbmlzaExv
YWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRSZXRyaWV2ZUV4aXN0aW5nRW50cnkgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9kaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UgeyBmYWxzZSB9
OwogfTsKIAogU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcihD
YWNoZSYgY2FjaGUsIFN0b3JhZ2UmIHN0b3JhZ2UpCkBAIC0zMjMsMTQgKzMzNiwyMSBAQCB2b2lk
IFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJldHJpZXZlKGNvbnN0IEtleSYgc3RvcmFnZUtleSwg
UmV0cmlldmVDb21wbGV0aW9uSAogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFwcGVu
ZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK2Jvb2wgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6c2hvdWxkUmVnaXN0ZXJMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpSYW5nZSkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0
ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgS2V5JiByZXNvdXJjZUtleSkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSk7CiAKLSAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIpCi0gICAg
ICAgIHJldHVybjsKLSAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJO
YW1lOjpSYW5nZSkuaXNFbXB0eSgpKQorICAgIGlmICghc2hvdWxkUmVnaXN0ZXJMb2FkKHJlcXVl
c3QpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGlzTWFpblJlc291cmNlID0gcmVxdWVz
dC5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKQEAgLTM2
Miw2ICszODIsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdpc3RlckxvYWQo
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29uc3QgUmUKICAgICAgICAgcGVuZGluZ0Zy
YW1lTG9hZC0+cmVnaXN0ZXJTdWJyZXNvdXJjZUxvYWQocmVxdWVzdCwgcmVzb3VyY2VLZXkpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTWFpblJlc291cmNlTG9h
ZFJlc3BvbnNlKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgaWYgKCFzaG91bGRSZWdpc3RlckxvYWQocmVxdWVzdCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChyZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChhdXRvKiBwZW5kaW5nRnJhbWVMb2FkID0gbV9wZW5kaW5nRnJh
bWVMb2Fkcy5nZXQoZnJhbWVJRCkpCisgICAgICAgIHBlbmRpbmdGcmFtZUxvYWQtPm1hcmtNYWlu
UmVzb3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQoKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyOjphZGRQcmVsb2FkZWRFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+IGVudHJ5LCBj
b25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBPcHRpb25hbDxSZXNvdXJjZVJlcXVlc3Q+JiYg
cmV2YWxpZGF0aW9uUmVxdWVzdCkKIHsKICAgICBBU1NFUlQoZW50cnkpOwpAQCAtNDE3LDYgKzQ0
OSwyMCBAQCBib29sIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnNhdGlzZnlQZW5kaW5nUmVxdWVz
dHMoY29uc3QgS2V5JiBrZXksIEVudHJ5KiBlbnRyeQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnByZWNvbm5lY3RGb3JTdWJyZXNvdXJjZShjb25z
dCBTdWJyZXNvdXJjZUluZm8mIHN1YnJlc291cmNlSW5mbywgRW50cnkqIGVudHJ5LCBjb25zdCBH
bG9iYWxGcmFtZUlEJiBmcmFtZUlEKQoreworICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJh
bWV0ZXJzOworICAgIHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQgPSBmcmFtZUlELndlYlBhZ2VQ
cm94eUlEOworICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gZnJhbWVJRC53ZWJQYWdlSUQ7Cisg
ICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0gZnJhbWVJRC5mcmFtZUlEOworICAgIHBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNl
OworICAgIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID0gQ29udGVudFNuaWZmaW5n
UG9saWN5OjpEb05vdFNuaWZmQ29udGVudDsKKyAgICBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5ID0gQ29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3k6OlNuaWZmOwor
ICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVz
OworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IGNvbnN0cnVjdFJldmFsaWRhdGlvblJlcXVlc3Qo
c3VicmVzb3VyY2VJbmZvLmtleSgpLCBzdWJyZXNvdXJjZUluZm8sIGVudHJ5KTsKKyAgICBuZXcg
UHJlY29ubmVjdFRhc2sobV9jYWNoZS5uZXR3b3JrUHJvY2VzcygpLCBtX2NhY2hlLnNlc3Npb25J
RCgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbXShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JikgeyB9KTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZXZhbGlkYXRlU3Vi
cmVzb3VyY2UoY29uc3QgU3VicmVzb3VyY2VJbmZvJiBzdWJyZXNvdXJjZUluZm8sIHN0ZDo6dW5p
cXVlX3B0cjxFbnRyeT4gZW50cnksIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQpCiB7CiAg
ICAgQVNTRVJUKCFlbnRyeSB8fCBlbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkpOwpAQCAtNDI3LDYg
KzQ3MywxOCBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJldmFsaWRhdGVTdWJyZXNv
dXJjZShjb25zdCBTdWJyZXNvdXJjZUluZm8mIHN1YnJlcwogICAgIGlmICgha2V5LnJhbmdlKCku
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvKiBwZW5kaW5nTG9hZCA9IG1f
cGVuZGluZ0ZyYW1lTG9hZHMuZ2V0KGZyYW1lSUQpOworCisgICAgLy8gRGVsYXkgZmlyc3QtcGFy
dHkgc3BlY3VsYXRpdmUgbG9hZHMgdW50aWwgd2UndmUgcmVjZWl2ZWQgdGhlIHJlc3BvbnNlIGZv
ciB0aGUgbWFpbiByZXNvdXJjZSwgaW4gY2FzZSB0aGUgbWFpbiByZXNvdXJjZQorICAgIC8vIHJl
c3BvbnNlIHNldHMgY29va2llcyB0aGF0IGFyZSBuZWVkZWQgZm9yIHN1YnNlcXVlbnQgbG9hZHMu
CisgICAgaWYgKHBlbmRpbmdMb2FkICYmICFwZW5kaW5nTG9hZC0+ZGlkUmVjZWl2ZU1haW5SZXNv
dXJjZVJlc3BvbnNlKCkgJiYgc3VicmVzb3VyY2VJbmZvLmlzRmlyc3RQYXJ0eSgpKSB7CisgICAg
ICAgIHByZWNvbm5lY3RGb3JTdWJyZXNvdXJjZShzdWJyZXNvdXJjZUluZm8sIGVudHJ5LmdldCgp
LCBmcmFtZUlEKTsKKyAgICAgICAgcGVuZGluZ0xvYWQtPmFkZFBvc3RNYWluUmVzb3VyY2VSZXNw
b25zZVRhc2soW3RoaXMsIHN1YnJlc291cmNlSW5mbywgZW50cnkgPSBXVEZNb3ZlKGVudHJ5KSwg
ZnJhbWVJRF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHJldmFsaWRhdGVTdWJyZXNvdXJjZShz
dWJyZXNvdXJjZUluZm8sIFdURk1vdmUoZW50cnkpLCBmcmFtZUlEKTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2YWxpZGF0aW9u
UmVxdWVzdCA9IGNvbnN0cnVjdFJldmFsaWRhdGlvblJlcXVlc3Qoa2V5LCBzdWJyZXNvdXJjZUlu
Zm8sIGVudHJ5LmdldCgpKTsKIAogICAgIExPRyhOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxv
YWRpbmcsICIoTmV0d29ya1Byb2Nlc3MpIFNwZWN1bGF0aXZlbHkgcmV2YWxpZGF0aW5nICclcyc6
Iiwga2V5LmlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKaW5kZXggM2FmNGZkYjgxMjFmZDdjNWU5MThhMDM5YjQw
MGE1ZjNhM2E4NmVmYS4uMjlmNzYwOTc1OWFjYjJkNDExMDczNmM2Nzc5YzhiMzhkYzNhMmE4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmgKQEAgLTUwLDYg
KzUwLDcgQEAgcHVibGljOgogICAgIH5TcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyKCk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyTG9hZChjb25zdCBHbG9iYWxGcmFtZUlEJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgS2V5JiByZXNvdXJjZUtleSk7CisgICAgdm9pZCByZWdpc3Rl
ck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZShjb25zdCBHbG9iYWxGcmFtZUlEJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OwogCiAgICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+KT4g
UmV0cmlldmVDb21wbGV0aW9uSGFuZGxlcjsKIApAQCAtNTksMTAgKzYwLDEyIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgY2xhc3MgUHJlbG9hZGVkRW50cnk7CiAKKyAgICBzdGF0aWMgYm9vbCBz
aG91bGRSZWdpc3RlckxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAg
dm9pZCBhZGRQcmVsb2FkZWRFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+LCBjb25zdCBHbG9i
YWxGcmFtZUlEJiwgT3B0aW9uYWw8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiYmIHJldmFsaWRh
dGlvblJlcXVlc3QgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgcHJlbG9hZEVudHJ5KGNvbnN0
IEtleSYsIGNvbnN0IFN1YnJlc291cmNlSW5mbyYsIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICAg
ICB2b2lkIHJldHJpZXZlRW50cnlGcm9tU3RvcmFnZShjb25zdCBTdWJyZXNvdXJjZUluZm8mLCBS
ZXRyaWV2ZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgcmV2YWxpZGF0ZVN1YnJlc291
cmNlKGNvbnN0IFN1YnJlc291cmNlSW5mbyYsIHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4sIGNvbnN0
IEdsb2JhbEZyYW1lSUQmKTsKKyAgICB2b2lkIHByZWNvbm5lY3RGb3JTdWJyZXNvdXJjZShjb25z
dCBTdWJyZXNvdXJjZUluZm8mLCBFbnRyeSosIGNvbnN0IEdsb2JhbEZyYW1lSUQmKTsKICAgICBi
b29sIHNhdGlzZnlQZW5kaW5nUmVxdWVzdHMoY29uc3QgS2V5JiwgRW50cnkqKTsKICAgICB2b2lk
IHJldHJpZXZlU3VicmVzb3VyY2VzRW50cnkoY29uc3QgS2V5JiBzdG9yYWdlS2V5LCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0cjxTdWJyZXNvdXJjZXNFbnRyeT4pPiYmKTsKICAg
ICB2b2lkIHN0YXJ0U3BlY3VsYXRpdmVSZXZhbGlkYXRpb24oY29uc3QgR2xvYmFsRnJhbWVJRCYs
IFN1YnJlc291cmNlc0VudHJ5Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnku
Y3BwCmluZGV4IDYzYWQwNDA5ZmRkMjM2ZjZlM2MyY2EzMGU4N2U0YTdjMGEyOTU5MGQuLjBjODk2
ZTBjNjEzMDA4ODRhNzAwYTBmNzVkNWJjZTk3ZDA5OTNhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3VicmVzb3VyY2VzRW50cnkuY3BwCkBAIC04MSw2ICs4MSwxMiBAQCBib29sIFN1YnJlc291cmNl
SW5mbzo6ZGVjb2RlKFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXImIGRlY29kZXIsIFN1YnJlc291
cmNlSW5mbwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFN1YnJlc291cmNlSW5mbzo6aXNG
aXJzdFBhcnR5KCkgY29uc3QKK3sKKyAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9t
YWluIHsgbV9maXJzdFBhcnR5Rm9yQ29va2llcyB9OworICAgIHJldHVybiBmaXJzdFBhcnR5RG9t
YWluLm1hdGNoZXMoVVJMKFVSTCgpLCBrZXkoKS5pZGVudGlmaWVyKCkpKTsKK30KKwogU3RvcmFn
ZTo6UmVjb3JkIFN1YnJlc291cmNlc0VudHJ5OjplbmNvZGVBc1N0b3JhZ2VSZWNvcmQoKSBjb25z
dAogewogICAgIFdURjo6UGVyc2lzdGVuY2U6OkVuY29kZXIgZW5jb2RlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3Vy
Y2VzRW50cnkuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3VicmVzb3VyY2VzRW50cnkuaAppbmRleCA0MzkyMWEwMDI0ZTk3ZGQzNmYwZDIyMTg1MWVj
NGFlOTg3NjFhMTcxLi42ZmU5NTMwNTI0ODcwNWUyM2JhZjAzYzU5ZjljMzYwNjJhY2VjN2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVN1YnJlc291cmNlc0VudHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oCkBAIC01OCw2ICs1OCw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0Tm9uVHJhbnNpZW50KCkgeyBtX2lzVHJhbnNpZW50ID0gZmFs
c2U7IH0KIAorICAgIGJvb2wgaXNGaXJzdFBhcnR5KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
S2V5IG1fa2V5OwogICAgIFdhbGxUaW1lIG1fbGFzdFNlZW47CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzFkNTBkNThhYmIz
YzY3MGVmNTcyYTA0M2U4MTM5ODAwMWIwYjk1MS4uNDQ5Y2EwOWZjNWMxN2Y5NzY5NTlmZDkxZTg5
NjhiZTkzNDVjY2RjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTExLTE4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3BlY3VsYXRpdmUgbG9hZGluZyBz
b21ldGltZXMgaGFwcGVucyB0b28gZWFybHkgYW5kIGlzIG1pc3NpbmcgbG9naW4gY29va2llcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzA1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzA2Mzg0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRlbmQgbGF5b3V0IHRlc3QgY292ZXJhZ2UgdG8g
bWFrZSBzdXJlIHRoYXQgdGhlIHZhbGlkYXRpb24gcmVxdWVzdCBjb250YWlucyB0aGUgbGF0ZXN0
IGNvb2tpZXMKKyAgICAgICAgc2V0IGJ5IHRoZSBtYWluIHJlc291cmNlLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vcmVzb3Vy
Y2VzL3ZhbGlkYXRpb24tcmVxdWVzdC1mcmFtZS5waHA6CisgICAgICAgICogaHR0cC90ZXN0cy9j
YWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3Bl
Y3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QuaHRtbDoKKwogMjAxOS0xMS0x
OSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFR5cG9zIGluIGxh
eW91dCB0ZXN0IG5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1y
ZXF1ZXN0LWZyYW1lLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNo
ZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJh
bWUucGhwCmluZGV4IGQ4OGM5NjY2MTQ3NjcwNWYyMmViZjY1MjA3ZTllNzgzYTliODYzNDAuLjRj
YjM2MjFkMjg2NGQ3MzM2MzBlZDgyZTJhNGIyMTc0MTAyYjMwNGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9u
L3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJhbWUucGhwCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3Jlc291
cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJhbWUucGhwCkBAIC0yLDkgKzIsMTUgQEAKIGhlYWRl
cignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwnKTsKIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbWF4
LWFnZT0wJyk7CiBoZWFkZXIoJ0V0YWc6IDEyMzQ1Njc4OScpOwotCiskY29va2llID0gInNwZWN1
bGF0aXZlUmVxdWVzdFZhbGlkYXRpb249IiAuIHVuaXFpZCgpOworaGVhZGVyKCdTZXQtQ29va2ll
OiAnIC4gJGNvb2tpZSk7CiA/PgogPCFET0NUWVBFIGh0bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3Jj
PSJyZXF1ZXN0LWhlYWRlcnMtc2NyaXB0LnBocCI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorPD9waHAK
K2VjaG8gInNlbnRTZXRDb29raWVIZWFkZXIgPSAnIiAuICRjb29raWUgLiAiJzsiOworPz4KKzwv
c2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNo
ZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVj
dWxhdGl2ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKaW5kZXgg
Y2E0ODIyMzM4MWY1NGIzNTcyNjNiNGU0NDc2NTM0NWM1ZTE1YTk5Ny4uMWMxMmViMGZlYzdhYzAy
ODIzYWUyZGZjZTgyMzFkM2IwZWJiMWQxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1y
ZXF1ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rp
c2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QtZXhwZWN0
ZWQudHh0CkBAIC00LDYgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1Mg
dmFsaWRhdGlvblJlcXVlc3RIZWFkZXIoJ0lmLU5vbmUtTWF0Y2gnKSBpcyAiMTIzNDU2Nzg5Igor
UEFTUyBpc0Nvb2tpZUhlYWRlckNvcnJlY3QgaXMgdHJ1ZQogUEFTUyB2YWxpZGF0aW9uUmVxdWVz
dEhlYWRlcignQWNjZXB0JykgaXMgaW5pdGlhbEhlYWRlclZhbHVlc1snQWNjZXB0J10KIFBBU1Mg
dmFsaWRhdGlvblJlcXVlc3RIZWFkZXIoJ0FjY2VwdC1FbmNvZGluZycpIGlzIGluaXRpYWxIZWFk
ZXJWYWx1ZXNbJ0FjY2VwdC1FbmNvZGluZyddCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVy
KCdBY2NlcHQtTGFuZ3VhZ2UnKSBpcyBpbml0aWFsSGVhZGVyVmFsdWVzWydBY2NlcHQtTGFuZ3Vh
Z2UnXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hl
L3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92
YWxpZGF0aW9uLXJlcXVlc3QuaHRtbAppbmRleCBkZTZhNThkM2UyMjE5YmU4OWRiMGQwY2E4MTAx
MDhhZTA2MmZkYWY1Li44MWM0ZjYxNWM3MDBkM2VlNGQ1YTlmYTEzYjRjZDM4NDMxNjk1OWU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3Vs
YXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxp
ZGF0aW9uLXJlcXVlc3QuaHRtbApAQCAtMzcsNiArMzcsOCBAQCBmdW5jdGlvbiBmcmFtZUxvYWRl
ZCgpCiAgICAgaWYgKHN0YXRlID09ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiIpIHsKICAgICAg
ICAgLy8gVmFsaWRhdGUgdGhlIEhUVFAgaGVhZGVycyBvZiB0aGUgc3BlY3VsYXRpdmUgdmFsaWRh
dGlvbiByZXF1ZXN0LgogICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInZhbGlkYXRpb25S
ZXF1ZXN0SGVhZGVyKCdJZi1Ob25lLU1hdGNoJykiLCAiMTIzNDU2Nzg5Iik7CisgICAgICAgIGlz
Q29va2llSGVhZGVyQ29ycmVjdCA9IHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdDb29raWUnKSA9
PT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLmNvbnRlbnRXaW5kb3cuc2Vu
dFNldENvb2tpZUhlYWRlcjsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpc0Nvb2tpZUhlYWRlckNv
cnJlY3QiKTsKIAogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnNUb0NoZWNrLmxl
bmd0aDsgaSsrKSB7CiAgICAgICAgICAgICBoZWFkZXJUb0NoZWNrID0gaGVhZGVyc1RvQ2hlY2tb
aV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384156</attachid>
            <date>2019-11-22 08:28:13 -0800</date>
            <delta_ts>2019-11-22 09:25:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204305-20191122082805.patch</filename>
            <type>text/plain</type>
            <size>18437</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNmVmZGU1NmNjYmNlNDdh
MzhhOTVmZDU4ZTg0NmUxYWJhZDc4ZDkuLjIyNjU3Zjg5ZjI3OTAwODI2OGIwZmIwODExNjU2Nzg1
MTY2NDUzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMTEtMjIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjdWxhdGl2ZSBsb2FkaW5nIHNv
bWV0aW1lcyBoYXBwZW5zIHRvbyBlYXJseSBhbmQgaXMgbWlzc2luZyBsb2dpbiBjb29raWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMDUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDYzODQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
dHRpIEtvaXZpc3RvLgorCisgICAgICAgIFNwZWN1bGF0aXZlIGxvYWRzIHdlcmUgaXNzdWVkIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIHJlc3BvbnNlIGZyb20gdGhlIG1haW4gcmVzb3VyY2UuIEhvd2V2
ZXIsCisgICAgICAgIHRoZSBtYWluIHJlc291cmNlIG1heSBzZXQgaW1wb3J0YW50IGNvb2tpZXMg
dGhhdCBhcmUgdGh1cyBtaXNzaW5nIGZyb20gdGhlIHNwZWN1bGF0aXZlIHJlcXVlc3RzLgorCisg
ICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlIHdlIG5vdyBkZWxheSBzcGVjdWxhdGl2ZSBsb2Fk
cyBmb3IgZmlyc3QtcGFydHkgc3VicmVzb3VyY2VzIHVudGlsIHdlJ3ZlCisgICAgICAgIHJlY2Vp
dmVkIHRoZSByZXNwb25zZSBmcm9tIHRoZSBtYWluIHJlc291cmNlLiBUbyBhdm9pZCByZWdyZXNz
aW5nIFBMVCwgd2Ugc3RpbGwgd2FybSB1cCB0aGUKKyAgICAgICAgZmlyc3QtcGFydHkgc3VicmVz
b3VyY2VzIGZyb20gZGlzayByaWdodCBhd2F5IGFuZCBwcmVjb25uZWN0IHRvIHRoZSBzZXJ2ZXIu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBleHRlbmRlZCBleGlzdGluZyB0ZXN0LgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVNYWluUmVzb3Vy
Y2VSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
UmV0cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpQZW5kaW5nRnJhbWVMb2FkOjpkaWRSZWNlaXZl
TWFpblJlc291cmNlUmVzcG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6Om1hcmtNYWluUmVz
b3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OlBlbmRpbmdGcmFtZUxvYWQ6OmFkZFBvc3RNYWluUmVz
b3VyY2VSZXNwb25zZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlNwZWN1
bGF0aXZlTG9hZE1hbmFnZXI6OnNob3VsZFJlZ2lzdGVyTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0ZXJMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdp
c3Rlck1haW5SZXNvdXJjZUxvYWRSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cHJlY29ubmVjdEZvclN1YnJlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpy
ZXZhbGlkYXRlU3VicmVzb3VyY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjppc0ZpcnN0UGFydHkgY29uc3Qp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNl
c0VudHJ5Lmg6CisKIDIwMTktMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBmaXggd2Via2l0cHkgZmFpbHVyZXMgYWZ0ZXIgcjI1MjY1
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBjNjNjMGEwMjVjYjg3YzJiMjRhZjE5YTMxZTcxY2YyNjJlYTQ3
NTY3Li40MjA4NmEwMzZmNGRmYTUyZjc5ZmJlOTgyZTM4OWNjOWI4ZThjNGQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAi
TmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkLmgiCkBAIC00NjYsNiAr
NDY3LDkgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2Rl
ID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRS
ZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAKKyAgICBpZiAoaXNNYWluUmVzb3Vy
Y2UoKSkKKyAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3BvbnNlKHJlY2VpdmVkUmVz
cG9uc2UpOworCiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAK
ICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgJiYgbV9uZXR3
b3JrTG9hZENoZWNrZXIpIHsKQEAgLTkwMCwxMCArOTA0LDIxIEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpCiAgICAgfSk7CiB9CiAKK3ZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisjaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKQorICAgIGlmIChhdXRvKiBzcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyID0gbV9jYWNoZSA/IG1fY2FjaGUtPnNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIoKSA6IG51bGxwdHIpCisgICAgICAgIHNwZWN1bGF0aXZlTG9hZE1hbmFnZXItPnJlZ2lzdGVy
TWFpblJlc291cmNlTG9hZFJlc3BvbnNlKGdsb2JhbEZyYW1lSUQoKSwgb3JpZ2luYWxSZXF1ZXN0
KCksIHJlc3BvbnNlKTsKKyNlbmRpZgorfQorCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkUmV0cmlldmVDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5
PiBlbnRyeSkKIHsKICAgICBhdXRvIHJlc3BvbnNlID0gZW50cnktPnJlc3BvbnNlKCk7CiAKKyAg
ICBpZiAoaXNNYWluUmVzb3VyY2UoKSkKKyAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJl
c3BvbnNlKHJlc3BvbnNlKTsKKwogICAgIGlmIChpc01haW5SZXNvdXJjZSgpICYmIHNob3VsZElu
dGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW9ucyhyZXNwb25zZSkp
IHsKICAgICAgICAgcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXVEZNb3Zl
KHJlc3BvbnNlKSwgUmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZTo6Q3Jvc3NPcmln
aW5TYWZlKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OlN0b3BM
b2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgeyBy
ZXNwb25zZSB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDY2YjI1NjAwNTE2YTg3OTYyZjc4ZDIzODYyYWM1MDdk
YTdkN2U2MzMuLjY4OTBiZjk0ZmZjNzA4MTYzNWZmNjI3ZjFmOTVmMDE3YjYyYzZmOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5ldHdvcmtM
b2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBGaXJzdExvYWQpOwogICAgIHZvaWQgcmVz
dGFydE5ldHdvcmtMb2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIGNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWFpblJlc291
cmNlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCiAgICAgZW51
bSBjbGFzcyBMb2FkUmVzdWx0IHsKICAgICAgICAgVW5rbm93biwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCmluZGV4IDk4MDZmNjJlYTdiYjA1YzBjM2Vk
NzJhYWZkZTc0M2RkNWVkYWI4MzEuLjY3MDQ3YmZlMDQ1ZjljYTUwMDFhMjU3ZDJiMDYwYjM5YmE1
MDlkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9h
ZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg+CiAjaW5jbHVkZSA8cGFsL0h5c3Rl
cmVzaXNBY3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtMjAz
LDYgKzIwNCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHNhdmVUb0Rpc2tJZlJlYWR5KCk7CiAgICAg
fQogCisgICAgYm9vbCBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJl
dHVybiBtX2RpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZTsgfQorICAgIHZvaWQgbWFya01h
aW5SZXNvdXJjZVJlc3BvbnNlQXNSZWNlaXZlZCgpCisgICAgeworICAgICAgICBtX2RpZFJlY2Vp
dmVNYWluUmVzb3VyY2VSZXNwb25zZSA9IHRydWU7CisgICAgICAgIGZvciAoYXV0byYgdGFzayA6
IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3MpCisgICAgICAgICAgICB0YXNrKCk7Cisg
ICAgfQorCisgICAgdm9pZCBhZGRQb3N0TWFpblJlc291cmNlUmVzcG9uc2VUYXNrKEZ1bmN0aW9u
PHZvaWQoKT4mJiB0YXNrKSB7IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3MuYXBwZW5k
KFdURk1vdmUodGFzaykpOyB9CisKIHByaXZhdGU6CiAgICAgUGVuZGluZ0ZyYW1lTG9hZChTdG9y
YWdlJiBzdG9yYWdlLCBjb25zdCBLZXkmIG1haW5SZXNvdXJjZUtleSwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgbG9hZENvbXBsZXRpb25IYW5kbGVyKQogICAgICAgICA6IG1fc3RvcmFnZShzdG9y
YWdlKQpAQCAtMjQyLDggKzI1MywxMCBAQCBwcml2YXRlOgogICAgIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiBtX2xvYWRDb21wbGV0aW9uSGFuZGxlcjsKICAgICBQQUw6Okh5c3RlcmVzaXNBY3Rpdml0
eSBtX2xvYWRIeXN0ZXJlc2lzQWN0aXZpdHk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFN1YnJlc291
cmNlc0VudHJ5PiBtX2V4aXN0aW5nRW50cnk7CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+
IG1fcG9zdE1haW5SZXNvdXJjZVJlc3BvbnNlVGFza3M7CiAgICAgYm9vbCBtX2RpZEZpbmlzaExv
YWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRSZXRyaWV2ZUV4aXN0aW5nRW50cnkgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9kaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UgeyBmYWxzZSB9
OwogfTsKIAogU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6U3BlY3VsYXRpdmVMb2FkTWFuYWdlcihD
YWNoZSYgY2FjaGUsIFN0b3JhZ2UmIHN0b3JhZ2UpCkBAIC0zMjMsMTQgKzMzNiwyMSBAQCB2b2lk
IFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJldHJpZXZlKGNvbnN0IEtleSYgc3RvcmFnZUtleSwg
UmV0cmlldmVDb21wbGV0aW9uSAogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFwcGVu
ZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK2Jvb2wgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6c2hvdWxkUmVnaXN0ZXJMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3sKKyAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpSYW5nZSkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVMb2FkTWFuYWdlcjo6cmVnaXN0
ZXJMb2FkKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgS2V5JiByZXNvdXJjZUtleSkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSk7CiAKLSAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgIT0gIkdFVCIpCi0gICAg
ICAgIHJldHVybjsKLSAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJO
YW1lOjpSYW5nZSkuaXNFbXB0eSgpKQorICAgIGlmICghc2hvdWxkUmVnaXN0ZXJMb2FkKHJlcXVl
c3QpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGlzTWFpblJlc291cmNlID0gcmVxdWVz
dC5yZXF1ZXN0ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbjsKQEAgLTM2
Miw2ICszODIsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyOjpyZWdpc3RlckxvYWQo
Y29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJRCwgY29uc3QgUmUKICAgICAgICAgcGVuZGluZ0Zy
YW1lTG9hZC0+cmVnaXN0ZXJTdWJyZXNvdXJjZUxvYWQocmVxdWVzdCwgcmVzb3VyY2VLZXkpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTWFpblJlc291cmNlTG9h
ZFJlc3BvbnNlKGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgaWYgKCFzaG91bGRSZWdpc3RlckxvYWQocmVxdWVzdCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChyZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChhdXRvKiBwZW5kaW5nRnJhbWVMb2FkID0gbV9wZW5kaW5nRnJh
bWVMb2Fkcy5nZXQoZnJhbWVJRCkpCisgICAgICAgIHBlbmRpbmdGcmFtZUxvYWQtPm1hcmtNYWlu
UmVzb3VyY2VSZXNwb25zZUFzUmVjZWl2ZWQoKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyOjphZGRQcmVsb2FkZWRFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+IGVudHJ5LCBj
b25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBPcHRpb25hbDxSZXNvdXJjZVJlcXVlc3Q+JiYg
cmV2YWxpZGF0aW9uUmVxdWVzdCkKIHsKICAgICBBU1NFUlQoZW50cnkpOwpAQCAtNDE3LDYgKzQ0
OSwyNiBAQCBib29sIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnNhdGlzZnlQZW5kaW5nUmVxdWVz
dHMoY29uc3QgS2V5JiBrZXksIEVudHJ5KiBlbnRyeQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnByZWNvbm5lY3RGb3JTdWJyZXNvdXJjZShjb25z
dCBTdWJyZXNvdXJjZUluZm8mIHN1YnJlc291cmNlSW5mbywgRW50cnkqIGVudHJ5LCBjb25zdCBH
bG9iYWxGcmFtZUlEJiBmcmFtZUlEKQoreworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkK
KyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlEID0gZnJhbWVJRC53ZWJQYWdlUHJveHlJRDsKKyAgICBwYXJhbWV0ZXJzLndl
YlBhZ2VJRCA9IGZyYW1lSUQud2ViUGFnZUlEOworICAgIHBhcmFtZXRlcnMud2ViRnJhbWVJRCA9
IGZyYW1lSUQuZnJhbWVJRDsKKyAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsKKyAgICBwYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSA9IENvbnRlbnRTbmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZkNvbnRlbnQ7
CisgICAgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSA9IENvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZjsKKyAgICBwYXJhbWV0ZXJzLnNob3VsZFByZWNv
bm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsKKyAgICBwYXJhbWV0ZXJzLnJlcXVlc3Qg
PSBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1ZXN0KHN1YnJlc291cmNlSW5mby5rZXkoKSwgc3Vi
cmVzb3VyY2VJbmZvLCBlbnRyeSk7CisgICAgbmV3IFByZWNvbm5lY3RUYXNrKG1fY2FjaGUubmV0
d29ya1Byb2Nlc3MoKSwgbV9jYWNoZS5zZXNzaW9uSUQoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
W10oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIHsgfSk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShzdWJyZXNvdXJjZUluZm8pOworICAgIFVOVVNFRF9QQVJBTShlbnRyeSk7CisgICAg
VU5VU0VEX1BBUkFNKGZyYW1lSUQpOworI2VuZGlmCit9CisKIHZvaWQgU3BlY3VsYXRpdmVMb2Fk
TWFuYWdlcjo6cmV2YWxpZGF0ZVN1YnJlc291cmNlKGNvbnN0IFN1YnJlc291cmNlSW5mbyYgc3Vi
cmVzb3VyY2VJbmZvLCBzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+IGVudHJ5LCBjb25zdCBHbG9iYWxG
cmFtZUlEJiBmcmFtZUlEKQogewogICAgIEFTU0VSVCghZW50cnkgfHwgZW50cnktPm5lZWRzVmFs
aWRhdGlvbigpKTsKQEAgLTQyNyw2ICs0NzksMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUxvYWRNYW5h
Z2VyOjpyZXZhbGlkYXRlU3VicmVzb3VyY2UoY29uc3QgU3VicmVzb3VyY2VJbmZvJiBzdWJyZXMK
ICAgICBpZiAoIWtleS5yYW5nZSgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
YXV0byogcGVuZGluZ0xvYWQgPSBtX3BlbmRpbmdGcmFtZUxvYWRzLmdldChmcmFtZUlEKTsKKwor
ICAgIC8vIERlbGF5IGZpcnN0LXBhcnR5IHNwZWN1bGF0aXZlIGxvYWRzIHVudGlsIHdlJ3ZlIHJl
Y2VpdmVkIHRoZSByZXNwb25zZSBmb3IgdGhlIG1haW4gcmVzb3VyY2UsIGluIGNhc2UgdGhlIG1h
aW4gcmVzb3VyY2UKKyAgICAvLyByZXNwb25zZSBzZXRzIGNvb2tpZXMgdGhhdCBhcmUgbmVlZGVk
IGZvciBzdWJzZXF1ZW50IGxvYWRzLgorICAgIGlmIChwZW5kaW5nTG9hZCAmJiAhcGVuZGluZ0xv
YWQtPmRpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZSgpICYmIHN1YnJlc291cmNlSW5mby5p
c0ZpcnN0UGFydHkoKSkgeworICAgICAgICBwcmVjb25uZWN0Rm9yU3VicmVzb3VyY2Uoc3VicmVz
b3VyY2VJbmZvLCBlbnRyeS5nZXQoKSwgZnJhbWVJRCk7CisgICAgICAgIHBlbmRpbmdMb2FkLT5h
ZGRQb3N0TWFpblJlc291cmNlUmVzcG9uc2VUYXNrKFt0aGlzLCBzdWJyZXNvdXJjZUluZm8sIGVu
dHJ5ID0gV1RGTW92ZShlbnRyeSksIGZyYW1lSURdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBy
ZXZhbGlkYXRlU3VicmVzb3VyY2Uoc3VicmVzb3VyY2VJbmZvLCBXVEZNb3ZlKGVudHJ5KSwgZnJh
bWVJRCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJldmFsaWRhdGlvblJlcXVlc3QgPSBjb25zdHJ1Y3RSZXZhbGlkYXRpb25SZXF1
ZXN0KGtleSwgc3VicmVzb3VyY2VJbmZvLCBlbnRyeS5nZXQoKSk7CiAKICAgICBMT0coTmV0d29y
a0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLCAiKE5ldHdvcmtQcm9jZXNzKSBTcGVjdWxhdGl2
ZWx5IHJldmFsaWRhdGluZyAnJXMnOiIsIGtleS5pZGVudGlmaWVyKCkudXRmOCgpLmRhdGEoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oCmluZGV4IDNhZjRm
ZGI4MTIxZmQ3YzVlOTE4YTAzOWI0MDBhNWYzYTNhODZlZmEuLjI5Zjc2MDk3NTlhY2IyZDQxMTA3
MzZjNjc3OWM4YjM4ZGMzYTJhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVM
b2FkTWFuYWdlci5oCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB+U3BlY3VsYXRpdmVM
b2FkTWFuYWdlcigpOwogCiAgICAgdm9pZCByZWdpc3RlckxvYWQoY29uc3QgR2xvYmFsRnJhbWVJ
RCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEtleSYgcmVzb3VyY2VL
ZXkpOworICAgIHZvaWQgcmVnaXN0ZXJNYWluUmVzb3VyY2VMb2FkUmVzcG9uc2UoY29uc3QgR2xv
YmFsRnJhbWVJRCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAogICAgIHR5cGVkZWYgRnVuY3Rpb248dm9pZCAoc3Rk
Ojp1bmlxdWVfcHRyPEVudHJ5Pik+IFJldHJpZXZlQ29tcGxldGlvbkhhbmRsZXI7CiAKQEAgLTU5
LDEwICs2MCwxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNsYXNzIFByZWxvYWRlZEVudHJ5
OwogCisgICAgc3RhdGljIGJvb2wgc2hvdWxkUmVnaXN0ZXJMb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgYWRkUHJlbG9hZGVkRW50cnkoc3RkOjp1bmlxdWVf
cHRyPEVudHJ5PiwgY29uc3QgR2xvYmFsRnJhbWVJRCYsIE9wdGlvbmFsPFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdD4mJiByZXZhbGlkYXRpb25SZXF1ZXN0ID0gV1RGOjpudWxsb3B0KTsKICAgICB2
b2lkIHByZWxvYWRFbnRyeShjb25zdCBLZXkmLCBjb25zdCBTdWJyZXNvdXJjZUluZm8mLCBjb25z
dCBHbG9iYWxGcmFtZUlEJik7CiAgICAgdm9pZCByZXRyaWV2ZUVudHJ5RnJvbVN0b3JhZ2UoY29u
c3QgU3VicmVzb3VyY2VJbmZvJiwgUmV0cmlldmVDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2
b2lkIHJldmFsaWRhdGVTdWJyZXNvdXJjZShjb25zdCBTdWJyZXNvdXJjZUluZm8mLCBzdGQ6OnVu
aXF1ZV9wdHI8RW50cnk+LCBjb25zdCBHbG9iYWxGcmFtZUlEJik7CisgICAgdm9pZCBwcmVjb25u
ZWN0Rm9yU3VicmVzb3VyY2UoY29uc3QgU3VicmVzb3VyY2VJbmZvJiwgRW50cnkqLCBjb25zdCBH
bG9iYWxGcmFtZUlEJik7CiAgICAgYm9vbCBzYXRpc2Z5UGVuZGluZ1JlcXVlc3RzKGNvbnN0IEtl
eSYsIEVudHJ5Kik7CiAgICAgdm9pZCByZXRyaWV2ZVN1YnJlc291cmNlc0VudHJ5KGNvbnN0IEtl
eSYgc3RvcmFnZUtleSwgV1RGOjpGdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8U3VicmVz
b3VyY2VzRW50cnk+KT4mJik7CiAgICAgdm9pZCBzdGFydFNwZWN1bGF0aXZlUmV2YWxpZGF0aW9u
KGNvbnN0IEdsb2JhbEZyYW1lSUQmLCBTdWJyZXNvdXJjZXNFbnRyeSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJj
ZXNFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAppbmRleCA2M2FkMDQwOWZkZDIzNmY2ZTNjMmNhMzBl
ODdlNGE3YzBhMjk1OTBkLi4wYzg5NmUwYzYxMzAwODg0YTcwMGEwZjc1ZDViY2U5N2QwOTkzYWI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcApAQCAtODEsNiArODEs
MTIgQEAgYm9vbCBTdWJyZXNvdXJjZUluZm86OmRlY29kZShXVEY6OlBlcnNpc3RlbmNlOjpEZWNv
ZGVyJiBkZWNvZGVyLCBTdWJyZXNvdXJjZUluZm8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9v
bCBTdWJyZXNvdXJjZUluZm86OmlzRmlyc3RQYXJ0eSgpIGNvbnN0Cit7CisgICAgUmVnaXN0cmFi
bGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiB7IG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKKyAg
ICByZXR1cm4gZmlyc3RQYXJ0eURvbWFpbi5tYXRjaGVzKFVSTChVUkwoKSwga2V5KCkuaWRlbnRp
ZmllcigpKSk7Cit9CisKIFN0b3JhZ2U6OlJlY29yZCBTdWJyZXNvdXJjZXNFbnRyeTo6ZW5jb2Rl
QXNTdG9yYWdlUmVjb3JkKCkgY29uc3QKIHsKICAgICBXVEY6OlBlcnNpc3RlbmNlOjpFbmNvZGVy
IGVuY29kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmgKaW5kZXggNDM5MjFh
MDAyNGU5N2RkMzZmMGQyMjE4NTFlYzRhZTk4NzYxYTE3MS4uNmZlOTUzMDUyNDg3MDVlMjNiYWYw
M2M1OWY5YzM2MDYyYWNlYzdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnku
aApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5vblRyYW5zaWVudCgp
IHsgbV9pc1RyYW5zaWVudCA9IGZhbHNlOyB9CiAKKyAgICBib29sIGlzRmlyc3RQYXJ0eSgpIGNv
bnN0OworCiBwcml2YXRlOgogICAgIEtleSBtX2tleTsKICAgICBXYWxsVGltZSBtX2xhc3RTZWVu
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGMxZDUwZDU4YWJiM2M2NzBlZjU3MmEwNDNlODEzOTgwMDFiMGI5NTEuLjA4Mzgw
OGQ4ZmZmNmNhMzY5Y2RiNTZmYzU1YmU0ODZkOTQ2N2FiOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxOS0xMS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFNwZWN1bGF0aXZlIGxvYWRpbmcgc29tZXRpbWVzIGhhcHBlbnMgdG9vIGVhcmx5IGFuZCBpcyBt
aXNzaW5nIGxvZ2luIGNvb2tpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNDMwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcwNjM4NDA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgRXh0ZW5kIGxh
eW91dCB0ZXN0IGNvdmVyYWdlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB2YWxpZGF0aW9uIHJlcXVl
c3QgY29udGFpbnMgdGhlIGxhdGVzdCBjb29raWVzCisgICAgICAgIHNldCBieSB0aGUgbWFpbiBy
ZXNvdXJjZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxh
dGl2ZS12YWxpZGF0aW9uL3Jlc291cmNlcy92YWxpZGF0aW9uLXJlcXVlc3QtZnJhbWUucGhwOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0
aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1
ZXN0Lmh0bWw6CisKIDIwMTktMTEtMTkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
IAogICAgICAgICBUeXBvcyBpbiBsYXlvdXQgdGVzdCBuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24v
cmVzb3VyY2VzL3ZhbGlkYXRpb24tcmVxdWVzdC1mcmFtZS5waHAgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMv
dmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocAppbmRleCBkODhjOTY2NjE0NzY3MDVmMjJlYmY2
NTIwN2U5ZTc4M2E5Yjg2MzQwLi40Y2IzNjIxZDI4NjRkNzMzNjMwZWQ4MmUyYTRiMjE3NDEwMmIz
MDRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUv
c3BlY3VsYXRpdmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1l
LnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc2stY2FjaGUvc3BlY3Vs
YXRpdmUtdmFsaWRhdGlvbi9yZXNvdXJjZXMvdmFsaWRhdGlvbi1yZXF1ZXN0LWZyYW1lLnBocApA
QCAtMiw5ICsyLDE1IEBACiBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sJyk7CiBoZWFk
ZXIoJ0NhY2hlLUNvbnRyb2w6IG1heC1hZ2U9MCcpOwogaGVhZGVyKCdFdGFnOiAxMjM0NTY3ODkn
KTsKLQorJGNvb2tpZSA9ICJzcGVjdWxhdGl2ZVJlcXVlc3RWYWxpZGF0aW9uPSIgLiB1bmlxaWQo
KTsKK2hlYWRlcignU2V0LUNvb2tpZTogJyAuICRjb29raWUpOwogPz4KIDwhRE9DVFlQRSBodG1s
PgogPGJvZHk+CiA8c2NyaXB0IHNyYz0icmVxdWVzdC1oZWFkZXJzLXNjcmlwdC5waHAiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKzw/cGhwCitlY2hvICJzZW50U2V0Q29va2llSGVhZGVyID0gJyIgLiAk
Y29va2llIC4gIic7IjsKKz8+Cis8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9u
L3ZhbGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NhY2hlL2Rpc2stY2FjaGUvc3BlY3VsYXRpdmUtdmFsaWRhdGlvbi92YWxpZGF0aW9uLXJlcXVl
c3QtZXhwZWN0ZWQudHh0CmluZGV4IGNhNDgyMjMzODFmNTRiMzU3MjYzYjRlNDQ3NjUzNDVjNWUx
NWE5OTcuLjFjMTJlYjBmZWM3YWMwMjgyM2FlMmRmY2U4MjMxZDNiMGViYjFkMTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12
YWxpZGF0aW9uL3ZhbGlkYXRpb24tcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFs
aWRhdGlvbi1yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdJZi1Ob25lLU1h
dGNoJykgaXMgIjEyMzQ1Njc4OSIKK1BBU1MgaXNDb29raWVIZWFkZXJDb3JyZWN0IGlzIHRydWUK
IFBBU1MgdmFsaWRhdGlvblJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcpIGlzIGluaXRpYWxIZWFkZXJW
YWx1ZXNbJ0FjY2VwdCddCiBQQVNTIHZhbGlkYXRpb25SZXF1ZXN0SGVhZGVyKCdBY2NlcHQtRW5j
b2RpbmcnKSBpcyBpbml0aWFsSGVhZGVyVmFsdWVzWydBY2NlcHQtRW5jb2RpbmcnXQogUEFTUyB2
YWxpZGF0aW9uUmVxdWVzdEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJykgaXMgaW5pdGlhbEhlYWRl
clZhbHVlc1snQWNjZXB0LUxhbmd1YWdlJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxpZGF0aW9uL3ZhbGlkYXRpb24t
cmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3Nw
ZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwKaW5kZXggZGU2YTU4
ZDNlMjIxOWJlODlkYjBkMGNhODEwMTA4YWUwNjJmZGFmNS4uODFjNGY2MTVjNzAwZDNlZTRkNWE5
ZmExM2I0Y2QzODQzMTY5NTllOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
YWNoZS9kaXNrLWNhY2hlL3NwZWN1bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL3NwZWN1
bGF0aXZlLXZhbGlkYXRpb24vdmFsaWRhdGlvbi1yZXF1ZXN0Lmh0bWwKQEAgLTM3LDYgKzM3LDgg
QEAgZnVuY3Rpb24gZnJhbWVMb2FkZWQoKQogICAgIGlmIChzdGF0ZSA9PSAic3BlY3VsYXRpdmVS
ZXZhbGlkYXRpb24iKSB7CiAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSBIVFRQIGhlYWRlcnMgb2Yg
dGhlIHNwZWN1bGF0aXZlIHZhbGlkYXRpb24gcmVxdWVzdC4KICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ2YWxpZGF0aW9uUmVxdWVzdEhlYWRlcignSWYtTm9uZS1NYXRjaCcpIiwgIjEy
MzQ1Njc4OSIpOworICAgICAgICBpc0Nvb2tpZUhlYWRlckNvcnJlY3QgPSB2YWxpZGF0aW9uUmVx
dWVzdEhlYWRlcignQ29va2llJykgPT09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJh
bWUiKS5jb250ZW50V2luZG93LnNlbnRTZXRDb29raWVIZWFkZXI7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgiaXNDb29raWVIZWFkZXJDb3JyZWN0Iik7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBoZWFkZXJzVG9DaGVjay5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgaGVhZGVyVG9D
aGVjayA9IGhlYWRlcnNUb0NoZWNrW2ldOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>