<?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>201920</bug_id>
          
          <creation_ts>2019-09-18 09:58:35 -0700</creation_ts>
          <short_desc>CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID</short_desc>
          <delta_ts>2019-09-18 14:50:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571935</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 09:58:35 -0700</bug_when>
    <thetext>CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID. This sessionID is no longer used now that we have a session per WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571936</commentid>
    <comment_count>1</comment_count>
      <attachid>379047</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 10:00:26 -0700</bug_when>
    <thetext>Created attachment 379047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571941</commentid>
    <comment_count>2</comment_count>
      <attachid>379047</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-09-18 10:10:24 -0700</bug_when>
    <thetext>Comment on attachment 379047
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571955</commentid>
    <comment_count>3</comment_count>
      <attachid>379048</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 10:41:12 -0700</bug_when>
    <thetext>Created attachment 379048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571974</commentid>
    <comment_count>4</comment_count>
      <attachid>379048</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 11:37:17 -0700</bug_when>
    <thetext>Comment on attachment 379048
Patch

Clearing flags on attachment: 379048

Committed r250045: &lt;https://trac.webkit.org/changeset/250045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571975</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 11:37:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571976</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-18 11:38:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55486406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572076</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-09-18 14:24:51 -0700</bug_when>
    <thetext>This broke WinCairo again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572077</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 14:25:21 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #7)
&gt; This broke WinCairo again...

wincairo EWS has been dead for several days...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572082</commentid>
    <comment_count>9</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-09-18 14:27:28 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Ross Kirsling from comment #7)
&gt; &gt; This broke WinCairo again...
&gt; 
&gt; wincairo EWS has been dead for several days...

Really? The EWS error message here is correct though, just as it was in bug 201881.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572084</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 14:28:39 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #9)
&gt; (In reply to Chris Dumez from comment #8)
&gt; &gt; (In reply to Ross Kirsling from comment #7)
&gt; &gt; &gt; This broke WinCairo again...
&gt; &gt; 
&gt; &gt; wincairo EWS has been dead for several days...
&gt; 
&gt; Really? The EWS error message here is correct though, just as it was in bug
&gt; 201881.

Oh, maybe it is fixed now. What I have been seeing for a while was:
https://ews-build.webkit.org/#/builders/12/builds/4770

So I started ignoring that bot. Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572090</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 14:33:22 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/250054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572100</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-09-18 14:50:36 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Oh, maybe it is fixed now. What I have been seeing for a while was:
&gt; https://ews-build.webkit.org/#/builders/12/builds/4770
&gt; 
&gt; So I started ignoring that bot. Sorry.

Ah right, I knew that had been happening intermittently but perhaps it&apos;s been worse than I realized. It would be great if we were able get that particular issue fixed more permanently...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379047</attachid>
            <date>2019-09-18 10:00:26 -0700</date>
            <delta_ts>2019-09-18 10:41:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201920-20190918100026.patch</filename>
            <type>text/plain</type>
            <size>32072</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI0Y2MyYTMxMTYzZTMy
Njc1MmM5OTNkNzdiOTY5YzBiYjYyZGM0MC4uNGVkNzViY2FmZDU1Mjc2ZmI0OTJhNmY4NjRiNzMw
OTA5ZWQ2NDMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA5LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXI6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBkb2VzIG5vdCBuZWVkIHRvIHRha2Ug
aW4gYSBTZXNzaW9uSUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMTkyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCkgZG9lcyBub3QgbmVlZCB0byB0YWtlIGluIGEgU2Vzc2lvbklELgorICAgICAgICBUaGlzIHNl
c3Npb25JRCBpcyBubyBsb25nZXIgdXNlZCBub3cgdGhhdCB3ZSBoYXZlIGEgc2Vzc2lvbiBwZXIg
V2ViUHJvY2Vzcy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtRGF0YVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0ZVJlYWxCb2R5U2l6ZSk6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Q2FjaGVzOjpjYWNoZXMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIGZpbGVhcGkvQmxvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzaXplIGNvbnN0
KToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUpOgorICAgICAgICAq
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZWVwYWxp
dmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OktlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6
bGVuZ3RoSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6bGVuZ3Ro
SW5CeXRlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6Y2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
U2VydmljZVdvcmtlclRocmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKwogMjAxOS0wOS0xOCAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29tcHV0ZWRIZWlnaHQqIGZ1bmN0aW9ucyBuZWVkIGNvbnRhaW5pbmdCbG9ja0hlaWdodCBv
bmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA5YzZlZTdlYTJhNDE5ZjAyZGI5YzA0MTcwNGU0ODZiNTY5ZGI5OWNl
Li42OWUwZGZjZWM3MzI2OTNjNDlkMjQ4MTdhNTU0YTY1OTIxZmFmMDM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDE5LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKSBkb2VzIG5vdCBuZWVkIHRvIHRha2UgaW4gYSBTZXNzaW9uSUQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTkyMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhY2hlU3RvcmFnZVByb3ZpZGVy
OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZG9lcyBub3QgbmVlZCB0byB0YWtlIGlu
IGEgU2Vzc2lvbklELgorICAgICAgICBUaGlzIHNlc3Npb25JRCBpcyBubyBsb25nZXIgdXNlZCBu
b3cgdGhhdCB3ZSBoYXZlIGEgc2Vzc2lvbiBwZXIgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JS
ZWdpc3RyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
c2Vzc2lvbklEIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dl
YkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXI6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpC
bG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5oOgorCiAyMDE5LTA5LTE4ICBDYXJsb3MgQWxiZXJ0byBMb3Bl
eiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gYnViYmxl
d3JhcCBzYW5kYm94IHNob3VsZCBiZSBkaXNhYmxlZCB3aGVuIHJ1bm5pbmcgaW5zaWRlIGRvY2tl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGRiM2UyYWVmMGRmNzRiOWE4NDFmN2Zm
YTQxYWEyYzhmZTExNzE4YzcuLjNmZTEwNjc4Zjc4ZTc2NmEyYzAzYTQ5N2M0M2IxZGJmZGExMzFh
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0w
OS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIENhY2hlU3Rv
cmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZG9lcyBub3QgbmVl
ZCB0byB0YWtlIGluIGEgU2Vzc2lvbklECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDE5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbigpIGRvZXMgbm90IG5lZWQgdG8gdGFrZSBpbiBhIFNlc3Npb25JRC4KKyAgICAg
ICAgVGhpcyBzZXNzaW9uSUQgaXMgbm8gbG9uZ2VyIHVzZWQgbm93IHRoYXQgd2UgaGF2ZSBhIHNl
c3Npb24gcGVyIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIwMTktMDktMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBTdG9wIGNhbGxpbmcgUGFnZTo6c2V0U2Vzc2lvbklEKCkgZnJv
bSBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA5YWE2N2M3ODVjYTg5MDAwMDAxYzJkNmRjOGM2
MmE5ZmMwNGZhZWQyLi45YjNmODQwNzQ1ZDFhMDY5ODgzYTIwYzNhNjVmOTk3OWZiMWEyNDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTMzLDE0ICszMywxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOwogCi1zdGF0aWMgaW5saW5l
IHVpbnQ2NF90IGZvcm1EYXRhU2l6ZShjb25zdCBGb3JtRGF0YSYgZm9ybURhdGEsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZm9ybURhdGFTaXplKGNv
bnN0IEZvcm1EYXRhJiBmb3JtRGF0YSkKIHsKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCi0gICAg
ICAgIHJldHVybiBmb3JtRGF0YS5sZW5ndGhJbkJ5dGVzKHNlc3Npb25JRCk7CisgICAgICAgIHJl
dHVybiBmb3JtRGF0YS5sZW5ndGhJbkJ5dGVzKCk7CiAKICAgICB1aW50NjRfdCByZXN1bHRTaXpl
OwotICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFtzZXNzaW9uSUQsIGZvcm1EYXRhID0gZm9y
bURhdGEuaXNvbGF0ZWRDb3B5KCksICZyZXN1bHRTaXplXSB7Ci0gICAgICAgIHJlc3VsdFNpemUg
PSBmb3JtRGF0YS0+bGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQpOworICAgIGNhbGxPbk1haW5UaHJl
YWRBbmRXYWl0KFtmb3JtRGF0YSA9IGZvcm1EYXRhLmlzb2xhdGVkQ29weSgpLCAmcmVzdWx0U2l6
ZV0geworICAgICAgICByZXN1bHRTaXplID0gZm9ybURhdGEtPmxlbmd0aEluQnl0ZXMoKTsKICAg
ICB9KTsKICAgICByZXR1cm4gcmVzdWx0U2l6ZTsKIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgdWludDY0
X3QgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0ZVJlYWxCb2R5U2l6ZShjb25zdCBET01D
YWNoZUVuZ2luZTo6UmVzcG8KIHsKICAgICB1aW50NjRfdCByZXN1bHQgPSAwOwogICAgIFdURjo6
c3dpdGNoT24oYm9keSwgWyZdIChjb25zdCBSZWY8Rm9ybURhdGE+JiBmb3JtRGF0YSkgewotICAg
ICAgICByZXN1bHQgPSBmb3JtRGF0YVNpemUoZm9ybURhdGEsIHNlc3Npb25JRCgpKTsKKyAgICAg
ICAgcmVzdWx0ID0gZm9ybURhdGFTaXplKGZvcm1EYXRhKTsKICAgICB9LCBbJl0gKGNvbnN0IFJl
ZjxTaGFyZWRCdWZmZXI+JiBidWZmZXIpIHsKICAgICAgICAgcmVzdWx0ID0gYnVmZmVyLT5zaXpl
KCk7CiAgICAgfSwgW10gKGNvbnN0IHN0ZDo6bnVsbHB0cl90JikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBk
MWRhZmE4OWFmZWU4ZjA0NGNlYzg4ZDUzNDRkOTVmYTFlNTg2N2E1Li42MzZmMGRmMmM0Mzk5OGM1
ODIwYmYyZjVmZmY1YmUwYjU4ZjQwYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTcsOCArNTcsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVuZ2luZVJlcHJlc2VudGF0aW9uKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soU3RyaW5n
IHsgfSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShj
b25zdCBDbGllbnRPcmlnaW4mKSB7IH0KIAotICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgPSAwOwotCiBwcml2YXRlOgogICAgIHVpbnQ2NF90IGNvbXB1dGVSZWFs
Qm9keVNpemUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTVdpbmRvd0NhY2hlcy5jcHAKaW5kZXggNjE1
Mzk0MzBkZmI5NjE2ZmQyODhmZWQ5MmNiOTQ0ZmY0NDZiMDEwMy4uMDk4NmFhMmUwYTEzYTcxMzdl
NThiZTExYmE0MjhjOTRkODMwMzg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NV2luZG93Q2FjaGVzLmNwcApAQCAtNzIsNyArNzIsNyBAQCBET01DYWNoZVN0b3Jh
Z2UqIERPTVdpbmRvd0NhY2hlczo6Y2FjaGVzKCkgY29uc3QKICAgICBBU1NFUlQoZnJhbWUoKSk7
CiAgICAgQVNTRVJUKGZyYW1lKCktPmRvY3VtZW50KCkpOwogICAgIGlmICghbV9jYWNoZXMgJiYg
ZnJhbWUoKS0+cGFnZSgpKQotICAgICAgICBtX2NhY2hlcyA9IERPTUNhY2hlU3RvcmFnZTo6Y3Jl
YXRlKCpmcmFtZSgpLT5kb2N1bWVudCgpLCBmcmFtZSgpLT5wYWdlKCktPmNhY2hlU3RvcmFnZVBy
b3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihmcmFtZSgpLT5wYWdlKCktPnNl
c3Npb25JRCgpKSk7CisgICAgICAgIG1fY2FjaGVzID0gRE9NQ2FjaGVTdG9yYWdlOjpjcmVhdGUo
KmZyYW1lKCktPmRvY3VtZW50KCksIGZyYW1lKCktPnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlk
ZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkpOwogICAgIHJldHVybiBtX2NhY2hl
cy5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmYwNmE2YjhlYjhl
ZmJiMzNlZDNmZjM3Yzg3NzBmY2YxODhlZWI4OS4uMjA2YzI0MThlOTg3ZmVkZmRhMjEwMWU2ZWJh
NWY1YTViYTBhZjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xMzQsMTEgKzEz
NCw2IEBAIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uKCkKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5lY3Rp
b24gPSBXVEZNb3ZlKG1fbWFpblRocmVhZENvbm5lY3Rpb24pXSgpIG11dGFibGUgeyB9KTsKIH0K
IAotUEFMOjpTZXNzaW9uSUQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6c2Vzc2lvbklE
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zY29wZS5zZXNzaW9uSUQoKTsKLX0KLQogdm9pZCBX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuKGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKICAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVx
dWVzdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDJmM2FmYWQyOTQ0ZWIx
NDI2NzdmMmI5YzUwZGQ1ZjI4ZDNiOTJjNDQuLjExOWQ0Y2M2MTIwODNkYTcyODVmNGY3OWMyMmRl
NTljOWIwYzRiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01NSw4ICs1NSw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIGRlcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikgZmluYWw7
CiAKLSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsKLQogICAgIHZv
aWQgZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSk7CiAgICAgdm9pZCBkb1JlbW92ZSh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRv
UmV0cmlldmVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9y
aWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5k
ZXggNTJhNTM2Nzg1N2ExZmE0NzNkNDcxMTAyZDgzNGZjNzk0YmE0ODFiZi4uZDg5MWM3MDg2OGI4
Yzc2YTkyOTExMTdjNTNjMzJjZjZmMTdhNjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBA
IC0xNjksNyArMTY5LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIEJsb2I6OnNpemUoKSBjb25zdAog
ICAgIGlmICghbV9zaXplKSB7CiAgICAgICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0IGNhbm5vdCBy
ZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMgdW5zaWduZWQgbG9uZyBsb25nLCB3ZSBuZWVkIHRv
CiAgICAgICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cgaWYgZmlsZSBz
aXplIGlzIG5vdCByZXByZXNlbnRhYmxlLgotICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYWN0
dWFsU2l6ZSA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKG1fc2Vzc2lvbklELCBt
X2ludGVybmFsVVJMKTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGFjdHVhbFNpemUgPSBU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShtX2ludGVybmFsVVJMKTsKICAgICAgICAg
bV9zaXplID0gV1RGOjppc0luQm91bmRzPGxvbmcgbG9uZz4oYWN0dWFsU2l6ZSkgPyBhY3R1YWxT
aXplIDogMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhy
ZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFi
bGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IDc2MTA2NjRmNWRhMDlhMWNmOGE1ZTE5NzY0Y2E3NzVm
N2ExZGY2ZmIuLmE5NWIyNDlmOGM4NDIzZmQ3NDViYzJhYzk3YjI3YmMwNGFhM2E3MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcApA
QCAtMTI4LDE1ICsxMjgsMTUgQEAgdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3Rl
ckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAgICB9KTsKIH0K
IAotdW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxv
bmcgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCiB7CiAg
ICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxv
YlNpemUoc2Vzc2lvbklELCB1cmwpOworICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxv
YlNpemUodXJsKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHRTaXplOwogICAgIEJp
bmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbklE
LCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCksICZzZW1hcGhvcmUsICZyZXN1bHRTaXplXSB7Ci0g
ICAgICAgIHJlc3VsdFNpemUgPSBibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZShzZXNzaW9uSUQsIHVy
bCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCAmc2Vt
YXBob3JlLCAmcmVzdWx0U2l6ZV0geworICAgICAgICByZXN1bHRTaXplID0gYmxvYlJlZ2lzdHJ5
KCkuYmxvYlNpemUodXJsKTsKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwogICAgIH0pOwog
ICAgIHNlbWFwaG9yZS53YWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5oCmluZGV4IDhiOGJhMDYwMDYzYjRlZTMxMjY4M2M5NDQ5YzIyY2Ey
MTg2MjE1ZjUuLmExNjBhY2NiOGI1OGJmOWI2OGVjMmEzZTAyZjdkMzUwZTg2OGE1NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCkBAIC01
MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JT
bGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVSTCYgc3JjVVJM
LCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOwogICAgIHN0YXRpYyB2b2lkIHVucmVn
aXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKIAotICAgIHN0YXRpYyB1
bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpOwor
ICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJik7CiAKICAg
ICAvLyBSZXR1cm5zIHRoZSBvcmlnaW4gZm9yIHRoZSBnaXZlbiBibG9iIFVSTC4gVGhpcyBpcyBi
ZWNhdXNlIHdlIGFyZSBub3QgYWJsZSB0byBlbWJlZCB0aGUgdW5pcXVlIHNlY3VyaXR5IG9yaWdp
biBvciB0aGUgb3JpZ2luIG9mIGZpbGUgVVJMCiAgICAgLy8gaW4gdGhlIGJsb2IgVVJMLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVSZXF1ZXN0VHJh
Y2tlci5jcHAKaW5kZXggNDdhM2M3YjZlMDc2NTg1Yjk2ODVmMTM0MDdmMDNjMmMwZTZlYTJjZC4u
MDBjNTUwNWU3ZWMxNzUwNTgyNWYxNGEzNTg3MGMwMzM4N2Y5NDAxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIuY3Bw
CkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnRyeVJlZ2lz
dGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgaWYgKCFib2R5KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9keS0+bGVuZ3Ro
SW5CeXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQoKSk7CisgICAgdWludDY0X3QgYm9keVNpemUgPSBi
b2R5LT5sZW5ndGhJbkJ5dGVzKCk7CiAgICAgaWYgKG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAr
IGJvZHlTaXplID4gbWF4SW5mbGlnaHRLZWVwYWxpdmVCeXRlcykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnJl
Z2lzdGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgICAgIHJldHVybjsK
ICAgICBBU1NFUlQoIW1faW5mbGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5jb250YWlucygmcmVzb3Vy
Y2UpKTsKICAgICBtX2luZmxpZ2h0S2VlcGFsaXZlUmVxdWVzdHMuYXBwZW5kKCZyZXNvdXJjZSk7
Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzICs9IGJvZHktPmxlbmd0aEluQnl0ZXMocmVz
b3VyY2Uuc2Vzc2lvbklEKCkpOworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyArPSBib2R5
LT5sZW5ndGhJbkJ5dGVzKCk7CiAgICAgQVNTRVJUKG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyA8
PSBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5dGVzKTsKIAogICAgIHJlc291cmNlLmFkZENsaWVudCgq
dGhpcyk7CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVu
cmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICByZXNvdXJjZS5y
ZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIGJvb2wgd2FzUmVtb3ZlZCA9IG1faW5mbGlnaHRLZWVw
YWxpdmVSZXF1ZXN0cy5yZW1vdmVGaXJzdCgmcmVzb3VyY2UpOwogICAgIEFTU0VSVF9VTlVTRUQo
d2FzUmVtb3ZlZCwgd2FzUmVtb3ZlZCk7Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzIC09
IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpLmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMocmVz
b3VyY2Uuc2Vzc2lvbklEKCkpOworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAtPSByZXNv
dXJjZS5yZXNvdXJjZVJlcXVlc3QoKS5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKCk7CiAgICAg
QVNTRVJUKG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyA8PSBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5
dGVzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCmlu
ZGV4IGQ5ZjNmM2M3YTBmNDZiZGZjZTJhZWE0YzhiMDg2NTU0NGI2NTgxM2UuLjFiMTVkM2VjMzRm
MDczMzc4NTc3OWVjMWY1OTM0NWYxMzM1YjdmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
Y2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTM1LDExICszNSwxMCBAQCBjbGFzcyBDYWNoZVN0b3Jh
Z2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlU3RvcmFnZVByb3ZpZGVyPiB7CiBw
dWJsaWM6CiAgICAgY2xhc3MgRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gewogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFJlZjxEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKHNlc3Npb25JRCkpOyB9CisgICAgICAgIHN0YXRpYyBSZWY8RHVtbXlDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IER1bW15
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpKTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgZXhw
bGljaXQgRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKLSAgICAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICAgICBEdW1teUNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNTEsMTMg
KzUwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRf
dCwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJlZmVyZW5j
ZSh1aW50NjRfdCkgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3Qp
IGZpbmFsIHsgfQotICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQotCi0gICAgICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vz
c2lvbklEOwogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlU3RvcmFnZVByb3ZpZGVyKTsgfQot
ICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBEdW1teUNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShzZXNzaW9uSUQpOyB9CisgICAgdmlydHVhbCBSZWY8
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIHsg
cmV0dXJuIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCk7IH0KICAgICB2aXJ0
dWFsIH5DYWNoZVN0b3JhZ2VQcm92aWRlcigpIHsgfTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKaW5kZXggOGNkMzkxZDFm
ZTM0OWIwY2U4YThmMjc0NTkzMjkxYjcxZTRhNTRiOS4uNjYwYTc5NmQwYjJkODk4NjI1MWI4MDZk
MzkxM2JmOTE0NTRlOWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgPSAwOwog
Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYpID0gMDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6
ZShjb25zdCBVUkwmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9y
YXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRl
eCAyMTZjYjMzN2E0MGM2MGE1MDljOTYzNjFkNTlmZjMzZjY3NmU0NDdhLi5mZWE0ZTBlMDIxMjFk
Mjk2Y2RkZTQzMWQyY2I2NzA2YTgyNTA2OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Zvcm1EYXRhLmNwcApAQCAtMTQ5LDEwICsxNDksMTAgQEAgdWludDY0X3QgRm9y
bURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKEJsb2JSZWdpc3RyeUltcGwqIGJsb2JSZWdpc3Ry
eSkgY29uc3QKICAgICB9KTsKIH0KIAotdWludDY0X3QgRm9ybURhdGFFbGVtZW50OjpsZW5ndGhJ
bkJ5dGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKK3VpbnQ2NF90IEZvcm1EYXRh
RWxlbWVudDo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbXB1dGVMZW5n
dGhJbkJ5dGVzKCp0aGlzLCBbJl0oYXV0byYgdXJsKSB7Ci0gICAgICAgIHJldHVybiBibG9iUmVn
aXN0cnkoKS5ibG9iU2l6ZShzZXNzaW9uSUQsIHVybCk7CisgICAgcmV0dXJuIGNvbXB1dGVMZW5n
dGhJbkJ5dGVzKCp0aGlzLCBbXShhdXRvJiB1cmwpIHsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdp
c3RyeSgpLmJsb2JTaXplKHVybCk7CiAgICAgfSk7CiB9CiAKQEAgLTM5NCwxMiArMzk0LDEyIEBA
IEZvcm1EYXRhRm9yVXBsb2FkOjp+Rm9ybURhdGFGb3JVcGxvYWQoKQogICAgICAgICBGaWxlU3lz
dGVtOjpkZWxldGVGaWxlKGZpbGUpOwogfQogCi11aW50NjRfdCBGb3JtRGF0YTo6bGVuZ3RoSW5C
eXRlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0Cit1aW50NjRfdCBGb3JtRGF0YTo6
bGVuZ3RoSW5CeXRlcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2xlbmd0aEluQnl0ZXMpIHsKICAg
ICAgICAgdWludDY0X3QgbGVuZ3RoID0gMDsKICAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50IDog
bV9lbGVtZW50cykKLSAgICAgICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMo
c2Vzc2lvbklEKTsKKyAgICAgICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMo
KTsKICAgICAgICAgbV9sZW5ndGhJbkJ5dGVzID0gbGVuZ3RoOwogICAgIH0KICAgICByZXR1cm4g
Km1fbGVuZ3RoSW5CeXRlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaAppbmRleCBiOGVjMDNkYzFmODE0NGI3NjRiODQ3NjhjYTM1MTdhZGNiYzkyZjY5Li43ZDc1
Yjk2ZjA1NWU3NmZmYjFhYmJiZTJmNTFkZjFiY2RhZGRiNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBGb3Jt
RGF0YUVsZW1lbnQgewogICAgICAgICA6IGRhdGEoRW5jb2RlZEJsb2JEYXRhIHsgYmxvYlVSTCB9
KSB7IH0KIAogICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoQmxvYlJlZ2lzdHJ5SW1wbCopIGNv
bnN0OwotICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0Owor
ICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoKSBjb25zdDsKIAogICAgIEZvcm1EYXRhRWxlbWVu
dCBpc29sYXRlZENvcHkoKSBjb25zdDsKIApAQCAtMjUxLDcgKzI1MSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIEZvcm1VUkxFbmNvZGVkOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGxlbmd0
aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OworICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0
ZXMoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhc0Jsb2JVUkwoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDAzMDBmOWEwNDM1MDcwMDZi
ZmVmNTlkYzljZjhmMmY3ZTBmODA0ZjkuLmI4Nzk2MTI4M2MzZDhlNGVhZGM1NTcyNmE2Y2ViOTBh
MGM2ZjcwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ4OTIsNyAr
NDg5Miw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbGVhckNhY2hlU3RvcmFnZU1lbW9yeVJlcHJlc2Vu
dGF0aW9uKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmCiAKICAgICBpZiAoIW1fY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbikgewogICAgICAgICBpZiAoYXV0byogcGFnZSA9IGNvbnRleHREb2N1bWVu
dCgpLT5wYWdlKCkpCi0gICAgICAgICAgICBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24gPSBwYWdl
LT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ocGFn
ZS0+c2Vzc2lvbklEKCkpOworICAgICAgICAgICAgbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uID0g
cGFnZS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCk7CiAgICAgICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTQ5MTAsNyArNDkxMCw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjYWNo
ZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbihET01Qcm9taXNlRGVmZXJyZWQ8SURMRE9NU3Ry
aW5nCiAKICAgICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbikgewogICAgICAgICBpZiAo
YXV0byogcGFnZSA9IGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCkpCi0gICAgICAgICAgICBtX2Nh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24gPSBwYWdlLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0
ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24ocGFnZS0+c2Vzc2lvbklEKCkpOworICAgICAgICAgICAg
bV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uID0gcGFnZS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5j
cmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgICAgIGlmICghbV9jYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ5MjcsNyArNDky
Nyw3IEBAIHZvaWQgSW50ZXJuYWxzOjp1cGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlKCkKIAog
ICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKSB7CiAgICAgICAgIGlmIChhdXRvKiBw
YWdlID0gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKSkKLSAgICAgICAgICAgIG1fY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbiA9IHBhZ2UtPmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkuY3JlYXRlQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbihwYWdlLT5zZXNzaW9uSUQoKSk7CisgICAgICAgICAgICBtX2NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24gPSBwYWdlLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICAgICAgaWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxZTRkN2RiZDcxNTNjZmEzY2Fm
NjYwZmMwOTgwNWU1NjM3ZDExNDYxLi42YmQ1M2ExNmE2MTY0NTc4NzQ0Zjg0MTJmODZiYmUwMjQ0
NTM1ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICByZXR1cm4gZG9jdW1l
bnQucGFnZSgpLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oZG9jdW1lbnQucGFnZSgpLT5zZXNzaW9uSUQoKSk7CisgICAgcmV0dXJuIGRvY3VtZW50
LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uKCk7CiB9CiAKIGJvb2wgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNv
bnN0IFN0cmluZyYgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmlu
ZGV4IDYxNzQ1YTdhMGZhMGIyNWMxYjMyOTJhM2NlZDI0MjQ3NDRhZmI3NDEuLjc5MWQzYTNkZjU5
MDVhZTEwMzI1NjE4YTU1MTE0N2JhZjVlNGVlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmNwcApAQCAtMTAwLDcgKzEwMCw2IEBAIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZp
CiAgICAgLCBtX2RvY3VtZW50KCptX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpCiAgICAg
LCBtX3NlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlclRocmVhZDo6Y3JlYXRlKGRhdGEs
IHNlc3Npb25JRCwgV1RGTW92ZSh1c2VyQWdlbnQpLCAqdGhpcywgKnRoaXMsIGlkYkNvbm5lY3Rp
b25Qcm94eShtX2RvY3VtZW50KSwgbV9kb2N1bWVudC0+c29ja2V0UHJvdmlkZXIoKSkpCiAgICAg
LCBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyKGNhY2hlU3RvcmFnZVByb3ZpZGVyKQotICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9pbnNwZWN0b3JQcm94eSgqdGhpcykKIHsKICAg
ICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwpAQCAtMTYxLDcgKzE2MCw3IEBAIFJlZjxDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZUNhY2hl
U3RvcmFnZUNvbm5lY3RpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAo
IW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbikKLSAgICAgICAgbV9jYWNoZVN0b3JhZ2VDb25uZWN0
aW9uID0gbV9jYWNoZVN0b3JhZ2VQcm92aWRlci5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KG1fc2Vzc2lvbklEKTsKKyAgICAgICAgbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uID0gbV9jYWNo
ZVN0b3JhZ2VQcm92aWRlci5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgcmV0
dXJuICptX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmgKaW5kZXggZjQ2Y2ZkMTQ3OGFlYTI3NGQyMTkwMzYyMzIzNWMzNjNkMzIzZmQ4
Ny4uMDlhNjQwOTc5NTA2YWI2YzQ0NzdkYjQyZTAwNTYyNmMzZDFmZDQzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTk1LDcgKzk1LDYgQEAgcHJpdmF0ZToKICAgICBS
ZWY8U2VydmljZVdvcmtlclRocmVhZD4gbV9zZXJ2aWNlV29ya2VyVGhyZWFkOwogICAgIENhY2hl
U3RvcmFnZVByb3ZpZGVyJiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZlB0cjxDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247Ci0gICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgYm9vbCBtX2lzVGVybWluYXRpbmdPclRlcm1pbmF0
ZWQgeyBmYWxzZSB9OwogCiAgICAgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5IG1faW5zcGVj
dG9yUHJveHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA1M2FjNDgx
OGMzY2ZkOTZhYzk2NzA3ZjI4YjIyMjk4ZDY2NWJlODgzLi5mNWM2NzUzMDVmNzVkNDQ0MjE2OWNk
N2I4MjFmYzUwZDVhZTU2NTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTYyMyw3ICs2MjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdCgpCiAgICAgaWYgKG1fYXN5bmMpIHsKICAgICAgICAgbV9wcm9ncmVzc0V2ZW50
VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7CiAgICAgICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSAmJiBtX3VwbG9hZExpc3RlbmVyRmxh
ZykKLSAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1l
cygpLmxvYWRzdGFydEV2ZW50LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXNzaW9uSUQoKSkpOworICAgICAgICAgICAgbV91
cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQs
IDAsIHJlcXVlc3QuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygpKTsKIAogICAgICAgICBpZiAo
cmVhZHlTdGF0ZSgpICE9IE9QRU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKICAgICAg
ICAgICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4
IDQ2NzJiM2U5ZGEwNjBlY2ZlY2RiY2U4NTVmYTU0NmZkN2ZmNmIxZWIuLjBjODQ2ZGIwMjQyZjNh
NzUxM2U2YzNiMTExZWFhYzFkODg2MGVjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCkBAIC01OCw3ICs1OCw3IEBAIEJsb2JSZWdpc3RyeSogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSgpCiAgICAgICAgIHZvaWQgcmVnaXN0
ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYs
IGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAg
ICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQp
IGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCB1bnJlZ2lzdGVy
QmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQotICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAw
OyB9CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSBmaW5h
bCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQogICAgICAgICB2b2lkIHdyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxl
UGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgfTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlCbG9iUmVnaXN0cnk+IGJsb2JSZWdpc3RyeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YzdiYjQxNjkyODVkYjM2YzczMGRkMmFlNzc1Mjdh
ZGE4N2QwNTIwLi5mN2U3NDU0NGIyOTk2Nzc0NjljYjZiNmFmMTg1ZmU5ZTQ0MDRkOTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xMTAsOSArMTEwLDQgQEAgdm9pZCBXZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjp1cGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlKGNvbnN0IFdlYkNv
cmU6OkNsaWUKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnNlc3Npb25JRCgpLCBvcmlnaW4pLCAwKTsKIH0KIAotUEFMOjpTZXNzaW9uSUQgV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6c2Vzc2lvbklEKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lvbklEKCk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IGY0OGU1YTc2NDljNjgxMmE3Njc4ZWZlNjk2NjcyN2RkMzVjOWIwMmYuLjE0
Yjg3NDExMDhhZDMyYmNmMGFmMTk0MzgzODg4NzkxZDJlNzA3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNjYsOCArNjYsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNZW1vcnlSZXBy
ZXNlbnRhdGlvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZW5naW5lUmVw
cmVzZW50YXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJikgZmlu
YWw7CiAgICAgdm9pZCB1cGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlKGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYpIGZpbmFsOwotICAgIAotICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCgpIGNvbnN0IGZpbmFsOwogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXImIG1fcHJvdmlk
ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9X
ZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5jcHAKaW5kZXggMmEwMjI1MzcyZTgxMzdiYjg3YjMzYWZi
YzVmZDdjZDhmMzg2OTZiYi4uZDVlZjUzOTJmZGI2N2U4ODc0ZjcwODYxZGE4MjM1MTdiYzE4ZWYz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwCkBAIC0zNCw5ICszNCw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1SZWY8V2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXI6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorUmVmPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IFdlYkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKHNlc3Npb25JRCwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lv
bklEKCkpOwogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24gPSBX
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9j
b25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dl
YkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUv
V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAppbmRleCAyZjU1NjljN2VmNzc1NDY4MzhhYjExZmIw
OTgyOGNkN2U5Y2M1MTBkLi5kOWFhMmFhZjE5MDk0NWU5MTE1MDE5NWFiOWMxZmZjYTlhM2I5MDgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBXZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlciB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcik7IH0KIAot
ICAgIFJlZjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsKKyAgICBSZWY8V2ViQ29yZTo6Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFs
OwogCiBwcml2YXRlOgogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5
UHJveHkuY3BwCmluZGV4IDY2ZjQ0MmMyOWY5OTc0MWU0ZTE2NWNkZGE5MTI4YjhmNjk1ZTE2M2Mu
LjVjM2EyMTFhMmViYTM2Y2Q1YzA0ZTVlODI5NTljOGY5NjQ1Yzk4OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJM
Rm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLAogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpLCAwKTsKIH0KIAotdW5zaWdu
ZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJs
b2JTaXplKGNvbnN0IFVSTCYgdXJsKQogewogICAgIHVpbnQ2NF90IHJlc3VsdFNpemU7CiAgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpCbG9iU2l6ZSh1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkJsb2JTaXplOjpSZXBseShyZXN1bHRTaXplKSwgMCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCA4
MDkyNGMwZjk0OWVkN2EwODJiYWUwMjVkYmFmNGIzNGJmNTEwNmNhLi5kNzY2MTU4N2UzZTc0Mzgz
MmUyMzI1YzY3OTZjZmEzNDViYjk1NmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5h
bDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
KSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxv
bmcgZW5kKSBmaW5hbDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6
ZShjb25zdCBVUkwmKSBmaW5hbDsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCAwODllNmE3YWVjMTE3OTI2YzNi
OTU4ZjViYzMwMDE3NTBhMWQxZjI3Li5kZWY5OGRhZTJmZWI0NDgwN2VmYjMyMTdhY2RjY2VjYmI2
NTk5ZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC03MCw3ICs3MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8
QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5Rmls
ZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0K
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBV
UkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVu
ZCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNy
Y1VSTCwgc3RhcnQsIGVuZCk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVy
QmxvYlVSTCh1cmwpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnkuYmxv
YlNpemUodXJsKTsgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwm
IHVybCkgZmluYWwgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnkuYmxvYlNpemUodXJsKTsgfQogICAg
IHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3Ry
aW5nPiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgbV9ibG9iUmVn
aXN0cnkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsgfQogCiAgICAgQmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5SW1w
bCgpIGZpbmFsIHsgcmV0dXJuICZtX2Jsb2JSZWdpc3RyeTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379048</attachid>
            <date>2019-09-18 10:41:12 -0700</date>
            <delta_ts>2019-09-18 11:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201920-20190918104111.patch</filename>
            <type>text/plain</type>
            <size>33468</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE1NGFlZmVjMWQ2YmFj
Yzc1NjY1MDA5NDJlZmVlNjRkNmFlNzgxMS4uMjQ4ZmU0OWY0NjkwYzNmMTcwYTViNzQ4OTJlYzcx
NTllZDY0ZWJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA5LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXI6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBkb2VzIG5vdCBuZWVkIHRvIHRha2Ug
aW4gYSBTZXNzaW9uSUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMTkyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisg
ICAgICAgIENhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCkgZG9lcyBub3QgbmVlZCB0byB0YWtlIGluIGEgU2Vzc2lvbklELgorICAgICAgICBUaGlzIHNl
c3Npb25JRCBpcyBubyBsb25nZXIgdXNlZCBub3cgdGhhdCB3ZSBoYXZlIGEgc2Vzc2lvbiBwZXIg
V2ViUHJvY2Vzcy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtRGF0YVNpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0ZVJlYWxCb2R5U2l6ZSk6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Q2FjaGVzOjpjYWNoZXMgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIGZpbGVhcGkvQmxvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzaXplIGNvbnN0
KToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUpOgorICAgICAgICAq
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZWVwYWxp
dmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OktlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6
bGVuZ3RoSW5CeXRlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6bGVuZ3Ro
SW5CeXRlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6Y2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6dXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
U2VydmljZVdvcmtlclRocmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKwogMjAxOS0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgRnJhbWVMb2FkZXJDbGllbnQ6OnNlc3Npb25J
RCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDk1YzExM2NjNzg3OWY5ZjY1YmQxMWYwMGQwOGQ3YTc5NDU4OWVhOWIu
LjU3ZWFhNmViZDFkNTgzODkxY2NlMGY4OWIzMWRjZDUyNzRlZDZiODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTktMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbigpIGRvZXMgbm90IG5lZWQgdG8gdGFrZSBpbiBhIFNlc3Npb25JRAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxOTIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgQ2FjaGVTdG9yYWdlUHJvdmlkZXI6
OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBkb2VzIG5vdCBuZWVkIHRvIHRha2UgaW4g
YSBTZXNzaW9uSUQuCisgICAgICAgIFRoaXMgc2Vzc2lvbklEIGlzIG5vIGxvbmdlciB1c2VkIG5v
dyB0aGF0IHdlIGhhdmUgYSBzZXNzaW9uIHBlciBXZWJQcm9jZXNzLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJl
Z2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpz
ZXNzaW9uSUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJs
b2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5Lmg6CisKIDIwMTktMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXNzaW9uSUQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDAzMzgxOGQ1M2YxNWY3NDJlOWQ1MmI2
M2RiY2VkMmZjMjI4ZjQ5YjAuLjE1ZDU4YmMwYzE3YjdlYWUxNTY4NDVkYmMwZGViNGEzMjA5YmE1
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0w
OS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIENhY2hlU3Rv
cmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZG9lcyBub3QgbmVl
ZCB0byB0YWtlIGluIGEgU2Vzc2lvbklECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDE5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBH
YXJlbi4KKworICAgICAgICBDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbigpIGRvZXMgbm90IG5lZWQgdG8gdGFrZSBpbiBhIFNlc3Npb25JRC4KKyAgICAg
ICAgVGhpcyBzZXNzaW9uSUQgaXMgbm8gbG9uZ2VyIHVzZWQgbm93IHRoYXQgd2UgaGF2ZSBhIHNl
c3Npb24gcGVyIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW06CisKIDIwMTktMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBEcm9wIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXNzaW9uSUQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAKaW5kZXggOWFhNjdjNzg1Y2E4OTAwMDAwMWMyZDZkYzhjNjJhOWZjMDRmYWVk
Mi4uOWIzZjg0MDc0NWQxYTA2OTg4M2EyMGMzYTY1Zjk5NzlmYjFhMjQzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0zMywxNCArMzMsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTsKIAotc3RhdGljIGlubGluZSB1aW50NjRfdCBm
b3JtRGF0YVNpemUoY29uc3QgRm9ybURhdGEmIGZvcm1EYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGZvcm1EYXRhU2l6ZShjb25zdCBGb3JtRGF0
YSYgZm9ybURhdGEpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICByZXR1cm4g
Zm9ybURhdGEubGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gZm9ybURh
dGEubGVuZ3RoSW5CeXRlcygpOwogCiAgICAgdWludDY0X3QgcmVzdWx0U2l6ZTsKLSAgICBjYWxs
T25NYWluVGhyZWFkQW5kV2FpdChbc2Vzc2lvbklELCBmb3JtRGF0YSA9IGZvcm1EYXRhLmlzb2xh
dGVkQ29weSgpLCAmcmVzdWx0U2l6ZV0gewotICAgICAgICByZXN1bHRTaXplID0gZm9ybURhdGEt
Pmxlbmd0aEluQnl0ZXMoc2Vzc2lvbklEKTsKKyAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChb
Zm9ybURhdGEgPSBmb3JtRGF0YS5pc29sYXRlZENvcHkoKSwgJnJlc3VsdFNpemVdIHsKKyAgICAg
ICAgcmVzdWx0U2l6ZSA9IGZvcm1EYXRhLT5sZW5ndGhJbkJ5dGVzKCk7CiAgICAgfSk7CiAgICAg
cmV0dXJuIHJlc3VsdFNpemU7CiB9CkBAIC00OSw3ICs0OSw3IEBAIHVpbnQ2NF90IENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb246OmNvbXB1dGVSZWFsQm9keVNpemUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6
OlJlc3BvCiB7CiAgICAgdWludDY0X3QgcmVzdWx0ID0gMDsKICAgICBXVEY6OnN3aXRjaE9uKGJv
ZHksIFsmXSAoY29uc3QgUmVmPEZvcm1EYXRhPiYgZm9ybURhdGEpIHsKLSAgICAgICAgcmVzdWx0
ID0gZm9ybURhdGFTaXplKGZvcm1EYXRhLCBzZXNzaW9uSUQoKSk7CisgICAgICAgIHJlc3VsdCA9
IGZvcm1EYXRhU2l6ZShmb3JtRGF0YSk7CiAgICAgfSwgWyZdIChjb25zdCBSZWY8U2hhcmVkQnVm
ZmVyPiYgYnVmZmVyKSB7CiAgICAgICAgIHJlc3VsdCA9IGJ1ZmZlci0+c2l6ZSgpOwogICAgIH0s
IFtdIChjb25zdCBzdGQ6Om51bGxwdHJfdCYpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZDFkYWZhODlhZmVl
OGYwNDRjZWM4OGQ1MzQ0ZDk1ZmExZTU4NjdhNS4uNjM2ZjBkZjJjNDM5OThjNTgyMGJmMmY1ZmZm
NWJlMGI1OGY0MGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9D
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU3LDggKzU3LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBlbmdpbmVSZXByZXNlbnRhdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFN0cmluZyB7IH0pOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2UoY29uc3QgQ2xpZW50
T3JpZ2luJikgeyB9CiAKLSAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0ID0gMDsKLQogcHJpdmF0ZToKICAgICB1aW50NjRfdCBjb21wdXRlUmVhbEJvZHlTaXplKGNv
bnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01XaW5kb3dDYWNoZXMuY3BwCmluZGV4IDYxNTM5NDMwZGZiOTYx
NmZkMjg4ZmVkOTJjYjk0NGZmNDQ2YjAxMDMuLjA5ODZhYTJlMGExM2E3MTM3ZTU4YmUxMWJhNDI4
Yzk0ZDgzMDM4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
V2luZG93Q2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTVdp
bmRvd0NhY2hlcy5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBET01XaW5k
b3dDYWNoZXM6OmNhY2hlcygpIGNvbnN0CiAgICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VS
VChmcmFtZSgpLT5kb2N1bWVudCgpKTsKICAgICBpZiAoIW1fY2FjaGVzICYmIGZyYW1lKCktPnBh
Z2UoKSkKLSAgICAgICAgbV9jYWNoZXMgPSBET01DYWNoZVN0b3JhZ2U6OmNyZWF0ZSgqZnJhbWUo
KS0+ZG9jdW1lbnQoKSwgZnJhbWUoKS0+cGFnZSgpLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNy
ZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSkp
OworICAgICAgICBtX2NhY2hlcyA9IERPTUNhY2hlU3RvcmFnZTo6Y3JlYXRlKCpmcmFtZSgpLT5k
b2N1bWVudCgpLCBmcmFtZSgpLT5wYWdlKCktPmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkuY3JlYXRl
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpKTsKICAgICByZXR1cm4gbV9jYWNoZXMuZ2V0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGZmMDZhNmI4ZWI4ZWZiYjMzZWQzZmYz
N2M4NzcwZmNmMTg4ZWViODkuLjIwNmMyNDE4ZTk4N2ZlZGZkYTIxMDFlNmViYTVmNWE1YmEwYWYz
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTM0LDExICsxMzQsNiBAQCBXb3Jr
ZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp+V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigp
CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9uID0gV1RGTW92
ZShtX21haW5UaHJlYWRDb25uZWN0aW9uKV0oKSBtdXRhYmxlIHsgfSk7CiB9CiAKLVBBTDo6U2Vz
c2lvbklEIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnNlc3Npb25JRCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fc2NvcGUuc2Vzc2lvbklEKCk7Ci19Ci0KIHZvaWQgV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6b3Blbihjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBjYWNoZU5hbWUsIENhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCiB7
CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlm
aWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAyZjNhZmFkMjk0NGViMTQyNjc3ZjJiOWM1
MGRkNWYyOGQzYjkyYzQ0Li4xMTlkNGNjNjEyMDgzZGE3Mjg1ZjRmNzljMjJkZTU5YzliMGM0YmZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9p
ZCBkZXJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwogCi0gICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7Ci0KICAgICB2b2lkIGRvT3Blbih1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiBjYWNoZU5hbWUpOwogICAgIHZvaWQgZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcik7CiAgICAgdm9pZCBkb1JldHJpZXZlQ2Fj
aGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4mLCB1aW50
NjRfdCB1cGRhdGVDb3VudGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCmluZGV4IDUyYTUzNjc4
NTdhMWZhNDczZDQ3MTEwMmQ4MzRmYzc5NGJhNDgxYmYuLmQ4OTFjNzA4NjhiOGM3NmE5MjkxMTE3
YzUzYzMyY2Y2ZjE3YTY0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxv
Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApAQCAtMTY5LDcgKzE2
OSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iOjpzaXplKCkgY29uc3QKICAgICBpZiAoIW1f
c2l6ZSkgewogICAgICAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNp
emVzIGFzIGxhcmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwogICAgICAgICAv
LyBjb21lIHVwIHdpdGggYW4gZXhjZXB0aW9uIHRvIHRocm93IGlmIGZpbGUgc2l6ZSBpcyBub3Qg
cmVwcmVzZW50YWJsZS4KLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGFjdHVhbFNpemUgPSBU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShtX3Nlc3Npb25JRCwgbV9pbnRlcm5hbFVS
TCk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1YWxTaXplID0gVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6YmxvYlNpemUobV9pbnRlcm5hbFVSTCk7CiAgICAgICAgIG1fc2l6ZSA9IFdU
Rjo6aXNJbkJvdW5kczxsb25nIGxvbmc+KGFjdHVhbFNpemUpID8gYWN0dWFsU2l6ZSA6IDA7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9i
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5LmNwcAppbmRleCA3NjEwNjY0ZjVkYTA5YTFjZjhhNWUxOTc2NGNhNzc1ZjdhMWRmNmZiLi5h
OTViMjQ5ZjhjODQyM2ZkNzQ1YmMyYWM5N2IyN2JjMDRhYTNhNzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKQEAgLTEyOCwxNSAr
MTI4LDE1IEBAIHZvaWQgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMRm9y
U2xpY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjCiAgICAgfSk7CiB9CiAKLXVuc2lnbmVk
IGxvbmcgbG9uZyBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKQordW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKQogewogICAgIGlmIChpc01h
aW5UaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJsb2JTaXplKHNlc3Np
b25JRCwgdXJsKTsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJsb2JTaXplKHVybCk7
CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVzdWx0U2l6ZTsKICAgICBCaW5hcnlTZW1hcGhv
cmUgc2VtYXBob3JlOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb25JRCwgdXJsID0gdXJs
Lmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0U2l6ZV0gewotICAgICAgICByZXN1
bHRTaXplID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lvbklELCB1cmwpOworICAgIGNh
bGxPbk1haW5UaHJlYWQoW3VybCA9IHVybC5pc29sYXRlZENvcHkoKSwgJnNlbWFwaG9yZSwgJnJl
c3VsdFNpemVdIHsKKyAgICAgICAgcmVzdWx0U2l6ZSA9IGJsb2JSZWdpc3RyeSgpLmJsb2JTaXpl
KHVybCk7CiAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICB9KTsKICAgICBzZW1hcGhv
cmUud2FpdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVn
aXN0cnkuaAppbmRleCA4YjhiYTA2MDA2M2I0ZWUzMTI2ODNjOTQ0OWMyMmNhMjE4NjIxNWY1Li5h
MTYwYWNjYjhiNThiZjliNjhlYzJhM2UwMmY3ZDM1MGU4NjhhNTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaApAQCAtNTEsNyArNTEsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgbmV3VVJMLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25n
IHN0YXJ0LCBsb25nIGxvbmcgZW5kKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyQmxvYlVS
TChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJik7CiAKLSAgICBzdGF0aWMgdW5zaWduZWQgbG9u
ZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMg
dW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpOwogCiAgICAgLy8gUmV0dXJu
cyB0aGUgb3JpZ2luIGZvciB0aGUgZ2l2ZW4gYmxvYiBVUkwuIFRoaXMgaXMgYmVjYXVzZSB3ZSBh
cmUgbm90IGFibGUgdG8gZW1iZWQgdGhlIHVuaXF1ZSBzZWN1cml0eSBvcmlnaW4gb3IgdGhlIG9y
aWdpbiBvZiBmaWxlIFVSTAogICAgIC8vIGluIHRoZSBibG9iIFVSTC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIuY3BwCmlu
ZGV4IDQ3YTNjN2I2ZTA3NjU4NWI5Njg1ZjEzNDA3ZjAzYzJjMGU2ZWEyY2QuLjAwYzU1MDVlN2Vj
MTc1MDU4MjVmMTRhMzU4NzBjMDMzODdmOTQwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2VyLmNwcApAQCAtNDQsNyAr
NDQsNyBAQCBib29sIEtlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjp0cnlSZWdpc3RlclJlcXVlc3Qo
Q2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgIGlmICghYm9keSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICB1aW50NjRfdCBib2R5U2l6ZSA9IGJvZHktPmxlbmd0aEluQnl0ZXMocmVz
b3VyY2Uuc2Vzc2lvbklEKCkpOworICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9keS0+bGVuZ3Ro
SW5CeXRlcygpOwogICAgIGlmIChtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKyBib2R5U2l6ZSA+
IG1heEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIEtlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVl
c3QoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJU
KCFtX2luZmxpZ2h0S2VlcGFsaXZlUmVxdWVzdHMuY29udGFpbnMoJnJlc291cmNlKSk7CiAgICAg
bV9pbmZsaWdodEtlZXBhbGl2ZVJlcXVlc3RzLmFwcGVuZCgmcmVzb3VyY2UpOwotICAgIG1faW5m
bGlnaHRLZWVwYWxpdmVCeXRlcyArPSBib2R5LT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Np
b25JRCgpKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0gYm9keS0+bGVuZ3RoSW5C
eXRlcygpOwogICAgIEFTU0VSVChtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgPD0gbWF4SW5mbGln
aHRLZWVwYWxpdmVCeXRlcyk7CiAKICAgICByZXNvdXJjZS5hZGRDbGllbnQoKnRoaXMpOwpAQCAt
ODcsNyArODcsNyBAQCB2b2lkIEtlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjp1bnJlZ2lzdGVyUmVx
dWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgcmVzb3VyY2UucmVtb3ZlQ2xpZW50
KCp0aGlzKTsKICAgICBib29sIHdhc1JlbW92ZWQgPSBtX2luZmxpZ2h0S2VlcGFsaXZlUmVxdWVz
dHMucmVtb3ZlRmlyc3QoJnJlc291cmNlKTsKICAgICBBU1NFUlRfVU5VU0VEKHdhc1JlbW92ZWQs
IHdhc1JlbW92ZWQpOwotICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAtPSByZXNvdXJjZS5y
ZXNvdXJjZVJlcXVlc3QoKS5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Np
b25JRCgpKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgLT0gcmVzb3VyY2UucmVzb3Vy
Y2VSZXF1ZXN0KCkuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygpOwogICAgIEFTU0VSVChtX2lu
ZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgPD0gbWF4SW5mbGlnaHRLZWVwYWxpdmVCeXRlcyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAppbmRleCBkOWYzZjNj
N2EwZjQ2YmRmY2UyYWVhNGM4YjA4NjU1NDRiNjU4MTNlLi4xYjE1ZDNlYzM0ZjA3MzM3ODU3Nzll
YzFmNTkzNDVmMTMzNWI3ZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hl
U3RvcmFnZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oCkBAIC0zNSwxMSArMzUsMTAgQEAgY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZVN0b3JhZ2VQcm92aWRlcj4gewogcHVibGljOgogICAg
IGNsYXNzIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlv
bihzZXNzaW9uSUQpKTsgfQorICAgICAgICBzdGF0aWMgUmVmPER1bW15Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEdW1teUNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24oKSk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IER1bW15
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgICAg
ICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAgICAgRHVtbXlDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uKCkKICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTUxLDEzICs1MCwxMCBAQCBw
dWJsaWM6CiAgICAgICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QsIFZlY3RvcjxE
T01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmll
cnNDYWxsYmFjayYmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCByZWZlcmVuY2UodWludDY0X3Qp
IGZpbmFsIHsgfQogICAgICAgICB2b2lkIGRlcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0K
LSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zZXNzaW9uSUQ7IH0KLQotICAgICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAg
ICB9OwogCiAgICAgc3RhdGljIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZVN0b3JhZ2VQcm92aWRlcik7IH0KLSAgICB2aXJ0dWFs
IFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgeyByZXR1cm4gRHVtbXlDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjcmVhdGUoc2Vzc2lvbklEKTsgfQorICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSB7IHJldHVybiBEdW1t
eUNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSB7IH07CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCmluZGV4IDhjZDM5MWQxZmUzNDliMGNlOGE4
ZjI3NDU5MzI5MWI3MWU0YTU0YjkuLjY2MGE3OTZkMGIyZDg5ODYyNTFiODA2ZDM5MTNiZjkxNDU0
ZTllNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnkuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdp
c3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpID0gMDsKIAotICAgIHZpcnR1
YWwgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
KSA9IDA7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJM
JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSA9IDA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKaW5kZXggMjE2Y2IzMzdh
NDBjNjBhNTA5Yzk2MzYxZDU5ZmYzM2Y2NzZlNDQ3YS4uZmVhNGUwZTAyMTIxZDI5NmNkZGU0MzFk
MmNiNjcwNmE4MjUwNjljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9Gb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9G
b3JtRGF0YS5jcHAKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHVpbnQ2NF90IEZvcm1EYXRhRWxlbWVu
dDo6bGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJbXBsKiBibG9iUmVnaXN0cnkpIGNvbnN0CiAg
ICAgfSk7CiB9CiAKLXVpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0Cit1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxl
bmd0aEluQnl0ZXMoKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlTGVuZ3RoSW5CeXRlcygq
dGhpcywgWyZdKGF1dG8mIHVybCkgewotICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxv
YlNpemUoc2Vzc2lvbklELCB1cmwpOworICAgIHJldHVybiBjb21wdXRlTGVuZ3RoSW5CeXRlcygq
dGhpcywgW10oYXV0byYgdXJsKSB7CisgICAgICAgIHJldHVybiBibG9iUmVnaXN0cnkoKS5ibG9i
U2l6ZSh1cmwpOwogICAgIH0pOwogfQogCkBAIC0zOTQsMTIgKzM5NCwxMiBAQCBGb3JtRGF0YUZv
clVwbG9hZDo6fkZvcm1EYXRhRm9yVXBsb2FkKCkKICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRl
RmlsZShmaWxlKTsKIH0KIAotdWludDY0X3QgRm9ybURhdGE6Omxlbmd0aEluQnl0ZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAordWludDY0X3QgRm9ybURhdGE6Omxlbmd0aEluQnl0
ZXMoKSBjb25zdAogewogICAgIGlmICghbV9sZW5ndGhJbkJ5dGVzKSB7CiAgICAgICAgIHVpbnQ2
NF90IGxlbmd0aCA9IDA7CiAgICAgICAgIGZvciAoYXV0byYgZWxlbWVudCA6IG1fZWxlbWVudHMp
Ci0gICAgICAgICAgICBsZW5ndGggKz0gZWxlbWVudC5sZW5ndGhJbkJ5dGVzKHNlc3Npb25JRCk7
CisgICAgICAgICAgICBsZW5ndGggKz0gZWxlbWVudC5sZW5ndGhJbkJ5dGVzKCk7CiAgICAgICAg
IG1fbGVuZ3RoSW5CeXRlcyA9IGxlbmd0aDsKICAgICB9CiAgICAgcmV0dXJuICptX2xlbmd0aElu
Qnl0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKaW5kZXgg
YjhlYzAzZGMxZjgxNDRiNzY0Yjg0NzY4Y2EzNTE3YWRjYmM5MmY2OS4uN2Q3NWI5NmYwNTVlNzZm
ZmIxYWJiYmUyZjUxZGYxYmNkYWRkYjRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuaApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3QgRm9ybURhdGFFbGVtZW50
IHsKICAgICAgICAgOiBkYXRhKEVuY29kZWRCbG9iRGF0YSB7IGJsb2JVUkwgfSkgeyB9CiAKICAg
ICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKEJsb2JSZWdpc3RyeUltcGwqKSBjb25zdDsKLSAgICB1
aW50NjRfdCBsZW5ndGhJbkJ5dGVzKFBBTDo6U2Vzc2lvbklEKSBjb25zdDsKKyAgICB1aW50NjRf
dCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CiAKICAgICBGb3JtRGF0YUVsZW1lbnQgaXNvbGF0ZWRD
b3B5KCkgY29uc3Q7CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBGb3JtVVJMRW5jb2RlZDsKICAgICB9CiAKLSAgICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKFBB
TDo6U2Vzc2lvbklEKSBjb25zdDsKKyAgICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXNCbG9iVVJMKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAwMzAwZjlhMDQzNTA3MDA2YmZlZjU5ZGM5Y2Y4
ZjJmN2UwZjgwNGY5Li5iODc5NjEyODNjM2Q4ZTRlYWRjNTU3MjZhNmNlYjkwYTBjNmY3MGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00ODkyLDcgKzQ4OTIsNyBAQCB2
b2lkIEludGVybmFsczo6Y2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRhdGlvbihET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJgogCiAgICAgaWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rp
b24pIHsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgp
KQotICAgICAgICAgICAgbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uID0gcGFnZS0+Y2FjaGVTdG9y
YWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKHBhZ2UtPnNlc3Npb25J
RCgpKTsKKyAgICAgICAgICAgIG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbiA9IHBhZ2UtPmNhY2hl
U3RvcmFnZVByb3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogICAgICAg
ICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbikKICAgICAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC00OTEwLDcgKzQ5MTAsNyBAQCB2b2lkIEludGVybmFsczo6Y2FjaGVTdG9yYWdlRW5n
aW5lUmVwcmVzZW50YXRpb24oRE9NUHJvbWlzZURlZmVycmVkPElETERPTVN0cmluZwogCiAgICAg
aWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24pIHsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2Ug
PSBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKQotICAgICAgICAgICAgbV9jYWNoZVN0b3JhZ2VD
b25uZWN0aW9uID0gcGFnZS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKHBhZ2UtPnNlc3Npb25JRCgpKTsKKyAgICAgICAgICAgIG1fY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbiA9IHBhZ2UtPmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkuY3JlYXRlQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbigpOwogICAgICAgICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlv
bikKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00OTI3LDcgKzQ5MjcsNyBAQCB2b2lk
IEludGVybmFsczo6dXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZSgpCiAKICAgICBpZiAoIW1f
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbikgewogICAgICAgICBpZiAoYXV0byogcGFnZSA9IGNvbnRl
eHREb2N1bWVudCgpLT5wYWdlKCkpCi0gICAgICAgICAgICBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rp
b24gPSBwYWdlLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24ocGFnZS0+c2Vzc2lvbklEKCkpOworICAgICAgICAgICAgbV9jYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uID0gcGFnZS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uKCk7CiAgICAgICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMWU0ZDdkYmQ3MTUzY2ZhM2NhZjY2MGZjMDk4MDVl
NTYzN2QxMTQ2MS4uNmJkNTNhMTZhNjE2NDU3ODc0NGY4NDEyZjg2YmJlMDI0NDUzNWVlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAg
LTEzOSw3ICsxMzksNyBAQCBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gV29ya2VyTWVzc2Fn
aW5nUHJveHk6OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
Km1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+
Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3Vt
ZW50LnBhZ2UoKS0+c2Vzc2lvbklEKCkpOworICAgIHJldHVybiBkb2N1bWVudC5wYWdlKCktPmNh
Y2hlU3RvcmFnZVByb3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogfQog
CiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcm
IG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCA2MTc0NWE3
YTBmYTBiMjVjMWIzMjkyYTNjZWQyNDI0NzQ0YWZiNzQxLi43OTFkM2EzZGY1OTA1YWUxMDMyNTYx
OGE1NTExNDdiYWY1ZTRlZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAKQEAgLTEwMCw3ICsxMDAsNiBAQCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogICAgICwgbV9k
b2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICwgbV9zZXJ2aWNl
V29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNzaW9uSUQs
IFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0aW9uUHJveHkobV9k
b2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAgICwgbV9jYWNoZVN0
b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKLSAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIG1faW5zcGVjdG9yUHJveHkoKnRoaXMpCiB7CiAgICAgc3RhdGljIGJv
b2wgYWRkZWRMaXN0ZW5lcjsKQEAgLTE2MSw3ICsxNjAsNyBAQCBSZWY8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25u
ZWN0aQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX2NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24pCi0gICAgICAgIG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbiA9IG1fY2Fj
aGVTdG9yYWdlUHJvdmlkZXIuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihtX3Nlc3Npb25J
RCk7CisgICAgICAgIG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbiA9IG1fY2FjaGVTdG9yYWdlUHJv
dmlkZXIuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogICAgIHJldHVybiAqbV9jYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
CmluZGV4IGY0NmNmZDE0NzhhZWEyNzRkMjE5MDM2MjMyMzVjMzYzZDMyM2ZkODcuLjA5YTY0MDk3
OTUwNmFiNmM0NDc3ZGI0MmUwMDU2MjZjM2QxZmQ0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5oCkBAIC05NSw3ICs5NSw2IEBAIHByaXZhdGU6CiAgICAgUmVmPFNlcnZpY2VX
b3JrZXJUaHJlYWQ+IG1fc2VydmljZVdvcmtlclRocmVhZDsKICAgICBDYWNoZVN0b3JhZ2VQcm92
aWRlciYgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwotICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkIHsgZmFsc2Ug
fTsKIAogICAgIFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eSBtX2luc3BlY3RvclByb3h5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNTNhYzQ4MThjM2NmZDk2YWM5
NjcwN2YyOGIyMjI5OGQ2NjViZTg4My4uZjVjNjc1MzA1Zjc1ZDQ0NDIxNjljZDdiODIxZmM1MGQ1
YWU1NjUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02MjMsNyAr
NjIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3Qo
KQogICAgIGlmIChtX2FzeW5jKSB7CiAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwogICAgICAg
ICBpZiAoIW1fdXBsb2FkQ29tcGxldGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCi0gICAgICAg
ICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3Rh
cnRFdmVudCwgMCwgcmVxdWVzdC5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2Vzc2lvbklEKCkpKTsKKyAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNw
YXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50LCAwLCByZXF1ZXN0
Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMoKSk7CiAKICAgICAgICAgaWYgKHJlYWR5U3RhdGUo
KSAhPSBPUEVORUQgfHwgIW1fc2VuZEZsYWcgfHwgbV9sb2FkZXIpCiAgICAgICAgICAgICByZXR1
cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA0NjcyYjNlOWRh
MDYwZWNmZWNkYmNlODU1ZmE1NDZmZDdmZjZiMWViLi4wYzg0NmRiMDI0MmYzYTc1MTNlNmMzYjEx
MWVhYWMxZDg4NjBlYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAt
NTgsNyArNTgsNyBAQCBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVn
aWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lk
IHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25z
dCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kKSBmaW5hbCB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
LSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1w
b3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJikg
ZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIH07CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEVtcHR5QmxvYlJlZ2lzdHJ5PiBibG9iUmVnaXN0cnk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggN2M3YmI0MTY5Mjg1ZGIzNmM3MzBkZDJhZTc3NTI3YWRhODdkMDUyMC4u
ZjdlNzQ1NDRiMjk5Njc3NDY5Y2I2YjZhZjE4NWZlOWU0NDA0ZDk3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtMTEwLDkgKzExMCw0IEBAIHZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6dXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShjb25zdCBXZWJDb3JlOjpDbGllCiAg
ICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpVcGRhdGVRdW90
YUJhc2VkT25TcGFjZVVzYWdlRm9yVGVzdGluZyhXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZXNz
aW9uSUQoKSwgb3JpZ2luKSwgMCk7CiB9CiAKLVBBTDo6U2Vzc2lvbklEIFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OnNlc3Npb25JRCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCBmNDhlNWE3NjQ5YzY4MTJhNzY3OGVmZTY5NjY3MjdkZDM1YzliMDJmLi4xNGI4NzQxMTA4YWQz
MmJjZjBhZjE5NDM4Mzg4ODc5MWQyZTcwNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTY2
LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTWVtb3J5UmVwcmVzZW50YXRpb24o
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNv
bXBsZXRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGVuZ2luZVJlcHJlc2VudGF0aW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwogICAgIHZv
aWQgdXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mKSBmaW5hbDsKLSAgICAKLSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBm
aW5hbDsKIAogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBtX3Byb3ZpZGVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXIuY3BwCmluZGV4IDJhMDIyNTM3MmU4MTM3YmI4N2IzM2FmYmM1ZmQ3Y2Q4ZjM4
Njk2YmIuLmQ1ZWY1MzkyZmRiNjdlODg3NGY3MDg2MWRhODIzNTE3YmMxOGVmMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZVByb3ZpZGVyLmNwcApAQCAtMzQsOSArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UmVmPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IFdlYkNhY2hlU3RvcmFnZVByb3Zp
ZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKK1JlZjxXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRChzZXNzaW9uSUQsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpKTsKICAg
ICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgbV9jb25uZWN0aW9uID0gV2ViQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fY29ubmVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZVByb3ZpZGVyLmgKaW5kZXggMmY1NTY5YzdlZjc3NTQ2ODM4YWIxMWZiMDk4MjhjZDdlOWNj
NTEwZC4uZDlhYTJhYWYxOTA5NDVlOTExNTAxOTVhYjljMWZmY2E5YTNiOTA4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXIgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIpOyB9CiAKLSAgICBSZWY8V2Vi
Q29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bihQQUw6OlNlc3Npb25JRCkgZmluYWw7CisgICAgUmVmPFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBmaW5hbDsKIAogcHJpdmF0
ZToKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcApp
bmRleCA2NmY0NDJjMjlmOTk3NDFlNGUxNjVjZGRhOTEyOGI4ZjY5NWUxNjNjLi41YzNhMjExYTJl
YmEzNmNkNWMwNGU1ZTgyOTU5YzhmOTY0NWM5ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCkBAIC03Myw3ICs3
Myw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kKSwgMCk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9u
ZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
dXJsKQordW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShjb25z
dCBVUkwmIHVybCkKIHsKICAgICB1aW50NjRfdCByZXN1bHRTaXplOwogICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
QmxvYlNpemUodXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpC
bG9iU2l6ZTo6UmVwbHkocmVzdWx0U2l6ZSksIDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKaW5kZXggODA5MjRjMGY5NDll
ZDdhMDgyYmFlMDI1ZGJhZjRiMzRiZjUxMDZjYS4uZDc2NjE1ODdlM2U3NDM4MzJlMjMyNWM2Nzk2
Y2ZhMzQ1YmI5NTZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWw7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgZmluYWw7CiAg
ICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
JiwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmlu
YWw7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmKSBmaW5hbDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJM
JikgZmluYWw7CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJikgZmluYWw7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMDg5ZTZhN2FlYzExNzkyNmMzYjk1OGY1YmMzMDAx
NzUwYTFkMWYyNy4uZGVmOThkYWUyZmViNDQ4MDdlZmIzMjE3YWNkY2NlY2JiNjU5OWRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4mJiByZWZlcmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJs
LCBzcmNVUkwsIFdURk1vdmUocmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsIHsg
bV9ibG9iUmVnaXN0cnkucmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0
LCBlbmQpOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29u
c3QgVVJMJiB1cmwpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkudW5yZWdpc3RlckJsb2JVUkwodXJs
KTsgfQotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7
IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJiB1cmwpIGZpbmFs
IHsgcmV0dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KICAgICB2b2lkIHdyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxl
UGF0aHMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRl
QmxvYnNUb1RlbXBvcmFyeUZpbGVzKGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7IH0KIAogICAgIEJsb2JSZWdpc3RyeUltcGwqIGJsb2JSZWdpc3RyeUltcGwoKSBmaW5hbCB7
IHJldHVybiAmbV9ibG9iUmVnaXN0cnk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CmluZGV4IDVkYTllZDRlNGYxMjRmNDBiMjMxMDEwZDNiNTM2N2VjNDNmYTljZGUuLmI3NjkwZGZi
ZGZmMTlhYzhlNDY1ZGYwYWM5ZDkzNjIwNjJiMzRlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZl
cmVuY2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnku
cmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUo
cmVmZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JT
bGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBs
b25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpOyB9CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkudW5yZWdpc3RlckJsb2JVUkwodXJsKTsgfQotICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpIGZpbmFs
IHsgcmV0dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KKyAgICB1bnNpZ25lZCBs
b25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0dXJuIG1fYmxvYlJl
Z2lzdHJ5LmJsb2JTaXplKHVybCk7IH0KICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZp
bGVzKGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KIAogICAgIEJsb2JS
ZWdpc3RyeUltcGwqIGJsb2JSZWdpc3RyeUltcGwoKSBmaW5hbCB7IHJldHVybiAmbV9ibG9iUmVn
aXN0cnk7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>