<?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>203566</bug_id>
          
          <creation_ts>2019-10-29 09:09:46 -0700</creation_ts>
          <short_desc>Revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash</short_desc>
          <delta_ts>2019-10-29 09:57:16 -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>
          
          <blocked>200764</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584928</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-29 09:09:46 -0700</bug_when>
    <thetext>Revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584931</commentid>
    <comment_count>1</comment_count>
      <attachid>382186</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-29 09:13:11 -0700</bug_when>
    <thetext>Created attachment 382186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584949</commentid>
    <comment_count>2</comment_count>
      <attachid>382186</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-29 09:56:10 -0700</bug_when>
    <thetext>Comment on attachment 382186
Patch

Clearing flags on attachment: 382186

Committed r251708: &lt;https://trac.webkit.org/changeset/251708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584950</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-29 09:56:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584952</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-29 09:57:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56710193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382186</attachid>
            <date>2019-10-29 09:13:11 -0700</date>
            <delta_ts>2019-10-29 09:56:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>203566.patch</filename>
            <type>text/plain</type>
            <size>67588</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZTdjZDA3MWU4NC4uYjk2ZjUwYzg4YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAor
MjAxOS0xMC0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydCByMjUxNjM3IGFzIGl0IGNhdXNlZCBodHRwL3Rlc3RzL2xhenlsb2Fk
L3Njcm9sbC1lbGVtZW50LXJlbW92ZWQtZnJvbS1kb2N1bWVudC5odG1sIHRvIGNyYXNoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM1NjYKKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9h
dHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbGF6
eWxvYWQvYXR0cmlidXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sYXp5
bG9hZC9pbnZpc2libGUtaW1hZ2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvbGF6eWxvYWQvaW52aXNpYmxlLWltYWdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9sYXp5bG9hZC9qcy1pbWFnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9qcy1pbWFnZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbGF6eWxvYWQvbGF6eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWltYWdlLWxvYWQtaW4taWZyYW1lcy1z
Y3JpcHRpbmctZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbGF6eWxvYWQvbGF6eS1pbWFnZS1sb2FkLWluLWlmcmFtZXMtc2NyaXB0aW5nLWRpc2Fi
bGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWlt
YWdlLWxvYWQtaW4taWZyYW1lcy1zY3JpcHRpbmctZW5hYmxlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWltYWdlLWxvYWQtaW4taWZy
YW1lcy1zY3JpcHRpbmctZW5hYmxlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbGF6eWxvYWQvbGF6eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbGF6
eWxvYWQvbGF6eTItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
bGF6eWxvYWQvcGxhY2Vob2xkZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9s
YXp5bG9hZC9yZXNvdXJjZXMvbGF6eS1sb2FkLWluLWlmcmFtZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbGF6eWxvYWQvc2Nyb2xsLWVsZW1lbnQtbW92ZWQtZnJvbS1kb2N1
bWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9h
ZC9zY3JvbGwtZWxlbWVudC1tb3ZlZC1mcm9tLWRvY3VtZW50Lmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVudC1yZW1vdmVkLWZyb20tZG9j
dW1lbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbGF6eWxv
YWQvc2Nyb2xsLWVsZW1lbnQtcmVtb3ZlZC1mcm9tLWRvY3VtZW50Lmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbGF6eWxvYWQvc2Nyb2xsLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEwLTI5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJk
ZW5pbmc7IG5ldyBpT1MgcmVzdWx0cyBmb3IgdGhlc2Ugbm93IHBhc3NpbmcgdGVzdHMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBhNWNhYmMxY2Q5ZS4uNDhhMGJjOTQ5NjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMzg3OCw2ICszODc4LDcgQEAgZmFzdC90ZXh0L2Rlc2lnbi1zeXN0ZW0tdWktMTQu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC90ZXh0L2Rlc2lnbi1zeXN0ZW0tdWktMTUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC90ZXh0L2Rlc2lnbi1zeXN0ZW0tdWktMTYu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMTk2Njk4IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxh
enkudGVudGF0aXZlLmh0bWwKIHdlYmtpdC5vcmcvYi8xOTY2OTggaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9sb2FkaW5nL2xhenlsb2FkL2lmcmFtZS1sb2FkaW5nLWxhenkudGVudGF0
aXZlLmh0bWwKIAogd2Via2l0Lm9yZy9iLzIwMjUxNyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzLzJkY29udGV4dC90ZXh0LXN0eWxlcy8yZC50ZXh0LmRyYXcuYmFzZWxpbmUuaWRlb2dy
YXBoaWMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
YXp5bG9hZC9hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
YXp5bG9hZC9hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0YTUwZjFlYjY2Yi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sYXp5bG9hZC9hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCAr
MCwwIEBACi0gICAgICAgCi0KLVBBU1MgVGVzdCB0aGF0IGRvY3VtZW50IGxvYWQgZXZlbnQgaXMg
ZmlyZWQgCi1QQVNTIFRlc3QgdGhhdCB2YWx1ZXMgZm9yIGxvYWRpbmcgYXJlIGNhc2UgaW5zZW5z
aXRpdmUgCi1QQVNTIFRlc3QgdGhhdCA8aW1nPiB3aXRoIGxvYWRpbmc9bGF6eSBvciBhdXRvIG9y
IG5vIGF0dHJpYnV0ZSBvciBpbnZhbGlkIHZhbHVlIGFyZSBsb2FkZWQgYXMgYSBwbGFjZWhvbGRl
ciAKLVBBU1MgVGVzdCB0aGF0IDxpbWc+IHdpdGggbG9hZGluZz1lYWdlciBpcyBmdWxseSBsb2Fk
ZWQsIGFuZCBub3QgYSBwbGFjZWhvbGRlciAKLVBBU1MgVGVzdCB0aGF0IGRlZmVycmVkIDxpbWc+
IGFyZSBmdWxseSBsb2FkZWQgd2hlbiBsYXp5bG9hZCBpcyB0dXJuZWQgb2ZmIAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2F0dHJpYnV0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9hdHRyaWJ1dGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWJkOTcwN2YxMDMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvYXR0cmlidXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw5NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4
cGVyaW1lbnRhbDplbmFibGVMYXp5SW1hZ2VMb2FkaW5nPXRydWUgXSAtLT4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJwbGFj
ZWhvbGRlci5qcyI+PC9zY3JpcHQ+Ci0KLTxib2R5PgotICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAw
MDBweDsiPjwvZGl2PgotICA8aW1nIGlkPSJub19hdHRyaWJ1dGVfaW1nIiBzcmM9Jy4uL2xvYWRp
bmcvcmVzb3VyY2VzL2Jhc2UtaW1hZ2UxLnBuZyc+Ci0gIDxpbWcgaWQ9ImF1dG9fYXR0cmlidXRl
X2ltZyIgc3JjPScuLi9sb2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMi5wbmcnIGxvYWRpbmc9
ImF1dG8iPgotICA8aW1nIGlkPSJpbnZhbGlkX2F0dHJpYnV0ZV9pbWciIHNyYz0nLi4vbG9hZGlu
Zy9yZXNvdXJjZXMvYmFzZS1pbWFnZTMucG5nJyBsb2FkaW5nPSJpbnZhbGlkLXZhbHVlLWRlZmF1
bHQiPgotICA8aW1nIGlkPSJsYXp5X2F0dHJpYnV0ZV9pbWciIHNyYz0nLi4vbG9hZGluZy9yZXNv
dXJjZXMvZHVwLWltYWdlMS5wbmcnIGxvYWRpbmc9ImxhenkiPgotICA8aW1nIGlkPSJlYWdlcl9h
dHRyaWJ1dGVfaW1nIiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2R1cC1pbWFnZTIucG5nJyBs
b2FkaW5nPSJlYWdlciI+Ci0gIDxpbWcgaWQ9ImF1dG9fYXR0cmlidXRlX2NpX2ltZyIgc3JjPScu
Li9sb2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMi5wbmcnIGxvYWRpbmc9IkF1dG8iPgotICA8
aW1nIGlkPSJsYXp5X2F0dHJpYnV0ZV9jaV9pbWciIHNyYz0nLi4vbG9hZGluZy9yZXNvdXJjZXMv
ZHVwLWltYWdlMS5wbmcnIGxvYWRpbmc9IkxhenkiPgotICA8aW1nIGlkPSJlYWdlcl9hdHRyaWJ1
dGVfY2lfaW1nIiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2R1cC1pbWFnZTIucG5nJyBsb2Fk
aW5nPSJFYWdlciI+Ci08L2JvZHk+Ci0KLTxzY3JpcHQ+Ci0gIHZhciBub19hdHRyaWJ1dGVfaW1n
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vX2F0dHJpYnV0ZV9pbWciKTsKLSAgdmFyIGF1
dG9fYXR0cmlidXRlX2ltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvX2F0dHJpYnV0
ZV9pbWciKTsKLSAgdmFyIGludmFsaWRfYXR0cmlidXRlX2ltZyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbnZhbGlkX2F0dHJpYnV0ZV9pbWciKTsKLSAgdmFyIGxhenlfYXR0cmlidXRlX2lt
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXp5X2F0dHJpYnV0ZV9pbWciKTsKLSAgdmFy
IGVhZ2VyX2F0dHJpYnV0ZV9pbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWFnZXJfYXR0
cmlidXRlX2ltZyIpOwotICB2YXIgYXV0b19hdHRyaWJ1dGVfY2lfaW1nID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImF1dG9fYXR0cmlidXRlX2NpX2ltZyIpOwotICB2YXIgbGF6eV9hdHRyaWJ1
dGVfY2lfaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhenlfYXR0cmlidXRlX2NpX2lt
ZyIpOwotICB2YXIgZWFnZXJfYXR0cmlidXRlX2NpX2ltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJlYWdlcl9hdHRyaWJ1dGVfY2lfaW1nIik7Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0LnN0ZXBfZnVuY19kb25l
KCkpOwotICB9LCAiVGVzdCB0aGF0IGRvY3VtZW50IGxvYWQgZXZlbnQgaXMgZmlyZWQiKTsKLQot
ICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICBhdXRvX2F0dHJpYnV0ZV9jaV9pbWcuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsCi0gICAgICB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkg
ewotICAgICAgICBhc3NlcnRfdHJ1ZShpc19pbWFnZV9mdWxseV9sb2FkZWQoYXV0b19hdHRyaWJ1
dGVfY2lfaW1nKSk7Ci0gICAgICB9KSk7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X2ZhbHNlKGlz
X2ltYWdlX2Z1bGx5X2xvYWRlZChsYXp5X2F0dHJpYnV0ZV9jaV9pbWcpKTsKLSAgICB9KSk7Ci0g
ICAgZWFnZXJfYXR0cmlidXRlX2NpX2ltZy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAgICAg
IHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKGlzX2lt
YWdlX2Z1bGx5X2xvYWRlZChlYWdlcl9hdHRyaWJ1dGVfY2lfaW1nKSk7Ci0gICAgICB9KSk7Ci0g
IH0sICJUZXN0IHRoYXQgdmFsdWVzIGZvciBsb2FkaW5nIGFyZSBjYXNlIGluc2Vuc2l0aXZlIik7
Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X2Zh
bHNlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChsYXp5X2F0dHJpYnV0ZV9pbWcpKTsKLSAgICAgIGFz
c2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChub19hdHRyaWJ1dGVfaW1nKSk7Ci0gICAg
fSkpOwotICAgIGxhenlfYXR0cmlidXRlX2ltZy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAg
ICAgIHQudW5yZWFjaGVkX2Z1bmMoIkxvYWQgZXZlbnQgc2hvdWxkIG5vdCBiZSBmaXJlZCBmb3Ig
YmVsb3cgdmlld3BvcnQgaW1hZ2Ugd2l0aCBsb2FkaW5nPWxhenkiKSk7Ci0gICAgYXV0b19hdHRy
aWJ1dGVfaW1nLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLAotICAgICAgdC5zdGVwX2Z1bmNfZG9u
ZShmdW5jdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0X3RydWUoaXNfaW1hZ2VfZnVsbHlfbG9hZGVk
KGF1dG9fYXR0cmlidXRlX2ltZykpOwotICAgICAgfSkpOwotICAgIG5vX2F0dHJpYnV0ZV9pbWcu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsCi0gICAgICB0LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9u
KCkgewotICAgICAgICBhc3NlcnRfdHJ1ZShpc19pbWFnZV9mdWxseV9sb2FkZWQobm9fYXR0cmli
dXRlX2ltZykpOwotICAgICAgfSkpOwotICAgIGludmFsaWRfYXR0cmlidXRlX2ltZy5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwKLSAgICAgIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIGFzc2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChpbnZhbGlkX2F0dHJpYnV0
ZV9pbWcpKTsKLSAgICAgIH0pKTsKLSAgfSwgIlRlc3QgdGhhdCA8aW1nPiB3aXRoIGxvYWRpbmc9
bGF6eSBvciBhdXRvIG9yIG5vIGF0dHJpYnV0ZSBvciBpbnZhbGlkIHZhbHVlIGFyZSBsb2FkZWQg
YXMgYSBwbGFjZWhvbGRlciIpOwotCi0gIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIGVh
Z2VyX2F0dHJpYnV0ZV9pbWcuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsCi0gICAgICB0LnN0ZXBf
ZnVuY19kb25lKGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdHJ1ZShpc19pbWFnZV9mdWxs
eV9sb2FkZWQoZWFnZXJfYXR0cmlidXRlX2ltZykpOwotICAgICAgfSkpOwotICB9LCAiVGVzdCB0
aGF0IDxpbWc+IHdpdGggbG9hZGluZz1lYWdlciBpcyBmdWxseSBsb2FkZWQsIGFuZCBub3QgYSBw
bGFjZWhvbGRlciIpOwotCi0gIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBjb21w
bGV0ZSA9IDA7Ci0gICAgdmFyIG9ubG9hZF9jYWxsYmFjayA9IGZ1bmN0aW9uKCkgewotICAgICAg
aWYgKCsrY29tcGxldGUgPT0gMikgewotICAgICAgICAvLyBUaGUgdHdvIGltYWdlcyB3aXRoIGxv
YWRpbmc9bGF6eSxMYXp5IGF0dHJpYnV0ZSBhcmUgbG9hZGVkLgotICAgICAgICBhc3NlcnRfdHJ1
ZShpc19pbWFnZV9mdWxseV9sb2FkZWQobGF6eV9hdHRyaWJ1dGVfaW1nKSk7Ci0gICAgICAgIGFz
c2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChsYXp5X2F0dHJpYnV0ZV9jaV9pbWcpKTsK
LSAgICAgICAgdC5kb25lKCk7Ci0gICAgICB9Ci0gICAgICBhc3NlcnRfZXF1YWxzKHRoaXMuZ2V0
QXR0cmlidXRlKCdsb2FkaW5nJyksICJlYWdlciIpOwotICAgIH07Ci0gICAgbGF6eV9hdHRyaWJ1
dGVfaW1nLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBvbmxvYWRfY2FsbGJhY2spOwotICAgIGxh
enlfYXR0cmlidXRlX2NpX2ltZy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgb25sb2FkX2NhbGxi
YWNrKTsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKCkgewotICAgICAgYXNzZXJ0X2VxdWFscyhsYXp5X2F0dHJpYnV0ZV9pbWcuZ2V0QXR0
cmlidXRlKCdsb2FkaW5nJyksICJsYXp5Iik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGxhenlfYXR0
cmlidXRlX2NpX2ltZy5nZXRBdHRyaWJ1dGUoJ2xvYWRpbmcnKSwgIkxhenkiKTsKLSAgICAgIGxh
enlfYXR0cmlidXRlX2ltZy5sb2FkaW5nID0gJ2VhZ2VyJzsKLSAgICAgIGxhenlfYXR0cmlidXRl
X2NpX2ltZy5sb2FkaW5nID0gJ2VhZ2VyJzsKLSAgICB9KSk7Ci0gIH0sICJUZXN0IHRoYXQgZGVm
ZXJyZWQgPGltZz4gYXJlIGZ1bGx5IGxvYWRlZCB3aGVuIGxhenlsb2FkIGlzIHR1cm5lZCBvZmYi
KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9h
ZC9pbnZpc2libGUtaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
YXp5bG9hZC9pbnZpc2libGUtaW1hZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3MTM1YzhhN2NlZS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sYXp5bG9hZC9pbnZpc2libGUtaW1hZ2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgVGVzdCB0aGF0IGRvY3VtZW50IGxvYWQgZXZlbnQg
aXMgZmlyZWQgCi1QQVNTIFRlc3QgdGhhdCBpbnZpc2libGUgaW1hZ2VzIGFyZSBsb2FkZWQgCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvaW52aXNpYmxlLWlt
YWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2ludmlzaWJsZS1pbWFn
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDhiOGIzZDM2Yy4uMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9pbnZpc2libGUtaW1h
Z2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InBsYWNlaG9sZGVyLmpzIj48L3NjcmlwdD4KLQotPGJvZHk+Ci0gIDxkaXYgc3R5bGU9
ImhlaWdodDoxMDAwMHB4OyI+PC9kaXY+Ci0gIDxpbWcgaWQ9InZpc2liaWxpdHlfaGlkZGVuIiBz
dHlsZT0idmlzaWJpbGl0eTpoaWRkZW47IiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2Ut
aW1hZ2UxLnBuZyc+Ci0gIDxpbWcgaWQ9ImRpc3BsYXlfbm9uZSIgc3R5bGU9ImRpc3BsYXk6bm9u
ZTsiIHNyYz0nLi4vbG9hZGluZy9yZXNvdXJjZXMvYmFzZS1pbWFnZTIucG5nJz4KLSAgPGltZyBp
ZD0iYXR0cmlidXRlX2hpZGRlbiIgaGlkZGVuIHNyYz0nLi4vbG9hZGluZy9yZXNvdXJjZXMvYmFz
ZS1pbWFnZTMucG5nJz4KLSAgPGltZyBpZD0ianNfaGlkZGVuIiBzcmM9Jy4uL2xvYWRpbmcvcmVz
b3VyY2VzL2R1cC1pbWFnZTEucG5nJz4KLSAgPHNjcmlwdD4KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgianNfaGlkZGVuIikuc3R5bGUgPSAnZGlzcGxheTpub25lOyc7Ci0gIDwvc2NyaXB0
PgotPC9ib2R5PgotCi08c2NyaXB0PgotICB2YXIgdmlzaWJpbGl0eV9oaWRkZW5fZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aXNpYmlsaXR5X2hpZGRlbiIpOwotICB2YXIgZGlz
cGxheV9ub25lX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGlzcGxheV9ub25l
Iik7Ci0gIHZhciBhdHRyaWJ1dGVfaGlkZGVuX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYXR0cmlidXRlX2hpZGRlbiIpOwotICB2YXIganNfaGlkZGVuX2VsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgianNfaGlkZGVuIik7Ci0gIGFzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdC5zdGVwX2Z1bmNfZG9u
ZSgpKTsKLSAgfSwgIlRlc3QgdGhhdCBkb2N1bWVudCBsb2FkIGV2ZW50IGlzIGZpcmVkIik7Ci0g
IGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIGxldCBpbWFnZV9mdWxseV9sb2FkZWRfcHJv
bWlzZSA9IChlbGVtZW50KSA9PiB7Ci0gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsCi0gICAgICAgICAg
dC5zdGVwX2Z1bmMoKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0X3RydWUoaXNfaW1hZ2VfZnVs
bHlfbG9hZGVkKGVsZW1lbnQpKTsKLSAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgfSkp
OwotICAgICAgfSk7Ci0gICAgfQotICAgIFByb21pc2UuYWxsKFtpbWFnZV9mdWxseV9sb2FkZWRf
cHJvbWlzZSh2aXNpYmlsaXR5X2hpZGRlbl9lbGVtZW50KSwKLSAgICAgIGltYWdlX2Z1bGx5X2xv
YWRlZF9wcm9taXNlKGRpc3BsYXlfbm9uZV9lbGVtZW50KSwKLSAgICAgIGltYWdlX2Z1bGx5X2xv
YWRlZF9wcm9taXNlKGF0dHJpYnV0ZV9oaWRkZW5fZWxlbWVudCksCi0gICAgICBpbWFnZV9mdWxs
eV9sb2FkZWRfcHJvbWlzZShqc19oaWRkZW5fZWxlbWVudCldKS50aGVuKCgpID0+IHsKLSAgICAg
ICAgdC5kb25lKCk7Ci0gICAgfSk7Ci0gIH0sICJUZXN0IHRoYXQgaW52aXNpYmxlIGltYWdlcyBh
cmUgbG9hZGVkIik7Ci08L3NjcmlwdD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sYXp5bG9hZC9qcy1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xhenlsb2FkL2pzLWltYWdlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzE5NWMxMWEyYWMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbGF6eWxvYWQvanMtaW1hZ2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NyArMCwwIEBACi0gCi0KLVBBU1MgVGVzdCB0aGF0IGxvYWQgZXZlbnQgaXMgZmlyZWQgZm9yIEpT
IEltYWdlKCkgZmV0Y2hlcyAKLVBBU1MgVGVzdCB0aGF0IGxvYWQgZXZlbnQgaXMgZmlyZWQgZm9y
IDxpbWc+IGNyZWF0ZWQgdmlhIEpTIGFuZCBhdHRhY2hlZCBiZWxvdyB2aWV3cG9ydCAKLVBBU1Mg
VGVzdCB0aGF0IGxvYWQgZXZlbnQgaXMgZmlyZWQgZm9yIGFkb3B0ZWQgPGltZz4gdGhhdCBpcyBh
cHBlbmRlZCBiZWxvdyB0aGUgdmlld3BvcnQgCi1QQVNTIFRlc3QgdGhhdCBsb2FkIGV2ZW50IGlz
IGZpcmVkIGZvciBKUyBJbWFnZSgpIGRlY29kZSBldmVuIHdpdGggbG9hZGluZyBzZXQgdG8gbGF6
eSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9qcy1pbWFn
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9qcy1pbWFnZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjljNWFlOWQwNy4uMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9qcy1pbWFnZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBleHBlcmltZW50YWw6ZW5hYmxlTGF6eUltYWdlTG9hZGluZz10cnVlIF0gLS0+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icGxhY2Vob2xkZXIuanMiPjwvc2NyaXB0PgotCi08Ym9keT4KLSAgPGRpdiBzdHlsZT0i
aGVpZ2h0OjEwMDAwcHg7Ij48L2Rpdj4KLTwvYm9keT4KLQotPHNjcmlwdD4KLSAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7Ci0gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgaW1nLm9u
bG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7Ci0gICAgICBhc3NlcnRfdHJ1ZShp
c19pbWFnZV9mdWxseV9sb2FkZWQoaW1nKSk7Ci0gICAgfSk7Ci0gICAgaW1nLnNyYyA9ICcuLi9s
b2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMS5wbmcnOwotICB9LCAiVGVzdCB0aGF0IGxvYWQg
ZXZlbnQgaXMgZmlyZWQgZm9yIEpTIEltYWdlKCkgZmV0Y2hlcyIpOwotCi0gIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgewotICAgIGNvbnN0IGF0dGFjaGVkX2ltZyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoIklNRyIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXR0YWNoZWRfaW1n
KTsKLSAgICBhdHRhY2hlZF9pbWcub25sb2FkID0gdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigp
IHsKLSAgICAgIGFzc2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChhdHRhY2hlZF9pbWcp
KTsKLSAgICB9KTsKLSAgICBhdHRhY2hlZF9pbWcuc3JjID0gIi4uL2xvYWRpbmcvcmVzb3VyY2Vz
L2Jhc2UtaW1hZ2UyLnBuZyI7Ci0gIH0sICJUZXN0IHRoYXQgbG9hZCBldmVudCBpcyBmaXJlZCBm
b3IgPGltZz4gY3JlYXRlZCB2aWEgSlMgYW5kIGF0dGFjaGVkIGJlbG93IHZpZXdwb3J0Iik7Ci0K
LSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgIGlmcmFtZS5zcmNkb2MgPSAiPGltZyBsb2FkaW5n
PSdsYXp5JyBzdHlsZT0nd2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4Jz48L2ltZz4iOwotICAgIGlm
cmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgIHZhciBpZnJhbWVfaW1nID0gaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW1nJylbMF07Ci0gICAgICB2
YXIgYWRvcHRlZF9pbWcgPSBkb2N1bWVudC5hZG9wdE5vZGUoaWZyYW1lX2ltZyk7Ci0gICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFkb3B0ZWRfaW1nKTsKLSAgICAgIGFkb3B0ZWRfaW1n
Lm9ubG9hZCA9IHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90
cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChhZG9wdGVkX2ltZykpOwotICAgICAgfSk7Ci0gICAg
ICBhZG9wdGVkX2ltZy5zcmMgPSAiLi4vbG9hZGluZy9yZXNvdXJjZXMvYmFzZS1pbWFnZTIucG5n
IjsKLSAgICB9OwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgfSwg
IlRlc3QgdGhhdCBsb2FkIGV2ZW50IGlzIGZpcmVkIGZvciBhZG9wdGVkIDxpbWc+IHRoYXQgaXMg
YXBwZW5kZWQgYmVsb3cgdGhlIHZpZXdwb3J0Iik7Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7Ci0gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7Ci0gICAgaW1nLmxvYWRpbmcgPSAibGF6
eSI7Ci0gICAgaW1nLnNyYyA9ICcuLi9sb2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMS5wbmcn
OwotICAgIGltZy5kZWNvZGUoKS50aGVuKCgpID0+IHsKLSAgICAgIGFzc2VydF90cnVlKGlzX2lt
YWdlX2Z1bGx5X2xvYWRlZChpbWcpKTsKLSAgICAgIHQuZG9uZSgpOwotICAgIH0pLmNhdGNoKChl
bmNvZGluZ0Vycm9yKSA9PiB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7Ci0gICAgfSkKLSAg
fSwgIlRlc3QgdGhhdCBsb2FkIGV2ZW50IGlzIGZpcmVkIGZvciBKUyBJbWFnZSgpIGRlY29kZSBl
dmVuIHdpdGggbG9hZGluZyBzZXQgdG8gbGF6eSIpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvbGF6eS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2xhenktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0OTBhODliYWEwMi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDcgKzAsMCBAQAotCi0KLQotUEFTUyBUZXN0IHRoYXQgZG9jdW1lbnQgbG9hZCBldmVu
dCBpcyBmaXJlZCAKLVBBU1MgVGVzdCB0aGF0IDxpbWc+IGluIHZpZXdwb3J0IGlzIGxvYWRlZCwg
YW5kIG5vdCBhIHBsYWNlaG9sZGVyIAotUEFTUyBUZXN0IHRoYXQgPGltZz4gYmVsb3cgdmlld3Bv
cnQgaXMgYSBwbGFjZWhvbGRlciwgd2l0aCBsYXp5aW1hZ2UgZW5hYmxlZCAKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWltYWdlLWxvYWQtaW4taWZy
YW1lcy1zY3JpcHRpbmctZGlzYWJsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sYXp5bG9hZC9sYXp5LWltYWdlLWxvYWQtaW4taWZyYW1lcy1zY3JpcHRpbmctZGlzYWJs
ZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWY2ZWJhZDEz
MC4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5
LWltYWdlLWxvYWQtaW4taWZyYW1lcy1zY3JpcHRpbmctZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2Ny
aXB0IGV4ZWN1dGlvbiBpbiAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL2xhenlsb2FkL3Jlc291cmNl
cy9sYXp5LWxvYWQtaW4taWZyYW1lLmh0bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUg
aXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNl
dC4KLUNPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbGF6eWxvYWQvcmVzb3VyY2VzL2xhenktbG9hZC1pbi1pZnJhbWUuaHRt
bCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRoZSAnYWxs
b3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgotQ09OU09MRSBNRVNTQUdFOiBCbG9j
a2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9sYXp5bG9hZC9y
ZXNvdXJjZXMvbGF6eS1sb2FkLWluLWlmcmFtZS5odG1sJyBiZWNhdXNlIHRoZSBkb2N1bWVudCdz
IGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlz
IG5vdCBzZXQuCi1DT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAn
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2xhenlsb2FkL3Jlc291cmNlcy9sYXp5LWxvYWQtaW4taWZy
YW1lLmh0bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0
aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KLQotUEFTUyBWZXJpZnkg
dGhhdCBpZnJhbWUncyB3aXRoIHNjcmlwdGluZyBvZmYgZGlzYWxsb3cgbGF6eSBpbWFnZSBsb2Fk
aW5nLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5
LWltYWdlLWxvYWQtaW4taWZyYW1lcy1zY3JpcHRpbmctZGlzYWJsZWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvbGF6eS1pbWFnZS1sb2FkLWluLWlmcmFtZXMtc2NyaXB0
aW5nLWRpc2FibGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YTFkZmUz
YmIwLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2xh
enktaW1hZ2UtbG9hZC1pbi1pZnJhbWVzLXNjcmlwdGluZy1kaXNhYmxlZC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBleHBlcmltZW50YWw6ZW5hYmxlTGF6eUltYWdlTG9hZGluZz10cnVlIF0gLS0+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icGxhY2Vob2xkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgICB2YXIgdCA9IGFz
eW5jX3Rlc3QoIlZlcmlmeSB0aGF0IGlmcmFtZSdzIHdpdGggc2NyaXB0aW5nIG9mZiBkaXNhbGxv
dyBsYXp5IGltYWdlIGxvYWRpbmcuIik7Ci0gICAgZnVuY3Rpb24gZmluaXNoKCkgewotICAgICAg
ICBhc3NlcnRfZXF1YWxzKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc2FuZGJveGVkZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdiZWxvd192aWV3cG9ydCcpKSwgdHJ1ZSk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgIH0K
LTwvc2NyaXB0PgotCi08Ym9keT4KLSAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAwMDBweDsiPjwv
ZGl2PgotICAgIDxpZnJhbWUgaWQ9InNhbmRib3hlZGZyYW1lIiBzdHlsZT0idmlzaWJpbGl0eTpo
aWRkZW47ZGlzcGxheTpub25lIiBzYW5kYm94PSJhbGxvdy1zYW1lLW9yaWdpbiIgc3JjPSJyZXNv
dXJjZXMvbGF6eS1sb2FkLWluLWlmcmFtZS5odG1sIiBvbmxvYWQ9ImZpbmlzaCgpIj48L2lmcmFt
ZT4KLSAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5LWltYWdlLWxvYWQtaW4taWZyYW1lcy1zY3Jp
cHRpbmctZW5hYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenls
b2FkL2xhenktaW1hZ2UtbG9hZC1pbi1pZnJhbWVzLXNjcmlwdGluZy1lbmFibGVkLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdiYTM2OTQ0ZmIuLjAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvbGF6eS1pbWFnZS1sb2Fk
LWluLWlmcmFtZXMtc2NyaXB0aW5nLWVuYWJsZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi0KLVBBU1MgVmVyaWZ5IHRoYXQgaWZyYW1lJ3Mgd2l0aCBzYW5kYm94
PSdhbGxvdy1zY3JpcHRzJyBhbGxvdyBsYXp5IGltYWdlIGxvYWRpbmcuIAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2xhenktaW1hZ2UtbG9hZC1pbi1pZnJh
bWVzLXNjcmlwdGluZy1lbmFibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenls
b2FkL2xhenktaW1hZ2UtbG9hZC1pbi1pZnJhbWVzLXNjcmlwdGluZy1lbmFibGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiYjVmZjFlN2M5Li4wMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL2xhenktaW1hZ2UtbG9hZC1pbi1pZnJh
bWVzLXNjcmlwdGluZy1lbmFibGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpl
bmFibGVMYXp5SW1hZ2VMb2FkaW5nPXRydWUgXSAtLT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJwbGFjZWhvbGRlci5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiVmVyaWZ5IHRoYXQg
aWZyYW1lJ3Mgd2l0aCBzYW5kYm94PSdhbGxvdy1zY3JpcHRzJyBhbGxvdyBsYXp5IGltYWdlIGxv
YWRpbmcuIik7Ci0gICAgZnVuY3Rpb24gZmluaXNoKCkgewotICAgICAgICBhc3NlcnRfZXF1YWxz
KGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveGVk
ZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWxvd192aWV3
cG9ydCcpKSwgZmFsc2UpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICB9Ci08L3NjcmlwdD4KLQot
PGJvZHk+Ci0gICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMDAwcHg7Ij48L2Rpdj4KLSAgICA8aWZy
YW1lIGlkPSJzYW5kYm94ZWRmcmFtZSIgc3R5bGU9InZpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6
bm9uZSIgc2FuZGJveD0iYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctc2NyaXB0cyIgc3JjPSJyZXNv
dXJjZXMvbGF6eS1sb2FkLWluLWlmcmFtZS5odG1sIiBvbmxvYWQ9ImZpbmlzaCgpIj48L2lmcmFt
ZT4KLSAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9sYXp5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xhenlsb2FkL2xhenkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUy
ZmZmMTk5ZDMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxv
YWQvbGF6eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6ZW5hYmxlTGF6eUltYWdl
TG9hZGluZz10cnVlIF0gLS0+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icGxhY2Vob2xkZXIuanMiPjwvc2NyaXB0PgotCi08
Ym9keT4KLSAgPGltZyBpZD0iaW5fdmlld3BvcnQiIHNyYz0nLi4vbG9hZGluZy9yZXNvdXJjZXMv
YmFzZS1pbWFnZTEucG5nJz4KLSAgPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMDAwcHg7Ij48L2Rpdj4K
LSAgPGltZyBpZD0iYmVsb3dfdmlld3BvcnQiIHNyYz0nLi4vbG9hZGluZy9yZXNvdXJjZXMvYmFz
ZS1pbWFnZTIucG5nJyBsb2FkaW5nPSJsYXp5Ij4KLTwvYm9keT4KLQotPHNjcmlwdD4KLSAgdmFy
IGluX3ZpZXdwb3J0X2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5fdmlld3Bv
cnQiKTsKLSAgdmFyIGJlbG93X3ZpZXdwb3J0X2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYmVsb3dfdmlld3BvcnQiKTsKLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0LnN0ZXBfZnVuY19kb25lKCkpOwotICB9
LCAiVGVzdCB0aGF0IGRvY3VtZW50IGxvYWQgZXZlbnQgaXMgZmlyZWQiKTsKLQotICBhc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICBpbl92aWV3cG9ydF9lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLAotICAgICAgdC5zdGVwX2Z1bmNfZG9uZShmdW5jdGlvbigpIHsKLSAgICAgICAg
YXNzZXJ0X3RydWUoaXNfaW1hZ2VfZnVsbHlfbG9hZGVkKGluX3ZpZXdwb3J0X2VsZW1lbnQpKTsK
LSAgICAgIH0pKTsKLSAgfSwgIlRlc3QgdGhhdCA8aW1nPiBpbiB2aWV3cG9ydCBpcyBsb2FkZWQs
IGFuZCBub3QgYSBwbGFjZWhvbGRlciIpOwotCi0gIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewot
ICAgIHZhciBjb21wbGV0ZSA9IDA7Ci0gICAgdmFyIG9ubG9hZF9jYWxsYmFjayA9IGZ1bmN0aW9u
KCkgewotICAgICAgaWYgKCsrY29tcGxldGUgPT0gMikgewotICAgICAgICAvLyBEb2N1bWVudCBh
bmQgdGhlIGFib3ZlIHZpZXdwb3J0IGltYWdlIGhhcyBsb2FkZWQuCi0gICAgICAgIGFzc2VydF9m
YWxzZShpc19pbWFnZV9mdWxseV9sb2FkZWQoYmVsb3dfdmlld3BvcnRfZWxlbWVudCkpOwotICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgIH0KLSAgICB9OwotICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgdC5zdGVwX2Z1bmMob25sb2FkX2NhbGxiYWNrKSk7Ci0gICAgaW5fdmlld3Bv
cnRfZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAgICAgIHQuc3RlcF9mdW5jKG9u
bG9hZF9jYWxsYmFjaykpOwotICAgIGJlbG93X3ZpZXdwb3J0X2VsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsCi0gICAgICB0LnVucmVhY2hlZF9mdW5jKCJMb2FkIGV2ZW50IHNob3VsZCBu
b3QgYmUgZmlyZWQgZm9yIGJlbG93IHZpZXdwb3J0IGltYWdlIikpOwotICB9LCAiVGVzdCB0aGF0
IDxpbWc+IGJlbG93IHZpZXdwb3J0IGlzIGEgcGxhY2Vob2xkZXIsIHdpdGggbGF6eWltYWdlIGVu
YWJsZWQiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
YXp5bG9hZC9sYXp5Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenls
b2FkL2xhenkyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkw
YTg5YmFhMDIuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxv
YWQvbGF6eTItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0KLQot
Ci1QQVNTIFRlc3QgdGhhdCBkb2N1bWVudCBsb2FkIGV2ZW50IGlzIGZpcmVkIAotUEFTUyBUZXN0
IHRoYXQgPGltZz4gaW4gdmlld3BvcnQgaXMgbG9hZGVkLCBhbmQgbm90IGEgcGxhY2Vob2xkZXIg
Ci1QQVNTIFRlc3QgdGhhdCA8aW1nPiBiZWxvdyB2aWV3cG9ydCBpcyBhIHBsYWNlaG9sZGVyLCB3
aXRoIGxhenlpbWFnZSBlbmFibGVkIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xhenlsb2FkL3BsYWNlaG9sZGVyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5
bG9hZC9wbGFjZWhvbGRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNhMjIz
NmJkZGIuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQv
cGxhY2Vob2xkZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vLyBSZXR1cm5z
IGlmIHRoZSBpbWFnZSBpcyBjb21wbGV0ZSBhbmQgZnVsbHkgbG9hZGVkIGFzIGEgbm9uLXBsYWNl
aG9sZGVyIGltYWdlLgotZnVuY3Rpb24gaXNfaW1hZ2VfZnVsbHlfbG9hZGVkKGltYWdlKSB7Ci0g
IGlmICghaW1hZ2UuY29tcGxldGUpIHsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBsZXQg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Ci0gIGNhbnZhcy53aWR0
aCA9IGNhbnZhcy5oZWlnaHQgPSAxOwotICBsZXQgY2FudmFzQ29udGV4dCA9IGNhbnZhcy5nZXRD
b250ZXh0KCIyZCIpOwotICBjYW52YXNDb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7Ci0g
IGxldCBkYXRhID0gY2FudmFzQ29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRo
LCBjYW52YXMuaGVpZ2h0KS5kYXRhOwotCi0gIC8vIEZ1bGx5IGxvYWRlZCBpbWFnZSBzaG91bGQg
bm90IGJlIGEgcGxhY2Vob2xkZXIgd2hpY2ggaXMgZHJhd24gYXMgYQotICAvLyB0cmFuc2x1Y2Vu
dCBncmF5IHJlY3RhbmdsZSBpbiBwbGFjZWhvbGRlcl9pbWFnZS5jYwotICByZXR1cm4gZGF0YVsw
XSAhPSAweGQ5IHx8IGRhdGFbMV0gIT0gMHhkOSB8fCBkYXRhWzJdICE9IDB4ZDk7Ci19CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Jlc291cmNlcy9sYXp5LWxv
YWQtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Jlc291
cmNlcy9sYXp5LWxvYWQtaW4taWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMxZWNjMmVkYjE1Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xhenlsb2FkL3Jlc291cmNlcy9sYXp5LWxvYWQtaW4taWZyYW1lLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDplbmFibGVMYXp5SW1hZ2VMb2FkaW5nPXRydWUgXSAtLT4KLTxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJwbGFjZWhvbGRlci5qcyI+PC9zY3JpcHQ+Ci0KLTxib2R5PgotICA8aW1nIGlkPSJpbl92aWV3
cG9ydCIgc3JjPScuLi9sb2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMS5wbmcnPgotICA8ZGl2
IHN0eWxlPSJoZWlnaHQ6MTAwMDBweDsiPjwvZGl2PgotICA8aW1nIGlkPSJiZWxvd192aWV3cG9y
dCIgc3JjPScuLi9sb2FkaW5nL3Jlc291cmNlcy9iYXNlLWltYWdlMi5wbmcnIGxvYWRpbmc9Imxh
enkiPgotPC9ib2R5PgotCi08c2NyaXB0PgotICB2YXIgaW5fdmlld3BvcnRfZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbl92aWV3cG9ydCIpOwotICB2YXIgYmVsb3dfdmlld3Bv
cnRfZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZWxvd192aWV3cG9ydCIpOwot
ICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHQuc3RlcF9mdW5jX2RvbmUoKSk7Ci0gIH0sICJUZXN0IHRoYXQgZG9jdW1lbnQgbG9h
ZCBldmVudCBpcyBmaXJlZCIpOwotCi0gIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIGlu
X3ZpZXdwb3J0X2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsCi0gICAgICB0LnN0ZXBf
ZnVuY19kb25lKGZ1bmN0aW9uKCkgewotICAgICAgICBhc3NlcnRfdHJ1ZShpc19pbWFnZV9mdWxs
eV9sb2FkZWQoaW5fdmlld3BvcnRfZWxlbWVudCkpOwotICAgICAgfSkpOwotICB9LCAiVGVzdCB0
aGF0IDxpbWc+IGluIHZpZXdwb3J0IGlzIGxvYWRlZCwgYW5kIG5vdCBhIHBsYWNlaG9sZGVyIik7
Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgYmVsb3dfdmlld3BvcnRfZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAgICAgIHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rp
b24oKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChpbl92aWV3
cG9ydF9lbGVtZW50KSk7Ci0gICAgICB9KSk7Ci0gIH0sICJUZXN0IHRoYXQgPGltZz4gYmVsb3cg
dmlld3BvcnQgaXMgbG9hZGVkLCBhbmQgbm90IGEgcGxhY2Vob2xkZXIiKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVu
dC1tb3ZlZC1mcm9tLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbGF6eWxvYWQvc2Nyb2xsLWVsZW1lbnQtbW92ZWQtZnJvbS1kb2N1bWVudC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwYjJkMmE1N2IyLi4wMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Njcm9sbC1lbGVtZW50LW1v
dmVkLWZyb20tZG9jdW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi0KLQotUEFTUyBUZXN0IHRoYXQgPGltZz4gYmVsb3cgdmlld3BvcnQgaXMgbm90IGxvYWRl
ZCB3aGVuIG1vdmVkIHRvIGFub3RoZXIgZG9jdW1lbnQgYW5kIHRoZW4gc2Nyb2xsZWQgdG8gCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvc2Nyb2xsLWVsZW1l
bnQtbW92ZWQtZnJvbS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5
bG9hZC9zY3JvbGwtZWxlbWVudC1tb3ZlZC1mcm9tLWRvY3VtZW50Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNlYmFmNWQwZDU4Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Njcm9sbC1lbGVtZW50LW1vdmVkLWZyb20tZG9jdW1l
bnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOmVuYWJsZUxhenlJbWFnZUxvYWRp
bmc9dHJ1ZSBdIC0tPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InBsYWNlaG9sZGVyLmpzIj48L3NjcmlwdD4KLQotPGJvZHk+
Ci0gIDxpbWcgaWQ9ImluX3ZpZXdwb3J0IiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2Ut
aW1hZ2UxLnBuZyc+Ci0gIDxkaXYgc3R5bGU9ImhlaWdodDoxMDAwMHB4OyI+PC9kaXY+Ci0gIDxp
bWcgaWQ9ImJlbG93X3ZpZXdwb3J0IiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2UtaW1h
Z2UyLnBuZycgbG9hZGluZz0ibGF6eSI+Ci08L2JvZHk+Ci0KLTxzY3JpcHQ+Ci0gIHZhciBpbl92
aWV3cG9ydF9lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImluX3ZpZXdwb3J0Iik7
Ci0gIHZhciBiZWxvd192aWV3cG9ydF9lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJlbG93X3ZpZXdwb3J0Iik7Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFy
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotICAgIGlmcmFtZS5z
cmNkb2MgPSAiPGJvZHk+PC9ib2R5PiI7Ci0gICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkg
ewotICAgICAgdmFyIGFkb3B0ZWRfaW1nID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5hZG9wdE5v
ZGUoYmVsb3dfdmlld3BvcnRfZWxlbWVudCk7Ci0gICAgICBpZnJhbWUuY29udGVudERvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoYWRvcHRlZF9pbWcpOwotICAgICAgd2luZG93LnNjcm9sbFRvKDAs
IDEwMDAwKTsKLSAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfZmFsc2Uo
aXNfaW1hZ2VfZnVsbHlfbG9hZGVkKGJlbG93X3ZpZXdwb3J0X2VsZW1lbnQpKTsgdC5kb25lKCk7
IH0sIDEwMDApOwotICAgIH07Ci0gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoaWZyYW1l
LCBpbl92aWV3cG9ydF9lbGVtZW50LCk7Ci0gIH0sICJUZXN0IHRoYXQgPGltZz4gYmVsb3cgdmll
d3BvcnQgaXMgbm90IGxvYWRlZCB3aGVuIG1vdmVkIHRvIGFub3RoZXIgZG9jdW1lbnQgYW5kIHRo
ZW4gc2Nyb2xsZWQgdG8iKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVudC1yZW1vdmVkLWZyb20tZG9jdW1lbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVu
dC1yZW1vdmVkLWZyb20tZG9jdW1lbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiMWY0OTVlOTgwOS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVudC1yZW1vdmVkLWZyb20tZG9jdW1lbnQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLQotUEFTUyBUZXN0IHRo
YXQgPGltZz4gYmVsb3cgdmlld3BvcnQgaXMgbm90IGxvYWRlZCB3aGVuIHJlbW92ZWQgZnJvbSB0
aGUgZG9jdW1lbnQgYW5kIHRoZW4gc2Nyb2xsZWQgdG8gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvc2Nyb2xsLWVsZW1lbnQtcmVtb3ZlZC1mcm9tLWRvY3Vt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Njcm9sbC1lbGVtZW50
LXJlbW92ZWQtZnJvbS1kb2N1bWVudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MGY5OGFkMTkxMi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
YXp5bG9hZC9zY3JvbGwtZWxlbWVudC1yZW1vdmVkLWZyb20tZG9jdW1lbnQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOmVuYWJsZUxhenlJbWFnZUxvYWRpbmc9dHJ1ZSBdIC0tPgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InBsYWNlaG9sZGVyLmpzIj48L3NjcmlwdD4KLQotPGJvZHk+Ci0gIDxpbWcgaWQ9Imlu
X3ZpZXdwb3J0IiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2UtaW1hZ2UxLnBuZyc+Ci0g
IDxkaXYgc3R5bGU9ImhlaWdodDoxMDAwMHB4OyI+PC9kaXY+Ci0gIDxpbWcgaWQ9ImJlbG93X3Zp
ZXdwb3J0IiBzcmM9Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2UtaW1hZ2UyLnBuZycgbG9hZGlu
Zz0ibGF6eSI+Ci08L2JvZHk+Ci0KLTxzY3JpcHQ+Ci0gIHZhciBpbl92aWV3cG9ydF9lbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImluX3ZpZXdwb3J0Iik7Ci0gIHZhciBiZWxvd192
aWV3cG9ydF9lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJlbG93X3ZpZXdwb3J0
Iik7Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgYmVsb3dfdmlld3BvcnRfZWxl
bWVudC5yZW1vdmUoKTsKLSAgICBhc3NlcnRfZmFsc2UoaXNfaW1hZ2VfZnVsbHlfbG9hZGVkKGJl
bG93X3ZpZXdwb3J0X2VsZW1lbnQpKTsKLSAgICBpbl92aWV3cG9ydF9lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgIHdpbmRvdy5z
Y3JvbGxUbygwLCAxMDAwMCk7Ci0gICAgICB0LnN0ZXBfdGltZW91dChmdW5jdGlvbigpIHsgYXNz
ZXJ0X2ZhbHNlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChiZWxvd192aWV3cG9ydF9lbGVtZW50KSk7
IHQuZG9uZSgpOyB9LCAxMDAwKTsKLSAgICB9KSk7Ci0gIH0sICJUZXN0IHRoYXQgPGltZz4gYmVs
b3cgdmlld3BvcnQgaXMgbm90IGxvYWRlZCB3aGVuIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQg
YW5kIHRoZW4gc2Nyb2xsZWQgdG8iKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4OGY5N2E2NGUzYi4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi0KLQotCi1QQVNTIFRlc3QgdGhhdCBkb2N1bWVudCBsb2FkIGV2ZW50IGlz
IGZpcmVkIAotUEFTUyBUZXN0IHRoYXQgPGltZz4gaW4gdmlld3BvcnQgaXMgbG9hZGVkLCBhbmQg
bm90IGEgcGxhY2Vob2xkZXIgCi1QQVNTIFRlc3QgdGhhdCA8aW1nPiBiZWxvdyB2aWV3cG9ydCBp
cyBsb2FkZWQgd2hlbiBzY3JvbGxlZCBuZWFyLCBhbmQgbm90IGEgcGxhY2Vob2xkZXIgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbGF6eWxvYWQvc2Nyb2xsLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xhenlsb2FkL3Njcm9sbC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkNGZjMjBhZTJiMS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJp
bWVudGFsOmVuYWJsZUxhenlJbWFnZUxvYWRpbmc9dHJ1ZSBdIC0tPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InBsYWNlaG9s
ZGVyLmpzIj48L3NjcmlwdD4KLQotPGJvZHk+Ci0gIDxpbWcgaWQ9ImluX3ZpZXdwb3J0IiBzcmM9
Jy4uL2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2UtaW1hZ2UxLnBuZyc+Ci0gIDxkaXYgc3R5bGU9Imhl
aWdodDoxMDAwMHB4OyI+PC9kaXY+Ci0gIDxpbWcgaWQ9ImJlbG93X3ZpZXdwb3J0IiBzcmM9Jy4u
L2xvYWRpbmcvcmVzb3VyY2VzL2Jhc2UtaW1hZ2UyLnBuZycgbG9hZGluZz0ibGF6eSI+Ci08L2Jv
ZHk+Ci0KLTxzY3JpcHQ+Ci0gIHZhciBpbl92aWV3cG9ydF9lbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImluX3ZpZXdwb3J0Iik7Ci0gIHZhciBiZWxvd192aWV3cG9ydF9lbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJlbG93X3ZpZXdwb3J0Iik7Ci0gIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewotICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdC5z
dGVwX2Z1bmNfZG9uZSgpKTsKLSAgfSwgIlRlc3QgdGhhdCBkb2N1bWVudCBsb2FkIGV2ZW50IGlz
IGZpcmVkIik7Ci0KLSAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgaW5fdmlld3BvcnRf
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAgICAgIHQuc3RlcF9mdW5jX2RvbmUo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRlZChp
bl92aWV3cG9ydF9lbGVtZW50KSk7Ci0gICAgICB9KSk7Ci0gIH0sICJUZXN0IHRoYXQgPGltZz4g
aW4gdmlld3BvcnQgaXMgbG9hZGVkLCBhbmQgbm90IGEgcGxhY2Vob2xkZXIiKTsKLQotICBhc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICBpbl92aWV3cG9ydF9lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKLSAgICAgIGJlbG93X3ZpZXdw
b3J0X2VsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTsKLSAgICB9KSk7Ci0gICAgYmVsb3dfdmlld3Bv
cnRfZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwKLSAgICAgIHQuc3RlcF9mdW5jX2Rv
bmUoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGFzc2VydF90cnVlKGlzX2ltYWdlX2Z1bGx5X2xvYWRl
ZChiZWxvd192aWV3cG9ydF9lbGVtZW50KSk7Ci0gICAgICB9KSk7Ci0gIH0sICJUZXN0IHRoYXQg
PGltZz4gYmVsb3cgdmlld3BvcnQgaXMgbG9hZGVkIHdoZW4gc2Nyb2xsZWQgbmVhciwgYW5kIG5v
dCBhIHBsYWNlaG9sZGVyIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDI3N2M0MDZmYTcxLi4yYjgzZWU2YWY0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTktMTAtMjkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnQgcjI1MTYzNyBhcyBpdCBj
YXVzZWQgaHR0cC90ZXN0cy9sYXp5bG9hZC9zY3JvbGwtZWxlbWVudC1yZW1vdmVkLWZyb20tZG9j
dW1lbnQuaHRtbCB0byBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzNTY2CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGlu
Zy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxhenkudGVudGF0aXZlLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFn
ZS1sb2FkaW5nLWxhenkudGVudGF0aXZlLmh0bWw6CisKIDIwMTktMTAtMjggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaHRtbC9zZW1hbnRpY3MvZm9y
bXMgV1BUIHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5n
LWxhenkudGVudGF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxhenkudGVu
dGF0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFhNjYz
N2IyZTQuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxhenkudGVudGF0aXZl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotCi0KLQotUEFTUyBU
ZXN0IHRoYXQgaW1hZ2VzIHdpdGggbG9hZGluZz0nbGF6eScgbG9hZCBvbmNlIHRoZXkgZW50ZXIg
dGhlIHZpZXdwb3J0LiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9sb2FkaW5nL2xhenlsb2FkL2ltYWdlLWxvYWRpbmctbGF6eS50ZW50
YXRpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxhenkudGVudGF0aXZlLmh0bWwKaW5kZXgg
NjkwOTRkMjA0NzYuLjU5MjBlYjE4ODJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2xvYWRpbmcvbGF6eWxvYWQvaW1hZ2UtbG9hZGluZy1s
YXp5LnRlbnRhdGl2ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2FkaW5nLWxhenkudGVudGF0aXZl
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDplbmFibGVMYXp5SW1hZ2VMb2FkaW5nPXRydWUgXSAtLT4KKzwh
RE9DVFlQRSBodG1sPgogPGhlYWQ+CiAgIDx0aXRsZT5JbWFnZXMgd2l0aCBsb2FkaW5nPSdsYXp5
JyBsb2FkIHdoZW4gaW4gdGhlIHZpZXdwb3J0PC90aXRsZT4KICAgPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJTY290dCBMaXR0bGUiIGhyZWY9Im1haWx0bzpzY2xpdHRsZUBjaHJvbWl1bS5vcmci
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDAzODdkNGVlNGE0Li5lYmVkYWJmOWQ3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUyLDkgKzE1Miw2IEBAIGh0dHAvdGVzdHMvaW50
ZXJzZWN0aW9uLW9ic2VydmVyIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlciBbIFNraXAgXQogaW50ZXJzZWN0aW9uLW9ic2VydmVy
IFsgU2tpcCBdCiAKLWh0dHAvdGVzdHMvbGF6eWxvYWQgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZCBbIFNraXAgXQotCiAjIHRlc3RSdW5u
ZXIucXVldWVMb2FkKCkgZG9lcyBub3Qgc3VwcG9ydCBsb2FkaW5nIGRhdGEgVVJMcyBpbiBNYWMg
V0sxCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9uYXZpZ2F0ZS1z
ZWxmLXRvLWRhdGEtdXJsLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA4ZTRhZmYzMTNmOC4uMDVmMGMxMzc0NWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NDY4LDcgKzQ0NjgsMyBA
QCB3ZWJraXQub3JnL2IvMjAyOTUxIGZhc3QvY2FudmFzL2RyYXdJbWFnZS1hbmltYXRlZC1naWYt
ZHJhd3MtZmlyc3QtZnJhbWUtYW5kLW5vLQogd2Via2l0Lm9yZy9iLzIwMjk1MiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwgWyBUaW1l
b3V0IF0KIAogd2Via2l0Lm9yZy9iLzIwMjk1MyBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL25vbi1kb2N1bWVudC1taXhlZC1jb250ZW50LWJsb2NrZWQtaHR0cHMtd2l0aC1lbWJlZGRl
ZC1odHRwLXdpdGgtZW1iZWRkZWQtaHR0cHMuaHR0cHMuaHRtbCBbIFRpbWVvdXQgXQotCi0jIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIG9mZiBieSBkZWZhdWx0Ci1odHRwL3Rlc3RzL2xhenlsb2Fk
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2xvYWRpbmcvbGF6eWxv
YWQgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZTM1MjkyZDcxZi4uNTdiMmVhZDcyYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxOS0xMC0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCByMjUxNjM3IGFzIGl0IGNh
dXNlZCBodHRwL3Rlc3RzL2xhenlsb2FkL3Njcm9sbC1lbGVtZW50LXJlbW92ZWQtZnJvbS1kb2N1
bWVudC5odG1sIHRvIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDM1NjYKKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkaWRNb3ZlVG9O
ZXdEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0xhenlMb2FkSW1h
Z2VPYnNlcnZlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9MYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5u
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6U3RhcnRUYWdT
Y2FubmVyOjpjcmVhdGVQcmVsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblBy
ZWxvYWRTY2FubmVyOjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGUpOgorICAgICAg
ICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRl
cjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNsaWVudERlZmVyc0ltYWdlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGREZWZlckltYWdlTG9h
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVsb2Fk
SW1hZ2VzSWZOb3REZWZlcnJlZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKToKKwogMjAxOS0xMC0yOSAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdW1dQRV0gRml4IG5vbi11bmlmaWVkIGJ1aWxkIGFmdGVyIHIyNTE2OTEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggNzc5MTA0MmJjM2QuLmU4YTc0ZTk1NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTIyMiw3
ICsxMjIyLDYgQEAgaHRtbC9JbnB1dFR5cGUuY3BwCiBodG1sL0lucHV0VHlwZU5hbWVzLmNwcAog
aHRtbC9MYWJlbGFibGVFbGVtZW50LmNwcAogaHRtbC9MYWJlbHNOb2RlTGlzdC5jcHAKLWh0bWwv
TGF6eUxvYWRJbWFnZU9ic2VydmVyLmNwcAogaHRtbC9MaW5rSWNvbkNvbGxlY3Rvci5jcHAKIGh0
bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKIGh0bWwvTWVkaWFDb250cm9sbGVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEy
ZWYyMDRlMDc3Li43NGNmM2IxYzI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM3NSw3ICszMzc1LDYgQEAKIAkJQUE3RkVF
QUQxNkE0RTc0QjAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUVBQzE2QTRFNzRCMDA0QzBDMzMg
LyogSlNTcGVlY2hTeW50aGVzaXMuaCAqLzsgfTsKIAkJQUFBNzI4RjcxNkQxRDhCQzAwRDNCQkM2
IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUE3MjhGMTE2RDFEOEJDMDBEM0JCQzYgLyog
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MuaCAqLzsgfTsKIAkJQUFDMDhDRjMxNUY5
NDFGRDAwRjFFMTg4IC8qIEFjY2Vzc2liaWxpdHlTVkdSb290LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUMwOENGMTE1Rjk0MUZDMDBGMUUxODggLyog
QWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCAqLzsgfTsKLQkJQUFEOUQwQjUyMURGQTgxMDAwMUIxMUM3
IC8qIExhenlMb2FkSW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUFEOUQwQjMyMURGQTgwRTAwMUIxMUM3IC8qIExhenlMb2FkSW1h
Z2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUFCMjNBMzI4MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUIyM0Ez
MjYwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi87IH07CiAJ
CUFCMjQ3QTZEMEFGRDYzODMwMDNGQTVGRCAvKiBSZW5kZXJTbGlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCMjQ3QTZCMEFGRDYzODMwMDNGQTVG
RCAvKiBSZW5kZXJTbGlkZXIuaCAqLzsgfTsKIAkJQUIzMUM5MUUxMEFFMUI4RTAwMEM3QjkyIC8q
IExpbmVDbGFtcFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQjMxQzkxRDEwQUUxQjhFMDAwQzdCOTIgLyogTGluZUNsYW1wVmFsdWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjE5MTQsOCAr
MjE5MTMsNiBAQAogCQkJCTQ1MENFQkVGMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVt
ZW50LmggKi8sCiAJCQkJQTQ1NkZBMjQxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0
LmNwcCAqLywKIAkJCQlBNDU2RkEyNTExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3Qu
aCAqLywKLQkJCQlBQUQ5RDBCMTIxREZBODBDMDAxQjExQzcgLyogTGF6eUxvYWRJbWFnZU9ic2Vy
dmVyLmNwcCAqLywKLQkJCQlBQUQ5RDBCMzIxREZBODBFMDAxQjExQzcgLyogTGF6eUxvYWRJbWFn
ZU9ic2VydmVyLmggKi8sCiAJCQkJMUE0REE0MUYxQ0REM0E4MzAwRjQ0NzNDIC8qIExpbmtJY29u
Q29sbGVjdG9yLmNwcCAqLywKIAkJCQkxQTREQTQyMDFDREQzQTgzMDBGNDQ3M0MgLyogTGlua0lj
b25Db2xsZWN0b3IuaCAqLywKIAkJCQkxQTI1MEUwQzFDREQ2MzIwMDBEMEJFNjMgLyogTGlua0lj
b25UeXBlLmggKi8sCkBAIC0zMTAxMiw3ICszMTAwOSw2IEBACiAJCQkJNkY3Q0EzQzYyMDhDMjk1
NzAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGMjIw
QkE0QTMyMDA2NUE4RDAgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0MURDMDQ4MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggaW4gSGVhZGVycyAqLywK
LQkJCQlBQUQ5RDBCNTIxREZBODEwMDAxQjExQzcgLyogTGF6eUxvYWRJbWFnZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREU4QjVFRDFBNjk3NzczMDBCNEI2NkEgLyogTGVnYWN5Q0RN
UHJpdmF0ZUNsZWFyS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcxMjFFMDA4N0FFMDBF
MjM1QTIgLyogTGVnYWN5Q0RNU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFOEI1RjEx
QTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Npb25DbGVhcktleS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkMzk5OGMyY2M3Zi4uMzcxZWE4ZTZiYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE5LDcgKzExOSw2IEBACiAjaW5jbHVkZSAi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIktleWZyYW1lRWZmZWN0LmgiCiAjaW5jbHVkZSAi
TGF5b3V0RGlzYWxsb3dlZFNjb3BlLmgiCi0jaW5jbHVkZSAiTGF6eUxvYWRJbWFnZU9ic2VydmVy
LmgiCiAjaW5jbHVkZSAiTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJMaWJXZWJS
VENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCkBAIC04MzI2LDExICs4
MzI1LDQgQEAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIERvY3VtZW50Ojp0ZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlcigpCiAgICAgcmV0dXJuICptX3RleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyOwogfQogCi1MYXp5TG9hZEltYWdlT2JzZXJ2ZXImIERvY3VtZW50OjpsYXp5TG9hZEltYWdl
T2JzZXJ2ZXIoKQotewotICAgIGlmICghbV9sYXp5TG9hZEltYWdlT2JzZXJ2ZXIpCi0gICAgICAg
IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyID0gbWFrZVVuaXF1ZTxMYXp5TG9hZEltYWdlT2JzZXJ2
ZXI+KCk7Ci0gICAgcmV0dXJuICptX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmMDM3M2JlYzYzNS4uNmJm
ZGZkMzM2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTMsNyArMTUzLDYgQEAgY2xhc3Mg
SW50UG9pbnQ7CiBjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExheW91
dFJlY3Q7Ci1jbGFzcyBMYXp5TG9hZEltYWdlT2JzZXJ2ZXI7CiBjbGFzcyBMaXZlTm9kZUxpc3Q7
CiBjbGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKQEAgLTE1NTcsOCArMTU1Niw2IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYgdGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
ciogdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KIAotICAgIExhenlMb2FkSW1hZ2VPYnNlcnZl
ciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7Ci0KIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0
cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0g
MSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNpZ25lZCA9IERl
ZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpAQCAt
MTc0NCw4ICsxNzQxLDYgQEAgcHJpdmF0ZToKIAogICAgIEVsZW1lbnQqIG1fY3NzVGFyZ2V0IHsg
bnVsbHB0ciB9OwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNlcnZlcj4g
bV9sYXp5TG9hZEltYWdlT2JzZXJ2ZXI7Ci0KICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtX3BlbmRpbmdTdGF0ZU9iamVjdDsKICAgICBNb25vdG9uaWNUaW1lIG1fZG9jdW1lbnRD
cmVhdGlvblRpbWU7CiAgICAgYm9vbCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDIzMjNh
YmNmNzU2Li43ZDRhYjM2ODVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MU291cmNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTcmNzZXRQYXJzZXIu
aCIKLSNpbmNsdWRlICJMYXp5TG9hZEltYWdlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5o
IgpAQCAtNTQsNyArNTMsNiBAQAogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLSNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuaCIKQEAgLTI0
NiwxMCArMjQ0LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICNlbmRpZgogICAgIH0gZWxz
ZSBpZiAobmFtZSA9PSB4X2FwcGxlX2VkaXRhYmxlX2ltYWdlQXR0cikKICAgICAgICAgdXBkYXRl
RWRpdGFibGVJbWFnZSgpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gbG9hZGluZ0F0dHIpIHsKLSAg
ICAgICAgaWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImxhenkiKSkK
LSAgICAgICAgICAgIGxvYWREZWZlcnJlZEltYWdlKCk7Ci0gICAgfSBlbHNlIHsKKyAgICBlbHNl
IHsKICAgICAgICAgaWYgKG5hbWUgPT0gbmFtZUF0dHIpIHsKICAgICAgICAgICAgIGJvb2wgd2ls
bEhhdmVOYW1lID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICAgICAgaWYgKG1faGFkTmFtZUJl
Zm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVjdGVkKCkgJiYg
IWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgpKSkgewpAQCAt
MjY4LDExICsyNjMsNiBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgIH0KIH0KIAotdm9p
ZCBIVE1MSW1hZ2VFbGVtZW50Ojpsb2FkRGVmZXJyZWRJbWFnZSgpCi17Ci0gICAgbV9pbWFnZUxv
YWRlci0+bG9hZERlZmVycmVkSW1hZ2UoKTsKLX0KLQogY29uc3QgQXRvbVN0cmluZyYgSFRNTElt
YWdlRWxlbWVudDo6YWx0VGV4dCgpIGNvbnN0CiB7CiAgICAgLy8gbGV0cyBmaWd1cmUgb3V0IHRo
ZSBhbHQgdGV4dC4uIG1hZ2ljIHN0dWZmCkBAIC02NzUsNyArNjY1LDYgQEAgdm9pZCBIVE1MSW1h
Z2VFbGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYg
dXJscykgY29uc3QKIAogdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVu
dChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkKIHsKLSAgICBt
X2NyZWF0ZWRCeVBhcnNlciA9IGZhbHNlOwogICAgIG1faW1hZ2VMb2FkZXItPmVsZW1lbnREaWRN
b3ZlVG9OZXdEb2N1bWVudCgpOwogICAgIEhUTUxFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVu
dChvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwogfQpAQCAtODcyLDM1ICs4NjEsNCBAQCBzaXpl
X3QgSFRNTEltYWdlRWxlbWVudDo6cGVuZGluZ0RlY29kZVByb21pc2VzQ291bnRGb3JUZXN0aW5n
KCkgY29uc3QKICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+cGVuZGluZ0RlY29kZVByb21pc2Vz
Q291bnRGb3JUZXN0aW5nKCk7CiB9CiAKLWNvbnN0IEF0b21TdHJpbmcmIEhUTUxJbWFnZUVsZW1l
bnQ6OmxvYWRpbmdGb3JCaW5kaW5ncygpIGNvbnN0Ci17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWFnZXIo
ImVhZ2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBsYXp5KCJsYXp5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIGF1dG8gYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bG9hZGluZ0F0dHIpOwotICAgIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1dGVWYWx1ZSwgImVhZ2VyIikpCi0gICAg
ICAgIHJldHVybiBlYWdlcjsKLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
YXR0cmlidXRlVmFsdWUsICJsYXp5IikpCi0gICAgICAgIHJldHVybiBsYXp5OwotICAgIHJldHVy
biBhdXRvVmFsdWU7Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0TG9hZGluZ0ZvckJp
bmRpbmdzKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQotewotICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24obG9hZGluZ0F0dHIsIHZhbHVlKTsKLX0KLQotYm9vbCBIVE1MSW1h
Z2VFbGVtZW50Ojppc0RlZmVycmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pbWFnZUxvYWRl
ci0+aXNEZWZlcnJlZCgpOwotfQotCi1ib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmlzTGF6eUxvYWRh
YmxlKCkgY29uc3QKLXsKLSAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpICYmICFkb2N1bWVudCgp
LmZyYW1lKCktPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2Ny
aXB0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIE5ldmVyIGRvIGxhenkgbG9hZGlu
ZyBmb3IgaW1hZ2UgZWxlbWVudHMgY3JlYXRlZCBmcm9tIEphdmFTY3JpcHQuCi0gICAgcmV0dXJu
IGNyZWF0ZWRCeVBhcnNlcigpICYmIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpsb2FkaW5nQXR0ciksICJsYXp5
Iik7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYjkz
MGE0Zjc1NjMuLjlmMDUxZDE2YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuaApAQCAtMTI2LDE3ICsxMjYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQmKSBmaW5hbDsKIAotICAgIHZvaWQgbG9hZERlZmVycmVkSW1hZ2UoKTsK
LQogICAgIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVkQnlQ
YXJzZXI7IH0KIAotICAgIGNvbnN0IEF0b21TdHJpbmcmIGxvYWRpbmdGb3JCaW5kaW5ncygpIGNv
bnN0OwotICAgIHZvaWQgc2V0TG9hZGluZ0ZvckJpbmRpbmdzKGNvbnN0IEF0b21TdHJpbmcmKTsK
LQotICAgIGJvb2wgaXNMYXp5TG9hZGFibGUoKSBjb25zdDsKLQotICAgIGJvb2wgaXNEZWZlcnJl
ZCgpIGNvbnN0OwotCiAgICAgYm9vbCBpc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0Ryb3BwZWRJbWFnZVBsYWNlaG9sZGVyOyB9CiAgICAgdm9pZCBzZXRJc0Ry
b3BwZWRJbWFnZVBsYWNlaG9sZGVyKCkgeyBtX2lzRHJvcHBlZEltYWdlUGxhY2Vob2xkZXIgPSB0
cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCmluZGV4IDM3
MzI1ZTA0MjdiLi4wOTI0ZWVhOGFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuaWRsCkBAIC00NCw3ICs0NCw3IEBACiAKICAgICBbQ29uZGl0aW9uYWw9QVRUQUNITUVO
VF9FTEVNRU5ULCBFbmFibGVkQXRSdW50aW1lPUF0dGFjaG1lbnRFbGVtZW50XSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGF0dGFjaG1lbnRJZGVudGlmaWVyOwogCi0gICAgW0NFUmVhY3Rp
b25zLCBFbmFibGVkQXRSdW50aW1lPUxhenlJbWFnZUxvYWRpbmcsIEltcGxlbWVudGVkQXM9bG9h
ZGluZ0ZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvYWRpbmc7CisgICAgW0VuYWJs
ZWRBdFJ1bnRpbWU9TGF6eUltYWdlTG9hZGluZywgQ0VSZWFjdGlvbnMsIFJlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgbG9hZGluZzsKIAogICAgIC8vIEV4dGVuc2lvbnMKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGF6eUxvYWRJbWFnZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGF6
eUxvYWRJbWFnZU9ic2VydmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU4
OWVjZDI2MDkuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGF6eUxvYWRJ
bWFnZU9ic2VydmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE5IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJMYXp5TG9hZEltYWdlT2JzZXJ2ZXIuaCIKLQotI2luY2x1ZGUgIkZy
YW1lLmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgotI2luY2x1ZGUgIkludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgotCi0jaW5j
bHVkZSA8bGltaXRzPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExhenlJbWFnZUxv
YWRJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIGZpbmFsIDogcHVibGljIEludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2sgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8TGF6eUltYWdlTG9h
ZEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMYXp5SW1hZ2VMb2FkSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAg
ICBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChjb25zdCBWZWN0b3I8UmVmPEludGVy
c2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBm
aW5hbAotICAgIHsKLSAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7Ci0KLSAgICAg
ICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKLSAgICAgICAgICAgIGlmICghZW50cnkt
PmlzSW50ZXJzZWN0aW5nKCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpOwotICAgICAgICAgICAgaWYgKGlz
PEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgZG93bmNhc3Q8
SFRNTEltYWdlRWxlbWVudD4oKmVsZW1lbnQpLmxvYWREZWZlcnJlZEltYWdlKCk7Ci0gICAgICAg
ICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5sYXp5TG9hZEltYWdlT2JzZXJ2ZXIoKS51bm9i
c2VydmUoKmVsZW1lbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB7IH07Ci0gICAgfQotCi0gICAgTGF6eUltYWdlTG9hZEludGVyc2VjdGlvbk9ic2VydmVyQ2Fs
bGJhY2soRG9jdW1lbnQmIGRvY3VtZW50KQotICAgICAgICA6IEludGVyc2VjdGlvbk9ic2VydmVy
Q2FsbGJhY2soJmRvY3VtZW50KQotICAgIHsKLSAgICB9Ci19OwotCi12b2lkIExhenlMb2FkSW1h
Z2VPYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQotewotICAgIGF1dG8mIG9ic2Vy
dmVyID0gZWxlbWVudC5kb2N1bWVudCgpLmxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwotICAgIGF1
dG8qIGludGVyc2VjdGlvbk9ic2VydmVyID0gb2JzZXJ2ZXIuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
ZWxlbWVudC5kb2N1bWVudCgpKTsKLSAgICBpZiAoIWludGVyc2VjdGlvbk9ic2VydmVyKQotICAg
ICAgICByZXR1cm47Ci0gICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXItPm9ic2VydmUoZWxlbWVudCk7
Ci19Ci0KLXZvaWQgTGF6eUxvYWRJbWFnZU9ic2VydmVyOjp1bm9ic2VydmUoRWxlbWVudCYgZWxl
bWVudCkKLXsKLSAgICBhdXRvJiBvYnNlcnZlciA9IGVsZW1lbnQuZG9jdW1lbnQoKS5sYXp5TG9h
ZEltYWdlT2JzZXJ2ZXIoKTsKLSAgICBBU1NFUlQob2JzZXJ2ZXIuaXNPYnNlcnZlZChlbGVtZW50
KSk7Ci0gICAgb2JzZXJ2ZXIubV9sYXp5TG9hZEludGVyc2VjdGlvbk9ic2VydmVyLT51bm9ic2Vy
dmUoZWxlbWVudCk7Ci19Ci0KLUludGVyc2VjdGlvbk9ic2VydmVyKiBMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXI6OmludGVyc2VjdGlvbk9ic2VydmVyKERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBp
ZiAoIW1fbGF6eUxvYWRJbnRlcnNlY3Rpb25PYnNlcnZlcikgewotICAgICAgICBhdXRvIGNhbGxi
YWNrID0gTGF6eUltYWdlTG9hZEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZShk
b2N1bWVudCk7Ci0gICAgICAgIGF1dG8gb3B0aW9ucyA9IEludGVyc2VjdGlvbk9ic2VydmVyOjpJ
bml0IHsgbnVsbHB0ciwgZW1wdHlTdHJpbmcoKSwgeyB9IH07Ci0gICAgICAgIGF1dG8gb2JzZXJ2
ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKGRvY3VtZW50LCBXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShvcHRpb25zKSk7Ci0gICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNlcHRp
b24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBtX2xhenlMb2FkSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBvYnNlcnZlci5yZXR1cm5WYWx1ZSgpLnB0cigpOwotICAgIH0K
LSAgICByZXR1cm4gbV9sYXp5TG9hZEludGVyc2VjdGlvbk9ic2VydmVyLmdldCgpOwotfQotCi1i
b29sIExhenlMb2FkSW1hZ2VPYnNlcnZlcjo6aXNPYnNlcnZlZChFbGVtZW50JiBlbGVtZW50KSBj
b25zdAotewotICAgIHJldHVybiBtX2xhenlMb2FkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgbV9s
YXp5TG9hZEludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZhdGlvblRhcmdldHMoKS5jb250YWlu
cygmZWxlbWVudCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGF6
eUxvYWRJbWFnZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhenlMb2FkSW1hZ2VP
YnNlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjVkMTVlMDY4Yy4uMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MYXp5TG9hZEltYWdlT2JzZXJ2ZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJJbnRl
cnNlY3Rpb25PYnNlcnZlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3Vt
ZW50OwotY2xhc3MgRWxlbWVudDsKLQotY2xhc3MgTGF6eUxvYWRJbWFnZU9ic2VydmVyIHsKLSAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICBzdGF0aWMgdm9pZCBvYnNlcnZlKEVsZW1lbnQmKTsK
LSAgICBzdGF0aWMgdm9pZCB1bm9ic2VydmUoRWxlbWVudCYpOwotCi1wcml2YXRlOgotICAgIElu
dGVyc2VjdGlvbk9ic2VydmVyKiBpbnRlcnNlY3Rpb25PYnNlcnZlcihEb2N1bWVudCYpOwotICAg
IGJvb2wgaXNPYnNlcnZlZChFbGVtZW50JikgY29uc3Q7Ci0KLSAgICAvLyBUaGUgaW50ZXJzZWN0
aW9uIG9ic2VydmVyIHJlc3BvbnNpYmxlIGZvciBsb2FkaW5nIHRoZSBpbWFnZSBvbmNlIGl0J3Mg
bmVhcgotICAgIC8vIHRoZSB2aWV3cG9ydC4KLSAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2
ZXI+IG1fbGF6eUxvYWRJbnRlcnNlY3Rpb25PYnNlcnZlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5u
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNw
cAppbmRleCA3OGI1OTNiMWJiZS4uMzNkN2IzYmIwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcApAQCAtMTYxLDEwICsxNjEsNiBA
QCBwdWJsaWM6CiAgICAgICAgIGlmICghTGlua0xvYWRlcjo6aXNTdXBwb3J0ZWRUeXBlKHR5cGUu
dmFsdWUoKSwgbV90eXBlQXR0cmlidXRlKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgICAgIC8vIERvIG5vdCBwcmVsb2FkIGlmIGxhenlsb2FkIGlzIHBvc3NpYmxlIGJ1dCBt
ZXRhZGF0YSBmZXRjaCBpcyBkaXNhYmxlZC4KLSAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKG1fbGF6eWxvYWRBdHRyaWJ1dGUsICJsYXp5IikpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtYWtlVW5pcXVlPFByZWxv
YWRSZXF1ZXN0Pihpbml0aWF0b3JGb3IobV90YWdJZCksIG1fdXJsVG9Mb2FkLCBwcmVkaWN0ZWRC
YXNlVVJMLCB0eXBlLnZhbHVlKCksIG1fbWVkaWFBdHRyaWJ1dGUsIG1fbW9kdWxlU2NyaXB0LCBt
X3JlZmVycmVyUG9saWN5KTsKICAgICAgICAgcmVxdWVzdC0+c2V0Q3Jvc3NPcmlnaW5Nb2RlKG1f
Y3Jvc3NPcmlnaW5Nb2RlKTsKICAgICAgICAgcmVxdWVzdC0+c2V0Tm9uY2UobV9ub25jZUF0dHJp
YnV0ZSk7CkBAIC0yMTAsMTIgKzIwNiw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgbV9z
aXplc0F0dHJpYnV0ZSA9IGF0dHJpYnV0ZVZhbHVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkubGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBsb2FkaW5nQXR0cikgJiYgbV9sYXp5bG9hZEF0
dHJpYnV0ZS5pc051bGwoKSkgewotICAgICAgICAgICAgICAgICAgICBtX2xhenlsb2FkQXR0cmli
dXRlID0gYXR0cmlidXRlVmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByb2Nlc3NJbWFnZUFuZFNj
cmlwdEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBUYWdJZDo6U291cmNlOgpAQCAtMzgwLDcgKzM3MCw2IEBA
IHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbWV0YUNvbnRlbnQ7CiAgICAgU3RyaW5nIG1fYXNBdHRy
aWJ1dGU7CiAgICAgU3RyaW5nIG1fdHlwZUF0dHJpYnV0ZTsKLSAgICBTdHJpbmcgbV9sYXp5bG9h
ZEF0dHJpYnV0ZTsKICAgICBib29sIG1fbWV0YUlzVmlld3BvcnQ7CiAgICAgYm9vbCBtX21ldGFJ
c0Rpc2FibGVkQWRhcHRhdGlvbnM7CiAgICAgYm9vbCBtX2lucHV0SXNJbWFnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGE0MmU3N2U3YmM0Li5hODM0MmUxYTRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0zOSwxMSArMzksOSBAQAog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUg
IkxhenlMb2FkSW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCi0jaW5jbHVkZSAiUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
CiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMTk5LDE2ICsxOTcsOCBAQCB2b2lkIEltYWdlTG9hZGVy
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0
cnVlKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkubV9kb2N1
bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZS5nZXQoKSk7CiAgICAg
ICAgICAgICBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnNldEF1dG9Mb2FkSW1hZ2Vz
KGF1dG9Mb2FkT3RoZXJJbWFnZXMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYg
KG1fbGF6eUltYWdlTG9hZFN0YXRlID09IExhenlJbWFnZUxvYWRTdGF0ZTo6Tm9uZSkgewotICAg
ICAgICAgICAgICAgIGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGF1dG8mIGltYWdlRWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbWFnZUVs
ZW1lbnQ+KGVsZW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZUVsZW1lbnQu
aXNMYXp5TG9hZGFibGUoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBt
X2xhenlJbWFnZUxvYWRTdGF0ZSA9IExhenlJbWFnZUxvYWRTdGF0ZTo6RGVmZXJyZWQ7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV3SW1hZ2UgPSBkb2N1
bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RJbWFnZShXVEZNb3ZlKHJlcXVlc3Qp
LCAobV9sYXp5SW1hZ2VMb2FkU3RhdGUgPT0gTGF6eUltYWdlTG9hZFN0YXRlOjpEZWZlcnJlZCkg
PyBJbWFnZUxvYWRpbmc6OkRlZmVycmVkVW50aWxWaXNpYmxlIDogSW1hZ2VMb2FkaW5nOjpJbW1l
ZGlhdGUpLnZhbHVlX29yKG51bGxwdHIpOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgbmV3SW1hZ2UgPSBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVl
c3RJbWFnZShXVEZNb3ZlKHJlcXVlc3QpKS52YWx1ZV9vcihudWxscHRyKTsKIAogICAgICAgICAv
LyBJZiB3ZSBkbyBub3QgaGF2ZSBhbiBpbWFnZSBoZXJlLCBpdCBtZWFucyB0aGF0IGEgY3Jvc3Mt
c2l0ZQogICAgICAgICAvLyB2aW9sYXRpb24gb2NjdXJyZWQsIG9yIHRoYXQgdGhlIGltYWdlIHdh
cyBibG9ja2VkIHZpYSBDb250ZW50CkBAIC0yNjEsOSArMjUxLDYgQEAgdm9pZCBJbWFnZUxvYWRl
cjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgdXBkYXRlUmVuZGVyZXIoKTsKIAotICAgICAgICAgICAgaWYgKG1fbGF6eUltYWdlTG9hZFN0
YXRlID09IExhenlJbWFnZUxvYWRTdGF0ZTo6RGVmZXJyZWQpCi0gICAgICAgICAgICAgICAgTGF6
eUxvYWRJbWFnZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQoKSk7Ci0KICAgICAgICAgICAgIC8v
IElmIG5ld0ltYWdlIGlzIGNhY2hlZCwgYWRkQ2xpZW50KCkgd2lsbCByZXN1bHQgaW4gdGhlIGxv
YWQgZXZlbnQKICAgICAgICAgICAgIC8vIGJlaW5nIHF1ZXVlZCB0byBmaXJlLiBFbnN1cmUgdGhp
cyBoYXBwZW5zIGFmdGVyIGJlZm9yZWxvYWQgaXMKICAgICAgICAgICAgIC8vIGRpc3BhdGNoZWQu
CkBAIC0zMjAsMTEgKzMwNyw2IEBAIHZvaWQgSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBBU1NFUlQobV9mYWlsZWRMb2FkVVJMLmlzRW1w
dHkoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgJnJlc291cmNlID09IG1faW1hZ2Uu
Z2V0KCkpOwogCi0gICAgaWYgKG1fbGF6eUltYWdlTG9hZFN0YXRlID09IExhenlJbWFnZUxvYWRT
dGF0ZTo6RGVmZXJyZWQpIHsKLSAgICAgICAgTGF6eUxvYWRJbWFnZU9ic2VydmVyOjp1bm9ic2Vy
dmUoZWxlbWVudCgpKTsKLSAgICAgICAgbV9sYXp5SW1hZ2VMb2FkU3RhdGUgPSBMYXp5SW1hZ2VM
b2FkU3RhdGU6OkZ1bGxJbWFnZTsKLSAgICB9Ci0KICAgICBtX2ltYWdlQ29tcGxldGUgPSB0cnVl
OwogICAgIGlmICghaGFzUGVuZGluZ0JlZm9yZUxvYWRFdmVudCgpKQogICAgICAgICB1cGRhdGVS
ZW5kZXJlcigpOwpAQCAtNTc4LDEyICs1NjAsNCBAQCBpbmxpbmUgdm9pZCBJbWFnZUxvYWRlcjo6
Y2xlYXJGYWlsZWRMb2FkVVJMKCkKICAgICBtX2ZhaWxlZExvYWRVUkwgPSBudWxsQXRvbSgpOwog
fQogCi12b2lkIEltYWdlTG9hZGVyOjpsb2FkRGVmZXJyZWRJbWFnZSgpCi17Ci0gICAgaWYgKG1f
bGF6eUltYWdlTG9hZFN0YXRlICE9IExhenlJbWFnZUxvYWRTdGF0ZTo6RGVmZXJyZWQpCi0gICAg
ICAgIHJldHVybjsKLSAgICBtX2xhenlJbWFnZUxvYWRTdGF0ZSA9IExhenlJbWFnZUxvYWRTdGF0
ZTo6RnVsbEltYWdlOwotICAgIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci19Ci0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgKaW5kZXggOWMyYjc1MDZjMDcuLjE2MjI5OTI3NzJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuaApAQCAtNzUsMTcgKzc1LDExIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdMb2FkRXZlbnRzKCk7CiAgICAgc3RhdGlj
IHZvaWQgZGlzcGF0Y2hQZW5kaW5nRXJyb3JFdmVudHMoKTsKIAotICAgIHZvaWQgbG9hZERlZmVy
cmVkSW1hZ2UoKTsKLQotICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF6
eUltYWdlTG9hZFN0YXRlID09IExhenlJbWFnZUxvYWRTdGF0ZTo6RGVmZXJyZWQ7IH0KLQogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IEltYWdlTG9hZGVyKEVsZW1lbnQmKTsKICAgICB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAg
ZW51bSBjbGFzcyBMYXp5SW1hZ2VMb2FkU3RhdGUgeyBOb25lLCBEZWZlcnJlZCwgRnVsbEltYWdl
IH07Ci0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSA9IDA7CiAgICAgdmly
dHVhbCBTdHJpbmcgc291cmNlVVJJKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdCA9IDA7CiAKQEAg
LTEyMCw3ICsxMTQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbWFnZUNvbXBsZXRlIDogMTsK
ICAgICBib29sIG1fbG9hZE1hbnVhbGx5IDogMTsKICAgICBib29sIG1fZWxlbWVudElzUHJvdGVj
dGVkIDogMTsKLSAgICBMYXp5SW1hZ2VMb2FkU3RhdGUgbV9sYXp5SW1hZ2VMb2FkU3RhdGUgeyBM
YXp5SW1hZ2VMb2FkU3RhdGU6Ok5vbmUgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggNzhlMmUwMDNmYWYuLjRhYjM1NTM4YzhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtOTEsOSArOTEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVBbGxDbGllbnRzV2FpdGluZ0ZvckFzeW5jRGVjb2Rp
bmcoKTsKIAogICAgIHZvaWQgc2V0Rm9yY2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGlu
Zyhib29sIGVuYWJsZWQpIHsgbV9mb3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5n
ID0gIGVuYWJsZWQ7IH0KLQotICAgIGJvb2wgc3RpbGxOZWVkc0xvYWQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAhZXJyb3JPY2N1cnJlZCgpICYmIHN0YXR1cygpID09IFVua25vd24gJiYgIWlz
TG9hZGluZygpOyB9Ci0KKyAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhcigpOwogCkBAIC0x
MzAsNiArMTI4LDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgaW1hZ2Vz
IGtlZXAgbG9hZGluZyBldmVuIGlmIHRoZXJlIGFyZSBIVFRQIGVycm9ycy4KICAgICBib29sIHNo
b3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCisgICAgYm9vbCBzdGlsbE5lZWRzTG9hZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICFlcnJvck9jY3VycmVkKCkgJiYgc3RhdHVzKCkgPT0gVW5rbm93biAmJiAhaXNMb2FkaW5n
KCk7IH0KKwogICAgIGNsYXNzIENhY2hlZEltYWdlT2JzZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUmVm
Q291bnRlZDxDYWNoZWRJbWFnZU9ic2VydmVyPiwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogICAg
IHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxDYWNoZWRJbWFnZU9ic2VydmVyPiBjcmVhdGUo
Q2FjaGVkSW1hZ2UmIGltYWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZEltYWdlT2Jz
ZXJ2ZXIoaW1hZ2UpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYmRjYzcyNTBiYmUuLjBiNmFmOWYwM2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRM
b2FkZXItPmZyYW1lKCkgOiBudWxscHRyOwogfQogCi1SZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdElt
YWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEltYWdlTG9hZGluZyBpbWFnZUxv
YWRpbmcpCitSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpCiB7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsK
ICAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3Bh
dGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5cGU6Ok5vbmUpIHsKQEAgLTIw
Nyw5ICsyMDcsOCBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdAogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKGltYWdlTG9hZGluZyA9PSBJbWFnZUxvYWRpbmc6OkltbWVkaWF0ZSkKLSAgICAg
ICAgaW1hZ2VMb2FkaW5nID0gY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS51cmwoKSk7Ci0gICAgcmV0dXJuIGNhc3RDYWNoZWRSZXNvdXJjZVRvPENhY2hlZEltYWdl
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkltYWdlUmVzb3VyY2UsIFdU
Rk1vdmUocmVxdWVzdCksIEZvclByZWxvYWQ6Ok5vLCBpbWFnZUxvYWRpbmcpKTsKKyAgICBhdXRv
IGRlZmVyID0gY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwo
KSkgPyBEZWZlck9wdGlvbjo6RGVmZXJyZWRCeUNsaWVudCA6IERlZmVyT3B0aW9uOjpOb0RlZmVy
OworICAgIHJldHVybiBjYXN0Q2FjaGVkUmVzb3VyY2VUbzxDYWNoZWRJbWFnZT4ocmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlOjpJbWFnZVJlc291cmNlLCBXVEZNb3ZlKHJlcXVl
c3QpLCBGb3JQcmVsb2FkOjpObywgZGVmZXIpKTsKIH0KIAogUmVzb3VyY2VFcnJvck9yPENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBpc1NWRykKQEAgLTc4
Miw3ICs3ODEsNyBAQCBzdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bkZvclR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKICAgICByZXR1cm4gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6RW1wdHlTdHJpbmc7CiB9CiAKLVJlc291cmNlRXJyb3JPcjxDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgRm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBJbWFnZUxvYWRpbmcgaW1h
Z2VMb2FkaW5nKQorUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGb3JQcmVs
b2FkIGZvclByZWxvYWQsIERlZmVyT3B0aW9uIGRlZmVyKQogewogICAgIGlmICghZnJhbWUoKSB8
fCAhZnJhbWUoKS0+cGFnZSgpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJl
cXVlc3RSZXNvdXJjZTogZmFpbGVkIGJlY2F1c2Ugbm8gZnJhbWUgb3IgcGFnZSIpOwpAQCAtOTAw
LDcgKzg5OSw3IEBAIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
ZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1CiAKICAgICBhdXRvJiBjb29raWVK
YXIgPSBwYWdlLmNvb2tpZUphcigpOwogCi0gICAgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9
IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0LCByZXNvdXJjZS5nZXQo
KSwgZm9yUHJlbG9hZCwgaW1hZ2VMb2FkaW5nKTsKKyAgICBSZXZhbGlkYXRpb25Qb2xpY3kgcG9s
aWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUsIHJlcXVlc3QsIHJlc291cmNl
LmdldCgpLCBmb3JQcmVsb2FkLCBkZWZlcik7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsKICAgICBj
YXNlIFJlbG9hZDoKICAgICAgICAgbWVtb3J5Q2FjaGUucmVtb3ZlKCpyZXNvdXJjZSk7CkBAIC05
NjIsNyArOTYxLDcgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICAgICAgaW5jcmVtZW50
UmVxdWVzdENvdW50KCpyZXNvdXJjZSk7CiAgICAgfQogCi0gICAgaWYgKChwb2xpY3kgIT0gVXNl
IHx8IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBpbWFnZUxvYWRpbmcgPT0gSW1hZ2VM
b2FkaW5nOjpJbW1lZGlhdGUpIHsKKyAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2Ut
PnN0aWxsTmVlZHNMb2FkKCkpICYmIGRlZmVyID09IERlZmVyT3B0aW9uOjpOb0RlZmVyKSB7CiAg
ICAgICAgIHJlc291cmNlLT5sb2FkKCp0aGlzKTsKIAogICAgICAgICAvLyBXZSBkb24ndCBzdXBw
b3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1cHBvcnQgaW1tZWRpYXRlIGZhaWx1cmUu
CkBAIC0xMDcxLDcgKzEwNzAsNyBAQCBzdGF0aWMgdm9pZCBsb2dSZXNvdXJjZVJldmFsaWRhdGlv
bkRlY2lzaW9uKENhY2hlZFJlc291cmNlOjpSZXZhbGlkYXRpb25EZWNpc2lvbgogICAgIH0KIH0K
IAotQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LCBDYWNo
ZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgRm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBJbWFn
ZUxvYWRpbmcgaW1hZ2VMb2FkaW5nKSBjb25zdAorQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFs
aWRhdGlvblBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGF0aW9u
UG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwg
Rm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikgY29uc3QKIHsKICAgICBh
dXRvJiByZXF1ZXN0ID0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwog
CkBAIC0xMTI3LDcgKzExMjYsNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9u
UG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgIEFTU0VS
VCghcmVxdWVzdC5pc0NvbmRpdGlvbmFsKCkpOwogCiAgICAgLy8gRG8gbm90IGxvYWQgZnJvbSBj
YWNoZSBpZiBpbWFnZXMgYXJlIG5vdCBlbmFibGVkLiBUaGUgbG9hZCBmb3IgdGhpcyBpbWFnZSB3
aWxsIGJlIGJsb2NrZWQgaW4gQ2FjaGVkSW1hZ2U6OmxvYWQuCi0gICAgaWYgKGltYWdlTG9hZGlu
ZyA9PSBJbWFnZUxvYWRpbmc6OkRlZmVycmVkVW50aWxWaXNpYmxlKQorICAgIGlmIChkZWZlciA9
PSBEZWZlck9wdGlvbjo6RGVmZXJyZWRCeUNsaWVudCkKICAgICAgICAgcmV0dXJuIFJlbG9hZDsK
IAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJjZXMgd2hpbGUgcGFzdGluZyBvciBpZiBjYWNo
ZSBtb2RlIGFsbG93cyBzdGFsZSByZXNvdXJjZXMuCkBAIC0xMjcyLDkgKzEyNzEsOSBAQCB2b2lk
IENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXRJbWFnZXNFbmFibGVkKGJvb2wgZW5hYmxlKQogICAg
IHJlbG9hZEltYWdlc0lmTm90RGVmZXJyZWQoKTsKIH0KIAotSW1hZ2VMb2FkaW5nIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjbGllbnREZWZlcnNJbWFnZShjb25zdCBVUkwmKSBjb25zdAorYm9vbCBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2xpZW50RGVmZXJzSW1hZ2UoY29uc3QgVVJMJikgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9pbWFnZXNFbmFibGVkID8gSW1hZ2VMb2FkaW5nOjpJbW1lZGlhdGUg
OiBJbWFnZUxvYWRpbmc6OkRlZmVycmVkVW50aWxWaXNpYmxlOworICAgIHJldHVybiAhbV9pbWFn
ZXNFbmFibGVkOwogfQogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGRQZXJmb3Jt
SW1hZ2VMb2FkKGNvbnN0IFVSTCYgdXJsKSBjb25zdApAQCAtMTI4NCwxMyArMTI4MywxMyBAQCBi
b29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGRQZXJmb3JtSW1hZ2VMb2FkKGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogCiBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGREZWZlcklt
YWdlTG9hZChjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xpZW50RGVmZXJz
SW1hZ2UodXJsKSA9PSBJbWFnZUxvYWRpbmc6OkRlZmVycmVkVW50aWxWaXNpYmxlIHx8ICFzaG91
bGRQZXJmb3JtSW1hZ2VMb2FkKHVybCk7CisgICAgcmV0dXJuIGNsaWVudERlZmVyc0ltYWdlKHVy
bCkgfHwgIXNob3VsZFBlcmZvcm1JbWFnZUxvYWQodXJsKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVsb2FkSW1hZ2VzSWZOb3REZWZlcnJlZCgpCiB7CiAgICAgZm9yIChhdXRv
JiByZXNvdXJjZSA6IG1fZG9jdW1lbnRSZXNvdXJjZXMudmFsdWVzKCkpIHsKLSAgICAgICAgaWYg
KGlzPENhY2hlZEltYWdlPigqcmVzb3VyY2UpICYmIHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgp
ICYmIGNsaWVudERlZmVyc0ltYWdlKHJlc291cmNlLT51cmwoKSkgPT0gSW1hZ2VMb2FkaW5nOjpJ
bW1lZGlhdGUpCisgICAgICAgIGlmIChpczxDYWNoZWRJbWFnZT4oKnJlc291cmNlKSAmJiByZXNv
dXJjZS0+c3RpbGxOZWVkc0xvYWQoKSAmJiAhY2xpZW50RGVmZXJzSW1hZ2UocmVzb3VyY2UtPnVy
bCgpKSkKICAgICAgICAgICAgIGRvd25jYXN0PENhY2hlZEltYWdlPigqcmVzb3VyY2UpLmxvYWQo
KnRoaXMpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggZDllMmUzMWQ5ZmQuLjE1MjA0ZmU0YWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aApAQCAtNjIsOCArNjIsNiBAQCBjbGFzcyBTZXR0aW5nczsKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgogdXNpbmcgUmVzb3VyY2VFcnJvck9yID0gRXhwZWN0ZWQ8VCwgUmVzb3VyY2VFcnJvcj47CiAK
LWVudW0gY2xhc3MgSW1hZ2VMb2FkaW5nIDogdWludDhfdCB7IEltbWVkaWF0ZSwgRGVmZXJyZWRV
bnRpbFZpc2libGUgfTsKLQogLy8gVGhlIENhY2hlZFJlc291cmNlTG9hZGVyIHByb3ZpZGVzIGEg
cGVyLWNvbnRleHQgaW50ZXJmYWNlIHRvIHRoZSBNZW1vcnlDYWNoZQogLy8gYW5kIGVuZm9yY2Vz
IGEgYnVuY2ggb2Ygc2VjdXJpdHkgY2hlY2tzIGFuZCBydWxlcyBmb3IgcmVzb3VyY2UgcmV2YWxp
ZGF0aW9uLgogLy8gSXRzIGxpZmV0aW1lIGlzIHJvdWdobHkgcGVyLURvY3VtZW50TG9hZGVyLCBp
biB0aGF0IGl0IGlzIGdlbmVyYWxseSBjcmVhdGVkCkBAIC04MSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPENhY2hlZFJlc291cmNlTG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZFJlc291cmNl
TG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAgICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsK
IAotICAgIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4+
IHJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgSW1hZ2VMb2FkaW5nID0gSW1h
Z2VMb2FkaW5nOjpJbW1lZGlhdGUpOworICAgIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4+IHJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
Jik7CiAgICAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdFVz
ZXJDU1NTdHlsZVNoZWV0KFBhZ2UmLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgUmVz
b3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4+IHJlcXVlc3RT
Y3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwpAQCAtMTY1LDggKzE2Myw5IEBAIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRMb2FkZXIqKTsK
IAogICAgIGVudW0gY2xhc3MgRm9yUHJlbG9hZCB7IFllcywgTm8gfTsKKyAgICBlbnVtIGNsYXNz
IERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwogCi0gICAgUmVzb3Vy
Y2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gcmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgRm9y
UHJlbG9hZCA9IEZvclByZWxvYWQ6Ok5vLCBJbWFnZUxvYWRpbmcgPSBJbWFnZUxvYWRpbmc6Oklt
bWVkaWF0ZSk7CisgICAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPj4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiwgRm9yUHJlbG9hZCA9IEZvclByZWxvYWQ6Ok5vLCBEZWZlck9wdGlv
biA9IERlZmVyT3B0aW9uOjpOb0RlZmVyKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBD
YWNoZWRSZXNvdXJjZSYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFBBTDo6U2Vzc2lvbklELCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgQ29va2llSmFyJik7CiAKQEAgLTE3Niw3ICsxNzUs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
Y29uc3QgVVJMJiwgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgRm9yUHJlbG9hZCk7CiAK
ICAgICBlbnVtIFJldmFsaWRhdGlvblBvbGljeSB7IFVzZSwgUmV2YWxpZGF0ZSwgUmVsb2FkLCBM
b2FkIH07Ci0gICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGlj
eShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVz
b3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UsIEZvclByZWxvYWQsIEltYWdlTG9hZGluZykgY29uc3Q7
CisgICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2Uq
IGV4aXN0aW5nUmVzb3VyY2UsIEZvclByZWxvYWQsIERlZmVyT3B0aW9uKSBjb25zdDsKIAogICAg
IGJvb2wgc2hvdWxkVXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3Qg
Q2FjaGVkUmVzb3VyY2UmLCBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKICAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRo
Q3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBDb29raWVKYXImKTsKQEAgLTE4Niw3
ICsxODUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwZXJmb3JtUG9zdExvYWRBY3Rpb25zKCk7
CiAKLSAgICBJbWFnZUxvYWRpbmcgY2xpZW50RGVmZXJzSW1hZ2UoY29uc3QgVVJMJikgY29uc3Q7
CisgICAgYm9vbCBjbGllbnREZWZlcnNJbWFnZShjb25zdCBVUkwmKSBjb25zdDsKICAgICB2b2lk
IHJlbG9hZEltYWdlc0lmTm90RGVmZXJyZWQoKTsKIAogICAgIGJvb2wgY2FuUmVxdWVzdEFmdGVy
UmVkaXJlY3Rpb24oQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAKaW5kZXggM2I5ZDVmMzM1Y2UuLjNmYTY0YmQ4Mzc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTQyMywxMSArNDIzLDYgQEAgdm9pZCBSZW5k
ZXJJbWFnZTo6cGFpbnRJbmNvbXBsZXRlSW1hZ2VPdXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBMYXlvdXRQb2ludAogICAgIGNvbnRleHQuZHJhd1JlY3Qoc25hcFJlY3RUb0RldmljZVBpeGVs
cyhMYXlvdXRSZWN0KHsgcGFpbnRPZmZzZXQueCgpICsgbGVmdEJvcmRlciArIGxlZnRQYWRkaW5n
LCBwYWludE9mZnNldC55KCkgKyB0b3BCb3JkZXIgKyB0b3BQYWRkaW5nIH0sIGNvbnRlbnRTaXpl
KSwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKSwgYm9yZGVyV2lkdGgpOwogfQogCi1z
dGF0aWMgYm9vbCBpc0RlZmVycmVkSW1hZ2UoRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICByZXR1
cm4gaXM8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTEltYWdlRWxl
bWVudD4oZWxlbWVudCktPmlzRGVmZXJyZWQoKTsKLX0KLQogdm9pZCBSZW5kZXJJbWFnZTo6cGFp
bnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0KQogewogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0KCk7CkBAIC00NDEsNyArNDM2LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNl
ZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsK
ICAgICBMYXlvdXRVbml0IG1pc3NpbmdJbWFnZUJvcmRlcldpZHRoKDEgLyBkZXZpY2VTY2FsZUZh
Y3Rvcik7CiAKLSAgICBpZiAoIWltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpIHx8IGlzRGVm
ZXJyZWRJbWFnZShlbGVtZW50KCkpIHx8IHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkg
eworICAgIGlmICghaW1hZ2VSZXNvdXJjZSgpLmNhY2hlZEltYWdlKCkgfHwgc2hvdWxkRGlzcGxh
eUJyb2tlbkltYWdlSWNvbigpKSB7CiAgICAgICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFp
bnRQaGFzZTo6U2VsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>