<?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>67471</bug_id>
          
          <creation_ts>2011-09-02 03:43:16 -0700</creation_ts>
          <short_desc>REGRESSION(r94399): Broke Leopard build (Requested by yutak on #webkit).</short_desc>
          <delta_ts>2011-09-02 03:50:59 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67465</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>tkent</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461136</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 03:43:16 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/94399 broke the build:
Broke Leopard build (Requested by yutak on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461137</commentid>
    <comment_count>1</comment_count>
      <attachid>106112</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 03:43:43 -0700</bug_when>
    <thetext>Created attachment 106112
ROLLOUT of r94399

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461140</commentid>
    <comment_count>2</comment_count>
      <attachid>106112</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 03:50:55 -0700</bug_when>
    <thetext>Comment on attachment 106112
ROLLOUT of r94399

Clearing flags on attachment: 106112

Committed r94402: &lt;http://trac.webkit.org/changeset/94402&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461141</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 03:50:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106112</attachid>
            <date>2011-09-02 03:43:43 -0700</date>
            <delta_ts>2011-09-02 03:50:55 -0700</delta_ts>
            <desc>ROLLOUT of r94399</desc>
            <filename>bug-67471-20110902104258.patch</filename>
            <type>text/plain</type>
            <size>49446</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0MDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNDBlNDA0ZTM1MjczYTJkZjM3NDE1
YzBjNTIxNjRmZGNjOGM5N2E2Li40YzhmNTcwNTVhNDA2NGU0ZDBjNzIwMWUwOTlkNTEyMDg3NDgw
N2RjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDktMDIgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5NDM5OS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTQz
OTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDcx
CisKKyAgICAgICAgQnJva2UgTGVvcGFyZCBidWlsZCAoUmVxdWVzdGVkIGJ5IHl1dGFrIG9uICN3
ZWJraXQpLgorCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9z
ZW5kLWVtcHR5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtZW1wdHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtb2JqZWN0LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhp
ZTc2L3NlbmQtb2JqZWN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3Vu
dC1hZnRlci1jbG9zZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvc2VuZC1ibG9iLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYmxvYi5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1ibG9iX3dzaC5weTogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZW1w
dHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2VuZC1lbXB0eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxl
LWJsb2ItZmFpbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi1mYWlsLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2VuZC1maWxlLWJsb2Jfd3NoLnB5OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvc2VuZC1ibG9iLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNv
dXJjZXMvc2VuZC1ibG9iX3dzaC5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvc2VuZC1ibG9iLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvc2Vu
ZC1ibG9iLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0wOS0wMiAgWXV0
YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWJTb2NrZXQ6IFNl
bmQgQmxvYiBhcyBXZWJTb2NrZXQgYmluYXJ5IG1lc3NhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1lbXB0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3Nl
bmQtZW1wdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzcw
ZjFmOWUwYWNiMTllYTU1ZGNlNjAxMTc4YTU3MjRiYmI0NWRkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1lbXB0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1XZWJTb2NrZXQ6IENhbGxpbmcgc2VuZCgpIHdpdGhvdXQgYXJndW1l
bnRzIHNob3VsZCByYWlzZSBTeW50YXhFcnJvci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi1QQVNTIHdzLnNlbmQoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgotUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKLVBBU1MgcmVj
ZWl2ZWRNZXNzYWdlcy5sZW5ndGggaXMgMQotUEFTUyByZWNlaXZlZE1lc3NhZ2VzWzBdIGlzICJH
b29kYnllIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvc2VuZC1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni9zZW5kLWVtcHR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZjNjM3NjM5NzM5MzYwNzBkNjgxYzUzZTg3ZmRhMTczZjEwNjZiMmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWVtcHR5Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJXZWJTb2NrZXQ6IENhbGxpbmcgc2VuZCgpIHdpdGhvdXQgYXJndW1lbnRzIHNo
b3VsZCByYWlzZSBTeW50YXhFcnJvci4iKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi12YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L2VjaG8iKTsKLQotdmFyIGNsb3NlRXZlbnQ7Ci12YXIgcmVjZWl2ZWRN
ZXNzYWdlcyA9IFtdOwotdmFyIGV4cGVjdGVkTWVzc2FnZXMgPSBbIkdvb2RieWUiXTsKLQotd3Mu
b25vcGVuID0gZnVuY3Rpb24oKQotewotICAgIHNob3VsZFRocm93KCJ3cy5zZW5kKCkiKTsKLSAg
ICB3cy5zZW5kKCJHb29kYnllIik7Ci19OwotCi13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkKLXsKLSAgICByZWNlaXZlZE1lc3NhZ2VzLnB1c2goZXZlbnQuZGF0YSk7Ci19OwotCi13cy5v
bmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAgY2xvc2VFdmVudCA9IGV2ZW50OwotICAg
IHNob3VsZEJlVHJ1ZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOwotCi0gICAgc2hvdWxkRXZhbHVh
dGVUbygicmVjZWl2ZWRNZXNzYWdlcy5sZW5ndGgiLCBleHBlY3RlZE1lc3NhZ2VzLmxlbmd0aCk7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZE1lc3NhZ2VzLmxlbmd0aDsgKytpKQot
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlY2VpdmVkTWVzc2FnZXNbIiArIGkgKyAi
XSIsIGV4cGVjdGVkTWVzc2FnZXNbaV0pOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfTsKLQotdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtb2JqZWN0LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM5YjJjYWQyZjE5ZWE2MmZmZTA1NDVh
ZmI3ZTc5MmIzYzg4ODk1Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3Nl
bmQtb2JqZWN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVdl
YlNvY2tldDogc2VuZChvYmplY3QpIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBzZW5kKG9iamVj
dC50b1N0cmluZygpKS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1QQVNTIGNsb3Nl
RXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQotUEFTUyByZWNlaXZlZE1lc3NhZ2VzLmxlbmd0aCBpcyA0
Ci1QQVNTIHJlY2VpdmVkTWVzc2FnZXNbMF0gaXMgIltvYmplY3QgT2JqZWN0XSIKLVBBU1MgcmVj
ZWl2ZWRNZXNzYWdlc1sxXSBpcyAiW29iamVjdCBBcnJheUJ1ZmZlcl0iCi1QQVNTIHJlY2VpdmVk
TWVzc2FnZXNbMl0gaXMgIltvYmplY3QgQmxvYl0iCi1QQVNTIHJlY2VpdmVkTWVzc2FnZXNbM10g
aXMgIkdvb2RieWUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYTMxNzEzN2YwYzRhMmE2YjRiMDcxNmU3ZDM0MjMyOTMwNGY5OTU2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1vYmplY3QuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIldlYlNvY2tldDogc2VuZChvYmplY3QpIHNob3VsZCBiZSBpbnRl
cnByZXRlZCBhcyBzZW5kKG9iamVjdC50b1N0cmluZygpKS4iKTsKLQotd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi1mdW5jdGlvbiBjcmVhdGVFbXB0eUJsb2IoKQotewotICAgIHZhciBi
dWlsZGVyID0gbmV3IFdlYktpdEJsb2JCdWlsZGVyKCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0
QmxvYigpOwotfQotCi12YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgw
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2VjaG8iKTsKLQotdmFyIGNsb3NlRXZlbnQ7Ci12YXIg
cmVjZWl2ZWRNZXNzYWdlcyA9IFtdOwotdmFyIGV4cGVjdGVkTWVzc2FnZXMgPSBbIltvYmplY3Qg
T2JqZWN0XSIsICJbb2JqZWN0IEFycmF5QnVmZmVyXSIsICJbb2JqZWN0IEJsb2JdIiwgIkdvb2Ri
eWUiXTsKLQotd3Mub25vcGVuID0gZnVuY3Rpb24oKQotewotICAgIHdzLnNlbmQoe30pOwotICAg
IHdzLnNlbmQobmV3IEFycmF5QnVmZmVyKCkpOwotICAgIHdzLnNlbmQoY3JlYXRlRW1wdHlCbG9i
KCkpOwotICAgIHdzLnNlbmQoIkdvb2RieWUiKTsKLX07Ci0KLXdzLm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KQotewotICAgIHJlY2VpdmVkTWVzc2FnZXMucHVzaChldmVudC5kYXRhKTsKLX07
Ci0KLXdzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKLXsKLSAgICBjbG9zZUV2ZW50ID0gZXZl
bnQ7Ci0gICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50Lndhc0NsZWFuIik7Ci0KLSAgICBzaG91
bGRFdmFsdWF0ZVRvKCJyZWNlaXZlZE1lc3NhZ2VzLmxlbmd0aCIsIGV4cGVjdGVkTWVzc2FnZXMu
bGVuZ3RoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkTWVzc2FnZXMubGVuZ3Ro
OyArK2kpCi0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVjZWl2ZWRNZXNzYWdlc1si
ICsgaSArICJdIiwgZXhwZWN0ZWRNZXNzYWdlc1tpXSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19
OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVy
ZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0CmluZGV4IDdjNmQ1NWViNjRkZWUzOWI4
MWUyMDFkNmMxOGJmNTNlYTU3Yjk1OWIuLmU3Mjk4MDcwMzU4YWQ1ODIyMzY0MTgzNTdjN2QzZmZm
YzA0ODM0ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQt
YWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNiBAQCBDb25uZWN0ZWQuCiBDbG9z
ZWQuCiBQQVNTIHdzLnJlYWR5U3RhdGUgaXMgMwogUEFTUyB3cy5idWZmZXJlZEFtb3VudCBpcyAw
Ci1UZXN0aW5nIHNlbmQoc3RyaW5nKS4uLgogUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlz
IGZhbHNlCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAyNwogUEFTUyB3cy5zZW5k
KG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCkBAIC0yMSwxOSArMjAsNiBAQCBQQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlz
IDY1NTQzCiBQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKIFBBU1MgYnVmZmVy
ZWRBbW91bnREaWZmZXJlbmNlIGlzIDY1NTUwCi1UZXN0aW5nIHNlbmQoQmxvYikuLi4KLVBBU1Mg
d3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQotUEFTUyBidWZmZXJlZEFtb3VudERpZmZl
cmVuY2UgaXMgNgotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCi1QQVNTIGJ1
ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkg
aXMgZmFsc2UKLVBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEzMQotUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCi1QQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5j
ZSBpcyAxMzQKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQotUEFTUyBidWZm
ZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5k
KSBpcyBmYWxzZQotUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3Vu
dC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sCmluZGV4IGM2YjI2MDQyZTU5
ZDhmMDQyYThiNjMxNmU1NzU4OTEyODg2MTQ4NjQuLjE2YTZhNGI3MTc3ZThlZjdkNzk4OWYwNTky
MzEwYjI0OGNmODkzOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFm
dGVyLWNsb3NlLmh0bWwKQEAgLTIyLDEzICsyMiw2IEBAIGZ1bmN0aW9uIGNyZWF0ZVN0cmluZ1dp
dGhMZW5ndGgobGVuZ3RoKQogICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKDAsIGxlbmd0aCk7
CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZUJsb2JXaXRoTGVuZ3RoKGxlbmd0aCkKLXsKLSAgICB2YXIg
YnVpbGRlciA9IG5ldyBXZWJLaXRCbG9iQnVpbGRlcigpOwotICAgIGJ1aWxkZXIuYXBwZW5kKG5l
dyBBcnJheUJ1ZmZlcihsZW5ndGgpKTsKLSAgICByZXR1cm4gYnVpbGRlci5nZXRCbG9iKCk7Ci19
Ci0KIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2ltcGxlIik7CiAKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKQEAgLTQ0LDcg
KzM3LDYgQEAgd3Mub25jbG9zZSA9IGZ1bmN0aW9uKCkKICAgICBzaG91bGRCZSgid3MuYnVmZmVy
ZWRBbW91bnQiLCAiMCIpOwogCiAgICAgdmFyIGJhc2VPdmVyaGVhZCA9IDIgKyA0OyAvLyBCYXNl
IGhlYWRlciBzaXplIGFuZCBtYXNraW5nIGtleSBzaXplLgotICAgIGRlYnVnKCJUZXN0aW5nIHNl
bmQoc3RyaW5nKS4uLiIpOwogICAgIHRlc3RCdWZmZXJlZEFtb3VudCgnc2VuZCB0byBjbG9zZWQg
c29ja2V0JywgMjEgKyBiYXNlT3ZlcmhlYWQpOwogICAgIHRlc3RCdWZmZXJlZEFtb3VudCgnJywg
YmFzZU92ZXJoZWFkKTsKICAgICB0ZXN0QnVmZmVyZWRBbW91bnQoJ2EnLCAxICsgYmFzZU92ZXJo
ZWFkKTsKQEAgLTUzLDE0ICs0NSw2IEBAIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpCiAgICAgdGVz
dEJ1ZmZlcmVkQW1vdW50KGNyZWF0ZVN0cmluZ1dpdGhMZW5ndGgoMHhGRkZGKSwgMHhGRkZGICsg
YmFzZU92ZXJoZWFkICsgMik7CiAgICAgdGVzdEJ1ZmZlcmVkQW1vdW50KGNyZWF0ZVN0cmluZ1dp
dGhMZW5ndGgoMHgxMDAwMCksIDB4MTAwMDAgKyBiYXNlT3ZlcmhlYWQgKyA4KTsgLy8gV2l0aCA2
NC1iaXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQuCiAKLSAgICBkZWJ1ZygiVGVzdGlu
ZyBzZW5kKEJsb2IpLi4uIik7Ci0gICAgdGVzdEJ1ZmZlcmVkQW1vdW50KGNyZWF0ZUJsb2JXaXRo
TGVuZ3RoKDApLCBiYXNlT3ZlcmhlYWQpOwotICAgIHRlc3RCdWZmZXJlZEFtb3VudChjcmVhdGVC
bG9iV2l0aExlbmd0aCgxKSwgMSArIGJhc2VPdmVyaGVhZCk7Ci0gICAgdGVzdEJ1ZmZlcmVkQW1v
dW50KGNyZWF0ZUJsb2JXaXRoTGVuZ3RoKDEyNSksIDEyNSArIGJhc2VPdmVyaGVhZCk7Ci0gICAg
dGVzdEJ1ZmZlcmVkQW1vdW50KGNyZWF0ZUJsb2JXaXRoTGVuZ3RoKDEyNiksIDEyNiArIGJhc2VP
dmVyaGVhZCArIDIpOwotICAgIHRlc3RCdWZmZXJlZEFtb3VudChjcmVhdGVCbG9iV2l0aExlbmd0
aCgweEZGRkYpLCAweEZGRkYgKyBiYXNlT3ZlcmhlYWQgKyAyKTsKLSAgICB0ZXN0QnVmZmVyZWRB
bW91bnQoY3JlYXRlQmxvYldpdGhMZW5ndGgoMHgxMDAwMCksIDB4MTAwMDAgKyBiYXNlT3Zlcmhl
YWQgKyA4KTsKLQogICAgIGZpbmlzaEpTVGVzdCgpOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWJsb2ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWJs
b2ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGY0OGQwNWYz
ZmQ3MjBlMGJhNWFhNjc5YzI2MmU0ZGRiMjMxYzIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2VuZC1ibG9iLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICsw
LDAgQEAKLVdlYlNvY2tldDogU2VuZCBCbG9icy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi1QQVNTIFBBU1M6IE1lc3NhZ2UgIzAuCi1QQVNTIFBBU1M6IE1lc3NhZ2UgIzEuCi1QQVNT
IFBBU1M6IE1lc3NhZ2UgIzIuCi1QQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1ibG9i
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQt
YmxvYi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWI5MzQ2ZDc0ODNhNjRh
OTJhYWJmNzkxZWRiOWM5ZDAzNzVmOTkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvc2VuZC1ibG9iLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZGVz
Y3JpcHRpb24oIldlYlNvY2tldDogU2VuZCBCbG9icy4iKTsKLQotd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQiLCAwKTsKLQotZnVuY3Rpb24gc3RhcnRzV2l0aCh0YXJnZXQsIHByZWZp
eCkKLXsKLSAgICByZXR1cm4gdGFyZ2V0LmluZGV4T2YocHJlZml4KSA9PT0gMDsKLX0KLQotZnVu
Y3Rpb24gY3JlYXRlQmxvYkNvbnRhaW5pbmdIZWxsb1dvcmxkKCkKLXsKLSAgICB2YXIgYnVpbGRl
ciA9IG5ldyBXZWJLaXRCbG9iQnVpbGRlcigpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJIZWxsbywg
d29ybGQhIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0QmxvYigpOwotfQotCi1mdW5jdGlvbiBj
cmVhdGVFbXB0eUJsb2IoKQotewotICAgIHZhciBidWlsZGVyID0gbmV3IFdlYktpdEJsb2JCdWls
ZGVyKCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0QmxvYigpOwotfQotCi1mdW5jdGlvbiBjcmVh
dGVCbG9iQ29udGFpbmluZ0FsbERpc3RpbmN0Qnl0ZXMoKQotewotICAgIHZhciBhcnJheSA9IG5l
dyBVaW50OEFycmF5KDI1Nik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7ICsraSkKLSAg
ICAgICAgYXJyYXlbaV0gPSBpOwotICAgIHZhciBidWlsZGVyID0gbmV3IFdlYktpdEJsb2JCdWls
ZGVyKCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoYXJyYXkuYnVmZmVyKTsKLSAgICByZXR1cm4gYnVp
bGRlci5nZXRCbG9iKCk7Ci19Ci0KLXZhciB1cmwgPSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zZW5kLWJsb2IiOwotdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwp
OwotdmFyIGNsb3NlRXZlbnQ7Ci0KLXdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKLXsKLSAgICB3cy5z
ZW5kKGNyZWF0ZUJsb2JDb250YWluaW5nSGVsbG9Xb3JsZCgpKTsKLSAgICB3cy5zZW5kKGNyZWF0
ZUVtcHR5QmxvYigpKTsKLSAgICB3cy5zZW5kKGNyZWF0ZUJsb2JDb250YWluaW5nQWxsRGlzdGlu
Y3RCeXRlcygpKTsKLX07Ci0KLXdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQotewotICAg
IHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKLSAgICBpZiAoc3RhcnRzV2l0aChtZXNzYWdlLCAi
UEFTUyIpKQotICAgICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOwotICAgIGVsc2UKLSAgICAgICAg
dGVzdEZhaWxlZChtZXNzYWdlKTsKLX07Ci0KLXdzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkK
LXsKLSAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7Ci0gICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50
Lndhc0NsZWFuIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3NlbmQtYmxvYl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL3NlbmQtYmxvYl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAy
NGUzZjRkMDc5NDVjOTJjYWFiZGMwMzdlYzUwMDgyNGE0MmExYTIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zZW5kLWJsb2Jfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjEg
KzAsMCBAQAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcyAjIEFsd2F5cyBhY2NlcHQuCi0KLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBleHBlY3RlZF9tZXNzYWdlcyA9IFsn
SGVsbG8sIHdvcmxkIScsICcnLCBhbGxfZGlzdGluY3RfYnl0ZXMoKV0KLQotICAgIGZvciB0ZXN0
X251bWJlciwgZXhwZWN0ZWRfbWVzc2FnZSBpbiBlbnVtZXJhdGUoZXhwZWN0ZWRfbWVzc2FnZXMp
OgotICAgICAgICBtZXNzYWdlID0gbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkKLSAg
ICAgICAgaWYgdHlwZShtZXNzYWdlKSA9PSBzdHIgYW5kIG1lc3NhZ2UgPT0gZXhwZWN0ZWRfbWVz
c2FnZToKLSAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdQQVNTOiBN
ZXNzYWdlICMlZC4nICUgdGVzdF9udW1iZXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnRkFJTDogTWVzc2FnZSAjJWQ6IFJlY2VpdmVk
IHVuZXhwZWN0ZWQgbWVzc2FnZTogJXInICUgKHRlc3RfbnVtYmVyLCBtZXNzYWdlKSkKLQotCi1k
ZWYgYWxsX2Rpc3RpbmN0X2J5dGVzKCk6Ci0gICAgcmV0dXJuICcnLmpvaW4oW2NocihpKSBmb3Ig
aSBpbiB4cmFuZ2UoMjU2KV0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZW1wdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWVtcHR5LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM3MGYxZjllMGFjYjE5ZWE1NWRjZTYwMTE3
OGE1NzI0YmJiNDVkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZW1w
dHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotV2ViU29ja2V0
OiBDYWxsaW5nIHNlbmQoKSB3aXRob3V0IGFyZ3VtZW50cyBzaG91bGQgcmFpc2UgU3ludGF4RXJy
b3IuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotUEFTUyB3cy5zZW5kKCkgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY2xvc2VF
dmVudC53YXNDbGVhbiBpcyB0cnVlCi1QQVNTIHJlY2VpdmVkTWVzc2FnZXMubGVuZ3RoIGlzIDEK
LVBBU1MgcmVjZWl2ZWRNZXNzYWdlc1swXSBpcyAiR29vZGJ5ZSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZW1wdHkuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1lbXB0eS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGM4OTk2NDk2NTY0Yjk4NzZiZDFhMjdlN2Uy
YjhhMzgzNDU3Yjk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1lbXB0
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiV2ViU29ja2V0OiBDYWxsaW5nIHNlbmQo
KSB3aXRob3V0IGFyZ3VtZW50cyBzaG91bGQgcmFpc2UgU3ludGF4RXJyb3IuIik7Ci0KLXdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7Ci0KLXZhciB3cyA9IG5ldyBXZWJTb2Nr
ZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIpOwotCi12
YXIgY2xvc2VFdmVudDsKLXZhciByZWNlaXZlZE1lc3NhZ2VzID0gW107Ci12YXIgZXhwZWN0ZWRN
ZXNzYWdlcyA9IFsiR29vZGJ5ZSJdOwotCi13cy5vbm9wZW4gPSBmdW5jdGlvbigpCi17Ci0gICAg
c2hvdWxkVGhyb3coIndzLnNlbmQoKSIpOwotICAgIHdzLnNlbmQoIkdvb2RieWUiKTsKLX07Ci0K
LXdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQotewotICAgIHJlY2VpdmVkTWVzc2FnZXMu
cHVzaChldmVudC5kYXRhKTsKLX07Ci0KLXdzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKLXsK
LSAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7Ci0gICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50Lndh
c0NsZWFuIik7Ci0KLSAgICBzaG91bGRFdmFsdWF0ZVRvKCJyZWNlaXZlZE1lc3NhZ2VzLmxlbmd0
aCIsIGV4cGVjdGVkTWVzc2FnZXMubGVuZ3RoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4
cGVjdGVkTWVzc2FnZXMubGVuZ3RoOyArK2kpCi0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVjZWl2ZWRNZXNzYWdlc1siICsgaSArICJdIiwgZXhwZWN0ZWRNZXNzYWdlc1tpXSk7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9i
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvc2VuZC1maWxlLWJsb2ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1MTY0OWNlOTg0YmUxNmY3ZjFiNzg1NWZlYWI1OWJkODA3NDFkZWYyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2ItZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotV2ViU29ja2V0OiBTZW5kIGEgRmlsZS4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1Hb3QgRmlsZVN5c3RlbSBvYmplY3QuCi1GaWxlIGNy
ZWF0ZWQuCi1QQVNTIGZpbGVFbnRyeS5pc0ZpbGUgaXMgdHJ1ZQotV3JvdGUgdG8gZmlsZS4KLUdv
dCBGaWxlIG9iamVjdC4KLVBBU1MgUEFTUzogTWVzc2FnZSAjMC4KLVBBU1MgY2xvc2VFdmVudC53
YXNDbGVhbiBpcyB0cnVlCi1EZWxldGluZyB0aGUgZmlsZS4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5k
LWZpbGUtYmxvYi1mYWlsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWQ3MThmOTAwNjlkNTRiZDRiZmYzOWU1ZjE2MTAxOGEzOGVjNWQ5OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEZh
aWxlZCB0byBsb2FkIEJsb2I6IGVycm9yIGNvZGUgPSAxCi1XZWJTb2NrZXQgc2hvdWxkIGZhaWwg
dGhlIGNvbm5lY3Rpb24gaWYgaXQgaGFzIGZhaWxlZCB0byByZWFkIGEgQmxvYi4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi1Hb3QgRmlsZVN5c3RlbSBvYmplY3QuCi1GaWxlIGNyZWF0
ZWQuCi1QQVNTIGZpbGVFbnRyeS5pc0ZpbGUgaXMgdHJ1ZQotV3JvdGUgdG8gZmlsZS4KLUdvdCBG
aWxlIG9iamVjdC4KLUZpbGUgZGVsZXRlZC4KLVBBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBm
YWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2VuZC1maWxlLWJsb2ItZmFpbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi1mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkyNjI2ZDhmMWUzYWM3MDk1ZTkzZjg2YjQ4ZWU3M2ExMjQ1NmU2MzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi1mYWlsLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9uKCJXZWJTb2Nr
ZXQgc2hvdWxkIGZhaWwgdGhlIGNvbm5lY3Rpb24gaWYgaXQgaGFzIGZhaWxlZCB0byByZWFkIGEg
QmxvYi4iKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKLQotZnVu
Y3Rpb24gc3RhcnRzV2l0aCh0YXJnZXQsIHByZWZpeCkKLXsKLSAgICByZXR1cm4gdGFyZ2V0Lmlu
ZGV4T2YocHJlZml4KSA9PT0gMDsKLX0KLQotdmFyIGZpbGVTeXN0ZW1TaXplID0gMTAyNDsKLXZh
ciBmaWxlTmFtZSA9ICJ3ZWJzb2NrZXQtc2VuZC1maWxlLWJsb2ItZmFpbC50eHQiOwotdmFyIG1l
c3NhZ2VUb1dyaXRlID0gIlRoaXMgbWVzc2FnZSBzaG91bGRuJ3QgYmUgc2VudC4iOwotCi1mdW5j
dGlvbiBydW5UZXN0KCkKLXsKLSAgICBpZiAoIXdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3Rl
bSkgewotICAgICAgICB0ZXN0RmFpbGVkKCJ3aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0g
aXMgbm90IGF2YWlsYWJsZS4iKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICB3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShURU1QT1JBUlksIGZp
bGVTeXN0ZW1TaXplLCBkaWRHZXRGaWxlU3lzdGVtLCBkaWRGYWlsKTsKLX0KLQotZnVuY3Rpb24g
ZGlkR2V0RmlsZVN5c3RlbShmaWxlU3lzdGVtKQotewotICAgIGRlYnVnKCJHb3QgRmlsZVN5c3Rl
bSBvYmplY3QuIik7Ci0gICAgZmlsZVN5c3RlbS5yb290LmdldEZpbGUoZmlsZU5hbWUsIHtjcmVh
dGU6IHRydWV9LCBkaWRDcmVhdGVGaWxlLCBkaWRGYWlsKTsKLX0KLQotdmFyIGZpbGVFbnRyeTsK
LQotZnVuY3Rpb24gZGlkQ3JlYXRlRmlsZShlbnRyeSkKLXsKLSAgICBkZWJ1ZygiRmlsZSBjcmVh
dGVkLiIpOwotICAgIGZpbGVFbnRyeSA9IGVudHJ5OwotICAgIHNob3VsZEJlVHJ1ZSgiZmlsZUVu
dHJ5LmlzRmlsZSIpOwotICAgIGZpbGVFbnRyeS5jcmVhdGVXcml0ZXIoZGlkR2V0RmlsZVdyaXRl
ciwgZGlkRmFpbCk7Ci19Ci0KLWZ1bmN0aW9uIGRpZEdldEZpbGVXcml0ZXIod3JpdGVyKQotewot
ICAgIHdyaXRlci50cnVuY2F0ZSgwKTsKLSAgICB3cml0ZXIub25lcnJvciA9IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRlc3RGYWlsZWQoIkZpbGVXcml0ZXIgb3BlcmF0aW9uIGZhaWxlZC4i
KTsKLSAgICAgICAgZW5kVGVzdCgpOwotICAgIH07Ci0gICAgd3JpdGVyLm9ud3JpdGUgPSBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICB2YXIgYnVpbGRlciA9IG5ldyBXZWJLaXRCbG9iQnVpbGRl
cigpOwotICAgICAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlVG9Xcml0ZSk7Ci0gICAgICAgIHdy
aXRlci53cml0ZShidWlsZGVyLmdldEJsb2IoKSk7Ci0gICAgICAgIHdyaXRlci5vbndyaXRlID0g
ZGlkV3JpdGVGaWxlOwotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIGRpZFdyaXRlRmlsZSgpCi17Ci0g
ICAgZGVidWcoIldyb3RlIHRvIGZpbGUuIik7Ci0gICAgZmlsZUVudHJ5LmZpbGUoZGlkR2V0Rmls
ZSwgZGlkRmFpbCk7Ci19Ci0KLXZhciBmaWxlT2JqZWN0OwotCi1mdW5jdGlvbiBkaWRHZXRGaWxl
KGZpbGUpCi17Ci0gICAgZGVidWcoIkdvdCBGaWxlIG9iamVjdC4iKTsKLSAgICBmaWxlT2JqZWN0
ID0gZmlsZTsKLQotICAgIC8vIERlbGV0ZSB0aGUgZmlsZSBvYmplY3QgYmVmb3JlIGl0IGlzIHJl
YWQuIFRoaXMgc2hvdWxkIGNhdXNlIHRoZSBzdWJzZXF1ZW50IHJlYWQgb3BlcmF0aW9uCi0gICAg
Ly8gdG8gZmFpbCByZWxpYWJseS4KLSAgICBmaWxlRW50cnkucmVtb3ZlKGRpZFJlbW92ZUZpbGUs
IGRpZEZhaWwpOwotfQotCi1mdW5jdGlvbiBkaWRSZW1vdmVGaWxlKCkKLXsKLSAgICBkZWJ1Zygi
RmlsZSBkZWxldGVkLiIpOwotICAgIGZpbGVFbnRyeSA9IG51bGw7IC8vIFRvIHByZXZlbnQgdGhl
IGZpbGUgZnJvbSBnZXR0aW5nIGRlbGV0ZWQgYWdhaW4uCi0gICAgdmFyIHdzID0gbmV3IFdlYlNv
Y2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvIik7Ci0g
ICAgd3Mub25vcGVuID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgd3Muc2VuZChmaWxlT2Jq
ZWN0KTsgLy8gVGhpcyBvcGVyYXRpb24gc2hvdWxkIGZhaWwgYW5kIHRoZSBjb25uZWN0aW9uIHNo
b3VsZCBiZSBhYm9ydGVkLgotICAgIH07Ci0gICAgd3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50
KQotICAgIHsKLSAgICAgICAgY2xvc2VFdmVudCA9IGV2ZW50OwotICAgICAgICBzaG91bGRCZUZh
bHNlKCJjbG9zZUV2ZW50Lndhc0NsZWFuIik7Ci0gICAgICAgIGVuZFRlc3QoKTsKLSAgICB9Owot
fQotCi1mdW5jdGlvbiBkaWRGYWlsKGZpbGVFcnJvcikKLXsKLSAgICB0ZXN0RmFpbGVkKCJGaWxl
U3lzdGVtIEFQSSBvcGVyYXRpb24gZmFpbGVkOiBlcnJvciBjb2RlID0gIiArIGZpbGVFcnJvci5j
b2RlKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGVuZFRlc3QoKQotewotICAgIGlm
IChmaWxlRW50cnkpIHsKLSAgICAgICAgZGVidWcoIkRlbGV0aW5nIHRoZSBmaWxlLiIpOwotICAg
ICAgICBmaWxlRW50cnkucmVtb3ZlKGZpbmlzaEpTVGVzdCwgZmluaXNoSlNUZXN0KTsKLSAgICB9
IGVsc2UKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLXJ1blRlc3QoKTsKLQotdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwNjRjYjY3MDM2NGExYTZjZDI5NWNjMGJiNDU0NGNlNzg1MzM1MDdjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2IuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZGVzY3JpcHRpb24oIldlYlNvY2tldDog
U2VuZCBhIEZpbGUuIik7Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJp
ZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7
Ci0KLWZ1bmN0aW9uIHN0YXJ0c1dpdGgodGFyZ2V0LCBwcmVmaXgpCi17Ci0gICAgcmV0dXJuIHRh
cmdldC5pbmRleE9mKHByZWZpeCkgPT09IDA7Ci19Ci0KLXZhciBmaWxlU3lzdGVtU2l6ZSA9IDEw
MjQ7Ci12YXIgZmlsZU5hbWUgPSAid2Vic29ja2V0LXNlbmQtZmlsZS1ibG9iLnR4dCI7Ci12YXIg
bWVzc2FnZVRvV3JpdGUgPSAiSGVsbG8sIHdvcmxkISI7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIGlmICghd2luZG93LndlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKSB7Ci0gICAgICAgIHRl
c3RGYWlsZWQoIndpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSBpcyBub3QgYXZhaWxhYmxl
LiIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIHdlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKFRFTVBPUkFSWSwgZmlsZVN5c3RlbVNpemUsIGRp
ZEdldEZpbGVTeXN0ZW0sIGRpZEZhaWwpOwotfQotCi1mdW5jdGlvbiBkaWRHZXRGaWxlU3lzdGVt
KGZpbGVTeXN0ZW0pCi17Ci0gICAgZGVidWcoIkdvdCBGaWxlU3lzdGVtIG9iamVjdC4iKTsKLSAg
ICBmaWxlU3lzdGVtLnJvb3QuZ2V0RmlsZShmaWxlTmFtZSwge2NyZWF0ZTogdHJ1ZX0sIGRpZENy
ZWF0ZUZpbGUsIGRpZEZhaWwpOwotfQotCi12YXIgZmlsZUVudHJ5OwotCi1mdW5jdGlvbiBkaWRD
cmVhdGVGaWxlKGVudHJ5KQotewotICAgIGRlYnVnKCJGaWxlIGNyZWF0ZWQuIik7Ci0gICAgZmls
ZUVudHJ5ID0gZW50cnk7Ci0gICAgc2hvdWxkQmVUcnVlKCJmaWxlRW50cnkuaXNGaWxlIik7Ci0g
ICAgZmlsZUVudHJ5LmNyZWF0ZVdyaXRlcihkaWRHZXRGaWxlV3JpdGVyLCBkaWRGYWlsKTsKLX0K
LQotZnVuY3Rpb24gZGlkR2V0RmlsZVdyaXRlcih3cml0ZXIpCi17Ci0gICAgd3JpdGVyLnRydW5j
YXRlKDApOwotICAgIHdyaXRlci5vbmVycm9yID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dGVzdEZhaWxlZCgiRmlsZVdyaXRlciBvcGVyYXRpb24gZmFpbGVkLiIpOwotICAgICAgICBlbmRU
ZXN0KCk7Ci0gICAgfTsKLSAgICB3cml0ZXIub253cml0ZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHZhciBidWlsZGVyID0gbmV3IFdlYktpdEJsb2JCdWlsZGVyKCk7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKG1lc3NhZ2VUb1dyaXRlKTsKLSAgICAgICAgd3JpdGVyLndyaXRlKGJ1aWxk
ZXIuZ2V0QmxvYigpKTsKLSAgICAgICAgd3JpdGVyLm9ud3JpdGUgPSBkaWRXcml0ZUZpbGU7Ci0g
ICAgfTsKLX0KLQotZnVuY3Rpb24gZGlkV3JpdGVGaWxlKCkKLXsKLSAgICBkZWJ1ZygiV3JvdGUg
dG8gZmlsZS4iKTsKLSAgICBmaWxlRW50cnkuZmlsZShkaWRHZXRGaWxlLCBkaWRGYWlsKTsKLX0K
LQotdmFyIGNsb3NlRXZlbnQ7Ci0KLWZ1bmN0aW9uIGRpZEdldEZpbGUoZmlsZSkKLXsKLSAgICBk
ZWJ1ZygiR290IEZpbGUgb2JqZWN0LiIpOwotICAgIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndz
Oi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJsb2IiKTsK
LSAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB3cy5zZW5kKGZpbGUp
OwotICAgIH07Ci0gICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAg
ICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIGlmIChzdGFydHNXaXRoKG1l
c3NhZ2UsICJQQVNTIikpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOwotICAgIH07Ci0gICAgd3Mu
b25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgY2xvc2VFdmVudCA9IGV2
ZW50OwotICAgICAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKLSAgICAg
ICAgZW5kVGVzdCgpOwotICAgIH07Ci19Ci0KLWZ1bmN0aW9uIGRpZEZhaWwoZmlsZUVycm9yKQot
ewotICAgIHRlc3RGYWlsZWQoIkZpbGVTeXN0ZW0gQVBJIG9wZXJhdGlvbiBmYWlsZWQ6IGVycm9y
IGNvZGUgPSAiICsgZmlsZUVycm9yLmNvZGUpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rp
b24gZW5kVGVzdCgpCi17Ci0gICAgaWYgKGZpbGVFbnRyeSkgewotICAgICAgICBkZWJ1ZygiRGVs
ZXRpbmcgdGhlIGZpbGUuIik7Ci0gICAgICAgIGZpbGVFbnRyeS5yZW1vdmUoZmluaXNoSlNUZXN0
LCBmaW5pc2hKU1Rlc3QpOwotICAgIH0gZWxzZQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLX0K
LQotcnVuVGVzdCgpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iX3dzaC5weSBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJs
b2Jfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWE0NDA0NzFhZjgzYWIy
NjI4Njc1MWMzZTE4ODgyZjQ4NGRiNzhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvc2VuZC1maWxlLWJsb2Jfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IG1zZ3V0aWwKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcyAjIEFsd2F5cyBhY2NlcHQuCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBleHBlY3RlZF9tZXNzYWdlcyA9IFsnSGVsbG8sIHdv
cmxkISddCi0KLSAgICBmb3IgdGVzdF9udW1iZXIsIGV4cGVjdGVkX21lc3NhZ2UgaW4gZW51bWVy
YXRlKGV4cGVjdGVkX21lc3NhZ2VzKToKLSAgICAgICAgIyBGSVhNRTogVXNlIGJldHRlciBBUEku
Ci0gICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluYWwsIHVudXNlZF9yZXNlcnZlZDEsIHVudXNl
ZF9yZXNlcnZlZDIsIHVudXNlZF9yZXNlcnZlZDMgPSByZXF1ZXN0LndzX3N0cmVhbS5fcmVjZWl2
ZV9mcmFtZSgpCi0gICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0JJTkFSWSBhbmQg
cGF5bG9hZCA9PSBleHBlY3RlZF9tZXNzYWdlIGFuZCBmaW5hbDoKLSAgICAgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdQQVNTOiBNZXNzYWdlICMlZC4nICUgdGVzdF9udW1i
ZXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnRkFJTDogTWVzc2FnZSAjJWQ6IFJlY2VpdmVkIHVuZXhwZWN0ZWQgZnJhbWU6IG9wY29k
ZSA9ICVyLCBwYXlsb2FkID0gJXIsIGZpbmFsID0gJXInICUgKHRlc3RfbnVtYmVyLCBvcGNvZGUs
IHBheWxvYWQsIGZpbmFsKSkKLQotCi1kZWYgYWxsX2Rpc3RpbmN0X2J5dGVzKCk6Ci0gICAgcmV0
dXJuICcnLmpvaW4oW2NocihpKSBmb3IgaSBpbiB4cmFuZ2UoMjU2KV0pCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3Vy
Y2VzL3NlbmQtYmxvYi5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvc2VuZC1ibG9iLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjZWEwNTAzYTA5NjAyMzUyZjM5MzE5MDI2Mzc5OTgyNTEwMzExM2JmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvc2VuZC1ibG9i
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotZnVuY3Rpb24gc3RhcnRzV2l0aCh0
YXJnZXQsIHByZWZpeCkKLXsKLSAgICByZXR1cm4gdGFyZ2V0LmluZGV4T2YocHJlZml4KSA9PT0g
MDsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQmxvYkNvbnRhaW5pbmdIZWxsb1dvcmxkKCkKLXsKLSAg
ICB2YXIgYnVpbGRlciA9IG5ldyBXZWJLaXRCbG9iQnVpbGRlcigpOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKCJIZWxsbywgd29ybGQhIik7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0QmxvYigpOwotfQot
Ci1mdW5jdGlvbiBjcmVhdGVFbXB0eUJsb2IoKQotewotICAgIHZhciBidWlsZGVyID0gbmV3IFdl
YktpdEJsb2JCdWlsZGVyKCk7Ci0gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0QmxvYigpOwotfQotCi1m
dW5jdGlvbiBjcmVhdGVCbG9iQ29udGFpbmluZ0FsbERpc3RpbmN0Qnl0ZXMoKQotewotICAgIHZh
ciBhcnJheSA9IG5ldyBVaW50OEFycmF5KDI1Nik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAy
NTY7ICsraSkKLSAgICAgICAgYXJyYXlbaV0gPSBpOwotICAgIHZhciBidWlsZGVyID0gbmV3IFdl
YktpdEJsb2JCdWlsZGVyKCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoYXJyYXkuYnVmZmVyKTsKLSAg
ICByZXR1cm4gYnVpbGRlci5nZXRCbG9iKCk7Ci19Ci0KLXZhciB1cmwgPSAid3M6Ly8xMjcuMC4w
LjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3Jlc291cmNlcy9zZW5kLWJsb2Ii
OwotdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwotCi13cy5vbm9wZW4gPSBmdW5jdGlvbigp
Ci17Ci0gICAgd3Muc2VuZChjcmVhdGVCbG9iQ29udGFpbmluZ0hlbGxvV29ybGQoKSk7Ci0gICAg
d3Muc2VuZChjcmVhdGVFbXB0eUJsb2IoKSk7Ci0gICAgd3Muc2VuZChjcmVhdGVCbG9iQ29udGFp
bmluZ0FsbERpc3RpbmN0Qnl0ZXMoKSk7Ci19OwotCi13cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkKLXsKLSAgICBwb3N0TWVzc2FnZShldmVudC5kYXRhKTsKLX07Ci0KLXdzLm9uY2xvc2Ug
PSBmdW5jdGlvbihjbG9zZUV2ZW50KQotewotICAgIGlmIChjbG9zZUV2ZW50Lndhc0NsZWFuID09
PSB0cnVlKQotICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogY2xvc2VFdmVudC53YXNDbGVhbiBp
cyB0cnVlLiIpOwotICAgIGVsc2UKLSAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IGNsb3NlRXZl
bnQud2FzQ2xlYW4gc2hvdWxkIGJlIHRydWUsIGJ1dCB3YXM6ICIgKyBjbG9zZUV2ZW50Lndhc0Ns
ZWFuKTsKLSAgICBwb3N0TWVzc2FnZSgiRE9ORSIpOwotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvc2Vu
ZC1ibG9iX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvd29ya2Vycy9yZXNvdXJjZXMvc2VuZC1ibG9iX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDI0ZTNmNGQwNzk0NWM5MmNhYWJkYzAzN2VjNTAwODI0YTQyYTFhMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL3NlbmQtYmxv
Yl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAot
Ci0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNz
ICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpOgotICAgIGV4cGVjdGVkX21lc3NhZ2VzID0gWydIZWxsbywgd29ybGQhJywgJycsIGFsbF9k
aXN0aW5jdF9ieXRlcygpXQotCi0gICAgZm9yIHRlc3RfbnVtYmVyLCBleHBlY3RlZF9tZXNzYWdl
IGluIGVudW1lcmF0ZShleHBlY3RlZF9tZXNzYWdlcyk6Ci0gICAgICAgIG1lc3NhZ2UgPSBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KQotICAgICAgICBpZiB0eXBlKG1lc3NhZ2UpID09
IHN0ciBhbmQgbWVzc2FnZSA9PSBleHBlY3RlZF9tZXNzYWdlOgotICAgICAgICAgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1BBU1M6IE1lc3NhZ2UgIyVkLicgJSB0ZXN0X251bWJl
cikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdGQUlMOiBNZXNzYWdlICMlZDogUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAlcicg
JSAodGVzdF9udW1iZXIsIG1lc3NhZ2UpKQotCi0KLWRlZiBhbGxfZGlzdGluY3RfYnl0ZXMoKToK
LSAgICByZXR1cm4gJycuam9pbihbY2hyKGkpIGZvciBpIGluIHhyYW5nZSgyNTYpXSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vy
cy9zZW5kLWJsb2ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS93b3JrZXJzL3NlbmQtYmxvYi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYzM2JiN2UzOWZmNTU1NmEzM2ExMTQ4ZjUxNDgwOWNlNTRjZjY5
NjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL3NlbmQtYmxvYi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1XZWJTb2NrZXQ6IFNl
bmQgQmxvYnMgaW4gV2ViIFdvcmtlcnMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
UEFTUyBQQVNTOiBNZXNzYWdlICMwLgotUEFTUyBQQVNTOiBNZXNzYWdlICMxLgotUEFTUyBQQVNT
OiBNZXNzYWdlICMyLgotUEFTUyBQQVNTOiBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUuCi1E
T05FCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93
b3JrZXJzL3NlbmQtYmxvYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS93b3JrZXJzL3NlbmQtYmxvYi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxNTc0NmViMjdmNDcxYjIwNGFlZTYzYTliNTIxNjA1MTA4Y2E0M2I4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9zZW5kLWJsb2IuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1kZXNjcmlwdGlvbigiV2ViU29ja2V0
OiBTZW5kIEJsb2JzIGluIFdlYiBXb3JrZXJzLiIpOwotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3Rv
Y29sRW5hYmxlZCIsIDApOwotCi1mdW5jdGlvbiBzdGFydHNXaXRoKHN0ciwgcHJlZml4KQotewot
ICAgIHJldHVybiBzdHIuaW5kZXhPZihwcmVmaXgpID09IDA7Ci19Ci0KLXZhciB3b3JrZXIgPSBu
ZXcgV29ya2VyKCJyZXNvdXJjZXMvc2VuZC1ibG9iLmpzIik7Ci13b3JrZXIub25tZXNzYWdlID0g
ZnVuY3Rpb24gKGV2ZW50KQotewotICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKLSAgICBp
ZiAoc3RhcnRzV2l0aChtZXNzYWdlLCAiUEFTUyIpKQotICAgICAgICB0ZXN0UGFzc2VkKG1lc3Nh
Z2UpOwotICAgIGVsc2UgaWYgKHN0YXJ0c1dpdGgobWVzc2FnZSwgIkZBSUwiKSkKLSAgICAgICAg
dGVzdEZhaWxlZChtZXNzYWdlKQotICAgIGVsc2UKLSAgICAgICAgZGVidWcobWVzc2FnZSk7Ci0g
ICAgaWYgKG1lc3NhZ2UgPT09ICJET05FIikKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci19Owot
Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDcxZWIx
YmQ4ZTJkMmY5NTk1YTg1NTI3NTUzODFjYTlmYTRlZDFhODIuLmU5YjZmMWIwMTAwMTViNWQ3OWZk
NWY2NmY2ODlkZTgzM2ViYTU0NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0zNjYs
OCArMzY2LDYgQEAgZmFzdC9maWxlc3lzdGVtCiBodHRwL3Rlc3RzL2ZpbGVzeXN0ZW0KIGh0dHAv
dGVzdHMvbG9jYWwvZmlsZWFwaQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFt
ZS1mcm9tLXJlbW90ZS5odG1sCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQt
ZmlsZS1ibG9iLmh0bWwKLWh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxl
LWJsb2ItZmFpbC5odG1sCiAKICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgogZmFzdC9pbWFnZXMv
d2VicC1pbWFnZS1kZWNvZGluZy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDk2
OTM5MTkwMTU2OWI5MTA2Zjg0M2JjYzc1M2VmMDE5NjAwNDNiYWQuLjE1NmRiY2NhY2Q3OTZlOWMz
ZTMyZDkwZmVhZTNjZDFiYmY1Y2Y1ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0y
NzcsOCArMjc3LDYgQEAgaHR0cC90ZXN0cy9tZWRpYS92aWRlby1idWZmZXJlZC5odG1sCiBmYXN0
L2ZpbGVzeXN0ZW0KIGh0dHAvdGVzdHMvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9m
aWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJlbW90ZS5odG1sCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLmh0bWwKLWh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvc2VuZC1maWxlLWJsb2ItZmFpbC5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ2MjIzCiAjIFRoZSBXZWJLaXQgcGx1Z2luIGltcGxlbWVudGF0
aW9uIGRvZXMgbm90IHN1cHBvcnQgaWZyYW1lIHNoaW1zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
aW5kZXggOWJjZGNkMmM4OWE5MDQxMjE4ZThkMGY4YmYwNjZjMWJmMGI2M2YzMC4uMzRhNGNmZDIy
NzcwOTRkNjlmYmExYjEyMDdmNzU1NzUxNzkyMmJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CkBAIC05OSw4ICs5OSw2IEBAIHN2Zy93ZWJhcmNoaXZlCiBmYXN0L2ZpbGVzeXN0ZW0KIGh0dHAv
dGVzdHMvZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1m
cm9tLXJlbW90ZS5odG1sCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtZmls
ZS1ibG9iLmh0bWwKLWh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1maWxlLWJs
b2ItZmFpbC5odG1sCiAKICMgRU5BQkxFKFFVT1RBKSBpcyBkaXNhYmxlZC4KIHN0b3JhZ2Uvc3Rv
cmFnZWluZm8tcXVlcnktdXNhZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAz
ZDNiNjRmOTA3Njc1MWJjYjQwYmQ3YWY1MDNlNWYxM2Q2OGQ2OGY1Li4xZTRjYzhjYWE3MGQ5MWNi
ODY5Y2IyNzBiMzE4YzY1YzM3NjA1ZTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
MTIwMiw4ICsxMjAyLDYgQEAgZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNlci1xdWlya3MuaHRt
bAogZmFzdC9maWxlc3lzdGVtCiBodHRwL3Rlc3RzL2ZpbGVzeXN0ZW0KIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUtZnJvbS1yZW1vdGUuaHRtbAotaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zZW5kLWZpbGUtYmxvYi5odG1sCi1odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtZmlsZS1ibG9iLWZhaWwuaHRtbAogCiAjIExheW91dFRlc3RDb250
cm9sbGVyOjpub2Rlc0Zyb21SZWN0IGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LWJhc2ljLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjJhYTFhNDdhMjczMzkyYTg2MjNiOGNi
NzNlMGNjNTAzNDQxNDEwLi43YjNlMGQzNGUwNGZhNDgyODU5OGUxNTEwZGMwYjkyNDUwMmQzMzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTEtMDktMDIgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHI5NDM5OS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
OTQzOTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
NDcxCisKKyAgICAgICAgQnJva2UgTGVvcGFyZCBidWlsZCAoUmVxdWVzdGVkIGJ5IHl1dGFrIG9u
ICN3ZWJraXQpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHA6Cisg
ICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNv
Y2tldC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmlkbDoKKyAgICAgICAgKiB3
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbDo6c2VuZCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Lmg6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oOgorCisyMDExLTA5LTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTQzOTMuCiAgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0MzkzCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQ3MApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwCmluZGV4IDRmOTJmNDA3YmU4
NTkyOTJlMmUxOGRiMmY5NWVjOWY0OGVlMjVlOGQuLjZiMzU5OGIyZGZmYWFiMzcyODY1MWYwYjVj
NjYxZGUwNjEwMjZjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViU29ja2V0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YlNvY2tldEN1c3RvbS5jcHAKQEAgLTM2LDkgKzM2LDggQEAKICNpbmNsdWRlICJKU1dlYlNvY2tl
dC5oIgogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkpTQmxvYi5oIgot
I2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRl
ICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKICNpbmNsdWRlICJX
ZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgpAQCAtODksMzAg
Kzg4LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYlNvY2tldENvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU1dlYlNvY2tldChFeGVjU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKENSRUFURV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3Qo
KSwgV2ViU29ja2V0LCB3ZWJTb2NrZXQuZ2V0KCkpKTsKIH0KIAotSlNWYWx1ZSBKU1dlYlNvY2tl
dDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50
KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4
ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKLQotICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4
ZWMtPmFyZ3VtZW50KDApOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgcmVz
dWx0OwotICAgIGlmIChtZXNzYWdlLmluaGVyaXRzKCZKU0Jsb2I6OnNfaW5mbykpCi0gICAgICAg
IHJlc3VsdCA9IGltcGwoKS0+c2VuZCh0b0Jsb2IobWVzc2FnZSksIGVjKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgU3RyaW5nIHN0cmluZ01lc3NhZ2UgPSB1c3RyaW5nVG9TdHJpbmcobWVzc2FnZS50
b1N0cmluZyhleGVjKSk7Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICByZXN1bHQgPSBpbXBsKCktPnNl
bmQoc3RyaW5nTWVzc2FnZSwgZWMpOwotICAgIH0KLSAgICBpZiAoZWMpIHsKLSAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGpzQm9vbGVhbihyZXN1bHQpOwotfQotCiBKU1ZhbHVlIEpTV2Vi
U29ja2V0OjpjbG9zZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBpbXBsZW1lbnQgW0NsYW1wXSBmb3IgSURMIGJpbmRpbmcgY29kZSBnZW5lcmF0b3IsIGFuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tl
dEN1c3RvbS5jcHAKaW5kZXggZDIzNzA0NzczODk4MjYxY2M1MDA0NjIzYmI2NTY4YmZlMjYxNGFi
YS4uZDdkZmExMDlmNTY1YmFhYzJkNjFmZjFiY2JjYTRkZTI3MDJlZWQxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20u
Y3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4QmxvYi5oIgogI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIldl
YlNvY2tldC5oIgpAQCAtMTEyLDM0ICsxMTEsNiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhX
ZWJTb2NrZXQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwog
ICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhX
ZWJTb2NrZXQ6OnNlbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAg
IElOQ19TVEFUUygiRE9NLldlYlNvY2tldC5zZW5kKCkiKTsKLQotICAgIGlmICghYXJncy5MZW5n
dGgoKSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwg
VjhQcm94eTo6U3ludGF4RXJyb3IpOwotCi0gICAgV2ViU29ja2V0KiB3ZWJTb2NrZXQgPSBWOFdl
YlNvY2tldDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1lc3NhZ2UgPSBhcmdzWzBdOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJv
b2wgcmVzdWx0OwotICAgIGlmIChWOEJsb2I6Okhhc0luc3RhbmNlKG1lc3NhZ2UpKSB7Ci0gICAg
ICAgIEJsb2IqIGJsb2IgPSBWOEJsb2I6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QobWVzc2FnZSkpOwotICAgICAgICBBU1NFUlQoYmxvYik7Ci0gICAgICAgIHJlc3VsdCA9
IHdlYlNvY2tldC0+c2VuZChibG9iLCBlYyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdjg6OlRy
eUNhdGNoIHRyeUNhdGNoOwotICAgICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHN0cmluZ01l
c3NhZ2UgPSBtZXNzYWdlLT5Ub1N0cmluZygpOwotICAgICAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1
Z2h0KCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih0cnlDYXRjaC5FeGNlcHRpb24o
KSk7Ci0gICAgICAgIHJlc3VsdCA9IHdlYlNvY2tldC0+c2VuZCh0b1dlYkNvcmVTdHJpbmcobWVz
c2FnZSksIGVjKTsKLSAgICB9Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihlYyk7Ci0KLSAgICByZXR1cm4gdjhCb29sZWFuKHJlc3VsdCk7Ci19Ci0KIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdlYlNvY2tldDo6Y2xvc2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW1wbGVtZW50IFtDbGFtcF0gZm9y
IElETCBiaW5kaW5nIGNvZGUgZ2VuZXJhdG9yLCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCBjYTBiMzcy
YWQ5Y2YyYzAxMDdjYzg2NDgwMGEzN2U2YmQ0MjdmZjMxLi4wOWY4MWI1MDdhMTAwMWQ2ZTdlYTU5
MTcyMTE2ZWE5ZTlmZjdiZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zOSw3ICszOSw2IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQmxvYjsKIGNsYXNzIEtVUkw7CiBjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKQEAgLTU0
LDcgKzUzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgc3VicHJv
dG9jb2woKSA9IDA7IC8vIFdpbGwgYmUgYXZhaWxhYmxlIGFmdGVyIGRpZENvbm5lY3QoKSBjYWxs
YmFjayBpcyBpbnZva2VkLgogICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IEJsb2ImKSA9IDA7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pID0gMDsKICAg
ICAvLyBMb2cgdGhlIHJlYXNvbiB0ZXh0IGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4gV2lsbCBj
YWxsIGRpZENsb3NlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5k
ZXggZTc3MWI3OTMyYjMxODJkNWIyMjA4ZTNkYjI0ODI3NGQwYmUyNzkwMy4uODhmMmVlZGQ4ZmIy
NDBhYmM2YTFlMThjMzQ4ZGYxYTU5ZjBlOWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcApAQCAtMjY1LDI0ICsyNjUsNiBAQCBib29sIFdlYlNvY2tldDo6c2VuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBtX2No
YW5uZWwtPnNlbmQobWVzc2FnZSk7CiB9CiAKLWJvb2wgV2ViU29ja2V0OjpzZW5kKEJsb2IqIGJp
bmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIExPRyhOZXR3b3JrLCAiV2ViU29j
a2V0ICVwIHNlbmQgYmxvYiAlcyIsIHRoaXMsIGJpbmFyeURhdGEtPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgIEFTU0VSVChiaW5hcnlEYXRhKTsKLSAgICBpZiAobV91c2VIaXhp
ZTc2UHJvdG9jb2wpCi0gICAgICAgIHJldHVybiBzZW5kKCJbb2JqZWN0IEJsb2JdIiwgZWMpOwot
ICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NU
QVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobV9zdGF0ZSA9
PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKSB7Ci0gICAgICAgIG1fYnVmZmVyZWRBbW91
bnRBZnRlckNsb3NlICs9IGJpbmFyeURhdGEtPnNpemUoKSArIGdldEZyYW1pbmdPdmVyaGVhZChi
aW5hcnlEYXRhLT5zaXplKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIEFT
U0VSVChtX2NoYW5uZWwpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmJpbmFyeURhdGEp
OwotfQotCiB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoY29kZSA9PSBXZWJTb2NrZXRDaGFu
bmVsOjpDbG9zZUV2ZW50Q29kZU5vdFNwZWNpZmllZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCmluZGV4IGNiYjhkNjAzZWY4Nzg3YmY5ZDY1NmM2NzIzMDU3NjJjN2ZjYWQ5ZGIu
LjA0YzI3YzM1Y2ZkNDAyNjM2OTFiNWZjYzk3NjMyNTU3OWE1NWUxOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNDYsNyArNDYsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEJsb2I7CiBjbGFzcyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsK
IAogY2xhc3MgV2ViU29ja2V0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0PiwgcHVibGlj
IEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCB7CkBAIC02OCw3ICs2Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbm5lY3Qo
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm90b2NvbHMsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICBib29sIHNlbmQoQmxvYiosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBFeGNlcHRpb25Db2Rl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAppbmRleCAwZGMyM2U3
ZjdhMjgxYjg5ZDA0OWEzZTBkMTMxMjkxNDhjZGY5Yjg1Li45MzZlNjAzZjM2NTc2MzA0YzRmYjY5
NWYyMWRjOGQxYmI5MjA4ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsCkBAIC02MywxNSArNjMsNyBAQCBtb2R1bGUgd2Vic29ja2V0cyB7CiAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyBiaW5hcnlUeXBl
CiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgLy8g
RklYTUU6IFVzZSBvdmVybG9hZGluZyBwcm92aWRlZCBieSBvdXIgSURMIGNvZGUgZ2VuZXJhdG9y
LgotICAgICAgICAvLyBBY2NvcmRpbmcgdG8gV2ViIElETCBzcGVjaWZpY2F0aW9uLCBvdmVybG9h
ZGVkIGZ1bmN0aW9uIHdpdGggRE9NU3RyaW5nIGFyZ3VtZW50Ci0gICAgICAgIC8vIHNob3VsZCBh
Y2NlcHQgYW55dGhpbmcgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIChpbmNsdWRp
bmcgbnVtYmVycywKLSAgICAgICAgLy8gYm9vbGVhbnMsIG51bGwsIHVuZGVmaW5lZCBhbmQgb2Jq
ZWN0cyBleGNlcHQgQmxvYikuIEN1cnJlbnQgY29kZSBnZW5lcmF0b3IgZG9lcwotICAgICAgICAv
LyBub3QgaGFuZGxlIHRoaXMgcnVsZSBjb3JyZWN0bHkuCi0gICAgICAgIC8vIFtSZXF1aXJlc0Fs
bEFyZ3VtZW50c10gYm9vbGVhbiBzZW5kKGluIEJsb2IgZGF0YSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIC8vIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gYm9vbGVhbiBzZW5kKGluIERP
TVN0cmluZyBkYXRhKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gYm9v
bGVhbiBzZW5kKGluIERPTVN0cmluZyBkYXRhKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQorICAg
ICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIGJvb2xlYW4gc2VuZChpbiBET01TdHJpbmcgZGF0
YSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYW5k
IGFwcGx5IFtDbGFtcF0gYXR0cmlidXRlIGluc3RlYWQgb2YgW0N1c3RvbV0uCiAgICAgICAgIFtD
dXN0b21dIHZvaWQgY2xvc2UoaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBjb2RlLCBpbiBb
T3B0aW9uYWxdIERPTVN0cmluZyByZWFzb24pIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBhZTVj
MWFjOGRjOWQ1MzM5NDM1ODVmMWRkNTQ4N2U2YjJkMmQ4ZDU5Li4yMDA3ZTZkYjgzODVmYTZmMzY2
ZGFiYjI0ZjIxNzc1ZGEzNGRlOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTE3MCwxNCArMTcwLDYgQEAgYm9vbCBXZWJTb2NrZXRD
aGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IEJsb2ImIGJpbmFyeURhdGEpCi17
Ci0gICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIHNlbmQgYmxvYiAlcyIsIHRo
aXMsIGJpbmFyeURhdGEudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgQVNTRVJU
KCFtX3VzZUhpeGllNzZQcm90b2NvbCk7Ci0gICAgZW5xdWV1ZUJsb2JGcmFtZShPcENvZGVCaW5h
cnksIGJpbmFyeURhdGEpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB1bnNpZ25lZCBsb25nIFdl
YlNvY2tldENoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsKICAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldENoYW5uZWwgJXAgYnVmZmVyZWRBbW91bnQiLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggM2U4OWU4NWM5OGUx
MTA2YTMzYjdiNTNjNDU5NzE0ZjkzMzgzNDg3ZC4uOTcwMzE2MjNjYzI2NmU2ZGFhZGU3MjUxYmRl
MTE1NzYxMjNiNjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmgKQEAgLTY2LDcgKzY2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb25u
ZWN0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKICAgICB2aXJ0dWFsIFN0
cmluZyBzdWJwcm90b2NvbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7Ci0gICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgQmxvYiYpOwogICAgIHZpcnR1
YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOyAvLyBTdGFydCBjbG9zaW5n
IGhhbmRzaGFrZS4KICAgICB2aXJ0dWFsIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDYwNDY0NWFkNjY0ZjdmZjBhNDIyNTlh
MTUwYTQ5Zjg1MjdjYjM5YzMuLjQ0OTg4ZjY1NjJiMTI0MjFhMGY0MDA3MDRlYmMwNzYwZWJiMDI0
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNp
bmNsdWRlICJXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgogCi0jaW5jbHVkZSAi
QmxvYi5oIgogI2luY2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtODgsMTMg
Kzg3LDYgQEAgYm9vbCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIG1fYnJpZGdlLT5zZW5kKG1lc3NhZ2UpOwog
fQogCi1ib29sIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IEJs
b2ImIGJpbmFyeURhdGEpCi17Ci0gICAgaWYgKCFtX2JyaWRnZSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBtX2JyaWRnZS0+c2VuZChiaW5hcnlEYXRhKTsKLX0KLQogdW5zaWdu
ZWQgbG9uZyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6YnVmZmVyZWRBbW91bnQo
KSBjb25zdAogewogICAgIGlmICghbV9icmlkZ2UpCkBAIC0xODAsMTUgKzE3Miw2IEBAIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OnNlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250
ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZFNlbmQsIG1fd29ya2VyQ2xp
ZW50V3JhcHBlciwgc2VudCksIG1fdGFza01vZGUpOwogfQogCi12b2lkIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpzZW5kKGNvbnN0IEJsb2ImIGJpbmFyeURhdGEpCi17
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAoIW1fbWFpbldlYlNvY2tldENo
YW5uZWwgfHwgIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKLSAgICAgICAgcmV0dXJuOwotICAgIGJv
b2wgc2VudCA9IG1fbWFpbldlYlNvY2tldENoYW5uZWwtPnNlbmQoYmluYXJ5RGF0YSk7Ci0gICAg
bV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJh
Y2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkU2VuZCwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCBzZW50
KSwgbV90YXNrTW9kZSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRHZXRCdWZm
ZXJlZEFtb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBl
ciwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNv
bnRleHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKQEAgLTM3NSwxNiArMzU4LDYgQEAg
dm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZFNlbmQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY28KICAgICBwZWVyLT5zZW5kKG1lc3NhZ2UpOwogfQogCi12
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZEJsb2Io
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGVlciogcGVlciwgY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHR5cGUsIGxvbmcgbG9uZyBzaXplKQotewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwotICAgIEFTU0VSVChwZWVyKTsKLQotICAgIFJlZlB0cjxCbG9iPiBibG9iID0g
QmxvYjo6Y3JlYXRlKHVybCwgdHlwZSwgc2l6ZSk7Ci0gICAgcGVlci0+c2VuZCgqYmxvYik7Ci19
Ci0KIGJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFtX3dvcmtlckNsaWVudFdyYXBwZXIp
CkBAIC0zOTgsMTkgKzM3MSw2IEBAIGJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OkJyaWRnZTo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIGNsaWVu
dFdyYXBwZXIgJiYgY2xpZW50V3JhcHBlci0+c2VudCgpOwogfQogCi1ib29sIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQoY29uc3QgQmxvYiYgYmluYXJ5RGF0
YSkKLXsKLSAgICBpZiAoIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIEFTU0VSVChtX3BlZXIpOwotICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwot
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZEJsb2IsIEFsbG93
Q3Jvc3NUaHJlYWRBY2Nlc3MobV9wZWVyKSwgYmluYXJ5RGF0YS51cmwoKSwgYmluYXJ5RGF0YS50
eXBlKCksIGJpbmFyeURhdGEuc2l6ZSgpKSk7Ci0gICAgUmVmUHRyPEJyaWRnZT4gcHJvdGVjdCh0
aGlzKTsKLSAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwotICAgIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciogY2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50
V3JhcHBlci5nZXQoKTsKLSAgICByZXR1cm4gY2xpZW50V3JhcHBlciAmJiBjbGllbnRXcmFwcGVy
LT5zZW50KCk7Ci19Ci0KIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1h
aW5UaHJlYWRCdWZmZXJlZEFtb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
ZWVyKiBwZWVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgKaW5kZXggN2UyZWMxYmNkZWE2MThiMDUyNzljM2U4ODg0OTRlNTY0ZjdkMzg3NC4u
YThkMTMzZDNjZGY4MWU3MmE4N2RiNThhNjg1ZmUxYTEyMmE0YjMxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuaApAQCAtNjQsNyArNjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNv
bm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwogICAgIHZpcnR1YWwg
U3RyaW5nIHN1YnByb3RvY29sKCk7CiAgICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBCbG9iJik7CiAgICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAgICAgdmlydHVhbCB2
b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOwpAQCAtOTQsNyArOTMsNiBAQCBwcml2YXRl
OgogICAgICAgICBib29sIHVzZUhpeGllNzZQcm90b2NvbCgpOwogICAgICAgICB2b2lkIGNvbm5l
Y3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwogICAgICAgICB2b2lkIHNl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICAgICAgdm9pZCBzZW5kKGNvbnN0IEJsb2Im
KTsKICAgICAgICAgdm9pZCBidWZmZXJlZEFtb3VudCgpOwogICAgICAgICB2b2lkIGNsb3NlKGlu
dCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZmFpbChjb25zdCBT
dHJpbmcmIHJlYXNvbik7CkBAIC0xMjcsNyArMTI1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgfkJy
aWRnZSgpOwogICAgICAgICB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpOwogICAgICAgICBib29sIHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAg
ICAgICAgYm9vbCBzZW5kKGNvbnN0IEJsb2ImKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBidWZm
ZXJlZEFtb3VudCgpOwogICAgICAgICB2b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcm
IHJlYXNvbik7CiAgICAgICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7CkBAIC0x
NjMsNyArMTYwLDYgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRDb25u
ZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgcHJvdG9jb2wpOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRTZW5kKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQZWVyKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICBzdGF0
aWMgdm9pZCBtYWluVGhyZWFkU2VuZEJsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBlZXIq
LCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0eXBlLCBsb25nIGxvbmcgc2l6ZSk7CiAgICAg
c3RhdGljIHZvaWQgbWFpblRocmVhZEJ1ZmZlcmVkQW1vdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQZWVyKik7CiAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZENsb3NlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQZWVyKiwgaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKICAg
ICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkRmFpbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVl
ciosIGNvbnN0IFN0cmluZyYgcmVhc29uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>