<?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>176194</bug_id>
          
          <creation_ts>2017-08-31 16:25:59 -0700</creation_ts>
          <short_desc>Reject promises in case of internal CacheStorage engine errors.</short_desc>
          <delta_ts>2017-09-27 12:45:57 -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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344184</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 16:25:59 -0700</bug_when>
    <thetext>Currently we use debug ASSERT and we silently fail.
It might be better to reject promises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344193</commentid>
    <comment_count>1</comment_count>
      <attachid>319539</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 16:42:10 -0700</bug_when>
    <thetext>Created attachment 319539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344425</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 09:48:00 -0700</bug_when>
    <thetext>A follow-up patch might want to change a little bit the error handling in the engine.
In particular, when we experience a write disk error, the modification in the in-memory representation is already done.
In that case, we could:
- Wait for write disk completion to make the in-memory change. That seems risky.
- Log in the inspector console any WriteDisk error, but not reject promises for that type of error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344456</commentid>
    <comment_count>3</comment_count>
      <attachid>319614</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 10:46:57 -0700</bug_when>
    <thetext>Created attachment 319614
Rebasing for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344480</commentid>
    <comment_count>4</comment_count>
      <attachid>319614</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 11:16:19 -0700</bug_when>
    <thetext>Comment on attachment 319614
Rebasing for landing

Clearing flags on attachment: 319614

Committed r221483: &lt;http://trac.webkit.org/changeset/221483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344481</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-01 11:16:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353640</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:45:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319539</attachid>
            <date>2017-08-31 16:42:10 -0700</date>
            <delta_ts>2017-09-01 10:46:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176194-20170831164210.patch</filename>
            <type>text/plain</type>
            <size>17346</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ3NDk3NDFjYTllMWUy
OTBlZWVkZWYwZDZmNWNjNmJjNWRiNWE0ZC4uOTQzNTY4OTViZjYyNTNjMjU0YmJiZjJkMDQ1N2Fj
M2VjMjQxNGI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBSZWplY3QgcHJvbWlzZXMg
aW4gY2FzZSBvZiBpbnRlcm5hbCBDYWNoZVN0b3JhZ2UgZW5naW5lIGVycm9ycy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE5NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0
aGlzIGNvdmVycyBlcnJvciBjYXNlcyB0aGF0IHNob3VsZCBub3QgaGFwcGVuIGluIHJlZ3VsYXIg
Y2FzZXMuCisgICAgICAgIFJlcGxhY2luZyBsYW1iZGFzIHRoYXQgdGFrZSBubyBwYXJhbWV0ZXJz
IHRvIGxhbWJkYXMgdGFraW5nIGFuIG9wdGlvbmFsIGVycm9yLgorICAgICAgICBSZWplY3QgcHJv
bWlzZSBpZiBhbiBlcnJvciBpcyBmb3VuZC4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2Fj
aGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmRvTWF0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGU6Om1hdGNoQWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjprZXlzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlOjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGU6OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZVN0b3JhZ2U6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZTo6aGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6cmV0cmlldmVDYWNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVTdG9yYWdlOjpvcGVuKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlU3RvcmFnZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZTo6a2V5cyk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaDoKKwor
MjAxNy0wOC0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAg
VXBkYXRlIENhY2hlU3RvcmFnZSBjYWNoZXMgb25seSBpZiBpdCBpcyB1cGRhdGVkCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMzUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcAppbmRleCAzMmEwZjExNDMwYjVkOGIwN2Q3Yjcw
ZjYwYjZmOTBkMjA1OGE4ODhlLi45OTUzYzEwOTViMzdmZjQ1OTNiYTRkZjYwZTEzOGU3NWQzZGIx
NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcApAQCAtNTUsMTIgKzU1
LDE2IEBAIENhY2hlOjp+Q2FjaGUoKQogCiB2b2lkIENhY2hlOjptYXRjaChSZXF1ZXN0SW5mbyYm
IGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQogewotICAgIGRvTWF0Y2goV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25z
KSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShGZXRjaFJlc3BvbnNlKiByZXN1bHQpIG11
dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgIGRvTWF0Y2goV1RGTW92ZShpbmZv
KSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRp
b25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFyZXN1bHQucmV0dXJuVmFsdWUoKSkgewogICAgICAgICAgICAgcHJvbWlzZS0+
cmVzb2x2ZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHByb21p
c2UtPnJlc29sdmU8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9uc2U+PigqcmVzdWx0KTsKKyAgICAg
ICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+KCpyZXN1bHQu
cmV0dXJuVmFsdWUoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTc2LDEyICs4MCwxNiBAQCB2b2lkIENh
Y2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBNYXRjaENhbGxiYQogICAgIH0KICAgICBhdXRvIHJlcXVlc3QgPSByZXF1ZXN0T3JFeGNl
cHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBxdWVyeUNhY2hlKHJlcXVlc3QuZ2V0
KCksIFdURk1vdmUob3B0aW9ucyksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShjb25z
dCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYgcmVjb3JkcykgbXV0YWJsZSB7Ci0gICAgICAg
IGlmIChyZWNvcmRzLmlzRW1wdHkoKSkgeworICAgIHF1ZXJ5Q2FjaGUocmVxdWVzdC5nZXQoKSwg
V1RGTW92ZShvcHRpb25zKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKEV4Y2VwdGlv
bk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGlmIChyZXN1bHQucmV0dXJuVmFsdWUoKS5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIGNhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0g
ICAgICAgIGNhbGxiYWNrKHJlY29yZHNbMF0ucmVzcG9uc2UtPmNsb25lRm9ySlMoKS5wdHIoKSk7
CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZXR1cm5WYWx1ZSgpWzBdLnJlc3BvbnNlLT5jbG9u
ZUZvckpTKCkucHRyKCkpOwogICAgIH0pOwogfQogCkBAIC0xMDEsNyArMTA5LDExIEBAIHZvaWQg
Q2FjaGU6Om1hdGNoQWxsKHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVR
dWVyeU9wdGlvbnMmJiBvcHRpCiAgICAgfQogCiAgICAgaWYgKCFyZXF1ZXN0KSB7Ci0gICAgICAg
IHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0
YWJsZSB7CisgICAgICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7
CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFZlY3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+
IHJlc3BvbnNlczsKICAgICAgICAgICAgIHJlc3BvbnNlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KG1fcmVjb3Jkcy5zaXplKCkpOwogICAgICAgICAgICAgZm9yIChhdXRvJiByZWNvcmQgOiBtX3Jl
Y29yZHMpCkBAIC0xMTAsNyArMTIyLDEyIEBAIHZvaWQgQ2FjaGU6Om1hdGNoQWxsKHN0ZDo6b3B0
aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpCiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHF1ZXJ5Q2FjaGUocmVxdWVzdC5y
ZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+JiByZWNvcmRzKSBtdXRhYmxl
IHsKKyAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRp
b25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0b3I8Q2Fj
aGVTdG9yYWdlUmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBhdXRvIHJlY29yZHMgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIFZl
Y3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+IHJlc3BvbnNlczsKICAgICAgICAgcmVzcG9uc2VzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkocmVjb3Jkcy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8m
IHJlY29yZCA6IHJlY29yZHMpCkBAIC0zNjEsNyArMzc4LDExIEBAIHZvaWQgQ2FjaGU6OmtleXMo
c3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9w
dGlvbnMsCiAgICAgfQogCiAgICAgaWYgKCFyZXF1ZXN0KSB7Ci0gICAgICAgIHJldHJpZXZlUmVj
b3JkcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAg
ICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHN0
ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAg
ICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92
ZShleGNlcHRpb24udmFsdWUoKSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIFZlY3RvcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gcmVxdWVzdHM7CiAg
ICAgICAgICAgICByZXF1ZXN0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fcmVjb3Jkcy5zaXpl
KCkpOwogICAgICAgICAgICAgZm9yIChhdXRvJiByZWNvcmQgOiBtX3JlY29yZHMpCkBAIC0zNzEs
NyArMzkyLDEzIEBAIHZvaWQgQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4m
JiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShv
cHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShjb25zdCBWZWN0b3I8Q2FjaGVT
dG9yYWdlUmVjb3JkPiYgcmVjb3JkcykgbXV0YWJsZSB7CisgICAgcXVlcnlDYWNoZShyZXF1ZXN0
LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlY29yZHMgPSByZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIFZlY3RvcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4g
cmVxdWVzdHM7CiAgICAgICAgIHJlcXVlc3RzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVjb3Jk
cy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHJlY29yZCA6IHJlY29yZHMpCkBAIC0zODAs
MjQgKzQwNywzMSBAQCB2b2lkIENhY2hlOjprZXlzKHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEluZm8+
JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLAogICAgIH0pOwogfQogCi12b2lk
IENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2sp
Cit2b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoV1RGOjpGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBzZXRQZW5kaW5nQWN0aXZp
dHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29yZHMobV9pZGVudGlmaWVy
LCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oUmVjb3Jkc09yRXJyb3ImJiBy
ZXN1bHQpIHsKICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBwcm9iYWJseSBwcm9wYWdhdGUgdGhhdCBlcnJvciB1cCB0byB0aGUgcHJv
bWlzZSBiYXNlZCBvcGVyYXRpb24uCi0gICAgICAgICAgICBBU1NFUlQocmVzdWx0Lmhhc1ZhbHVl
KCkpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzVmFsdWUoKSkgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKERPTUNhY2hlOjplcnJvclRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBp
ZiAocmVzdWx0Lmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICAgICAgdXBkYXRlUmVjb3JkcyhXVEZN
b3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAg
ICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKICAgICAgICAgfQogICAgICAgICB1bnNldFBlbmRp
bmdBY3Rpdml0eSh0aGlzKTsKICAgICB9KTsKIH0KIAotdm9pZCBDYWNoZTo6cXVlcnlDYWNoZShS
ZWY8RmV0Y2hSZXF1ZXN0PiYmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik+JiYg
Y2FsbGJhY2spCit2b2lkIENhY2hlOjpxdWVyeUNhY2hlKFJlZjxGZXRjaFJlcXVlc3Q+JiYgcmVx
dWVzdCwgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoRXhj
ZXB0aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYpPiYmIGNhbGxiYWNrKQogewot
ICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9w
dGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgp
IG11dGFibGUgeworICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUg
eworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3Zl
KGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAg
ICAgICAgY2FsbGJhY2socXVlcnlDYWNoZVdpdGhUYXJnZXRTdG9yYWdlKHJlcXVlc3QuZ2V0KCks
IG9wdGlvbnMsIG1fcmVjb3JkcykpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZS5oCmluZGV4IDI3YzU1YzI2ZWU4MzI0MWRkYTI4MTI0NTY3YTg4YTYxMjZjOTI5YmIu
LjQ3YjNkNDViZDVjMTYxNWI5YzE5OGI5MWJiMjc3YmRmZTY2OTExZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIHVpbnQ2NF90IGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAgIHVzaW5nIE1h
dGNoQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoRmV0Y2hSZXNwb25zZSopPjsKKyAgICB1
c2luZyBNYXRjaENhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPEZldGNo
UmVzcG9uc2UqPik+OwogICAgIHZvaWQgZG9NYXRjaChSZXF1ZXN0SW5mbyYmLCBDYWNoZVF1ZXJ5
T3B0aW9ucyYmLCBNYXRjaENhbGxiYWNrJiYpOwogCiBwcml2YXRlOgpAQCAtNjksOSArNjksOSBA
QCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBm
aW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
KTsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3JkcyhXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRp
b25hbDxFeGNlcHRpb24+JiYpPiYmKTsKICAgICBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBx
dWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1ZXN0JiwgY29uc3QgQ2Fj
aGVRdWVyeU9wdGlvbnMmLCBjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYpOwotICAg
IHZvaWQgcXVlcnlDYWNoZShSZWY8RmV0Y2hSZXF1ZXN0PiYmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKT4m
Jik7CisgICAgdm9pZCBxdWVyeUNhY2hlKFJlZjxGZXRjaFJlcXVlc3Q+JiYsIENhY2hlUXVlcnlP
cHRpb25zJiYsIFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8Q2FjaGVTdG9y
YWdlUmVjb3JkPj4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3Qg
RmV0Y2hSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4
Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKTsKICAgICB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKGNvbnN0
IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNoZTo6UmVzcG9uc2VCb2R5JiYs
IFdURjo6RnVuY3Rpb248dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBi
YXRjaFB1dE9wZXJhdGlvbihWZWN0b3I8RE9NQ2FjaGU6OlJlY29yZD4mJiwgV1RGOjpGdW5jdGlv
bjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAppbmRleCAzNDQ3YWM5ZjdhNTkzOGQzMzQwZWFhNmJk
YmExN2IyMzk2ZTgwNzFlLi5kMjNmZDNmZDNjMjQ1ZTE0YzdjMmI5ZGQyYTRjMjhiNjc4NGQwZWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCkBA
IC01Niw5ICs1NiwxMyBAQCBzdGF0aWMgdm9pZCBkb1NlcXVlbnRpYWxNYXRjaChzaXplX3QgaW5k
ZXgsIFZlY3RvcjxSZWY8Q2FjaGU+PiYmIGNhY2hlcywgQ2FjaGU6OgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgY2FjaGVzW2luZGV4XS0+ZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZN
b3ZlKG9wdGlvbnMpLCBbY2FjaGVzID0gV1RGTW92ZShjYWNoZXMpLCBpbmZvLCBvcHRpb25zLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmRleF0oRmV0
Y2hSZXNwb25zZSogdmFsdWUpIG11dGFibGUgewotICAgICAgICBpZiAodmFsdWUpIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHZhbHVlKTsKKyAgICBjYWNoZXNbaW5kZXhdLT5kb01h
dGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFtjYWNoZXMgPSBXVEZNb3ZlKGNh
Y2hlcyksIGluZm8sIG9wdGlvbnMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIGluZGV4XShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0LnJldHVyblZhbHVl
KCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZXR1cm5WYWx1ZSgp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBkb1NlcXVlbnRpYWxN
YXRjaCgrK2luZGV4LCBXVEZNb3ZlKGNhY2hlcyksIFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0
aW9ucyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTgxLDcgKzg1LDEyIEBAIHN0
YXRpYyBpbmxpbmUgVmVjdG9yPFJlZjxDYWNoZT4+IGNvcHlDYWNoZXMoY29uc3QgVmVjdG9yPFJl
ZjxDYWNoZT4+JiBjYWNoZXMpCiAKIHZvaWQgQ2FjaGVTdG9yYWdlOjptYXRjaChDYWNoZTo6UmVx
dWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgaW5mbyA9
IFdURk1vdmUoaW5mbyksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgaW5m
byA9IFdURk1vdmUoaW5mbyksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBt
dXRhYmxlIHsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmICghb3B0aW9ucy5jYWNoZU5hbWUuaXNOdWxsKCkpIHsK
ICAgICAgICAgICAgIGF1dG8gcG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1
dG8mIGl0ZW0pIHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBvcHRpb25zLmNhY2hlTmFtZTsgfSk7
CiAgICAgICAgICAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpIHsKQEAgLTkzLDEyICsxMDIs
MTYgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6Om1hdGNoKENhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8s
IENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywKICAgICAgICAgfQogCiAgICAgICAgIHNldFBl
bmRpbmdBY3Rpdml0eSh0aGlzKTsKLSAgICAgICAgc3RhcnRTZXF1ZW50aWFsTWF0Y2goY29weUNh
Y2hlcyhtX2NhY2hlcyksIFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRmV0Y2hSZXNwb25zZSogcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgc3RhcnRTZXF1ZW50aWFsTWF0Y2goY29weUNhY2hlcyhtX2NhY2hlcyksIFdU
Rk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICghbV9pc1N0b3BwZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJl
c3VsdCkKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAg
ICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXR1cm5WYWx1ZSgpKQogICAgICAgICAgICAgICAgICAg
ICBwcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxGZXRjaFJlc3BvbnNlPj4oKnJl
c3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMSW50ZXJmYWNl
PEZldGNoUmVzcG9uc2U+PigqcmVzdWx0LnJldHVyblZhbHVlKCkpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwpAQCAt
MTA3LDI0ICsxMjAsMjYgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6Om1hdGNoKENhY2hlOjpSZXF1ZXN0
SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywKIAogdm9pZCBDYWNoZVN0
b3JhZ2U6Omhhcyhjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmIHByb21pc2UpCiB7Ci0gICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgIHJldHJpZXZlQ2FjaGVzKFt0
aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oc3RkOjpvcHRpb25hbDxFeGNl
cHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgewor
ICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIHByb21pc2UucmVzb2x2ZSht
X2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGl0ZW0pIHsgcmV0dXJuIGl0ZW0tPm5hbWUo
KSA9PSBuYW1lOyB9KSAhPSBub3RGb3VuZCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9y
YWdlOjpyZXRyaWV2ZUNhY2hlcyhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3Zv
aWQgQ2FjaGVTdG9yYWdlOjpyZXRyaWV2ZUNhY2hlcyhXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpv
cHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFN0cmluZyBvcmlnaW4g
PSB0aGlzLT5vcmlnaW4oKTsKICAgICBpZiAob3JpZ2luLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uLT5y
ZXRyaWV2ZUNhY2hlcyhvcmlnaW4sIG1fdXBkYXRlQ291bnRlciwgW3RoaXMsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CisgICAgbV9j
b25uZWN0aW9uLT5yZXRyaWV2ZUNhY2hlcyhvcmlnaW4sIG1fdXBkYXRlQ291bnRlciwgW3RoaXMs
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwcm9wYWdhdGUgdGhhdCBlcnJvciB1cCB0byB0aGUg
cHJvbWlzZSBiYXNlZCBvcGVyYXRpb24uCi0gICAgICAgICAgICBBU1NFUlQocmVzdWx0Lmhhc1Zh
bHVlKCkpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzVmFsdWUoKSkgewotICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soRE9NQ2FjaGU6OmVy
cm9yVG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKQEAgLTE0NCw3ICsxNTksNyBAQCB2b2lkIENhY2hlU3RvcmFnZTo6
cmV0cmlldmVDYWNoZXMoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgICAg
ICAgICAgICAgbV9jYWNoZXMgPSBXVEZNb3ZlKGNhY2hlcyk7CiAKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICBjYWxsYmFjayhzdGQ6Om51bGxvcHQp
OwogICAgICAgICB9CiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgIH0p
OwpAQCAtMTUyLDcgKzE2NywxMiBAQCB2b2lkIENhY2hlU3RvcmFnZTo6cmV0cmlldmVDYWNoZXMo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgQ2FjaGVTdG9yYWdlOjpv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxD
YWNoZT4+JiYgcHJvbWlzZSkKIHsKLSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgbmFtZSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgcmV0cmlldmVDYWNoZXMo
W3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShzdGQ6Om9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7
CisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIHBvc2l0aW9u
ID0gbV9jYWNoZXMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBpdGVtKSB7IHJldHVybiBpdGVtLT5u
YW1lKCkgPT0gbmFtZTsgfSk7CiAgICAgICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkgewog
ICAgICAgICAgICAgYXV0byYgY2FjaGUgPSBtX2NhY2hlc1twb3NpdGlvbl07CkBAIC0xNjYsNyAr
MTg2LDYgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPENhY2gKICAgICAgICAgc2V0UGVuZGluZ0FjdGl2
aXR5KHRoaXMpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4ob3JpZ2luLCBuYW1lLCBbdGhp
cywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGNvbnN0IENhY2hlSWRlbnRpZmll
ck9yRXJyb3ImIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVk
KSB7Ci0KICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5oYXNWYWx1ZSgpKQogICAgICAgICAg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChET01DYWNoZTo6ZXJyb3JUb0V4Y2VwdGlvbihyZXN1
bHQuZXJyb3IoKSkpOwogICAgICAgICAgICAgICAgIGVsc2UgewpAQCAtMTgyLDcgKzIwMSwxMiBA
QCB2b2lkIENhY2hlU3RvcmFnZTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8Q2FjaAogCiB2b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNv
bnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlz
ZSkKIHsKLSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNl
cHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIHBvc2l0aW9uID0gbV9jYWNoZXMuZmlu
ZE1hdGNoaW5nKFsmXShhdXRvJiBpdGVtKSB7IHJldHVybiBpdGVtLT5uYW1lKCkgPT0gbmFtZTsg
fSk7CiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkgewogICAgICAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKGZhbHNlKTsKQEAgLTIwOCw3ICsyMzIsMTIgQEAgdm9pZCBDYWNoZVN0b3Jh
Z2U6OnJlbW92ZShjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmIHAKIAogdm9pZCBDYWNoZVN0b3JhZ2U6OmtleXMoS2V5c1Byb21pc2UmJiBwcm9taXNl
KQogewotICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oKSBtdXRhYmxlIHsKKyAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgICAgIGtleXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShtX2NhY2hlcy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNh
Y2hlIDogbV9jYWNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3Jh
Z2UuaAppbmRleCAzNzAzZTU2Nzk2YWE1NjVhYWMxN2M3ZTNhMTVjNGYxNWI4NjViYTNiLi5hNDgw
YzY2ZWY1M2E2OWRjZDgwM2MzYWYxMWJlODI1ZGZlNWYzNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIHJldHJpZXZlQ2FjaGVzKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHJldHJpZXZlQ2FjaGVzKFdURjo6RnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+JiYpOwogICAgIFN0cmluZyBvcmlnaW4oKSBjb25zdDsKIAogICAgIFZlY3RvcjxSZWY8
Q2FjaGU+PiBtX2NhY2hlczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319614</attachid>
            <date>2017-09-01 10:46:57 -0700</date>
            <delta_ts>2017-09-01 11:16:19 -0700</delta_ts>
            <desc>Rebasing for landing</desc>
            <filename>bug-176194-20170901104656.patch</filename>
            <type>text/plain</type>
            <size>17397</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZhMDJhYmZkMGJiZjgy
MGQxZjAyYzMyNTY2OGEwMDk1Mjk3NmMxYy4uMzE3Y2U0Yjc3ODhlNWU4NDQ0M2VlNTdmNDM3YmQ2
YjNjMGE0NDIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE3LTA5LTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBSZWplY3QgcHJvbWlzZXMg
aW4gY2FzZSBvZiBpbnRlcm5hbCBDYWNoZVN0b3JhZ2UgZW5naW5lIGVycm9ycy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE5NAorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFz
IHRoaXMgY292ZXJzIGVycm9yIGNhc2VzIHRoYXQgc2hvdWxkIG5vdCBoYXBwZW4gaW4gcmVndWxh
ciBjYXNlcy4KKyAgICAgICAgUmVwbGFjaW5nIGxhbWJkYXMgdGhhdCB0YWtlIG5vIHBhcmFtZXRl
cnMgdG8gbGFtYmRhcyB0YWtpbmcgYW4gb3B0aW9uYWwgZXJyb3IuCisgICAgICAgIFJlamVjdCBw
cm9taXNlIGlmIGFuIGVycm9yIGlzIGZvdW5kLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9D
YWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6ZG9NYXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZTo6bWF0Y2hBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OmtleXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGU6OnJldHJpZXZlUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZTo6cXVlcnlDYWNoZSk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNo
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVT
dG9yYWdlOjpoYXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVTdG9yYWdlOjpyZXRyaWV2ZUNh
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZVN0b3JhZ2U6Om9wZW4pOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVTdG9yYWdlOjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVT
dG9yYWdlOjprZXlzKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5oOgor
CisyMDE3LTA5LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAg
ICBbRmV0Y2ggQVBJXSBBZGQgc3VwcG9ydCBmb3IgY29uc3VtaW5nIGEgUmVxdWVzdCBSZWFkYWJs
ZVN0cmVhbSBib2R5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYxODIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9D
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmNwcAppbmRleCBh
NjBjNmJlOTYwOGNkODgxZWYzMjViY2JjZWJiY2U3MzNmZmY5OWE2Li5mYWZjY2IwY2U2M2RjYjEy
ZWJlYTdlNDI5MzMxY2M2MTA0ZjhkMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0Nh
Y2hlLmNwcApAQCAtNTUsMTIgKzU1LDE2IEBAIENhY2hlOjp+Q2FjaGUoKQogCiB2b2lkIENhY2hl
OjptYXRjaChSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGRvTWF0Y2goV1RGTW92ZShp
bmZvKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShGZXRj
aFJlc3BvbnNlKiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkgeworICAg
IGRvTWF0Y2goV1RGTW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBw
cm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFyZXN1bHQucmV0dXJuVmFsdWUoKSkgewog
ICAgICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9u
c2U+PigqcmVzdWx0KTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8RmV0
Y2hSZXNwb25zZT4+KCpyZXN1bHQucmV0dXJuVmFsdWUoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTc2
LDEyICs4MCwxNiBAQCB2b2lkIENhY2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2Fj
aGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBNYXRjaENhbGxiYQogICAgIH0KICAgICBhdXRvIHJl
cXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBx
dWVyeUNhY2hlKHJlcXVlc3QuZ2V0KCksIFdURk1vdmUob3B0aW9ucyksIFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYgcmVjb3Jk
cykgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZWNvcmRzLmlzRW1wdHkoKSkgeworICAgIHF1ZXJ5
Q2FjaGUocmVxdWVzdC5nZXQoKSwgV1RGTW92ZShvcHRpb25zKSwgW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKEV4Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQucmV0dXJuVmFsdWUoKS5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKHJlY29yZHNbMF0ucmVzcG9uc2Ut
PmNsb25lRm9ySlMoKS5wdHIoKSk7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZXR1cm5WYWx1
ZSgpWzBdLnJlc3BvbnNlLT5jbG9uZUZvckpTKCkucHRyKCkpOwogICAgIH0pOwogfQogCkBAIC0x
MDEsNyArMTA5LDExIEBAIHZvaWQgQ2FjaGU6Om1hdGNoQWxsKHN0ZDo6b3B0aW9uYWw8UmVxdWVz
dEluZm8+JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpCiAgICAgfQogCiAgICAgaWYg
KCFyZXF1ZXN0KSB7Ci0gICAgICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgICAgIHJldHJpZXZlUmVjb3JkcyhbdGhp
cywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYm
IGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAg
ICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFZlY3Rv
cjxSZWY8RmV0Y2hSZXNwb25zZT4+IHJlc3BvbnNlczsKICAgICAgICAgICAgIHJlc3BvbnNlcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fcmVjb3Jkcy5zaXplKCkpOwogICAgICAgICAgICAgZm9y
IChhdXRvJiByZWNvcmQgOiBtX3JlY29yZHMpCkBAIC0xMTAsNyArMTIyLDEyIEBAIHZvaWQgQ2Fj
aGU6Om1hdGNoQWxsKHN0ZDo6b3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IHF1ZXJ5Q2FjaGUocmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGNvbnN0IFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNv
cmQ+JiByZWNvcmRzKSBtdXRhYmxlIHsKKyAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFzZU5v
bk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShF
eGNlcHRpb25PcjxWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBhdXRvIHJlY29yZHMgPSByZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCk7CiAgICAgICAgIFZlY3RvcjxSZWY8RmV0Y2hSZXNwb25zZT4+IHJlc3BvbnNlczsK
ICAgICAgICAgcmVzcG9uc2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmVjb3Jkcy5zaXplKCkp
OwogICAgICAgICBmb3IgKGF1dG8mIHJlY29yZCA6IHJlY29yZHMpCkBAIC0zNjEsNyArMzc4LDEx
IEBAIHZvaWQgQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsCiAgICAgfQogCiAgICAgaWYgKCFyZXF1ZXN0KSB7
Ci0gICAgICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAg
cHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFZlY3RvcjxSZWY8RmV0Y2hS
ZXF1ZXN0Pj4gcmVxdWVzdHM7CiAgICAgICAgICAgICByZXF1ZXN0cy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG1fcmVjb3Jkcy5zaXplKCkpOwogICAgICAgICAgICAgZm9yIChhdXRvJiByZWNvcmQg
OiBtX3JlY29yZHMpCkBAIC0zNzEsNyArMzkyLDEzIEBAIHZvaWQgQ2FjaGU6OmtleXMoc3RkOjpv
cHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMs
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVsZWFz
ZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYgcmVjb3JkcykgbXV0YWJsZSB7Cisg
ICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hlU3Rv
cmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBh
dXRvIHJlY29yZHMgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIFZlY3Rv
cjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gcmVxdWVzdHM7CiAgICAgICAgIHJlcXVlc3RzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkocmVjb3Jkcy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHJlY29y
ZCA6IHJlY29yZHMpCkBAIC0zODAsMjQgKzQwNywzMSBAQCB2b2lkIENhY2hlOjprZXlzKHN0ZDo6
b3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25z
LAogICAgIH0pOwogfQogCi12b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCit2b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoV1RGOjpG
dW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2
ZVJlY29yZHMobV9pZGVudGlmaWVyLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oUmVjb3Jkc09yRXJyb3ImJiByZXN1bHQpIHsKICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwcm9wYWdhdGUgdGhh
dCBlcnJvciB1cCB0byB0aGUgcHJvbWlzZSBiYXNlZCBvcGVyYXRpb24uCi0gICAgICAgICAgICBB
U1NFUlQocmVzdWx0Lmhhc1ZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzVmFs
dWUoKSkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKERPTUNhY2hlRW5naW5lOjplcnJvclRv
RXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc1ZhbHVlKCkpCiAgICAgICAg
ICAgICAgICAgdXBkYXRlUmVjb3JkcyhXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKICAg
ICAgICAgfQogICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKICAgICB9KTsKIH0K
IAotdm9pZCBDYWNoZTo6cXVlcnlDYWNoZShSZWY8RmV0Y2hSZXF1ZXN0PiYmIHJlcXVlc3QsIENh
Y2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3Rv
cjxDYWNoZVN0b3JhZ2VSZWNvcmQ+Jik+JiYgY2FsbGJhY2spCit2b2lkIENhY2hlOjpxdWVyeUNh
Y2hlKFJlZjxGZXRjaFJlcXVlc3Q+JiYgcmVxdWVzdCwgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJl
Y29yZD4+JiYpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHJpZXZlUmVjb3JkcyhbdGhpcywgcmVx
dWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgIHJldHJpZXZlUmVjb3Jk
cyhbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9w
dGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShzdGQ6Om9wdGlvbmFsPEV4Y2Vw
dGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgY2FsbGJhY2socXVlcnlDYWNoZVdpdGhU
YXJnZXRTdG9yYWdlKHJlcXVlc3QuZ2V0KCksIG9wdGlvbnMsIG1fcmVjb3JkcykpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZS5oCmluZGV4IDU5NjIyNWM4NzVjZGJk
ODk1YjIwMDFlOWYyMzJkZDYxNDhhOGYwMzAuLjdmNWRlNDlmNWRiOTdmOThhOWM4MzRjNzAzM2Ri
MzU1YjkwMjNlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlLmgKQEAgLTU2LDcg
KzU2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbmFtZTsgfQogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KIAotICAgIHVzaW5nIE1hdGNoQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZv
aWQoRmV0Y2hSZXNwb25zZSopPjsKKyAgICB1c2luZyBNYXRjaENhbGxiYWNrID0gV1RGOjpGdW5j
dGlvbjx2b2lkKEV4Y2VwdGlvbk9yPEZldGNoUmVzcG9uc2UqPik+OwogICAgIHZvaWQgZG9NYXRj
aChSZXF1ZXN0SW5mbyYmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBNYXRjaENhbGxiYWNrJiYpOwog
CiBwcml2YXRlOgpAQCAtNjksOSArNjksOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFj
dGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JE
b2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVSZWNv
cmRzKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3JkcyhX
VEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsKICAgICBW
ZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29u
c3QgRmV0Y2hSZXF1ZXN0JiwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBjb25zdCBWZWN0b3I8
Q2FjaGVTdG9yYWdlUmVjb3JkPiYpOwotICAgIHZvaWQgcXVlcnlDYWNoZShSZWY8RmV0Y2hSZXF1
ZXN0PiYmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVj
dG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKT4mJik7CisgICAgdm9pZCBxdWVyeUNhY2hlKFJlZjxG
ZXRjaFJlcXVlc3Q+JiYsIENhY2hlUXVlcnlPcHRpb25zJiYsIFdURjo6RnVuY3Rpb248dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPj4mJik+JiYpOwogICAgIHZvaWQg
YmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlv
bnMmJiwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKTsKICAgICB2
b2lkIGJhdGNoUHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2Um
LCBET01DYWNoZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYsIFdURjo6RnVuY3Rpb248dm9pZChFeGNl
cHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbihWZWN0b3I8
RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV1RGOjpGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9y
YWdlLmNwcAppbmRleCA5ZGI0YTVhODEzOTBkNjczNDNjYjNjYjczNjEwODU3MDFjZDQ1NzBjLi5l
MTE0NTc2NmM1MzA4YmQxNDBhMzU0YmQ4NjM2ZGE0Nzc1YWUzODU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCkBAIC01Niw5ICs1NiwxMyBAQCBz
dGF0aWMgdm9pZCBkb1NlcXVlbnRpYWxNYXRjaChzaXplX3QgaW5kZXgsIFZlY3RvcjxSZWY8Q2Fj
aGU+PiYmIGNhY2hlcywgQ2FjaGU6OgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2Fj
aGVzW2luZGV4XS0+ZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbY2Fj
aGVzID0gV1RGTW92ZShjYWNoZXMpLCBpbmZvLCBvcHRpb25zLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBpbmRleF0oRmV0Y2hSZXNwb25zZSogdmFsdWUp
IG11dGFibGUgewotICAgICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHZhbHVlKTsKKyAgICBjYWNoZXNbaW5kZXhdLT5kb01hdGNoKFdURk1vdmUoaW5mbyks
IFdURk1vdmUob3B0aW9ucyksIFtjYWNoZXMgPSBXVEZNb3ZlKGNhY2hlcyksIGluZm8sIG9wdGlv
bnMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGluZGV4
XShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlKj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBpZiAocmVzdWx0LnJldHVyblZhbHVlKCkpIHsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZXR1cm5WYWx1ZSgpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBkb1NlcXVlbnRpYWxNYXRjaCgrK2luZGV4LCBXVEZN
b3ZlKGNhY2hlcyksIFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKQEAgLTgxLDcgKzg1LDEyIEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9y
PFJlZjxDYWNoZT4+IGNvcHlDYWNoZXMoY29uc3QgVmVjdG9yPFJlZjxDYWNoZT4+JiBjYWNoZXMp
CiAKIHZvaWQgQ2FjaGVTdG9yYWdlOjptYXRjaChDYWNoZTo6UmVxdWVzdEluZm8mJiBpbmZvLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIHsKLSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgaW5mbyA9IFdURk1vdmUoaW5mbyksIG9w
dGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBt
dXRhYmxlIHsKKyAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgaW5mbyA9IFdURk1vdmUoaW5mbyks
IG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
c3RkOjpvcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFdURk1vdmUoZXhj
ZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAg
ICAgIGlmICghb3B0aW9ucy5jYWNoZU5hbWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGF1dG8g
cG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGl0ZW0pIHsgcmV0dXJu
IGl0ZW0tPm5hbWUoKSA9PSBvcHRpb25zLmNhY2hlTmFtZTsgfSk7CiAgICAgICAgICAgICBpZiAo
cG9zaXRpb24gIT0gbm90Rm91bmQpIHsKQEAgLTkzLDEyICsxMDIsMTYgQEAgdm9pZCBDYWNoZVN0
b3JhZ2U6Om1hdGNoKENhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25z
JiYgb3B0aW9ucywKICAgICAgICAgfQogCiAgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSh0aGlz
KTsKLSAgICAgICAgc3RhcnRTZXF1ZW50aWFsTWF0Y2goY29weUNhY2hlcyhtX2NhY2hlcyksIFdU
Rk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRmV0Y2hSZXNwb25zZSogcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgc3RhcnRT
ZXF1ZW50aWFsTWF0Y2goY29weUNhY2hlcyhtX2NhY2hlcyksIFdURk1vdmUoaW5mbyksIFdURk1v
dmUob3B0aW9ucyksIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9u
T3I8RmV0Y2hSZXNwb25zZSo+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
bV9pc1N0b3BwZWQpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXJl
c3VsdC5yZXR1cm5WYWx1ZSgpKQogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZl
KCk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5y
ZXNvbHZlPElETEludGVyZmFjZTxGZXRjaFJlc3BvbnNlPj4oKnJlc3VsdCk7CisgICAgICAgICAg
ICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9uc2U+Pigq
cmVzdWx0LnJldHVyblZhbHVlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdW5zZXRQ
ZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgICAgIH0pOwpAQCAtMTA3LDI0ICsxMjAsMjYgQEAg
dm9pZCBDYWNoZVN0b3JhZ2U6Om1hdGNoKENhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hl
UXVlcnlPcHRpb25zJiYgb3B0aW9ucywKIAogdm9pZCBDYWNoZVN0b3JhZ2U6Omhhcyhjb25zdCBT
dHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCiB7
Ci0gICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXSgpIG11dGFibGUgeworICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9u
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvbWlz
ZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShtX2NhY2hlcy5maW5kTWF0Y2hp
bmcoWyZdKGF1dG8mIGl0ZW0pIHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBuYW1lOyB9KSAhPSBu
b3RGb3VuZCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlOjpyZXRyaWV2ZUNhY2hl
cyhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGVTdG9yYWdlOjpy
ZXRyaWV2ZUNhY2hlcyhXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFeGNlcHRpb24+
JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFN0cmluZyBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsK
ICAgICBpZiAob3JpZ2luLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBzZXRQZW5k
aW5nQWN0aXZpdHkodGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2ZUNhY2hlcyhvcmln
aW4sIG1fdXBkYXRlQ291bnRlciwgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CisgICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2
ZUNhY2hlcyhvcmlnaW4sIG1fdXBkYXRlQ291bnRlciwgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFtX2lzU3RvcHBlZCkgewotICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBw
cm9iYWJseSBwcm9wYWdhdGUgdGhhdCBlcnJvciB1cCB0byB0aGUgcHJvbWlzZSBiYXNlZCBvcGVy
YXRpb24uCi0gICAgICAgICAgICBBU1NFUlQocmVzdWx0Lmhhc1ZhbHVlKCkpOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQuaGFzVmFsdWUoKSkgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgICAgICAgICAgY2FsbGJhY2soRE9NQ2FjaGVFbmdpbmU6OmVycm9yVG9FeGNlcHRp
b24ocmVzdWx0LmVycm9yKCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKQEAgLTE0NCw3ICsxNTksNyBAQCB2b2lkIENhY2hlU3RvcmFnZTo6cmV0cmlldmVDYWNo
ZXMoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgbV9j
YWNoZXMgPSBXVEZNb3ZlKGNhY2hlcyk7CiAKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNh
bGxiYWNrKCk7CisgICAgICAgICAgICBjYWxsYmFjayhzdGQ6Om51bGxvcHQpOwogICAgICAgICB9
CiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogICAgIH0pOwpAQCAtMTUyLDcg
KzE2NywxMiBAQCB2b2lkIENhY2hlU3RvcmFnZTo6cmV0cmlldmVDYWNoZXMoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgQ2FjaGVTdG9yYWdlOjpvcGVuKGNvbnN0IFN0
cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxDYWNoZT4+JiYgcHJv
bWlzZSkKIHsKLSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIHBvc2l0aW9uID0gbV9jYWNoZXMu
ZmluZE1hdGNoaW5nKFsmXShhdXRvJiBpdGVtKSB7IHJldHVybiBpdGVtLT5uYW1lKCkgPT0gbmFt
ZTsgfSk7CiAgICAgICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkgewogICAgICAgICAgICAg
YXV0byYgY2FjaGUgPSBtX2NhY2hlc1twb3NpdGlvbl07CkBAIC0xNjYsNyArMTg2LDYgQEAgdm9p
ZCBDYWNoZVN0b3JhZ2U6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPENhY2gKICAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4ob3JpZ2luLCBuYW1lLCBbdGhpcywgbmFtZSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGNvbnN0IENhY2hlSWRlbnRpZmllck9yRXJyb3ImIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1faXNTdG9wcGVkKSB7Ci0KICAgICAg
ICAgICAgICAgICBpZiAoIXJlc3VsdC5oYXNWYWx1ZSgpKQogICAgICAgICAgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChET01DYWNoZUVuZ2luZTo6ZXJyb3JUb0V4Y2VwdGlvbihyZXN1bHQuZXJy
b3IoKSkpOwogICAgICAgICAgICAgICAgIGVsc2UgewpAQCAtMTgyLDcgKzIwMSwxMiBAQCB2b2lk
IENhY2hlU3RvcmFnZTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDxJRExJbnRlcmZhY2U8Q2FjaAogCiB2b2lkIENhY2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0
cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkKIHsK
LSAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IG11dGFibGUgeworICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBwcm9taXNl
LnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIHBvc2l0aW9uID0gbV9jYWNoZXMuZmluZE1hdGNo
aW5nKFsmXShhdXRvJiBpdGVtKSB7IHJldHVybiBpdGVtLT5uYW1lKCkgPT0gbmFtZTsgfSk7CiAg
ICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkgewogICAgICAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKGZhbHNlKTsKQEAgLTIwOCw3ICsyMzIsMTIgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6OnJl
bW92ZShjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
IHAKIAogdm9pZCBDYWNoZVN0b3JhZ2U6OmtleXMoS2V5c1Byb21pc2UmJiBwcm9taXNlKQogewot
ICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBt
dXRhYmxlIHsKKyAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1v
dmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgICAgIGtleXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShtX2NhY2hlcy5zaXplKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNhY2hlIDog
bV9jYWNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaApp
bmRleCAzNzAzZTU2Nzk2YWE1NjVhYWMxN2M3ZTNhMTVjNGYxNWI4NjViYTNiLi5hNDgwYzY2ZWY1
M2E2OWRjZDgwM2MzYWYxMWJlODI1ZGZlNWYzNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBj
YW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lk
IHJldHJpZXZlQ2FjaGVzKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIHJldHJp
ZXZlQ2FjaGVzKFdURjo6RnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
JiYpOwogICAgIFN0cmluZyBvcmlnaW4oKSBjb25zdDsKIAogICAgIFZlY3RvcjxSZWY8Q2FjaGU+
PiBtX2NhY2hlczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>