<?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>235585</bug_id>
          
          <creation_ts>2022-01-25 07:35:09 -0800</creation_ts>
          <short_desc>Rebase WPT WebRTC tests</short_desc>
          <delta_ts>2022-02-01 07:36:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833696</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-25 07:35:09 -0800</bug_when>
    <thetext>Rebase WPT WebRTC tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833698</commentid>
    <comment_count>1</comment_count>
      <attachid>449927</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-25 07:38:26 -0800</bug_when>
    <thetext>Created attachment 449927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835960</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-01 07:36:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88327172&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449927</attachid>
            <date>2022-01-25 07:38:26 -0800</date>
            <delta_ts>2022-01-25 08:40:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235585-20220125163813.patch</filename>
            <type>text/plain</type>
            <size>260585</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWIyYWQxYmUwMmMxMDE4NTIxZmRh
NTVhNDY2ZDYyODhmMWViY2IxNS4uMGJiMDBlODM0MTI1NzNmOTBkNjE3NTgyNzUyZWE2ZjE0NGVj
MDA0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAxLTI1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWJhc2UgV1BUIFdlYlJUQyB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NTg1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogdGVzdHMtb3B0aW9ucy5qc29uOgorCiAy
MDIyLTAxLTI0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0pTQ10gRW5hYmxlIEFycmF5I2dyb3VwQnkgYW5kIEFycmF5I2dyb3VwQnlUb01hcApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZTExNTA4ZWJkN2RkNTliY2E3NDlmOGVlYTdiZGYz
YzhmNjA3OGFhNy4uNzY5ZmUxZjcyMWZjNWYyMGU0NWJkNDEyMGVhZDY1YjU2M2M5ZDY0MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlYmFzZSBXUFQg
V2ViUlRDIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzU1ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHJlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtczogUmVzeW5jZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0YzogUmVzeW5jZWQuCisKIDIwMjItMDEtMjQgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBTdXBwb3J0IGltcG9y
dCBhc3NlcnRpb24gc3ludGF4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KaW5kZXggMjM5NGUwM2IyOTM2NWI4ZDc5NzBk
M2FhZmQ0MGY0MmIyNzI5ZGVlNC4uYjA3N2UxOWU0MzhjOTdhYjMxMjdjZjdiY2UyYzZlZTUyY2E2
ZjgyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNv
dXJjZS1maWxlcy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
cmVzb3VyY2UtZmlsZXMuanNvbgpAQCAtMzgwNCw2ICszODA0LDkgQEAKICAgICAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9tYXRobWwvcmVsYXRpb25zL2h0bWw1LXRyZWUvdW5pcXVlLWlkZW50aWZp
ZXItMS1pZnJhbWUtMS5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwv
cmVsYXRpb25zL2h0bWw1LXRyZWUvdW5pcXVlLWlkZW50aWZpZXItMS1pZnJhbWUtMi5odG1sIiwK
ICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkL3N1cHBvcnQv
TWVkaWFSZWNvcmRlci1pZnJhbWUuaHRtbCIsCisgICAgICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvY3Jhc2h0ZXN0cy9lbnVtZXJhdGVEZXZpY2VzLWFmdGVyLWRp
c2NhcmQtMS5odHRwcy5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9pZnJhbWUtZW51bWVyYXRlLWNsZWFyZWQuaHRtbCIsCisgICAgICAgICJ3
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS5o
dG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYXNlc3Npb24vaGVscGVyL2Fy
dHdvcmstZ2VuZXJhdG9yLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9hbGxvd3BheW1lbnQvZWNoby1QYXltZW50UmVxdWVzdC5odG1sIiwKICAgICAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvYWxsb3dwYXltZW50cmVxdWVz
dC9lY2hvLVBheW1lbnRSZXF1ZXN0Lmh0bWwiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tZGVu
eS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tZGVueS5odHRwcy5odG1sCmluZGV4IGJlMWNhZjU0
ZDYxZDViMDAyNTNiNWZmYWM4ZjUyMDQzMWY0ZTBjOGIuLjIwNDJiMDM4YjZhNjU2YTY5YWU1ODUy
NzFmOTJkNTUxOGMwOGMyMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLWRlbnkuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL0dVTS1kZW55Lmh0dHBzLmh0bWwKQEAgLTMsOCArMyw3IEBACiA8aGVh
ZD4KICAgPHRpdGxlPmdldFVzZXJNZWRpYSgpIHRyaWdnZXJzIGVycm9yIGNhbGxiYWNrIHdoZW4g
YXV0aCBpcyBkZW5pZWQ8L3RpdGxlPgogICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkRyLiBB
LiBHb3VhaWxsYXJkIiBocmVmPSJtYWlsdG86YWdvdWFpbGxhcmRAZ21haWwuY29tIi8+Ci0gIDxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1h
aW4vZ2V0dXNlcm1lZGlhLmh0bWwjbWV0aG9kcy01Ij4KLSAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi9nZXR1c2VybWVkaWEuaHRt
bCNuYXZpZ2F0b3J1c2VybWVkaWFlcnJvcmNhbGxiYWNrIj4KKyAgPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RvbS1tZWRpYWRl
dmljZXMtZ2V0dXNlcm1lZGlhIj4KIDwvaGVhZD4KIDxib2R5PgogICA8cCBjbGFzcz0iaW5zdHJ1
Y3Rpb25zIj5XaGVuIHByb21wdGVkLCA8c3Ryb25nPnBsZWFzZSBkZW55PC9zdHJvbmc+IGFjY2Vz
cyB0bwpAQCAtMTMsMjEgKzEyLDI0IEBACiAgIDxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRoaXMg
dGVzdCBjaGVja3MgdGhhdCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkCiAgICAgd2hl
biB1c2VyIGRlbmllcyBhY2Nlc3MgdG8gdGhlIHZpZGVvIHN0cmVhbS48L3A+CiAgIDxkaXYgaWQ9
J2xvZyc+PC9kaXY+Ci0gIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgog
ICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+CiAgIDxzY3JpcHQ+Ci0gICAgdmFyIHQg
PSBhc3luY190ZXN0KCJUZXN0cyB0aGF0IHRoZSBlcnJvciBjYWxsYmFjayBpcyB0cmlnZ2VyZWQg
d2hlbiBwZXJtaXNzaW9uIGlzIGRlbmllZCIpOwotICAgIHQuc3RlcChmdW5jdGlvbigpIHsKLSAg
ICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pCi0g
ICAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCJUaGUgc3VjY2VzcyBjYWxsYmFjayBzaG91bGQgbm90IGJlIHRyaWdn
ZXJlZCBzaW5jZSBhY2Nlc3MgaXMgdG8gYmUgZGVuaWVkIik7Ci0gICAgICAgICAgdC5kb25lKCk7
Ci0gICAgICAgIH0pLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGVycm9yLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiLCAiTm90QWxsb3dlZEVy
cm9yIHJldHVybmVkIGFzIGV4cGVjdGVkIik7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhlcnJv
ci5jb25zdHJhaW50TmFtZSwgdW5kZWZpbmVkLCAiY29uc3RyYWludE5hbWUgYXR0cmlidXRlIG5v
dCBzZXQgYXMgZXhwZWN0ZWQiKTsKLSAgICAgICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSkpCi0g
ICAgfSk7Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICB0cnkgeworICAgIGF3YWl0IHNl
dE1lZGlhUGVybWlzc2lvbignZGVuaWVkJywgWydjYW1lcmEnXSk7CisgICAgYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkKKyAgfSBjYXRjaCAo
ZXJyb3IpIHsKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgiTm90QWxsb3dlZEVycm9yIiwgKCkgPT4g
eyB0aHJvdyBlcnJvciB9KTsKKyAgICBhc3NlcnRfZmFsc2UoJ2NvbnN0cmFpbnROYW1lJyBpbiBl
cnJvciwKKyAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnROYW1lIGF0dHJpYnV0ZSBub3Qgc2V0
IGFzIGV4cGVjdGVkIik7CisgICAgcmV0dXJuOworICB9OworICBhc3NlcnRfdW5yZWFjaGVkKCJU
aGUgc3VjY2VzcyBjYWxsYmFjayBzaG91bGQgbm90IGJlIHRyaWdnZXJlZCBzaW5jZSBhY2Nlc3Mg
aXMgdG8gYmUgZGVuaWVkIik7Cit9LCAiVGVzdHMgdGhhdCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMg
dHJpZ2dlcmVkIHdoZW4gcGVybWlzc2lvbiBpcyBkZW5pZWQiKTsKICAgPC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS1lbXB0eS1vcHRpb24tcGFyYW0u
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tZW1wdHktb3B0aW9uLXBhcmFtLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCAwMGE5YzZmODE1OGUxYzg0YjRlZDNhYTQ0ODk2M2MzYzMzMGMz
MDk0Li4xZTM5YTYzMDI0NTBhM2QzY2Q3ZTE0YWQyNzRhOTE4ZjcxNzQ5MGUxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL0dVTS1lbXB0eS1vcHRpb24tcGFyYW0uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvR1VNLWVtcHR5LW9wdGlvbi1wYXJhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
NiArMSw2IEBACiBEZXNjcmlwdGlvbgogCi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ2V0VXNlck1l
ZGlhIHdpdGggbm8gdmFsdWUgaW4gdGhlIG9wdGlvbnMgcGFyYW1ldGVyIHJhaXNlcyBhIE5PVF9T
VVBQT1JURURfRVJSIGV4Y2VwdGlvbi4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBnZXRVc2VyTWVk
aWEgd2l0aCBubyB2YWx1ZSBpbiB0aGUgb3B0aW9ucyBwYXJhbWV0ZXIgcmFpc2VzIGEgVHlwZUVy
cm9yIGV4Y2VwdGlvbi4KIAogCiBQQVNTIFRlc3RzIHRoYXQgZ2V0VXNlck1lZGlhIGlzIHJlamVj
dGVkIHdpdGggYSBUeXBlRXJyb3Igd2hlbiB1c2VkIHdpdGggYW4gZW1wdHkgb3B0aW9ucyBwYXJh
bWV0ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLWVtcHR5LW9wdGlvbi1wYXJhbS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9HVU0tZW1wdHktb3B0aW9uLXBhcmFtLmh0dHBzLmh0bWwKaW5kZXggYzc5
MDRjYjRjN2Q3YjgxMDg3NGM5M2ZmMjNkY2RhMjI4YzU3YTM2OS4uNWM2YjM3ODVhM2E4OTJjYmI3
MWY1MGNkYWVkODRmOTRhZTA3YTFmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tZW1wdHktb3B0
aW9uLXBhcmFtLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tZW1wdHktb3B0aW9uLXBhcmFt
Lmh0dHBzLmh0bWwKQEAgLTMsMjkgKzMsMzEgQEAKIDxoZWFkPgogPHRpdGxlPmdldFVzZXJNZWRp
YSh7fSkgcmVqZWN0cyB3aXRoIFR5cGVFcnJvcjwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkRvbWluaXF1ZSBIYXphZWwtTWFzc2lldXgiIGhyZWY9Im1haWx0bzpkb21AdzMub3Jn
Ii8+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly9kZXYudzMub3JnLzIwMTEvd2VicnRj
L2VkaXRvci9nZXR1c2VybWVkaWEuaHRtbCN3aWRsLU5hdmlnYXRvclVzZXJNZWRpYS1nZXRVc2Vy
TWVkaWEtdm9pZC1NZWRpYVN0cmVhbUNvbnN0cmFpbnRzLWNvbnN0cmFpbnRzLU5hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay1zdWNjZXNzQ2FsbGJhY2stTmF2aWdhdG9yVXNlck1lZGlh
RXJyb3JDYWxsYmFjay1lcnJvckNhbGxiYWNrIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLyNkb20tbWVkaWFkZXZpY2VzLWdl
dHVzZXJtZWRpYSI+CiA8L2hlYWQ+CiA8Ym9keT4KIDxoMSBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5E
ZXNjcmlwdGlvbjwvaDE+CiA8cCBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5UaGlzIHRlc3QgY2hlY2tz
IHRoYXQgZ2V0VXNlck1lZGlhIHdpdGggbm8gdmFsdWUgaW4gdGhlCi1vcHRpb25zIHBhcmFtZXRl
ciByYWlzZXMgYSBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24uPC9wPgorb3B0aW9ucyBwYXJh
bWV0ZXIgcmFpc2VzIGEgVHlwZUVycm9yIGV4Y2VwdGlvbi48L3A+CiAKIDxkaXYgaWQ9J2xvZyc+
PC9kaXY+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KIDxz
Y3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3RzIHRoYXQgZ2V0VXNlck1lZGlhIGlzIHJl
amVjdGVkIHdpdGggYSBUeXBlRXJyb3Igd2hlbiB1c2VkIHdpdGggYW4gZW1wdHkgb3B0aW9ucyBw
YXJhbWV0ZXIiKTsKLXQuc3RlcCggZnVuY3Rpb24gKCkgewotICBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7fSkKLSAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoKSB7
Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCJUaGlzIHNob3VsZCBuZXZlciBiZSB0cmlnZ2VyZWQg
c2luY2UgdGhlIGNvbnN0cmFpbnRzIHBhcmFtZXRlciBpcyBlbXB0eSIpOwotICAgIH0pLCB0LnN0
ZXBfZnVuYyhmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFt
ZSwgIlR5cGVFcnJvciIsICJUeXBlRXJyb3IgcmV0dXJuZWQgYXMgZXhwZWN0ZWQiKTsKLSAgICAg
IGFzc2VydF9lcXVhbHMoZXJyb3IuY29uc3RyYWludE5hbWUsIHVuZGVmaW5lZCwgImNvbnN0cmFp
bnROYW1lIGF0dHJpYnV0ZSBub3Qgc2V0IGFzIGV4cGVjdGVkIik7Ci0gICAgICB0LmRvbmUoKTsK
LSAgICB9KSk7Ci0gIHQuZG9uZSgpOwotfSk7Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4gewor
ICB0cnkgeworICAgIC8vIFJhY2UgYSBzZXR0bGVkIHByb21pc2UgdG8gY2hlY2sgdGhhdCB0aGUg
cmV0dXJuZWQgcHJvbWlzZSBpcyBhbHJlYWR5CisgICAgLy8gcmVqZWN0ZWQuCisgICAgYXdhaXQg
UHJvbWlzZS5yYWNlKFtuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7fSksCisg
ICAgICAgICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpXSk7CisgIH0gY2F0Y2ggKGVy
cm9yKSB7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsgdGhyb3cgZXJy
b3IgfSk7CisgICAgYXNzZXJ0X2ZhbHNlKCdjb25zdHJhaW50TmFtZScgaW4gZXJyb3IsCisgICAg
ICAgICAgICAgICAgICJjb25zdHJhaW50TmFtZSBhdHRyaWJ1dGUgbm90IHNldCBhcyBleHBlY3Rl
ZCIpOworICAgIHJldHVybjsKKyAgfQorICBhc3NlcnRfdW5yZWFjaGVkKCJzaG91bGQgaGF2ZSBy
ZXR1cm5lZCBhbiBhbHJlYWR5LXJlamVjdGVkIHByb21pc2UuIik7Cit9LCAiVGVzdHMgdGhhdCBn
ZXRVc2VyTWVkaWEgaXMgcmVqZWN0ZWQgd2l0aCBhIFR5cGVFcnJvciB3aGVuIHVzZWQgd2l0aCBh
biBlbXB0eSBvcHRpb25zIHBhcmFtZXRlciIpOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvR1VNLWltcG9zc2libGUtY29uc3RyYWludC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9HVU0taW1wb3NzaWJsZS1jb25zdHJhaW50Lmh0dHBzLmh0bWwKaW5kZXggMDg0NDJiYjBk
NTY4ZmFlMmQ2ZTgwMWM4MzU4YmMwNzE1MTUxYmE0YS4uYzY1YjI4NjBhMmY1YzZkYjFhOGZjMTlm
MDI2NWQ4YTFkYWNmZTAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0taW1wb3NzaWJsZS1jb25z
dHJhaW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0taW1wb3NzaWJsZS1jb25zdHJhaW50
Lmh0dHBzLmh0bWwKQEAgLTE1LDIxICsxNSwyMyBAQCBjb25zdHJhaW50ICh3aWR0aCAmZ3Q7PTFH
KSBpbiBnZXRVc2VyTWVkaWEgd29ya3M8L3A+CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxw
ZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCJUZXN0cyB0aGF0
IHNldHRpbmcgYW4gaW1wb3NzaWJsZSBjb25zdHJhaW50IGluIGdldFVzZXJNZWRpYSBmYWlscyIp
OwotdC5zdGVwKGZ1bmN0aW9uKCkgeworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgYXdh
aXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJncmFudGVkIiwgWyJjYW1lcmEiXSk7CiAgIC8vIE5vdGUg
LSBpbnRlZ2VyIGNvbnZlcnNpb24gaXMgd2VpcmQgZm9yICtpbmYgYW5kIG51bWJlcnMgPiAyXjMy
LCBzbyB3ZQogICAvLyB1c2UgYSBudW1iZXIgbGVzcyB0aGFuIDJeMzIgZm9yIHRlc3RpbmcuCi0g
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiB7bWlu
OjEwMDAwMDAwMH19fSkKLSAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoc3RyZWFtKSB7
Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCJhIFZpZGVvIHN0cmVhbSBvZiB3aWR0aCAxMDBNIGNh
bm5vdCBiZSBjcmVhdGVkIik7Ci0gICAgICB0LmRvbmUoKTsKLSAgICB9KSwgdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgIk92ZXJj
b25zdHJhaW5lZEVycm9yIiwgIkFuIGltcG9zc2libGUgY29uc3RyYWludCB0cmlnZ2VycyBhIE92
ZXJjb25zdHJhaW5lZEVycm9yIik7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGVycm9yLmNvbnN0cmFp
bnQsICJ3aWR0aCIsICJUaGUgbmFtZSBvZiB0aGUgbm90IHNhdGlzZmllZCBlcnJvciBpcyBnaXZl
biBpbiBlcnJvci5jb25zdHJhaW50Iik7Ci0gICAgICB0LmRvbmUoKTsKLSAgICB9KSk7Ci19KTsK
KyAgdHJ5IHsKKyAgICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
dmlkZW86IHt3aWR0aDoge21pbjoxMDAwMDAwMDB9fX0pOworICAgIGFzc2VydF91bnJlYWNoZWQo
ImEgVmlkZW8gc3RyZWFtIG9mIHdpZHRoIDEwME0gY2Fubm90IGJlIGNyZWF0ZWQiKTsKKworICB9
IGNhdGNoIChlcnJvcikgeworICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgIk92ZXJjb25z
dHJhaW5lZEVycm9yIiwgIkFuIGltcG9zc2libGUgY29uc3RyYWludCB0cmlnZ2VycyBhIE92ZXJj
b25zdHJhaW5lZEVycm9yIik7CisgICAgYXNzZXJ0X2VxdWFscyhlcnJvci5jb25zdHJhaW50LCAi
d2lkdGgiLCAiVGhlIG5hbWUgb2YgdGhlIG5vdCBzYXRpc2ZpZWQgZXJyb3IgaXMgZ2l2ZW4gaW4g
ZXJyb3IuY29uc3RyYWludCIpOworICB9Cit9LCAiVGVzdHMgdGhhdCBzZXR0aW5nIGFuIGltcG9z
c2libGUgY29uc3RyYWludCBpbiBnZXRVc2VyTWVkaWEgZmFpbHMiKTsKIDwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0taW52YWxpZC1mYWNpbmctbW9k
ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0taW52YWxpZC1mYWNpbmctbW9kZS5odHRwcy5odG1s
CmluZGV4IGQyOWNhZWIxMzQ1MjA2NjE3YWFmZGI3MmU3YzBlM2FkNmJiODNhMjkuLjhkYTZjOTc1
NGUxMjBhYjdjNjM5NGNiYjI4NjZhNTViZmFhYzNiNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VN
LWludmFsaWQtZmFjaW5nLW1vZGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS1pbnZhbGlk
LWZhY2luZy1tb2RlLmh0dHBzLmh0bWwKQEAgLTEyLDIwICsxMiwyMCBAQAogCiA8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRy
aXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5q
cz48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rlc3QoCi0gICJUZXN0cyB0aGF0
IHNldHRpbmcgYW4gaW52YWxpZCBmYWNpbmdNb2RlIGNvbnN0cmFpbnQgaW4gZ2V0VXNlck1lZGlh
IGZhaWxzIik7Ci10LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHt2aWRlbzoge2ZhY2luZ01vZGU6IHtleGFjdDogJyd9fX0pCi0gICAgLnRo
ZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiVGhlIGVtcHR5IHN0cmluZyBpcyBub3QgYSB2YWxpZCBmYWNpbmdNb2RlIik7Ci0gICAgICB0
LmRvbmUoKTsKLSAgICB9KSwgdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyb3IpIHsKLSAgICAgIGFz
c2VydF9lcXVhbHMoZXJyb3IubmFtZSwgIk92ZXJjb25zdHJhaW5lZEVycm9yIik7Ci0gICAgICBh
c3NlcnRfZXF1YWxzKGVycm9yLmNvbnN0cmFpbnQsICJmYWNpbmdNb2RlIik7Ci0gICAgICB0LmRv
bmUoKTsKLSAgICB9KSk7Ci19KTsKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0
IHNldE1lZGlhUGVybWlzc2lvbigiZ3JhbnRlZCIsIFsiY2FtZXJhIl0pOworICB0cnkgeworICAg
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge2ZhY2lu
Z01vZGU6IHtleGFjdDogJyd9fX0pOworICAgIGFzc2VydF91bnJlYWNoZWQoIlRoZSBlbXB0eSBz
dHJpbmcgaXMgbm90IGEgdmFsaWQgZmFjaW5nTW9kZSIpOworICB9IGNhdGNoIChlcnJvcikgewor
ICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgIk92ZXJjb25zdHJhaW5lZEVycm9yIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhlcnJvci5jb25zdHJhaW50LCAiZmFjaW5nTW9kZSIpOworICB9Owor
fSwgIlRlc3RzIHRoYXQgc2V0dGluZyBhbiBpbnZhbGlkIGZhY2luZ01vZGUgY29uc3RyYWludCBp
biBnZXRVc2VyTWVkaWEgZmFpbHMiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9HVU0tbm9uLWFwcGxpY2FibGUtY29uc3RyYWludC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9HVU0tbm9uLWFwcGxpY2FibGUtY29uc3RyYWludC5odHRwcy5odG1sCmluZGV4
IDg0MjNjNTZiOWEzY2JhMGFlOGRhMDNmZDhjZTc3MDIzOWUwMjY0YWMuLjNlOTQ4MWJmYTQ0NWNm
Yjc3NTU2YmZlNGI2M2M3NGZhZWI5Mjk4YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLW5vbi1h
cHBsaWNhYmxlLWNvbnN0cmFpbnQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS1ub24tYXBw
bGljYWJsZS1jb25zdHJhaW50Lmh0dHBzLmh0bWwKQEAgLTQsNiArNCw5IEBACiA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jbWV0
aG9kcy01Ij4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgogCiA8cCBjbGFzcz0iaW5zdHJ1
Y3Rpb25zIj5XaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUgeW91ciBhdWRpbyBhbmQgdmlk
ZW8gc3RyZWFtLjwvcD4KIApAQCAtNTAsNiArNTMsOCBAQCBsZXQgYXVkaW9fb25seV9pbnZhbGlk
X2NvbnN0cmFpbnRzID0gewogfQogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAvLyBC
b3RoIHBlcm1pc3Npb25zIGFyZSBuZWVkZWQgYXQgc29tZSBwb2ludCwgYXNraW5nIGZvciBib3Ro
IGF0IG9uY2UKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CiAgIGxldCBzdHJlYW0gPSBh
d2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHZpZGVvX29u
bHlfdmFsaWRfY29uc3RyYWludHN9KQogICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCwgMSwgInRoZSBtZWRpYSBzdHJlYW0gaGFzIGV4YWN0bHkgb25lIGF1ZGlv
IHRyYWNrIik7CiB9LCAnVGVzdCB0aGF0IHNldHRpbmcgdmlkZW8tb25seSB2YWxpZCBjb25zdHJh
aW50cyBpbnNpZGUgb2YgImF1ZGlvIiBpcyBzaW1wbHkgaWdub3JlZCcpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9HVU0tb3B0aW9uYWwtY29uc3RyYWludC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0t
b3B0aW9uYWwtY29uc3RyYWludC5odHRwcy5odG1sCmluZGV4IDI4Yjk3NjdkNGNkMGM2MzIyMzBj
M2UwMTVlODg1ZWUwNGM3NGFiNDIuLmU4ODkyYTU5MTZiNmYwZWUwNzJhNDY3YmFjNDNlZDVkOGU5
YjU2MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLW9wdGlvbmFsLWNvbnN0cmFpbnQuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS1vcHRpb25hbC1jb25zdHJhaW50Lmh0dHBzLmh0bWwKQEAg
LTE0LDE3ICsxNCwxOSBAQCBnZXRVc2VyTWVkaWEgaXMgaGFuZGxlZCBhcyBvcHRpb25hbDwvcD4K
IDxkaXYgaWQ9J2xvZyc+PC9kaXY+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5qcz48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12
YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3RzIHRoYXQgc2V0dGluZyBhbiBvcHRpb25hbCBjb25zdHJh
aW50IGluIGdldFVzZXJNZWRpYSBpcyBoYW5kbGVkIGFzIG9wdGlvbmFsIik7Ci10LnN0ZXAoZnVu
Y3Rpb24oKSB7Ci0gIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzog
e2FkdmFuY2VkOiBbe3dpZHRoOiB7bWluOjEwMjQsIG1heDogODAwfX1dfX0pCi0gICAgLnRoZW4o
dC5zdGVwX2Z1bmMoZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgYXNzZXJ0X2VxdWFscyhzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJ0aGUgbWVkaWEgc3RyZWFtIGhhcyBleGFj
dGx5IG9uZSB2aWRlbyB0cmFjayIpOwotICAgICAgdC5kb25lKCk7Ci0gICAgfSksIHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCJhbiBvcHRpb25h
bCBjb25zdHJhaW50IGNhbid0IHN0b3AgdXMgZnJvbSBvYnRhaW5pbmcgYSB2aWRlbyBzdHJlYW0i
KTsKLSAgICB9KSk7Ci19KTsKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0IHNl
dE1lZGlhUGVybWlzc2lvbigiZ3JhbnRlZCIsIFsiY2FtZXJhIl0pOworICB0cnkgeworICAgIGNv
bnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2
aWRlbzoge2FkdmFuY2VkOiBbe3dpZHRoOiB7bWluOjEwMjQsIG1heDogODAwfX1dfX0pOworICAg
IGFzc2VydF9lcXVhbHMoc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAxLCAidGhlIG1l
ZGlhIHN0cmVhbSBoYXMgZXhhY3RseSBvbmUgdmlkZW8gdHJhY2siKTsKKyAgfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICBhc3NlcnRfdW5yZWFjaGVkKCJhbiBvcHRpb25hbCBjb25zdHJhaW50IGNhbid0
IHN0b3AgdXMgZnJvbSBvYnRhaW5pbmcgYSB2aWRlbyBzdHJlYW0iKTsKKyAgfQorfSwgIlRlc3Rz
IHRoYXQgc2V0dGluZyBhbiBvcHRpb25hbCBjb25zdHJhaW50IGluIGdldFVzZXJNZWRpYSBpcyBo
YW5kbGVkIGFzIG9wdGlvbmFsIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvR1VNLXJlcXVpcmVkLWNvbnN0cmFpbnQtd2l0aC1pZGVhbC12YWx1ZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS1yZXF1aXJlZC1jb25zdHJhaW50LXdpdGgt
aWRlYWwtdmFsdWUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNDc0M2ZjOTkyYTgx
YzgxNmExMjRlNDJmODYwY2UzNTk0MjcxYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dV
TS1yZXF1aXJlZC1jb25zdHJhaW50LXdpdGgtaWRlYWwtdmFsdWUuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorV2hlbiBwcm9tcHRlZCwgYWNjZXB0IHRvIHNoYXJlIHlvdXIgdmlk
ZW8gc3RyZWFtLgorCitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGlu
ZyBhIHJlcXVpcmVkIGNvbnN0cmFpbnQgd2l0aCBhbiBpZGVhbCB2YWx1ZSBpbiBnZXRVc2VyTWVk
aWEgd29ya3MKKworCitQQVNTIFRlc3RzIHRoYXQgc2V0dGluZyBhIHJlcXVpcmVkIGNvbnN0cmFp
bnQgd2l0aCBhbiBpZGVhbCB2YWx1ZSBpbiBnZXRVc2VyTWVkaWEgd29ya3MKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9HVU0tcmVxdWlyZWQtY29uc3RyYWludC13aXRoLWlkZWFsLXZhbHVlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL0dVTS1yZXF1aXJlZC1jb25zdHJhaW50LXdpdGgtaWRlYWwtdmFsdWUu
aHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjIzNGM1Yzc0NDhlOTQwYzg1MDc5ZmQ1NTJhMDA4ZDQ0
MzFlZjEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tcmVxdWlyZWQtY29uc3RyYWlu
dC13aXRoLWlkZWFsLXZhbHVlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPklkZWFsIHZhbHVlIGluIHJlcXVpcmVkIGNv
bnN0cmFpbnQgaW4gZ2V0VXNlck1lZGlhPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIi8+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jZGZuLWZpdG5l
c3MtZGlzdGFuY2UiPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGNsYXNzPSJpbnN0cnVjdGlvbnMiPldoZW4gcHJvbXB0ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3Vy
IHZpZGVvIHN0cmVhbS48L3A+Cis8aDEgY2xhc3M9Imluc3RydWN0aW9ucyI+RGVzY3JpcHRpb248
L2gxPgorPHAgY2xhc3M9Imluc3RydWN0aW9ucyI+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRp
bmcgYSByZXF1aXJlZCBjb25zdHJhaW50Cit3aXRoIGFuIGlkZWFsIHZhbHVlIGluIGdldFVzZXJN
ZWRpYSB3b3JrczwvcD4KKzxkaXYgaWQ9J2xvZyc+PC9kaXY+Cis8c2NyaXB0PgorcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBzZXRNZWRpYVBlcm1pc3Npb24oImdyYW50ZWQiLCBb
ImNhbWVyYSJdKTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IHtpZGVhbDogMzIwLCBtaW46IDE2MH19fSk7
CisgIGFzc2VydF9lcXVhbHMoc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAxLCAidGhl
IG1lZGlhIHN0cmVhbSBoYXMgZXhhY3RseSBvbmUgdmlkZW8gdHJhY2siKTsKKyAgYXNzZXJ0X2Vx
dWFscyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLndpZHRoLCAzMjAs
ICdpZGVhbCB3aWR0aCBpcyBzZWxlY3RlZCBmb3IgZ2V0VXNlck1lZGlhKCkgdmlkZW8gdHJhY2tz
Jyk7CisgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAg
dmlkZW8uc3JjT2JqZWN0ID0gc3RyZWFtOworICBhd2FpdCB2aWRlby5wbGF5KCk7CisgIGFzc2Vy
dF9lcXVhbHModmlkZW8udmlkZW9XaWR0aCwgMzIwLCAndmlkZW8gd2lkdGggZXF1YWxzIHRvIHRy
YWNrIHdpZHRoJyk7CisgIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLnN0b3AoKTsKK30sICJU
ZXN0cyB0aGF0IHNldHRpbmcgYSByZXF1aXJlZCBjb25zdHJhaW50IHdpdGggYW4gaWRlYWwgdmFs
dWUgaW4gZ2V0VXNlck1lZGlhIHdvcmtzIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLXRyaXZpYWwtY29uc3RyYWludC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9HVU0tdHJpdmlhbC1jb25zdHJhaW50Lmh0dHBzLmh0bWwKaW5kZXggYWQzNzc2NTg5
ZTViNmVkNWZmYzM3ZTJiMGZlZTI4MmI0ZDI2NDNhMy4uNjZkZDNhMjNjODc3MThjOTEzN2ViOTM5
NWRhYmExYmFlMmFkNDlmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tdHJpdmlhbC1jb25zdHJh
aW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0tdHJpdmlhbC1jb25zdHJhaW50Lmh0dHBz
Lmh0bWwKQEAgLTE0LDE4ICsxNCwxOSBAQCBjb25zdHJhaW50ICh3aWR0aCAmZ3Q7PTApIGluIGdl
dFVzZXJNZWRpYSB3b3JrczwvcD4KIDxkaXYgaWQ9J2xvZyc+PC9kaXY+CiA8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5qcz48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3RzIHRoYXQgc2V0dGlu
ZyBhIHRyaXZpYWwgbWFuZGF0b3J5IGNvbnN0cmFpbnQgaW4gZ2V0VXNlck1lZGlhIHdvcmtzIik7
Ci10LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHt2aWRlbzoge3dpZHRoOiB7bWluOjB9fX0pCi0gICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVu
Y3Rpb24gKHN0cmVhbSkgewotICAgICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKS5sZW5ndGgsIDEsICJ0aGUgbWVkaWEgc3RyZWFtIGhhcyBleGFjdGx5IG9uZSB2aWRlbyB0
cmFjayIpOwotICAgICAgdC5kb25lKCk7Ci0gICAgfSksIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGVy
cm9yKSB7Ci0gICAgICBhc3NlcnRfdW5yZWFjaGVkKCJhIFZpZGVvIHN0cmVhbSBvZiBtaW5pbWFs
bHkgemVybyB3aWR0aCBjYW4gYWx3YXlzIGJlIGNyZWF0ZWQiKTsKLSAgICAgIHQuZG9uZSgpOwot
ICAgIH0pKTsKLX0pOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgYXdhaXQgc2V0TWVk
aWFQZXJtaXNzaW9uKCk7CisgIHRyeSB7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IHttaW46MH19fSkK
KyAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCwgMSwgInRo
ZSBtZWRpYSBzdHJlYW0gaGFzIGV4YWN0bHkgb25lIHZpZGVvIHRyYWNrIik7CisgIH0gY2F0Y2gg
KGVycm9yKSB7CisgICAgYXNzZXJ0X3VucmVhY2hlZCgiYSBWaWRlbyBzdHJlYW0gb2YgbWluaW1h
bGx5IHplcm8gd2lkdGggY2FuIGFsd2F5cyBiZSBjcmVhdGVkIik7CisgIH0KK30sICJUZXN0cyB0
aGF0IHNldHRpbmcgYSB0cml2aWFsIG1hbmRhdG9yeSBjb25zdHJhaW50IGluIGdldFVzZXJNZWRp
YSB3b3JrcyIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL0dVTS11bmtub3dua2V5LW9wdGlvbi1wYXJhbS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0t
dW5rbm93bmtleS1vcHRpb24tcGFyYW0uaHR0cHMuaHRtbAppbmRleCBiMjc5MjcyMjIwMTJiZjc5
YzMxZjc4YTI4YzRkZjg2ZWE1MDBjYTgzLi5lZGQ3MjdkNWUzZDk5NzkzZDRkYTRkZTExZDNkZjI1
Zjg5NDFhNGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS11bmtub3dua2V5LW9wdGlvbi1wYXJh
bS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLXVua25vd25rZXktb3B0aW9uLXBhcmFtLmh0
dHBzLmh0bWwKQEAgLTEzLDE5ICsxMywxOSBAQCBpbiB0aGUgY29uc3RyYWludHMgcGFyYW1ldGVy
IHJlamVjdHMgd2l0aCBhIFR5cGVFcnJvci48L3A+CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1o
ZWxwZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCJUZXN0cyB0
aGF0IGdldFVzZXJNZWRpYSBpcyByZWplY3RlZCB3aXRoIGEgVHlwZUVycm9yIHdoZW4gdXNlZCB3
aXRoIGFuIHVua25vd24gY29uc3RyYWludCIpOwotdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe30pCi0gICAgLnRoZW4odC5zdGVwX2Z1
bmMoZnVuY3Rpb24gKCkgewotICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVGhpcyBzaG91bGQgbmV2
ZXIgYmUgdHJpZ2dlcmVkIHNpbmNlIHRoZSBjb25zdHJhaW50cyBwYXJhbWV0ZXIgb25seSBjb250
YWlucyBhbiB1bnJlY29nbml6ZWQgY29uc3RyYWludCIpOwotICAgIH0pLCB0LnN0ZXBfZnVuYyhm
dW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZXJyb3IubmFtZSwgIlR5cGVF
cnJvciIsICJUeXBlRXJyb3IgcmV0dXJuZWQgYXMgZXhwZWN0ZWQiKTsKLSAgICAgIGFzc2VydF9l
cXVhbHMoZXJyb3IuY29uc3RyYWludE5hbWUsIHVuZGVmaW5lZCwgImNvbnN0cmFpbnROYW1lIGF0
dHJpYnV0ZSBub3Qgc2V0IGFzIGV4cGVjdGVkIik7Ci0gICAgICB0LmRvbmUoKTsKLSAgICB9KSk7
Ci0gIHQuZG9uZSgpOwotfSk7Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICB0cnkgewor
ICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHtkb2Vzbm90ZXhp
c3Q6dHJ1ZX0pCisgICAgYXNzZXJ0X3VucmVhY2hlZCgiVGhpcyBzaG91bGQgbmV2ZXIgYmUgdHJp
Z2dlcmVkIHNpbmNlIHRoZSBjb25zdHJhaW50cyBwYXJhbWV0ZXIgb25seSBjb250YWlucyBhbiB1
bnJlY29nbml6ZWQgY29uc3RyYWludCIpOworICB9IGNhdGNoIChlcnJvcikgeworICAgIGFzc2Vy
dF9lcXVhbHMoZXJyb3IubmFtZSwgIlR5cGVFcnJvciIsICJUeXBlRXJyb3IgcmV0dXJuZWQgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBhc3NlcnRfZXF1YWxzKGVycm9yLmNvbnN0cmFpbnROYW1lLCB1bmRl
ZmluZWQsICJjb25zdHJhaW50TmFtZSBhdHRyaWJ1dGUgbm90IHNldCBhcyBleHBlY3RlZCIpOwor
ICB9Cit9LCAiVGVzdHMgdGhhdCBnZXRVc2VyTWVkaWEgaXMgcmVqZWN0ZWQgd2l0aCBhIFR5cGVF
cnJvciB3aGVuIHVzZWQgd2l0aCBhbiB1bmtub3duIGNvbnN0cmFpbnQiKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NRVRBLnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TUVUQS55bWwKaW5kZXggOTYwZGMzYTVhYzQ3ZTljMTRlODY1MTUwNGNiODA1NzI0MmY3YTNiZS4u
OTczNjNjZjM2OGU5NDU5MzNhZTEzNGQwYjNlOTA3YmYyYzAyNmU4OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9NRVRBLnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01FVEEueW1sCkBAIC0xLDYgKzEsNSBAQAogc3Bl
YzogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLwogc3VnZ2VzdGVkX3Jl
dmlld2VyczoKLSAgLSBhZ291YWlsbGFyZAogICAtIGFsdmVzdHJhbmQKICAgLSB5b3Vlbm5mCiAg
IC0gamFuLWl2YXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWFmdGVyLWRpc2Nh
cmQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtYWZ0ZXItZGlzY2Fy
ZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk2OTNlMDM2ZDI3OWFiNjI0YmU5OTlj
YTIxNGQ1YjY1NDBjOGQzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2Vz
LWFmdGVyLWRpc2NhcmQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNT
IGdldFVzZXJNZWRpYSgpIGluIGEgZGlzY2FyZGVkIGJyb3dzaW5nIGNvbnRleHQKK0ZBSUwgZW51
bWVyYXRlRGV2aWNlcygpIGluIGEgZGlzY2FyZGVkIGJyb3dzaW5nIGNvbnRleHQgYXNzZXJ0X2Vx
dWFsczogUHJvbWlzZSBzdGF0ZSBleHBlY3RlZCAicGVuZGluZyIgYnV0IGdvdCAicmVzb2x2ZWQi
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWFmdGVyLWRpc2NhcmQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWFmdGVyLWRpc2NhcmQuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZjRmNDkyOTY0NDgwOGFmNDVhMWYxYmU0NTM3NzdlZDZiNzc3ZmI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtYWZ0ZXItZGlzY2FyZC5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPlRlc3QgcHJvbWlzZXMg
ZnJvbSBNZWRpYURldmljZXMgbWV0aG9kcyBpbiBhIGRpc2NhcmRlZCBicm93c2luZworICBjb250
ZXh0PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgorPGJvZHk+PC9ib2R5PgorPHNjcmlw
dD4KK2xldCBkZXZpY2VzOworbGV0IGNoaWxkX0RPTUV4Y2VwdGlvbjsKK3NldHVwKCgpID0+IHsK
KyAgY29uc3QgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgIGRldmljZXMgPSBmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CisgIGNoaWxkX0RPTUV4Y2VwdGlvbiA9IGZy
YW1lLmNvbnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOworICBmcmFtZS5yZW1vdmUoKTsKK30pOwor
CisvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RvbS1tZWRpYWRl
dmljZXMtZ2V0dXNlcm1lZGlhCisvLyBJZiB0aGUgY3VycmVudCBzZXR0aW5ncyBvYmplY3QncyBy
ZXNwb25zaWJsZSBkb2N1bWVudCBpcyBOT1QgZnVsbHkgYWN0aXZlLAorLy8gcmV0dXJuIGEgcHJv
bWlzZSByZWplY3RlZCB3aXRoIGEgRE9NRXhjZXB0aW9uIG9iamVjdCB3aG9zZSBuYW1lIGF0dHJp
YnV0ZQorLy8gaGFzIHRoZSB2YWx1ZSAiSW52YWxpZFN0YXRlRXJyb3IiLgorcHJvbWlzZV90ZXN0
KGFzeW5jICgpID0+IHsKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJncmFudGVkIiwgWyJt
aWNyb3Bob25lIl0pOworICAvLyBgY2F0Y2goKWAgaXMgdXNlZCByYXRoZXIgdGhhbiBzdGF0aWMg
UHJvbWlzZSBtZXRob2RzIGJlY2F1c2UgbWljcm90YXNrcworICAvLyBmb3IgYFByb21pc2VSZXNv
bHZlKClgIGRvIG5vdCBydW4gd2hlbiBQcm9taXNlcyBpbiBpbmFjdGl2ZSBEb2N1bWVudHMgYXJl
CisgIC8vIGludm9sdmVkLiAgV2hldGhlciBtaWNyb3Rhc2tzIGZvciBgY2F0Y2goKWAgcnVuIGRl
cGVuZHMgb24gdGhlIHJlYWxtIG9mCisgIC8vIHRoZSBoYW5kbGVyIHJhdGhlciB0aGFuIHRoZSBy
ZWFsbSBvZiB0aGUgUHJvbWlzZS4KKyAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cv
aHRtbC9pc3N1ZXMvNTMxOS4KKyAgbGV0IHByb21pc2VfYWxyZWFkeV9yZWplY3RlZCA9IGZhbHNl
OworICBsZXQgcmVqZWN0ZWRfcmVhc29uOworICBkZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
dHJ1ZX0pLmNhdGNoKHJlYXNvbiA9PiB7CisgICAgcHJvbWlzZV9hbHJlYWR5X3JlamVjdGVkID0g
dHJ1ZTsKKyAgICByZWplY3RlZF9yZWFzb24gPSByZWFzb247CisgIH0pOworICAvLyBSYWNlIGEg
c2V0dGxlZCBwcm9taXNlIHRvIGNoZWNrIHRoYXQgdGhlIHJldHVybmVkIHByb21pc2UgaXMgYWxy
ZWFkeQorICAvLyByZWplY3RlZC4KKyAgYXdhaXQgUHJvbWlzZS5yZWplY3QoKS5jYXRjaCgoKSA9
PiB7CisgICAgYXNzZXJ0X3RydWUocHJvbWlzZV9hbHJlYWR5X3JlamVjdGVkLAorICAgICAgICAg
ICAgICAgICdzaG91bGQgaGF2ZSByZXR1cm5lZCBhbiBhbHJlYWR5LXJlamVjdGVkIHByb21pc2Uu
Jyk7CisgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRTdGF0ZUVycm9yJywgY2hpbGRfRE9N
RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICgpID0+IHsgdGhyb3cgcmVqZWN0ZWRf
cmVhc29uIH0pOworICB9KTsKK30sICdnZXRVc2VyTWVkaWEoKSBpbiBhIGRpc2NhcmRlZCBicm93
c2luZyBjb250ZXh0Jyk7CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUt
bWFpbi8jZG9tLW1lZGlhZGV2aWNlcy1lbnVtZXJhdGVkZXZpY2VzCisvLyBodHRwczovL3czYy5n
aXRodWIuaW8vbWVkaWFjYXB0dXJlLW1haW4vI2RldmljZS1lbnVtZXJhdGlvbi1jYW4tcHJvY2Vl
ZAorLy8gRGV2aWNlIGVudW1lcmF0aW9uIGNhbiBwcm9jZWVkIHN0ZXBzIHJldHVybiBmYWxzZSB3
aGVuIGRldmljZSBlbnVtZXJhdGlvbgorLy8gY2FuIGJlIGV4cG9zZWQgaXMgdHJ1ZSBhbmQgdGhl
IGRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUuCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4g
eworICBsZXQgcHJvbWlzZV9zdGF0ZSA9ICdwZW5kaW5nJzsKKyAgLy8gYHRoZW4oKWAgaXMgdXNl
ZCB0byBhdm9pZCBtZXRob2RzIHRoYXQgYXBwbHkgYFByb21pc2VSZXNvbHZlKClgIHRvCisgIC8v
IFByb21pc2VzIGZyb20gaW5hY3RpdmUgcmVhbG1zLCB3aGljaCB3b3VsZCBsZWFkIHRvIG1pY3Jv
dGFza3MgdGhhdCBkb24ndAorICAvLyBydW4uCisgIGRldmljZXMuZW51bWVyYXRlRGV2aWNlcygp
LnRoZW4oKCkgPT4gcHJvbWlzZV9zdGF0ZSA9ICdyZXNvbHZlZCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCkgPT4gcHJvbWlzZV9zdGF0ZSA9ICdyZWplY3RlZCcpOworICAv
LyBFbnVtZXJhdGUgaW4gdGhlIHBhcmVudCBkb2N1bWVudCB0byBwcm92aWRlIGVub3VnaCB0aW1l
IHRvIGNoZWNrIHRoYXQgdGhlCisgIC8vIFByb21pc2UgZnJvbSB0aGUgaW5hY3RpdmUgZG9jdW1l
bnQgZG9lcyBub3Qgc2V0dGxlLgorICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1l
cmF0ZURldmljZXMoKTsKKyAgYXNzZXJ0X2VxdWFscyhwcm9taXNlX3N0YXRlLCAncGVuZGluZycs
ICdQcm9taXNlIHN0YXRlJyk7Cit9LCAnZW51bWVyYXRlRGV2aWNlcygpIGluIGEgZGlzY2FyZGVk
IGJyb3dzaW5nIGNvbnRleHQnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRp
YURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1wZXItb3JpZ2luLWlkcy5zdWIuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1wZXItb3JpZ2lu
LWlkcy5zdWIuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjYjQ3YWY5OTc1MWE0ZTQ0
NzEzN2YyNWJmMGQ0ZmQ3ZjQxNDVkNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlh
RGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLXBlci1vcmlnaW4taWRzLnN1Yi5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My9tZWRpYWNhcHR1cmUtc3RyZWFtcy9pZnJhbWUtZW51
bWVyYXRlLmh0bWwKK0NPTlNPTEUgTUVTU0FHRTogRmVhdHVyZSBwb2xpY3kgJ01pY3JvcGhvbmUn
IGNoZWNrIGZhaWxlZCBmb3IgaWZyYW1lIHdpdGggb3JpZ2luICdodHRwczovL2xvY2FsaG9zdDo5
NDQzJyBhbmQgYWxsb3cgYXR0cmlidXRlICdjYW1lcmEgJ3NyYyc7bWljcm9waG9uZSAnc3JjJycu
CitDT05TT0xFIE1FU1NBR0U6IE5vdCBhbGxvd2VkIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorQ09O
U09MRSBNRVNTQUdFOiBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IE5vdEFsbG93ZWRFcnJv
cjogVGhlIHJlcXVlc3QgaXMgbm90IGFsbG93ZWQgYnkgdGhlIHVzZXIgYWdlbnQgb3IgdGhlIHBs
YXRmb3JtIGluIHRoZSBjdXJyZW50IGNvbnRleHQsIHBvc3NpYmx5IGJlY2F1c2UgdGhlIHVzZXIg
ZGVuaWVkIHBlcm1pc3Npb24uCisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCisKK1RJTUVPVVQgZW51bWVyYXRlRGV2aWNlcyBoYXMgc3RhYmxlIGRldmljZUlkcyBh
Y3Jvc3Mgc2FtZS1vcmlnaW4gaWZyYW1lIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gZW51bWVyYXRl
RGV2aWNlcyByb3RhdGVzIGRldmljZUlkIGFjcm9zcyBkaWZmZXJlbnQtb3JpZ2luIGlmcmFtZQor
Tk9UUlVOIGVudW1lcmF0ZURldmljZXMgcm90YXRlcyBkZXZpY2VJZCBhZnRlciBjbGVhcmluZyBz
aXRlIGRhdGEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2
aWNlcy1wZXItb3JpZ2luLWlkcy5zdWIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2Vz
LWVudW1lcmF0ZURldmljZXMtcGVyLW9yaWdpbi1pZHMuc3ViLmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzE0MzU1ZjVjMWMwYjJmZTM3Y2ZmMTYyYzdiZTYyNDA1NDBjYzBlMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMtcGVyLW9yaWdpbi1p
ZHMuc3ViLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHRpdGxlPmVudW1lcmF0ZURldmljZXMgcm90YXRlcyBkZXZpY2VJZCBhY3Jv
c3Mgb3JpZ2lucyBhbmQgYWZ0ZXIgY29va2llcyBnZXQgY2xlYXJlZDwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBl
ci5qcz48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIGFsbG93PSJjYW1lcmEg
J3NyYyc7bWljcm9waG9uZSAnc3JjJyIgaWQ9c2FtZSBzcmM9Ii9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9pZnJhbWUtZW51bWVyYXRlLmh0bWwiPjwvaWZyYW1lPgorPGlmcmFtZSBhbGxvdz0iY2FtZXJh
ICdzcmMnO21pY3JvcGhvbmUgJ3NyYyciIGlkPWNyb3NzIHNyYz0iaHR0cHM6Ly97e2hvc3RzW11b
d3d3MV19fTp7e3BvcnRzW2h0dHBzXVswXX19L21lZGlhY2FwdHVyZS1zdHJlYW1zL2lmcmFtZS1l
bnVtZXJhdGUuaHRtbCI+PC9pZnJhbWU+Cis8c2NyaXB0PgorCisgIGxldCBkZXZpY2VMaXN0Owor
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBhd2FpdCBzZXRNZWRpYVBlcm1pc3Np
b24oKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7YXVkaW8gOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIHN0cmVhbS5nZXRU
cmFja3MoKS5mb3JFYWNoKHQgPT4gdC5zdG9wKCkpOworICAgIGRldmljZUxpc3QgPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTsKKyAgICBjb25zdCBtc2dX
YXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCB3aW5kb3csIFsnbWVzc2FnZSddKTsKKyAgICBm
cmFtZXNbMF0ucG9zdE1lc3NhZ2UoJ3J1bicsICcqJykKKyAgICBjb25zdCBlID0gYXdhaXQgbXNn
V2F0Y2hlci53YWl0X2ZvcignbWVzc2FnZScpOworICAgIGNvbnN0IGlmcmFtZURldmljZXMgPSBl
LmRhdGEuZGV2aWNlczsKKyAgICBhc3NlcnRfZXF1YWxzKGRldmljZUxpc3QubGVuZ3RoLCBpZnJh
bWVEZXZpY2VzLmxlbmd0aCwgIlNhbWUgbnVtYmVyIG9mIGRldmljZXMgZGV0ZWN0ZWQgc2FtZS1v
cmlnaW4iKTsKKyAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VMaXN0KSB7CisgICAgICAv
LyBMb29rIGZvciB0aGUgc2FtZSBkZXZpY2UgaW4gdGhlIGlmcmFtZSBiYXNlZCBvbiBkZXZpY2VJ
ZAorICAgICAgLy8gImRlZmF1bHQiIGNhbiBiZSB1c2VkIGFjcm9zcyBzZXZlcmFsIGtpbmRzLCBz
byBpdCBuZWVkcyBhbiBhZGRpdGlvbmFsIGNoZWNrCisgICAgICAvLyBidXQgd2UgbGltaXQgdGhh
dCBjaGVjayB0byAiZGVmYXVsdCIgdG8gZGV0ZWN0IHJlLXVzZSBvZiBkZXZpY2VJZCBhY3Jvc3Mg
a2luZHMKKyAgICAgIGNvbnN0IHNhbWVEZXZpY2UgPSBpZnJhbWVEZXZpY2VzLmZpbmQoZCA9PiBk
LmRldmljZUlkID09PSBkZXZpY2UuZGV2aWNlSWQgJiYgKGRldmljZS5kZXZpY2VJZCAhPT0gImRl
ZmF1bHQiIHx8IGQua2luZCA9PT0gZGV2aWNlLmtpbmQpKTsKKyAgICAgIGFzc2VydF90cnVlKCEh
c2FtZURldmljZSwgImRldmljZUlkcyBzdGF5IHRoZSBzYW1lIHdoZW4gbG9hZGVkIGluIHNhbWUg
b3JpZ2luIik7CisgICAgICBhc3NlcnRfZXF1YWxzKHNhbWVEZXZpY2UubGFiZWwsIGRldmljZS5s
YWJlbCwgImxhYmVscyBtYXRjaGVzIHdoZW4gZGV2aWNlSWQgbWF0Y2hlcyIpOworICAgICAgYXNz
ZXJ0X2VxdWFscyhzYW1lRGV2aWNlLmtpbmQsIGRldmljZS5raW5kLCAia2luZCBtYXRjaGVzIHdo
ZW4gZGV2aWNlSWQgbWF0Y2hlcyIpOworICAgICAgLy8gVGhlIGdyb3VwIGlkZW50aWZpZXIgTVVT
VCBiZSB1bmlxdWVseSBnZW5lcmF0ZWQgZm9yIGVhY2ggZG9jdW1lbnQuCisgICAgICBhc3NlcnRf
bm90X2VxdWFscyhzYW1lRGV2aWNlLmdyb3VwSWQsIGRldmljZS5ncm91cElkLCAiZ3JvdXBJZCBp
cyBzcGVjaWZpYyB0byBhIGRvY3VtZW50Iik7CisgICAgfQorICAgIC8vIHNldHRpbmcgYSBjb29r
aWUgYXMgYSB3YXkgdG8gZGV0ZWN0IGlmIGNvb2tpZSBjbGVhcmluZyBnZXRzIGRvbmUKKyAgICBk
b2N1bWVudC5jb29raWUgPSAidGVzdD10cnVlIjsKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnRv
dWNoZWQgPSB0cnVlOworICB9LCAiZW51bWVyYXRlRGV2aWNlcyBoYXMgc3RhYmxlIGRldmljZUlk
cyBhY3Jvc3Mgc2FtZS1vcmlnaW4gaWZyYW1lIik7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworICAgIGNvbnN0IG1zZ1dhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHdpbmRvdywg
WydtZXNzYWdlJ10pOworICAgIGZyYW1lc1sxXS5wb3N0TWVzc2FnZSgncnVuJywgJyonKQorICAg
IGNvbnN0IGUgPSBhd2FpdCBtc2dXYXRjaGVyLndhaXRfZm9yKCdtZXNzYWdlJyk7CisgICAgY29u
c3QgaWZyYW1lRGV2aWNlcyA9IGUuZGF0YS5kZXZpY2VzOworICAgIGFzc2VydF9lcXVhbHMoZGV2
aWNlTGlzdC5sZW5ndGgsIGlmcmFtZURldmljZXMubGVuZ3RoLCAiU2FtZSBudW1iZXIgb2YgZGV2
aWNlcyBkZXRlY3RlZCBjcm9zcy1vcmlnaW4iKTsKKyAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBk
ZXZpY2VMaXN0KSB7CisgICAgICAvLyBBbiBpZGVudGlmaWVyIGNhbiBiZSByZXVzZWQgYWNyb3Nz
IG9yaWdpbnMgYXMgbG9uZyBhcworICAgICAgLy8gaXQgaXMgbm90IHRpZWQgdG8gdGhlIHVzZXIg
YW5kIGNhbiBiZSBndWVzc2VkIGJ5IG90aGVyIG1lYW5zCisgICAgICAvLyBJbiBwcmFjdGljZSwg
ImRlZmF1bHQiIGlzIHdoYXQgaXMgdXNlZCB0b2RheSwgc28gd2UgaGFyZGNvZGUgaXQKKyAgICAg
IC8vIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHRoZSBnZW5lcmFsIGNhc2Ugb2Ygbm9uLXNoYXJlZCBk
ZXZpY2VJZHMKKyAgICAgIGlmIChkZXZpY2UuZGV2aWNlSWQgIT09ICJkZWZhdWx0IikgeworICAg
ICAgICBjb25zdCBzYW1lRGV2aWNlID0gaWZyYW1lRGV2aWNlcy5maW5kKGQgPT4gZC5kZXZpY2VJ
ZCA9PT0gZGV2aWNlLmRldmljZUlkKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKCEhc2FtZURldmlj
ZSwgImRldmljZUlkcyBhcmUgbm90IHNoYXJlZCBhY3Jvc3Mgb3JpZ2luIik7CisgICAgICB9Cisg
ICAgICBhc3NlcnRfZmFsc2UoISFpZnJhbWVEZXZpY2VzLmZpbmQoZCA9PiBkLmdyb3VwSWQgPT09
IGRldmljZS5ncm91cElkKSwgImdyb3VwSWQgaXMgc3BlY2lmaWMgdG8gYSBkb2N1bWVudCIpOwor
ICAgIH0KKyAgfSwgImVudW1lcmF0ZURldmljZXMgcm90YXRlcyBkZXZpY2VJZCBhY3Jvc3MgZGlm
ZmVyZW50LW9yaWdpbiBpZnJhbWUiKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
aWZyYW1lLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCAiY2FtZXJhICdzcmMnO21pY3JvcGhvbmUgJ3Ny
YyciKTsKKyAgICBpZnJhbWUuc3JjID0gIi9tZWRpYWNhcHR1cmUtc3RyZWFtcy9pZnJhbWUtZW51
bWVyYXRlLWNsZWFyZWQuaHRtbCI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWUpOworICAgIGNvbnN0IGxvYWRXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBpZnJhbWUs
IFsnbG9hZCddKTsKKyAgICBhd2FpdCBsb2FkV2F0Y2hlci53YWl0X2ZvcignbG9hZCcpOworICAg
IGFzc2VydF9pbXBsZW1lbnRzX29wdGlvbmFsKGRvY3VtZW50LmNvb2tpZSA9PT0gIiIsICJDbGVh
ci1TaXRlLURhdGEgbm90IGVuYWJsZWQsIGNhbid0IHRlc3QgY2xlYXJpbmcgZGV2aWNlSWQiKTsK
KworICAgIGNvbnN0IG1zZ1dhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHdpbmRvdywgWydt
ZXNzYWdlJ10pOworICAgIGZyYW1lc1syXS5wb3N0TWVzc2FnZSgncnVuJywgJyonKQorICAgIGNv
bnN0IGUgPSBhd2FpdCBtc2dXYXRjaGVyLndhaXRfZm9yKCdtZXNzYWdlJyk7CisgICAgY29uc3Qg
aWZyYW1lRGV2aWNlcyA9IGUuZGF0YS5kZXZpY2VzOworICAgIGFzc2VydF9lcXVhbHMoZGV2aWNl
TGlzdC5sZW5ndGgsIGlmcmFtZURldmljZXMubGVuZ3RoLCAiU2FtZSBudW1iZXIgb2YgZGV2aWNl
cyBkZXRlY3RlZCBhZnRlciBjbGVhcmluZyBjb29raWVzIik7CisgICAgZm9yIChjb25zdCBkZXZp
Y2Ugb2YgZGV2aWNlTGlzdCkgeworICAgICAgY29uc3Qgc2FtZURldmljZSA9IGlmcmFtZURldmlj
ZXMuZmluZChkID0+IGQuZGV2aWNlSWQgPT09IGRldmljZS5kZXZpY2VJZCk7CisgICAgICBhc3Nl
cnRfZmFsc2UoISFzYW1lRGV2aWNlLCAiZGV2aWNlSWRzIGFyZSBub3Qga2VwdCBhZnRlciBjbGVh
cmluZyBzaXRlIGRhdGEiKTsKKyAgICAgIGFzc2VydF9mYWxzZSghIWlmcmFtZURldmljZXMuZmlu
ZChkID0+IGQuZ3JvdXBJZCA9PT0gZGV2aWNlLmdyb3VwSWQpLCAiZ3JvdXBJZCBpcyBzcGVjaWZp
YyB0byBhIGRvY3VtZW50Iik7CisgICAgfQorCisgIH0sICJlbnVtZXJhdGVEZXZpY2VzIHJvdGF0
ZXMgZGV2aWNlSWQgYWZ0ZXIgY2xlYXJpbmcgc2l0ZSBkYXRhIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRl
RGV2aWNlcy1wZXJzaXN0ZW50LXBlcm1pc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1wZXJzaXN0ZW50LXBlcm1pc3Npb24uaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5YzRjZDhhMmFlZGY1YTA2MGRkZTI4NjU1YWUx
ZDJhMWQ3OGI3NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1lbnVt
ZXJhdGVEZXZpY2VzLXBlcnNpc3RlbnQtcGVybWlzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitDT05TT0xFIE1FU1NBR0U6IEZlYXR1cmUgcG9saWN5ICdNaWNyb3Bob25l
JyBjaGVjayBmYWlsZWQgZm9yIGlmcmFtZSB3aXRoIG9yaWdpbiAnaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MycgYW5kIGFsbG93IGF0dHJpYnV0ZSAnY2FtZXJhICdzcmMnO21pY3JvcGhvbmUgJ3NyYycn
LgorQ09OU09MRSBNRVNTQUdFOiBOb3QgYWxsb3dlZCB0byBjYWxsIGdldFVzZXJNZWRpYS4KK0NP
TlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBOb3RBbGxvd2VkRXJy
b3I6IFRoZSByZXF1ZXN0IGlzIG5vdCBhbGxvd2VkIGJ5IHRoZSB1c2VyIGFnZW50IG9yIHRoZSBw
bGF0Zm9ybSBpbiB0aGUgY3VycmVudCBjb250ZXh0LCBwb3NzaWJseSBiZWNhdXNlIHRoZSB1c2Vy
IGRlbmllZCBwZXJtaXNzaW9uLgorCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAorCitUSU1FT1VUIGVudW1lcmF0ZURldmljZXMgZGVwZW5kcyBvbmx5IG9uIGNhcHR1
cmUgc3RhdGUsIG5vdCBwZXJtaXNzaW9uIHN0YXRlIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMtcGVyc2lzdGVudC1wZXJt
aXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2Vz
LXBlcnNpc3RlbnQtcGVybWlzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1MzMwOWNhMWE5
NzgzMWZjMDMwMWE4ZGEzY2VhYzViOTI1OTg3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLXBlcnNpc3RlbnQtcGVybWlzc2lvbi5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5lbnVtZXJhdGVEZXZpY2VzIGRlcGVuZHMgb25seSBvbiBjYXB0dXJlIHN0YXRlLCBu
b3QgcGVybWlzc2lvbiBzdGF0ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5qcz48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8c2NyaXB0PgorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
YXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvIDogdHJ1ZSwgdmlkZW86IHRy
dWV9KTsKKyAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHQuc3RvcCgpKTsKKyAg
ICAvLyB0aGUgcGFnZSBsb2FkZWQgYmVsb3cgaGFzbid0IGhhZCBjYXB0dXJlIGVuYWJsZWQKKyAg
ICAvLyBzbyBlbnVtZXJhdGVEZXZpY2VzIHNob3VsZCBub3QgbGlzdCBkZXRhaWxlZCBpbmZvIHll
dAorICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoImFsbG93IiwgImNhbWVyYSAnc3JjJzttaWNyb3Bob25l
ICdzcmMnIik7CisgICAgaWZyYW1lLnNyYyA9ICIvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1l
LWVudW1lcmF0ZS5odG1sIjsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7
CisgICAgY29uc3QgbG9hZFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGlmcmFtZSwgWyds
b2FkJ10pOworICAgIGF3YWl0IGxvYWRXYXRjaGVyLndhaXRfZm9yKCdsb2FkJyk7CisgICAgY29u
c3QgbXNnV2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgd2luZG93LCBbJ21lc3NhZ2UnXSk7
CisgICAgZnJhbWVzWzBdLnBvc3RNZXNzYWdlKCdydW4nLCAnKicpCisgICAgY29uc3QgZSA9IGF3
YWl0IG1zZ1dhdGNoZXIud2FpdF9mb3IoJ21lc3NhZ2UnKTsKKyAgICBjb25zdCBpZnJhbWVEZXZp
Y2VzID0gZS5kYXRhLmRldmljZXM7CisgICAgY29uc3Qga2luZHMgPSBpZnJhbWVEZXZpY2VzLm1h
cCgoe2tpbmR9KSA9PiBraW5kKTsKKyAgICBhc3NlcnRfZXF1YWxzKGtpbmRzLmxlbmd0aCA9PSBu
ZXcgU2V0KGtpbmRzKS5zaXplLCAiQXQgbW9zdCBvbmUgb2YgYSBraW5kIHByaW9yIHRvIGNhcHR1
cmUiKTsKKyAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBpZnJhbWVEZXZpY2VzKSB7CisgICAgICBh
c3NlcnRfZXF1YWxzKGRldmljZS5kZXZpY2VJZCwgIiIsICJkZXZpY2VJZCBwcmUtY2FwdHVyZSBp
cyBlbXB0eSIpOworICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2UubGFiZWwsICIiLCAibGFiZWwg
cHJlLWNhcHR1cmUgaXMgZW1wdHkiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoZGV2aWNlLmdyb3Vw
SWQsICIiLCAiZ3JvdXBJZCBwcmUtY2FwdHVyZSBpcyBlbXB0eSIpOworICAgIH0KKyAgfSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmlj
ZXMtcmV0dXJuZWQtb2JqZWN0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2
aWNlcy1lbnVtZXJhdGVEZXZpY2VzLXJldHVybmVkLW9iamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGMzZGNkZjY4YzQ3YmI4Y2EyNTgxYjQzMDQ3Nzg1MTkyZTU5NWEyNzcuLjMxYjdhZjhj
OTcxNmJjMjU3ODBlN2I0NzA4NWU5MjJlZDAxOTg2MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVk
aWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMtcmV0dXJuZWQtb2JqZWN0cy5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1yZXR1cm5l
ZC1vYmplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotUEFTUyBlbnVt
ZXJhdGVEZXZpY2VzIHJldHVybnMgbmV3IG9iamVjdHMgaW4gY2FzZSBkZXZpY2UtaW5mbyBwZXJt
aXNzaW9uIGlzIG5vdCBncmFudGVkCi1QQVNTIGVudW1lcmF0ZURldmljZXMgcmV0dXJucyBuZXcg
b2JqZWN0cyBpbiBjYXNlIGRldmljZS1pbmZvIHBlcm1pc3Npb24gaXMgZ3JhbnRlZAorUEFTUyBl
bnVtZXJhdGVEZXZpY2VzIHJldHVybnMgZXhwZWN0ZWQgbW9zdGx5IGVtcHR5IG9iamVjdHMgaW4g
Y2FzZSBkZXZpY2UtaW5mbyBwZXJtaXNzaW9uIGlzIG5vdCBncmFudGVkCitQQVNTIGVudW1lcmF0
ZURldmljZXMgcmV0dXJucyBleHBlY3RlZCBvYmplY3RzIGluIGNhc2UgZGV2aWNlLWluZm8gcGVy
bWlzc2lvbiBpcyBncmFudGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVu
dW1lcmF0ZURldmljZXMtcmV0dXJuZWQtb2JqZWN0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRp
YURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1yZXR1cm5lZC1vYmplY3RzLmh0dHBzLmh0bWwKaW5k
ZXggMTc3YmViNmMyYjk0MWU4NzIxYTYxOGZjNzA2YTkyMmRjMWY1MjI5MS4uMmI1Njg3ZjY3MmI5
ZjZlYzI4OGJlNzAwM2MzNjFmOTZhZjgzYTEwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURl
dmljZXMtZW51bWVyYXRlRGV2aWNlcy1yZXR1cm5lZC1vYmplY3RzLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1yZXR1cm5lZC1vYmplY3RzLmh0
dHBzLmh0bWwKQEAgLTQsMTQgKzQsMTkgQEAKIDx0aXRsZT5lbnVtZXJhdGVEZXZpY2VzIGlzIHJl
dHVybmluZyBuZXcgTWVkaWFEZXZpY2VJbmZvIG9iamVjdHMgZXZlcnkgdGltZTwvdGl0bGU+CiA8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9u
LWhlbHBlci5qcz48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KIGZ1bmN0aW9u
IGRvVGVzdChjYWxsR2V0VXNlck1lZGlhLCB0ZXN0TmFtZSkKIHsKICAgICBwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4gewotICAgICAgICBpZiAoY2FsbEdldFVzZXJNZWRpYSkKKyAgICAgICAgaWYg
KGNhbGxHZXRVc2VyTWVkaWEpIHsKKyAgICAgICAgICAgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lv
bigpOwogICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoe2F1ZGlvIDogdHJ1ZSwgdmlkZW86IHRydWV9KTsKKyAgICAgICAgfQogCiAgICAgICAgIGNv
bnN0IGRldmljZUxpc3QxID0gIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRl
RGV2aWNlcygpOwogICAgICAgICBjb25zdCBkZXZpY2VMaXN0MiA9ICBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTsKQEAgLTIzLDEyICsyOCwzMiBAQCBmdW5j
dGlvbiBkb1Rlc3QoY2FsbEdldFVzZXJNZWRpYSwgdGVzdE5hbWUpCiAgICAgICAgICAgICBhc3Nl
cnRfbm90X2VxdWFscyhkZXZpY2UxLCBkZXZpY2UyKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZGV2aWNlMS5kZXZpY2VJZCwgZGV2aWNlMi5kZXZpY2VJZCwgImRldmljZUlkIik7CiAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRldmljZTEua2luZCwgZGV2aWNlMi5raW5kLCAia2luZCIp
OworICAgICAgICAgICAgaWYgKCFjYWxsR2V0VXNlck1lZGlhKSB7CisgICAgICAgICAgICAgIC8q
IEZvciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgZGV2aWNlcywKKyAgICAgICAgICAgICAgIGlmIHRo
ZSBicm93c2luZyBjb250ZXh0IGRpZCBub3QgY2FwdHVyZSAoaS5lLiBnZXRVc2VyTWVkaWEoKSB3
YXMgbm90IGNhbGxlZCBvciBuZXZlciByZXNvbHZlZCBzdWNjZXNzZnVsbHkpLAorICAgICAgICAg
ICAgICAgdGhlIE1lZGlhRGV2aWNlSW5mbyBvYmplY3Qgd2lsbCBjb250YWluIGEgdmFsaWQgdmFs
dWUgZm9yIGtpbmQKKyAgICAgICAgICAgICAgIGJ1dCBlbXB0eSBzdHJpbmdzIGZvciBkZXZpY2VJ
ZCwgbGFiZWwsIGFuZCBncm91cElkLiAqLworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRl
dmljZTEuZGV2aWNlSWQsICIiLCAiZGV2aWNlSWQgaXMgZW1wdHkgYmVmb3JlIGNhcHR1cmUiKTsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkZXZpY2UxLmdyb3VwSWQsICIiLCAiZ3JvdXBJ
ZCBpcyBlbXB0eSBiZWZvcmUgY2FwdHVyZSIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGRldmljZTEubGFiZWwsICIiLCAibGFiZWwgaXMgZW1wdHkgYmVmb3JlIGNhcHR1cmUiKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2luX2FycmF5KGRldmljZTEua2luZCwgWyJhdWRpb2lucHV0Iiwg
ImF1ZGlvb3V0cHV0IiwgInZpZGVvaW5wdXQiLCAia2luZCBpcyBzZXQgdG8gYSB2YWxpZCB2YWx1
ZSBiZWZvcmUgY2FwdHVyZSJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAv
KiBBZGRpdGlvbmFsbHksIGF0IG1vc3Qgb25lIGRldmljZSBvZiBlYWNoIGtpbmQKKyAgICAgICAg
ICAgd2lsbCBiZSBsaXN0ZWQgaW4gZW51bWVyYXRlRGV2aWNlcygpIHJlc3VsdC4gKi8KKyAgICAg
ICAgLy8gRklYTUU6IGVuc3VyZSBicm93c2VycyBhcmUgdGVzdGVkIGFzIGlmIHRoZXkgaGFkIG11
bHRpcGxlIGRldmljZXMgb2YgYXQgbGVhc3Qgb25lIGtpbmQgLQorICAgICAgICAvLyB0aGlzIHBy
b2JhYmx5IG5lZWRzIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtYXV0b21hdGlv
bi8gc3VwcG9ydAorICAgICAgICBpZiAoIWNhbGxHZXRVc2VyTWVkaWEpIHsKKyAgICAgICAgICAg
IGNvbnN0IGRldmljZUtpbmRzID0gZGV2aWNlTGlzdDEubWFwKGQgPT4gZC5raW5kKTsKKyAgICAg
ICAgICAgIGZvciAobGV0IGtpbmQgb2YgZGV2aWNlS2luZHMpIHsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkZXZpY2VLaW5kcy5maWx0ZXIoeCA9PiB4PT09a2luZCkubGVuZ3RoLCAxLCAi
QXQgbW9zdCAxICIgKyBraW5kICsgIiBwcmlvciB0byBjYXB0dXJlIik7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9LCB0ZXN0TmFtZSk7CiB9CiAKLWRvVGVzdChmYWxzZSwgImVudW1l
cmF0ZURldmljZXMgcmV0dXJucyBuZXcgb2JqZWN0cyBpbiBjYXNlIGRldmljZS1pbmZvIHBlcm1p
c3Npb24gaXMgbm90IGdyYW50ZWQiKTsKLWRvVGVzdCh0cnVlLCAiZW51bWVyYXRlRGV2aWNlcyBy
ZXR1cm5zIG5ldyBvYmplY3RzIGluIGNhc2UgZGV2aWNlLWluZm8gcGVybWlzc2lvbiBpcyBncmFu
dGVkIik7Citkb1Rlc3QoZmFsc2UsICJlbnVtZXJhdGVEZXZpY2VzIHJldHVybnMgZXhwZWN0ZWQg
bW9zdGx5IGVtcHR5IG9iamVjdHMgaW4gY2FzZSBkZXZpY2UtaW5mbyBwZXJtaXNzaW9uIGlzIG5v
dCBncmFudGVkIik7Citkb1Rlc3QodHJ1ZSwgImVudW1lcmF0ZURldmljZXMgcmV0dXJucyBleHBl
Y3RlZCBvYmplY3RzIGluIGNhc2UgZGV2aWNlLWluZm8gcGVybWlzc2lvbiBpcyBncmFudGVkIik7
CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFE
ZXZpY2VzLWVudW1lcmF0ZURldmljZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2Vz
LWVudW1lcmF0ZURldmljZXMuaHR0cHMuaHRtbAppbmRleCA5MjUxMmVlZjAxMjliYmM2ZDQ3OTFh
ZDgyMjg3YjVjN2NlNjdmZDU2Li40OTcxZjRmYzQ4MjgwYzQyMzg4ZDI0MDg1ZTM1ZGRlMDdlMGQ5
YjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy5odHRw
cy5odG1sCkBAIC0xMyw2ICsxMyw5IEBACiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rk
cml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIu
anM+PC9zY3JpcHQ+CiA8c2NyaXB0PgogInVzZSBzdHJpY3QiOwogCkBAIC0zNCw2ICszNyw3IEBA
IHByb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CiB9LCAibWVkaWFEZXZpY2VzLmVudW1lcmF0ZURl
dmljZXMoKSBpcyBwcmVzZW50IGFuZCB3b3JraW5nIC0gYmVmb3JlIGNhcHR1cmUiKTsKIAogcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJncmFu
dGVkIiwgWyJtaWNyb3Bob25lIl0pOwogICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7IGF1ZGlvIDogdHJ1ZSB9KTsKICAgY29uc3QgZGV2aWNlTGlzdCA9ICBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTsKICAgZm9yIChjb25z
dCBtZWRpYUluZm8gb2YgZGV2aWNlTGlzdCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURl
dmljZXMtZ2V0VXNlck1lZGlhLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1nZXRV
c2VyTWVkaWEuaHR0cHMuaHRtbAppbmRleCA2OTNmM2JkMTFjZmFhNmJlN2NhMjFiYWUxMTA0Njdj
MjY1YmU1YTA3Li45NjM5OWM4MDRmY2YzNWU1YTJmNTU0ZWFlNmYyZTJkYmMyYWQ4ZGI1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHR0cHMuaHRtbApAQCAtMTMsMTEg
KzEzLDE0IEBACiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpz
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+CiA8
c2NyaXB0PgogdGVzdChmdW5jdGlvbiAoKSB7Ci0gIGFzc2VydF90cnVlKHVuZGVmaW5lZCAhPT0g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEsICJuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSBleGlzdHMuIik7CisgIGFzc2VydF9ub3RfZXF1YWxzKG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhLCB1bmRlZmluZWQsICJuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSBleGlzdHMuIik7CiAgIC8vIFRPRE86IGRvIHNvbWUgc3R1ZmYg
d2l0aCBpdAotICBhc3NlcnRfdHJ1ZSh1bmRlZmluZWQgIT09IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0U3VwcG9ydGVkQ29uc3RyYWludHMsICJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFN1
cHBvcnRlZENvbnN0cmFpbnRzIGV4aXN0cy4iKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMobmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRTdXBwb3J0ZWRDb25zdHJhaW50cywgdW5kZWZpbmVkLCAibmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRTdXBwb3J0ZWRDb25zdHJhaW50cyBleGlzdHMuIik7CiAg
IHZhciBsaXN0ID0gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRTdXBwb3J0ZWRDb25zdHJhaW50
cygpOwogICAvLyBUT0RPOiB3ZSBhcmUgc3VwcG9zZWQgdG8gY2hlY2sgdGhhdCBhbGwgdmFsdWVz
IHJldHVybmVkIGNhbiBiZSB1c2VkIGluIGEgY29uc3RyYWludCAuLi4uCiAgIC8vIE5PVEU6IHRo
ZSBjdXJyZW50IGxpc3Qgb2YgYXR0cmlidXRlcyB0aGF0IG1heSBvciBtYXkgbm90IGJlIGhlcmUK
QEAgLTM4LDYgKzQxLDggQEAgdGVzdChmdW5jdGlvbiAoKSB7CiAgIH0sICJtZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKCkgaXMgcHJlc2VudCBvbiBuYXZpZ2F0b3IiKTsKIAogcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAvLyBCb3RoIHBlcm1pc3Npb25zIGFyZSBuZWVkZWQgYXQgc29tZSBw
b2ludCwgYXNraW5nIGJvdGggYXQgb25jZQorICBhd2FpdCBzZXRNZWRpYVBlcm1pc3Npb24oKTsK
ICAgYXNzZXJ0X3RydWUobmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRTdXBwb3J0ZWRDb25zdHJh
aW50cygpWyJncm91cElkIl0sCiAgICAgImdyb3VwSWQgc2hvdWxkIGJlIHN1cHBvcnRlZCIpOwog
ICBjb25zdCBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVE
ZXZpY2VzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1m
aXJzdGZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1m
aXJzdGZyYW1lLmh0dHBzLmh0bWwKaW5kZXggNzE0YWUwMWIxOWNjYzIzZGFkMmQ2MDFhODg0M2Fk
YzQ0YmI3Yjg0Mi4uMzY2NDFiNThjOTFmNzQ4MDg3ODNkMTA3ODE4NTI0MDMyNmEwNjI5NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtZmlyc3RmcmFtZS5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LWZpcnN0ZnJhbWUu
aHR0cHMuaHRtbApAQCAtMTMsNiArMTMsOSBAQCBhdXRvcGxheWluZy48L3A+CiA8dmlkZW8gaWQ9
InZpZCI+PC92aWRlbz4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdD4KICd1c2Ugc3Ry
aWN0JzsKIGNvbnN0IHZpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWQiKTsKQEAgLTIz
LDYgKzI2LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIHByb21pc2UsCiAgICAg
d2FpdCh0aW1lKS50aGVuKCgpID0+IFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihtc2cpKSkKICAg
XSk7CisgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lvbigiZ3JhbnRlZCIsIFsiY2FtZXJhIl0pOwog
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9KTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tz
KCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgdmlkLnNyY09iamVjdCA9IHN0
cmVhbTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXByZWxv
YWQtbm9uZS1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1N
ZWRpYUVsZW1lbnQtcHJlbG9hZC1ub25lLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2Nzk3YTdkMWUyZTljODI0MjVmMzIwNGU5ZDNkYjdm
NzUwNTg5NzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtcHJlbG9hZC1ub25lLW1hbnVhbC5odHRw
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVdoZW4gcHJvbXB0
ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3VyIGF1ZGlvIGFuZCB2aWRlbyBzdHJlYW1zLgotCi1UaGlz
IHRlc3QgY2hlY2tzIHRoYXQgdGhlIEhUTUxNZWRpYUVsZW1lbnQgcHJlbG9hZCAnbm9uZScgYXR0
cmlidXRlIHZhbHVlIGlzIGlnbm9yZWQgZm9yIE1lZGlhU3RyZWFtIHVzZWQgYXMgc3JjT2JqZWN0
IGFuZCBNZWRpYVN0cmVhbSBvYmplY3QgVVJMcyB1c2VkIGFzIHNyYy4KLQotCi1GQUlMIFRlc3Qg
dGhhdCBwcmVsb2FkICdub25lJyBpcyBpZ25vcmVkIGZvciBNZWRpYVN0cmVhbSBvYmplY3QgVVJM
IHVzZWQgYXMgc3JjT2JqZWN0IGZvciBhdWRpbyBhc3NlcnRfdW5yZWFjaGVkOiAnc3VzcGVuZCcg
c2hvdWxkIG5vdCBiZSBmaXJlZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFRlc3Qg
dGhhdCBwcmVsb2FkICdub25lJyBpcyBpZ25vcmVkIGZvciBNZWRpYVN0cmVhbSB1c2VkIGFzIHNy
Y09iamVjdCBmb3IgdmlkZW8gYXNzZXJ0X3VucmVhY2hlZDogJ3N1c3BlbmQnIHNob3VsZCBub3Qg
YmUgZmlyZWQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1wcmVsb2FkLW5vbmUtbWFudWFsLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1wcmVsb2FkLW5vbmUtbWFudWFsLmh0
dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1OGEyNzNiYjE5MmJlYTY3
Nzc2ZDQzMjEyNWQ1NDhiZmViZDVmZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtcHJlbG9hZC1u
b25lLW1hbnVhbC5odHRwcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHRpdGxlPlRlc3QgdGhh
dCB0aGUgSFRNTE1lZGlhRWxlbWVudCBwcmVsb2FkICdub25lJyBhdHRyaWJ1dGUgdmFsdWUgaXMg
aWdub3JlZCBmb3IgTWVkaWFTdHJlYW0gdXNlZCBhcyBzcmNPYmplY3QgYW5kIE1lZGlhU3RyZWFt
IG9iamVjdCBVUkxzIHVzZWQgYXMgc3JjLjwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWF0dGhldyBXb2xlbmV0eiIgaHJlZj0ibWFpbHRvOndvbGVuZXR6QGNocm9t
aXVtLm9yZyIvPgotICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxw
IGNsYXNzPSJpbnN0cnVjdGlvbnMiPldoZW4gcHJvbXB0ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3Vy
IGF1ZGlvIGFuZCB2aWRlbyBzdHJlYW1zLjwvcD4KLSAgICAgICAgPHAgY2xhc3M9Imluc3RydWN0
aW9ucyI+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBIVE1MTWVkaWFFbGVtZW50IHByZWxvYWQg
J25vbmUnIGF0dHJpYnV0ZSB2YWx1ZSBpcyBpZ25vcmVkIGZvciBNZWRpYVN0cmVhbSB1c2VkIGFz
IHNyY09iamVjdCBhbmQgTWVkaWFTdHJlYW0gb2JqZWN0IFVSTHMgdXNlZCBhcyBzcmMuPC9wPgot
ICAgICAgICA8ZGl2IGlkPWxvZz48L2Rpdj4KLQotICAgICAgICA8YXVkaW8gcHJlbG9hZD0ibm9u
ZSI+PC9hdWRpbz4KLSAgICAgICAgPHZpZGVvIHByZWxvYWQ9Im5vbmUiPjwvdmlkZW8+Ci0KLSAg
ICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RQcmVsb2FkTm9uZSh0LCBt
ZWRpYUVsZW1lbnQsIHNldFNvdXJjZVN0cmVhbUZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgLy8gVGhlIG9wdGlvbmFsIGRlZmVycmVkIGxvYWQgc3RlcHMgKGZvciBwcmVsb2Fk
IG5vbmUpIGZvciBNZWRpYVN0cmVhbSByZXNvdXJjZXMgc2hvdWxkIGJlIHNraXBwZWQuCi0gICAg
ICAgICAgICAgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInN1c3BlbmQiLCB0LnVu
cmVhY2hlZF9mdW5jKCInc3VzcGVuZCcgc2hvdWxkIG5vdCBiZSBmaXJlZC4iKSk7Ci0gICAgICAg
ICAgICAgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCInZXJy
b3InIHNob3VsZCBub3QgYmUgZmlyZWQsIGNvZGU9IiArIG1lZGlhRWxlbWVudC5lcnJvci5jb2Rl
KTsKLSAgICAgICAgICAgICAgICB9KSk7Ci0KLSAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkZGF0YSIsIHQuc3RlcF9mdW5jKGZ1bmN0aW9uKCkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFF
bGVtZW50Lm5ldHdvcmtTdGF0ZSwgbWVkaWFFbGVtZW50Lk5FVFdPUktfTE9BRElORyk7Ci0gICAg
ICAgICAgICAgICAgICAgIHQuZG9uZSgpOwotICAgICAgICAgICAgICAgIH0pKTsKLQotICAgICAg
ICAgICAgICAgIHNldFNvdXJjZVN0cmVhbUZ1bmMoKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG1lZGlhRWxlbWVudC5uZXR3b3JrU3RhdGUsIG1lZGlhRWxlbWVudC5ORVRXT1JLX05P
X1NPVVJDRSk7IC8vIFJlc291cmNlIHNlbGVjdGlvbiBpcyBhY3RpdmUuCi0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2YXIgYXVkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYXVkaW8iKTsK
LSAgICAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVk
aW86dHJ1ZX0pCi0gICAgICAgICAgICAgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihz
dHJlYW0pCi0gICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgdGVzdFBy
ZWxvYWROb25lKHQsIGF1ZCwgdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7IGF1ZC5zcmNPYmplY3Qg
PSBzdHJlYW07IH0pKTsKLSAgICAgICAgICAgICAgICAgIH0pLAotICAgICAgICAgICAgICAgICAg
dC51bnJlYWNoZWRfZnVuYygiZ2V0VXNlck1lZGlhIGVycm9yIGNhbGxiYWNrIHdhcyBpbnZva2Vk
LiIpKTsKLSAgICAgICAgICAgIH0sICJUZXN0IHRoYXQgcHJlbG9hZCAnbm9uZScgaXMgaWdub3Jl
ZCBmb3IgTWVkaWFTdHJlYW0gb2JqZWN0IFVSTCB1c2VkIGFzIHNyY09iamVjdCBmb3IgYXVkaW8i
KTsKLQotICAgICAgICAgICAgYXN5bmNfdGVzdChmdW5jdGlvbih0KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHZhciB2aWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIp
OwotICAgICAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2
aWRlbzp0cnVlfSkKLSAgICAgICAgICAgICAgICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KHN0cmVhbSkKLSAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UHJlbG9hZE5vbmUodCwgdmlkLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgdmlkLnNyY09iamVj
dCA9IHN0cmVhbTsgfSkpOwotICAgICAgICAgICAgICAgICAgfSksIHQudW5yZWFjaGVkX2Z1bmMo
ImdldFVzZXJNZWRpYSBlcnJvciBjYWxsYmFjayB3YXMgaW52b2tlZC4iKSk7Ci0gICAgICAgICAg
ICB9LCAiVGVzdCB0aGF0IHByZWxvYWQgJ25vbmUnIGlzIGlnbm9yZWQgZm9yIE1lZGlhU3RyZWFt
IHVzZWQgYXMgc3JjT2JqZWN0IGZvciB2aWRlbyIpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxl
bWVudC1wcmVsb2FkLW5vbmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVh
bS1NZWRpYUVsZW1lbnQtcHJlbG9hZC1ub25lLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNGIxZDc3NTEwMzJlZjdiZTUwODBjZDAwYzU4NDdmZWIxMTMxNDJmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtcHJlbG9hZC1ub25lLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IEVycm9yOiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMQorV2hlbiBwcm9tcHRlZCwgYWNjZXB0
IHRvIHNoYXJlIHlvdXIgYXVkaW8gYW5kIHZpZGVvIHN0cmVhbXMuCisKK1RoaXMgdGVzdCBjaGVj
a3MgdGhhdCB0aGUgSFRNTE1lZGlhRWxlbWVudCBwcmVsb2FkICdub25lJyBhdHRyaWJ1dGUgdmFs
dWUgaXMgaWdub3JlZCBmb3IgTWVkaWFTdHJlYW0gdXNlZCBhcyBzcmNPYmplY3QgYW5kIE1lZGlh
U3RyZWFtIG9iamVjdCBVUkxzIHVzZWQgYXMgc3JjLgorCisKK0hhcm5lc3MgRXJyb3IgKEZBSUwp
LCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAxCisK
K0ZBSUwgVGVzdCB0aGF0IHByZWxvYWQgJ25vbmUnIGlzIGlnbm9yZWQgZm9yIE1lZGlhU3RyZWFt
IG9iamVjdCBVUkwgdXNlZCBhcyBzcmNPYmplY3QgZm9yIGF1ZGlvIGFzc2VydF91bnJlYWNoZWQ6
ICdzdXNwZW5kJyBzaG91bGQgbm90IGJlIGZpcmVkLiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
K0ZBSUwgVGVzdCB0aGF0IHByZWxvYWQgJ25vbmUnIGlzIGlnbm9yZWQgZm9yIE1lZGlhU3RyZWFt
IHVzZWQgYXMgc3JjT2JqZWN0IGZvciB2aWRlbyBhc3NlcnRfdW5yZWFjaGVkOiAnc3VzcGVuZCcg
c2hvdWxkIG5vdCBiZSBmaXJlZC4gUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXByZWxvYWQtbm9uZS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtcHJlbG9hZC1ub25lLmh0dHBz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTJhMTNhZjI3Mjg3YjkxNTJjM2U5NGViY2FiMzlmZGU5OGYyZDcz
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXBy
ZWxvYWQtbm9uZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UZXN0IHRoYXQgdGhlIEhUTUxNZWRp
YUVsZW1lbnQgcHJlbG9hZCAnbm9uZScgYXR0cmlidXRlIHZhbHVlIGlzIGlnbm9yZWQgZm9yIE1l
ZGlhU3RyZWFtIHVzZWQgYXMgc3JjT2JqZWN0IGFuZCBNZWRpYVN0cmVhbSBvYmplY3QgVVJMcyB1
c2VkIGFzIHNyYy48L3RpdGxlPgorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1h
dHRoZXcgV29sZW5ldHoiIGhyZWY9Im1haWx0bzp3b2xlbmV0ekBjaHJvbWl1bS5vcmciLz4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJwZXJtaXNzaW9uLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cCBjbGFzcz0i
aW5zdHJ1Y3Rpb25zIj5XaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUgeW91ciBhdWRpbyBh
bmQgdmlkZW8gc3RyZWFtcy48L3A+CisgICAgICAgIDxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRo
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgSFRNTE1lZGlhRWxlbWVudCBwcmVsb2FkICdub25lJyBh
dHRyaWJ1dGUgdmFsdWUgaXMgaWdub3JlZCBmb3IgTWVkaWFTdHJlYW0gdXNlZCBhcyBzcmNPYmpl
Y3QgYW5kIE1lZGlhU3RyZWFtIG9iamVjdCBVUkxzIHVzZWQgYXMgc3JjLjwvcD4KKyAgICAgICAg
PGRpdiBpZD1sb2c+PC9kaXY+CisKKyAgICAgICAgPGF1ZGlvIHByZWxvYWQ9Im5vbmUiPjwvYXVk
aW8+CisgICAgICAgIDx2aWRlbyBwcmVsb2FkPSJub25lIj48L3ZpZGVvPgorCisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0UHJlbG9hZE5vbmUobWVkaWFF
bGVtZW50LCBzdHJlYW0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbGV0IHJlamVj
dFN1c3BlbmRlZFByb21pc2UsIHJlamVjdEVycm9yUHJvbWlzZSwgcmVzb2x2ZURhdGFMb2FkZWRQ
cm9taXNlOworICAgICAgICAgICAgICAgIGNvbnN0IHN1c3BlbmRlZCA9IG5ldyBQcm9taXNlKChy
LCByZWopID0+IHsKKyAgICAgICAgICAgICAgICAgIHJlamVjdFN1c3BlbmRlZFByb21pc2UgPSBy
ZWo7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JlZCA9
IG5ldyBQcm9taXNlKChyLCByZWopID0+IHsKKyAgICAgICAgICAgICAgICAgIHJlamVjdEVycm9y
UHJvbWlzZSA9IHJlajsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBjb25z
dCBsb2FkZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgICAgIHJl
c29sdmVEYXRhTG9hZGVkUHJvbWlzZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICAgICAvLyBUaGUgb3B0aW9uYWwgZGVmZXJyZWQgbG9hZCBzdGVwcyAoZm9y
IHByZWxvYWQgbm9uZSkgZm9yIE1lZGlhU3RyZWFtIHJlc291cmNlcyBzaG91bGQgYmUgc2tpcHBl
ZC4KKyAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic3VzcGVu
ZCIsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgIHJlamVjdFN1c3BlbmRlZFByb21pc2UoIidz
dXNwZW5kJyBzaG91bGQgbm90IGJlIGZpcmVkLiIpCisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgbWVkaWFFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKCkgPT4g
eworICAgICAgICAgICAgICAgICAgcmVqZWN0RXJyb3JQcm9taXNlKCInZXJyb3InIHNob3VsZCBu
b3QgYmUgZmlyZWQsIGNvZGU9IiArIG1lZGlhRWxlbWVudC5lcnJvci5jb2RlKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkZWRkYXRhIiwgKCkgPT4geworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZWRpYUVsZW1lbnQubmV0d29ya1N0YXRlLCBtZWRpYUVsZW1lbnQuTkVUV09SS19MT0FESU5H
KTsKKyAgICAgICAgICAgICAgICAgIHJlc29sdmVEYXRhTG9hZGVkUHJvbWlzZSgpOworICAgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyY09iamVjdCA9
IHN0cmVhbTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhRWxlbWVudC5uZXR3
b3JrU3RhdGUsIG1lZGlhRWxlbWVudC5ORVRXT1JLX05PX1NPVVJDRSk7IC8vIFJlc291cmNlIHNl
bGVjdGlvbiBpcyBhY3RpdmUuCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICAgIGF3YWl0IFByb21pc2UucmFjZShbc3VzcGVuZGVkLCBlcnJvcmVkLCBsb2FkZWRdKTsKKyAg
ICAgICAgICAgICAgICB9IGNhdGNoIChtc2cpIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF91
bnJlYWNoZWQobXNnKTsKKyAgICAgICAgICAgICAgICB9CisyICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4KKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBhdWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhdWRpbyIpOworICAg
ICAgICAgICAgICAgIC8vIGNhbWVyYSBpcyBuZWVkZWQgZm9yIHRoZSBuZXh0IHRlc3QsIGFza2lu
ZyBmb3IgYm90aCBhdCBvbmNlCisgICAgICAgICAgICAgICAgYXdhaXQgc2V0TWVkaWFQZXJtaXNz
aW9uKCk7CisgICAgICAgICAgICAgICAgbGV0IHN0cmVhbTsKKyAgICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJnZXRVc2VyTWVkaWEgZXJy
b3IgY2FsbGJhY2sgd2FzIGludm9rZWQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGF3YWl0IHRlc3RQcmVsb2FkTm9uZShhdWQsIHN0cmVhbSk7CisgICAgICAgICAgICB9
LCAiVGVzdCB0aGF0IHByZWxvYWQgJ25vbmUnIGlzIGlnbm9yZWQgZm9yIE1lZGlhU3RyZWFtIG9i
amVjdCBVUkwgdXNlZCBhcyBzcmNPYmplY3QgZm9yIGF1ZGlvIik7CisKKyAgICAgICAgICAgIHBy
b21pc2VfdGVzdChhc3luYyAoKSA9PgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNv
bnN0IHZpZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CisgICAgICAgICAgICAg
ICAgbGV0IHN0cmVhbTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAg
c3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVv
OnRydWV9KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKCJnZXRVc2VyTWVkaWEgZXJyb3IgY2FsbGJhY2sgd2FzIGludm9r
ZWQuIikKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdFByZWxv
YWROb25lKHZpZCwgc3RyZWFtKTsKKworICAgICAgICAgICAgfSwgIlRlc3QgdGhhdCBwcmVsb2Fk
ICdub25lJyBpcyBpZ25vcmVkIGZvciBNZWRpYVN0cmVhbSB1c2VkIGFzIHNyY09iamVjdCBmb3Ig
dmlkZW8iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggOTE5YzgyY2QzZDk4MzY0OWRkOWQ0NjdmOGUzN2RiN2M1
ZjQ5ZmY3OS4uYjE0ZWQ5N2FhOTA1MTMyOGYzMDFhNmE3Y2ZlNmE4MzQ1ZjFhMjFmNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmpl
Y3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xOSw2ICsxOSw3IEBAIE5PVFJVTiBUZXN0cyB0aGF0
IGEgbWVkaWEgZWxlbWVudCB3aXRoIGFuIGFzc2lnbmVkIE1lZGlhU3RyZWFtIHJlcG9ydHMgdGhl
IHBsYXllCiBOT1RSVU4gVGVzdHMgdGhhdCBhIG1lZGlhIGVsZW1lbnQgd2l0aCBhbiBhc3NpZ25l
ZCBNZWRpYVN0cmVhbSByZXBvcnRzIHRoZSBjdXJyZW50VGltZSBhdHRyaWJ1dGUgYXMgZXhwZWN0
ZWQKIE5PVFJVTiBUZXN0cyB0aGF0IGEgbWVkaWEgZWxlbWVudCB3aXRoIGFuIGFzc2lnbmVkIE1l
ZGlhU3RyZWFtIHN0YXJ0cyBpdHMgdGltZWxpbmUgYXQgMCByZWdhcmRsZXNzIG9mIHdoZW4gdGhl
IE1lZGlhU3RyZWFtIHdhcyBjcmVhdGVkCiBOT1RSVU4gVGVzdHMgdGhhdCBhIG1lZGlhIGVsZW1l
bnQgd2l0aCBhbiBhc3NpZ25lZCBNZWRpYVN0cmVhbSBkb2VzIG5vdCBhZHZhbmNlIGN1cnJlbnRU
aW1lIHdoaWxlIHBhdXNlZAorTk9UUlVOIFRlc3RzIHRoYXQgYSBtZWRpYSBlbGVtZW50IHdpdGgg
YW4gYXNzaWduZWQgTWVkaWFTdHJlYW0gZG9lcyBub3Qgc3RhcnQgYWR2YW5jaW5nIGN1cnJlbnRU
aW1lIHVudGlsIHBvdGVudGlhbGx5IHBsYXlpbmcKIE5PVFJVTiBUZXN0cyB0aGF0IHRoZSBsb29w
IGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0IG9uIGEgbWVkaWEgZWxlbWVudCB3aXRoIGFuIGFzc2ln
bmVkIE1lZGlhU3RyZWFtCiBOT1RSVU4gVGVzdHMgdGhhdCBhIG1lZGlhIGVsZW1lbnQgd2l0aCBh
biBhc3NpZ25lZCBNZWRpYVN0cmVhbSBlbmRzIHdoZW4gdGhlIE1lZGlhU3RyZWFtIGJlY29tZXMg
aW5hY3RpdmUgdGhyb3VnaCB0cmFja3MgZW5kaW5nCiBOT1RSVU4gVGVzdHMgdGhhdCBhbiBhdWRp
byBlbGVtZW50IHdpdGggYW4gYXNzaWduZWQgTWVkaWFTdHJlYW0gZW5kcyB3aGVuIHRoZSBNZWRp
YVN0cmVhbSBiZWNvbWVzIGluYXVkaWJsZSB0aHJvdWdoIGF1ZGlvIHRyYWNrcyBlbmRpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXNyY09iamVjdC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBz
Lmh0bWwKaW5kZXggYzNlYTE2NjU0NTc0YWE4YzI2OWRiMjViNjMwMzZhM2M1OTRjNDk4Ni4uYmU2
NDEyMzA1ODlkNzVlYjUwZjFiYzA4YTdlYmY4ZDhkZjFiODdlNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwKQEAgLTE4
LDYgKzE4LDkgQEAgdmlhIHRoZSA8Y29kZT5zcmNPYmplY3Q8L2NvZGU+IGF0dHJpYnV0ZS48L3A+
CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
J3VzZSBzdHJpY3QnOwogY29uc3QgdmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZCIp
OwpAQCAtMjgsNiArMzEsNyBAQCBmdW5jdGlvbiBxdWV1ZVRhc2soZikgewogfQogCiBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lvbigpOwogICBjb25z
dCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlk
ZW86IHRydWV9KTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiB7CiAgICAgdmlkLnNyY09iamVjdCA9
IG51bGw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWFkZC1hdWRpby10cmFjay5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1hZGQtYXVkaW8tdHJhY2suaHR0cHMuaHRt
bAppbmRleCA1NDIzNzE4Y2RlNWRlNDg0Mjg1YzQ5NDk4NDA2N2VjYTc1MzRmODVlLi44ODA5NDFi
M2JhNjJkYTViYzlhOGYzMTc4N2YyNjBkMGQ2ODc4YjVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtLWFkZC1hdWRpby10cmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFT
dHJlYW0tYWRkLWF1ZGlvLXRyYWNrLmh0dHBzLmh0bWwKQEAgLTE0LDQwICsxNCwyOSBAQAogPGRp
diBpZD0nbG9nJz48L2Rpdj4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdD4KLXZhciB0
ID0gYXN5bmNfdGVzdCgiVGVzdHMgdGhhdCBhZGRpbmcgYSB0cmFjayB0byBhIE1lZGlhU3RyZWFt
IHdvcmtzIGFzIGV4cGVjdGVkIik7Ci10LnN0ZXAoZnVuY3Rpb24gKCkgewotICB2YXIgYXVkaW8s
IHZpZGVvOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBhd2FpdCBzZXRNZWRpYVBlcm1p
c3Npb24oKTsKKyAgY29uc3QgYXVkaW8gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgY29uc3QgdmlkZW8gPSBhd2FpdCBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KTsKKyAgYXNzZXJ0X2Vx
dWFscyh2aWRlby5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCwgMCwgInZpZGVvIG1lZGlhc3RyZWFt
IHN0YXJ0cyB3aXRoIG5vIGF1ZGlvIHRyYWNrIik7CisgIHZpZGVvLmFkZFRyYWNrKGF1ZGlvLmdl
dEF1ZGlvVHJhY2tzKClbMF0pOworICBhc3NlcnRfZXF1YWxzKHZpZGVvLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoLCAxLCAidmlkZW8gbWVkaWFzdHJlYW0gaGFzIG5vdyBvbmUgYXVkaW8gdHJhY2si
KTsKKyAgdmlkZW8uYWRkVHJhY2soYXVkaW8uZ2V0QXVkaW9UcmFja3MoKVswXSk7CisgIC8vIElm
IHRyYWNrIGlzIGFscmVhZHkgaW4gc3RyZWFtJ3MgdHJhY2sgc2V0LCB0aGVuIGFib3J0IHRoZXNl
IHN0ZXBzLgorICBhc3NlcnRfZXF1YWxzKHZpZGVvLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCAx
LCAidmlkZW8gbWVkaWFzdHJlYW0gc3RpbGwgaGFzIG9uZSBhdWRpbyB0cmFjayIpOwogCi0gIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pLnRoZW4oZ290
QXVkaW8pOwotICBmdW5jdGlvbiBnb3RBdWRpbyhzdHJlYW0pIHsKLSAgICBhdWRpbyA9IHN0cmVh
bTsKLSAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9
KS50aGVuKGdvdFZpZGVvKTsKLSAgfQorICBhdWRpby5vbmFkZHRyYWNrID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKCkgeworICAgIGFzc2VydF91bnJlYWNoZWQoIm9uYWRkdHJhY2sgaXMgbm90IGZp
cmVkIHdoZW4gdGhlIHNjcmlwdCBkaXJlY3RseSBtb2RpZmllZCB0aGUgdHJhY2sgb2YgYSBtZWRp
YXN0cmVhbSIpOworICB9KTsKIAotICBmdW5jdGlvbiBnb3RWaWRlbyhzdHJlYW0pIHsKLSAgICB2
aWRlbyA9IHN0cmVhbTsKLSAgICB0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgIGFzc2VydF9l
cXVhbHModmlkZW8uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIDAsICJ2aWRlbyBtZWRpYXN0cmVh
bSBzdGFydHMgd2l0aCBubyBhdWRpbyB0cmFjayIpOwotICAgICAgIHZpZGVvLmFkZFRyYWNrKGF1
ZGlvLmdldEF1ZGlvVHJhY2tzKClbMF0pOwotICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgsIDEsICJ2aWRlbyBtZWRpYXN0cmVhbSBoYXMgbm93IG9uZSBh
dWRpbyB0cmFjayIpOwotICAgICAgIHZpZGVvLmFkZFRyYWNrKGF1ZGlvLmdldEF1ZGlvVHJhY2tz
KClbMF0pOwotICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8uZ2V0QXVkaW9UcmFja3MoKS5sZW5n
dGgsIDEsICJ2aWRlbyBtZWRpYXN0cmVhbSBzdGlsbCBoYXMgb25lIGF1ZGlvIHRyYWNrIik7IC8v
IElmIHRyYWNrIGlzIGFscmVhZHkgaW4gc3RyZWFtJ3MgdHJhY2sgc2V0LCB0aGVuIGFib3J0IHRo
ZXNlIHN0ZXBzLgotCi0gICAgfSk7Ci0gICAgYXVkaW8ub25hZGR0cmFjayA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uICgpIHsKLSAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJvbmFkZHRyYWNrIGlzIG5v
dCBmaXJlZCB3aGVuIHRoZSBzY3JpcHQgZGlyZWN0bHkgbW9kaWZpZWQgdGhlIHRyYWNrIG9mIGEg
bWVkaWFzdHJlYW0iKTsKLSAgICB9KTsKLSAgICB0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAg
IGFzc2VydF9lcXVhbHMoYXVkaW8uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDAsICJhdWRpbyBt
ZWRpYXN0cmVhbSBzdGFydHMgd2l0aCBubyB2aWRlbyB0cmFjayIpOwotICAgICAgIGF1ZGlvLmFk
ZFRyYWNrKHZpZGVvLmdldFZpZGVvVHJhY2tzKClbMF0pOwotICAgICAgIGFzc2VydF9lcXVhbHMo
YXVkaW8uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJhdWRpbyBtZWRpYXN0cmVhbSBub3cg
aGFzIG9uZSB2aWRlbyB0cmFjayIpOwotICAgIH0pOwotICAgIHQuc3RlcChmdW5jdGlvbiAoKSB7
Ci0gICAgICAgdC5kb25lKCk7Ci0gICAgfSk7Ci0gIH0KLX0pOworICBhc3NlcnRfZXF1YWxzKGF1
ZGlvLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAwLCAiYXVkaW8gbWVkaWFzdHJlYW0gc3RhcnRz
IHdpdGggbm8gdmlkZW8gdHJhY2siKTsKKyAgYXVkaW8uYWRkVHJhY2sodmlkZW8uZ2V0VmlkZW9U
cmFja3MoKVswXSk7CisgIGFzc2VydF9lcXVhbHMoYXVkaW8uZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGgsIDEsICJhdWRpbyBtZWRpYXN0cmVhbSBub3cgaGFzIG9uZSB2aWRlbyB0cmFjayIpOworfSwg
IlRlc3RzIHRoYXQgYWRkaW5nIGEgdHJhY2sgdG8gYSBNZWRpYVN0cmVhbSB3b3JrcyBhcyBleHBl
Y3RlZCIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhU3RyZWFtLWF1ZGlvLW9ubHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0t
YXVkaW8tb25seS5odHRwcy5odG1sCmluZGV4IDFhZTBhY2Q3ZTUzOTk2MjM1ZWNkZDgwMjM1YzUw
ZDhiMGU3YTc4YzAuLjAzM2E3Y2M3NmUwODgzMTA4MDJjYjRhOGJlODdiNzMzZDQ2NTI4ZDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tYXVkaW8tb25seS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvTWVkaWFTdHJlYW0tYXVkaW8tb25seS5odHRwcy5odG1sCkBAIC0xNSwyMCArMTUs
MTggQEAgdGhlIHN1Y2Nlc3MgY2FsbGJhY2sgaW4gZ2V0VXNlck1lZGlhIGhhcyBleGFjdGx5IG9u
ZSBhdWRpbyB0cmFjay48L3A+CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotdmFyIGFzdHJlYW07Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3Rz
IHRoYXQgYSBNZWRpYVN0cmVhbSB3aXRoIGV4YWN0bHkgb25lIGF1ZGlvIHRyYWNrIGlzIHJldHVy
bmVkIik7Ci10LnN0ZXAoZnVuY3Rpb24oKSB7Ci0gIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoc3RyZWFt
KSB7Ci0gICAgYXN0cmVhbSA9IHN0cmVhbTsKLSAgICBhc3NlcnRfdHJ1ZShzdHJlYW0gaW5zdGFu
Y2VvZiBNZWRpYVN0cmVhbSwgImdldFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIGNvbWVzIHdp
dGggYSBNZWRpYVN0cmVhbSBvYmplY3QiKTsKLSAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCwgMSwgInRoZSBtZWRpYSBzdHJlYW0gaGFzIGV4YWN0bHkgb25l
IGF1ZGlvIHRyYWNrIik7Ci0gICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXS5raW5kLCAiYXVkaW8iLCAiZ2V0QXVkaW9UcmFja3MoKSByZXR1cm5zIGEgc2VxdWVuY2Ug
b2YgdHJhY2tzIHdob3NlIGtpbmQgaXMgJ2F1ZGlvJyIpOwotICAgIGFzc2VydF9lcXVhbHMoc3Ry
ZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAwLCAidGhlIG1lZGlhIHN0cmVhbSBoYXMgemVy
byB2aWRlbyB0cmFjayIpOwotICAgIHQuZG9uZSgpOwotICB9KSwKLSAgZnVuY3Rpb24oZXJyb3Ip
IHt9KTsKLX0pOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+ICB7CisgIGF3YWl0IHNldE1lZGlh
UGVybWlzc2lvbigpOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pOworICBhc3NlcnRfdHJ1ZShzdHJlYW0gaW5z
dGFuY2VvZiBNZWRpYVN0cmVhbSwgImdldFVzZXJNZWRpYSBzdWNjZXNzIGNhbGxiYWNrIGNvbWVz
IHdpdGggYSBNZWRpYVN0cmVhbSBvYmplY3QiKTsKKyAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgsIDEsICJ0aGUgbWVkaWEgc3RyZWFtIGhhcyBleGFjdGx5IG9u
ZSBhdWRpbyB0cmFjayIpOworICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
WzBdLmtpbmQsICJhdWRpbyIsICJnZXRBdWRpb1RyYWNrcygpIHJldHVybnMgYSBzZXF1ZW5jZSBv
ZiB0cmFja3Mgd2hvc2Uga2luZCBpcyAnYXVkaW8nIik7CisgIGFzc2VydF9lcXVhbHMoc3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoLCAwLCAidGhlIG1lZGlhIHN0cmVhbSBoYXMgemVybyB2
aWRlbyB0cmFjayIpOworfSwgIlRlc3RzIHRoYXQgYSBNZWRpYVN0cmVhbSB3aXRoIGV4YWN0bHkg
b25lIGF1ZGlvIHRyYWNrIGlzIHJldHVybmVkIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tY2xvbmUuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFTdHJlYW0tY2xvbmUuaHR0cHMuaHRtbAppbmRleCAxMzQ5MTg4MTVjM2QwOGUy
MDc3MWQ2MTc3MDIxY2QyNGM4OWI0Y2NiLi4wZmU2ZjM0OThiNGQyZTYwNDEwNDVhN2I1MDNlNGZk
ZmI5YzQ2MWUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWNsb25lLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1jbG9uZS5odHRwcy5odG1sCkBAIC0xMSw5ICsx
MSwxMyBAQAogPHAgY2xhc3M9Imluc3RydWN0aW9ucyI+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGNs
b25pbmcgTWVkaWFTdHJlYW1zIGFuZCBNZWRpYVN0cmVhbVRyYWNrcyB3b3JrcyBhcyBleHBlY3Rl
ZC48L3A+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1w
ZXJtaXNzaW9uLWhlbHBlci5qcz48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CiAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1
ZSwgYXVkaW86IHRydWV9KTsKICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KS5sZW5ndGgsIDEpOwogICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWRlZmF1bHQtZmVhdHVy
ZS1wb2xpY3kuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tZGVmYXVsdC1mZWF0dXJl
LXBvbGljeS5odHRwcy5odG1sCmluZGV4IDJlMzhiOWU2ODY0ZDQ1MjVkOGE2NDlhNzA5M2I5Zjgy
YTMwYTEwY2QuLmI4MTQwNGJmMzNjMmMzOWMzNDI5NzQwZjMxMDdmYzBiZThkODY0NDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tZGVmYXVsdC1mZWF0dXJlLXBvbGljeS5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tZGVmYXVsdC1mZWF0dXJlLXBvbGljeS5odHRw
cy5odG1sCkBAIC0xLDE0ICsxLDE5IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxib2R5PgotICA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KICAgPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXBlcm1pc3Npb24taGVscGVy
LmpzPjwvc2NyaXB0PgogICA8c2NyaXB0IHNyYz0vY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Pjwvc2NyaXB0PgogICA8c2NyaXB0IHNyYz0vZmVhdHVyZS1wb2xpY3kvcmVzb3VyY2VzL2ZlYXR1
cmVwb2xpY3kuanM+PC9zY3JpcHQ+CiAgIDxzY3JpcHQ+CiAgICd1c2Ugc3RyaWN0JzsKLQogICBh
c3luYyBmdW5jdGlvbiBnVU0oe2F1ZGlvLCB2aWRlb30pIHsKICAgICBsZXQgc3RyZWFtOworICAg
IGlmICghcGFnZV9sb2FkZWRfaW5faWZyYW1lKCkpIHsKKyAgICAgIGF3YWl0IHNldE1lZGlhUGVy
bWlzc2lvbigpOworICAgIH0KICAgICB0cnkgewogICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvLCB2aWRlb30pOwogICAgICAgLy8g
Z2V0VXNlck1lZGlhIG11c3QgZ3VhcmFudGVlIHRoZSBudW1iZXIgb2YgdHJhY2tzIHJlcXVlc3Rl
ZCBvciBmYWlsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1maW5pc2hlZC1hZGQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tZmluaXNoZWQtYWRkLmh0dHBzLmh0bWwK
aW5kZXggZmQxYTE1NjRjY2I1MDZjNzdhZjA5M2Y0MGRmYWZmYzA5Yzk2MjcxZS4uNzk3ZGIwNDQ0
ZTljYzA5MzgwMTQ5NTZhZTAxZmQ0YTM5MWU4OTBhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRp
YVN0cmVhbS1maW5pc2hlZC1hZGQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFt
LWZpbmlzaGVkLWFkZC5odHRwcy5odG1sCkBAIC0xNiwyOSArMTYsMjAgQEAgTWVkaWFTdHJlYW0g
aXMgYWxsb3dlZC48L3A+CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rk
cml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCJUZXN0cyB0aGF0IGFkZGluZyBhIHRy
YWNrIHRvIGFuIGluYWN0aXZlIE1lZGlhU3RyZWFtIGlzIGFsbG93ZWQiKTsKLXQuc3RlcChmdW5j
dGlvbiAoKSB7Ci0gIHZhciBhdWRpbywgdmlkZW87Ci0KLSAgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdEF1ZGlvKTsKLSAgZnVuY3Rpb24g
Z290QXVkaW8oc3RyZWFtKSB7Ci0gICAgYXVkaW8gPSBzdHJlYW07Ci0gICAgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9KS50aGVuKGdvdFZpZGVvKTsKLSAg
fQotCi0gIGZ1bmN0aW9uIGdvdFZpZGVvKHN0cmVhbSkgewotICAgIHZpZGVvID0gc3RyZWFtOwot
ICAgIHQuc3RlcChmdW5jdGlvbiAoKSB7Ci0gICAgICAgYXVkaW8uZ2V0QXVkaW9UcmFja3MoKVsw
XS5zdG9wKCk7Ci0gICAgICAgYXNzZXJ0X2ZhbHNlKGF1ZGlvLmFjdGl2ZSwgImF1ZGlvIHN0cmVh
bSBpcyBpbmFjdGl2ZSBhZnRlciBzdG9wcGluZyBpdHMgb25seSBhdWRpbyB0cmFjayIpOwotICAg
ICAgIGFzc2VydF90cnVlKHZpZGVvLmFjdGl2ZSwgInZpZGVvIHN0cmVhbSBpcyBhY3RpdmUiKTsK
LSAgICAgICBhdWRpby5hZGRUcmFjayh2aWRlby5nZXRWaWRlb1RyYWNrcygpWzBdKTsKLSAgICAg
ICBhdWRpby5yZW1vdmVUcmFjayhhdWRpby5nZXRBdWRpb1RyYWNrcygpWzBdKTsKLSAgICAgfSk7
Ci0gICAgdC5kb25lKCk7Ci0gIH0KLX0pOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAg
YXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CisgIGNvbnN0IGF1ZGlvID0gYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KTsKKyAgY29uc3Qgdmlk
ZW8gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86dHJ1
ZX0pOworICBhdWRpby5nZXRBdWRpb1RyYWNrcygpWzBdLnN0b3AoKTsKKyAgYXNzZXJ0X2ZhbHNl
KGF1ZGlvLmFjdGl2ZSwgImF1ZGlvIHN0cmVhbSBpcyBpbmFjdGl2ZSBhZnRlciBzdG9wcGluZyBp
dHMgb25seSBhdWRpbyB0cmFjayIpOworICBhc3NlcnRfdHJ1ZSh2aWRlby5hY3RpdmUsICJ2aWRl
byBzdHJlYW0gaXMgYWN0aXZlIik7CisgIGF1ZGlvLmFkZFRyYWNrKHZpZGVvLmdldFZpZGVvVHJh
Y2tzKClbMF0pOworICBhdWRpby5yZW1vdmVUcmFjayhhdWRpby5nZXRBdWRpb1RyYWNrcygpWzBd
KTsKK30sICJUZXN0cyB0aGF0IGFkZGluZyBhIHRyYWNrIHRvIGFuIGluYWN0aXZlIE1lZGlhU3Ry
ZWFtIGlzIGFsbG93ZWQiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1nZXR0cmFja2lkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtLWdldHRyYWNraWQuaHR0cHMuaHRtbAppbmRleCA4ZDk2ZmUzMjQ1Mjg1MDczZGI3
ZDQ2ZjgxY2RkZmNkYzA5NzgyYmRkLi45YTRhZWY5NzgyZWNiMGQwOWQ4M2I2YTM3Y2Y4OWIyODAx
MjUyZjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWdldHRyYWNraWQuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWdldHRyYWNraWQuaHR0cHMuaHRtbApAQCAt
MTMsMjAgKzEzLDE3IEBACiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rk
cml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCJUZXN0cyB0aGF0IE1lZGlhU3RyZWFt
LmdldFRyYWNrQnlJZCB3b3JrcyBhcyBleHBlY3RlZCIpOwotdC5zdGVwKGZ1bmN0aW9uICgpIHsK
LSAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkKLSAg
ICAgIC50aGVuKHQuc3RlcF9mdW5jKGdvdFZpZGVvKSwgdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGVy
cm9yKSB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ1VuZXhwZWN0ZWQgZ2V0VXNlck1lZGlh
IGVycm9yOiAnICsgZXJyb3IpOwotICAgICAgfSkpOwotICBmdW5jdGlvbiBnb3RWaWRlbyhzdHJl
YW0pIHsKLSAgICB2YXIgdHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKLSAgICBh
c3NlcnRfZXF1YWxzKHRyYWNrLCBzdHJlYW0uZ2V0VHJhY2tCeUlkKHRyYWNrLmlkKSwgImdldFRy
YWNrQnlJZCByZXR1cm5zIHRyYWNrIG9mIGdpdmVuIGlkIik7Ci0gICAgYXNzZXJ0X2VxdWFscyhz
dHJlYW0uZ2V0VHJhY2tCeUlkKHRyYWNrLmlkICsgImZvbyIpLCBudWxsLCAiZ2V0VHJhY2tCeUlk
IG9mIGluZXhpc3RhbnQgaWQgIHJldHVybnMgbnVsbCIpOwotICAgIHQuZG9uZSgpOwotICB9Ci19
KTsKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lv
bigiZ3JhbnRlZCIsIFsiY2FtZXJhIl0pOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCAgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgIHZhciB0cmFj
ayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworICBhc3NlcnRfZXF1YWxzKHRyYWNrLCBz
dHJlYW0uZ2V0VHJhY2tCeUlkKHRyYWNrLmlkKSwgImdldFRyYWNrQnlJZCByZXR1cm5zIHRyYWNr
IG9mIGdpdmVuIGlkIik7CisgIGFzc2VydF9lcXVhbHMoc3RyZWFtLmdldFRyYWNrQnlJZCh0cmFj
ay5pZCArICJmb28iKSwgbnVsbCwgImdldFRyYWNrQnlJZCBvZiBpbmV4aXN0YW50IGlkICByZXR1
cm5zIG51bGwiKTsKK30sICJUZXN0cyB0aGF0IE1lZGlhU3RyZWFtLmdldFRyYWNrQnlJZCB3b3Jr
cyBhcyBleHBlY3RlZCIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhU3RyZWFtLWlkLW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGM2Y2QwM2MyOTlkOTlmYjRhNzQ0YmM5YmM5N2NmNzFkM2Q3MjU0
NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9NZWRpYVN0cmVhbS1pZC1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi1XaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUgeW91ciB2aWRl
byBzdHJlYW0uCi0KLURlc2NyaXB0aW9uCi0KLVRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgTWVk
aWFTdHJlYW0gb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBzdWNjZXNzIGNhbGxiYWNrIGluIGdldFVz
ZXJNZWRpYSBoYXMgYSBjb3JyZWN0IGlkLgotCi0KLVBBU1MgVGVzdHMgdGhhdCBhIE1lZGlhU3Ry
ZWFtIHdpdGggYSBjb3JyZWN0IGlkIGlzIHJldHVybmVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFTdHJlYW0taWQtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlk
LW1hbnVhbC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWI2ZDYw
YjYxMDlhOGM5Yjc3NDk5MjU2MTAxNjY4NTAwOWYyMDJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0taWQtbWFudWFsLmh0
dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+Z2V0VXNlck1lZGlhKCkgY3JlYXRlcyBhIHN0cmVhbSB3
aXRoIGEgcHJvcGVyIGlkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRG9taW5p
cXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3My5vcmciLz4KLTxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL2Rldi53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL2dldHVz
ZXJtZWRpYS5odG1sI3dpZGwtTWVkaWFTdHJlYW0taWQiPgotPC9oZWFkPgotPGJvZHk+Ci08cCBj
bGFzcz0iaW5zdHJ1Y3Rpb25zIj5XaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUgeW91ciB2
aWRlbyBzdHJlYW0uPC9wPgotPGgxIGNsYXNzPSJpbnN0cnVjdGlvbnMiPkRlc2NyaXB0aW9uPC9o
MT4KLTxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPlRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgTWVk
aWFTdHJlYW0gb2JqZWN0IHJldHVybmVkIGJ5Ci10aGUgc3VjY2VzcyBjYWxsYmFjayBpbiBnZXRV
c2VyTWVkaWEgaGFzIGEgY29ycmVjdCBpZC48L3A+Ci0KLTxkaXYgaWQ9J2xvZyc+PC9kaXY+Ci08
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12
YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3RzIHRoYXQgYSBNZWRpYVN0cmVhbSB3aXRoIGEgY29ycmVj
dCBpZCBpcyByZXR1cm5lZCIpOwotdmFyIGFsbG93ZWRDaGFyYWN0ZXJzID0gL15bXHUwMDIxXHUw
MDIzLVx1MDAyN1x1MDAyQS1cdTAwMkJcdTAwMkQtXHUwMDJFXHUwMDMwLVx1MDAzOVx1MDA0MS1c
dTAwNUFcdTAwNUUtXHUwMDdFXSokLzsKLWlmICh3aW5kb3cubmF2aWdhdG9yLm1lZGlhRGV2aWNl
cyAmJiB3aW5kb3cubmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEpIHsKLSAgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOnRydWV9KS50aGVuKGZ1bmN0
aW9uIChzdHJlYW0pIHsKLSAgICB0LnN0ZXAoZnVuY3Rpb24gKCkgewotICAgICAgIGFzc2VydF90
cnVlKHN0cmVhbS5pZC5sZW5ndGggPT09IDM2LCAidGhlIG1lZGlhIHN0cmVhbSBpZCBoYXMgMzYg
Y2hhcmFjdGVycyIpOwotICAgICAgIGFzc2VydF9yZWdleHBfbWF0Y2goc3RyZWFtLmlkLCBhbGxv
d2VkQ2hhcmFjdGVycywgInRoZSBtZWRpYSBzdHJlYW0gaWQgdXNlcyB0aGUgc2V0IG9mIGFsbG93
ZWQgY2hhcmFjdGVycyIpOwotICAgIH0pOwotICAgIHQuZG9uZSgpOwotICB9KTsKLX0KLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1p
ZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlkLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNmNkMDNjMjk5ZDk5ZmI0YTc0NGJjOWJjOTdjZjcxZDNkNzI1
NDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1pZC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitXaGVuIHByb21wdGVkLCBhY2NlcHQgdG8gc2hhcmUg
eW91ciB2aWRlbyBzdHJlYW0uCisKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCBjaGVja3MgdGhh
dCB0aGUgTWVkaWFTdHJlYW0gb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBzdWNjZXNzIGNhbGxiYWNr
IGluIGdldFVzZXJNZWRpYSBoYXMgYSBjb3JyZWN0IGlkLgorCisKK1BBU1MgVGVzdHMgdGhhdCBh
IE1lZGlhU3RyZWFtIHdpdGggYSBjb3JyZWN0IGlkIGlzIHJldHVybmVkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvTWVkaWFTdHJlYW0taWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0t
aWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzRmZTA1MjliOTUzYjE1MDc1N2JlNmU1MjVhOWEz
YWQ5ZTk3OGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1pZC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5nZXRVc2VyTWVkaWEoKSBjcmVhdGVzIGEgc3RyZWFtIHdpdGggYSBwcm9wZXIgaWQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJEb21pbmlxdWUgSGF6YWVsLU1hc3Np
ZXV4IiBocmVmPSJtYWlsdG86ZG9tQHczLm9yZyIvPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3IvZ2V0dXNlcm1lZGlhLmh0bWwjd2lk
bC1NZWRpYVN0cmVhbS1pZCI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGNsYXNzPSJpbnN0cnVjdGlv
bnMiPldoZW4gcHJvbXB0ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3VyIHZpZGVvIHN0cmVhbS48L3A+
Cis8aDEgY2xhc3M9Imluc3RydWN0aW9ucyI+RGVzY3JpcHRpb248L2gxPgorPHAgY2xhc3M9Imlu
c3RydWN0aW9ucyI+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBNZWRpYVN0cmVhbSBvYmplY3Qg
cmV0dXJuZWQgYnkKK3RoZSBzdWNjZXNzIGNhbGxiYWNrIGluIGdldFVzZXJNZWRpYSBoYXMgYSBj
b3JyZWN0IGlkLjwvcD4KKworPGRpdiBpZD0nbG9nJz48L2Rpdj4KKzxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZl
bmRvci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2NvbnN0IGFsbG93ZWRDaGFyYWN0ZXJzID0gL15bXHUwMDIxXHUwMDIz
LVx1MDAyN1x1MDAyQS1cdTAwMkJcdTAwMkQtXHUwMDJFXHUwMDMwLVx1MDAzOVx1MDA0MS1cdTAw
NUFcdTAwNUUtXHUwMDdFXSokLzsKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0
IHNldE1lZGlhUGVybWlzc2lvbigiZ3JhbnRlZCIsIFsiY2FtZXJhIl0pOworICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86dHJ1
ZX0pOworICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5pZC5sZW5ndGgsIDM2LCAidGhlIG1lZGlhIHN0
cmVhbSBpZCBoYXMgMzYgY2hhcmFjdGVycyIpOworICBhc3NlcnRfcmVnZXhwX21hdGNoKHN0cmVh
bS5pZCwgYWxsb3dlZENoYXJhY3RlcnMsICJ0aGUgbWVkaWEgc3RyZWFtIGlkIHVzZXMgdGhlIHNl
dCBvZiBhbGxvd2VkIGNoYXJhY3RlcnMiKTsKK30sICJUZXN0cyB0aGF0IGEgTWVkaWFTdHJlYW0g
d2l0aCBhIGNvcnJlY3QgaWQgaXMgcmV0dXJuZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1pZGwuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFTdHJlYW0taWRsLmh0dHBzLmh0bWwKaW5kZXggYjFlODNmODZiYmI5ZGJiMzRl
M2U1NTk5ZWMzMTExNzY1Y2ZmMDRmYi4uNDljNmJjMDdjYTc0MmY2ODk1YWZiNzk4ZjRhYmZiYWE3
Nzk4MTlhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1pZGwuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2Fw
dHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlkbC5odHRwcy5odG1sCkBAIC0xOSw1OSArMTksNTkg
QEAgZm9sbG93cyB0aGUgYWxnb3JpdGhtIHNldCBpbiB0aGUgc3BlYy48L3A+CiA8ZGl2IGlkPSds
b2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0PgotbGV0IHQgPSBhc3lu
Y190ZXN0KCJUZXN0cyB0aGF0IGEgTWVkaWFTdHJlYW0gY29uc3RydWN0b3IgZm9sbG93cyB0aGUg
YWxnb3JpdGhtIHNldCBpbiB0aGUgc3BlYyIpOwotdC5zdGVwKCgpID0+IHsKLSAgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlLCBhdWRpbzp0cnVlfSkKLSAg
ICAudGhlbih0LnN0ZXBfZnVuYyhzdHJlYW0gPT4gewotICAgICAgbGV0IHN0cmVhbTEgPSBuZXcg
TWVkaWFTdHJlYW0oKTsKLSAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHN0cmVhbS5pZCwgc3RyZWFt
MS5pZCwgIlR3byBkaWZmZXJlbnQgTWVkaWFTdHJlYW1zIGhhdmUgZGlmZmVyZW50IGlkcyIpOwot
ICAgICAgbGV0IHN0cmVhbTIgPSBuZXcgTWVkaWFTdHJlYW0oc3RyZWFtKTsKLSAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHN0cmVhbS5pZCwgc3RyZWFtMi5pZCwgIkEgTWVkaWFTdHJlYW0gY29uc3Ry
dWN0ZWQgZnJvbSBhbm90aGVyIGhhcyBhIGRpZmZlcmVudCBpZCIpOwotICAgICAgbGV0IGF1ZGlv
VHJhY2sxID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07Ci0gICAgICBsZXQgdmlkZW9UcmFj
ayA9IHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOwotICAgICAgYXNzZXJ0X2VxdWFscyhhdWRp
b1RyYWNrMSwgc3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpWzBdLCAiQSBNZWRpYVN0cmVhbSBjb25z
dHJ1Y3RlZCBmcm9tIGFub3RoZXIgc2hhcmVzIHRoZSBzYW1lIGF1ZGlvIHRyYWNrIik7Ci0gICAg
ICBhc3NlcnRfZXF1YWxzKHZpZGVvVHJhY2ssIHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXSwg
IkEgTWVkaWFTdHJlYW0gY29uc3RydWN0ZWQgZnJvbSBhbm90aGVyIHNoYXJlcyB0aGUgc2FtZSB2
aWRlbyB0cmFjayIpOwotICAgICAgbGV0IHN0cmVhbTQgPSBuZXcgTWVkaWFTdHJlYW0oW2F1ZGlv
VHJhY2sxXSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbTQuZ2V0VHJhY2tCeUlkKGF1ZGlv
VHJhY2sxLmlkKSwgYXVkaW9UcmFjazEsICJhIG5vbi1lbmRlZCB0cmFjayBnZXRzIGFkZGVkIHZp
YSB0aGUgTWVkaWFTdHJlYW0gY29uc3RydWN0b3IiKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jICgp
ID0+IHsKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CisgIGNvbnN0IHN0cmVhbSA9IGF3
YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZSwgYXVk
aW86dHJ1ZX0pCisgIGxldCBzdHJlYW0xID0gbmV3IE1lZGlhU3RyZWFtKCk7CisgIGFzc2VydF9u
b3RfZXF1YWxzKHN0cmVhbS5pZCwgc3RyZWFtMS5pZCwgIlR3byBkaWZmZXJlbnQgTWVkaWFTdHJl
YW1zIGhhdmUgZGlmZmVyZW50IGlkcyIpOworICBsZXQgc3RyZWFtMiA9IG5ldyBNZWRpYVN0cmVh
bShzdHJlYW0pOworICBhc3NlcnRfbm90X2VxdWFscyhzdHJlYW0uaWQsIHN0cmVhbTIuaWQsICJB
IE1lZGlhU3RyZWFtIGNvbnN0cnVjdGVkIGZyb20gYW5vdGhlciBoYXMgYSBkaWZmZXJlbnQgaWQi
KTsKKyAgbGV0IGF1ZGlvVHJhY2sxID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgIGxl
dCB2aWRlb1RyYWNrID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgIGFzc2VydF9lcXVh
bHMoYXVkaW9UcmFjazEsIHN0cmVhbTIuZ2V0QXVkaW9UcmFja3MoKVswXSwgIkEgTWVkaWFTdHJl
YW0gY29uc3RydWN0ZWQgZnJvbSBhbm90aGVyIHNoYXJlcyB0aGUgc2FtZSBhdWRpbyB0cmFjayIp
OworICBhc3NlcnRfZXF1YWxzKHZpZGVvVHJhY2ssIHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVsw
XSwgIkEgTWVkaWFTdHJlYW0gY29uc3RydWN0ZWQgZnJvbSBhbm90aGVyIHNoYXJlcyB0aGUgc2Ft
ZSB2aWRlbyB0cmFjayIpOworICBsZXQgc3RyZWFtNCA9IG5ldyBNZWRpYVN0cmVhbShbYXVkaW9U
cmFjazFdKTsKKyAgYXNzZXJ0X2VxdWFscyhzdHJlYW00LmdldFRyYWNrQnlJZChhdWRpb1RyYWNr
MS5pZCksIGF1ZGlvVHJhY2sxLCAiYSBub24tZW5kZWQgdHJhY2sgZ2V0cyBhZGRlZCB2aWEgdGhl
IE1lZGlhU3RyZWFtIGNvbnN0cnVjdG9yIik7CiAKLSAgICAgIGxldCBhdWRpb1RyYWNrMiA9IGF1
ZGlvVHJhY2sxLmNsb25lKCk7Ci0gICAgICBhdWRpb1RyYWNrMi5hZGRFdmVudExpc3RlbmVyKCJl
bmRlZCIsIHQudW5yZWFjaGVkX2Z1bmMoImVuZGVkIGV2ZW50IHNob3VsZCBub3QgYmUgZmlyZWQg
YnkgTWVkaWFTdHJlYW1UcmFjay5zdG9wKCkuIikpOwotICAgICAgYXVkaW9UcmFjazIuc3RvcCgp
OwotICAgICAgYXNzZXJ0X2VxdWFscyhhdWRpb1RyYWNrMi5yZWFkeVN0YXRlLCAiZW5kZWQiLCAi
YSBzdG9wcGVkIHRyYWNrIGlzIG1hcmtlZCBlbmRlZCBzeW5jaHJvbm91c2x5Iik7CisgIGxldCBh
dWRpb1RyYWNrMiA9IGF1ZGlvVHJhY2sxLmNsb25lKCk7CisgIGF1ZGlvVHJhY2syLmFkZEV2ZW50
TGlzdGVuZXIoImVuZGVkIiwgKCkgPT4geworICAgIHRocm93IG5ldyBFcnJvcigiZW5kZWQgZXZl
bnQgc2hvdWxkIG5vdCBiZSBmaXJlZCBieSBNZWRpYVN0cmVhbVRyYWNrLnN0b3AoKS4iKQorICB9
KTsKKyAgYXVkaW9UcmFjazIuc3RvcCgpOworICBhc3NlcnRfZXF1YWxzKGF1ZGlvVHJhY2syLnJl
YWR5U3RhdGUsICJlbmRlZCIsICJhIHN0b3BwZWQgdHJhY2sgaXMgbWFya2VkIGVuZGVkIHN5bmNo
cm9ub3VzbHkiKTsKIAotICAgICAgbGV0IHN0cmVhbTMgPSBuZXcgTWVkaWFTdHJlYW0oW2F1ZGlv
VHJhY2syLCB2aWRlb1RyYWNrXSk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbTMuZ2V0VHJh
Y2tCeUlkKGF1ZGlvVHJhY2syLmlkKSwgYXVkaW9UcmFjazIsICJhbiBlbmRlZCB0cmFjayBnZXRz
IGFkZGVkIHZpYSB0aGUgTWVkaWFTdHJlYW0gY29uc3RydWN0b3IiKTsKLSAgICAgIGFzc2VydF9l
cXVhbHMoc3RyZWFtMy5nZXRUcmFja0J5SWQodmlkZW9UcmFjay5pZCksIHZpZGVvVHJhY2ssICJh
IG5vbi1lbmRlZCB0cmFjayBnZXRzIGFkZGVkIHZpYSB0aGUgTWVkaWFTdHJlYW0gY29uc3RydWN0
b3IgZXZlbiBpZiB0aGUgcHJldmlvdXMgdHJhY2sgd2FzIGVuZGVkIik7CisgIGxldCBzdHJlYW0z
ID0gbmV3IE1lZGlhU3RyZWFtKFthdWRpb1RyYWNrMiwgdmlkZW9UcmFja10pOworICBhc3NlcnRf
ZXF1YWxzKHN0cmVhbTMuZ2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2syLmlkKSwgYXVkaW9UcmFjazIs
ICJhbiBlbmRlZCB0cmFjayBnZXRzIGFkZGVkIHZpYSB0aGUgTWVkaWFTdHJlYW0gY29uc3RydWN0
b3IiKTsKKyAgYXNzZXJ0X2VxdWFscyhzdHJlYW0zLmdldFRyYWNrQnlJZCh2aWRlb1RyYWNrLmlk
KSwgdmlkZW9UcmFjaywgImEgbm9uLWVuZGVkIHRyYWNrIGdldHMgYWRkZWQgdmlhIHRoZSBNZWRp
YVN0cmVhbSBjb25zdHJ1Y3RvciBldmVuIGlmIHRoZSBwcmV2aW91cyB0cmFjayB3YXMgZW5kZWQi
KTsKIAotICAgICAgbGV0IHN0cmVhbTUgPSBuZXcgTWVkaWFTdHJlYW0oW2F1ZGlvVHJhY2syXSk7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKHN0cmVhbTUuZ2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2syLmlk
KSwgYXVkaW9UcmFjazIsICJhbiBlbmRlZCB0cmFjayBnZXRzIGFkZGVkIHZpYSB0aGUgTWVkaWFT
dHJlYW0gY29uc3RydWN0b3IiKTsKLSAgICAgIGFzc2VydF9mYWxzZShzdHJlYW01LmFjdGl2ZSwg
ImEgTWVkaWFTdHJlYW0gY3JlYXRlZCB1c2luZyB0aGUgTWVkaWFTdHJlYW0oKSBjb25zdHJ1Y3Rv
ciB3aG9zZSBhcmd1bWVudHMgYXJlIGxpc3RzIG9mIE1lZGlhU3RyZWFtVHJhY2sgb2JqZWN0cyB0
aGF0IGFyZSBhbGwgZW5kZWQsIHRoZSBNZWRpYVN0cmVhbSBvYmplY3QgTVVTVCBiZSBjcmVhdGVk
IHdpdGggaXRzIGFjdGl2ZSBhdHRyaWJ1dGUgc2V0IHRvIGZhbHNlIik7CisgIGxldCBzdHJlYW01
ID0gbmV3IE1lZGlhU3RyZWFtKFthdWRpb1RyYWNrMl0pOworICBhc3NlcnRfZXF1YWxzKHN0cmVh
bTUuZ2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2syLmlkKSwgYXVkaW9UcmFjazIsICJhbiBlbmRlZCB0
cmFjayBnZXRzIGFkZGVkIHZpYSB0aGUgTWVkaWFTdHJlYW0gY29uc3RydWN0b3IiKTsKKyAgYXNz
ZXJ0X2ZhbHNlKHN0cmVhbTUuYWN0aXZlLCAiYSBNZWRpYVN0cmVhbSBjcmVhdGVkIHVzaW5nIHRo
ZSBNZWRpYVN0cmVhbSgpIGNvbnN0cnVjdG9yIHdob3NlIGFyZ3VtZW50cyBhcmUgbGlzdHMgb2Yg
TWVkaWFTdHJlYW1UcmFjayBvYmplY3RzIHRoYXQgYXJlIGFsbCBlbmRlZCwgdGhlIE1lZGlhU3Ry
ZWFtIG9iamVjdCBNVVNUIGJlIGNyZWF0ZWQgd2l0aCBpdHMgYWN0aXZlIGF0dHJpYnV0ZSBzZXQg
dG8gZmFsc2UiKTsKIAotICAgICAgYXVkaW9UcmFjazEuc3RvcCgpOwotICAgICAgYXNzZXJ0X2Vx
dWFscyhhdWRpb1RyYWNrMS5yZWFkeVN0YXRlLCAiZW5kZWQiLAorICBhdWRpb1RyYWNrMS5zdG9w
KCk7CisgIGFzc2VydF9lcXVhbHMoYXVkaW9UcmFjazEucmVhZHlTdGF0ZSwgImVuZGVkIiwKICAg
ICAgICAgIlN0b3BwaW5nIGF1ZGlvVHJhY2sxIG1hcmtzIGl0IGVuZGVkIHN5bmNocm9ub3VzbHki
KTsKIAotICAgICAgdmlkZW9UcmFjay5zdG9wKCk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHZpZGVv
VHJhY2sucmVhZHlTdGF0ZSwgImVuZGVkIiwKKyAgdmlkZW9UcmFjay5zdG9wKCk7CisgIGFzc2Vy
dF9lcXVhbHModmlkZW9UcmFjay5yZWFkeVN0YXRlLCAiZW5kZWQiLAogICAgICAgICAiU3RvcHBp
bmcgdmlkZW9UcmFjayBtYXJrcyBpdCBlbmRlZCBzeW5jaHJvbm91c2x5Iik7CiAKLSAgICAgIGFz
c2VydF9mYWxzZShzdHJlYW0uYWN0aXZlLAorICBhc3NlcnRfZmFsc2Uoc3RyZWFtLmFjdGl2ZSwK
ICAgICAgICAgIlRoZSBvcmlnaW5hbCBNZWRpYVN0cmVhbSBpcyBtYXJrZWQgaW5hY3RpdmUgc3lu
Y2hyb25vdXNseSIpOwotICAgICAgYXNzZXJ0X2ZhbHNlKHN0cmVhbTEuYWN0aXZlLAorICBhc3Nl
cnRfZmFsc2Uoc3RyZWFtMS5hY3RpdmUsCiAgICAgICAgICJNZWRpYVN0cmVhbSAxIGlzIG1hcmtl
ZCBpbmFjdGl2ZSBzeW5jaHJvbm91c2x5Iik7Ci0gICAgICBhc3NlcnRfZmFsc2Uoc3RyZWFtMi5h
Y3RpdmUsCisgIGFzc2VydF9mYWxzZShzdHJlYW0yLmFjdGl2ZSwKICAgICAgICAgIk1lZGlhU3Ry
ZWFtIDIgaXMgbWFya2VkIGluYWN0aXZlIHN5bmNocm9ub3VzbHkiKTsKLSAgICAgIGFzc2VydF9m
YWxzZShzdHJlYW0zLmFjdGl2ZSwKKyAgYXNzZXJ0X2ZhbHNlKHN0cmVhbTMuYWN0aXZlLAogICAg
ICAgICAiTWVkaWFTdHJlYW0gMyBpcyBtYXJrZWQgaW5hY3RpdmUgc3luY2hyb25vdXNseSIpOwot
ICAgICAgYXNzZXJ0X2ZhbHNlKHN0cmVhbTQuYWN0aXZlLAorICBhc3NlcnRfZmFsc2Uoc3RyZWFt
NC5hY3RpdmUsCiAgICAgICAgICJNZWRpYVN0cmVhbSA0IGlzIG1hcmtlZCBpbmFjdGl2ZSBzeW5j
aHJvbm91c2x5Iik7CiAKLSAgICAgIC8vIFVzZSBhIHRpbWVvdXQgdG8gZGV0ZWN0IGEgbWlzZmly
ZSBvZiB0aGUgZW5kZWQgZXZlbnQuCi0gICAgICB0LnN0ZXBfdGltZW91dCh0LnN0ZXBfZnVuY19k
b25lKCkpOwotICAgIH0pCi0gICk7Ci19KTsKK30sICJUZXN0cyB0aGF0IGEgTWVkaWFTdHJlYW0g
Y29uc3RydWN0b3IgZm9sbG93cyB0aGUgYWxnb3JpdGhtIHNldCBpbiB0aGUgc3BlYyIpOwogPC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFt
LXJlbW92ZXRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLXJlbW92ZXRyYWNr
Lmh0dHBzLmh0bWwKaW5kZXggMWU5ZWJiY2VmYTgwMGQzYTI2NjJlYTkwZjJmMDQwYTdkMDU1NDI4
NS4uNmM5YjliMDJlM2YyMDAyMTlkNjc2Mzc4NzFhYjU5Y2E5YTgyMWVjZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUt
c3RyZWFtcy9NZWRpYVN0cmVhbS1yZW1vdmV0cmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFTdHJlYW0tcmVtb3ZldHJhY2suaHR0cHMuaHRtbApAQCAtMTUsOSArMTUsMTMgQEAKIDxk
aXYgaWQ9J2xvZyc+PC9kaXY+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5qcz48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCk7CiAg
IGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHt2aWRlbzogdHJ1ZSwgYXVkaW86IHRydWV9KTsKICAgY29uc3QgdHJhY2tzID0gc3RyZWFtLmdl
dFRyYWNrcygpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrcy5mb3JFYWNoKHRyYWNrID0+
IHRyYWNrLnN0b3AoKSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1zdXBwb3J0
ZWQtYnktZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tc3VwcG9ydGVk
LWJ5LWZlYXR1cmUtcG9saWN5Lmh0bWwKaW5kZXggZWYyOWFlNmVlYzIxMGEyZDg4MDY0ZDY2NzFm
MGNjZWI2MTM3ZTA1Zi4uNjNmNTY1OTI2YWUwYmY2ZGRlMDI4MDM4N2M5ZmE1NjU1N2M1MmM4YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1zdXBwb3J0ZWQtYnktZmVhdHVyZS1wb2xp
Y3kuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLXN1cHBvcnRlZC1ieS1mZWF0dXJlLXBv
bGljeS5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+VGVzdCB0
aGF0IGFjY2VsZXJvbWV0ZXIgaXMgYWR2ZXJ0aXNlZCBpbiB0aGUgZmVhdHVyZSBsaXN0PC90aXRs
ZT4KKzx0aXRsZT5UZXN0IHRoYXQgY2FtZXJhIGFuZCBtaWNyb3Bob25lIGFyZSBhZHZlcnRpc2Vk
IGluIHRoZSBmZWF0dXJlIGxpc3Q8L3RpdGxlPgogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLWZlYXR1cmUtcG9saWN5LyNkb20tZmVhdHVyZXBv
bGljeS1mZWF0dXJlcyI+CiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9tZWRpYWNhcHR1cmUtbWFpbi8jZmVhdHVyZS1wb2xpY3ktaW50ZWdyYXRpb24iPgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS12aWRlby1vbmx5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtLXZpZGVvLW9ubHkuaHR0cHMuaHRtbAppbmRleCA4ODIwMGIyMzMwNmFjNGQ3Zjdm
Mzk4NzBmOGIyNjQyMzk0YWNmOTc3Li42ZTBhNmNjOWNmZDZlZWRkODczMzdmZWEwMDA3M2RmMWZi
OTMyZDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLXZpZGVvLW9ubHkuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLXZpZGVvLW9ubHkuaHR0cHMuaHRtbApAQCAt
MTUsMTcgKzE1LDE4IEBAIHRoZSBzdWNjZXNzIGNhbGxiYWNrIGluIGdldFVzZXJNZWRpYSBoYXMg
ZXhhY3RseSBvbmUgdmlkZW8gdHJhY2sgYW5kIG5vIGF1ZGlvLjwvCiA8ZGl2IGlkPSdsb2cnPjwv
ZGl2PgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVy
bWlzc2lvbi1oZWxwZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0
KCJUZXN0cyB0aGF0IGEgTWVkaWFTdHJlYW0gd2l0aCBhdCBsZWFzdCBvbmUgdmlkZW8gdHJhY2sg
aXMgcmV0dXJuZWQiKTsKLXQuc3RlcChmdW5jdGlvbigpIHsKLSAgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlv
biAoc3RyZWFtKSB7Ci0gICAgYXNzZXJ0X3RydWUoc3RyZWFtIGluc3RhbmNlb2YgTWVkaWFTdHJl
YW0sICJnZXRVc2VyTWVkaWEgc3VjY2VzcyBjYWxsYmFjayBjb21lcyB3aXRoIGEgTWVkaWFTdHJl
YW0gb2JqZWN0Iik7Ci0gICAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5s
ZW5ndGgsIDAsICJ0aGUgbWVkaWEgc3RyZWFtIGhhcyB6ZXJvIGF1ZGlvIHRyYWNrIik7Ci0gICAg
YXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIDEsICJ0aGUgbWVk
aWEgc3RyZWFtIGhhcyBleGFjdGx5IG9uZSB2aWRlbyB0cmFjayIpOwotICAgIGFzc2VydF9lcXVh
bHMoc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0ua2luZCwgInZpZGVvIiwgImdldEF1ZGlvVHJh
Y2tzKCkgcmV0dXJucyBhIHNlcXVlbmNlIG9mIHRyYWNrcyB3aG9zZSBraW5kIGlzICd2aWRlbyci
KTsKLSAgICB0LmRvbmUoKTsKLSAgfSksIGZ1bmN0aW9uKGVycm9yKSB7fSk7Ci19KTsKK3Byb21p
c2VfdGVzdChhc3luYyAoKSA9PiAgeworICBhd2FpdCBzZXRNZWRpYVBlcm1pc3Npb24oImdyYW50
ZWQiLCBbImNhbWVyYSJdKTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgIGFzc2VydF90cnVlKHN0cmVh
bSBpbnN0YW5jZW9mIE1lZGlhU3RyZWFtLCAiZ2V0VXNlck1lZGlhIHN1Y2Nlc3MgY2FsbGJhY2sg
Y29tZXMgd2l0aCBhIE1lZGlhU3RyZWFtIG9iamVjdCIpOworICBhc3NlcnRfZXF1YWxzKHN0cmVh
bS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCwgMCwgInRoZSBtZWRpYSBzdHJlYW0gaGFzIHplcm8g
YXVkaW8gdHJhY2siKTsKKyAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5s
ZW5ndGgsIDEsICJ0aGUgbWVkaWEgc3RyZWFtIGhhcyBleGFjdGx5IG9uZSB2aWRlbyB0cmFjayIp
OworICBhc3NlcnRfZXF1YWxzKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmtpbmQsICJ2aWRl
byIsICJnZXRBdWRpb1RyYWNrcygpIHJldHVybnMgYSBzZXF1ZW5jZSBvZiB0cmFja3Mgd2hvc2Ug
a2luZCBpcyAndmlkZW8nIik7Cit9LCAiVGVzdHMgdGhhdCBhIE1lZGlhU3RyZWFtIHdpdGggYXQg
bGVhc3Qgb25lIHZpZGVvIHRyYWNrIGlzIHJldHVybmVkIik7CiA8L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1NZWRpYUVsZW1l
bnQtZGlzYWJsZWQtYXVkaW8taXMtc2lsZW5jZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0
cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxlZC1hdWRpby1pcy1zaWxlbmNlLmh0dHBzLmh0
bWwKaW5kZXggOGE1ZDBhMTZhM2QyNjM4MTExYmE4MGZiOWZhYmE0MmFmYjliNTE0OS4uNGFkMjM0
MGVkNWZkNjFiMWZmMTkyOTVkYmJjZTAwOWI1NmRhMTlkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9N
ZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxlZC1hdWRpby1pcy1zaWxlbmNlLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNh
YmxlZC1hdWRpby1pcy1zaWxlbmNlLmh0dHBzLmh0bWwKQEAgLTE3LDM4ICsxNyw0MyBAQCBXZWIg
QXVkaW8gQVBJPC9hPi48L3A+CiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1oZWxwZXIuanM+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCJUZXN0cyB0aGF0IGEgZGlzYWJs
ZWQgYXVkaW8gdHJhY2sgaW4gYSBNZWRpYVN0cmVhbSBpcyByZW5kZXJlZCBhcyBzaWxlbmNlIik7
Ci12YXIgYXVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1ZCIpOwotdC5zdGVwKGZ1bmN0
aW9uKCkgewotICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRy
dWV9KS50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICB2YXIgY3R4ID0g
bmV3IEF1ZGlvQ29udGV4dCgpOwotICAgIHZhciBzdHJlYW1Tb3VyY2UgPSBjdHguY3JlYXRlTWVk
aWFTdHJlYW1Tb3VyY2Uoc3RyZWFtKTsKLSAgICB2YXIgc2lsZW5jZURldGVjdG9yID0gY3R4LmNy
ZWF0ZVNjcmlwdFByb2Nlc3NvcigxMDI0KTsKLSAgICB2YXIgY291bnQgPSAxMDsKLSAgICBzaWxl
bmNlRGV0ZWN0b3Iub25hdWRpb3Byb2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbiAoZSkgewot
ICAgICAgIHZhciBidWZmZXIxID0gZS5pbnB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKLSAg
ICAgICB2YXIgYnVmZmVyMiA9IGUuaW5wdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7Ci0gICAg
ICAgdmFyIG91dCA9IGUub3V0cHV0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOwotICAgICAgIG91
dCA9IG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVyMSk7Ci0gICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBidWZmZXIxLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXIx
W2ldLCAwLCAiQXVkaW8gYnVmZmVyIGVudHJ5ICMiICsgaSArICIgaW4gY2hhbm5lbCAwIGlzIHNp
bGVudCIpOwotICAgICAgIH0KLSAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlcjIubGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcjJbaV0sIDAsICJBdWRp
byBidWZmZXIgZW50cnkgIyIgKyBpICsgIiBpbiBjaGFubmVsIDEgaXMgc2lsZW50Iik7Ci0gICAg
ICAgfQotICAgICAgIGNvdW50LS07Ci0gICAgICAgaWYgKGNvdW50ID09PSAwKSB7Ci0gICAgICAg
ICBzaWxlbmNlRGV0ZWN0b3Iub25hdWRpb3Byb2Nlc3MgPSBudWxsOwotICAgICAgICAgdC5kb25l
KCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXS5l
bmFibGVkID0gZmFsc2U7Citjb25zdCBhdWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXVk
Iik7Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lv
bigiZ3JhbnRlZCIsIFsibWljcm9waG9uZSJdKTsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgIHZhciBj
dHggPSBuZXcgQXVkaW9Db250ZXh0KCk7CisgIHZhciBzdHJlYW1Tb3VyY2UgPSBjdHguY3JlYXRl
TWVkaWFTdHJlYW1Tb3VyY2Uoc3RyZWFtKTsKKyAgdmFyIHNpbGVuY2VEZXRlY3RvciA9IGN0eC5j
cmVhdGVTY3JpcHRQcm9jZXNzb3IoMTAyNCk7CisgIHZhciBjb3VudCA9IDEwOworICBsZXQgcmVz
b2x2ZUF1ZGlvUHJvY2Vzc1Byb21pc2U7CisgIGNvbnN0IGF1ZGlvUHJvY2Vzc2VkID0gbmV3IFBy
b21pc2UocmVzID0+IHJlc29sdmVBdWRpb1Byb2Nlc3NQcm9taXNlID0gcmVzKQogCi0gICAgc3Ry
ZWFtU291cmNlLmNvbm5lY3Qoc2lsZW5jZURldGVjdG9yKTsKLSAgICBzaWxlbmNlRGV0ZWN0b3Iu
Y29ubmVjdChjdHguZGVzdGluYXRpb24pOwotICB9KSwgZnVuY3Rpb24oZXJyb3IpIHt9KTsKLX0p
OworICBzaWxlbmNlRGV0ZWN0b3Iub25hdWRpb3Byb2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAg
IHZhciBidWZmZXIxID0gZS5pbnB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICB2YXIg
YnVmZmVyMiA9IGUuaW5wdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgdmFyIG91dCA9
IGUub3V0cHV0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgIG91dCA9IG5ldyBGbG9hdDMy
QXJyYXkoYnVmZmVyMSk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZmZXIxLmxlbmd0aDsg
aSsrKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcjFbaV0sIDAsICJBdWRpbyBidWZmZXIg
ZW50cnkgIyIgKyBpICsgIiBpbiBjaGFubmVsIDAgaXMgc2lsZW50Iik7CisgICAgfQorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyMi5sZW5ndGg7IGkrKykgeworICAgICAgYXNzZXJ0X2Vx
dWFscyhidWZmZXIyW2ldLCAwLCAiQXVkaW8gYnVmZmVyIGVudHJ5ICMiICsgaSArICIgaW4gY2hh
bm5lbCAxIGlzIHNpbGVudCIpOworICAgIH0KKyAgICBjb3VudC0tOworICAgIGlmIChjb3VudCA9
PT0gMCkgeworICAgICAgc2lsZW5jZURldGVjdG9yLm9uYXVkaW9wcm9jZXNzID0gbnVsbDsKKyAg
ICAgIHJlc29sdmVBdWRpb1Byb2Nlc3NQcm9taXNlKCk7CisgICAgfQorICB9OworICBzdHJlYW0u
Z2V0QXVkaW9UcmFja3MoKVswXS5lbmFibGVkID0gZmFsc2U7CisKKyAgc3RyZWFtU291cmNlLmNv
bm5lY3Qoc2lsZW5jZURldGVjdG9yKTsKKyAgc2lsZW5jZURldGVjdG9yLmNvbm5lY3QoY3R4LmRl
c3RpbmF0aW9uKTsKK30sICJUZXN0cyB0aGF0IGEgZGlzYWJsZWQgYXVkaW8gdHJhY2sgaW4gYSBN
ZWRpYVN0cmVhbSBpcyByZW5kZXJlZCBhcyBzaWxlbmNlIik7CiA8L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1NZWRpYUVsZW1l
bnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1NZWRpYUVsZW1lbnQtZGlzYWJsZWQtdmlkZW8taXMtYmxhY2suaHR0cHMuaHRtbApp
bmRleCA3NjliN2EzMGRiZjM0NmE2NjA0MzA2YzEwZjY5OTY5MzkzY2Y0MjI0Li4zNjUyMzYyYjg0
OGY4ZjEyYWU4YzJlMDBjMDEzNTgzYTUxMTNhMmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlh
U3RyZWFtVHJhY2stTWVkaWFFbGVtZW50LWRpc2FibGVkLXZpZGVvLWlzLWJsYWNrLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRp
YWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxlZC12
aWRlby1pcy1ibGFjay5odHRwcy5odG1sCkBAIC0xNiwxOCArMTYsMjIgQEAgTWVkaWFTdHJlYW0g
aXMgcmVuZGVyZWQgYXMgYmxhY2tuZXNzLjwvcD4KIDxkaXYgaWQ9J2xvZyc+PC9kaXY+CiA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhl
bHBlci5qcz48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgdmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInZpZCIpOwotdmFyIGN2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7
Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIlRlc3RzIHRoYXQgYSBkaXNhYmxlZCB2aWRlbyB0cmFjayBp
biBhIE1lZGlhU3RyZWFtIGlzIHJlbmRlcmVkIGFzIGJsYWNrbmVzcyIpOwotdC5zdGVwKGZ1bmN0
aW9uKCkgewotICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9KQotICAgIC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChzdHJlYW0pIHsKLSAgICAgIGlm
IChzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5lbmFibGVkKSB7Ci0gICAgICAgIHN0cmVhbS5n
ZXRWaWRlb1RyYWNrcygpWzBdLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAgIH0KK2NvbnN0IHZpZCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWQiKTsKK2NvbnN0IGN2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiY2FudmFzIik7Citwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICBhd2Fp
dCBzZXRNZWRpYVBlcm1pc3Npb24oImdyYW50ZWQiLCBbImNhbWVyYSJdKTsKKyAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0
cnVlfSk7CisgIGlmIChzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5lbmFibGVkKSB7CisgICAg
c3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZW5hYmxlZCA9IGZhbHNlOworICB9CiAKLSAgICAg
IHZhciB0ZXN0T25jZUxvYWRlZGRhdGEgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgbGV0
IHJlc29sdmVMb2FkZWRQcm9taXNlOworICBjb25zdCB2aWRlb0xvYWRlZCA9IG5ldyBQcm9taXNl
KHJlcyA9PiByZXNvbHZlTG9hZGVkUHJvbWlzZSA9IHJlcykKKyAgdmFyIHRlc3RPbmNlTG9hZGVk
ZGF0YSA9IGZ1bmN0aW9uKCkgewogICAgICAgICB2aWQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9h
ZGVkZGF0YSIsIHRlc3RPbmNlTG9hZGVkZGF0YSwgZmFsc2UpOwogICAgICAgICBjdi53aWR0aCA9
IHZpZC5vZmZzZXRXaWR0aDsKICAgICAgICAgY3YuaGVpZ2h0ID0gdmlkLm9mZnNldEhlaWdodDsK
QEAgLTQwLDE0ICs0NCwxMyBAQCB0LnN0ZXAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhpbWFnZURhdGEuZGF0YVtpICsgMl0sIDAsICJObyBibHVlIGNvbXBvbmVudCBpbiBw
aXhlbCAjIiArIGkpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW1hZ2VEYXRhLmRhdGFbaSAr
IDNdLCAyNTUsICJObyB0cmFuc3BhcmVuY3kgaW4gcGl4ZWwgIyIgKyBpKTsKICAgICAgICAgfQot
ICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pOworICAgICAgICByZXNvbHZlTG9hZGVkUHJvbWlz
ZSgpOworICB9OwogCi0gICAgICB2aWQuc3JjT2JqZWN0ID0gc3RyZWFtOwotICAgICAgdmlkLnBs
YXkoKTsKLSAgICAgIHZpZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwgdGVzdE9uY2VM
b2FkZWRkYXRhLCBmYWxzZSk7Ci0gICAgfSkpOwotfSk7CisgIHZpZC5zcmNPYmplY3QgPSBzdHJl
YW07CisgIHZpZC5wbGF5KCk7CisgIHZpZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZWRkYXRhIiwg
dGVzdE9uY2VMb2FkZWRkYXRhLCBmYWxzZSk7Cit9LCAiVGVzdHMgdGhhdCBhIGRpc2FibGVkIHZp
ZGVvIHRyYWNrIGluIGEgTWVkaWFTdHJlYW0gaXMgcmVuZGVyZWQgYXMgYmxhY2tuZXNzIik7CiA8
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1hcHBseUNvbnN0cmFpbnRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFt
VHJhY2stYXBwbHlDb25zdHJhaW50cy5odHRwcy5odG1sCmluZGV4IDAyNWY4MjcwZTVhODgzZDE1
ZTcwNDI5OGRmY2E5ZDJkMzc0OTNiZDMuLmZkNDUxZjg2Y2Y0YzBmZjJiZjc4MzJhODgwN2E1ZGYx
NjU4NDQ3YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1hcHBseUNvbnN0
cmFpbnRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWFwcGx5Q29u
c3RyYWludHMuaHR0cHMuaHRtbApAQCAtMywxMiArMywxNiBAQAogPHAgY2xhc3M9Imluc3RydWN0
aW9ucyI+V2hlbiBwcm9tcHRlZCwgYWNjZXB0IHRvIHNoYXJlIHlvdXIgdmlkZW8gc3RyZWFtLjwv
cD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXBlcm1p
c3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgJ3VzZSBzdHJpY3QnCiAKICAg
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1tYWluLyNkb20tbWVkaWFzdHJl
YW10cmFjay1hcHBseWNvbnN0cmFpbnRzCiAKLSAgcHJvbWlzZV90ZXN0KHQgPT4geworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJncmFu
dGVkIiwgWyJjYW1lcmEiXSk7CiAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHsgdmlkZW86IHRydWUgfSkKICAgICAgIC50aGVuKHQuc3RlcF9mdW5jKHN0cmVh
bSA9PiB7CiAgICAgICAgIHJldHVybiBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNv
bnN0cmFpbnRzKApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWVuZC1tYW51
YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWVuZC1tYW51
YWwuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzM5
NjQ2NWExZWMyMzY2MzFjYzAyN2ZiN2VhYWM3NjUwODcxYWZjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1lbmQt
bWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK
LVdoZW4gcHJvbXB0ZWQsIGFjY2VwdCB0byBzaGFyZSB5b3VyIHZpZGVvIGFuZCBhdWRpbyBzdHJl
YW0sIGFuZCB0aGVuIHJldm9rZSB0aGF0IHBlcm1pc3Npb24uCi0KLURlc2NyaXB0aW9uCi0KLVRo
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdmlkZW8gYW5kIGF1ZGlvIHRyYWNrcyBvZiBNZWRpYVN0
cmVhbSBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIHN1Y2Nlc3MgY2FsbGJhY2sgaW4gZ2V0VXNlck1l
ZGlhIGFyZSBjb3JyZWN0bHkgc2V0IGludG8gaW5hY3RpdmUgc3RhdGUgd2hlbiBwZXJtaXNzaW9u
IGlzIHJldm9rZWQuCi0KLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxs
Ci0KLVRJTUVPVVQgVGVzdHMgdGhhdCBNZWRpYVN0cmVhbVRyYWNrcyBlbmQgcHJvcGVybHkgb24g
cGVybWlzc2lvbiByZXZvY2F0aW9uIFRlc3QgdGltZWQgb3V0Ci0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvTWVkaWFTdHJlYW1UcmFjay1lbmQtbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlh
U3RyZWFtVHJhY2stZW5kLW1hbnVhbC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMjdiNDU1ZDE0N2E3N2JkZTgzYWYyNjc1YjIzODEwZmI1ZDNmY2ZmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1lbmQtbWFudWFsLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCww
IEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+VGVzdCB0aGF0IG1l
ZGlhc3RyZWFtdHJhY2sgYXJlIHByb3Blcmx5IGVuZGVkPC90aXRsZT4KLTxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iRG9taW5pcXVlIEhhemFlbC1NYXNzaWV1eCIgaHJlZj0ibWFpbHRvOmRvbUB3
My5vcmciLz4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3czYy5naXRodWIuaW8vbWVk
aWFjYXB0dXJlLW1haW4vZ2V0dXNlcm1lZGlhLmh0bWwjbWVkaWFzdHJlYW10cmFjayI+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGNsYXNzPSJpbnN0cnVjdGlvbnMiPldoZW4gcHJvbXB0ZWQsIGFjY2Vw
dCB0byBzaGFyZSB5b3VyIHZpZGVvIGFuZCBhdWRpbwotc3RyZWFtLCBhbmQgdGhlbiByZXZva2Ug
dGhhdCBwZXJtaXNzaW9uLjwvcD4KLTxoMSBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5EZXNjcmlwdGlv
bjwvaDE+Ci08cCBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhl
IHZpZGVvIGFuZCBhdWRpbyB0cmFja3Mgb2YKLU1lZGlhU3RyZWFtIG9iamVjdCByZXR1cm5lZCBi
eSB0aGUgc3VjY2VzcyBjYWxsYmFjayBpbiBnZXRVc2VyTWVkaWEgYXJlCi1jb3JyZWN0bHkgc2V0
IGludG8gaW5hY3RpdmUgc3RhdGUgd2hlbiBwZXJtaXNzaW9uIGlzIHJldm9rZWQuPC9wPgotCi08
ZGl2IGlkPSdsb2cnPjwvZGl2PgotPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cz48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotJ3VzZSBzdHJpY3QnOwotcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewotICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7Ci0gICAgYXVkaW86IHRydWUsCi0gICAgdmlkZW86IHRydWUsCi0gIH0pOwotCi0g
IGNvbnN0IHZpZFRyYWNrID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07Ci0gIGFzc2VydF9l
cXVhbHModmlkVHJhY2sucmVhZHlTdGF0ZSwgImxpdmUiLAotICAgICJUaGUgdmlkZW8gdHJhY2sg
b2JqZWN0IGlzIGluIGxpdmUgc3RhdGUiKTsKLSAgY29uc3QgdmlkRW5kZWQgPSBuZXcgUHJvbWlz
ZShyID0+IHZpZFRyYWNrLm9uZW5kZWQgPSByKTsKLSAgY29uc3QgYXVkVHJhY2sgPSBzdHJlYW0u
Z2V0QXVkaW9UcmFja3MoKVswXTsKLSAgYXNzZXJ0X2VxdWFscyhhdWRUcmFjay5yZWFkeVN0YXRl
LCAibGl2ZSIsCi0gICAgIlRoZSBhdWRpbyB0cmFjayBvYmplY3QgaXMgaW4gbGl2ZSBzdGF0ZSIp
OwotICBjb25zdCBhdWRFbmRlZCA9IG5ldyBQcm9taXNlKHIgPT4gYXVkVHJhY2sub25lbmRlZCA9
IHIpOwotCi0gIGF3YWl0IFByb21pc2UucmFjZShbdmlkRW5kZWQsIGF1ZEVuZGVkXSk7Ci0gIGFz
c2VydF9lcXVhbHMoc3RyZWFtLmdldFRyYWNrcygpLmZpbHRlcih0ID0+IHQucmVhZHlTdGF0ZSA9
PSAiZW5kZWQiKS5sZW5ndGgsCi0gICAgMSwgIk9ubHkgb25lIHRyYWNrIGlzIGVuZGVkIGFmdGVy
IGZpcnN0IHRyYWNrJ3MgZW5kZWQgZXZlbnQiKTsKLSAgYXNzZXJ0X2VxdWFscyhzdHJlYW0uZ2V0
VHJhY2tzKCkuZmlsdGVyKHQgPT4gdC5yZWFkeVN0YXRlID09ICJsaXZlIikubGVuZ3RoLAotICAg
IDEsICJPbmUgdHJhY2sgaXMgc3RpbGwgbGl2ZSBhZnRlciBmaXJzdCB0cmFjaydzIGVuZGVkIGV2
ZW50Iik7Ci0gIGFzc2VydF90cnVlKHN0cmVhbS5hY3RpdmUsICJNZWRpYVN0cmVhbSBpcyBzdGls
bCBhY3RpdmUiKTsKLQotICBhd2FpdCBQcm9taXNlLmFsbChbdmlkRW5kZWQsIGF1ZEVuZGVkXSk7
Ci0gIGFzc2VydF9lcXVhbHModmlkVHJhY2sucmVhZHlTdGF0ZSwgImVuZGVkIiwgIlZpZGVvIHRy
YWNrIGVuZGVkIGFzIGV4cGVjdGVkIik7Ci0gIGFzc2VydF9lcXVhbHMoYXVkVHJhY2sucmVhZHlT
dGF0ZSwgImVuZGVkIiwgIkF1ZGlvIHRyYWNrIGVuZGVkIGFzIGV4cGVjdGVkIik7Ci0gIGFzc2Vy
dF9mYWxzZShzdHJlYW0uYWN0aXZlLCAiTWVkaWFTdHJlYW0gaGFzIGJlY29tZSBpbmFjdGl2ZSBh
cyBleHBlY3RlZCIpOwotfSwgIlRlc3RzIHRoYXQgTWVkaWFTdHJlYW1UcmFja3MgZW5kIHByb3Bl
cmx5IG9uIHBlcm1pc3Npb24gcmV2b2NhdGlvbiIpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVz
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLmh0
dHBzLmh0bWwKaW5kZXggMjMzNDUxNDc3NDRlZGM3OWQwZGJjYTNmZjgzOTFkNjY3ZGJhN2MzZi4u
YjY3YThkNTE1NjFhM2QyYzMzMDQ3NzgwMDE0ZDg5MGMxYzI2ODJhNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWdldENhcGFiaWxpdGllcy5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRDYXBhYmlsaXRpZXMuaHR0cHMuaHRtbApAQCAtMiw2
ICsyLDkgQEAKIDx0aXRsZT5NZWRpYVN0cmVhbVRyYWNrIGFuZCBJbnB1dERldmljZUluZm8gR2V0
Q2FwYWJpbGl0aWVzPC90aXRsZT4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anM+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPXBlcm1pc3Npb24taGVscGVyLmpzPjwvc2NyaXB0PgogPHNjcmlwdD4KIAog
Y29uc3QgYXVkaW9Qcm9wZXJ0aWVzID0gWwpAQCAtOTYsOCArOTksOSBAQCBmdW5jdGlvbiB0ZXN0
Q2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcywgcHJvcGVydHksIHRlc3ROYW1lUHJlZml4KSB7CiB9
CiAKIHsKLSAgYXVkaW9Qcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4geworICBhdWRpb1By
b3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHksIGkpID0+IHsKICAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgICAgICBpZiAoaSA9PT0gMCkgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJn
cmFudGVkIiwgWyJtaWNyb3Bob25lIl0pOwogICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CiAgICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLnN0b3AoKSk7CiAg
ICAgICBjb25zdCBhdWRpb0NhcGFiaWxpdGllcyA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBd
LmdldENhcGFiaWxpdGllcygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNr
LWdldFNldHRpbmdzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0
dGluZ3MuaHR0cHMuaHRtbAppbmRleCA4ZDhkZDdiNzFiZGNlOGQwYjQ1MTQ1YTFkZTMyNzFjZTAw
MDY5MzgwLi5jMWQ5MGE0ZjQ4MzFhYmIyYTcwNDVkYzc5YzViNjYyMTY0ZjI2MTZiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2Fw
dHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stZ2V0U2V0dGluZ3MuaHR0cHMuaHRtbApAQCAtNCw2
ICs0LDkgQEAKIDxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+CiA8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1wZXJtaXNzaW9uLWhlbHBlci5qcz48
L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICd1c2Ugc3RyaWN0JwogCkBAIC0xOSw2ICsyMiw3IEBACiAg
IH0KIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgYXdhaXQgc2V0TWVkaWFQZXJt
aXNzaW9uKCJncmFudGVkIiwgWyJjYW1lcmEiXSk7CiAgICAgY29uc3QgbWVkaWFTdHJlYW0xID0g
YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoewogICAgICAgdmlkZW86
IHRydWUsCiAgICAgICBhdWRpbzogZmFsc2UsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3Ry
ZWFtVHJhY2staWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1pZC5odHRw
cy5odG1sCmluZGV4IGU3YTY4N2Q3MjU1NDY5MmZkMjU4YTllYTEzYjZkNzAyNzNjNDgzZDkuLmE5
YjRiOTlmODczY2NhMTJhYjFlZDg0YjU5MzAyODI2M2ZiYjdiNjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvTWVkaWFTdHJlYW1UcmFjay1pZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW1UcmFjay1pZC5odHRwcy5odG1sCkBAIC0xMywxNiArMTMsMTUgQEAKIDxkaXYgaWQ9J2xvZyc+
PC9kaXY+CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1w
ZXJtaXNzaW9uLWhlbHBlci5qcz48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rl
c3QoIlRlc3RzIHRoYXQgZGlzdGluY3QgbWVkaWFzdHJlYW0gdHJhY2tzIGhhdmUgZGlzdGluY3Qg
aWRzICIpOwotdC5zdGVwKGZ1bmN0aW9uICgpIHsKLSAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlLCBhdWRpbzogdHJ1ZX0pCi0gICAgLnRoZW4odC5zdGVw
X2Z1bmMoZ290U3RyZWFtKSwgdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXJyb3IpIHt0LmFzc2VydF91
bnJlYWNoZWQoIkFjY2VzcyB0byBhdWRpbyBhbmQgdmlkZW8gc3RyZWFtIGlzIGdyYW50ZWQiKTt9
KSk7Ci0gIGZ1bmN0aW9uIGdvdFN0cmVhbShzdHJlYW0pIHsKLSAgICBhc3NlcnRfbm90X2VxdWFs
cyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0u
aWQsICJhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGhhdmUgZGlzdGluY3QgaWRzIik7Ci0gICAgdC5k
b25lKCk7Ci0gIH0KLX0pOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgYXdhaXQgc2V0
TWVkaWFQZXJtaXNzaW9uKCk7CisgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZSwgYXVkaW86IHRydWV9KQorICBhc3Nl
cnRfbm90X2VxdWFscyhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlv
VHJhY2tzKClbMF0uaWQsICJhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIGhhdmUgZGlzdGluY3QgaWRz
Iik7Cit9LCAiVGVzdHMgdGhhdCBkaXN0aW5jdCBtZWRpYXN0cmVhbSB0cmFja3MgaGF2ZSBkaXN0
aW5jdCBpZHMgIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0
cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1pbml0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3Ry
ZWFtVHJhY2staW5pdC5odHRwcy5odG1sCmluZGV4IGUzZTVhZGE1NDFjYjVjODgyOTBhZTJjNzdj
OTg3YjcxYmMwM2I4ZjAuLjU0ZWJmMDQ5ZTg3NDIyMmJiOTMyNjAzMzdiMWIyNDY4ZjZlNTk0OTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1pbml0Lmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWluaXQuaHR0cHMuaHRtbApAQCAtMTgsMTkgKzE4
LDIxIEBAIG9iamVjdCByZXR1cm5lZCBieSB0aGUgc3VjY2VzcyBjYWxsYmFjayBpbiBnZXRVc2Vy
TWVkaWEgaXMgY29ycmVjdGx5IGluaXRpYWxpemVkCiA8ZGl2IGlkPSdsb2cnPjwvZGl2PgogPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9cGVybWlzc2lvbi1o
ZWxwZXIuanM+PC9zY3JpcHQ+CiA8c2NyaXB0PgotcHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgcmV0
dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pCi0g
ICAgLnRoZW4oc3RyZWFtID0+IHsKLSAgICAgIHZhciB2aWRlb1RyYWNrcyA9IHN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpOwotICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlb1RyYWNrcy5sZW5ndGgsIDEs
ICJUaGVyZSBpcyBleGFjdGx5IG9uZSB2aWRlbyB0cmFjayBpbiB0aGUgbWVkaWEgc3RyZWFtIik7
Ci0gICAgICB0cmFjayA9IHZpZGVvVHJhY2tzWzBdOwotICAgICAgYXNzZXJ0X2VxdWFscyh0cmFj
ay5yZWFkeVN0YXRlLCAibGl2ZSIsICJUaGUgdHJhY2sgb2JqZWN0IGlzIGluIGxpdmUgc3RhdGUi
KTsKLSAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgInZpZGVvIiwgIlRoZSB0cmFjayBv
YmplY3QgaXMgb2YgdmlkZW8ga2luZCIpOwotICAgICAgLy8gTm90IGNsZWFyIHRoYXQgdGhpcyBp
cyByZXF1aXJlZCBieSB0aGUgc3BlYywKLSAgICAgIC8vIHNlZSBodHRwczovL3d3dy53My5vcmcv
QnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIyMjEyCi0gICAgICBhc3NlcnRfdHJ1ZSh0cmFj
ay5lbmFibGVkLCAiVGhlIHRyYWNrIG9iamVjdCBpcyBlbmFiZWQiKTsKLSAgICB9KTsKK3Byb21p
c2VfdGVzdChhc3luYyAoKSA9PiB7CisgIGF3YWl0IHNldE1lZGlhUGVybWlzc2lvbigiZ3JhbnRl
ZCIsIFsiY2FtZXJhIl0pOworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KTsKKyAgY29uc3QgdmlkZW9UcmFja3Mg
PSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKTsKKyAgYXNzZXJ0X2VxdWFscyh2aWRlb1RyYWNrcy5s
ZW5ndGgsIDEsICJUaGVyZSBpcyBleGFjdGx5IG9uZSB2aWRlbyB0cmFjayBpbiB0aGUgbWVkaWEg
c3RyZWFtIik7CisgIHRyYWNrID0gdmlkZW9UcmFja3NbMF07CisgIGFzc2VydF9lcXVhbHModHJh
Y2sucmVhZHlTdGF0ZSwgImxpdmUiLCAiVGhlIHRyYWNrIG9iamVjdCBpcyBpbiBsaXZlIHN0YXRl
Iik7CisgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgInZpZGVvIiwgIlRoZSB0cmFjayBvYmpl
Y3QgaXMgb2YgdmlkZW8ga2luZCIpOworICAvLyBOb3QgY2xlYXIgdGhhdCB0aGlzIGlzIHJlcXVp
cmVkIGJ5IHRoZSBzcGVjLAorICAvLyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGlj
L3Nob3dfYnVnLmNnaT9pZD0yMjIxMgorICBhc3NlcnRfdHJ1ZSh0cmFjay5lbmFibGVkLCAiVGhl
IHRyYWNrIG9iamVjdCBpcyBlbmFiZWQiKTsKIH0pOwogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL2NyYXNodGVzdHMvZW51bWVyYXRlRGV2aWNlcy1hZnRlci1kaXNjYXJk
LTEuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvY3Jhc2h0ZXN0cy9lbnVtZXJhdGVEZXZpY2VzLWFmdGVy
LWRpc2NhcmQtMS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZjRiYWIxNDU4MTQ3YTcxZmZhNzU3
YjI4NjUzZmY3ZTMyODVjODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL2NyYXNodGVzdHMv
ZW51bWVyYXRlRGV2aWNlcy1hZnRlci1kaXNjYXJkLTEuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8aHRtbCBjbGFzcz0idGVzdC13YWl0Ij4KKzxoZWFkPgorICA8dGl0bGU+CisgICAgVGVz
dCBlbnVtZXJhdGVEZXZpY2VzKCkgY2FsbHMgZWl0aGVyIHNpZGUgb2YgYnJvd3NpbmcgY29udGV4
dCBkaXNjYXJkCisgIDwvdGl0bGU+Cis8L2hlYWQ+Cis8c2NyaXB0PgorICBjb25zdCBmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZyYW1lJyk7CisgIGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5hcHBlbmRDaGlsZChmcmFtZSk7CisgIGNvbnN0IGRldmljZXMgPSBmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CisgIGRldmljZXMuZW51bWVyYXRlRGV2aWNl
cygpOworICBmcmFtZS5yZW1vdmUoKTsKKyAgZGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7Cisg
IC8vIFdhaXQgbG9uZyBlbm91Z2ggdG8gZXhwZWN0IHRoZSBhc3luYyBlbnVtZXJhdGVEZXZpY2Vz
KCkgY29kZSB0byBjb21wbGV0ZS4KKyAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVE
ZXZpY2VzKCkudGhlbigKKyAgICAoKSA9PiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3Zl
QXR0cmlidXRlKCJjbGFzcyIpKTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9jcmFzaHRlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9jcmFzaHRlc3RzL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1OWYzM2NkNGZmM2NhZjJlMTFhYmEwNWU0OGJiYTczMDEz
MGE2NzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL2NyYXNodGVzdHMvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9jcmFzaHRlc3RzL2VudW1lcmF0
ZURldmljZXMtYWZ0ZXItZGlzY2FyZC0xLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
ZW51bWVyYXRlRGV2aWNlcy13aXRoLW5hdmlnYXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3Ry
ZWFtcy9lbnVtZXJhdGVEZXZpY2VzLXdpdGgtbmF2aWdhdGlvbi5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDkyNTdmYmRmYjFiNmI1ODA0MDgwZDhiYzg2OTUxMzU2NGMwYjkwNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvZW51bWVyYXRlRGV2aWNlcy13aXRoLW5hdmlnYXRpb24u
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIGVudW1lcmF0ZURldmlj
ZXMgd2l0aCBuYXZpZ2F0aW9uIGFzc2VydF9lcXVhbHM6IFByb21pc2Ugc3RhdGUgd2hpbGUgaW5h
Y3RpdmUgZXhwZWN0ZWQgInBlbmRpbmciIGJ1dCBnb3QgInJlc29sdmVkIgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL2VudW1lcmF0ZURldmljZXMtd2l0aC1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL2VudW1lcmF0ZURldmljZXMtd2l0aC1uYXZpZ2F0aW9uLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDk1MWMxY2RmZmE4YTg4OGE4ZWM1MjkzOTQxMTlhZDU4YTE0MWFhNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvZW51bWVyYXRlRGV2aWNlcy13aXRoLW5hdmlnYXRpb24uaHR0cHMu
aHRtbApAQCAtMCwwICsxLDc3IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5lbnVtZXJhdGVE
ZXZpY2VzKCkgd2l0aCBuYXZpZ2F0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwor
Y29uc3QgYmxhbmtfdXJsID0gJy9jb21tb24vYmxhbmsuaHRtbCc7Citjb25zdCBzZWFyY2gyID0g
Jz8yJzsKKworZnVuY3Rpb24gcHJvbWlzZV9uZXdfdGFzayh0KSB7CisgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDApKTsKK30KK2Z1bmN0aW9u
IHByb21pc2VfZXZlbnQodGFyZ2V0LCBuYW1lKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHRhcmdldFtgb24ke25hbWV9YF0gPSByZXNvbHZlKTsKK30KKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAvLyBHZWNrbyBwZXJzaXN0cyBvbmx5IHRvcGxldmVsIGRvY3VtZW50
cywgc28gbG9hZCBkb2N1bWVudHMgaW4gYSB0b3BsZXZlbC4KKyAgYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoJ3dpbmRvdy5vcGVuKCknKTsKKyAgY29uc3QgcHJveHkgPSB3aW5kb3cub3BlbihibGFu
a191cmwpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHByb3h5LmNsb3NlKCkpOworICBhd2FpdCBw
cm9taXNlX2V2ZW50KHByb3h5LCAncGFnZXNob3cnKTsKKyAgY29uc3QgZGV2aWNlcyA9IHByb3h5
Lm5hdmlnYXRvci5tZWRpYURldmljZXM7CisgIC8vIFVzZSBhbm90aGVyIHRhc2sgc28gdGhhdCBh
bm90aGVyIGxvYWQgY3JlYXRlcyBhIG5ldyBzZXNzaW9uIGhpc3RvcnkgZW50cnkuCisgIGF3YWl0
IHByb21pc2VfbmV3X3Rhc2sodCk7CisKKyAgcHJveHkubG9jYXRpb24gPSBibGFua191cmwgKyBz
ZWFyY2gyOworICBhd2FpdCBwcm9taXNlX2V2ZW50KHByb3h5LCAncGFnZWhpZGUnKTsKKyAgLy8g
VXNlIGFub3RoZXIgdGFzayB0byBlbnN1cmUgdGhlIGZpcnN0IHN1YmRvY3VtZW50IGlzIG5vIGxv
bmdlciBmdWxseQorICAvLyBhY3RpdmUgYW5kIHByb3h5IHJlZmVycyB0byB0aGUgcmVhbG0gb2Yg
dGhlIHNlY29uZCBkb2N1bWVudC4KKyAgYXdhaXQgcHJvbWlzZV9uZXdfdGFzayh0KTsKKyAgYXNz
ZXJ0X2VxdWFscyhwcm94eS5sb2NhdGlvbi5zZWFyY2gsIHNlYXJjaDIsICduYXZpZ2F0ZWQgc2Vh
cmNoJyk7CisgIC8vIEVudW1lcmF0ZSBmcm9tIHRoZSBpbmFjdGl2ZSBmaXJzdCBXaW5kb3cuCisg
IGNvbnN0IHByb21pc2VfZW51bWVyYXRlID0gZGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7Cisg
IC8vIGB0aGVuKClgIGlzIHVzZWQgcmF0aGVyIHRoYW4gc3RhdGljIFByb21pc2UgbWV0aG9kcyBi
ZWNhdXNlIG1pY3JvdGFza3MKKyAgLy8gZm9yIGBQcm9taXNlUmVzb2x2ZSgpYCBkbyBub3QgcnVu
IHdoZW4gUHJvbWlzZXMgZnJvbSBpbmFjdGl2ZSByZWFsbXMgYXJlCisgIC8vIGludm9sdmVkLiAg
V2hldGhlciBtaWNyb3Rhc2tzIGZvciBgdGhlbigpYCBydW4gZGVwZW5kcyBvbiB0aGUgcmVhbG0g
b2YKKyAgLy8gdGhlIGhhbmRsZXIgcmF0aGVyIHRoYW4gdGhlIHJlYWxtIG9mIHRoZSBQcm9taXNl
LgorICAvLyBEb24ndCB1c2UgYGZpbmFsbHkoKWAsIGJlY2F1c2UgaXQgdXNlcyBgUHJvbWlzZVJl
c29sdmUoKWAgYW5kIHNvCisgIC8vIG1pY3JvdGFza3MgZG9uJ3QgcnVuLgorICAvLyBTZWUgaHR0
cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy81MzE5LgorICBsZXQgcHJvbWlzZV9z
dGF0ZSA9ICdwZW5kaW5nJzsKKyAgcHJvbWlzZV9lbnVtZXJhdGUudGhlbigoKSA9PiBwcm9taXNl
X3N0YXRlID0gJ3Jlc29sdmVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBwcm9t
aXNlX3N0YXRlID0gJ3JlamVjdGVkJyk7CisgIC8vIEVudW1lcmF0ZSBpbiB0aGUgYWN0aXZlIHNl
Y29uZCBXaW5kb3cgdG8gcHJvdmlkZSBlbm91Z2ggdGltZSB0byBjaGVjaworICAvLyB0aGF0IHRo
ZSBQcm9taXNlIGZyb20gdGhlIGluYWN0aXZlIFdpbmRvdyBkb2VzIG5vdCBzZXR0bGUuCisgIGF3
YWl0IHByb3h5Lm5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpOworCisg
IHByb3h5Lmhpc3RvcnkuYmFjaygpOworICBhd2FpdCBwcm9taXNlX2V2ZW50KHByb3h5LCAncGFn
ZWhpZGUnKTsKKyAgLy8gZW51bWVyYXRlRGV2aWNlcygpIFByb21pc2UgcmVzb2x1dGlvbiBpcyB0
cmlnZ2VyZWQgb25seSBpbiBwYXJhbGxlbAorICAvLyBzdGVwcywgc28gbWFuaXB1bGF0aW9uIG9m
IHRoZSBQcm9taXNlIChpZiB0aGUgZmlyc3QgZG9jdW1lbnQgd2FzCisgIC8vIHBlcnNpc3RlZCkg
d291bGQgb2NjdXIgdGhyb3VnaCBhIHF1ZXVlZCB0YXNrLCB3aGljaCB3b3VsZCBydW4gYWZ0ZXIK
KyAgLy8gdGhlIHBhZ2VoaWRlIGV2ZW50IGlzIGRpc3BhdGNoZWQgYW5kIHNvIGFmdGVyIHRoZSBh
c3NvY2lhdGVkCisgIC8vIG1pY3JvdGFzayB0aGF0IHJ1bnMgdGhlIGZvbGxvd2luZyBhc3NlcnQu
CisgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMu
aHRtbCNldmVudC1sb29wLWZvci1zcGVjLWF1dGhvcnMKKyAgYXNzZXJ0X2VxdWFscyhwcm9taXNl
X3N0YXRlLCAncGVuZGluZycsICdQcm9taXNlIHN0YXRlIHdoaWxlIGluYWN0aXZlJyk7CisgIC8v
IElmIHRoZSBmaXJzdCBkb2N1bWVudCBpcyByZXN0b3JlZCwgdGhlbiB0aGF0IHdpbGwgb2NjdXIg
aW1tZWRpYXRlbHkgYWZ0ZXIKKyAgLy8gcGFnZWhpZGUgKGFuZCBhc3NvY2lhdGVkIG1pY3JvdGFz
a3MpLCBiZWZvcmUgdGhlIG5leHQgZ2xvYmFsIHRhc2sgaXMgcnVuLgorICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9oaXN0b3J5Lmh0bWwjdHJhdmVyc2UtdGhlLWhp
c3RvcnktYnktYS1kZWx0YQorICBhd2FpdCBwcm9taXNlX25ld190YXNrKHQpOworICBpZiAocHJv
eHkubmF2aWdhdG9yLm1lZGlhRGV2aWNlcyA9PSBkZXZpY2VzKSB7CisgICAgLy8gVGhlIGZpcnN0
IGRvY3VtZW50IHdhcyBwZXJzaXN0ZWQgYW5kIHJlc3RvcmVkLgorICAgIGFzc2VydF9lcXVhbHMo
cHJveHkubG9jYXRpb24uc2VhcmNoLCAnJywgJ2hpc3Rvcnkgc2VhcmNoJyk7CisgICAgYXdhaXQg
cHJvbWlzZV9lbnVtZXJhdGU7CisgIH0gZWxzZSB7CisgICAgLy8gVGhlIGZpcnN0IGRvY3VtZW50
IHdhcyBub3QgcmVzdG9yZWQsIGJ1dCBnZXRzIHJlLWZldGNoZWQuCisgICAgYXdhaXQgdC5zdGVw
X3dhaXQoKCkgPT4gcHJveHkubG9jYXRpb24uc2VhcmNoID09ICcnLCAnbmF2aWdhdGlvbicpOwor
ICAgIGFzc2VydF9ub3RfZXF1YWxzKHByb3h5Lm5hdmlnYXRvci5tZWRpYURldmljZXMsIGRldmlj
ZXMsICduZXcgcmVhbG0nKQorICAgIGF3YWl0IHByb3h5Lm5hdmlnYXRvci5tZWRpYURldmljZXMu
ZW51bWVyYXRlRGV2aWNlcygpOworICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZV9zdGF0ZSwgJ3Bl
bmRpbmcnLCAnUHJvbWlzZSBzdGF0ZSBhZnRlciBkaXNjYXJkJyk7CisgIH0KK30sICdlbnVtZXJh
dGVEZXZpY2VzIHdpdGggbmF2aWdhdGlvbicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9pZGxoYXJuZXNzLmh0dHBz
LndpbmRvdy5qcwppbmRleCA0MWQ0ZTFkYjhiNjM5ZDI1NjliNWMwZjJmNDE0MmRhNzFkNjJmODRk
Li5lOGUzY2RhYjIxODAyOTJjZTBjYTA4OGE3ZjI2MWNhNTE5NDRhNWQxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1z
dHJlYW1zL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWRsaGFybmVz
cy5odHRwcy53aW5kb3cuanMKQEAgLTgsNyArOCw3IEBACiAKIGlkbF90ZXN0KAogICBbJ21lZGlh
Y2FwdHVyZS1zdHJlYW1zJ10sCi0gIFsnV2ViSURMJywgJ2RvbScsICdodG1sJ10sCisgIFsnd2Vi
aWRsJywgJ2RvbScsICdodG1sJ10sCiAgIGFzeW5jIGlkbF9hcnJheSA9PiB7CiAgICAgY29uc3Qg
aW5wdXREZXZpY2VzID0gW107CiAgICAgY29uc3Qgb3V0cHV0RGV2aWNlcyA9IFtdOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9pZnJhbWUtZW51bWVyYXRlLWNsZWFyZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZy
YW1lLWVudW1lcmF0ZS1jbGVhcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdkZDA0NmFjNTk5YWRkODg2
ODJlMjlmNjEwMzRmNmNjMDkzMTdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1l
LWVudW1lcmF0ZS1jbGVhcmVkLmh0bWwKQEAgLTAsMCArMSwyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzY3JpcHQgc3JjPSJtZXNzYWdlLWVudW1lcmF0ZWRkZXZpY2VzLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS1jbGVhcmVkLmh0bWwuaGVhZGVycyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS1jbGVhcmVkLmh0bWwuaGVhZGVycwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYzRkZGQ4YWJhMmIwYTY4NGE4YTJjZjk4NGIyNzRhMWY0YWU0MmNhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9pZnJhbWUtZW51bWVyYXRlLWNsZWFyZWQuaHRtbC5oZWFkZXJzCkBAIC0w
LDAgKzEgQEAKK0NsZWFyLVNpdGUtRGF0YTogImNvb2tpZXMiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L2lmcmFtZS1lbnVtZXJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI3ZGQwNDZhYzU5OWFkZDg4NjgyZTI5ZjYxMDM0ZjZjYzA5MzE3Y2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L21lZGlhY2FwdHVyZS1zdHJlYW1zL2lmcmFtZS1lbnVtZXJhdGUuaHRtbApAQCAtMCwwICsxLDIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Im1lc3NhZ2UtZW51bWVyYXRlZGRldmlj
ZXMuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9tZXNzYWdlLWVudW1lcmF0ZWRk
ZXZpY2VzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9t
ZWRpYWNhcHR1cmUtc3RyZWFtcy9tZXNzYWdlLWVudW1lcmF0ZWRkZXZpY2VzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ1NDE2MzZiNGIxZTU3OTY5NDEyOWQxMWJkNDhlODE0YmJlNDdkNTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL21lc3NhZ2UtZW51bWVyYXRlZGRldmljZXMuanMKQEAgLTAsMCArMSw4
IEBACitvbm1lc3NhZ2UgPSBhc3luYyBlID0+IHsKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1
ZX0pOworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHQuc3RvcCgpKTsKKyAgY29u
c3QgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNl
cygpOworICBlLnNvdXJjZS5wb3N0TWVzc2FnZSh7CisgICAgZGV2aWNlczogZGV2aWNlcy5tYXAo
ZCA9PiBkLnRvSlNPTigpKQorICB9LCAnKicpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9wZXJt
aXNzaW9uLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvcGVybWlzc2lvbi1oZWxwZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzY5ZjNlZTI0MjQ3YjRjNTIzMWU2Y2MzYjYzMzQwYmY0NjU5MTA0YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvcGVybWlzc2lvbi1oZWxwZXIuanMKQEAgLTAsMCArMSwyNCBAQAorLy8g
U2V0IHBlcm1pc3Npb25zIGZvciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgdXNpbmcgV2ViIERyaXZl
cgorLy8gU3RhdHVzIGNhbiBiZSBvbmUgb2YgImdyYW50ZWQiIG9yICJkZW5pZWQiCisvLyBTY29w
ZSB0YWtlIHZhbHVlcyBmcm9tIHBlcm1pc3Npb24gbmFtZXMKK2FzeW5jIGZ1bmN0aW9uIHNldE1l
ZGlhUGVybWlzc2lvbihzdGF0dXM9ImdyYW50ZWQiLCBzY29wZT1bImNhbWVyYSIsICJtaWNyb3Bo
b25lIl0pIHsKKyAgdHJ5IHsKKyAgICBmb3IgKGxldCBzIG9mIHNjb3BlKSB7CisgICAgICBhd2Fp
dCB0ZXN0X2RyaXZlci5zZXRfcGVybWlzc2lvbih7IG5hbWU6IHMgfSwgc3RhdHVzLCB0cnVlKTsK
KyAgICB9CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBjb25zdCBub1NldFBlcm1pc3Npb25TdXBwb3J0
ID0gdHlwZW9mIGUgPT09ICJzdHJpbmciICYmIGUubWF0Y2goL3NldF9wZXJtaXNzaW9uIG5vdCBp
bXBsZW1lbnRlZC8pOworICAgIGlmICghKG5vU2V0UGVybWlzc2lvblN1cHBvcnQgfHwKKyAgICAg
ICAgICAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUubWVzc2FnZS5tYXRjaCgidW5pbXBsZW1lbnRl
ZCIpKSApKSB7CisgICAgICB0aHJvdyBlOworICAgIH0KKyAgICAvLyBXZWIgRHJpdmVyIG5vdCBp
bXBsZW1lbnRlZCBhY3Rpb24KKyAgICAvLyBGRjogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNDA3NAorCisgICAgLy8gd2l0aCBjdXJyZW50IFdQVCBydW5u
ZXJzLCB3aWxsIGRlZmF1bHQgdG8gZ3JhbnRlZCBzdGF0ZSBmb3IgRkYgYW5kIFNhZmFyaQorICAg
IC8vIHRocm93IGlmIHN0YXR1cyE9ImdyYW50ZWQiIHRvIGludmFsaWRhdGUgdGVzdCByZXN1bHRz
CisgICAgaWYgKHN0YXR1cyA9PT0gImRlbmllZCIpIHsKKyAgICAgIGFzc2VydF9pbXBsZW1lbnRz
X29wdGlvbmFsKCFub1NldFBlcm1pc3Npb25TdXBwb3J0LCAiVW5hYmxlIHRvIHNldCBwZXJtaXNz
aW9uIHRvIGRlbmllZCBmb3IgdGhpcyB0ZXN0Iik7CisgICAgfQorICB9Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy93M2MtaW1wb3J0LmxvZwppbmRleCA1
NDE5MTQ2ZDVmNDUwNGFkZjc5YmU3ODVjMmQ0M2E4NzI3ZGRkOTQwLi42ZDgxMjJhYTg3ZjU0OWYw
Zjk3MWM2ZmE4YWE0NDEyZWEyMThiYTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLXN0cmVhbXMvdzNjLWltcG9ydC5sb2cKQEAgLTIxLDIwICsyMSwyNSBAQCBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLWludmFsaWQtZmFjaW5nLW1vZGUuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvR1VNLW5vbi1hcHBsaWNhYmxlLWNvbnN0cmFpbnQuaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVh
bXMvR1VNLW9wdGlvbmFsLWNvbnN0cmFpbnQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvR1VNLXJlcXVp
cmVkLWNvbnN0cmFpbnQtd2l0aC1pZGVhbC12YWx1ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9HVU0t
dHJpdmlhbC1jb25zdHJhaW50Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL0dVTS11bmtub3dua2V5LW9w
dGlvbi1wYXJhbS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NRVRBLnltbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFE
ZXZpY2VzLVNlY3VyZUNvbnRleHQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWFmdGVyLWRp
c2NhcmQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMt
bm90LWFsbG93ZWQtY2FtZXJhLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1lbnVt
ZXJhdGVEZXZpY2VzLW5vdC1hbGxvd2VkLWNhbWVyYS5odHRwcy5odG1sLmhlYWRlcnMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLW5vdC1hbGxvd2VkLW1pYy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNh
cHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2aWNlcy1ub3QtYWxsb3dlZC1t
aWMuaHR0cHMuaHRtbC5oZWFkZXJzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYURldmljZXMtZW51bWVyYXRlRGV2
aWNlcy1wZXItb3JpZ2luLWlkcy5zdWIuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2Vz
LWVudW1lcmF0ZURldmljZXMtcGVyc2lzdGVudC1wZXJtaXNzaW9uLmh0dHBzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJl
YW1zL01lZGlhRGV2aWNlcy1lbnVtZXJhdGVEZXZpY2VzLXJldHVybmVkLW9iamVjdHMuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFj
YXB0dXJlLXN0cmVhbXMvTWVkaWFEZXZpY2VzLWVudW1lcmF0ZURldmljZXMuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJl
LXN0cmVhbXMvTWVkaWFEZXZpY2VzLWdldFN1cHBvcnRlZENvbnN0cmFpbnRzLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFEZXZpY2VzLXByb2R1Y2VDcm9wSWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW0tTWVkaWFFbGVtZW50LWZpcnN0ZnJhbWUuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJl
YW0tTWVkaWFFbGVtZW50LXByZWxvYWQtbm9uZS1tYW51YWwuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMv
TWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50LXByZWxvYWQtbm9uZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9NZWRpYVN0cmVhbS1NZWRpYUVsZW1lbnQtc3JjT2JqZWN0Lmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhU3RyZWFtLWFkZC1hdWRpby10cmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0
cmVhbS1hdWRpby1vbmx5Lmh0dHBzLmh0bWwKQEAgLTQyLDcgKzQ3LDcgQEAgTGlzdCBvZiBmaWxl
czoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2Fw
dHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWRlZmF1bHQtZmVhdHVyZS1wb2xpY3kuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0
dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tZmluaXNoZWQtYWRkLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1z
L01lZGlhU3RyZWFtLWdldHRyYWNraWQuaHR0cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0t
aWQtbWFudWFsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlkLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVy
ZS1zdHJlYW1zL01lZGlhU3RyZWFtLWlkbC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVh
bS1yZW1vdmV0cmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbS1zdXBwb3J0ZWQt
YnktZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAtNTAsMTEgKzU1LDE3IEBAIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1
cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLU1lZGlhRWxlbWVudC1kaXNhYmxlZC1hdWRpby1p
cy1zaWxlbmNlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2stTWVkaWFFbGVt
ZW50LWRpc2FibGVkLXZpZGVvLWlzLWJsYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3Ry
ZWFtVHJhY2stYXBwbHlDb25zdHJhaW50cy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVh
bVRyYWNrLWVuZC1tYW51YWwuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1n
ZXRDYXBhYmlsaXRpZXMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW1UcmFjay1nZXRT
ZXR0aW5ncy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9NZWRpYVN0cmVhbVRyYWNrLWlkLmh0dHBzLmh0
bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2Fw
dHVyZS1zdHJlYW1zL01lZGlhU3RyZWFtVHJhY2staW5pdC5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9N
ZWRpYVN0cmVhbVRyYWNrLXRyYW5zZmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01lZGlhU3RyZWFt
VHJhY2tFdmVudC1jb25zdHJ1Y3Rvci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9lbnVtZXJhdGVEZXZp
Y2VzLXdpdGgtbmF2aWdhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9oaXN0b3JpY2FsLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
Y2FwdHVyZS1zdHJlYW1zL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9pZnJh
bWUtZW51bWVyYXRlLWNsZWFyZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS1jbGVh
cmVkLmh0bWwuaGVhZGVycworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvaWZyYW1lLWVudW1lcmF0ZS5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFt
cy9tZXNzYWdlLWVudW1lcmF0ZWRkZXZpY2VzLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcy9wZXJtaXNzaW9uLWhlbHBl
ci5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9NRVRBLnltbAppbmRleCBlZWQ0YWM4MzQzMTM3NzM1MjhlNTY2NWQ4
MDUwNWNiNGI5NTFhMWM5Li42OWZjYWQ3NmYxMDZhOTI2MWIzMTFhM2JhMDQzZTVlMzAyZmY3ZDFm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9NRVRBLnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9NRVRBLnltbApAQCAtMSw3ICsxLDYgQEAKIHNwZWM6IGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvCiBzdWdnZXN0ZWRfcmV2aWV3ZXJzOgogICAtIHNudWdn
cwotICAtIGFnb3VhaWxsYXJkCiAgIC0gYWx2ZXN0cmFuZAogICAtIGd1aWRvdQogICAtIGhlbmJv
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwK
aW5kZXggZTJhNWJhNzcyNDVjZTRkODIwNGY0NzNjZmVkMWMxMjIzNzQxNjY3ZS4uNjQ1MzRmYzUw
NzA3NzQ3ZjI4MzU2NzFjNjM4Y2I2YmExNmUzMTdiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xv
c2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS5odG1sCkBAIC02Nyw5ICs2Nyw5IEBAIGZvciAo
Y29uc3Qgb3B0aW9ucyBvZiBbe30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAg
YXNzZXJ0X3RydWUoZXJyb3IgaW5zdGFuY2VvZiBSVENFcnJvcik7CiAgICAgYXNzZXJ0X2VxdWFs
cyhlcnJvci5uYW1lLCAnT3BlcmF0aW9uRXJyb3InKTsKICAgICBhc3NlcnRfZXF1YWxzKGVycm9y
LmVycm9yRGV0YWlsLCAnc2N0cC1mYWlsdXJlJyk7Ci0gICAgLy8gQ2xvc2luZyBhIHBlZXJjb25u
ZWN0aW9uIGNhdXNlcyBhIERUTFMgY2xvc2UsIGJ1dCB0aGlzIGV2ZW50IGhhcwotICAgIC8vIG5v
IGNvcnJlc3BvbmRpbmcgU0NUUCBjYXVzZSBjb2RlLgotICAgIGFzc2VydF9lcXVhbHMoZXJyb3Iu
c2N0cENhdXNlQ29kZSwgbnVsbCk7CisgICAgLy8gRXhwZWN0cyB0aGUgc2N0cEVycm9yQ29kZSBp
cyBlaXRoZXIgbnVsbCBvciAxMiAoVXNlci1Jbml0aWF0ZWQgQWJvcnQpIGFzIGl0IGlzCisgICAg
Ly8gb3B0aW9uYWwgaW4gdGhlIFNDVFAgc3BlY2lmaWNhdGlvbi4KKyAgICBhc3NlcnRfaW5fYXJy
YXkoZXJyb3Iuc2N0cENhdXNlQ29kZSwgW251bGwsIDEyXSk7CiAgIH0sIGBDbG9zZSBwZWVyY29u
bmVjdGlvbiBjYXVzZXMgY2xvc2UgZXZlbnQgYW5kIGVycm9yIHRvIGJlIGNhbGxlZCBvbiAke21v
ZGV9YCk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNw
b3J0LWV4dGVuc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0
dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI4ODJjMDk1
MDNmNTQwZTk2MzRhNWNjNmM2MmU2YTBhYjU1MjcwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLQotSGFybmVzcyBFcnJvciAoRkFJ
TCksIG1lc3NhZ2UgPSBUeXBlRXJyb3I6IENhbmRpZGF0ZSBtdXN0IG5vdCBoYXZlIGJvdGggbnVs
bCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgKLQotRkFJTCBSVENJY2VUcmFuc3BvcnQgY29uc3Ry
dWN0b3IgZG9lcyBub3QgdGhyb3cgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBSVENJY2VUcmFu
c3BvcnQgaW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBzZXQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJ
TCBnYXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczogbnVsbCB9IHNob3VsZCB0aHJvdyBUeXBlRXJy
b3IgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBnYXRoZXIoKSB3aXRoIHsgaWNlU2VydmVyczog
dW5kZWZpbmVkIH0gc2hvdWxkIHN1Y2NlZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBnYXRo
ZXIoKSB3aXRoIG9uZSB0dXJucyBzZXJ2ZXIsIG9uZSB0dXJuIHNlcnZlciwgdXNlcm5hbWUsIGNy
ZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBnYXRoZXIo
KSB3aXRoIDIgc3R1biBzZXJ2ZXJzIHNob3VsZCBzdWNjZWVkIElsbGVnYWwgY29uc3RydWN0b3IK
LUZBSUwgZ2F0aGVyKCkgdGhyb3dzIGlmIGNsb3NlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlM
IGdhdGhlcigpIHRyYW5zaXRpb25zIGdhdGhlcmluZ1N0YXRlIHRvICdnYXRoZXJpbmcnIElsbGVn
YWwgY29uc3RydWN0b3IKLUZBSUwgZ2F0aGVyKCkgdGhyb3dzIGlmIGNhbGxlZCB0d2ljZSBJbGxl
Z2FsIGNvbnN0cnVjdG9yCi1GQUlMIGV2ZW50dWFsbHkgdHJhbnNpdGlvbiBnYXRoZXJpbmdTdGF0
ZSB0byAnY29tcGxldGUnIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogSWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgb25pY2Vj
YW5kaWRhdGUgZmlyZXMgd2l0aCBudWxsIGNhbmRpZGF0ZSBiZWZvcmUgZ2F0aGVyaW5nU3RhdGUg
dHJhbnNpdGlvbnMgdG8gJ2NvbXBsZXRlJyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IElsbGVnYWwgY29uc3RydWN0b3IiCi1G
QUlMIGdhdGhlcigpIHJldHVybnMgYXQgbGVhc3Qgb25lIGhvc3QgY2FuZGlkYXRlIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
SWxsZWdhbCBjb25zdHJ1Y3RvciIKLUZBSUwgZ2F0aGVyKCkgcmV0dXJucyBubyBjYW5kaWRhdGVz
IHdpdGggeyBnYXRoZXJQb2xpY3k6ICdyZWxheSd9IGFuZCBubyB0dXJuIHNlcnZlcnMgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBJbGxlZ2FsIGNvbnN0cnVjdG9yIgotRkFJTCBzdGFydCgpIHRocm93cyBpZiBjbG9zZWQgSWxs
ZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIHRocm93cyBpZiB1c2VybmFtZUZyYWdtZW50
IG9yIHBhc3N3b3JkIG5vdCBzZXQgSWxsZWdhbCBjb25zdHJ1Y3RvcgotRkFJTCBzdGFydCgpIGRv
ZXMgbm90IHRyYW5zaXRpb24gc3RhdGUgdG8gJ2NoZWNraW5nJyBpZiBubyByZW1vdGUgY2FuZGlk
YXRlcyBhZGRlZCBJbGxlZ2FsIGNvbnN0cnVjdG9yCi1GQUlMIHN0YXJ0KCkgd2l0aCBkZWZhdWx0
IHJvbGUgc2V0cyByb2xlIGF0dHJpYnV0ZSB0byAnY29udHJvbGxlZCcgSWxsZWdhbCBjb25zdHJ1
Y3RvcgotRkFJTCBzdGFydCgpIHNldHMgcm9sZSBhdHRyaWJ1dGUgdG8gJ2NvbnRyb2xsaW5nJyBJ
bGxlZ2FsIGNvbnN0cnVjdG9yCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWM2Y2VjN2UxZTQ5OTRlZTU4ZjY4MjJkNzcwNDhlY2E4ZThhZjU2OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQt
ZXh0ZW5zaW9uLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNzEgKzAsMCBAQAotPCFk
b2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRpdGxlPlJUQ0ljZVRyYW5zcG9y
dC1leHRlbnNpb25zLmh0dHBzLmh0bWw8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSd1c2Ugc3RyaWN0JzsKLQotLy8g
VGhlc2UgdGVzdHMgYXJlIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHNwZWNpZmlj
YXRpb246Ci0vLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLWljZS8KLQotZnVuY3Rpb24g
bWFrZUljZVRyYW5zcG9ydCh0KSB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG5ldyBSVENJY2VU
cmFuc3BvcnQoKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpY2VUcmFuc3BvcnQuc3RvcCgpKTsK
LSAgcmV0dXJuIGljZVRyYW5zcG9ydDsKLX0KLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGljZVRy
YW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLX0sICdSVENJY2VUcmFuc3BvcnQgY29u
c3RydWN0b3IgZG9lcyBub3QgdGhyb3cnKTsKLQotdGVzdCgoKSA9PiB7Ci0gIGNvbnN0IGljZVRy
YW5zcG9ydCA9IG5ldyBSVENJY2VUcmFuc3BvcnQoKTsKLSAgYXNzZXJ0X2VxdWFscyhpY2VUcmFu
c3BvcnQucm9sZSwgbnVsbCwgJ0V4cGVjdCByb2xlIHRvIGJlIG51bGwnKTsKLSAgYXNzZXJ0X2Vx
dWFscyhpY2VUcmFuc3BvcnQuc3RhdGUsICduZXcnLCBgRXhwZWN0IHN0YXRlIHRvIGJlICduZXcn
YCk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0YXRlLCAnbmV3JywK
LSAgICBgRXhwZWN0IGdhdGhlcmluZ1N0YXRlIHRvIGJlICduZXcnYCk7Ci0gIGFzc2VydF9hcnJh
eV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldExvY2FsQ2FuZGlkYXRlcygpLCBbXSwKLSAgICAnRXhw
ZWN0IG5vIGxvY2FsIGNhbmRpZGF0ZXMnKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFu
c3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbXSwKLSAgICAnRXhwZWN0IG5vIHJlbW90ZSBj
YW5kaWRhdGVzJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldFNlbGVjdGVkQ2Fu
ZGlkYXRlUGFpcigpLCBudWxsLAotICAgICdFeHBlY3Qgbm8gc2VsZWN0ZWQgY2FuZGlkYXRlIHBh
aXInKTsKLSAgYXNzZXJ0X25vdF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldExvY2FsUGFyYW1ldGVy
cygpLCBudWxsLAotICAgICdFeHBlY3QgbG9jYWwgcGFyYW1ldGVycyBnZW5lcmF0ZWQnKTsKLSAg
YXNzZXJ0X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLCBudWxsLAot
ICAgICdFeHBlY3Qgbm8gcmVtb3RlIHBhcmFtZXRlcnMnKTsKLX0sICdSVENJY2VUcmFuc3BvcnQg
aW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBzZXQnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNl
VHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksICgpID0+Ci0gICAgaWNlVHJhbnNwb3J0LmdhdGhlcih7IGljZVNlcnZlcnM6IG51
bGwgfSkpOwotfSwgJ2dhdGhlcigpIHdpdGggeyBpY2VTZXJ2ZXJzOiBudWxsIH0gc2hvdWxkIHRo
cm93IFR5cGVFcnJvcicpOwotCi10ZXN0KHQgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBt
YWtlSWNlVHJhbnNwb3J0KHQpOwotICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHsgaWNlU2VydmVyczog
dW5kZWZpbmVkIH0pOwotfSwgJ2dhdGhlcigpIHdpdGggeyBpY2VTZXJ2ZXJzOiB1bmRlZmluZWQg
fSBzaG91bGQgc3VjY2VlZCcpOwotCi10ZXN0KHQgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQg
PSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBpY2VUcmFuc3BvcnQuZ2F0aGVyKHsgaWNlU2VydmVy
czogW3sKLSAgICB1cmxzOiBbJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLCAndHVybjp0dXJuLmV4
YW1wbGUubmV0J10sCi0gICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICBjcmVkZW50aWFsOiAnY3Jl
ZCcsCi0gIH1dIH0pOwotfSwgJ2dhdGhlcigpIHdpdGggb25lIHR1cm5zIHNlcnZlciwgb25lIHR1
cm4gc2VydmVyLCB1c2VybmFtZSwgY3JlZGVudGlhbCcgKwotICAgICcgc2hvdWxkIHN1Y2NlZWQn
KTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9y
dCh0KTsKLSAgaWNlVHJhbnNwb3J0LmdhdGhlcih7IGljZVNlcnZlcnM6IFt7Ci0gICAgdXJsczog
WydzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywgJ3N0dW46c3R1bjIuZXhhbXBsZS5uZXQnXSwKLSAg
fV0gfSk7Ci19LCAnZ2F0aGVyKCkgd2l0aCAyIHN0dW4gc2VydmVycyBzaG91bGQgc3VjY2VlZCcp
OwotCi10ZXN0KHQgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0
KHQpOwotICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3Rh
dGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKLX0sICdnYXRoZXIoKSB0
aHJvd3MgaWYgY2xvc2VkJyk7Ci0KLXRlc3QodCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9
IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBhc3Nl
cnRfZXF1YWxzKGljZVRyYW5zcG9ydC5nYXRoZXJpbmdTdGF0ZSwgJ2dhdGhlcmluZycpOwotfSwg
YGdhdGhlcigpIHRyYW5zaXRpb25zIGdhdGhlcmluZ1N0YXRlIHRvICdnYXRoZXJpbmcnYCk7Ci0K
LXRlc3QodCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7
Ci0gIGljZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkU3Rh
dGVFcnJvcicsICgpID0+IGljZVRyYW5zcG9ydC5nYXRoZXIoe30pKTsKLX0sICdnYXRoZXIoKSB0
aHJvd3MgaWYgY2FsbGVkIHR3aWNlJyk7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAg
Y29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgY29uc3Qgd2F0Y2hl
ciA9IG5ldyBFdmVudFdhdGNoZXIodCwgaWNlVHJhbnNwb3J0LCAnZ2F0aGVyaW5nc3RhdGVjaGFu
Z2UnKTsKLSAgaWNlVHJhbnNwb3J0LmdhdGhlcih7fSk7Ci0gIGF3YWl0IHdhdGNoZXIud2FpdF9m
b3IoJ2dhdGhlcmluZ3N0YXRlY2hhbmdlJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0
LmdhdGhlcmluZ1N0YXRlLCAnY29tcGxldGUnKTsKLX0sIGBldmVudHVhbGx5IHRyYW5zaXRpb24g
Z2F0aGVyaW5nU3RhdGUgdG8gJ2NvbXBsZXRlJ2ApOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7Ci0gIGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGNvbnN0
IHdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIGljZVRyYW5zcG9ydCwKLSAgICAgIFsgJ2lj
ZWNhbmRpZGF0ZScsICdnYXRoZXJpbmdzdGF0ZWNoYW5nZScgXSk7Ci0gIGljZVRyYW5zcG9ydC5n
YXRoZXIoe30pOwotICBsZXQgY2FuZGlkYXRlOwotICBkbyB7Ci0gICAgKHsgY2FuZGlkYXRlIH0g
PSBhd2FpdCB3YXRjaGVyLndhaXRfZm9yKCdpY2VjYW5kaWRhdGUnKSk7Ci0gIH0gd2hpbGUgKGNh
bmRpZGF0ZSAhPT0gbnVsbCk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmlu
Z1N0YXRlLCAnZ2F0aGVyaW5nJyk7Ci0gIGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2dhdGhlcmlu
Z3N0YXRlY2hhbmdlJyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LmdhdGhlcmluZ1N0
YXRlLCAnY29tcGxldGUnKTsKLX0sICdvbmljZWNhbmRpZGF0ZSBmaXJlcyB3aXRoIG51bGwgY2Fu
ZGlkYXRlIGJlZm9yZSBnYXRoZXJpbmdTdGF0ZScgKwotICAgIGAgdHJhbnNpdGlvbnMgdG8gJ2Nv
bXBsZXRlJ2ApOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gIGNvbnN0IGljZVRyYW5z
cG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGNvbnN0IHdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIGljZVRyYW5zcG9ydCwgJ2ljZWNhbmRpZGF0ZScpOwotICBpY2VUcmFuc3BvcnQu
Z2F0aGVyKHt9KTsKLSAgY29uc3QgeyBjYW5kaWRhdGUgfSA9IGF3YWl0IHdhdGNoZXIud2FpdF9m
b3IoJ2ljZWNhbmRpZGF0ZScpOwotICBhc3NlcnRfbm90X2VxdWFscyhjYW5kaWRhdGUuY2FuZGlk
YXRlLCAnJyk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNwb3J0LmdldExvY2FsQ2Fu
ZGlkYXRlcygpLCBbY2FuZGlkYXRlXSk7Ci19LCAnZ2F0aGVyKCkgcmV0dXJucyBhdCBsZWFzdCBv
bmUgaG9zdCBjYW5kaWRhdGUnKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICBjb25z
dCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBjb25zdCB3YXRjaGVyID0g
bmV3IEV2ZW50V2F0Y2hlcih0LCBpY2VUcmFuc3BvcnQsICdpY2VjYW5kaWRhdGUnKTsKLSAgaWNl
VHJhbnNwb3J0LmdhdGhlcih7IGdhdGhlclBvbGljeTogJ3JlbGF5JyB9KTsKLSAgY29uc3QgeyBj
YW5kaWRhdGUgfSA9IGF3YWl0IHdhdGNoZXIud2FpdF9mb3IoJ2ljZWNhbmRpZGF0ZScpOwotICBh
c3NlcnRfZXF1YWxzKGNhbmRpZGF0ZSwgbnVsbCk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoaWNl
VHJhbnNwb3J0LmdldExvY2FsQ2FuZGlkYXRlcygpLCBbXSk7Ci19LCBgZ2F0aGVyKCkgcmV0dXJu
cyBubyBjYW5kaWRhdGVzIHdpdGggeyBnYXRoZXJQb2xpY3k6ICdyZWxheSd9IGFuZCBubyB0dXJu
YCArCi0gICAgJyBzZXJ2ZXJzJyk7Ci0KLWNvbnN0IGR1bW15UmVtb3RlUGFyYW1ldGVycyA9IHsK
LSAgdXNlcm5hbWVGcmFnbWVudDogJ2R1bW15VXNlcm5hbWVGcmFnbWVudCcsCi0gIHBhc3N3b3Jk
OiAnZHVtbXlQYXNzd29yZCcsCi19OwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaWNlVHJhbnNw
b3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9ydCgpOwotICBpY2VUcmFuc3BvcnQuc3RvcCgpOwotICBh
c3NlcnRfdGhyb3dzKCdJbnZhbGlkU3RhdGVFcnJvcicsCi0gICAgKCkgPT4gaWNlVHJhbnNwb3J0
LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycykpOwotICBhc3NlcnRfZXF1YWxzKGljZVRyYW5z
cG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksIG51bGwpOwotfSwgYHN0YXJ0KCkgdGhyb3dzIGlm
IGNsb3NlZGApOwotCi10ZXN0KCgpID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJU
Q0ljZVRyYW5zcG9ydCgpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgKCkgPT4g
aWNlVHJhbnNwb3J0LnN0YXJ0KHt9KSk7Ci0gIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LAotICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydCh7IHVzZXJuYW1lRnJhZ21lbnQ6ICdkdW1t
eScgfSkpOwotICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKLSAgICAoKSA9PiBpY2VU
cmFuc3BvcnQuc3RhcnQoeyBwYXNzd29yZDogJ2R1bW15JyB9KSk7Ci0gIGFzc2VydF9lcXVhbHMo
aWNlVHJhbnNwb3J0LmdldFJlbW90ZVBhcmFtZXRlcnMoKSwgbnVsbCk7Ci19LCAnc3RhcnQoKSB0
aHJvd3MgaWYgdXNlcm5hbWVGcmFnbWVudCBvciBwYXNzd29yZCBub3Qgc2V0Jyk7Ci0KLWNvbnN0
IGFzc2VydF9pY2VfcGFyYW1ldGVyc19lcXVhbHMgPSAoYSwgYikgPT4gewotICBhc3NlcnRfZXF1
YWxzKGEudXNlcm5hbWVGcmFnbWVudCwgYi51c2VybmFtZUZyYWdtZW50LAotICAgICAgJ3VzZXJu
YW1lRnJhZ21lbnRzIGFyZSBlcXVhbCcpOwotICBhc3NlcnRfZXF1YWxzKGEucGFzc3dvcmQsIGIu
cGFzc3dvcmQsICdwYXNzd29yZHMgYXJlIGVxdWFsJyk7Ci19OwotCi10ZXN0KHQgPT4gewotICBj
b25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBpY2VUcmFuc3BvcnQu
c3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzKTsKLSAgYXNzZXJ0X2VxdWFscyhpY2VUcmFuc3Bv
cnQuc3RhdGUsICduZXcnKTsKLSAgYXNzZXJ0X2ljZV9wYXJhbWV0ZXJzX2VxdWFscyhpY2VUcmFu
c3BvcnQuZ2V0UmVtb3RlUGFyYW1ldGVycygpLAotICAgICAgZHVtbXlSZW1vdGVQYXJhbWV0ZXJz
KTsKLX0sIGBzdGFydCgpIGRvZXMgbm90IHRyYW5zaXRpb24gc3RhdGUgdG8gJ2NoZWNraW5nJyBp
ZiBubyByZW1vdGUgY2FuZGlkYXRlcyBgICsKLSAgICAnYWRkZWQnKTsKLQotdGVzdCh0ID0+IHsK
LSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNw
b3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJh
bnNwb3J0LnJvbGUsICdjb250cm9sbGVkJyk7Ci19LCBgc3RhcnQoKSB3aXRoIGRlZmF1bHQgcm9s
ZSBzZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGVkJ2ApOwotCi10ZXN0KHQgPT4gewot
ICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBpY2VUcmFuc3Bv
cnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzLCAnY29udHJvbGxpbmcnKTsKLSAgYXNzZXJ0
X2VxdWFscyhpY2VUcmFuc3BvcnQucm9sZSwgJ2NvbnRyb2xsaW5nJyk7Ci19LCBgc3RhcnQoKSBz
ZXRzIHJvbGUgYXR0cmlidXRlIHRvICdjb250cm9sbGluZydgKTsKLQotY29uc3QgY2FuZGlkYXRl
MSA9IG5ldyBSVENJY2VDYW5kaWRhdGUoewotICBjYW5kaWRhdGU6ICdjYW5kaWRhdGU6MSAxIHVk
cCAyMTEzOTI5NDcxIDIwMy4wLjExMy4xMDAgMTAxMDAgdHlwIGhvc3QnLAotfSk7Ci0KLXRlc3Qo
KCkgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBuZXcgUlRDSWNlVHJhbnNwb3J0KCk7Ci0g
IGljZVRyYW5zcG9ydC5zdG9wKCk7Ci0gIGFzc2VydF90aHJvd3MoJ0ludmFsaWRTdGF0ZUVycm9y
JywKLSAgICAoKSA9PiBpY2VUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGNhbmRpZGF0ZTEp
KTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRl
cygpLCBbXSk7Ci19LCAnYWRkUmVtb3RlQ2FuZGlkYXRlKCkgdGhyb3dzIGlmIGNsb3NlZCcpOwot
Ci10ZXN0KCgpID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbmV3IFJUQ0ljZVRyYW5zcG9y
dCgpOwotICBhc3NlcnRfdGhyb3dzKCdPcGVyYXRpb25FcnJvcicsCi0gICAgKCkgPT4gaWNlVHJh
bnNwb3J0LmFkZFJlbW90ZUNhbmRpZGF0ZSgKLSAgICAgIG5ldyBSVENJY2VDYW5kaWRhdGUoeyBj
YW5kaWRhdGU6ICdpbnZhbGlkJyB9KSkpOwotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGljZVRyYW5z
cG9ydC5nZXRSZW1vdGVDYW5kaWRhdGVzKCksIFtdKTsKLX0sICdhZGRSZW1vdGVDYW5kaWRhdGUo
KSB0aHJvd3Mgb24gaW52YWxpZCBjYW5kaWRhdGUnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3Qg
aWNlVHJhbnNwb3J0ID0gbWFrZUljZVRyYW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LmFkZFJl
bW90ZUNhbmRpZGF0ZShjYW5kaWRhdGUxKTsKLSAgaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVt
b3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hl
Y2tpbmcnKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2Fu
ZGlkYXRlcygpLCBbY2FuZGlkYXRlMV0pOwotfSwgYHN0YXJ0KCkgdHJhbnNpdGlvbnMgc3RhdGUg
dG8gJ2NoZWNraW5nJyBpZiBvbmUgcmVtb3RlIGNhbmRpZGF0ZSBoYWQgYmVlbiBgICsKLSAgICAn
YWRkZWQnKTsKLQotdGVzdCh0ID0+IHsKLSAgY29uc3QgaWNlVHJhbnNwb3J0ID0gbWFrZUljZVRy
YW5zcG9ydCh0KTsKLSAgaWNlVHJhbnNwb3J0LnN0YXJ0KGR1bW15UmVtb3RlUGFyYW1ldGVycyk7
Ci0gIGljZVRyYW5zcG9ydC5hZGRSZW1vdGVDYW5kaWRhdGUoY2FuZGlkYXRlMSk7Ci0gIGFzc2Vy
dF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hlY2tpbmcnKTsKLSAgYXNzZXJ0X2FycmF5
X2VxdWFscyhpY2VUcmFuc3BvcnQuZ2V0UmVtb3RlQ2FuZGlkYXRlcygpLCBbY2FuZGlkYXRlMV0p
OwotfSwgYGFkZFJlbW90ZUNhbmRpZGF0ZSgpIHRyYW5zaXRpb25zIHN0YXRlIHRvICdjaGVja2lu
ZycgaWYgc3RhcnQoKSBoYWQgYmVlbiBgICsKLSAgICAnY2FsbGVkIGJlZm9yZScpOwotCi10ZXN0
KHQgPT4gewotICBjb25zdCBpY2VUcmFuc3BvcnQgPSBtYWtlSWNlVHJhbnNwb3J0KHQpOwotICBp
Y2VUcmFuc3BvcnQuc3RhcnQoZHVtbXlSZW1vdGVQYXJhbWV0ZXJzKTsKLSAgYXNzZXJ0X3Rocm93
cygnSW52YWxpZFN0YXRlRXJyb3InLAotICAgICgpID0+IGljZVRyYW5zcG9ydC5zdGFydChkdW1t
eVJlbW90ZVBhcmFtZXRlcnMsICdjb250cm9sbGluZycpKTsKLX0sICdzdGFydCgpIHRocm93cyBp
ZiBsYXRlciBjYWxsZWQgd2l0aCBhIGRpZmZlcmVudCByb2xlJyk7Ci0KLXRlc3QodCA9PiB7Ci0g
IGNvbnN0IGljZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGljZVRyYW5zcG9y
dC5zdGFydCh7Ci0gICAgdXNlcm5hbWVGcmFnbWVudDogJ3VzZXInLAotICAgIHBhc3N3b3JkOiAn
cGFzcycsCi0gIH0pOwotICBpY2VUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGNhbmRpZGF0
ZTEpOwotICBjb25zdCBjaGFuZ2VkUmVtb3RlUGFyYW1ldGVycyA9IHsKLSAgICB1c2VybmFtZUZy
YWdtZW50OiAndXNlcjInLAotICAgIHBhc3N3b3JkOiAncGFzcycsCi0gIH07Ci0gIGljZVRyYW5z
cG9ydC5zdGFydChjaGFuZ2VkUmVtb3RlUGFyYW1ldGVycyk7Ci0gIGFzc2VydF9lcXVhbHMoaWNl
VHJhbnNwb3J0LnN0YXRlLCAnbmV3Jyk7Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoaWNlVHJhbnNw
b3J0LmdldFJlbW90ZUNhbmRpZGF0ZXMoKSwgW10pOwotICBhc3NlcnRfaWNlX3BhcmFtZXRlcnNf
ZXF1YWxzKGljZVRyYW5zcG9ydC5nZXRSZW1vdGVQYXJhbWV0ZXJzKCksCi0gICAgICBjaGFuZ2Vk
UmVtb3RlUGFyYW1ldGVycyk7Ci19LCBgc3RhcnQoKSBmbHVzaGVzIHJlbW90ZSBjYW5kaWRhdGVz
IGFuZCB0cmFuc2l0aW9ucyBzdGF0ZSB0byAnbmV3JyBpZiBgICsKLSAgICdsYXRlciBjYWxsZWQg
d2l0aCBkaWZmZXJlbnQgcmVtb3RlIHBhcmFtZXRlcnMnKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewotICBjb25zdCBsb2NhbFRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0g
IGNvbnN0IHJlbW90ZVRyYW5zcG9ydCA9IG1ha2VJY2VUcmFuc3BvcnQodCk7Ci0gIGxvY2FsVHJh
bnNwb3J0Lm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7Ci0gICAgaWYgKGUuY2FuZGlkYXRlKSB7Ci0g
ICAgICByZW1vdGVUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlkYXRlKGUuY2FuZGlkYXRlKTsKLSAg
ICB9Ci0gIH07Ci0gIHJlbW90ZVRyYW5zcG9ydC5vbmljZWNhbmRpZGF0ZSA9IGUgPT4gewotICAg
IGlmIChlLmNhbmRpZGF0ZSkgewotICAgICAgbG9jYWxUcmFuc3BvcnQuYWRkUmVtb3RlQ2FuZGlk
YXRlKGUuY2FuZGlkYXRlKTsKLSAgICB9Ci0gIH07Ci0gIGxvY2FsVHJhbnNwb3J0LmdhdGhlcih7
fSk7Ci0gIHJlbW90ZVRyYW5zcG9ydC5nYXRoZXIoe30pOwotICBsb2NhbFRyYW5zcG9ydC5zdGFy
dChyZW1vdGVUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJzKCksICdjb250cm9sbGluZycpOwot
ICByZW1vdGVUcmFuc3BvcnQuc3RhcnQobG9jYWxUcmFuc3BvcnQuZ2V0TG9jYWxQYXJhbWV0ZXJz
KCksICdjb250cm9sbGVkJyk7Ci0gIGNvbnN0IGxvY2FsV2F0Y2hlciA9IG5ldyBFdmVudFdhdGNo
ZXIodCwgbG9jYWxUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScpOwotICBjb25zdCByZW1vdGVXYXRj
aGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCByZW1vdGVUcmFuc3BvcnQsICdzdGF0ZWNoYW5nZScp
OwotICBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgbG9jYWxXYXRjaGVyLndhaXRfZm9yKCdzdGF0
ZWNoYW5nZScpLnRoZW4oKCkgPT4gewotICAgICAgYXNzZXJ0X2VxdWFscyhsb2NhbFRyYW5zcG9y
dC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOwotICAgIH0pLAotICAgIHJlbW90ZVdhdGNoZXIud2FpdF9m
b3IoJ3N0YXRlY2hhbmdlJykudGhlbigoKSA9PiB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHJlbW90
ZVRyYW5zcG9ydC5zdGF0ZSwgJ2Nvbm5lY3RlZCcpOwotICAgIH0pLAotICBdKTsKLX0sICdUd28g
UlRDSWNlVHJhbnNwb3J0cyBjb25uZWN0IHRvIGVhY2ggb3RoZXInKTsKLQotPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKaW5k
ZXggZDJjZGU1OTM2NDA0NTFmNDMxN2NiMDljYmExNDQyYmIxYzAyODIyMi4uY2VkYzJjYThmMGU2
ZWQwN2M4NWY0ZmQxZjA2NDM1ZTczZDFhZmM5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRk
SWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbApAQCAtMSw0ICsxLDUgQEAKIDwhZG9jdHlw
ZSBodG1sPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8dGl0bGU+VGVz
dCBSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuYWRkSWNlQ2FuZGlkYXRlPC90aXRsZT4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KQEAgLTUwLDEw
ICs1MSwxMSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IHBjMi5zZXRMb2Nh
bERlc2NyaXB0aW9uKGFuc3dlcik7CiAgIGF3YWl0IHBjMkdhdGhlcmVkQ2FuZGlkYXRlczsKICAg
Ly8gQWRkIGNhbmRpZGF0ZXMgdG8gcGMxLCBlbnN1cmluZyB0aGF0IGl0IGdvZXMgdG8gImNvbm5l
Y3RpbmciIHN0YXRlIGJlZm9yZSAiY29ubmVjdGVkIi4KLSAgZm9yIChsZXQgY2FuZGlkYXRlIG9m
IGNhbmRpZGF0ZXMydG8xKSB7Ci0gICAgYXdhaXQgcGMxLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRh
dGUpOwotICB9CisgIC8vIFdlIGRvIG5vdCBpdGVyYXRlL2F3YWl0IGJlY2F1c2UgcmVwZWF0ZWRs
eSBhd2FpdGluZyB3aGlsZSB3ZSBzZXJpYWxseSBhZGQKKyAgLy8gdGhlIGNhbmRpZGF0ZXMgb3Bl
bnMgdGhlIG9wcG9ydHVuaXR5IHRvIG1pc3MgdGhlICdjb25uZWN0aW5nJyB0cmFuc2l0aW9uLgor
ICBjb25zdCBhZGRDYW5kaWRhdGVzRG9uZSA9IFByb21pc2UuYWxsKGNhbmRpZGF0ZXMydG8xLm1h
cChjID0+IHBjMS5hZGRJY2VDYW5kaWRhdGUoYykpKTsKICAgYXdhaXQgd2FpdEZvclN0YXRlKHRy
YW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0aW5nJyk7CisgIGF3YWl0IGFkZENh
bmRpZGF0ZXNEb25lOwogICBhd2FpdCB3YWl0Rm9yU3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRy
YW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOwogfSwgJ0NhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMTsg
Y29ubmVjdGlvbiBzaG91bGQgd29yaycpOwogCkBAIC04MSw5ICs4Myw5IEBAIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
ICAgYXdhaXQgcGMxR2F0aGVyZWRDYW5kaWRhdGVzOwogICAvLyBBZGQgY2FuZGlkYXRlcyB0byBw
YzIKLSAgZm9yIChsZXQgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMxdG8yKSB7Ci0gICAgYXdhaXQg
cGMyLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOwotICB9CisgIC8vIFdlIGRvIG5vdCBpdGVy
YXRlL2F3YWl0IGJlY2F1c2UgcmVwZWF0ZWRseSBhd2FpdGluZyB3aGlsZSB3ZSBzZXJpYWxseSBh
ZGQKKyAgLy8gdGhlIGNhbmRpZGF0ZXMgb3BlbnMgdGhlIG9wcG9ydHVuaXR5IHRvIG1pc3MgdGhl
IElDRSBzdGF0ZSB0cmFuc2l0aW9ucy4KKyAgYXdhaXQgUHJvbWlzZS5hbGwoY2FuZGlkYXRlczF0
bzIubWFwKGMgPT4gcGMyLmFkZEljZUNhbmRpZGF0ZShjKSkpOwogICBhd2FpdCB3YWl0Rm9yU3Rh
dGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOwogfSwgJ0NhbmRp
ZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMjsgY29ubmVjdGlvbiBzaG91bGQgd29yaycpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRk
VHJhY2suaHR0cHMuaHRtbAppbmRleCA1MjUzMjNjYWQwN2Q3ZGQ5MzhkYTc0NGEwMmRmOTMzOTdi
MmU1ZWVkLi5kNzUwMjJhZmIyMTNlNGMzZmFlMGM4YTIxYjY5YjE3MDkzYTc1NzJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZFRyYWNrLmh0dHBzLmh0bWwKQEAgLTMsNiArMyw5IEBACiA8dGl0bGU+UlRDUGVlckNvbm5lY3Rp
b24ucHJvdG90eXBlLmFkZFRyYWNrPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZl
ci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3Iu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vbWVkaWFjYXB0dXJlLXN0cmVhbXMvcGVybWlz
c2lvbi1oZWxwZXIuanMnPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9u
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogICAndXNlIHN0cmljdCc7CkBAIC0xNzEs
NiArMTc0LDcgQEAKICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLnNlbmRlci50cmFjaywg
bnVsbCk7CiAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdyZWN2b25s
eScpOwogCisgICAgYXdhaXQgc2V0TWVkaWFQZXJtaXNzaW9uKCJncmFudGVkIiwgWyJtaWNyb3Bo
b25lIl0pOwogICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZX0pOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3Ry
ZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CiAgICAgY29u
c3QgW3RyYWNrXSA9IHN0cmVhbS5nZXRUcmFja3MoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWNvbm5lY3Rpb25TdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZTk0MTEyNzE4MTU1NzIwZjMxNjIyOTY2
YjI3NzYwYjY1M2MzOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyMDkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgotPHRp
dGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5jb25uZWN0aW9uU3RhdGU8L3RpdGxlPgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
ICAndXNlIHN0cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVk
aXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZl
cy8yMDE3MDYwNS93ZWJydGMuaHRtCi0KLSAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rp
b25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcwotICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFrZQotCi0gIC8qCi0g
ICAgNC4zLjIuICBJbnRlcmZhY2UgRGVmaW5pdGlvbgotICAgICAgaW50ZXJmYWNlIFJUQ1BlZXJD
b25uZWN0aW9uIDogRXZlbnRUYXJnZXQgewotICAgICAgICAuLi4KLSAgICAgICAgcmVhZG9ubHkg
IGF0dHJpYnV0ZSBSVENQZWVyQ29ubmVjdGlvblN0YXRlIGNvbm5lY3Rpb25TdGF0ZTsKLSAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAgIG9uY29ubmVjdGlv
bnN0YXRlY2hhbmdlOwotICAgICAgfTsKLQotICAgIDQuNC4zLiAgUlRDUGVlckNvbm5lY3Rpb25T
dGF0ZSBFbnVtCi0gICAgICBlbnVtIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUgewotICAgICAgICAi
bmV3IiwKLSAgICAgICAgImNvbm5lY3RpbmciLAotICAgICAgICAiY29ubmVjdGVkIiwKLSAgICAg
ICAgImRpc2Nvbm5lY3RlZCIsCi0gICAgICAgICJmYWlsZWQiLAotICAgICAgICAiY2xvc2VkIgot
ICAgICAgfTsKLQotICAgIDUuNS4gIFJUQ0R0bHNUcmFuc3BvcnQgSW50ZXJmYWNlCi0gICAgICBp
bnRlcmZhY2UgUlRDRHRsc1RyYW5zcG9ydCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBS
VENJY2VUcmFuc3BvcnQgICAgICAgdHJhbnNwb3J0OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHN0YXRlOwotICAgICAgICAuLi4KLSAgICAgIH07Ci0K
LSAgICAgIGVudW0gUlRDRHRsc1RyYW5zcG9ydFN0YXRlIHsKLSAgICAgICAgIm5ldyIsCi0gICAg
ICAgICJjb25uZWN0aW5nIiwKLSAgICAgICAgImNvbm5lY3RlZCIsCi0gICAgICAgICJjbG9zZWQi
LAotICAgICAgICAiZmFpbGVkIgotICAgICAgfTsKLQotICAgIDUuNi4gIFJUQ0ljZVRyYW5zcG9y
dCBJbnRlcmZhY2UKLSAgICAgIGludGVyZmFjZSBSVENJY2VUcmFuc3BvcnQgewotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGU7Ci0gICAgICAgIC4u
LgotICAgICAgfTsKLQotICAgICAgZW51bSBSVENJY2VUcmFuc3BvcnRTdGF0ZSB7Ci0gICAgICAg
ICJuZXciLAotICAgICAgICAiY2hlY2tpbmciLAotICAgICAgICAiY29ubmVjdGVkIiwKLSAgICAg
ICAgImNvbXBsZXRlZCIsCi0gICAgICAgICJmYWlsZWQiLAotICAgICAgICAiZGlzY29ubmVjdGVk
IiwKLSAgICAgICAgImNsb3NlZCIKLSAgICAgIH07Ci0gICAqLwotCi0gIC8qCi0gICAgNC40LjMu
ICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0KLSAgICAgIG5ldwotICAgICAgICBBbnkgb2Yg
dGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3IgUlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBuZXcK
LSAgICAgICAgc3RhdGUgYW5kIG5vbmUgb2YgdGhlIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjb25u
ZWN0aW5nLCBjaGVja2luZywKLSAgICAgICAgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwg
b3IgYWxsIHRyYW5zcG9ydHMgYXJlIGluIHRoZSBjbG9zZWQgc3RhdGUuCi0gICAqLwotICB0ZXN0
KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhwYy5jb25uZWN0aW9uU3RhdGUsICduZXcnKTsKLSAgfSwgJ0luaXRpYWwgY29u
bmVjdGlvblN0YXRlIHNob3VsZCBiZSBuZXcnKTsKLQotICAvKgotICAgIDQuNC4zLiAgUlRDUGVl
ckNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBjb25uZWN0ZWQKLSAgICAgICAgQWxsIFJUQ0lj
ZVRyYW5zcG9ydHMgYW5kIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUgY29ubmVjdGVkLAot
ICAgICAgICBjb21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlIGFuZCBhdCBsZWFzdCBvZiB0aGVtIGlz
IGluIHRoZSBjb25uZWN0ZWQKLSAgICAgICAgb3IgY29tcGxldGVkIHN0YXRlLgotCi0gICAgNS41
LiAgUlRDRHRsc1RyYW5zcG9ydFN0YXRlCi0gICAgICBjb25uZWN0ZWQKLSAgICAgICAgRFRMUyBo
YXMgY29tcGxldGVkIG5lZ290aWF0aW9uIG9mIGEgc2VjdXJlIGNvbm5lY3Rpb24uCi0KLSAgICA1
LjYuICBSVENJY2VUcmFuc3BvcnRTdGF0ZQotICAgICAgY29ubmVjdGVkCi0gICAgICAgIFRoZSBS
VENJY2VUcmFuc3BvcnQgaGFzIGZvdW5kIGEgdXNhYmxlIGNvbm5lY3Rpb24sIGJ1dCBpcyBzdGls
bAotICAgICAgICBjaGVja2luZyBvdGhlciBjYW5kaWRhdGUgcGFpcnMgdG8gc2VlIGlmIHRoZXJl
IGlzIGEgYmV0dGVyIGNvbm5lY3Rpb24uCi0gICAgICAgIEl0IG1heSBhbHNvIHN0aWxsIGJlIGdh
dGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUKLSAgICAgICAgY2Fu
ZGlkYXRlcy4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIGZhaWwgb24gdGhlIGNvbm5lY3Rp
b24gaW4gdXNlLAotICAgICAgICBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIHN1Y2Nlc3NmdWwgY2Fu
ZGlkYXRlIHBhaXJzIGF2YWlsYWJsZSwgdGhlbiB0aGUKLSAgICAgICAgc3RhdGUgdHJhbnNpdGlv
bnMgdG8gImNoZWNraW5nIiAoaWYgdGhlcmUgYXJlIGNhbmRpZGF0ZSBwYWlycyByZW1haW5pbmcK
LSAgICAgICAgdG8gYmUgY2hlY2tlZCkgb3IgImRpc2Nvbm5lY3RlZCIgKGlmIHRoZXJlIGFyZSBu
byBjYW5kaWRhdGUgcGFpcnMgdG8KLSAgICAgICAgY2hlY2ssIGJ1dCB0aGUgcGVlciBpcyBzdGls
bCBnYXRoZXJpbmcgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwKLSAgICAgICAgcmVtb3Rl
IGNhbmRpZGF0ZXMpLgotCi0gICAgICBjb21wbGV0ZWQKLSAgICAgICAgVGhlIFJUQ0ljZVRyYW5z
cG9ydCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRpY2F0aW9uIHRoYXQK
LSAgICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMsIGZpbmlzaGVkIGNo
ZWNraW5nIGFsbCBjYW5kaWRhdGUKLSAgICAgICAgcGFpcnMgYW5kIGZvdW5kIGEgY29ubmVjdGlv
bi4gSWYgY29uc2VudCBjaGVja3MgW1JGQzc2NzVdIHN1YnNlcXVlbnRseQotICAgICAgICBmYWls
IG9uIGFsbCBzdWNjZXNzZnVsIGNhbmRpZGF0ZSBwYWlycywgdGhlIHN0YXRlIHRyYW5zaXRpb25z
IHRvICJmYWlsZWQiLgotICAgKi8KLSAgYXN5bmNfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5j
bG9zZSgpKTsKLSAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotCi0gICAgY29uc3Qgb25Db25uZWN0
aW9uU3RhdGVDaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiB7Ci0gICAgICBjb25zdCB7IGNvbm5l
Y3Rpb25TdGF0ZSB9ID0gcGMxOwotICAgICAgaWYoY29ubmVjdGlvblN0YXRlID09PSAnY29ubmVj
dGVkJykgewotICAgICAgICBjb25zdCBzY3RwVHJhbnNwb3J0ID0gcGMxLnNjdHA7Ci0KLSAgICAg
ICAgY29uc3QgZHRsc1RyYW5zcG9ydCA9IHNjdHBUcmFuc3BvcnQudHJhbnNwb3J0OwotICAgICAg
ICBhc3NlcnRfZXF1YWxzKGR0bHNUcmFuc3BvcnQuc3RhdGUsICdjb25uZWN0ZWQnLAotICAgICAg
ICAgICdFeHBlY3QgRFRMUyB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVkIHN0YXRlJyk7Ci0K
LSAgICAgICAgY29uc3QgaWNlVHJhbnNwb3J0ID0gZHRsc1RyYW5zcG9ydC50cmFuc3BvcnQKLSAg
ICAgICAgYXNzZXJ0X3RydWUoaWNlVHJhbnNwb3J0LnN0YXRlID09PSAgJ2Nvbm5lY3RlZCcgfHwK
LSAgICAgICAgICBpY2VUcmFuc3BvcnQuc3RhdGUgPT09ICdjb21wbGV0ZWQnLAotICAgICAgICAg
ICdFeHBlY3QgSUNFIHRyYW5zcG9ydCB0byBiZSBpbiBjb25uZWN0ZWQgb3IgY29tcGxldGVkIHN0
YXRlJyk7Ci0KLSAgICAgICAgdC5kb25lKCk7Ci0gICAgICB9Ci0gICAgfSk7Ci0KLSAgICBwYzEu
Y3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKLQotICAgIGFzc2VydF9lcXVhbHMocGMxLm9uY29u
bmVjdGlvbnN0YXRlY2hhbmdlLCBudWxsLAotICAgICAgJ0V4cGVjdCBjb25uZWN0aW9uIHRvIGhh
dmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7Ci0KLSAgICBwYzEuYWRkRXZlbnRMaXN0
ZW5lcignY29ubmVjdGlvbnN0YXRlY2hhbmdlJywgb25Db25uZWN0aW9uU3RhdGVDaGFuZ2UpOwot
Ci0gICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKLSAgICBkb1NpZ25hbGluZ0hh
bmRzaGFrZShwYzEsIHBjMik7Ci0gIH0sICdjb25uZWN0aW9uIHdpdGggb25lIGRhdGEgY2hhbm5l
bCBzaG91bGQgZXZlbnR1YWxseSBoYXZlIGNvbm5lY3RlZCBjb25uZWN0aW9uIHN0YXRlJyk7Ci0K
LSAgLyoKLSAgICBUT0RPCi0gICAgNC40LjMuICBSVENQZWVyQ29ubmVjdGlvblN0YXRlIEVudW0K
LSAgICAgIGNvbm5lY3RpbmcKLSAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIG9y
IFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiB0aGUKLSAgICAgICAgY29ubmVjdGluZyBvciBjaGVj
a2luZyBzdGF0ZSBhbmQgbm9uZSBvZiB0aGVtIGlzIGluIHRoZSBmYWlsZWQgc3RhdGUuCi0KLSAg
ICAgIGRpc2Nvbm5lY3RlZAotICAgICAgICBBbnkgb2YgdGhlIFJUQ0ljZVRyYW5zcG9ydHMgb3Ig
UlRDRHRsc1RyYW5zcG9ydHMgYXJlIGluIHRoZSBkaXNjb25uZWN0ZWQKLSAgICAgICAgc3RhdGUg
YW5kIG5vbmUgb2YgdGhlbSBhcmUgaW4gdGhlIGZhaWxlZCBvciBjb25uZWN0aW5nIG9yIGNoZWNr
aW5nIHN0YXRlLgotCi0gICAgICBmYWlsZWQKLSAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFu
c3BvcnRzIG9yIFJUQ0R0bHNUcmFuc3BvcnRzIGFyZSBpbiBhIGZhaWxlZCBzdGF0ZS4KLQotICAg
ICAgY2xvc2VkCi0gICAgICAgIFRoZSBSVENQZWVyQ29ubmVjdGlvbiBvYmplY3QncyBbW2lzQ2xv
c2VkXV0gc2xvdCBpcyB0cnVlLgotCi0gICAgIDUuNS4gUlRDRHRsc1RyYW5zcG9ydFN0YXRlCi0g
ICAgICBuZXcKLSAgICAgICAgRFRMUyBoYXMgbm90IHN0YXJ0ZWQgbmVnb3RpYXRpbmcgeWV0Lgot
Ci0gICAgICBjb25uZWN0aW5nCi0gICAgICAgIERUTFMgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgbmVn
b3RpYXRpbmcgYSBzZWN1cmUgY29ubmVjdGlvbi4KLQotICAgICAgY2xvc2VkCi0gICAgICAgIFRo
ZSB0cmFuc3BvcnQgaGFzIGJlZW4gY2xvc2VkLgotCi0gICAgICBmYWlsZWQKLSAgICAgICAgVGhl
IHRyYW5zcG9ydCBoYXMgZmFpbGVkIGFzIHRoZSByZXN1bHQgb2YgYW4gZXJyb3IgKHN1Y2ggYXMg
YSBmYWlsdXJlCi0gICAgICAgIHRvIHZhbGlkYXRlIHRoZSByZW1vdGUgZmluZ2VycHJpbnQpLgot
Ci0gICAgNS42LiAgUlRDSWNlVHJhbnNwb3J0U3RhdGUKLSAgICAgIG5ldwotICAgICAgICBUaGUg
UlRDSWNlVHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFuZC9vciB3YWl0aW5nIGZv
cgotICAgICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGllZCwgYW5kIGhhcyBub3Qg
eWV0IHN0YXJ0ZWQgY2hlY2tpbmcuCi0KLSAgICAgIGNoZWNraW5nCi0gICAgICAgIFRoZSBSVENJ
Y2VUcmFuc3BvcnQgaGFzIHJlY2VpdmVkIGF0IGxlYXN0IG9uZSByZW1vdGUgY2FuZGlkYXRlIGFu
ZAotICAgICAgICBpcyBjaGVja2luZyBjYW5kaWRhdGUgcGFpcnMgYW5kIGhhcyBlaXRoZXIgbm90
IHlldCBmb3VuZCBhIGNvbm5lY3Rpb24KLSAgICAgICAgb3IgY29uc2VudCBjaGVja3MgW1JGQzc2
NzVdIGhhdmUgZmFpbGVkIG9uIGFsbCBwcmV2aW91c2x5IHN1Y2Nlc3NmdWwKLSAgICAgICAgY2Fu
ZGlkYXRlIHBhaXJzLiBJbiBhZGRpdGlvbiB0byBjaGVja2luZywgaXQgbWF5IGFsc28gc3RpbGwg
YmUgZ2F0aGVyaW5nLgotCi0gICAgICBmYWlsZWQKLSAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9y
dCBoYXMgZmluaXNoZWQgZ2F0aGVyaW5nLCByZWNlaXZlZCBhbiBpbmRpY2F0aW9uIHRoYXQKLSAg
ICAgICAgdGhlcmUgYXJlIG5vIG1vcmUgcmVtb3RlIGNhbmRpZGF0ZXMsIGZpbmlzaGVkIGNoZWNr
aW5nIGFsbCBjYW5kaWRhdGUgcGFpcnMsCi0gICAgICAgIGFuZCBhbGwgcGFpcnMgaGF2ZSBlaXRo
ZXIgZmFpbGVkIGNvbm5lY3Rpdml0eSBjaGVja3Mgb3IgaGF2ZSBsb3N0IGNvbnNlbnQuCi0KLSAg
ICAgIGRpc2Nvbm5lY3RlZAotICAgICAgICBUaGUgSUNFIEFnZW50IGhhcyBkZXRlcm1pbmVkIHRo
YXQgY29ubmVjdGl2aXR5IGlzIGN1cnJlbnRseSBsb3N0IGZvciB0aGlzCi0gICAgICAgIFJUQ0lj
ZVRyYW5zcG9ydCAuIFRoaXMgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4gZmFpbGVkLCBhbmQgbWF5
IHRyaWdnZXIKLSAgICAgICAgaW50ZXJtaXR0ZW50bHkgKGFuZCByZXNvbHZlIGl0c2VsZiB3aXRo
b3V0IGFjdGlvbikgb24gYSBmbGFreSBuZXR3b3JrLgotICAgICAgICBUaGUgd2F5IHRoaXMgc3Rh
dGUgaXMgZGV0ZXJtaW5lZCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCi0KLSAgICAgICAg
RXhhbXBsZXMgaW5jbHVkZToKLSAgICAgICAgICBMb3NpbmcgdGhlIG5ldHdvcmsgaW50ZXJmYWNl
IGZvciB0aGUgY29ubmVjdGlvbiBpbiB1c2UuCi0gICAgICAgICAgUmVwZWF0ZWRseSBmYWlsaW5n
IHRvIHJlY2VpdmUgYSByZXNwb25zZSB0byBTVFVOIHJlcXVlc3RzLgotCi0gICAgICAgIEFsdGVy
bmF0aXZlbHksIHRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIGZpbmlzaGVkIGNoZWNraW5nIGFsbCBl
eGlzdGluZwotICAgICAgICBjYW5kaWRhdGVzIHBhaXJzIGFuZCBmYWlsZWQgdG8gZmluZCBhIGNv
bm5lY3Rpb24gKG9yIGNvbnNlbnQgY2hlY2tzCi0gICAgICAgIFtSRkM3Njc1XSBvbmNlIHN1Y2Nl
c3NmdWwsIGhhdmUgbm93IGZhaWxlZCksIGJ1dCBpdCBpcyBzdGlsbCBnYXRoZXJpbmcKLSAgICAg
ICAgYW5kL29yIHdhaXRpbmcgZm9yIGFkZGl0aW9uYWwgcmVtb3RlIGNhbmRpZGF0ZXMuCi0KLSAg
ICAgIGNsb3NlZAotICAgICAgICBUaGUgUlRDSWNlVHJhbnNwb3J0IGhhcyBzaHV0IGRvd24gYW5k
IGlzIG5vIGxvbmdlciByZXNwb25kaW5nIHRvIFNUVU4gcmVxdWVzdHMuCi0gICAqLwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNjE3YjFkZjZjYTg0Y2Iz
M2I1ZTNjYTY1NGZkYTY4NzJmYmI2ZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotCi1QQVNTIGNyZWF0ZU9m
ZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSBzaG91bGQgbm90IGNy
ZWF0ZSBhIHRyYW5zY2VpdmVyCi1GQUlMIGNyZWF0ZU9mZmVyKCkgd2l0aCBvZmZlclRvUmVjZWl2
ZUF1ZGlvIHNob3VsZCBjcmVhdGUgYSAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGFzc2VydF9lcXVh
bHM6IEV4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3Qg
MAotRkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBh
IG5vbi1zdG9wcGVkICJyZWN2b25seSIgdHJhbnNjZWl2ZXIgZXhpc3RzIGFzc2VydF9lcXVhbHM6
IEV4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlciBleHBlY3RlZCAxIGJ1dCBnb3QgMAot
UEFTUyBvZmZlclRvUmVjZWl2ZUF1ZGlvIG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5v
bi1zdG9wcGVkICJzZW5kcmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzCi1GQUlMIG9mZmVyVG9SZWNl
aXZlQXVkaW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91bGQgY3JlYXRlIGEgInNlbmRv
bmx5IiB0cmFuc2NlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2
ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2VuZG9ubHkiIGJ1dCBnb3QgInNlbmRy
ZWN2IgotRkFJTCBvZmZlclRvUmVjZWl2ZUF1ZGlvIHNldCB0byBmYWxzZSB3aXRoIGEgInJlY3Zv
bmx5IiB0cmFuc2NlaXZlciBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gImluYWN0aXZl
IiBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAiaW5hY3RpdmUiIGRp
cmVjdGlvbiBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInJlY3Zvbmx5IgotRkFJTCBzdWJz
ZXF1ZW50IG9mZmVyVG9SZWNlaXZlQXVkaW8gc2V0IHRvIGZhbHNlIHdpdGggYSB0cmFjayBzaG91
bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5IiBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAic2VuZG9ubHkiIGRpcmVjdGlvbiBleHBlY3RlZCAic2Vu
ZG9ubHkiIGJ1dCBnb3QgInNlbmRyZWN2IgotUEFTUyBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJU
b1JlY2VpdmVWaWRlbyBzZXQgdG8gZmFsc2Ugc2hvdWxkIG5vdCBjcmVhdGUgYSB0cmFuc2NlaXZl
cgotRkFJTCBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmVWaWRlbyBzaG91bGQgY3Jl
YXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMgdG8g
aGF2ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgb2ZmZXJUb1Jl
Y2VpdmVWaWRlbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAicmVj
dm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgcGMgdG8gaGF2
ZSBvbmUgdHJhbnNjZWl2ZXIgZXhwZWN0ZWQgMSBidXQgZ290IDAKLVBBU1Mgb2ZmZXJUb1JlY2Vp
dmVWaWRlbyBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQgaWYgYSBub24tc3RvcHBlZCAic2VuZHJl
Y3YiIHRyYW5zY2VpdmVyIGV4aXN0cwotRkFJTCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNldCB0byBm
YWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25seSIgdHJhbnNjZWl2ZXIg
YXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInNlbmRvbmx5IiBkaXJl
Y3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJzZW5kcmVjdiIKLUZBSUwgb2ZmZXJU
b1JlY2VpdmVWaWRlbyBzZXQgdG8gZmFsc2Ugd2l0aCBhICJyZWN2b25seSIgdHJhbnNjZWl2ZXIg
c2hvdWxkIGNoYW5nZSB0aGUgZGlyZWN0aW9uIHRvICJpbmFjdGl2ZSIgYXNzZXJ0X2VxdWFsczog
RXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgImluYWN0aXZlIiBkaXJlY3Rpb24gZXhwZWN0ZWQg
ImluYWN0aXZlIiBidXQgZ290ICJyZWN2b25seSIKLUZBSUwgc3Vic2VxdWVudCBvZmZlclRvUmVj
ZWl2ZVZpZGVvIHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNoYW5nZSB0aGUgZGly
ZWN0aW9uIHRvICJzZW5kb25seSIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHRyYW5zY2VpdmVyIHRv
IGhhdmUgInNlbmRvbmx5IiBkaXJlY3Rpb24gZXhwZWN0ZWQgInNlbmRvbmx5IiBidXQgZ290ICJz
ZW5kcmVjdiIKLUZBSUwgb2ZmZXJUb1JlY2VpdmVBdWRpbyBhbmQgVmlkZW8gc2hvdWxkIGNyZWF0
ZSB0d28gInJlY3Zvbmx5IiB0cmFuc2NlaXZlcnMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IHBjIHRv
IGhhdmUgdHdvIHRyYW5zY2VpdmVycyBleHBlY3RlZCAyIGJ1dCBnb3QgMAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY3JlYXRlT2ZmZXItb2ZmZXJUb1JlY2VpdmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGQxODI3YTFjOGQ2MGFiZTY3Y2FkNzJhOWVmMzI4MDAwM2M3OTJjMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVPZmZlci1vZmZlclRvUmVjZWl2ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAg
QEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5UZXN0IGxl
Z2FjeSBvZmZlclRvUmVjZWl2ZUF1ZGlvL1ZpZGVvIG9wdGlvbnM8L3RpdGxlPgotPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjLyNsZWdhY3ktY29u
ZmlndXJhdGlvbi1leHRlbnNpb25zIj4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFJ1biBzb21l
IHRlc3RzIGZvciBib3RoIGF1ZGlvIGFuZCB2aWRlbyBraW5kcwotICBbJ2F1ZGlvJywgJ3ZpZGVv
J10uZm9yRWFjaCgoa2luZCkgPT4gewotICAgIGNvbnN0IGNhcHNLaW5kID0ga2luZFswXS50b1Vw
cGVyQ2FzZSgpICsga2luZC5zbGljZSgxKTsKLQotICAgIGNvbnN0IG9mZmVyVG9SZWNlaXZlVHJ1
ZSA9IHt9OwotICAgIG9mZmVyVG9SZWNlaXZlVHJ1ZVtgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5k
fWBdID0gdHJ1ZTsKLQotICAgIGNvbnN0IG9mZmVyVG9SZWNlaXZlRmFsc2UgPSB7fTsKLSAgICBv
ZmZlclRvUmVjZWl2ZUZhbHNlW2BvZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9YF0gPSBmYWxzZTsK
LQotICAgIC8vIFN0YXJ0IHRlc3RpbmcKLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKLSAgICAgIGNvbnN0IGR1bW15ID0gcGMuY3JlYXRlRGF0YUNoYW5u
ZWwoJ2ZvbycpOyAvLyBKdXN0IHRvIGhhdmUgc29tZXRoaW5nIHRvIG9mZmVyCi0KLSAgICAgIHJl
dHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZUZhbHNlKQotICAgICAgLnRoZW4oKCkg
PT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MCwKLSAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgbm8gdHJhbnNjZWl2ZXJzJyk7Ci0gICAg
ICB9KTsKLSAgICB9LCBgY3JlYXRlT2ZmZXIoKSB3aXRoIG9mZmVyVG9SZWNlaXZlJHtjYXBzS2lu
ZH0gc2V0IHRvIGZhbHNlIHNob3VsZCBub3QgY3JlYXRlIGEgdHJhbnNjZWl2ZXJgKTsKLQotICAg
IHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7Ci0KLSAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0KLSAgICAg
IHJldHVybiBwYy5jcmVhdGVPZmZlcihvZmZlclRvUmVjZWl2ZVRydWUpCi0gICAgICAudGhlbigo
KSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3Ro
LCAxLAotICAgICAgICAgICdFeHBlY3QgcGMgdG8gaGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKLQot
ICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmdldFRyYW5zY2VpdmVycygpWzBdOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwgJ3JlY3Zvbmx5JywKLSAg
ICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24n
KTsKLSAgICAgIH0pOwotICAgIH0sIGBjcmVhdGVPZmZlcigpIHdpdGggb2ZmZXJUb1JlY2VpdmUk
e2NhcHNLaW5kfSBzaG91bGQgY3JlYXRlIGEgInJlY3Zvbmx5IiB0cmFuc2NlaXZlcmApOwotCi0g
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLQotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLQotICAg
ICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9SZWNlaXZlVHJ1ZSkKLSAgICAgIC50aGVu
KCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5n
dGgsIDEsCi0gICAgICAgICAgJ0V4cGVjdCBwYyB0byBoYXZlIG9uZSB0cmFuc2NlaXZlcicpOwot
Ci0gICAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF07Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAncmVjdm9ubHknLAot
ICAgICAgICAgICdFeHBlY3QgdHJhbnNjZWl2ZXIgdG8gaGF2ZSAicmVjdm9ubHkiIGRpcmVjdGlv
bicpOwotICAgICAgfSkKLSAgICAgIC50aGVuKCgpID0+IHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9S
ZWNlaXZlVHJ1ZSkpCi0gICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAotICAgICAgICAgICdFeHBlY3QgcGMgdG8g
c3RpbGwgaGF2ZSBvbmx5IG9uZSB0cmFuc2NlaXZlcicpOwotICAgICAgfSkKLSAgICAgIDsKLSAg
ICB9LCBgb2ZmZXJUb1JlY2VpdmUke2NhcHNLaW5kfSBvcHRpb24gc2hvdWxkIGJlIGlnbm9yZWQg
aWYgYSBub24tc3RvcHBlZCAicmVjdm9ubHkiIHRyYW5zY2VpdmVyIGV4aXN0c2ApOwotCi0gICAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLQotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLQotICAgICAg
cmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYShraW5kKQotICAgICAgLnRoZW4oKFt0cmFjaywg
c3RyZWFtXSkgPT4gewotICAgICAgICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKLSAgICAg
ICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCk7Ci0gICAgICB9KQotICAgICAgLnRoZW4oKCkgPT4g
ewotICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwK
LSAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7Ci0KLSAgICAg
ICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kcmVjdicsCi0gICAgICAg
ICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kcmVjdiIgZGlyZWN0aW9uJyk7Ci0g
ICAgICB9KQotICAgICAgLnRoZW4oKCkgPT4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVU
cnVlKSkKLSAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRU
cmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEsCi0gICAgICAgICAgJ0V4cGVjdCBwYyB0byBzdGlsbCBo
YXZlIG9ubHkgb25lIHRyYW5zY2VpdmVyJyk7Ci0gICAgICB9KQotICAgICAgOwotICAgIH0sIGBv
ZmZlclRvUmVjZWl2ZSR7Y2Fwc0tpbmR9IG9wdGlvbiBzaG91bGQgYmUgaWdub3JlZCBpZiBhIG5v
bi1zdG9wcGVkICJzZW5kcmVjdiIgdHJhbnNjZWl2ZXIgZXhpc3RzYCk7Ci0KLSAgICBwcm9taXNl
X3Rlc3QodCA9PiB7Ci0gICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
Ci0gICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotCi0gICAgICByZXR1cm4g
Z2V0VHJhY2tGcm9tVXNlck1lZGlhKGtpbmQpCi0gICAgICAudGhlbigoW3RyYWNrLCBzdHJlYW1d
KSA9PiB7Ci0gICAgICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOwotICAgICAgICByZXR1
cm4gcGMuY3JlYXRlT2ZmZXIob2ZmZXJUb1JlY2VpdmVGYWxzZSk7Ci0gICAgICB9KQotICAgICAg
LnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygp
Lmxlbmd0aCwgMSwKLSAgICAgICAgICAnRXhwZWN0IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVy
Jyk7Ci0KLSAgICAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVsw
XTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25s
eScsCi0gICAgICAgICAgJ0V4cGVjdCB0cmFuc2NlaXZlciB0byBoYXZlICJzZW5kb25seSIgZGly
ZWN0aW9uJyk7Ci0gICAgICB9KQotICAgICAgOwotICAgIH0sIGBvZmZlclRvUmVjZWl2ZSR7Y2Fw
c0tpbmR9IHNldCB0byBmYWxzZSB3aXRoIGEgdHJhY2sgc2hvdWxkIGNyZWF0ZSBhICJzZW5kb25s
eSIgdHJhbnNjZWl2ZXJgKTsKLQotICAgIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAgICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7Ci0KLSAgICAgIHBjLmFkZFRyYW5zY2VpdmVyKGtpbmQsIHtkaXJlY3Rp
b246ICdyZWN2b25seSd9KTsKLQotICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKG9mZmVyVG9S
ZWNlaXZlRmFsc2UpCi0gICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxLAotICAgICAgICAgICdFeHBlY3QgcGMgdG8g
aGF2ZSBvbmUgdHJhbnNjZWl2ZXInKTsKLQotICAgICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBj
LmdldFRyYW5zY2VpdmVycygpWzBdOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVy
LmRpcmVjdGlvbiwgJ2luYWN0aXZlJywKLSAgICAgICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyIHRv
IGhhdmUgImluYWN0aXZlIiBkaXJlY3Rpb24nKTsKLSAgICAgIH0pCi0gICAgICA7Ci0gICAgfSwg
YG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZhbHNlIHdpdGggYSAicmVjdm9ubHki
IHRyYW5zY2VpdmVyIHNob3VsZCBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byAiaW5hY3RpdmUiYCk7
Ci0KLSAgICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAg
ICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICAgICAgcmV0dXJuIGdldFRyYWNrRnJvbVVz
ZXJNZWRpYShraW5kKQotICAgICAgLnRoZW4oKFt0cmFjaywgc3RyZWFtXSkgPT4gewotICAgICAg
ICBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKLSAgICAgICAgcmV0dXJuIHBjLmNyZWF0ZU9m
ZmVyKCk7Ci0gICAgICB9KQotICAgICAgLnRoZW4oKG9mZmVyKSA9PiBwYy5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyKSkKLSAgICAgIC50aGVuKCgpID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYy5sb2NhbERlc2NyaXB0aW9uKSkKLSAgICAgIC50aGVuKCgpID0+IHBjMi5jcmVhdGVBbnN3
ZXIoKSkKLSAgICAgIC50aGVuKChhbnN3ZXIpID0+IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcikpCi0gICAgICAudGhlbigoKSA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9j
YWxEZXNjcmlwdGlvbikpCi0gICAgICAudGhlbigoKSA9PiBwYy5jcmVhdGVPZmZlcihvZmZlclRv
UmVjZWl2ZUZhbHNlKSkKLSAgICAgIC50aGVuKChvZmZlcikgPT4gewotICAgICAgICBhc3NlcnRf
ZXF1YWxzKHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSwKLSAgICAgICAgICAnRXhwZWN0
IHBjIHRvIGhhdmUgb25lIHRyYW5zY2VpdmVyJyk7Ci0KLSAgICAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5kaXJlY3Rpb24sICdzZW5kb25seScsCi0gICAgICAgICAgJ0V4cGVjdCB0cmFuc2Nl
aXZlciB0byBoYXZlICJzZW5kb25seSIgZGlyZWN0aW9uJyk7Ci0gICAgICB9KQotICAgICAgOwot
ICAgIH0sIGBzdWJzZXF1ZW50IG9mZmVyVG9SZWNlaXZlJHtjYXBzS2luZH0gc2V0IHRvIGZhbHNl
IHdpdGggYSB0cmFjayBzaG91bGQgY2hhbmdlIHRoZSBkaXJlY3Rpb24gdG8gInNlbmRvbmx5ImAp
OwotICB9KTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
Ci0KLSAgICByZXR1cm4gcGMuY3JlYXRlT2ZmZXIoeyBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVl
LCBvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlIH0pCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAg
YXNzZXJ0X2VxdWFscyhwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDIsCi0gICAgICAgICdF
eHBlY3QgcGMgdG8gaGF2ZSB0d28gdHJhbnNjZWl2ZXJzJyk7Ci0KLSAgICAgIGFzc2VydF9lcXVh
bHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAncmVjdm9ubHknLAotICAgICAg
ICAnRXhwZWN0IGZpcnN0IHRyYW5zY2VpdmVyIHRvIGhhdmUgInJlY3Zvbmx5IiBkaXJlY3Rpb24n
KTsKLSAgICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0VHJhbnNjZWl2ZXJzKClbMV0uZGlyZWN0aW9u
LCAncmVjdm9ubHknLAotICAgICAgICAnRXhwZWN0IHNlY29uZCB0cmFuc2NlaXZlciB0byBoYXZl
ICJyZWN2b25seSIgZGlyZWN0aW9uJyk7Ci0gICAgfSk7Ci0gIH0sICdvZmZlclRvUmVjZWl2ZUF1
ZGlvIGFuZCBWaWRlbyBzaG91bGQgY3JlYXRlIHR3byAicmVjdm9ubHkiIHRyYW5zY2VpdmVycycp
OwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2
ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg2ZWUyY2U2YmY2ODNmZmRk
NDI5M2I3ZjI4ZTc4YjhiMTM1Mjg0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotRkFJTCBSVENQZWVyQ29ubmVjdGlv
bi5nZXREZWZhdWx0SWNlU2VydmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2Vy
dmVyIFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCknLCAnUlRD
UGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMnIGlzIHVuZGVmaW5lZCkKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRmZGJkYjhkZWM0NmRlNTQ5YzA3Nzk0OWVkOTQ2YTdhMzEwZTliNzQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVs
dEljZVNlcnZlcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5n
ZXREZWZhdWx0SWNlU2VydmVyczwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgLy8g
VGVzdCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAot
Ci0gIC8qCi0gICAgICBbQ29uc3RydWN0b3Iob3B0aW9uYWwgUlRDQ29uZmlndXJhdGlvbiBjb25m
aWd1cmF0aW9uKV0KLSAgICAgIGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50VGFy
Z2V0IHsKLSAgICAgICAgc3RhdGljIHNlcXVlbmNlPFJUQ0ljZVNlcnZlcj4gICAgICBnZXREZWZh
dWx0SWNlU2VydmVycygpOwotICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGRpY3Rpb25h
cnkgUlRDSWNlU2VydmVyIHsKLSAgICAgICAgcmVxdWlyZWQgKERPTVN0cmluZyBvciBzZXF1ZW5j
ZTxET01TdHJpbmc+KSB1cmxzOwotICAgICAgICAgICAgICAgICBET01TdHJpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZXJuYW1lOwotICAgICAgICAgICAgICAgICAoRE9NU3RyaW5nIG9y
IFJUQ09BdXRoQ3JlZGVudGlhbCkgIGNyZWRlbnRpYWw7Ci0gICAgICAgICAgICAgICAgIFJUQ0lj
ZUNyZWRlbnRpYWxUeXBlICAgICAgICAgICAgICAgY3JlZGVudGlhbFR5cGUgPSAicGFzc3dvcmQi
OwotICAgICAgfTsKLQotICAgICAgZGljdGlvbmFyeSBSVENPQXV0aENyZWRlbnRpYWwgewotICAg
ICAgICByZXF1aXJlZCBET01TdHJpbmcgbWFjS2V5OwotICAgICAgICByZXF1aXJlZCBET01TdHJp
bmcgYWNjZXNzVG9rZW47Ci0gICAgICB9OwotCi0gICAgICBlbnVtIFJUQ0ljZUNyZWRlbnRpYWxU
eXBlIHsKLSAgICAgICAgInBhc3N3b3JkIiwKLSAgICAgICAgIm9hdXRoIgotICAgICAgfTsKLSAg
ICovCi0KLSAgdGVzdCgoKSA9PiB7Ci0gICAgY29uc3QgaWNlU2VydmVycyA9IFJUQ1BlZXJDb25u
ZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCk7Ci0KLSAgICBhc3NlcnRfdHJ1ZShBcnJheS5p
c0FycmF5KGljZVNlcnZlcnMpLAotICAgICAgJ0V4cGVjdCBpY2VTZXJ2ZXJzIHRvIGJlIGFuIGFy
cmF5Jyk7Ci0KLSAgICAvLyBkaWN0aW9uYXJ5IElETCBjYW5ub3QgYmUgdGVzdGVkIGF1dG9tYXRp
Y2FsbHkgdXNpbmcgaWRsaGFybmVzcwotICAgIGZvcihjb25zdCBzZXJ2ZXIgb2YgaWNlU2VydmVy
cykgewotICAgICAgY29uc3QgeyB1cmxzLCB1c2VybmFtZSwgY3JlZGVudGlhbCwgY3JlZGVudGlh
bFR5cGUgfSA9IHNlcnZlcjsKLQotICAgICAgaWYoQXJyYXkuaXNBcnJheSh1cmxzKSkgewotICAg
ICAgICBmb3IoY29uc3QgdXJsIG9mIHVybHMpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5
cGVvZiB1cmwsICdzdHJpbmcnLAotICAgICAgICAgICAgJ0V4cGVjdCBlbGVtZW50cyBpbiB1cmxz
IGFycmF5IHRvIGJlIHN0cmluZycpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB1cmxzLCAnc3RyaW5nJywKLSAgICAgICAgICAnRXhwZWN0
IHVybHMgdG8gYmUgZWl0aGVyIHN0cmluZyBvciBhcnJheScpOwotICAgICAgfQotCi0gICAgICBp
Zih1c2VybmFtZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9m
IHVzZXJuYW1lLCAnc3RyaW5nJywKLSAgICAgICAgICAnRXhwZWN0IHVzZXJuYW1lIHRvIGJlIGVp
dGhlciB1bmRlZmluZWQgb3Igc3RyaW5nJyk7Ci0gICAgICB9Ci0KLSAgICAgIGFzc2VydF90cnVl
KGNyZWRlbnRpYWxUeXBlID09PSAncGFzc3dvcmQnIHx8IGNyZWRlbnRpYWxUeXBlID09PSAnb2F1
dGgnLAotICAgICAgICAnRXhwZWN0IGNyZWRlbnRpYWxUeXBlIHRvIGJlIGVpdGhlciBwYXNzd29y
ZCBvciBvYXV0aCcpCi0KLSAgICAgIGlmKGNyZWRlbnRpYWwpIHsKLSAgICAgICAgaWYodHlwZW9m
KGNyZWRlbnRpYWwpID09PSAnb2JqZWN0JykgewotICAgICAgICAgIGNvbnN0IHsgbWFjS2V5LCBh
Y2Nlc3NUb2tlbiB9ID0gY3JlZGVudGlhbDsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVv
ZiBtYWNLZXksICdzdHJpbmcnLAotICAgICAgICAgICAgJ0V4cGVjdCBtYWNLZXkgdG8gYmUgc3Ry
aW5nJyk7Ci0KLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBhY2Nlc3NUb2tlbiwgJ3N0
cmluZycsCi0gICAgICAgICAgICAnRXhwZWN0IGFjY2Vzc1Rva2VuIHRvIGJlIHN0cmluZycpOwot
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgY3JlZGVu
dGlhbCwgJ3N0cmluZycsCi0gICAgICAgICAgICAnRXhwZWN0IGNyZWRlbnRpYWwgdG8gYmUgZWl0
aGVyIHVuZGVmaW5lZCwgc3RyaW5nLCBvciBSVENPYXV0aENyZWRlbnRpYWwgZGljdGlvbmFyeScp
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotCi0gICAgLy8gRXhwZWN0IGRlZmF1bHQgaWNl
IHNlcnZlcnMgdG8gYmUgYWNjZXB0ZWQgYXMgdmFsaWQgY29uZmlndXJhdGlvbgotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsgaWNlU2VydmVycyB9KTsKLQotICAgIC8vIE9u
bHkgbWFrZSBzdXJlIHRoZXJlIGFyZSBzYW1lIG51bWJlciBvZiBpY2Ugc2VydmVycyBjb25maWd1
cmVkCi0gICAgLy8gYW5kIG5vdCBkbyBhbnkgZGVlcCBlcXVhbGl0eSBjaGVja2luZwotICAgIGFz
c2VydF9lcXVhbHMocGMuZ2V0Q29uZmlndXJhdGlvbigpLmljZVNlcnZlcnMubGVuZ3RoLCBpY2VT
ZXJ2ZXJzLmxlbmd0aCk7Ci0KLSAgfSwgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VT
ZXJ2ZXJzKCkgc2hvdWxkIHJldHVybiBhcnJheSBvZiBSVENJY2VTZXJ2ZXInKTsKLQotICAvKgot
ICAgIENvdmVyYWdlIFJlcG9ydAotICAgICAgU2luY2UgdGhlcmUgaXMgbm8gc3RlcHMgaW52b2x2
ZWQgYW5kIHdlIGFyZSBvbmx5IGNoZWNraW5nIGJhc2ljIGNhbGwsCi0gICAgICBUaGlzIGlzIGNv
dW50ZWQgYXMgMSB0cml2aWFsIHRlc3QgY292ZXJhZ2UuCi0KLSAgICAgIFRlc3RlZCAgICAxCi0g
ICAgICBUb3RhbCAgICAgMQotICAgKi8KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dElkZW50aXR5QXNzZXJ0aW9uLnN1Yi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDExZDk0OGFhZGZhMTYyNjc3NDlkZjdlZDUyNGQ2ODA0NDYzZDkzNGUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0
SWRlbnRpdHlBc3NlcnRpb24uc3ViLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0
ICswLDAgQEAKLQotRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCBsb2FkIElkUCBw
cm94eSBhbmQgcmV0dXJuIGFzc2VydGlvbiBnZW5lcmF0ZWQgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1
bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVyLi4uJykKLUZBSUwgZ2V0SWRl
bnRpdHlBc3NlcnRpb24oKSBzaG91bGQgc3VjY2VlZCBpZiBtb2NrLWlkcC5qcyByZXR1cm4gZGlm
ZmVyZW50IGRvbWFpbiBhbmQgcHJvdG9jb2wgaW4gYXNzZXJ0aW9uIHVuZGVmaW5lZCBpcyBub3Qg
YSBmdW5jdGlvbiAobmVhciAnLi4ucGMuc2V0SWRlbnRpdHlQcm92aWRlci4uLicpCi1GQUlMIGdl
dElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhl
Y3V0aW9uLWZhaWx1cmUnKSBpZiBtb2NrLWlkcC5qcyB0aHJvd3MgZXJyb3IgYXNzZXJ0X2VxdWFs
czogRXhwZWN0IGluaXRpYWwgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIG51bGwgZXhwZWN0ZWQgKG9i
amVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBnZXRJZGVudGl0
eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBSVENFcnJvcignaWRwLWJhZC1zY3JpcHQt
ZmFpbHVyZScpIGlmIElkUCBwcm94eSBzY3JpcHQgZG8gbm90IHJlZ2lzdGVyIGl0cyBjYWxsYmFj
ayB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJv
dmlkZXIuLi4nKQotRkFJTCBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0
aCBPcGVyYXRpb25FcnJvciBpZiBtb2NrLWlkcC5qcyByZXR1cm4gaW52YWxpZCByZXN1bHQgdW5k
ZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJZGVudGl0eVByb3ZpZGVy
Li4uJykKLUZBSUwgZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgcmVqZWN0IHdpdGggUlRD
RXJyb3IoJ2lkcC1sb2FkLWZhaWx1cmUnKSBpZiBJZFAgY2Fubm90IGJlIGxvYWRlZCBwYy5zZXRJ
ZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJv
dmlkZXIoJ25vbmV4aXN0ZW50LmxvY2FsaG9zdCcsIHsKLSAgICAgIHByb3RvY29sOiBgbm9uLWV4
aXN0ZW50YCwKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQGV4YW1wbGUub3JnYCwKLSAgICB9
KScsICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyJyBpcyB1bmRlZmluZWQpCi1GQUlMIGdldElkZW50
aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtbmVlZC1sb2dp
bicpIHdoZW4gbW9jay1pZHAuanMgcmVxdWlyZXMgbG9naW4gYXNzZXJ0X2VxdWFsczogRXhwZWN0
IGluaXRpYWwgcGMuaWRwTG9naW5VcmwgdG8gYmUgbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxs
IGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIHNldElkZW50aXR5UHJvdmlkZXIo
KSB3aXRoIG5vIHBlZXJJZGVudGl0eSBwcm92aWRlZCBzaG91bGQgdXNlIHBlZXJJZGVudGl0eSB2
YWx1ZSBmcm9tIGdldENvbmZpZ3VyYXRpb24oKSBwYy5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ3BjLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdCwgewotICAg
ICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycKLSAgICB9KScsICdwYy5zZXRJZGVudGl0eVByb3Zp
ZGVyJyBpcyB1bmRlZmluZWQpCi1GQUlMIENhbGxpbmcgc2V0SWRlbnRpdHlQcm92aWRlcigpIG11
bHRpcGxlIHRpbWVzIHNob3VsZCByZXNldCBpZGVudGl0eSBhc3NlcnRpb25zIHBjLnNldElkZW50
aXR5UHJvdmlkZXIgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncGMuc2V0SWRlbnRpdHlQcm92aWRl
cihpZHBIb3N0LCB7Ci0gICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzP21hcms9Zmlyc3QnCi0g
ICAgfSknLCAncGMuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQotRkFJTCBjcmVh
dGVPZmZlcigpIHNob3VsZCByZXR1cm4gU0RQIGNvbnRhaW5pbmcgaWRlbnRpdHkgYXNzZXJ0aW9u
IHN0cmluZyBpZiBpZGVudGl0eSBwcm92aWRlciBpcyBzZXQgcGMuc2V0SWRlbnRpdHlQcm92aWRl
ciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJp
bmcoaWRwRG9tYWluLCBwb3J0KSwgewotICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCi0g
ICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCi0gICAgfSknLCAncGMuc2V0
SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVkKQotRkFJTCBjcmVhdGVPZmZlcigpIHNob3Vs
ZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkgYXNzZXJ0aW9uIHJl
cXVlc3QgZmFpbHMgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYy5zZXRJ
ZGVudGl0eVByb3ZpZGVyLi4uJykKLUZBSUwgY3JlYXRlQW5zd2VyKCkgc2hvdWxkIHJlamVjdCB3
aXRoIE5vdFJlYWRhYmxlRXJyb3IgaWYgaWRlbnRpdGl0eSBhc3NlcnRpb24gcmVxdWVzdCBmYWls
cyB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjLnNldElkZW50aXR5UHJv
dmlkZXIuLi4nKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRJZGVudGl0eUFzc2VydGlv
bi5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmQ4NjBkOTAxZGVkNzhjOTYzNWRhNjU0MTNh
YzYzZTdkYmY0NDYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWdldElkZW50aXR5QXNzZXJ0aW9uLnN1Yi5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDAwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYt
OD4KLTx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuZ2V0SWRlbnRpdHlBc3NlcnRp
b248L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9ImlkZW50aXR5LWhlbHBlci5zdWIuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLSAgJ3VzZSBzdHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxv
d2luZyBlZGl0b3IgZHJhZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMv
YXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUgdGVzdHMgaGVyZSBpbnRl
cmFjdHMgd2l0aCB0aGUgbW9jayBpZGVudGl0eSBwcm92aWRlciBsb2NhdGVkIGF0Ci0gIC8vICAg
Ly53ZWxsLWtub3duL2lkcC1wcm94eS9tb2NrLWlkcC5qcwotCi0gIC8vIFRoZSBmb2xsb3dpbmcg
aGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gaWRlbnRpdHktaGVscGVyLnN1Yi5qcwot
ICAvLyAgIHBhcnNlQXNzZXJ0aW9uUmVzdWx0Ci0gIC8vICAgZ2V0SWRwRG9tYWlucwotICAvLyAg
IGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24KLSAgLy8gICBob3N0U3RyaW5nCi0KLSAgLyoKLSAg
ICA5LjYuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9ucwotICAgICAgcGFy
dGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgICAgICB2b2lkICAgICAgICAg
ICAgICAgc2V0SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcgcHJvdmlkZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFJUQ0lkZW50aXR5
UHJvdmlkZXJPcHRpb25zIG9wdGlvbnMpOwotICAgICAgICBQcm9taXNlPERPTVN0cmluZz4gZ2V0
SWRlbnRpdHlBc3NlcnRpb24oKTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8
UlRDSWRlbnRpdHlBc3NlcnRpb24+IHBlZXJJZGVudGl0eTsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcExvZ2luVXJsOwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAgICAgICAgICAgICAgICAgaWRwRXJy
b3JJbmZvOwotICAgICAgfTsKLQotICAgICAgZGljdGlvbmFyeSBSVENJZGVudGl0eVByb3ZpZGVy
T3B0aW9ucyB7Ci0gICAgICAgIERPTVN0cmluZyBwcm90b2NvbCA9ICJkZWZhdWx0IjsKLSAgICAg
ICAgRE9NU3RyaW5nIHVzZXJuYW1lSGludDsKLSAgICAgICAgRE9NU3RyaW5nIHBlZXJJZGVudGl0
eTsKLSAgICAgIH07Ci0gICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0
aW9uLnBvcnQ7Ci0KLSAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKLSAg
ICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOwotCi0gICAgcGMu
c2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7Ci0gICAgICBwcm90b2NvbDogJ21vY2staWRw
LmpzP2Zvbz1iYXInLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwK
LSAgICAgIHBlZXJJZGVudGl0eTogJ2JvYkBleGFtcGxlLm9yZycKLSAgICB9KTsKLQotICAgIHJl
dHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigpCi0gICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0
U3RyID0+IHsKLSAgICAgIGNvbnN0IHsgaWRwLCBhc3NlcnRpb24gfSA9IHBhcnNlQXNzZXJ0aW9u
UmVzdWx0KGFzc2VydGlvblJlc3VsdFN0cik7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMoaWRwLmRv
bWFpbiwgaWRwSG9zdCwKLSAgICAgICAgJ0V4cGVjdCBtb2NrLWlkcC5qcyB0byBjb25zdHJ1Y3Qg
ZG9tYWluIGZyb20gaXRzIGxvY2F0aW9uLmhvc3QnKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhp
ZHAucHJvdG9jb2wsICdtb2NrLWlkcC5qcycsCi0gICAgICAgICdFeHBlY3QgbW9jay1pZHAuanMg
dG8gcmV0dXJuIHByb3RvY29sIG9mIGl0c2VsZiB3aXRoIG5vIHF1ZXJ5IHN0cmluZycpOwotCi0g
ICAgICBjb25zdCB7Ci0gICAgICAgIHdhdGVybWFyaywKLSAgICAgICAgYXJncywKLSAgICAgICAg
ZW52LAotICAgICAgICBxdWVyeSwKLSAgICAgIH0gPSBhc3NlcnRpb247Ci0KLSAgICAgIGFzc2Vy
dF9lcXVhbHMod2F0ZXJtYXJrLCAnbW9jay1pZHAuanMud2F0ZXJtYXJrJywKLSAgICAgICAgJ0V4
cGVjdCBhc3NlcnRpb24gcmVzdWx0IHRvIGNvbnRhaW4gd2F0ZXJtYXJrIGxlZnQgYnkgbW9jay1p
ZHAuanMnKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhhcmdzLm9yaWdpbiwgd2luZG93Lm9yaWdp
biwKLSAgICAgICAgJ0V4cGVjdCBhcmdzLm9yaWdpbiBhcmd1bWVudCB0byBiZSB0aGUgb3JpZ2lu
IG9mIHRoaXMgd2luZG93Jyk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMoZW52LmxvY2F0aW9uLAot
ICAgICAgICBgaHR0cHM6Ly8ke2lkcEhvc3R9Ly53ZWxsLWtub3duL2lkcC1wcm94eS9pZHAtdGVz
dC5qcz9mb289YmFyYCwKLSAgICAgICAgJ0V4cGVjdCBJZFAgcHJveHkgdG8gYmUgbG9hZGVkIHdp
dGggZnVsbCB3ZWxsLWtub3duIFVSTCBjb25zdHJ1Y3RlZCBmcm9tIHByb3ZpZGVyIGFuZCBwcm90
b2NvbCcpOwotCi0gICAgICBhc3NlcnRfZXF1YWxzKGVudi5vcmlnaW4sIGBodHRwczovLyR7aWRw
SG9zdH1gLAotICAgICAgICAnRXhwZWN0IElkUCB0byBoYXZlIGl0cyBvd24gb3JpZ2luJyk7Ci0K
LSAgICAgIGFzc2VydF9lcXVhbHMoYXJncy5vcHRpb25zLnByb3RvY29sLCAnaWRwLXRlc3QuanM/
Zm9vPWJhcicsCi0gICAgICAgICdFeHBlY3Qgb3B0aW9ucy5wcm90b2NvbCB0byBiZSB0aGUgc2Ft
ZSB2YWx1ZSBhcyBiZWluZyBwYXNzZWQgZnJvbSBoZXJlJyk7Ci0KLSAgICAgIGFzc2VydF9lcXVh
bHMoYXJncy5vcHRpb25zLnVzZXJuYW1lSGludCwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCi0gICAg
ICAgICdFeHBlY3Qgb3B0aW9ucy51c2VybmFtZUhpbnQgdG8gYmUgdGhlIHNhbWUgdmFsdWUgYXMg
YmVpbmcgcGFzc2VkIGZyb20gaGVyZScpOwotCi0gICAgICBhc3NlcnRfZXF1YWxzKGFyZ3Mub3B0
aW9ucy5wZWVySWRlbnRpdHksICdib2JAZXhhbXBsZS5vcmcnLAotICAgICAgICAnRXhwZWN0IG9w
dGlvbnMucGVlcklkZW50aXR5IHRvIGJlIHRoZSBzYW1lIHZhbHVlIGFzIGJlaW5nIHBhc3NlZCBm
cm9tIGhlcmUnKTsKLQotICAgICAgYXNzZXJ0X2VxdWFscyhxdWVyeS5mb28sICdiYXInLAotICAg
ICAgICAnRXhwZWN0IHF1ZXJ5IHN0cmluZyB0byBiZSBwYXJzZWQgYnkgbW9jay1pZHAuanMgYW5k
IHJldHVybmVkIGJhY2snKTsKLSAgICB9KTsKLSAgfSwgJ2dldElkZW50aXR5QXNzZXJ0aW9uKCkg
c2hvdWxkIGxvYWQgSWRQIHByb3h5IGFuZCByZXR1cm4gYXNzZXJ0aW9uIGdlbmVyYXRlZCcpOwot
Ci0gIC8vIFdoZW4gZ2VuZXJhdGluZyBhc3NlcnRpb24sIHRoZSBSVENQZWVyQ29ubmVjdGlvbiBk
b2Vzbid0IGNhcmUgaWYgdGhlIHJldHVybmVkIGFzc2VydGlvbgotICAvLyByZXByZXNlbnRzIGlk
ZW50aXR5IG9mIGRpZmZlcmVudCBkb21haW4KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgY29uc3QgcG9ydCA9IHdpbmRv
dy5sb2NhdGlvbi5wb3J0OwotCi0gICAgY29uc3QgW2lkcERvbWFpbjEsIGlkcERvbWFpbjJdID0g
Z2V0SWRwRG9tYWlucygpOwotICAgIGFzc2VydF9ub3RfZXF1YWxzKGlkcERvbWFpbjEsIGlkcERv
bWFpbjIsCi0gICAgICAnU2FuaXR5IGNoZWNrIHR3byBpZHBEb21haW5zIGFyZSBkaWZmZXJlbnQn
KTsKLQotICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byByZXR1cm4gYSBjdXN0b20gZG9tYWluIGlk
cERvbWFpbjIgYW5kIGN1c3RvbSBwcm90b2NvbCBmb28KLSAgICBwYy5zZXRJZGVudGl0eVByb3Zp
ZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluMSwgcG9ydCksIHsKLSAgICAgIHByb3RvY29sOiBgbW9j
ay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXJldHVybi1jdXN0b20taWRwJmRvbWFpbj0ke2lkcERv
bWFpbjJ9JnByb3RvY29sPWZvb2AsCi0gICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERv
bWFpbjJ9YCwKLSAgICB9KTsKLQotICAgIHJldHVybiBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigp
Ci0gICAgLnRoZW4oYXNzZXJ0aW9uUmVzdWx0U3RyID0+IHsKLSAgICAgIGNvbnN0IHsgaWRwLCBh
c3NlcnRpb24gfSA9IHBhcnNlQXNzZXJ0aW9uUmVzdWx0KGFzc2VydGlvblJlc3VsdFN0cik7Ci0g
ICAgICBhc3NlcnRfZXF1YWxzKGlkcC5kb21haW4sIGlkcERvbWFpbjIpOwotICAgICAgYXNzZXJ0
X2VxdWFscyhpZHAucHJvdG9jb2wsICdmb28nKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0
aW9uLm9wdGlvbnMudXNlcm5hbWVIaW50LCBgYWxpY2VAJHtpZHBEb21haW4yfWApOwotICAgIH0p
OwotICB9LCAnZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSBzaG91bGQgc3VjY2VlZCBpZiBtb2NrLWlk
cC5qcyByZXR1cm4gZGlmZmVyZW50IGRvbWFpbiBhbmQgcHJvdG9jb2wgaW4gYXNzZXJ0aW9uJyk7
Ci0KLSAgLyoKLSAgICA5LjMuICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2VydGlvbnMKLSAgICAg
IDQuICBJZiB0aGUgSWRQIHByb3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJldHVybnMgYSBwcm9t
aXNlIHRoYXQgZG9lcyBub3QgcmVzb2x2ZSB0bwotICAgICAgICAgIGEgdmFsaWQgUlRDSWRlbnRp
dHlWYWxpZGF0aW9uUmVzdWx0IChzZWUgOS41IElkUCBFcnJvciBIYW5kbGluZyksIHRoZW4gaWRl
bnRpdHkKLSAgICAgICAgICB2YWxpZGF0aW9uIGZhaWxzLgotCi0gICAgOS41LiAgSWRQIEVycm9y
IEhhbmRsaW5nCi0gICAgICAtIElmIGFuIGlkZW50aXR5IHByb3ZpZGVyIHRocm93cyBhbiBleGNl
cHRpb24gb3IgcmV0dXJucyBhIHByb21pc2UgdGhhdCBpcyB1bHRpbWF0ZWx5Ci0gICAgICAgIHJl
amVjdGVkLCB0aGVuIHRoZSBwcm9jZWR1cmUgdGhhdCBkZXBlbmRzIG9uIHRoZSBJZFAgTVVTVCBh
bHNvIGZhaWwuIFRoZXNlIHR5cGVzIG9mCi0gICAgICAgIGVycm9ycyB3aWxsIGNhdXNlIGFuIElk
UCBmYWlsdXJlIHdpdGggYW4gUlRDRXJyb3Igd2l0aCBlcnJvckRldGFpbCBzZXQgdG8KLSAgICAg
ICAgImlkcC1leGVjdXRpb24tZmFpbHVyZSIuCi0KLSAgICA5LjYuICBSVENQZWVyQ29ubmVjdGlv
biBJbnRlcmZhY2UgRXh0ZW5zaW9ucwotICAgICAgaWRwRXJyb3JJbmZvCi0gICAgICAgIEFuIGF0
dHJpYnV0ZSB0aGF0IHRoZSBJZFAgY2FuIHVzZSB0byBwYXNzIGFkZGl0aW9uYWwgaW5mb3JtYXRp
b24gYmFjayB0byB0aGUKLSAgICAgICAgYXBwbGljYXRpb25zIGFib3V0IHRoZSBlcnJvci4gVGhl
IGZvcm1hdCBvZiB0aGlzIHN0cmluZyBpcyBkZWZpbmVkIGJ5IHRoZSBJZFAgYW5kCi0gICAgICAg
IG1heSBiZSBKU09OLgotICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVy
cm9ySW5mbywgbnVsbCwKLSAgICAgICdFeHBlY3QgaW5pdGlhbCBwYy5pZHBFcnJvckluZm8gdG8g
YmUgbnVsbCcpOwotCi0gICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OwotICAg
IGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOwotCi0gICAgLy8gQXNrIG1vY2st
aWRwLmpzIHRvIHRocm93IGFuIGVycm9yIHdpdGggZXJyLmVycm9ySW5mbyBzZXQgdG8gYmFyCi0g
ICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsK
LSAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXRocm93LWVycm9y
JmVycm9ySW5mbz1iYXJgLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59
YCwKLSAgICB9KTsKLQotICAgIHJldHVybiBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAt
ZXhlY3V0aW9uLWZhaWx1cmUnLAotICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSkKLSAg
ICAudGhlbigoKSA9PiB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHBjLmlkcEVycm9ySW5mbywgJ2Jh
cicsCi0gICAgICAgICdFeHBlY3QgcGMuaWRwRXJyb3JJbmZvIHRvIGJlIHNldCB0byB0aGUgZXJy
LmlkcEVycm9ySW5mbyB0aHJvd24gYnkgbW9jay1pZHAuanMnKTsKLSAgICB9KTsKLSAgfSwgYGdl
dElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhl
Y3V0aW9uLWZhaWx1cmUnKSBpZiBtb2NrLWlkcC5qcyB0aHJvd3MgZXJyb3JgKTsKLQotICAvKgot
ICAgIDkuNS4gIElkUCBFcnJvciBIYW5kbGluZwotICAgICAgLSBJZiB0aGUgc2NyaXB0IGxvYWRl
ZCBmcm9tIHRoZSBpZGVudGl0eSBwcm92aWRlciBpcyBub3QgdmFsaWQgSmF2YVNjcmlwdCBvciBk
b2VzCi0gICAgICAgIG5vdCBpbXBsZW1lbnQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlcywgaXQgY2F1
c2VzIGFuIElkUCBmYWlsdXJlIHdpdGggYW4gUlRDRXJyb3IKLSAgICAgICAgd2l0aCBlcnJvckRl
dGFpbCBzZXQgdG8gImlkcC1iYWQtc2NyaXB0LWZhaWx1cmUiLgotICAgKi8KLSAgcHJvbWlzZV90
ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0KLSAg
ICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0gICAgY29uc3QgW2lkcERvbWFp
bl0gPSBnZXRJZHBEb21haW5zKCk7Ci0KLSAgICAvLyBBc2sgbW9jay1pZHAuanMgdG8gbm90IHJl
Z2lzdGVyIGl0cyBjYWxsYmFjayB0byB0aGUKLSAgICAvLyBSVENJZGVudGl0eVByb3ZpZGVyUmVn
aXN0cmFyCi0gICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0U3RyaW5nKGlkcERvbWFpbiwg
cG9ydCksIHsKLSAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/YWN0aW9uPWRvLW5vdC1yZWdp
c3RlcmAsCi0gICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAotICAgIH0p
OwotCi0gICAgcmV0dXJuIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24oJ2lkcC1iYWQtc2NyaXB0
LWZhaWx1cmUnLAotICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKSk7Ci0KLSAgfSwgYGdl
dElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9yKCdpZHAtYmFk
LXNjcmlwdC1mYWlsdXJlJykgaWYgSWRQIHByb3h5IHNjcmlwdCBkbyBub3QgcmVnaXN0ZXIgaXRz
IGNhbGxiYWNrYCk7Ci0KLSAgLyoKLSAgICA5LjMuICBSZXF1ZXN0aW5nIElkZW50aXR5IEFzc2Vy
dGlvbnMKLSAgICAgIDQuICBJZiB0aGUgSWRQIHByb3h5IHByb2R1Y2VzIGFuIGVycm9yIG9yIHJl
dHVybnMgYSBwcm9taXNlIHRoYXQgZG9lcyBub3QgcmVzb2x2ZQotICAgICAgICAgIHRvIGEgdmFs
aWQgUlRDSWRlbnRpdHlBc3NlcnRpb25SZXN1bHQgKHNlZSA5LjUgSWRQIEVycm9yIEhhbmRsaW5n
KSwgdGhlbiBhc3NlcnRpb24KLSAgICAgICAgICBnZW5lcmF0aW9uIGZhaWxzLgotICAgKi8KLSAg
cHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7Ci0KLSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0gICAgY29uc3Qg
W2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0KLSAgICAvLyBBc2sgbW9jay1pZHAuanMg
dG8gcmV0dXJuIGFuIGludmFsaWQgcmVzdWx0IHRoYXQgaXMgbm90IHByb3BlcgotICAgIC8vIFJU
Q0lkZW50aXR5QXNzZXJ0aW9uUmVzdWx0Ci0gICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihob3N0
U3RyaW5nKGlkcERvbWFpbiwgcG9ydCksIHsKLSAgICAgIHByb3RvY29sOiBgbW9jay1pZHAuanM/
Z2VuZXJhdG9yQWN0aW9uPXJldHVybi1pbnZhbGlkLXJlc3VsdGAsCi0gICAgICB1c2VybmFtZUhp
bnQ6IGBhbGljZUAke2lkcERvbWFpbn1gLAotICAgIH0pOwotCi0gICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAotICAgICAgcGMuZ2V0SWRlbnRpdHlBc3NlcnRp
b24oKSk7Ci0gIH0sIGBnZXRJZGVudGl0eUFzc2VydGlvbigpIHNob3VsZCByZWplY3Qgd2l0aCBP
cGVyYXRpb25FcnJvciBpZiBtb2NrLWlkcC5qcyByZXR1cm4gaW52YWxpZCByZXN1bHRgKTsKLQot
ICAvKgotICAgIDkuNS4gIElkUCBFcnJvciBIYW5kbGluZwotICAgICAgLSBBIFJUQ1BlZXJDb25u
ZWN0aW9uIG1pZ2h0IGJlIGNvbmZpZ3VyZWQgd2l0aCBhbiBpZGVudGl0eSBwcm92aWRlciwgYnV0
IGxvYWRpbmcgb2YKLSAgICAgICAgdGhlIElkUCBVUkkgZmFpbHMuIEFueSBwcm9jZWR1cmUgdGhh
dCBhdHRlbXB0cyB0byBpbnZva2Ugc3VjaCBhbiBpZGVudGl0eSBwcm92aWRlcgotICAgICAgICBh
bmQgY2Fubm90IGxvYWQgdGhlIFVSSSBmYWlscyB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JE
ZXRhaWwgc2V0IHRvCi0gICAgICAgICJpZHAtbG9hZC1mYWlsdXJlIiBhbmQgdGhlIGh0dHBSZXF1
ZXN0U3RhdHVzQ29kZSBhdHRyaWJ1dGUgb2YgdGhlIGVycm9yIHNldCB0byB0aGUKLSAgICAgICAg
SFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuCi0gICAqLwotICBwcm9taXNlX3Rlc3Qo
dCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICAgIHBj
LnNldElkZW50aXR5UHJvdmlkZXIoJ25vbmV4aXN0ZW50Lnt7ZG9tYWluc1tdfX0nLCB7Ci0gICAg
ICBwcm90b2NvbDogYG5vbi1leGlzdGVudGAsCi0gICAgICB1c2VybmFtZUhpbnQ6IGBhbGljZUBl
eGFtcGxlLm9yZ2AsCi0gICAgfSk7Ci0KLSAgICByZXR1cm4gYXNzZXJ0X3J0Y2Vycm9yX3JlamVj
dGlvbignaWRwLWxvYWQtZmFpbHVyZScsCi0gICAgICBwYy5nZXRJZGVudGl0eUFzc2VydGlvbigp
KTsKLSAgfSwgYGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vy
cm9yKCdpZHAtbG9hZC1mYWlsdXJlJykgaWYgSWRQIGNhbm5vdCBiZSBsb2FkZWRgKTsKLQotICAv
KgotICAgIDkuMy4xLiAgVXNlciBMb2dpbiBQcm9jZWR1cmUKLSAgICAgIFJlamVjdGluZyB0aGUg
cHJvbWlzZSByZXR1cm5lZCBieSBnZW5lcmF0ZUFzc2VydGlvbiB3aWxsIGNhdXNlIHRoZSBlcnJv
ciB0bwotICAgICAgcHJvcGFnYXRlIHRvIHRoZSBhcHBsaWNhdGlvbi4gTG9naW4gZXJyb3JzIGFy
ZSBpbmRpY2F0ZWQgYnkgcmVqZWN0aW5nIHRoZQotICAgICAgcHJvbWlzZSB3aXRoIGFuIFJUQ0Vy
cm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvICJpZHAtbmVlZC1sb2dpbiIuCi0KLSAgICAgIFRo
ZSBVUkwgdG8gbG9naW4gYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGluIHRo
ZSBpZHBMb2dpblVybAotICAgICAgYXR0cmlidXRlIG9mIHRoZSBSVENQZWVyQ29ubmVjdGlvbi4K
LQotICAgIDkuNS4gIElkUCBFcnJvciBIYW5kbGluZwotICAgICAgLSBJZiB0aGUgaWRlbnRpdHkg
cHJvdmlkZXIgcmVxdWlyZXMgdGhlIHVzZXIgdG8gbG9naW4sIHRoZSBvcGVyYXRpb24gd2lsbCBm
YWlsCi0gICAgICAgIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvICJpZHAtbmVlZC1s
b2dpbiIgYW5kIHRoZSBpZHBMb2dpblVybCBhdHRyaWJ1dGUKLSAgICAgICAgb2YgdGhlIGVycm9y
IHNldCB0byB0aGUgVVJMIHRoYXQgY2FuIGJlIHVzZWQgdG8gbG9naW4uCi0gICAqLwotICBwcm9t
aXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
LQotICAgIGFzc2VydF9lcXVhbHMocGMuaWRwTG9naW5VcmwsIG51bGwsCi0gICAgICAnRXhwZWN0
IGluaXRpYWwgcGMuaWRwTG9naW5VcmwgdG8gYmUgbnVsbCcpOwotCi0gICAgY29uc3QgcG9ydCA9
IHdpbmRvdy5sb2NhdGlvbi5wb3J0OwotICAgIGNvbnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9t
YWlucygpOwotICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7
Ci0KLSAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAgICAgIHByb3RvY29s
OiBgbW9jay1pZHAuanM/Z2VuZXJhdG9yQWN0aW9uPXJlcXVpcmUtbG9naW5gLAotICAgICAgdXNl
cm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YCwKLSAgICB9KTsKLQotICAgIHJldHVybiBh
c3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtbmVlZC1sb2dpbicsCi0gICAgICBwYy5nZXRJ
ZGVudGl0eUFzc2VydGlvbigpKQotICAgIC50aGVuKGVyciA9PiB7Ci0gICAgICBhc3NlcnRfZXF1
YWxzKGVyci5pZHBMb2dpblVybCwgYGh0dHBzOi8vJHtpZHBIb3N0fS9sb2dpbmAsCi0gICAgICAg
ICdFeHBlY3QgZXJyLmlkcExvZ2luVXJsIHRvIGJlIHNldCB0byB1cmwgc2V0IGJ5IG1vY2staWRw
LmpzJyk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMocGMuaWRwTG9naW5VcmwsIGBodHRwczovLyR7
aWRwSG9zdH0vbG9naW5gLAotICAgICAgICAnRXhwZWN0IHBjLmlkcExvZ2luVXJsIHRvIGJlIHNl
dCB0byB1cmwgc2V0IGJ5IG1vY2staWRwLmpzJyk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMocGMu
aWRwRXJyb3JJbmZvLCAnbG9naW4gcmVxdWlyZWQnLAotICAgICAgICAnRXhwZWN0IHBjLmlkcEVy
cm9ySW5mbyB0byBiZSBzZXQgdG8gaW5mbyBzZXQgYnkgbW9jay1pZHAuanMnKTsKLSAgICB9KTsK
LSAgfSwgYGdldElkZW50aXR5QXNzZXJ0aW9uKCkgc2hvdWxkIHJlamVjdCB3aXRoIFJUQ0Vycm9y
KCdpZHAtbmVlZC1sb2dpbicpIHdoZW4gbW9jay1pZHAuanMgcmVxdWlyZXMgbG9naW5gKTsKLQot
ICAvKgotICAgIFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIE1lbWJlcnMKLSAgICAgIHBlZXJJ
ZGVudGl0eQotICAgICAgICBUaGUgaWRlbnRpdHkgb2YgdGhlIHBlZXIuIEZvciBpZGVudGl0eSBw
cm92aWRlcnMgdGhhdCBiaW5kIHRoZWlyIGFzc2VydGlvbnMgdG8gYQotICAgICAgICBwYXJ0aWN1
bGFyIHBhaXIgb2YgY29tbXVuaWNhdGlvbiBwZWVycywgdGhpcyBhbGxvd3MgdGhlbSB0byBnZW5l
cmF0ZSBhbiBhc3NlcnRpb24KLSAgICAgICAgdGhhdCBpbmNsdWRlcyBib3RoIGxvY2FsIGFuZCBy
ZW1vdGUgaWRlbnRpdGllcy4gSWYgdGhpcyB2YWx1ZSBpcyBvbWl0dGVkLCBidXQgYQotICAgICAg
ICB2YWx1ZSBpcyBwcm92aWRlZCBmb3IgdGhlIHBlZXJJZGVudGl0eSBtZW1iZXIgb2YgUlRDQ29u
ZmlndXJhdGlvbiwgdGhlIHZhbHVlIGZyb20KLSAgICAgICAgUlRDQ29uZmlndXJhdGlvbiBpcyB1
c2VkLgotICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oewotICAgICAgcGVlcklkZW50aXR5OiAnYm9iQGV4YW1wbGUubmV0Jwot
ICAgIH0pOwotCi0gICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OwotICAgIGNv
bnN0IFtpZHBEb21haW5dID0gZ2V0SWRwRG9tYWlucygpOwotICAgIGNvbnN0IGlkcEhvc3QgPSBo
b3N0U3RyaW5nKGlkcERvbWFpbiwgcG9ydCk7Ci0KLSAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVy
KGlkcEhvc3QsIHsKLSAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanMnCi0gICAgfSk7Ci0KLSAg
ICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQotICAgIC50aGVuKGFzc2VydGlvblJl
c3VsdFN0ciA9PiB7Ci0gICAgICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25S
ZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9u
LmFyZ3Mub3B0aW9ucy5wZWVySWRlbnRpdHksICdib2JAZXhhbXBsZS5uZXQnKTsKLSAgICB9KTsK
LSAgfSwgJ3NldElkZW50aXR5UHJvdmlkZXIoKSB3aXRoIG5vIHBlZXJJZGVudGl0eSBwcm92aWRl
ZCBzaG91bGQgdXNlIHBlZXJJZGVudGl0eSB2YWx1ZSBmcm9tIGdldENvbmZpZ3VyYXRpb24oKScp
OwotCi0gIC8qCi0gICAgOS42LiAgc2V0SWRlbnRpdHlQcm92aWRlcgotICAgICAgMy4gIElmIGFu
eSBpZGVudGl0eSBwcm92aWRlciB2YWx1ZSBoYXMgY2hhbmdlZCwgZGlzY2FyZCBhbnkgc3RvcmVk
IGlkZW50aXR5IGFzc2VydGlvbi4KLSAgICovCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIGNvbnN0IHBvcnQgPSB3aW5k
b3cubG9jYXRpb24ucG9ydDsKLSAgICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMo
KTsKLSAgICBjb25zdCBpZHBIb3N0ID0gaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpOwotCi0g
ICAgcGMuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7Ci0gICAgICBwcm90b2NvbDogJ21v
Y2staWRwLmpzP21hcms9Zmlyc3QnCi0gICAgfSk7Ci0KLSAgICByZXR1cm4gcGMuZ2V0SWRlbnRp
dHlBc3NlcnRpb24oKQotICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7Ci0gICAgICBj
b25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRpb25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0
U3RyKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0aW9uLnF1ZXJ5Lm1hcmssICdmaXJzdCcp
OwotCi0gICAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAgICAgICAgcHJv
dG9jb2w6ICdtb2NrLWlkcC5qcz9tYXJrPXNlY29uZCcKLSAgICAgIH0pOwotCi0gICAgICByZXR1
cm4gcGMuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKTsKLSAgICB9KQotICAgIC50aGVuKGFzc2VydGlv
blJlc3VsdFN0ciA9PiB7Ci0gICAgICBjb25zdCB7IGFzc2VydGlvbiB9ID0gcGFyc2VBc3NlcnRp
b25SZXN1bHQoYXNzZXJ0aW9uUmVzdWx0U3RyKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoYXNzZXJ0
aW9uLnF1ZXJ5Lm1hcmssICdzZWNvbmQnLAotICAgICAgICAnRXhwZWN0IGdlbmVyYXRlZCBhc3Nl
cnRpb24gaXMgZnJvbSBzZWNvbmQgSWRQIGNvbmZpZycpOwotICAgIH0pOwotICB9LCBgQ2FsbGlu
ZyBzZXRJZGVudGl0eVByb3ZpZGVyKCkgbXVsdGlwbGUgdGltZXMgc2hvdWxkIHJlc2V0IGlkZW50
aXR5IGFzc2VydGlvbnNgKTsKLQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0
aW9uLnBvcnQ7Ci0gICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0KLSAg
ICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KSwgewot
ICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcycsCi0gICAgICB1c2VybmFtZUhpbnQ6IGBhbGlj
ZUAke2lkcERvbWFpbn1gCi0gICAgfSk7Ci0KLSAgICByZXR1cm4gcGMuZ2V0SWRlbnRpdHlBc3Nl
cnRpb24oKQotICAgIC50aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PgotICAgICAgcGMuY3JlYXRl
T2ZmZXIoKQotICAgICAgLnRoZW4ob2ZmZXIgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShvZmZl
ci5zZHAuaW5jbHVkZXMoYFxyXG5hPWlkZW50aXR5OiR7YXNzZXJ0aW9uUmVzdWx0U3RyfWAsCi0g
ICAgICAgICAgJ0V4cGVjdCBTRFAgdG8gaGF2ZSBhPWlkZW50aXR5IGxpbmUgY29udGFpbmluZyBh
c3NlcnRpb24gc3RyaW5nJykpOwotICAgICAgfSkpOwotICB9LCAnY3JlYXRlT2ZmZXIoKSBzaG91
bGQgcmV0dXJuIFNEUCBjb250YWluaW5nIGlkZW50aXR5IGFzc2VydGlvbiBzdHJpbmcgaWYgaWRl
bnRpdHkgcHJvdmlkZXIgaXMgc2V0Jyk7Ci0KLSAgLyoKLSAgICA0LjQuMi4gIFN0ZXBzIHRvIGNy
ZWF0ZSBhbiBvZmZlcgotICAgICAgMS4gIElmIHRoZSBuZWVkIGZvciBhbiBpZGVudGl0eSBhc3Nl
cnRpb24gd2FzIGlkZW50aWZpZWQgd2hlbiBjcmVhdGVPZmZlciB3YXMKLSAgICAgICAgICBpbnZv
a2VkLCB3YWl0IGZvciB0aGUgaWRlbnRpdHkgYXNzZXJ0aW9uIHJlcXVlc3QgcHJvY2VzcyB0byBj
b21wbGV0ZS4KLSAgICAgIDIuICBJZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgd2FzIHVuYWJsZSB0
byBwcm9kdWNlIGFuIGlkZW50aXR5IGFzc2VydGlvbiwgcmVqZWN0IHAKLSAgICAgICAgICB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBOb3RSZWFkYWJsZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
LSAgICovCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICAgIGNvbnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKLSAg
ICBjb25zdCBbaWRwRG9tYWluXSA9IGdldElkcERvbWFpbnMoKTsKLQotICAgIHBjLnNldElkZW50
aXR5UHJvdmlkZXIoaG9zdFN0cmluZyhpZHBEb21haW4sIHBvcnQpLCB7Ci0gICAgICBwcm90b2Nv
bDogJ21vY2staWRwLmpzP2dlbmVyYXRvckFjdGlvbj10aHJvdy1lcnJvcicsCi0gICAgICB1c2Vy
bmFtZUhpbnQ6IGBhbGljZUAke2lkcERvbWFpbn1gCi0gICAgfSk7Ci0KLSAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzKHQsICdOb3RSZWFkYWJsZUVycm9yJywKLSAgICAgIHBjLmNyZWF0ZU9mZmVy
KCkpOwotICB9LCAnY3JlYXRlT2ZmZXIoKSBzaG91bGQgcmVqZWN0IHdpdGggTm90UmVhZGFibGVF
cnJvciBpZiBpZGVudGl0aXR5IGFzc2VydGlvbiByZXF1ZXN0IGZhaWxzJyk7Ci0KLSAgLyoKLSAg
ICA0LjQuMi4gIFN0ZXBzIHRvIGNyZWF0ZSBhbiBhbnN3ZXIKLSAgICAgIDEuICBJZiB0aGUgbmVl
ZCBmb3IgYW4gaWRlbnRpdHkgYXNzZXJ0aW9uIHdhcyBpZGVudGlmaWVkIHdoZW4gY3JlYXRlQW5z
d2VyIHdhcwotICAgICAgICAgIGludm9rZWQsIHdhaXQgZm9yIHRoZSBpZGVudGl0eSBhc3NlcnRp
b24gcmVxdWVzdCBwcm9jZXNzIHRvIGNvbXBsZXRlLgotCi0gICAgICAyLiAgSWYgdGhlIGlkZW50
aXR5IHByb3ZpZGVyIHdhcyB1bmFibGUgdG8gcHJvZHVjZSBhbiBpZGVudGl0eSBhc3NlcnRpb24s
IHJlamVjdCBwCi0gICAgICAgICAgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgTm90UmVhZGFibGVFcnJv
ciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0g
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICBjb25zdCBwb3J0ID0g
d2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0gICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21h
aW5zKCk7Ci0KLSAgICBwYy5zZXRJZGVudGl0eVByb3ZpZGVyKGhvc3RTdHJpbmcoaWRwRG9tYWlu
LCBwb3J0KSwgewotICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz9nZW5lcmF0b3JBY3Rpb249
dGhyb3ctZXJyb3InLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAot
ICAgIH0pOwotCi0gICAgcmV0dXJuIG5ldyBSVENQZWVyQ29ubmVjdGlvbigpCi0gICAgLmNyZWF0
ZU9mZmVyKCkKLSAgICAudGhlbihvZmZlciA9PiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cikpCi0gICAgLnRoZW4oKCkgPT4KLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnTm90UmVhZGFi
bGVFcnJvcicsCi0gICAgICAgIHBjLmNyZWF0ZUFuc3dlcigpKSk7Ci0KLSAgfSwgJ2NyZWF0ZUFu
c3dlcigpIHNob3VsZCByZWplY3Qgd2l0aCBOb3RSZWFkYWJsZUVycm9yIGlmIGlkZW50aXRpdHkg
YXNzZXJ0aW9uIHJlcXVlc3QgZmFpbHMnKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMu
aHRtbAppbmRleCBmMjZhOTNlYTI4OTk5ZTI0MWU3Mzc0ZmY5ZDA3ZjM5NDEyODE2YWExLi44MDYy
NjE4ZGQ2MTcwZjgxZGJlYjVhZjRhNDNiYmNjMjA0ZDk2ZTk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBz
Lmh0bWwKQEAgLTEsNSArMSw2IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDx0aXRsZT5SVENQZWVy
Q29ubmVjdGlvbi5wcm90b3R5cGUuZ2V0U3RhdHM8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
aWNlQ29ubmVjdGlvblN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA3MTAzM2EzYzllZmY2ZTViODQ4
NTMxMTI3YzFiNzBlZTkwYmIyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4NyArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRm
LTg+Ci08dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmljZUNvbm5lY3Rpb25TdGF0
ZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBm
b2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRj
LXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCi0KLSAgLy8gVGhlIGZvbGxvd2luZyBo
ZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anM6Ci0gIC8vIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcwotICAvLyBkb1NpZ25hbGluZ0hhbmRzaGFr
ZQotCi0gIC8qCi0gICAgNC4zLjIuICBJbnRlcmZhY2UgRGVmaW5pdGlvbgotICAgICAgaW50ZXJm
YWNlIFJUQ1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQgewotICAgICAgICAuLi4KLSAgICAg
ICAgcmVhZG9ubHkgIGF0dHJpYnV0ZSBSVENJY2VDb25uZWN0aW9uU3RhdGUgIGljZUNvbm5lY3Rp
b25TdGF0ZTsKLSAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAg
ICAgIG9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlOwotICAgICAgfTsKLQotICAgIDQuNC40IFJU
Q0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBlbnVtIFJUQ0ljZUNvbm5lY3Rpb25TdGF0
ZSB7Ci0gICAgICAgICJuZXciLAotICAgICAgICAiY2hlY2tpbmciLAotICAgICAgICAiY29ubmVj
dGVkIiwKLSAgICAgICAgImNvbXBsZXRlZCIsCi0gICAgICAgICJmYWlsZWQiLAotICAgICAgICAi
ZGlzY29ubmVjdGVkIiwKLSAgICAgICAgImNsb3NlZCIKLSAgICAgIH07Ci0KLSAgICA1LjYuICBS
VENJY2VUcmFuc3BvcnQgSW50ZXJmYWNlCi0gICAgICBpbnRlcmZhY2UgUlRDSWNlVHJhbnNwb3J0
IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHN0YXRl
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyICAgICAgICAgb25zdGF0
ZWNoYW5nZTsKLQotICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGVudW0gUlRDSWNlVHJh
bnNwb3J0U3RhdGUgewotICAgICAgICAibmV3IiwKLSAgICAgICAgImNoZWNraW5nIiwKLSAgICAg
ICAgImNvbm5lY3RlZCIsCi0gICAgICAgICJjb21wbGV0ZWQiLAotICAgICAgICAiZmFpbGVkIiwK
LSAgICAgICAgImRpc2Nvbm5lY3RlZCIsCi0gICAgICAgICJjbG9zZWQiCi0gICAgICB9OwotICAg
Ki8KLQotICAvKgotICAgIDQuNC40IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBu
ZXcKLSAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3BvcnRzIGFyZSBpbiB0aGUgbmV3IHN0
YXRlIGFuZCBub25lIG9mIHRoZW0KLSAgICAgICAgYXJlIGluIHRoZSBjaGVja2luZywgZmFpbGVk
IG9yIGRpc2Nvbm5lY3RlZCBzdGF0ZSwgb3IgYWxsCi0gICAgICAgIFJUQ0ljZVRyYW5zcG9ydCBz
IGFyZSBpbiB0aGUgY2xvc2VkIHN0YXRlLgotICAgKi8KLSAgdGVzdCh0ID0+IHsKLSAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIGFzc2VydF9lcXVhbHMocGMuaWNl
Q29ubmVjdGlvblN0YXRlLCAnbmV3Jyk7Ci0gIH0sICdJbml0aWFsIGljZUNvbm5lY3Rpb25TdGF0
ZSBzaG91bGQgYmUgbmV3Jyk7Ci0KLSAgLyoKLSAgICA0LjQuNCBSVENJY2VDb25uZWN0aW9uU3Rh
dGUgRW51bQotICAgICAgY2hlY2tpbmcKLSAgICAgICAgQW55IG9mIHRoZSBSVENJY2VUcmFuc3Bv
cnQgcyBhcmUgaW4gdGhlIGNoZWNraW5nIHN0YXRlIGFuZCBub25lIG9mCi0gICAgICAgIHRoZW0g
YXJlIGluIHRoZSBmYWlsZWQgb3IgZGlzY29ubmVjdGVkIHN0YXRlLgotCi0gICAgICBjb25uZWN0
ZWQKLSAgICAgICAgQWxsIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY29ubmVjdGVkLCBj
b21wbGV0ZWQgb3IgY2xvc2VkIHN0YXRlCi0gICAgICAgIGFuZCBhdCBsZWFzdCBvbmUgb2YgdGhl
bSBpcyBpbiB0aGUgY29ubmVjdGVkIHN0YXRlLgotCi0gICAgICBjb21wbGV0ZWQKLSAgICAgICAg
QWxsIFJUQ0ljZVRyYW5zcG9ydCBzIGFyZSBpbiB0aGUgY29tcGxldGVkIG9yIGNsb3NlZCBzdGF0
ZSBhbmQgYXQgbGVhc3QKLSAgICAgICAgb25lIG9mIHRoZW0gaXMgaW4gdGhlIGNvbXBsZXRlZCBz
dGF0ZS4KLQotICAgICAgY2hlY2tpbmcKLSAgICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMg
cmVjZWl2ZWQgYXQgbGVhc3Qgb25lIHJlbW90ZSBjYW5kaWRhdGUgYW5kCi0gICAgICAgIGlzIGNo
ZWNraW5nIGNhbmRpZGF0ZSBwYWlycyBhbmQgaGFzIGVpdGhlciBub3QgeWV0IGZvdW5kIGEgY29u
bmVjdGlvbgotICAgICAgICBvciBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gaGF2ZSBmYWlsZWQg
b24gYWxsIHByZXZpb3VzbHkgc3VjY2Vzc2Z1bAotICAgICAgICBjYW5kaWRhdGUgcGFpcnMuIElu
IGFkZGl0aW9uIHRvIGNoZWNraW5nLCBpdCBtYXkgYWxzbyBzdGlsbCBiZSBnYXRoZXJpbmcuCi0K
LSAgICA1LjYuICBlbnVtIFJUQ0ljZVRyYW5zcG9ydFN0YXRlCi0gICAgICBjb25uZWN0ZWQKLSAg
ICAgICAgVGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZm91bmQgYSB1c2FibGUgY29ubmVjdGlvbiwg
YnV0IGlzIHN0aWxsCi0gICAgICAgIGNoZWNraW5nIG90aGVyIGNhbmRpZGF0ZSBwYWlycyB0byBz
ZWUgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgY29ubmVjdGlvbi4KLSAgICAgICAgSXQgbWF5IGFsc28g
c3RpbGwgYmUgZ2F0aGVyaW5nIGFuZC9vciB3YWl0aW5nIGZvciBhZGRpdGlvbmFsIHJlbW90ZQot
ICAgICAgICBjYW5kaWRhdGVzLiBJZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gZmFpbCBvbiB0
aGUgY29ubmVjdGlvbiBpbiB1c2UsCi0gICAgICAgIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgc3Vj
Y2Vzc2Z1bCBjYW5kaWRhdGUgcGFpcnMgYXZhaWxhYmxlLCB0aGVuIHRoZQotICAgICAgICBzdGF0
ZSB0cmFuc2l0aW9ucyB0byAiY2hlY2tpbmciIChpZiB0aGVyZSBhcmUgY2FuZGlkYXRlIHBhaXJz
IHJlbWFpbmluZwotICAgICAgICB0byBiZSBjaGVja2VkKSBvciAiZGlzY29ubmVjdGVkIiAoaWYg
dGhlcmUgYXJlIG5vIGNhbmRpZGF0ZSBwYWlycyB0bwotICAgICAgICBjaGVjaywgYnV0IHRoZSBw
ZWVyIGlzIHN0aWxsIGdhdGhlcmluZyBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbAotICAg
ICAgICByZW1vdGUgY2FuZGlkYXRlcykuCi0KLSAgICAgIGNvbXBsZXRlZAotICAgICAgICBUaGUg
UlRDSWNlVHJhbnNwb3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGlj
YXRpb24gdGhhdAotICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywg
ZmluaXNoZWQgY2hlY2tpbmcgYWxsIGNhbmRpZGF0ZQotICAgICAgICBwYWlycyBhbmQgZm91bmQg
YSBjb25uZWN0aW9uLiBJZiBjb25zZW50IGNoZWNrcyBbUkZDNzY3NV0gc3Vic2VxdWVudGx5Ci0g
ICAgICAgIGZhaWwgb24gYWxsIHN1Y2Nlc3NmdWwgY2FuZGlkYXRlIHBhaXJzLCB0aGUgc3RhdGUg
dHJhbnNpdGlvbnMgdG8gImZhaWxlZCIuCi0gICAqLwotICBhc3luY190ZXN0KHQgPT4gewotICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgICBjb25z
dCBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSA9IHQuc3RlcF9mdW5jKCgpID0+IHsKLSAgICAg
IGNvbnN0IHsgaWNlQ29ubmVjdGlvblN0YXRlIH0gPSBwYzE7Ci0KLSAgICAgIGlmKGljZUNvbm5l
Y3Rpb25TdGF0ZSA9PT0gJ2NoZWNraW5nJykgewotICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQg
PSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNwb3J0OwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMo
aWNlVHJhbnNwb3J0LnN0YXRlLCAnY2hlY2tpbmcnLAotICAgICAgICAgICdFeHBlY3QgSUNFIHRy
YW5zcG9ydCB0byBiZSBpbiBjaGVja2luZyBzdGF0ZSB3aGVuIGljZUNvbm5lY3Rpb25TdGF0ZSBp
cyBjaGVja2luZycpOwotCi0gICAgICB9IGVsc2UgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAn
Y29ubmVjdGVkJykgewotICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFu
c3BvcnQudHJhbnNwb3J0OwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0
YXRlLCAnY29ubmVjdGVkJywKLSAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUg
aW4gY29ubmVjdGVkIHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNvbm5lY3RlZCcp
OwotCi0gICAgICB9IGVsc2UgaWYoaWNlQ29ubmVjdGlvblN0YXRlID09PSAnY29tcGxldGVkJykg
ewotICAgICAgICBjb25zdCBpY2VUcmFuc3BvcnQgPSBwYzEuc2N0cC50cmFuc3BvcnQudHJhbnNw
b3J0OwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoaWNlVHJhbnNwb3J0LnN0YXRlLCAnY29tcGxl
dGVkJywKLSAgICAgICAgICAnRXhwZWN0IElDRSB0cmFuc3BvcnQgdG8gYmUgaW4gY29ubmVjdGVk
IHN0YXRlIHdoZW4gaWNlQ29ubmVjdGlvblN0YXRlIGlzIGNvbXBsZXRlZCcpOwotICAgICAgfQot
ICAgIH0pOwotCi0gICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0Jyk7Ci0KLSAgICBhc3Nl
cnRfZXF1YWxzKHBjMS5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSwgbnVsbCwKLSAgICAgICdF
eHBlY3QgY29ubmVjdGlvbiB0byBoYXZlIGljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSBldmVudCcp
OwotCi0gICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZScs
IG9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlKTsKLQotICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRl
cyhwYzEsIHBjMik7Ci0gICAgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIpOwotICB9LCAn
Y29ubmVjdGlvbiB3aXRoIG9uZSBkYXRhIGNoYW5uZWwgc2hvdWxkIGV2ZW50dWFsbHkgaGF2ZSBj
b25uZWN0ZWQgY29ubmVjdGlvbiBzdGF0ZScpOwotCi0gIC8qCi0gICAgVE9ETwotICAgIDQuNC40
IFJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSBFbnVtCi0gICAgICBmYWlsZWQKLSAgICAgICAgQW55IG9m
IHRoZSBSVENJY2VUcmFuc3BvcnQgcyBhcmUgaW4gdGhlIGZhaWxlZCBzdGF0ZS4KLQotICAgICAg
ZGlzY29ubmVjdGVkCi0gICAgICAgIEFueSBvZiB0aGUgUlRDSWNlVHJhbnNwb3J0IHMgYXJlIGlu
IHRoZSBkaXNjb25uZWN0ZWQgc3RhdGUgYW5kIG5vbmUgb2YKLSAgICAgICAgdGhlbSBhcmUgaW4g
dGhlIGZhaWxlZCBzdGF0ZS4KLQotICAgICAgY2xvc2VkCi0gICAgICAgIFRoZSBSVENQZWVyQ29u
bmVjdGlvbiBvYmplY3QncyBbWyBpc0Nsb3NlZF1dIHNsb3QgaXMgdHJ1ZS4KLQotICAgIDUuNi4g
IGVudW0gUlRDSWNlVHJhbnNwb3J0U3RhdGUKLSAgICAgIG5ldwotICAgICAgICBUaGUgUlRDSWNl
VHJhbnNwb3J0IGlzIGdhdGhlcmluZyBjYW5kaWRhdGVzIGFuZC9vciB3YWl0aW5nIGZvcgotICAg
ICAgICByZW1vdGUgY2FuZGlkYXRlcyB0byBiZSBzdXBwbGllZCwgYW5kIGhhcyBub3QgeWV0IHN0
YXJ0ZWQgY2hlY2tpbmcuCi0KLSAgICAgIGZhaWxlZAotICAgICAgICBUaGUgUlRDSWNlVHJhbnNw
b3J0IGhhcyBmaW5pc2hlZCBnYXRoZXJpbmcsIHJlY2VpdmVkIGFuIGluZGljYXRpb24gdGhhdAot
ICAgICAgICB0aGVyZSBhcmUgbm8gbW9yZSByZW1vdGUgY2FuZGlkYXRlcywgZmluaXNoZWQgY2hl
Y2tpbmcgYWxsIGNhbmRpZGF0ZSBwYWlycywKLSAgICAgICAgYW5kIGFsbCBwYWlycyBoYXZlIGVp
dGhlciBmYWlsZWQgY29ubmVjdGl2aXR5IGNoZWNrcyBvciBoYXZlIGxvc3QgY29uc2VudC4KLQot
ICAgICAgZGlzY29ubmVjdGVkCi0gICAgICAgIFRoZSBJQ0UgQWdlbnQgaGFzIGRldGVybWluZWQg
dGhhdCBjb25uZWN0aXZpdHkgaXMgY3VycmVudGx5IGxvc3QgZm9yIHRoaXMKLSAgICAgICAgUlRD
SWNlVHJhbnNwb3J0IC4gVGhpcyBpcyBtb3JlIGFnZ3Jlc3NpdmUgdGhhbiBmYWlsZWQsIGFuZCBt
YXkgdHJpZ2dlcgotICAgICAgICBpbnRlcm1pdHRlbnRseSAoYW5kIHJlc29sdmUgaXRzZWxmIHdp
dGhvdXQgYWN0aW9uKSBvbiBhIGZsYWt5IG5ldHdvcmsuCi0gICAgICAgIFRoZSB3YXkgdGhpcyBz
dGF0ZSBpcyBkZXRlcm1pbmVkIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KLQotICAgICAg
ICBFeGFtcGxlcyBpbmNsdWRlOgotICAgICAgICAgIExvc2luZyB0aGUgbmV0d29yayBpbnRlcmZh
Y2UgZm9yIHRoZSBjb25uZWN0aW9uIGluIHVzZS4KLSAgICAgICAgICBSZXBlYXRlZGx5IGZhaWxp
bmcgdG8gcmVjZWl2ZSBhIHJlc3BvbnNlIHRvIFNUVU4gcmVxdWVzdHMuCi0KLSAgICAgICAgQWx0
ZXJuYXRpdmVseSwgdGhlIFJUQ0ljZVRyYW5zcG9ydCBoYXMgZmluaXNoZWQgY2hlY2tpbmcgYWxs
IGV4aXN0aW5nCi0gICAgICAgIGNhbmRpZGF0ZXMgcGFpcnMgYW5kIGZhaWxlZCB0byBmaW5kIGEg
Y29ubmVjdGlvbiAob3IgY29uc2VudCBjaGVja3MKLSAgICAgICAgW1JGQzc2NzVdIG9uY2Ugc3Vj
Y2Vzc2Z1bCwgaGF2ZSBub3cgZmFpbGVkKSwgYnV0IGl0IGlzIHN0aWxsIGdhdGhlcmluZwotICAg
ICAgICBhbmQvb3Igd2FpdGluZyBmb3IgYWRkaXRpb25hbCByZW1vdGUgY2FuZGlkYXRlcy4KLQot
ICAgICAgY2xvc2VkCi0gICAgICAgIFRoZSBSVENJY2VUcmFuc3BvcnQgaGFzIHNodXQgZG93biBh
bmQgaXMgbm8gbG9uZ2VyIHJlc3BvbmRpbmcgdG8gU1RVTiByZXF1ZXN0cy4KLSAgICovCi08L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbAppbmRleCAwMzQzNjU1MDhiNmJjYTE0Njk4NTM3ODE5
ZDg2YzUzZmMxMjI2ZDVlLi4wOGYyMDZmYjAyOTU3M2NiNGI3MTA2OTFiNmJhZDk1NDcxODUyNTNk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCkBAIC0xLDUgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+
CiA8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9u
ZyI+CiA8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLm9uZGF0YWNoYW5uZWw8L3Rp
dGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklkZW50aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlZXJJZGVudGl0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDcyNWMwOTUxZTFjZDUxMGFmOGIwOGYxZmQ1OThjOWFjZTNkZjQwYjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVlcklk
ZW50aXR5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotRkFJ
TCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIG9uIG9mZmVyIHdpdGggYT1pZGVudGl0eSBzaG91bGQg
ZXN0YWJsaXNoIHBlZXJJZGVudGl0eSBwYzEuc2V0SWRlbnRpdHlQcm92aWRlciBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7Ci0gICAgICBw
cm90b2NvbDogJ21vY2staWRwLmpzJywKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRw
RG9tYWlufWAKLSAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5kZWZpbmVk
KQotRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIG9uIG9mZmVyIHdpdGggYT1pZGVudGl0eSB0
aGF0IHJlc29sdmUgdG8gdmFsdWUgZGlmZmVyZW50IGZyb20gdGFyZ2V0IHBlZXIgaWRlbnRpdHkg
c2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRNb2RpZmljYXRpb25FcnJvciBwYzEuc2V0SWRlbnRp
dHlQcm92aWRlciBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdwYzEuc2V0SWRlbnRpdHlQcm92aWRl
cihpZHBIb3N0LCB7Ci0gICAgICBwcm90b2NvbDogJ21vY2staWRwLmpzJywKLSAgICAgIHVzZXJu
YW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKLSAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQ
cm92aWRlcicgaXMgdW5kZWZpbmVkKQotRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIHdpdGgg
cGVlcklkZW50aXR5IHNldCBhbmQgd2l0aCBJZFAgcHJveHkgdGhhdCByZXR1cm4gdmFsaWRhdGlv
bkFzc2VydGlvbiB3aXRoIG1pc21hdGNoIGNvbnRlbnRzIHNob3VsZCByZWplY3Qgd2l0aCBPcGVy
YXRpb25FcnJvciB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24gKG5lYXIgJy4uLnBjMS5zZXRJ
ZGVudGl0eVByb3ZpZGVyLi4uJykKLUZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBhbmQgcGVl
cklkZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJvciBpZiBJZFAgcmV0dXJu
IHZhbGlkYXRlZCBpZGVudGl0eSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIGl0cyBvd24gZG9tYWlu
IHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJ
ZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QxLCB7Ci0gICAgICBwcm90b2NvbDogJ21vY2staWRwLmpz
JywKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWluMn1gCi0gICAgfSknLCAn
cGMxLnNldElkZW50aXR5UHJvdmlkZXInIGlzIHVuZGVmaW5lZCkKLUZBSUwgV2hlbiBJZFAgdGhy
b3dzIGVycm9yIGFuZCBwYyBoYXMgdGFyZ2V0IHBlZXIgaWRlbnRpdHksIHNldFJlbW90ZURlc2Ny
aXB0aW9uKCkgYW5kIHBlZXJJZGVudGl0eSByZWplY3RlZCB3aXRoIFJUQ0Vycm9yKCdpZHAtZXhl
Y3V0aW9uLWVycm9yJykgdW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uIChuZWFyICcuLi5wYzEu
c2V0SWRlbnRpdHlQcm92aWRlci4uLicpCi1GQUlMIElkUCBmYWlsdXJlIHdpdGggbm8gdGFyZ2V0
IHBlZXIgaWRlbnRpdHkgc2hvdWxkIGhhdmUgZm9sbG93aW5nIHNldFJlbW90ZURlc2NyaXB0aW9u
KCkgc3VjY2VlZCBhbmQgcmVwbGFjZSBwYy5wZWVySWRlbnRpdHkgd2l0aCBhIG5ldyBwcm9taXNl
IHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3BjMS5zZXRJ
ZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/
dmFsaWRhdG9yQWN0aW9uPXRocm93LWVycm9yJywKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNl
QCR7aWRwRG9tYWlufWAKLSAgICB9KScsICdwYzEuc2V0SWRlbnRpdHlQcm92aWRlcicgaXMgdW5k
ZWZpbmVkKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHkuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXBlZXJJZGVudGl0eS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NGFkMjEyYTViYTRlMGM2YmY1NTg5ZjRjZGEzYTRjN2E1MDhjZGMyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlZXJJZGVudGl0
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzM2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgot
PG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUu
cGVlcklkZW50aXR5PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJpZGVudGl0eS1oZWxwZXIuc3ViLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBUZXN0IGlzIGJhc2VkIG9u
IHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyAgIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2MDUvd2VicnRjLmh0bWwKLQotICAvLyBUaGUgdGVz
dHMgaGVyZSBpbnRlcmFjdHMgd2l0aCB0aGUgbW9jayBpZGVudGl0eSBwcm92aWRlciBsb2NhdGVk
IGF0Ci0gIC8vICAgLy53ZWxsLWtub3duL2lkcC1wcm94eS9tb2NrLWlkcC5qcwotCi0gIC8vIFRo
ZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGZyb20gaWRlbnRpdHktaGVs
cGVyLnN1Yi5qcwotICAvLyAgIHBhcnNlQXNzZXJ0aW9uUmVzdWx0Ci0gIC8vICAgZ2V0SWRwRG9t
YWlucwotICAvLyAgIGFzc2VydF9ydGNlcnJvcl9yZWplY3Rpb24KLSAgLy8gICBob3N0U3RyaW5n
Ci0KLSAgLyoKLSAgICA5LjYuICBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UgRXh0ZW5zaW9u
cwotICAgICAgcGFydGlhbCBpbnRlcmZhY2UgUlRDUGVlckNvbm5lY3Rpb24gewotICAgICAgICB2
b2lkICAgICAgICAgICAgICAgc2V0SWRlbnRpdHlQcm92aWRlcihET01TdHJpbmcgcHJvdmlkZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFs
IFJUQ0lkZW50aXR5UHJvdmlkZXJPcHRpb25zIG9wdGlvbnMpOwotICAgICAgICBQcm9taXNlPERP
TVN0cmluZz4gZ2V0SWRlbnRpdHlBc3NlcnRpb24oKTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFByb21pc2U8UlRDSWRlbnRpdHlBc3NlcnRpb24+IHBlZXJJZGVudGl0eTsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gICAgICAgICAgICAgICAgICAgIGlkcExvZ2lu
VXJsOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyAgICAgICAgICAgICAg
ICAgICAgaWRwRXJyb3JJbmZvOwotICAgICAgfTsKLQotICAgICAgZGljdGlvbmFyeSBSVENJZGVu
dGl0eVByb3ZpZGVyT3B0aW9ucyB7Ci0gICAgICAgIERPTVN0cmluZyBwcm90b2NvbCA9ICJkZWZh
dWx0IjsKLSAgICAgICAgRE9NU3RyaW5nIHVzZXJuYW1lSGludDsKLSAgICAgICAgRE9NU3RyaW5n
IHBlZXJJZGVudGl0eTsKLSAgICAgIH07Ci0KLSAgICAgIFtDb25zdHJ1Y3RvcihET01TdHJpbmcg
aWRwLCBET01TdHJpbmcgbmFtZSldCi0gICAgICBpbnRlcmZhY2UgUlRDSWRlbnRpdHlBc3NlcnRp
b24gewotICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkcDsKLSAgICAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBuYW1lOwotICAgICAgfTsKLSAgICovCi0KLSAgLyoKLSAgICA0LjMuMi4gc2V0
UmVtb3RlRGVzY3JpcHRpb24KLSAgICAgIElmIGFuIGE9aWRlbnRpdHkgYXR0cmlidXRlIGlzIHBy
ZXNlbnQgaW4gdGhlIHNlc3Npb24gZGVzY3JpcHRpb24sIHRoZSBicm93c2VyCi0gICAgICB2YWxp
ZGF0ZXMgdGhlIGlkZW50aXR5IGFzc2VydGlvbi4uCi0KLSAgICAgIElmIHRoZSAicGVlcklkZW50
aXR5IiBjb25maWd1cmF0aW9uIGlzIGFwcGxpZWQgdG8gdGhlIFJUQ1BlZXJDb25uZWN0aW9uLCB0
aGlzCi0gICAgICBlc3RhYmxpc2hlcyBhIHRhcmdldCBwZWVyIGlkZW50aXR5IG9mIHRoZSBwcm92
aWRlZCB2YWx1ZS4gQWx0ZXJuYXRpdmVseSwgaWYgdGhlCi0gICAgICBSVENQZWVyQ29ubmVjdGlv
biBoYXMgcHJldmlvdXNseSBhdXRoZW50aWNhdGVkIHRoZSBpZGVudGl0eSBvZiB0aGUgcGVlciAo
dGhhdAotICAgICAgaXMsIHRoZXJlIGlzIGEgY3VycmVudCB2YWx1ZSBmb3IgcGVlcklkZW50aXR5
ICksIHRoZW4gdGhpcyBhbHNvIGVzdGFibGlzaGVzIGEKLSAgICAgIHRhcmdldCBwZWVyIGlkZW50
aXR5LgotICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0KLSAgICBjb25zdCBwb3J0ID0gd2luZG93Lmxv
Y2F0aW9uLnBvcnQ7Ci0gICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0g
ICAgY29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKLQotICAgIHBj
MS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAgICAgIHByb3RvY29sOiAnbW9jay1p
ZHAuanMnLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAotICAgIH0p
OwotCi0gICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCi0gICAgLnRoZW4ob2ZmZXIgPT4gcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSkKLSAgICAudGhlbigoKSA9PiBwYzIucGVlcklk
ZW50aXR5KQotICAgIC50aGVuKGlkZW50aXR5QXNzZXJ0aW9uID0+IHsKLSAgICAgIGNvbnN0IHsg
aWRwLCBuYW1lIH0gPSBpZGVudGl0eUFzc2VydGlvbjsKLSAgICAgIGFzc2VydF9lcXVhbHMoaWRw
LCBpZHBEb21haW4sIGBFeHBlY3QgSWRQIGRvbWFpbiB0byBiZSAke2lkcERvbWFpbn1gKTsKLSAg
ICAgIGFzc2VydF9lcXVhbHMoaWRlbnRpdHlBc3NlcnRpb24sIGBhbGljZUAke2lkcERvbWFpbn1g
LAotICAgICAgICBgRXhwZWN0IHZhbGlkYXRlZCBpZGVudGl0eSBmcm9tIG1vY2staWRwLmpzIHRv
IGJlIHNhbWUgYXMgc3BlY2lmaWVkIGluIHVzZXJuYW1lSGludGApOwotICAgIH0pOwotICB9LCAn
c2V0UmVtb3RlRGVzY3JpcHRpb24oKSBvbiBvZmZlciB3aXRoIGE9aWRlbnRpdHkgc2hvdWxkIGVz
dGFibGlzaCBwZWVySWRlbnRpdHknKTsKLQotICAvKgotICAgIDQuMy4yLiBzZXRSZW1vdGVEZXNj
cmlwdGlvbgotICAgICAgVGhlIHRhcmdldCBwZWVyIGlkZW50aXR5IGNhbm5vdCBiZSBjaGFuZ2Vk
IG9uY2Ugc2V0LiBPbmNlIHNldCwgaWYgYSBkaWZmZXJlbnQKLSAgICAgIHZhbHVlIGlzIHByb3Zp
ZGVkLCB0aGUgdXNlciBhZ2VudCBNVVNUIHJlamVjdCB0aGUgcmV0dXJuZWQgcHJvbWlzZSB3aXRo
IGEgbmV3bHkKLSAgICAgIGNyZWF0ZWQgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIGFuZCBhYm9y
dCB0aGlzIG9wZXJhdGlvbi4gVGhlIFJUQ1BlZXJDb25uZWN0aW9uCi0gICAgICBNVVNUIGJlIGNs
b3NlZCBpZiB0aGUgdmFsaWRhdGVkIHBlZXIgaWRlbnRpdHkgZG9lcyBub3QgbWF0Y2ggdGhlIHRh
cmdldCBwZWVyCi0gICAgICBpZGVudGl0eS4KLSAgICovCi0gIHByb21pc2VfdGVzdCh0ID0+IHsK
LSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0gICAgY29uc3QgW2lkcERv
bWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0gICAgY29uc3QgaWRwSG9zdCA9IGhvc3RTdHJpbmco
aWRwRG9tYWluLCBwb3J0KTsKLQotICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICAgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Ci0gICAgICBwZWVySWRlbnRpdHk6IGBib2JAJHtp
ZHBEb21haW59YAotICAgIH0pOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7Ci0KLSAgICBwYzEuc2V0SWRlbnRpdHlQcm92aWRlcihpZHBIb3N0LCB7Ci0gICAgICBwcm90
b2NvbDogJ21vY2staWRwLmpzJywKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9t
YWlufWAKLSAgICB9KTsKLQotICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQotICAgIC50aGVu
KG9mZmVyID0+Ci0gICAgICBwcm9taXNlX3JlamVjdHModCwgJ0ludmFsaWRNb2RpZmljYXRpb25F
cnJvcicsCi0gICAgICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikpKQotICAgIC50
aGVuKCgpID0+IHsKLSAgICAgIGFzc2VydF90cnVlKHBjMi5zaWduYWxpbmdTdGF0ZSwgJ2Nsb3Nl
ZCcsCi0gICAgICAgICdFeHBlY3QgcGVlciBjb25uZWN0aW9uIHRvIGJlIGNsb3NlZCBhZnRlciBt
aXNtYXRjaCBwZWVyIGlkZW50aXR5Jyk7Ci0gICAgfSk7Ci0gIH0sICdzZXRSZW1vdGVEZXNjcmlw
dGlvbigpIG9uIG9mZmVyIHdpdGggYT1pZGVudGl0eSB0aGF0IHJlc29sdmUgdG8gdmFsdWUgZGlm
ZmVyZW50IGZyb20gdGFyZ2V0IHBlZXIgaWRlbnRpdHkgc2hvdWxkIHJlamVjdCB3aXRoIEludmFs
aWRNb2RpZmljYXRpb25FcnJvcicpOwotCi0gIC8qCi0gICAgOS40LiAgVmVyaWZ5aW5nIElkZW50
aXR5IEFzc2VydGlvbnMKLSAgICAgIDguICBUaGUgUlRDUGVlckNvbm5lY3Rpb24gZGVjb2RlcyB0
aGUgY29udGVudHMgYW5kIHZhbGlkYXRlcyB0aGF0IGl0IGNvbnRhaW5zIGEKLSAgICAgICAgICBm
aW5nZXJwcmludCB2YWx1ZSBmb3IgZXZlcnkgYT1maW5nZXJwcmludCBhdHRyaWJ1dGUgaW4gdGhl
IHNlc3Npb24gZGVzY3JpcHRpb24uCi0gICAgICAgICAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGNl
cnRpZmljYXRlIHVzZWQgYnkgdGhlIHJlbW90ZSBwZWVyIGZvciBjb21tdW5pY2F0aW9ucwotICAg
ICAgICAgIGlzIGNvdmVyZWQgYnkgdGhlIGlkZW50aXR5IGFzc2VydGlvbi4KLQotICAgICAgSWYg
aWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscywgdGhlIHBlZXJJZGVudGl0eSBwcm9taXNlIGlzIHJl
amVjdGVkIHdpdGggYSBuZXdseQotICAgICAgY3JlYXRlZCBPcGVyYXRpb25FcnJvci4KLQotICAg
ICAgSWYgaWRlbnRpdHkgdmFsaWRhdGlvbiBmYWlscyBhbmQgdGhlcmUgaXMgYSB0YXJnZXQgcGVl
ciBpZGVudGl0eSBmb3IgdGhlCi0gICAgICBSVENQZWVyQ29ubmVjdGlvbiwgdGhlIHByb21pc2Ug
cmV0dXJuZWQgYnkgc2V0UmVtb3RlRGVzY3JpcHRpb24gTVVTVCBiZSByZWplY3RlZAotICAgICAg
d2l0aCB0aGUgc2FtZSBET01FeGNlcHRpb24uCi0gICAqLwotICBwcm9taXNlX3Rlc3QodCA9PiB7
Ci0gICAgY29uc3QgcG9ydCA9IHdpbmRvdy5sb2NhdGlvbi5wb3J0OwotICAgIGNvbnN0IFtpZHBE
b21haW5dID0gZ2V0SWRwRG9tYWlucygpOwotICAgIGNvbnN0IGlkcEhvc3QgPSBob3N0U3RyaW5n
KGlkcERvbWFpbiwgcG9ydCk7Ci0KLSAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKLSAgICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oewotICAgICAgcGVlcklkZW50aXR5OiBgYWxpY2VA
JHtpZHBEb21haW59YAotICAgIH0pOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7Ci0KLSAgICAvLyBBc2sgbW9ja2lkcC5qcyB0byByZXR1cm4gY3VzdG9tIGNvbnRlbnRz
IGluIHZhbGlkYXRpb24gcmVzdWx0Ci0gICAgcGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9z
dCwgewotICAgICAgcHJvdG9jb2w6ICdtb2NrLWlkcC5qcz92YWxpZGF0b3JBY3Rpb249cmV0dXJu
LWN1c3RvbS1jb250ZW50cyZjb250ZW50cz1ib2d1cycsCi0gICAgICB1c2VybmFtZUhpbnQ6IGBh
bGljZUAke2lkcERvbWFpbn1gCi0gICAgfSk7Ci0KLSAgICBjb25zdCBwZWVySWRlbnRpdHlQcm9t
aXNlID0gcGMyLnBlZXJJZGVudGl0eTsKLQotICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQot
ICAgIC50aGVuKG9mZmVyID0+IFByb21pc2UuYWxsKFsKLSAgICAgIHByb21pc2VfcmVqZWN0cyh0
LCAnT3BlcmF0aW9uRXJyb3InLAotICAgICAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2Zm
ZXIpKSwKLSAgICAgIHByb21pc2VfcmVqZWN0cyh0LCAnT3BlcmF0aW9uRXJyb3InLAotICAgICAg
ICBwZWVySWRlbnRpdHlQcm9taXNlKQotICAgIF0pKTsKLSAgfSwgJ3NldFJlbW90ZURlc2NyaXB0
aW9uKCkgd2l0aCBwZWVySWRlbnRpdHkgc2V0IGFuZCB3aXRoIElkUCBwcm94eSB0aGF0IHJldHVy
biB2YWxpZGF0aW9uQXNzZXJ0aW9uIHdpdGggbWlzbWF0Y2ggY29udGVudHMgc2hvdWxkIHJlamVj
dCB3aXRoIE9wZXJhdGlvbkVycm9yJyk7Ci0KLSAgLyoKLSAgICA5LjQuICBWZXJpZnlpbmcgSWRl
bnRpdHkgQXNzZXJ0aW9ucwotICAgICAgOS4gIFRoZSBSVENQZWVyQ29ubmVjdGlvbiB2YWxpZGF0
ZXMgdGhhdCB0aGUgZG9tYWluIHBvcnRpb24gb2YgdGhlIGlkZW50aXR5IG1hdGNoZXMKLSAgICAg
ICAgICB0aGUgZG9tYWluIG9mIHRoZSBJZFAgYXMgZGVzY3JpYmVkIGluIFtSVENXRUItU0VDVVJJ
VFktQVJDSF0uIElmIHRoaXMgY2hlY2sKLSAgICAgICAgICBmYWlscyB0aGVuIHRoZSBpZGVudGl0
eSB2YWxpZGF0aW9uIGZhaWxzLgotICAgKi8KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNv
bnN0IHBvcnQgPSB3aW5kb3cubG9jYXRpb24ucG9ydDsKLSAgICBjb25zdCBbaWRwRG9tYWluMSwg
aWRwRG9tYWluMl0gPSBnZXRJZHBEb21haW5zKCk7Ci0gICAgYXNzZXJ0X25vdF9lcXVhbHMoaWRw
RG9tYWluMSwgaWRwRG9tYWluMiwKLSAgICAgICdTYW5pdHkgY2hlY2sgdHdvIGlkcERvbWFpbnMg
YXJlIGRpZmZlcmVudCcpOwotCi0gICAgY29uc3QgaWRwSG9zdDEgPSBob3N0U3RyaW5nKGlkcERv
bWFpbjEsIHBvcnQpOwotCi0gICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKHsKLSAgICAgIHBlZXJJZGVudGl0eTogYGFsaWNlQCR7aWRw
RG9tYWluMn1gCi0gICAgfSk7Ci0KLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKLQotICAgIC8vIG1vY2staWRwLmpzIHdpbGwgcmV0dXJuIGFzc2VydGlvbiBvZiBkb21haW4y
IGlkZW50aXR5Ci0gICAgLy8gd2l0aCBkb21haW4xIGluIHRoZSBpZHAuZG9tYWluIGZpZWxkCi0g
ICAgcGMxLnNldElkZW50aXR5UHJvdmlkZXIoaWRwSG9zdDEsIHsKLSAgICAgIHByb3RvY29sOiAn
bW9jay1pZHAuanMnLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW4yfWAK
LSAgICB9KTsKLQotICAgIHJldHVybiBwYzEuZ2V0SWRlbnRpdHlBc3NlcnRpb24oKQotICAgIC50
aGVuKGFzc2VydGlvblJlc3VsdFN0ciA9PiB7Ci0gICAgICBjb25zdCB7IGlkcCwgYXNzZXJ0aW9u
IH0gPSBwYXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpOwotCi0gICAgICBh
c3NlcnRfZXF1YWxzKGlkcC5kb21haW4sIGlkcERvbWFpbjEsCi0gICAgICAgICdTYW5pdHkgY2hl
Y2sgZG9tYWluIG9mIGFzc2VydGlvbiBpcyBkb21haW4xJyk7Ci0KLSAgICAgIGFzc2VydF9lcXVh
bHMoYXNzZXJ0aW9uLm9wdGlvbnMudXNlcm5hbWVIaW50LCBgYWxpY2VAJHtpZHBEb21haW4yfWAs
Ci0gICAgICAgICdTYW5pdHkgY2hlY2sgZG9tYWluMSBpcyBnb2luZyB0byB2YWxpZGF0ZSBhIGRv
bWFpbjIgaWRlbnRpdHknKTsKLQotICAgICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpOwotICAg
IH0pCi0gICAgLnRoZW4ob2ZmZXIgPT4gUHJvbWlzZS5hbGwoWwotICAgICAgcHJvbWlzZV9yZWpl
Y3RzKHQsICdPcGVyYXRpb25FcnJvcicsCi0gICAgICAgIHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcikpLAotICAgICAgcHJvbWlzZV9yZWplY3RzKHQsICdPcGVyYXRpb25FcnJvcicsCi0g
ICAgICAgIHBjMi5wZWVySWRlbnRpdHkpCi0gICAgXSkpOwotICB9LCAnc2V0UmVtb3RlRGVzY3Jp
cHRpb24oKSBhbmQgcGVlcklkZW50aXR5IHNob3VsZCByZWplY3Qgd2l0aCBPcGVyYXRpb25FcnJv
ciBpZiBJZFAgcmV0dXJuIHZhbGlkYXRlZCBpZGVudGl0eSB0aGF0IGlzIGRpZmZlcmVudCBmcm9t
IGl0cyBvd24gZG9tYWluJyk7Ci0KLSAgLyoKLSAgICA5LjQgVmVyaWZ5aW5nIElkZW50aXR5IEFz
c2VydGlvbnMKLSAgICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMgYW5kIHRoZXJlIGlz
IGEgdGFyZ2V0IHBlZXIgaWRlbnRpdHkgZm9yIHRoZQotICAgICAgUlRDUGVlckNvbm5lY3Rpb24s
IHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHNldFJlbW90ZURlc2NyaXB0aW9uIE1VU1QgYmUgcmVq
ZWN0ZWQKLSAgICAgIHdpdGggdGhlIHNhbWUgRE9NRXhjZXB0aW9uLgotCi0gICAgOS41IElkUCBF
cnJvciBIYW5kbGluZwotICAgICAgLSBJZiBhbiBpZGVudGl0eSBwcm92aWRlciB0aHJvd3MgYW4g
ZXhjZXB0aW9uIG9yIHJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgdWx0aW1hdGVseQotICAgICAg
ICByZWplY3RlZCwgdGhlbiB0aGUgcHJvY2VkdXJlIHRoYXQgZGVwZW5kcyBvbiB0aGUgSWRQIE1V
U1QgYWxzbyBmYWlsLiBUaGVzZSB0eXBlcyBvZgotICAgICAgICBlcnJvcnMgd2lsbCBjYXVzZSBh
biBJZFAgZmFpbHVyZSB3aXRoIGFuIFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwgc2V0IHRvCi0g
ICAgICAgICJpZHAtZXhlY3V0aW9uLWZhaWx1cmUiLgotCi0gICAgICBBbnkgZXJyb3IgZ2VuZXJh
dGVkIGJ5IHRoZSBJZFAgTUFZIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0aGUK
LSAgICAgIGlkcEVycm9ySW5mbyBhdHRyaWJ1dGUuIFRoZSBpbmZvcm1hdGlvbiBpbiB0aGlzIHN0
cmluZyBpcyBkZWZpbmVkIGJ5IHRoZQotICAgICAgSWRQIGluIHVzZS4KLSAgICovCi0gIHByb21p
c2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0g
ICAgY29uc3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0gICAgY29uc3QgaWRwSG9z
dCA9IGhvc3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKLQotICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7Ci0gICAgICBwZWVySWRl
bnRpdHk6IGBhbGljZUAke2lkcERvbWFpbn1gCi0gICAgfSk7Ci0KLSAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKLQotICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byB0aHJvdyBl
cnJvciBkdXJpbmcgdmFsaWRhdGlvbiwKLSAgICAvLyBpLmUuIGR1cmluZyBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24oKQotICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAg
ICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXRocm93LWVycm9yJmVy
cm9ySW5mbz1iYXInLAotICAgICAgdXNlcm5hbWVIaW50OiBgYWxpY2VAJHtpZHBEb21haW59YAot
ICAgIH0pOwotCi0gICAgcmV0dXJuIHBjMS5jcmVhdGVPZmZlcigpCi0gICAgLnRoZW4ob2ZmZXIg
PT4gUHJvbWlzZS5hbGwoWwotICAgICAgYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbignaWRwLWV4
ZWN1dGlvbi1mYWlsdXJlJywKLSAgICAgICAgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVy
KSksCi0gICAgICBhc3NlcnRfcnRjZXJyb3JfcmVqZWN0aW9uKCdpZHAtZXhlY3V0aW9uLWZhaWx1
cmUnLAotICAgICAgICBwYzIucGVlcklkZW50aXR5KQotICAgIF0pKQotICAgIC50aGVuKCgpID0+
IHsKLSAgICAgIGFzc2VydF9lcXVhbHMocGMyLmlkcEVycm9ySW5mbywgJ2JhcicsCi0gICAgICAg
ICdFeHBlY3QgcGMyLmlkcEVycm9ySW5mbyB0byBiZSBzZXQgdG8gdGhlIGVyci5pZHBFcnJvcklu
Zm8gdGhyb3duIGJ5IG1vY2staWRwLmpzJyk7Ci0gICAgfSk7Ci0gIH0sIGBXaGVuIElkUCB0aHJv
d3MgZXJyb3IgYW5kIHBjIGhhcyB0YXJnZXQgcGVlciBpZGVudGl0eSwgc2V0UmVtb3RlRGVzY3Jp
cHRpb24oKSBhbmQgcGVlcklkZW50aXR5IHJlamVjdGVkIHdpdGggUlRDRXJyb3IoJ2lkcC1leGVj
dXRpb24tZXJyb3InKWApOwotCi0gIC8qCi0gICAgNC4zLjIuIHNldFJlbW90ZURlc2NyaXB0aW9u
Ci0gICAgICBJZiB0aGVyZSBpcyBubyB0YXJnZXQgcGVlciBpZGVudGl0eSwgdGhlbiBzZXRSZW1v
dGVEZXNjcmlwdGlvbiBkb2VzIG5vdCBhd2FpdCB0aGUKLSAgICAgIGNvbXBsZXRpb24gb2YgaWRl
bnRpdHkgdmFsaWRhdGlvbi4KLQotICAgIDkuNS4gIElkUCBFcnJvciBIYW5kbGluZwotICAgICAg
LSBJZiBhbiBpZGVudGl0eSBwcm92aWRlciB0aHJvd3MgYW4gZXhjZXB0aW9uIG9yIHJldHVybnMg
YSBwcm9taXNlIHRoYXQgaXMKLSAgICAgICAgdWx0aW1hdGVseSByZWplY3RlZCwgdGhlbiB0aGUg
cHJvY2VkdXJlIHRoYXQgZGVwZW5kcyBvbiB0aGUgSWRQIE1VU1QgYWxzbyBmYWlsLgotICAgICAg
ICBUaGVzZSB0eXBlcyBvZiBlcnJvcnMgd2lsbCBjYXVzZSBhbiBJZFAgZmFpbHVyZSB3aXRoIGFu
IFJUQ0Vycm9yIHdpdGggZXJyb3JEZXRhaWwKLSAgICAgICAgc2V0IHRvICJpZHAtZXhlY3V0aW9u
LWZhaWx1cmUiLgotCi0gICAgOS40LiAgVmVyaWZ5aW5nIElkZW50aXR5IEFzc2VydGlvbnMKLSAg
ICAgIElmIGlkZW50aXR5IHZhbGlkYXRpb24gZmFpbHMgYW5kIHRoZXJlIGlzIG5vIGEgdGFyZ2V0
IHBlZXIgaWRlbnRpdHksIHRoZSB2YWx1ZSBvZgotICAgICAgdGhlIHBlZXJJZGVudGl0eSBNVVNU
IGJlIHNldCB0byBhIG5ldywgdW5yZXNvbHZlZCBwcm9taXNlIGluc3RhbmNlLiBUaGlzIHBlcm1p
dHMKLSAgICAgIHRoZSB1c2Ugb2YgcmVuZWdvdGlhdGlvbiAob3IgYSBzdWJzZXF1ZW50IGFuc3dl
ciwgaWYgdGhlIHNlc3Npb24gZGVzY3JpcHRpb24gd2FzCi0gICAgICBhIHByb3Zpc2lvbmFsIGFu
c3dlcikgdG8gcmVzb2x2ZSBvciByZWplY3QgdGhlIGlkZW50aXR5LgotICAgKi8KLSAgcHJvbWlz
ZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwotICAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwotCi0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7Ci0KLSAgICBjb25zdCBwb3J0ID0gd2luZG93LmxvY2F0aW9uLnBvcnQ7Ci0gICAgY29u
c3QgW2lkcERvbWFpbl0gPSBnZXRJZHBEb21haW5zKCk7Ci0gICAgY29uc3QgaWRwSG9zdCA9IGhv
c3RTdHJpbmcoaWRwRG9tYWluLCBwb3J0KTsKLQotICAgIC8vIEFzayBtb2NrLWlkcC5qcyB0byB0
aHJvdyBlcnJvciBkdXJpbmcgdmFsaWRhdGlvbiwKLSAgICAvLyBpLmUuIGR1cmluZyBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24oKQotICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3Qs
IHsKLSAgICAgIHByb3RvY29sOiAnbW9jay1pZHAuanM/dmFsaWRhdG9yQWN0aW9uPXRocm93LWVy
cm9yJywKLSAgICAgIHVzZXJuYW1lSGludDogYGFsaWNlQCR7aWRwRG9tYWlufWAKLSAgICB9KTsK
LQotICAgIGNvbnN0IHBlZXJJZGVudGl0eVByb21pc2UxID0gcGMyLnBlZXJJZGVudGl0eTsKLQot
ICAgIHJldHVybiBwYzEuY3JlYXRlT2ZmZXIoKQotICAgIC50aGVuKG9mZmVyID0+Ci0gICAgICAv
LyBzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGlzIG5v
IHRhcmdldCBwZWVyIGlkZW50aXR5IHNldAotICAgICAgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9u
KG9mZmVyKSkKLSAgICAudGhlbigoKSA9PgotICAgICAgYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlv
bignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJywKLSAgICAgICAgcGVlcklkZW50aXR5UHJvbWlzZTEs
Ci0gICAgICAgIGBFeHBlY3QgZmlyc3QgcGVlcklkZW50aXR5IHByb21pc2UgdG8gYmUgcmVqZWN0
ZWQgd2l0aCBSVENFcnJvcignaWRwLWV4ZWN1dGlvbi1mYWlsdXJlJylgKSkKLSAgICAudGhlbigo
KSA9PiB7Ci0gICAgICBjb25zdCBwZWVySWRlbnRpdHlQcm9taXNlMiA9IHBjMi5wZWVySWRlbnRp
dHk7Ci0gICAgICBhc3NlcnRfbm90X2VxdWFscyhwZWVySWRlbnRpdHlQcm9taXNlMiwgcGVlcklk
ZW50aXR5UHJvbWlzZTEsCi0gICAgICAgICdFeHBlY3QgcGMyLnBlZXJJZGVudGl0eSB0byBiZSBy
ZXBsYWNlZCB3aXRoIGEgZnJlc2ggdW5yZXNvbHZlZCBwcm9taXNlJyk7Ci0KLSAgICAgIC8vIHJl
Z2VuZXJhdGUgYW4gaWRlbnRpdHkgYXNzZXJ0aW9uIHdpdGggbm8gdGVzdCBvcHRpb24gdG8gdGhy
b3cgZXJyb3IKLSAgICAgIHBjMS5zZXRJZGVudGl0eVByb3ZpZGVyKGlkcEhvc3QsIHsKLSAgICAg
ICAgcHJvdG9jb2w6ICdpZHAtdGVzdC5qcycsCi0gICAgICAgIHVzZXJuYW1lSGludDogYGFsaWNl
QCR7aWRwRG9tYWlufWAKLSAgICAgIH0pOwotCi0gICAgICByZXR1cm4gcGMxLmNyZWF0ZU9mZmVy
KCkKLSAgICAgIC50aGVuKG9mZmVyID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikp
Ci0gICAgICAudGhlbihwZWVySWRlbnRpdHlQcm9taXNlMikKLSAgICAgIC50aGVuKGlkZW50aXR5
QXNzZXJ0aW9uID0+IHsKLSAgICAgICAgY29uc3QgeyBpZHAsIG5hbWUgfSA9IGlkZW50aXR5QXNz
ZXJ0aW9uOwotCi0gICAgICAgIGFzc2VydF9lcXVhbHMoaWRwLCBpZHBEb21haW4sCi0gICAgICAg
ICAgYEV4cGVjdCBJZFAgZG9tYWluIHRvIGJlICR7aWRwRG9tYWlufWApOwotCi0gICAgICAgIGFz
c2VydF9lcXVhbHMobmFtZSwgYGFsaWNlQCR7aWRwRG9tYWlufWAsCi0gICAgICAgICAgYEV4cGVj
dCB2YWxpZGF0ZWQgaWRlbnRpdHkgdG8gYmUgYWxpY2VAJHtpZHBEb21haW59YCk7Ci0KLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhwYzIucGVlcmlkZW50aXR5LCBwZWVySWRlbnRpdHlQcm9taXNlMiwK
LSAgICAgICAgICAnRXhwZWN0IHBjMi5wZWVySWRlbnRpdHkgdG8gc3RheSBmaXhlZCBhZnRlciBp
ZGVudGl0eSBpcyB2YWxpZGF0ZWQnKTsKLSAgICAgIH0pOwotICAgIH0pOwotICB9LCAnSWRQIGZh
aWx1cmUgd2l0aCBubyB0YXJnZXQgcGVlciBpZGVudGl0eSBzaG91bGQgaGF2ZSBmb2xsb3dpbmcg
c2V0UmVtb3RlRGVzY3JpcHRpb24oKSBzdWNjZWVkIGFuZCByZXBsYWNlIHBjLnBlZXJJZGVudGl0
eSB3aXRoIGEgbmV3IHByb21pc2UnKTsKLQotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1yZWxheS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVsYXkt
Y2FudmFzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBkYzdhNGFmOWExNGE5N2JmZGZhZWQ4ODNh
Y2U4NzA1YzIxZTJlN2Q3Li41NzJkMTZhNTY5YjAyNjZiZmExYjY2ZTA3YjNhMmNjOTNmNWFjNjEw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZWxheS1jYW52YXMuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXJlbGF5LWNhbnZhcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSwzIEBACiAKLUZBSUwgVHdvIFBlZXJDb25uZWN0aW9ucyByZWxheWluZyBhIGNhbnZhcyBz
b3VyY2UgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIDE4My42ICsvLSAyIGJ1dCBnb3Qg
MTg4Ljg1CitQQVNTIFR3byBQZWVyQ29ubmVjdGlvbnMgcmVsYXlpbmcgYSBjYW52YXMgc291cmNl
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNTM1MTA5
MzkzZmViODg4MzM1NDBmYTAzMzIxZTlkMjFmOTc1ZTYxYy4uYWY3N2E2MmNjNjVkMzk4NTdjYzYy
MjVkYWY5MzI4ZTcxMzVjMjY4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw1IEBACiAKK1BBU1MgcmVzdGFydEljZSgpIGhhcyBubyBlZmZl
Y3Qgb24gYSBjbG9zZWQgcGVlciBjb25uZWN0aW9uCiBGQUlMIHJlc3RhcnRJY2UoKSBkb2VzIG5v
dCB0cmlnZ2VyIG5lZ290aWF0aW9uIGFoZWFkIG9mIGluaXRpYWwgbmVnb3RpYXRpb24gYXNzZXJ0
X2VxdWFsczogTm8gbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgZXhwZWN0ZWQgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKIFBBU1Mg
cmVzdGFydEljZSgpIGhhcyBubyBlZmZlY3Qgb24gaW5pdGlhbCBuZWdvdGlhdGlvbgogUEFTUyBy
ZXN0YXJ0SWNlKCkgZmlyZXMgbmVnb3RpYXRpb25uZWVkZWQgYWZ0ZXIgaW5pdGlhbCBuZWdvdGlh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sCmluZGV4IDBlNGVjZjY0Yzg1M2ZjZTlkNGU0
YTY2ODU2ZjJhMDYwZjJiZGJiMzQuLjQ1YTA0ZDNhN2E1MzE0ZmYzY2Q4ZmY3ZmQyMWY4ZmM2Yzc1
ZjZmNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwKQEAgLTUxLDggKzUxLDggQEAgYXN5
bmMgZnVuY3Rpb24gZXhjaGFuZ2VPZmZlckFuc3dlckVuZE9uU2Vjb25kKHBjMSwgcGMyLCBuZWdv
dGlhdG9yKSB7CiAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKHBjMS5yZW1vdGVEZXNj
cmlwdGlvbik7IC8vIEVuZCBvbiBwYzIuIE5vIHJhY2UKIH0KIAotYXN5bmMgZnVuY3Rpb24gYXNz
ZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYykgewotICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25h
bGluZ1N0YXRlLCAic3RhYmxlIiwgIkluIHN0YWJsZSBzdGF0ZSIpOworYXN5bmMgZnVuY3Rpb24g
YXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYywgc3RhdGUgPSAic3RhYmxlIikgeworICBh
c3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCBzdGF0ZSwgYEluICR7c3RhdGV9IHN0YXRl
YCk7CiAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFsKICAgICBuZXcgUHJvbWlz
ZShyID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByKSwKICAgICBuZXcgUHJvbWlzZShyID0+
IHQuc3RlcF90aW1lb3V0KHIsIDEwKSkKQEAgLTczLDYgKzczLDEzIEBAIGZ1bmN0aW9uIGFzc2Vy
dF91ZnJhZ3Nfbm90X2VxdWFscyh4LCB5LCBkZXNjcmlwdGlvbikgewogICBhc3NlcnRfZmFsc2Uo
eCA9PT0geSwgZGVzY3JpcHRpb24pOwogfQogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHBjLmNsb3NlKCk7CisgIHBj
LnJlc3RhcnRJY2UoKTsKKyAgYXdhaXQgYXNzZXJ0Tm9OZWdvdGlhdGlvbk5lZWRlZCh0LCBwYywg
ImNsb3NlZCIpOworfSwgInJlc3RhcnRJY2UoKSBoYXMgbm8gZWZmZWN0IG9uIGEgY2xvc2VkIHBl
ZXIgY29ubmVjdGlvbiIpOworCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCA5Nzc0MDE1ZTYxZTMyM2U5MGJhNTI2OTlhNWEzOWJjMzcyNzkxZDNlLi4zM2E2
YWM4MTQ0NmRmYzQxYmUwZTkxZWQwYzUwMTA3NDZkZjE2ZDA1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
c2V0UmVtb3RlRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNiBAQCBGQUlMIHNl
dFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBpbnZhbGlkIFNEUCBhbmQgc3RhYmxlIHN0YXRlIHNo
b3VsZCByZWplY3Qgd2l0aAogUEFTUyBOZWdvdGlhdGlvbiBzaG91bGQgZmlyZSBzaWduYWxpbmdz
c3RhdGUgZXZlbnRzCiBQQVNTIENhbGxpbmcgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBhZ2FpbiBh
ZnRlciBvbmUgcm91bmQgb2YgcmVtb3RlLW9mZmVyL2xvY2FsLWFuc3dlciBzaG91bGQgc3VjY2Vl
ZAogUEFTUyBTd2l0Y2hpbmcgcm9sZSBmcm9tIG9mZmVyZXIgdG8gYW5zd2VyZXIgYWZ0ZXIgZ29p
bmcgYmFjayB0byBzdGFibGUgc3RhdGUgc2hvdWxkIHN1Y2NlZWQKK1BBU1MgQ2xvc2luZyBvbiBz
ZXRSZW1vdGVEZXNjcmlwdGlvbigpIG5laXRoZXIgcmVzb2x2ZXMgbm9yIHJlamVjdHMKK1BBU1Mg
Q2xvc2luZyBvbiByb2xsYmFjayBuZWl0aGVyIHJlc29sdmVzIG5vciByZWplY3RzCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi5odG1sCmluZGV4IDNmMzM1ZDcxYjlhYjY0MGMzNGI4Nzlk
NjI0ZmE3NzIxNTQ4OGQ1Y2UuLmMxNzBmNzY2YmQzNjU1YjE2YzBlZWExYzU1MTRlOWUxNWFhYzg0
MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24uaHRtbApAQCAtMTQxLDExICsxNDEs
MzEgQEAKICAgICBhc3NlcnRfc2Vzc2lvbl9kZXNjX3NpbWlsYXIocGMuY3VycmVudFJlbW90ZURl
c2NyaXB0aW9uLCBhbnN3ZXIpOwogICB9LCAnU3dpdGNoaW5nIHJvbGUgZnJvbSBvZmZlcmVyIHRv
IGFuc3dlcmVyIGFmdGVyIGdvaW5nIGJhY2sgdG8gc3RhYmxlIHN0YXRlIHNob3VsZCBzdWNjZWVk
Jyk7CiAKLSAgLyoKLSAgICBUT0RPCi0gICAgNC4zLjIuICBzZXRSZW1vdGVEZXNjcmlwdGlvbgot
ICAgICAgLSBJZiBhbiBhPWlkZW50aXR5IGF0dHJpYnV0ZSBpcyBwcmVzZW50IGluIHRoZSBzZXNz
aW9uIGRlc2NyaXB0aW9uLCB0aGUgYnJvd3NlcgotICAgICAgICB2YWxpZGF0ZXMgdGhlIGlkZW50
aXR5IGFzc2VydGlvbi4KLSAgICovCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigp
OworICAgIGNvbnN0IHAgPSBQcm9taXNlLnJhY2UoWworICAgICAgcGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ob2ZmZXIpLAorICAgICAgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dCgoKSA9
PiByKCJ0aW1lb3V0IiksIDIwMCkpCisgICAgXSk7CisgICAgcGMuY2xvc2UoKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGF3YWl0IHAsICJ0aW1lb3V0Iik7CisgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWdu
YWxpbmdTdGF0ZSwgImNsb3NlZCIsICJJbiBjbG9zZWQgc3RhdGUiKTsKKyAgfSwgJ0Nsb3Npbmcg
b24gc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBuZWl0aGVyIHJlc29sdmVzIG5vciByZWplY3RzJyk7
CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAg
ICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQgcGMuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgY29uc3QgcCA9IFByb21pc2UucmFjZShbCisg
ICAgICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlciksCisgICAgICBuZXcgUHJvbWlzZShy
ID0+IHQuc3RlcF90aW1lb3V0KCgpID0+IHIoInRpbWVvdXQiKSwgMjAwKSkKKyAgICBdKTsKKyAg
ICBwYy5jbG9zZSgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcCwgInRpbWVvdXQiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAiY2xvc2VkIiwgIkluIGNsb3NlZCBz
dGF0ZSIpOworICB9LCAnQ2xvc2luZyBvbiByb2xsYmFjayBuZWl0aGVyIHJlc29sdmVzIG5vciBy
ZWplY3RzJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRl
Y3RvclRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGE1MTI0MTFmMmM0Zjk5YzdkNzNiMjJmZmE3NTMwZGMxYTVjZTEwYjMu
LjI5MGE2ODM0OGU0ZWY4NGQyNGFlYWY0YjZkZGZiODRmNzlkZTlkMGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi12aWRlb0RldGVjdG9yVGVzdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACiAKLVBBU1Mg
U2lnbmFsIGRldGVjdG9yIGRldGVjdHMgdHJhY2sgY2hhbmdlIHdpdGhpbiByZWFzb25hYmxlIHRp
bWUKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFNp
Z25hbCBkZXRlY3RvciBkZXRlY3RzIHRyYWNrIGNoYW5nZSB3aXRoaW4gcmVhc29uYWJsZSB0aW1l
IFRlc3QgdGltZWQgb3V0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVm
ZXJlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA3NjU3ODI1YmQ4MjFh
ZThkZjVmY2EwM2IwMmZlNTM5ZWI3YjcwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWRlZ3JhZGF0aW9uUHJlZmVyZW5jZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotRkFJTCBzZXRQYXJhbWV0ZXJz
IHdpdGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHNldCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfbm90
X2VxdWFsczogRXhwZWN0IHNlbmRlciBwYXJhbS5ydGNwLmNuYW1lIHRvIGJlIHNldCBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSB1bmRlZmluZWQKLUZBSUwgc2V0UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0
aW9uUHJlZmVyZW5jZSB1bnNldCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfbm90X2VxdWFsczogRXhw
ZWN0IHNlbmRlciBwYXJhbS5ydGNwLmNuYW1lIHRvIGJlIHNldCBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSB1bmRlZmluZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVu
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyYzkyYmMxYzA4MTRmMjk0ZTFiOTE1M2ZlYmM3Njg4NmNm
MmZkYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFy
YW1ldGVycy1kZWdyYWRhdGlvblByZWZlcmVuY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg3
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KLTx0aXRsZT5S
VENSdHBQYXJhbWV0ZXJzIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZTwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZGlj
dGlvbmFyeS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlJUQ1J0cFBhcmFtZXRl
cnMtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAv
LyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRw
czovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hpdmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1s
Ci0KLSAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZnJvbSBS
VENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qczoKLSAgLy8gICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFt
ZXRlcnMKLQotICAvKgotICAgIDUuMi4gIFJUQ1J0cFNlbmRlciBJbnRlcmZhY2UKLSAgICAgIGlu
dGVyZmFjZSBSVENSdHBTZW5kZXIgewotICAgICAgICBQcm9taXNlPHZvaWQ+ICAgICAgICAgICBz
ZXRQYXJhbWV0ZXJzKG9wdGlvbmFsIFJUQ1J0cFBhcmFtZXRlcnMgcGFyYW1ldGVycyk7Ci0gICAg
ICAgIFJUQ1J0cFBhcmFtZXRlcnMgICAgICAgIGdldFBhcmFtZXRlcnMoKTsKLSAgICAgIH07Ci0K
LSAgICAgIGRpY3Rpb25hcnkgUlRDUnRwUGFyYW1ldGVycyB7Ci0gICAgICAgIERPTVN0cmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSWQ7Ci0gICAgICAgIHNl
cXVlbmNlPFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycz4gICAgICAgIGVuY29kaW5nczsKLSAgICAg
ICAgc2VxdWVuY2U8UlRDUnRwSGVhZGVyRXh0ZW5zaW9uUGFyYW1ldGVycz4gaGVhZGVyRXh0ZW5z
aW9uczsKLSAgICAgICAgUlRDUnRjcFBhcmFtZXRlcnMgICAgICAgICAgICAgICAgICAgICAgICAg
cnRjcDsKLSAgICAgICAgc2VxdWVuY2U8UlRDUnRwQ29kZWNQYXJhbWV0ZXJzPiAgICAgICAgICAg
Y29kZWNzOwotICAgICAgICBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgICAgICAgICAgICAgICAg
ICBkZWdyYWRhdGlvblByZWZlcmVuY2U7Ci0gICAgICB9OwotCi0gICAgICBlbnVtIFJUQ0RlZ3Jh
ZGF0aW9uUHJlZmVyZW5jZSB7Ci0gICAgICAgICJtYWludGFpbi1mcmFtZXJhdGUiLAotICAgICAg
ICAibWFpbnRhaW4tcmVzb2x1dGlvbiIsCi0gICAgICAgICJiYWxhbmNlZCIKLSAgICAgIH07Ci0K
LSAgICAgIC0gZGVncmFkYXRpb25QcmVmZXJlbmNlIGlzIHNldCB0byB0aGUgbGFzdCB2YWx1ZSBw
YXNzZWQgaW50byBzZXRQYXJhbWV0ZXJzLAotICAgICAgICBvciB0aGUgZGVmYXVsdCB2YWx1ZSBv
ZiAiYmFsYW5jZWQiIGlmIHNldFBhcmFtZXRlcnMgaGFzbid0IGJlZW4gY2FsbGVkLgotICAgKi8K
LQotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGNvbnN0
IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKLQotICAgIGNvbnN0IHBh
cmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKLSAgICB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFt
ZXRlcnMocGFyYW0pOwotCi0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5kZWdyYWRhdGlvblByZWZl
cmVuY2UsICdiYWxhbmNlZCcsCi0gICAgICAnRXhwZWN0IGluaXRpYWwgcGFyYW0uZGVncmFkYXRp
b25QcmVmZXJlbmNlIHRvIGJlIGJhbGFuY2VkJyk7Ci0KLSAgICBwYXJhbS5kZWdyYWRhdGlvblBy
ZWZlcmVuY2UgPSAnbWFpbnRhaW4tZnJhbWVyYXRlJzsKLQotICAgIHJldHVybiBwYy5zZXRQYXJh
bWV0ZXJzKHBhcmFtKQotICAgIC50aGVuKCgpID0+IHsKLSAgICAgIGNvbnN0IHBhcmFtID0gc2Vu
ZGVyLmdldFBhcmFtZXRlcnMoKTsKLSAgICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhw
YXJhbSk7Ci0KLSAgICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNl
LCAnbWFpbnRhaW4tZnJhbWVyYXRlJyk7Ci0gICAgfSk7Ci0gIH0sICdzZXRQYXJhbWV0ZXJzIHdp
dGggZGVncmFkYXRpb25QcmVmZXJlbmNlIHNldCBzaG91bGQgc3VjY2VlZCcpOwotCi0gIHByb21p
c2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwot
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgY29uc3QgeyBzZW5kZXIg
fSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwotCi0gICAgY29uc3QgcGFyYW0gPSBzZW5k
ZXIuZ2V0UGFyYW1ldGVycygpOwotICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJh
bSk7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSwgJ2Jh
bGFuY2VkJywKLSAgICAgICdFeHBlY3QgaW5pdGlhbCBwYXJhbS5kZWdyYWRhdGlvblByZWZlcmVu
Y2UgdG8gYmUgYmFsYW5jZWQnKTsKLQotICAgIHBhcmFtLmRlZ3JhZGF0aW9uUHJlZmVyZW5jZSA9
IHVuZGVmaW5lZDsKLQotICAgIHJldHVybiBwYy5zZXRQYXJhbWV0ZXJzKHBhcmFtKQotICAgIC50
aGVuKCgpID0+IHsKLSAgICAgIGNvbnN0IHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsK
LSAgICAgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7Ci0KLSAgICAgIGFzc2Vy
dF9lcXVhbHMocGFyYW0uZGVncmFkYXRpb25QcmVmZXJlbmNlLCB1bmRlZmluZWQpOwotICAgIH0p
OwotICB9LCAnc2V0UGFyYW1ldGVycyB3aXRoIGRlZ3JhZGF0aW9uUHJlZmVyZW5jZSB1bnNldCBz
aG91bGQgc3VjY2VlZCcpOwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNl
VHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggYWM1ZWUxNmVhODdiYzQxMDFlNjEwNzcwZjQ2ZjgyMDkwZDgyN2Y3OS4u
ZmFiOTYxNWU4ODQ3YTk1N2MyODAxNmI5YzRhYWVlODk0OGQ0MjY3NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2Vu
ZGVyLXJlcGxhY2VUcmFjay5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLXJlcGxhY2VU
cmFjay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw2IEBACiAKK0hhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCiBQQVNTIENhbGxpbmcgcmVwbGFjZVRyYWNrIG9u
IGNsb3NlZCBjb25uZWN0aW9uIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcgog
UEFTUyBDYWxsaW5nIHJlcGxhY2VUcmFjayB3aXRoIHRyYWNrIG9mIGRpZmZlcmVudCBraW5kIHNo
b3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IKIFBBU1MgQ2FsbGluZyByZXBsYWNlVHJhY2sgb24g
c3RvcHBlZCBzZW5kZXIgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRTdGF0ZUVycm9yCkBAIC04
LDUgKzEwLDUgQEAgUEFTUyBDYWxsaW5nIHJlcGxhY2VUcmFjayhudWxsKSBvbiBzZW5kZXIgbm90
IHNldCB0byBzZXNzaW9uIGRlc2NyaXB0aW9uIHNob3VsZAogUEFTUyBDYWxsaW5nIHJlcGxhY2VU
cmFjayhudWxsKSBvbiBzZW5kZXIgc2V0IHRvIHNlc3Npb24gZGVzY3JpcHRpb24gc2hvdWxkIHJl
c29sdmUgd2l0aCBzZW5kZXIudHJhY2sgc2V0IHRvIG51bGwKIFBBU1MgQ2FsbGluZyByZXBsYWNl
VHJhY2sgb24gc2VuZGVyIHdpdGggc3RvcHBlZCB0cmFjayBhbmQgYW5kIHNldCB0byBzZXNzaW9u
IGRlc2NyaXB0aW9uIHNob3VsZCByZXNvbHZlIHdpdGggc2VuZGVyLnRyYWNrIHNldCB0byBnaXZl
biB0cmFjawogUEFTUyBDYWxsaW5nIHJlcGxhY2VUcmFjayBvbiBzZW5kZXIgd2l0aCBzaW1pbGFy
IHRyYWNrIGFuZCBhbmQgc2V0IHRvIHNlc3Npb24gZGVzY3JpcHRpb24gc2hvdWxkIHJlc29sdmUg
d2l0aCBzZW5kZXIudHJhY2sgc2V0IHRvIG5ldyB0cmFjawotUEFTUyBSZXBsYWNlVHJhY2sgdHJh
bnNtaXRzIHRoZSBuZXcgdHJhY2sgbm90IHRoZSBvbGQgdHJhY2sKK1RJTUVPVVQgUmVwbGFjZVRy
YWNrIHRyYW5zbWl0cyB0aGUgbmV3IHRyYWNrIG5vdCB0aGUgb2xkIHRyYWNrIFRlc3QgdGltZWQg
b3V0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBUcmFuc2NlaXZlci1zZXREaXJlY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmOTc5YzVhNmUxNjAyMzFkYmU1NTQyNjQzNTI1ODQwN2RjODgyZWNlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVy
LXNldERpcmVjdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAK
LQotRkFJTCBzZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJlY3Rpb24g
dHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3RyYW5zY2Vp
dmVyLnNldERpcmVjdGlvbigncmVjdm9ubHknKScsICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24n
IGlzIHVuZGVmaW5lZCkKLUZBSUwgc2V0RGlyZWN0aW9uIHdpdGggc2FtZSBkaXJlY3Rpb24gc2hv
dWxkIGhhdmUgbm8gZWZmZWN0IHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbiBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICd0cmFuc2NlaXZlci5zZXREaXJlY3Rpb24oJ3NlbmRvbmx5JyknLCAndHJhbnNj
ZWl2ZXIuc2V0RGlyZWN0aW9uJyBpcyB1bmRlZmluZWQpCi1GQUlMIHNldERpcmVjdGlvbiBzaG91
bGQgY2hhbmdlIHRyYW5zY2VpdmVyLmRpcmVjdGlvbiBpbmRlcGVuZGVudCBvZiB0cmFuc2NlaXZl
ci5jdXJyZW50RGlyZWN0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJyZWN2b25seSIgYnV0
IGdvdCAiaW5hY3RpdmUiCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERpcmVjdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXItc2V0RGlyZWN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMyY2JmZjVkOTg1ODY4NDBhYjljMzdhMWUxZTA1ZjI2MjU2MDg0OGUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0
RGlyZWN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi08IWRvY3R5cGUg
aHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+UlRDUnRwVHJhbnNjZWl2ZXIucHJv
dG90eXBlLnNldERpcmVjdGlvbjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBUZXN0
IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczovL3Jh
d2dpdC5jb20vdzNjL3dlYnJ0Yy1wYy9jYzhkODBmNDU1Yjg2YzgwNDFkNjNiY2ViOGI0NTdmNDVj
NzJhYTg5L3dlYnJ0Yy5odG1sCi0KLSAgLy8gVGhlIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb25z
IGFyZSBjYWxsZWQgZnJvbSBSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanM6Ci0gIC8vIGdlbmVy
YXRlQW5zd2VyCi0KLSAgLyoKLSAgICA1LjQuICBSVENSdHBUcmFuc2NlaXZlciBJbnRlcmZhY2UK
LSAgICAgIGludGVyZmFjZSBSVENSdHBUcmFuc2NlaXZlciB7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbiAgZGlyZWN0aW9uOwotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24/IGN1cnJlbnREaXJl
Y3Rpb247Ci0gICAgICAgIHZvaWQgc2V0RGlyZWN0aW9uKFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0
aW9uIGRpcmVjdGlvbik7Ci0gICAgICAgIC4uLgotICAgICAgfTsKLSAgICovCi0KLSAgIC8qCi0g
ICAgNS40LiAgc2V0RGlyZWN0aW9uCi0gICAgICA0LiAgU2V0IHRyYW5zY2VpdmVyJ3MgW1tEaXJl
Y3Rpb25dXSBzbG90IHRvIG5ld0RpcmVjdGlvbi4KLSAgICovCi0gIHRlc3QodCA9PiB7Ci0gICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICBjb25zdCB0cmFuc2NlaXZl
ciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwotICAgIGFzc2VydF9lcXVhbHModHJhbnNj
ZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2Vp
dmVyLmN1cnJlbnREaXJlY3Rpb24sIG51bGwpOwotCi0gICAgdHJhbnNjZWl2ZXIuc2V0RGlyZWN0
aW9uKCdyZWN2b25seScpOwotICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9u
LCAncmVjdm9ubHknKTsKLSAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnREaXJl
Y3Rpb24sIG51bGwsCi0gICAgICAnRXhwZWN0IHRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24g
dG8gbm90IGNoYW5nZScpOwotCi0gIH0sICdzZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFu
c2NlaXZlci5kaXJlY3Rpb24nKTsKLQotICAgLyoKLSAgICA1LjQuICBzZXREaXJlY3Rpb24KLSAg
ICAgIDMuICBJZiBuZXdEaXJlY3Rpb24gaXMgZXF1YWwgdG8gdHJhbnNjZWl2ZXIncyBbW0RpcmVj
dGlvbl1dIHNsb3QsIGFib3J0Ci0gICAgICAgICAgdGhlc2Ugc3RlcHMuCi0gICAqLwotICB0ZXN0
KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgY29u
c3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7IGRpcmVjdGlvbjog
J3NlbmRvbmx5JyB9KTsKLSAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmRpcmVjdGlvbiwg
J3NlbmRvbmx5Jyk7Ci0gICAgdHJhbnNjZWl2ZXIuc2V0RGlyZWN0aW9uKCdzZW5kb25seScpOwot
ICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZG9ubHknKTsKLQot
ICB9LCAnc2V0RGlyZWN0aW9uIHdpdGggc2FtZSBkaXJlY3Rpb24gc2hvdWxkIGhhdmUgbm8gZWZm
ZWN0Jyk7Ci0KLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAg
ICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHsgZGlyZWN0
aW9uOiAncmVjdm9ubHknIH0pOwotICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0
aW9uLCAncmVjdm9ubHknKTsKLSAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyLmN1cnJlbnRE
aXJlY3Rpb24sIG51bGwpOwotCi0gICAgcmV0dXJuIHBjLmNyZWF0ZU9mZmVyKCkKLSAgICAudGhl
bihvZmZlciA9PgotICAgICAgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikKLSAgICAgIC50
aGVuKCgpID0+IGdlbmVyYXRlQW5zd2VyKG9mZmVyKSkpCi0gICAgLnRoZW4oYW5zd2VyID0+IHBj
LnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcikpCi0gICAgLnRoZW4oKCkgPT4gewotICAgICAg
YXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAncmVjdm9ubHknKTsK
LSAgICAgIHRyYW5zY2VpdmVyLnNldERpcmVjdGlvbignc2VuZHJlY3YnKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuZGlyZWN0aW9uLCAnc2VuZHJlY3YnKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgJ3JlY3Zvbmx5Jyk7Ci0gICAg
fSk7Ci0gIH0sICdzZXREaXJlY3Rpb24gc2hvdWxkIGNoYW5nZSB0cmFuc2NlaXZlci5kaXJlY3Rp
b24gaW5kZXBlbmRlbnQgb2YgdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbicpOwotCi0gIC8q
Ci0gICAgVE9ETwotICAgICAgICBDYWxscyB0byBzZXREaXJlY3Rpb24oKSBkbyBub3QgdGFrZSBl
ZmZlY3QgaW1tZWRpYXRlbHkuIEluc3RlYWQsIGZ1dHVyZSBjYWxscwotICAgICAgICB0byBjcmVh
dGVPZmZlciBhbmQgY3JlYXRlQW5zd2VyIG1hcmsgdGhlIGNvcnJlc3BvbmRpbmcgbWVkaWEgZGVz
Y3JpcHRpb24gYXMKLSAgICAgICAgc2VuZHJlY3YsIHNlbmRvbmx5LCByZWN2b25seSBvciBpbmFj
dGl2ZSBhcyBkZWZpbmVkIGluIFtKU0VQXSAoc2VjdGlvbiA1LjIuMi4KLSAgICAgICAgYW5kIHNl
Y3Rpb24gNS4zLjIuKS4KLQotICAgIFRlc3RlZCBpbiBSVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290
aWF0aW9ubmVlZGVkLmh0bWwKLSAgICAgIDUuNC4gIHNldERpcmVjdGlvbgotICAgICAgICA2LiAg
VXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KLQotICAg
IENvdmVyYWdlIFJlcG9ydAotICAgICAgVGVzdGVkICAgICAgICA2Ci0gICAgICBOb3QgVGVzdGVk
ICAgIDEKLSAgICAgIFVudGVzdGFibGUgICAgMAotICAgICAgVG90YWwgICAgICAgICA3Ci0gICAq
LwotCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9pZGVudGl0eS1oZWxwZXIu
c3ViLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTUzODM4MDY0OGJlYTQxYzRj
YTIwNTdmZjY2NmQ2MTFjYzgzNTQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL2lkZW50aXR5LWhlbHBlci5zdWIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCww
IEBACi0ndXNlIHN0cmljdCc7Ci0KLS8qCi0gIEluIHdlYi1wbGF0Zm9ybS10ZXN0LCBhIG51bWJl
ciBvZiBkb21haW5zIGFyZSByZXF1aXJlZCB0byBiZSBzZXQgdXAgbG9jYWxseS4KLSAgVGhlIGxp
c3QgaXMgYXZhaWxhYmxlIGF0IGRvY3MvX3dyaXRpbmctdGVzdHMvc2VydmVyLWZlYXR1cmVzLm1k
LiBUaGUKLSAgYXBwcm9wcmlhdGUgaG9zdHMgZmlsZSBlbnRyaWVzIGNhbiBiZSBnZW5lcmF0ZWQg
d2l0aCB0aGUgV1BUIENMSSB2aWEgdGhlCi0gIGZvbGxvd2luZyBjb21tYW5kOiBgd3B0IG1ha2Ut
aG9zdHMtZmlsZWAuCi0gKi8KLQotLyoKLSAgICBkaWN0aW9uYXJ5IFJUQ0lkZW50aXR5UHJvdmlk
ZXJEZXRhaWxzIHsKLSAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBkb21haW47Ci0gICAgICAgICAg
ICAgICBET01TdHJpbmcgcHJvdG9jb2wgPSAiZGVmYXVsdCI7Ci0gICAgfTsKLSAqLwotCi0vLyBQ
YXJzZSBhIGJhc2U2NCBKU09OIGVuY29kZWQgc3RyaW5nIHJldHVybmVkIGZyb20gZ2V0SWRlbnRp
dHlBc3NlcnRpb24oKS4KLS8vIFRoaXMgaXMgYWxzbyB0aGUgc3RyaW5nIHRoYXQgaXMgc2V0IGlu
IHRoZSBhPWlkZW50aXR5IGxpbmUuCi0vLyBSZXR1cm5zIGEgeyBpZHAsIGFzc2VydGlvbiB9IHdo
ZXJlIGlkcCBpcyBvZiB0eXBlIFJUQ0lkZW50aXR5UHJvdmlkZXJEZXRhaWxzCi0vLyBhbmQgYXNz
ZXJ0aW9uIGlzIHRoZSBkZXNlcmlhbGl6ZWQgSlNPTiB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGUK
LS8vIElkUCBwcm94eSdzIGdlbmVyYXRlQXNzZXJ0aW9uKCkgZnVuY3Rpb24uCi1mdW5jdGlvbiBw
YXJzZUFzc2VydGlvblJlc3VsdChhc3NlcnRpb25SZXN1bHRTdHIpIHsKLSAgY29uc3QgYXNzZXJ0
aW9uUmVzdWx0ID0gSlNPTi5wYXJzZShhdG9iKGFzc2VydGlvblJlc3VsdFN0cikpOwotCi0gIGNv
bnN0IHsgaWRwIH0gPSBhc3NlcnRpb25SZXN1bHQ7Ci0gIGNvbnN0IGFzc2VydGlvbiA9IEpTT04u
cGFyc2UoYXNzZXJ0aW9uUmVzdWx0LmFzc2VydGlvbik7Ci0KLSAgcmV0dXJuIHsgaWRwLCBhc3Nl
cnRpb24gfTsKLX0KLQotLy8gUmV0dXJuIHR3byBkaXN0aW5jdCBJZFAgZG9tYWlucyB0aGF0IGFy
ZSBkaWZmZXJlbnQgZnJvbSBjdXJyZW50IGRvbWFpbgotZnVuY3Rpb24gZ2V0SWRwRG9tYWlucygp
IHsKLSAgY29uc3QgZG9tYWluQSA9ICd7e2hvc3RzW2FsdF1bXX19JzsKLSAgY29uc3QgZG9tYWlu
QiA9ICd7e2RvbWFpbnNbd3d3MV19fSc7Ci0gIGNvbnN0IGRvbWFpbkMgPSAne3tkb21haW5zW3d3
dzJdfX0nOwotCi0gIGlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gZG9tYWluQSkgewot
ICAgIHJldHVybiBbZG9tYWluQiwgZG9tYWluQ107Ci0gIH0gZWxzZSBpZih3aW5kb3cubG9jYXRp
b24uaG9zdG5hbWUgPT09IGRvbWFpbkIpIHsKLSAgICByZXR1cm4gW2RvbWFpbkEsIGRvbWFpbkNd
OwotICB9IGVsc2UgewotICAgIHJldHVybiBbZG9tYWluQSwgZG9tYWluQl07Ci0gIH0KLX0KLQot
ZnVuY3Rpb24gYXNzZXJ0X3J0Y2Vycm9yX3JlamVjdGlvbihlcnJvckRldGFpbCwgcHJvbWlzZSwg
ZGVzYykgewotICByZXR1cm4gcHJvbWlzZS50aGVuKAotICAgIHJlcyA9PiB7Ci0gICAgICBhc3Nl
cnRfdW5yZWFjaGVkKGBFeHBlY3QgcHJvbWlzZSB0byBiZSByZWplY3RlZCB3aXRoIFJUQ0Vycm9y
LCBidXQgaW5zdGVhZCBnb3QgJHtyZXN9YCk7Ci0gICAgfSwgZXJyID0+IHsKLSAgICAgIGFzc2Vy
dF90cnVlKGVyciBpbnN0YW5jZW9mIFJUQ0Vycm9yLAotICAgICAgICAnRXhwZWN0IGVycm9yIG9i
amVjdCB0byBiZSBpbnN0YW5jZSBvZiBSVENFcnJvcicpOwotCi0gICAgICBhc3NlcnRfZXF1YWxz
KGVyci5lcnJvckRldGFpbCwgZXJyb3JEZXRhaWwsCi0gICAgICAgIGBFeHBlY3QgUlRDRXJyb3Ig
b2JqZWN0IGhhdmUgZXJyb3JEZXRhaWwgc2V0IHRvICR7ZXJyb3JEZXRhaWx9YCk7Ci0KLSAgICAg
IHJldHVybiBlcnI7Ci0gICAgfSk7Ci19Ci0KLS8vIGNvbnN0cnVjdCBhIGhvc3Qgc3RyaW5nIGNv
bnNpc3Qgb2YgZG9tYWluIGFuZCBvcHRpb25hbGx5IHBvcnQKLS8vIElmIHRoZSBkZWZhdWx0IEhU
VFAvSFRUUFMgcG9ydCBpcyB1c2VkLCB3aW5kb3cubG9jYXRpb24ucG9ydCByZXR1cm5zCi0vLyBl
bXB0eSBzdHJpbmcuCi1mdW5jdGlvbiBob3N0U3RyaW5nKGRvbWFpbiwgcG9ydCkgewotICBpZihw
b3J0ID09PSAnJykgewotICAgIHJldHVybiBkb21haW47Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJu
IGAke2RvbWFpbn06JHtwb3J0fWA7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2lu
ZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKaW5kZXggYWUxOGNjNjM1MzgzMWE4YzE4OTI4
ZjFlNjhlNmE4MGFjNDAwYmIwZC4uOTg2ODVmMWNkMTIzNzhlNzE1YjViMzUzMTczODdhYmVhMTM3
YmEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRsaGFybmVzcy5odHRwcy53
aW5kb3cuanMKQEAgLTEwMyw3ICsxMDMsNyBAQCBmdW5jdGlvbiBhc3luY0luaXQoKSB7CiAKIGlk
bF90ZXN0KAogICBbJ3dlYnJ0YyddLAotICBbJ1dlYklETCcsICdtZWRpYWNhcHR1cmUtc3RyZWFt
cycsICdkb20nLCAnaHRtbCddLAorICBbJ3dlYmlkbCcsICdtZWRpYWNhcHR1cmUtc3RyZWFtcycs
ICdoci10aW1lJywgJ2RvbScsICdodG1sJ10sCiAgIGFzeW5jIGlkbEFycmF5ID0+IHsKICAgICBp
ZGxBcnJheS5hZGRfb2JqZWN0cyh7CiAgICAgICBSVENQZWVyQ29ubmVjdGlvbjogW2BuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKWBdLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2J1bmRsZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggODNlZjU2YTBkOGI4MzI1
NzI3ODM5Mjc2ZWZkYmUzZjcyYzg0MjcyMS4uMTNjMWMyNzU0ZWQyYmI0YjY1N2I3NmRkN2ViYmE3
YzRhZTFhNjgwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9idW5kbGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogCiBQQVNTIG5v
dCBuZWdvdGlhdGluZyBCVU5ETEUgY3JlYXRlcyB0d28gc2VwYXJhdGUgaWNlIGFuZCBkdGxzIHRy
YW5zcG9ydHMKIFBBU1MgYnVuZGxlcyBvbiB0aGUgZmlyc3QgdHJhbnNwb3J0IGFuZCBjbG9zZXMg
dGhlIHNlY29uZAorRkFJTCBtYXgtYnVuZGxlIHdpdGggYW4gb2ZmZXIgd2l0aG91dCBidW5kbGUg
b25seSBuZWdvdGlhdGVzIHRoZSBmaXJzdCBtLWxpbmUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBGYWlsZWQg
dG8gc2V0IHJlbW90ZSBvZmZlciBzZHA6IG1heC1idW5kbGUgaXMgdXNlZCBidXQgbm8gYnVuZGxl
IGdyb3VwIGZvdW5kLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9i
dW5kbGUuaHR0cHMuaHRtbAppbmRleCA2MWQxZmY4YWMxMDgyOTdkYWZlMzMzNjk0ZGRkMTE5NGZm
NTNmZTI2Li5jZmY4MDFkM2UwODExOWM1N2U1YmM4OWY4NTkzYjVmNTBkZWE1MGMzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9idW5kbGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9idW5kbGUuaHR0cHMuaHRtbApAQCAt
OTEsNCArOTEsMzggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhc3NlcnRfbm90X2Vx
dWFscyhkdGxzVHJhbnNwb3J0c1sxXSwgc2Vjb25kVHJhbnNwb3J0KTsKICAgYXNzZXJ0X2VxdWFs
cyhzZWNvbmRUcmFuc3BvcnQuc3RhdGUsICdjbG9zZWQnKTsKIH0sICdidW5kbGVzIG9uIHRoZSBm
aXJzdCB0cmFuc3BvcnQgYW5kIGNsb3NlcyB0aGUgc2Vjb25kJyk7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3Qgc2RwID0gYHY9MAorbz0tIDAgMyBJTiBJUDQgMTI3LjAuMC4x
CitzPS0KK3Q9MCAwCithPWZpbmdlcnByaW50OnNoYS0yNTYgQTc6MjQ6NzI6Q0E6NkU6MDI6NTU6
Mzk6QkE6NjY6REY6NkU6Q0M6NEM6RDg6QjA6MUE6QkY6MUE6NTY6NjU6N0Q6RjQ6MDM6QUQ6N0U6
Nzc6NDM6MkE6Mjk6RUM6OTMKK2E9aWNlLXVmcmFnOkVURW4KK2E9aWNlLXB3ZDpPdFNLMFdwTnRw
VWprWTQrODZqczdaL2wKK209YXVkaW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMTEKK2M9SU4gSVA0
IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOmF1ZGlvCithPXJ0cG1hcDox
MTEgb3B1cy80ODAwMC8yCithPXNldHVwOmFjdHBhc3MKK209dmlkZW8gOSBVRFAvVExTL1JUUC9T
QVZQRiAxMDAKK2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlk
OnZpZGVvCithPXJ0cG1hcDoxMDAgVlA4LzkwMDAwCithPWZtdHA6MTAwIG1heC1mcj0zMDttYXgt
ZnM9MzYwMAorYT1zZXR1cDphY3RwYXNzCitgOworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbih7IGJ1bmRsZVBvbGljeTogJ21heC1idW5kbGUnIH0pOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7IHR5
cGU6ICdvZmZlcicsIHNkcCB9KTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOwor
ICBjb25zdCB0cmFuc2NlaXZlcnMgPSBwYy5nZXRUcmFuc2NlaXZlcnMoKTsKKyAgYXNzZXJ0X2Vx
dWFscyh0cmFuc2NlaXZlcnMubGVuZ3RoLCAyKTsKKyAgYXNzZXJ0X2ZhbHNlKHRyYW5zY2VpdmVy
c1swXS5zdG9wcGVkKTsKKyAgYXNzZXJ0X3RydWUodHJhbnNjZWl2ZXJzWzFdLnN0b3BwZWQpOwor
fSwgJ21heC1idW5kbGUgd2l0aCBhbiBvZmZlciB3aXRob3V0IGJ1bmRsZSBvbmx5IG5lZ290aWF0
ZXMgdGhlIGZpcnN0IG0tbGluZScpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVt
dXhpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1sCmluZGV4IDFiOGRjZTNiNDVkYWIwZDM2
OWU0OTQ5OGUxOWIyZmIwMzY2MzU3MTcuLmRlMDhiMjE5N2YyOTg1YWMwNDkwMjRkMWU1ZjQ0NDA4
ZDc3NmYyZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1k
ZW11eGluZy5odG1sCkBAIC0xLDUgKzEsNiBAQAogPCFkb2N0eXBlIGh0bWw+CiA8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8dGl0bGU+
UlRDUGVlckNvbm5lY3Rpb24gcGF5bG9hZCB0eXBlIGRlbXV4aW5nPC90aXRsZT4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3J0cC1leHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1
cHBvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDdlYjMwYzUyNDc3MmIzYzU0YzY0YWFlZmM5YjkwYmVj
NjNkYWI2ZjAuLjRhNjYxMzlmODZiYmM5NDJhOWVlZjQwOTVjZWQwZTZmMTg2Nzc0MGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1leHRlbnNpb24tc3VwcG9ydC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRw
LWV4dGVuc2lvbi1zdXBwb3J0LWV4cGVjdGVkLnR4dApAQCAtNCw0ICs0LDUgQEAgUEFTUyBSVFAg
aGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCBpcyBw
cmVzZW50IGluIG9mZmUKIFBBU1MgUlRQIGhlYWRlciBleHRlbnNpb24gdXJuOjNncHA6dmlkZW8t
b3JpZW50YXRpb24gaXMgcHJlc2VudCBpbiBvZmZlcgogUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lv
biB1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOnJ0cC1zdHJlYW0taWQgaXMgcHJlc2Vu
dCBpbiBvZmZlcgogUEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiB1cm46aWV0ZjpwYXJhbXM6cnRw
LWhkcmV4dDpzZGVzOnJlcGFpcmVkLXJ0cC1zdHJlYW0taWQgaXMgcHJlc2VudCBpbiBvZmZlcgor
UEFTUyBSVFAgaGVhZGVyIGV4dGVuc2lvbiByZWFzc2lnbm1lbnQgY2F1c2VzIGZhaWx1cmUKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5z
aW9uLXN1cHBvcnQuaHRtbAppbmRleCBlM2QzZmU4N2Q5M2RjODBmZmQ4NjRhMzE0N2M3NGMyMmVi
ZjU2OGIyLi5iZjY5NTRlZDEzOGRiNDhlZDUxM2M4MGQ2N2JiNTE0YWVjNzFkODZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtZXh0ZW5zaW9uLXN1cHBvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZXh0ZW5zaW9u
LXN1cHBvcnQuaHRtbApAQCAtNDEsNCArNDEsMzQgQEAgZm9yIChjb25zdCBleHRlbnNpb24gb2Yg
bWFuZGF0b3J5RXh0ZW5zaW9ucykgewogICB9LCBgUlRQIGhlYWRlciBleHRlbnNpb24gJHtleHRl
bnNpb259IGlzIHByZXNlbnQgaW4gb2ZmZXJgKTsKIH0KIAorLy8gVGVzdCBmb3IgaWxsZWdhbCBy
ZW1vdGUgYmVoYXZpb3I6IFJlYXNzaWdubWVudCBvZiBoZHJleHQgSUQKKy8vIGluIGEgc3Vic2Vx
dWVudCBvZmZlci9hbnN3ZXIgY3ljbGUuCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMS5hZGRUcmFuc2NlaXZl
cignYXVkaW8nKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKKyAgLy8gRG8gYSBzZWNvbmQgb2ZmZXIvYW5zd2Vy
IGN5Y2xlLgorICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pOworICBjb25zdCBhbnN3
ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisKKyAgLy8gU3dhcCB0aGUgZXh0ZW5zaW9u
IG51bWJlciBvZiB0aGUgdHdvIHJlcXVpcmVkIGV4dGVuc2lvbnMKKyAgYW5zd2VyLnNkcCA9IGFu
c3dlci5zZHAucmVwbGFjZSgndXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1s
ZXZlbCcsCisgICAgICAgICAgICAgICAgICAgICAneHl6enknKQorICAucmVwbGFjZSgndXJuOmll
dGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQnLAorICAgICAgICAgICAndXJuOmlldGY6cGFy
YW1zOnJ0cC1oZHJleHQ6c3NyYy1hdWRpby1sZXZlbCcpCisgIC5yZXBsYWNlKCd4eXp6eScsCisg
ICAgICAgICAgICd1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCcpOworCisgIHJl
dHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNzRXJyb3InLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpKTsK
K30sICdSVFAgaGVhZGVyIGV4dGVuc2lvbiByZWFzc2lnbm1lbnQgY2F1c2VzIGZhaWx1cmUnKTsK
KwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1wYXlsb2FkdHlwZXMtZXhwZWN0ZWQudHh0CmluZGV4IGNhYjk5YmRhOTFiOWIy
YTg5MTk5YmM1Y2EyNjI2NWVjZjRmNTY4OWYuLjc0YTAxMDAzNjA0ZDIyNGQxZTliMTA0NmY2Y2Mx
NjRiNzRiNDQ0NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAog
CiBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUgcmFuZ2UgOTYt
MTI3IHdvcmtzCiBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUg
cmFuZ2UgMzUtNjMgd29ya3MKLUZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVj
IGluIHRoZSByYW5nZSA2NC05NSB0aHJvd3MgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitGQUlMIHNldFJlbW90ZURlc2NyaXB0aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUg
cmFuZ2UgNjQtOTUgdGhyb3dzIGFuIEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogRmFpbGVkIHRvIHJlamVjdCBvbiBQVCA2NCBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCmluZGV4IGFhNDY0Zjg2NTZmZTlhMDkwMzc0ZTQz
NDZjNDM2MDBjZjBiNDk3YWUuLmFmNzY1NmQxMzFlYTQ1Nzc5MzM0ZWY0M2E1MmQ2ZTBiMzQzYTY3
MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5
bG9hZHR5cGVzLmh0bWwKQEAgLTUxLDcgKzUxLDEwIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgZm9yIChsZXQgcGF5bG9hZFR5cGUgPSA2NDsgcGF5bG9hZFR5cGUgPD0gOTU7IHBheWxv
YWRUeXBlKyspIHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsCi0gICAg
ICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBjcmVhdGVPZmZl
clNkcChwYXlsb2FkVHlwZSl9KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBjcmVhdGVPZmZlclNkcChw
YXlsb2FkVHlwZSl9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8g
cmVqZWN0IG9uIFBUICcgKyBwYXlsb2FkVHlwZSk7CisKKwogICAgIHBjLmNsb3NlKCk7CiAgIH0K
IH0sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDY0LTk1
IHRocm93cyBhbiBJbnZhbGlkQWNjZXNzRXJyb3InKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0eC1jb2Rl
Y3MuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnR4LWNvZGVjcy5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmI4YzBiOTQ2NzVmOGI5OTA3MGY1ODJlZDZhMDgxYWNmMjQ3Yjk4YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL3J0eC1jb2RlY3MuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNiBAQAorCitQQVNTIEluaXRpYWwgb2ZmZXIgc2hvdWxkIGhhdmUgc2Vuc2libGUgUlRYIG1h
cHBpbmdzCitQQVNTIFNlbGYtbmVnb3RpYXRlZCBhbnN3ZXIgc2hvdWxkIGhhdmUgc2Vuc2libGUg
UlRYIHBhcmFtZXRlcnMKK1BBU1MgQSByZW1vdGUgb2ZmZXIgZ2VuZXJhdGVzIHNlbnNpYmxlIFJU
WCByZWZlcmVuY2VzIGluIGFuc3dlcgorRkFJTCBBIHJlbW90ZSBvZmZlciB3aXRoIGR1cGxpY2F0
ZSBjb2RlY3MgZ2VuZXJhdGVzIHNlbnNpYmxlIFJUWCByZWZlcmVuY2VzIGluIGFuc3dlciBhc3Nl
cnRfdHJ1ZTogRm91bmQgcmVmZXJlbmNlZCBjb2RlYyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9ydHgtY29kZWNzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHgtY29kZWNzLmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg1MTljNzVjYzQyYzg3YjI2ZjY1ZGE1ZWE2ZjI1OWU2MGM4
ZTY0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0eC1jb2RlY3MuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDE1MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PlJUWCBjb2RlYyBpbnRlZ3JpdHkgY2hlY2tzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3RoaXJkX3BhcnR5
L3NkcC9zZHAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworLy8gVGVz
dHMgZm9yIGNvbmZvcm1hbmNlIHRvIHJ1bGVzIGZvciBSVFggY29kZWNzLgorLy8gQmFzaWMgcnVs
ZTogT2ZmZXJzIGFuZCBhbnN3ZXJzIG11c3QgY29udGFpbiBSVFggY29kZWNzLCBhbmQgdGhlCisv
LyBSVFggY29kZWNzIG11c3QgaGF2ZSBhbiBhPWZtdHAgbGluZSB0aGF0IHBvaW50cyB0byBhIG5v
bi1SVFggY29kZWMuCisKKy8vIEhlbHBlciBmdW5jdGlvbiBmb3IgZG9pbmcgb25lIHJvdW5kIG9m
IG9mZmVyL2Fuc3dlciBleGNoYW5nZQorLy8gYmV0d2VlbiB0d28gbG9jYWwgcGVlciBjb25uZWN0
aW9ucy4KKy8vIENhbGxzIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyL2Fuc3dlcikgYmVmb3Jl
CisvLyBzZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyL2Fuc3dlcikgdG8gZW5zdXJlIHRoZSByZW1v
dGUgZGVzY3JpcHRpb24KKy8vIGlzIHNldCBhbmQgY2FuZGlkYXRlcyBjYW4gYmUgYWRkZWQgYmVm
b3JlIHRoZSBsb2NhbCBwZWVyIGNvbm5lY3Rpb24KKy8vIHN0YXJ0cyBnZW5lcmF0aW5nIGNhbmRp
ZGF0ZXMgYW5kIElDRSBjaGVja3MuCithc3luYyBmdW5jdGlvbiBkb1NpZ25hbGluZ0hhbmRzaGFr
ZShsb2NhbFBjLCByZW1vdGVQYywgb3B0aW9ucz17fSkgeworICBsZXQgb2ZmZXIgPSBhd2FpdCBs
b2NhbFBjLmNyZWF0ZU9mZmVyKCk7CisgIC8vIE1vZGlmeSBvZmZlciBpZiBjYWxsYmFjayBoYXMg
YmVlbiBwcm92aWRlZAorICBpZiAob3B0aW9ucy5tb2RpZnlPZmZlcikgeworICAgIG9mZmVyID0g
YXdhaXQgb3B0aW9ucy5tb2RpZnlPZmZlcihvZmZlcik7CisgIH0KKworICAvLyBBcHBseSBvZmZl
ci4KKyAgYXdhaXQgcmVtb3RlUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2Fp
dCBsb2NhbFBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGxldCBhbnN3ZXIgPSBh
d2FpdCByZW1vdGVQYy5jcmVhdGVBbnN3ZXIoKTsKKyAgLy8gTW9kaWZ5IGFuc3dlciBpZiBjYWxs
YmFjayBoYXMgYmVlbiBwcm92aWRlZAorICBpZiAob3B0aW9ucy5tb2RpZnlBbnN3ZXIpIHsKKyAg
ICBhbnN3ZXIgPSBhd2FpdCBvcHRpb25zLm1vZGlmeUFuc3dlcihhbnN3ZXIpOworICB9CisKKyAg
Ly8gQXBwbHkgYW5zd2VyLgorICBhd2FpdCBsb2NhbFBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CisgIGF3YWl0IHJlbW90ZVBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKK30K
KworZnVuY3Rpb24gdmVyaWZ5UnR4UmVmZXJlbmNlcyhkZXNjcmlwdGlvbikgeworICBjb25zdCBt
ZWRpYVNlY3Rpb24gPSBTRFBVdGlscy5nZXRNZWRpYVNlY3Rpb25zKGRlc2NyaXB0aW9uLnNkcClb
MF07CisgIGNvbnN0IHJ0cFBhcmFtZXRlcnMgPSBTRFBVdGlscy5wYXJzZVJ0cFBhcmFtZXRlcnMo
bWVkaWFTZWN0aW9uKTsKKyAgZm9yIChjb25zdCBjb2RlYyBvZiBydHBQYXJhbWV0ZXJzLmNvZGVj
cykgeworICAgIGlmIChjb2RlYy5uYW1lID09PSAncnR4JykgeworICAgICAgYXNzZXJ0X293bl9w
cm9wZXJ0eShjb2RlYy5wYXJhbWV0ZXJzLCAnYXB0JywgJ3J0eCBjb2RlYyBoYXMgYXB0IHBhcmFt
ZXRlcicpOworICAgICAgY29uc3QgcmVmZXJlbmNlZF9jb2RlYyA9IHJ0cFBhcmFtZXRlcnMuY29k
ZWNzLmZpbmQoCisgICAgICAgIGMgPT4gYy5wYXlsb2FkVHlwZSA9PT0gcGFyc2VJbnQoY29kZWMu
cGFyYW1ldGVycy5hcHQpKTsKKyAgICAgIGFzc2VydF90cnVlKHJlZmVyZW5jZWRfY29kZWMgIT09
IHVuZGVmaW5lZCwgYEZvdW5kIHJlZmVyZW5jZWQgY29kZWNgKTsKKyAgICB9CisgIH0KK30KKwor
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBnZW5lcmF0ZVZpZGVvUmVjZWl2ZU9u
bHlPZmZlcihwYyk7CisgIHZlcmlmeVJ0eFJlZmVyZW5jZXMob2ZmZXIpOworfSwgJ0luaXRpYWwg
b2ZmZXIgc2hvdWxkIGhhdmUgc2Vuc2libGUgUlRYIG1hcHBpbmdzJyk7CisKK2FzeW5jIGZ1bmN0
aW9uIG5lZ290aWF0ZUFuZFJldHVybkFuc3dlcih0KSB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMyLmNsb3NlKCkpOworICBsZXQgW3RyYWNrLCBzdHJlYW1zXSA9IGF3YWl0IGdldFRyYWNr
RnJvbVVzZXJNZWRpYSgndmlkZW8nKTsKKyAgY29uc3Qgc2VuZGVyID0gcGMxLmFkZFRyYWNrKHRy
YWNrKTsKKyAgYXdhaXQgZG9TaWduYWxpbmdIYW5kc2hha2UocGMxLCBwYzIpOworICByZXR1cm4g
cGMyLmxvY2FsRGVzY3JpcHRpb247Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgYW5zd2VyID0gYXdhaXQgbmVnb3RpYXRlQW5kUmV0dXJuQW5zd2VyKHQpOworICB2ZXJp
ZnlSdHhSZWZlcmVuY2VzKGFuc3dlcik7Cit9LCAnU2VsZi1uZWdvdGlhdGVkIGFuc3dlciBzaG91
bGQgaGF2ZSBzZW5zaWJsZSBSVFggcGFyYW1ldGVycycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHNhbXBsZU9mZmVyID0gYHY9MAorbz0tIDE4Nzg4OTA0MjY2NzUyMTMx
ODggMiBJTiBJUDQgMTI3LjAuMC4xCitzPS0KK3Q9MCAwCithPWdyb3VwOkJVTkRMRSB2aWRlbwor
YT1tc2lkLXNlbWFudGljOiBXTVMKK209dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiA5NiA5NyA5
OCA5OQorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNwOjkgSU4gSVA0IDAuMC4wLjAKK2E9aWNlLXVm
cmFnOlJHUEsKK2E9aWNlLXB3ZDpyQXlIRUFLQzdja3hRZ1dhUlpYdWt6K1oKK2E9aWNlLW9wdGlv
bnM6dHJpY2tsZQorYT1maW5nZXJwcmludDpzaGEtMjU2IDhDOjI5OjBBOjhGOjExOjA2OkJGOjFD
OjU4OkIzOkNBOkU2OkYxOkYxOkRDOjk5OjRDOjZDOjg5OkU5OkZGOkJDOkQ0OjM4OjExOjE4OjFG
OjQwOjE5OkM4OjQ5OjM3CithPXNldHVwOmFjdHBhc3MKK2E9bWlkOnZpZGVvCithPXJlY3Zvbmx5
CithPXJ0Y3AtbXV4CithPXJ0cG1hcDo5NyBydHgvOTAwMDAKK2E9Zm10cDo5NyBhcHQ9OTgKK2E9
cnRwbWFwOjk4IFZQOC85MDAwMAorYT1ydGNwLWZiOjk4IGNjbSBmaXIKK2E9cnRjcC1mYjo5OCBu
YWNrCithPXJ0Y3AtZmI6OTggbmFjayBwbGkKK2E9cnRjcC1mYjo5OCBnb29nLXJlbWIKK2E9cnRj
cC1mYjo5OCB0cmFuc3BvcnQtY2MKK2A7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIGxldCBbdHJhY2ssIHN0cmVhbXNdID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1l
ZGlhKCd2aWRlbycpOworICBjb25zdCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjayk7CisgIGF3
YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IHNhbXBsZU9m
ZmVyfSk7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICB2ZXJp
ZnlSdHhSZWZlcmVuY2VzKGFuc3dlcik7Cit9LCAnQSByZW1vdGUgb2ZmZXIgZ2VuZXJhdGVzIHNl
bnNpYmxlIFJUWCByZWZlcmVuY2VzIGluIGFuc3dlcicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHNhbXBsZU9mZmVyID0gYHY9MAorbz0tIDE4Nzg4OTA0MjY2NzUyMTMx
ODggMiBJTiBJUDQgMTI3LjAuMC4xCitzPS0KK3Q9MCAwCithPWdyb3VwOkJVTkRMRSB2aWRlbwor
YT1tc2lkLXNlbWFudGljOiBXTVMKK209dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiA5NiA5NyA5
OCA5OQorYz1JTiBJUDQgMC4wLjAuMAorYT1ydGNwOjkgSU4gSVA0IDAuMC4wLjAKK2E9aWNlLXVm
cmFnOlJHUEsKK2E9aWNlLXB3ZDpyQXlIRUFLQzdja3hRZ1dhUlpYdWt6K1oKK2E9aWNlLW9wdGlv
bnM6dHJpY2tsZQorYT1maW5nZXJwcmludDpzaGEtMjU2IDhDOjI5OjBBOjhGOjExOjA2OkJGOjFD
OjU4OkIzOkNBOkU2OkYxOkYxOkRDOjk5OjRDOjZDOjg5OkU5OkZGOkJDOkQ0OjM4OjExOjE4OjFG
OjQwOjE5OkM4OjQ5OjM3CithPXNldHVwOmFjdHBhc3MKK2E9bWlkOnZpZGVvCithPXJlY3Zvbmx5
CithPXJ0Y3AtbXV4CithPXJ0cG1hcDo5NiBWUDgvOTAwMDAKK2E9cnRwbWFwOjk3IHJ0eC85MDAw
MAorYT1mbXRwOjk3IGFwdD05OAorYT1ydHBtYXA6OTggVlA4LzkwMDAwCithPXJ0Y3AtZmI6OTgg
Y2NtIGZpcgorYT1ydGNwLWZiOjk4IG5hY2sKK2E9cnRjcC1mYjo5OCBuYWNrIHBsaQorYT1ydGNw
LWZiOjk4IGdvb2ctcmVtYgorYT1ydGNwLWZiOjk4IHRyYW5zcG9ydC1jYworYT1ydHBtYXA6OTkg
cnR4LzkwMDAwCithPWZtdHA6OTkgYXB0PTk2CitgOworICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICBsZXQgW3RyYWNrLCBzdHJlYW1zXSA9IGF3YWl0IGdldFRyYWNrRnJv
bVVzZXJNZWRpYSgndmlkZW8nKTsKKyAgY29uc3Qgc2VuZGVyID0gcGMuYWRkVHJhY2sodHJhY2sp
OworICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBz
YW1wbGVPZmZlcn0pOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIoKTsK
KyAgdmVyaWZ5UnR4UmVmZXJlbmNlcyhhbnN3ZXIpOworfSwgJ0EgcmVtb3RlIG9mZmVyIHdpdGgg
ZHVwbGljYXRlIGNvZGVjcyBnZW5lcmF0ZXMgc2Vuc2libGUgUlRYIHJlZmVyZW5jZXMgaW4gYW5z
d2VyJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvc3BsaXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQ5MTgxNzVjYjc1ZjllOGQ1
YmQ3NmNkYjg0ODBhNDdhNjgwY2M1ZTkuLjZkNGNlNmVlM2M5N2E5YWY4ODhlYmVhNDQzYjhjMDBm
YjY4YTFmYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9zcGxpdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLVBBU1MgQ29ubmVj
dCBhdWRpbyBhbmQgdmlkZW8gdG8gdHdvIGluZGVwZW5kZW50IFBlZXJDb25uZWN0aW9ucworRkFJ
TCBDb25uZWN0IGF1ZGlvIGFuZCB2aWRlbyB0byB0d28gaW5kZXBlbmRlbnQgUGVlckNvbm5lY3Rp
b25zIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJjb25uZWN0ZWQiIGJ1dCBnb3QgIm5ldyIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZwppbmRleCA0
N2E2NzdjM2JhZTQ3ZWZmYzcxZTEwMjg2YWI2M2I3NDhjYzgwMmQwLi40ZDhmNDllZmE3ZTBkMzc3
MDRmMzkyOGNmYjcwYjc0OGZmM2E0YTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC93M2MtaW1wb3J0LmxvZwpAQCAtMzIsNiArMzIsNyBAQCBMaXN0IG9mIGZpbGVzOgog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3J0cC1kZW11eGluZy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWV4dGVuc2lvbi1zdXBwb3J0Lmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHgtY29kZWNzLmh0dHBzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9z
Y3RwLWZvcm1hdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQtZG9udC5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxj
YXN0LWFuc3dlci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZlci10cmFjay1saXZlLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9yZWNlaXZl
ci10cmFjay1saXZlLmh0dHBzLmh0bWwKaW5kZXggM2Q0MTcyNGZiNTkwMTUwNjU3NTlhMDcyYTJl
MTZjODI1OGE1NmYyZS4uMzQ1NjkyOTdhNjIxMzRiMTI1Yzc1Y2ExOTg1NGIwODUwNmIxNDM2OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcmVjZWl2ZXItdHJhY2stbGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3JlY2VpdmVyLXRyYWNrLWxpdmUu
aHR0cHMuaHRtbApAQCAtMyw4ICszLDExIEBACiA8aGVhZD4KICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CiAgICAgPHRpdGxlPlJlbW90ZSB0cmFja3Mgc2hvdWxkIG5vdCBnZXQgZW5kZWQgZXhj
ZXB0IGZvciBzdG9wL2Nsb3NlPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRy
aXZlci5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5k
b3IuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vbWVkaWFjYXB0dXJlLXN0cmVhbXMvcGVy
bWlzc2lvbi1oZWxwZXIuanMnPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSVENQZWVyQ29u
bmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkBAIC0xMyw2ICsx
Niw3IEBACiAgICAgbGV0IHBjMSwgcGMyOwogICAgIGxldCBsb2NhbFRyYWNrLCByZW1vdGVUcmFj
azsKICAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgYXdhaXQgc2V0
TWVkaWFQZXJtaXNzaW9uKCJncmFudGVkIiwgWyJtaWNyb3Bob25lIl0pOwogICAgICAgICBjb25z
dCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHthdWRpbzogdHJ1ZX0pOwogICAgICAgICBsb2NhbFRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKVswXTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2Jhc2ljLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
YmFzaWMuaHR0cHMuaHRtbAppbmRleCBiZjJiYWE4Y2FiOTlkMTU0MmY0NjU1NGIzNTY2NGRhMjU3
NjhlNWU3Li5mN2I5ZGVmNzYyMmY4Zjg5ZDYyYmJjMDM5MjRkYTQxYmY4NjU5MGY5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9z
aW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvYmFzaWMuaHR0cHMuaHRtbApAQCAt
Nyw2ICs3LDkgQEAKIDxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWFjYXB0dXJlLXN0cmVhbXMvcGVybWlzc2lvbi1oZWxwZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgY29u
c3QgcmlkcyA9IFswLCAxXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9nZXRTdGF0cy5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxj
YXN0L2dldFN0YXRzLmh0dHBzLmh0bWwKaW5kZXggOTM5Y2VlYTg0MTEzNDcyZGQxY2Q4MWQ2ZDFh
NDhlOTBhMmMyNDg0YS4uYjVhOWU2ZWIyODMwN2NjYjIyMmFkYWY2M2QyOGY2MDkwMjBlZGY5YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2dldFN0YXRzLmh0
dHBzLmh0bWwKQEAgLTcsNiArNyw5IEBACiA8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhY2FwdHVyZS1zdHJlYW1zL3Blcm1p
c3Npb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CiAgIGNvbnN0IHJpZHMgPSBbMCwgMSwgMl07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbAppbmRleCBkMjNmMjk1MmFlYTQzZjgzZGJm
ZTM3MjY2YmJiZDVjNTFhZTdiNWVlLi5lZDg1MTMxYzJjY2QwODU3ZGE5YTNmYTdiZDc0ODI3MWMx
ZDA3ZDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0
dHBzLmh0bWwKQEAgLTcsNiArNyw5IEBACiA8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhY2FwdHVyZS1zdHJlYW1zL3Blcm1p
c3Npb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAvKgogICogQ2hyb21pdW0gbm90
ZTogdGhpcyByZXF1aXJlcyBidWlsZCBib3RzIHdpdGggSDI2NCBzdXBwb3J0LiBTZWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3NpbXVsY2FzdC9zZXRQYXJhbWV0ZXJzLWFjdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFt
ZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKaW5kZXggMWE3NDM3MWJmYjZkNzAxNjVhNDMzNjA3ZWVj
NjJiNTkwOWU2ZGY1Zi4uODZhZmE0MDgyZTI3ZTViNmFmYTQzZjNlMmExZjcxNzY2NTExZGNjNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvc2ltdWxjYXN0L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L3NldFBhcmFtZXRlcnMtYWN0aXZlLmh0dHBzLmh0bWwKQEAgLTcsNiArNyw5IEBACiA8c2NyaXB0
IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL21l
ZGlhY2FwdHVyZS1zdHJlYW1zL3Blcm1pc3Npb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiBhc3luYyBmdW5jdGlvbiBxdWVyeVJlY2VpdmVyU3RhdHMocGMpIHsKICAgY29uc3QgaW5i
b3VuZFN0YXRzID0gW107CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qvc2ltdWxjYXN0LmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3NpbXVs
Y2FzdC5qcwppbmRleCAwMThlYmY2M2FiZjdiMjEzMjE4NTYxYjBhZTAwZmY4YmE1N2I4MDBmLi43
NDE5YTlmMzU2ZGQ1ODdiYmQ0MmZjMjI5YjE3NjMxM2VkNDlmZjIzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3Qv
c2ltdWxjYXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3NpbXVsY2FzdC9zaW11bGNhc3QuanMKQEAgLTk0LDYgKzk0LDcgQEAgYXN5
bmMgZnVuY3Rpb24gbmVnb3RpYXRlU2ltdWxjYXN0QW5kV2FpdEZvclZpZGVvKHQsIHJpZHMsIHBj
MSwgcGMyLCBjb2RlYykgewogICB9OwogCiAgIC8vIFVzZSBnZXRVc2VyTWVkaWEgYXMgZ2V0Tm9p
c2VTdHJlYW0gZG9lcyBub3QgaGF2ZSBlbm91Z2ggZW50cm9weSB0byByYW1wLXVwLgorICBhd2Fp
dCBzZXRNZWRpYVBlcm1pc3Npb24oKTsKICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDEyODAsIGhlaWdodDog
NzIwfX0pOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNo
KHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRU
cmFuc2NlaXZlcihzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0
L3ZwOC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvc2ltdWxjYXN0L3ZwOC5odHRwcy5odG1sCmluZGV4IDk0MTQ1ZDBjNzk0ZWUz
M2NhNGJhZmUwMGNmZjJlMDgxMWNmZmUyZTEuLjM3MzM2ODI0MzVjY2I0MzgxNzNkYmRkMThlZTE3
OTViYTRkOWQ3NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC92cDguaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvdnA4
Lmh0dHBzLmh0bWwKQEAgLTcsNiArNyw5IEBACiA8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3Iu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhY2FwdHVyZS1zdHJlYW1zL3Bl
cm1pc3Npb24taGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0
cFNlbmRlciwgJ1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwppbmRleCAwZGE4NTdiZjBlYmMzZDg1NDQ5
MzVmMDQ4NzY3YjBhOTQzMGZlMTBiLi43OWEwODFkZWE2ODY5NDQyODQxYTM4NDcxNTlkNTM2ZGU0
YjNhYjVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwpAQCAtNDEsNyArNDEs
NiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0Vycm9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDYW5kaWRhdGUtY29uc3RydWN0b3IuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFpci5odHRwcy5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0
LWV4dGVuc2lvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQt
U1JELXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkLXRyYWNrLW5vLWRlYWRsb2Nr
Lmh0dHBzLmh0bWwKQEAgLTUzLDI0ICs1MiwxOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNhblRyaWNrbGVJY2VDYW5kaWRhdGVzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUt
aW4tc2RwLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0dHBzLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rp
b25TdGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29uc3RydWN0b3IuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLW9mZmVyVG9SZWNlaXZlLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVPZmZlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmli
dXRlcy10aW1pbmcuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWlj
ZUdhdGhlcmluZ1N0YXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Z2V0SWRlbnRpdHlBc3NlcnRpb24uc3ViLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0VHJhbnNjZWl2ZXJzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXItdGVzdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNl
Q29ubmVjdGlvblN0YXRlLWRpc2Nvbm5lY3RlZC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNl
Q29ubmVjdGlvblN0YXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtODAsNyArNzQsNiBAQCBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRpb25z
Lmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZWVySWRlbnRpdHkuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJm
ZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sCkBAIC0xMTIsMTIgKzEwNSw4
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC1jb25z
dHJ1Y3Rvci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUXVpY1N0cmVhbS5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUXVpY1RyYW5zcG9ydC1oZWxwZXIuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENR
dWljVHJhbnNwb3J0Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBDYXBhYmlsaXRpZXMtaGVscGVyLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1l
dGVycy1jb2RlY3MuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZGVncmFkYXRpb25QcmVmZXJlbmNlLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWVuY29kaW5ncy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWFkZXJFeHRlbnNpb25z
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcwpAQCAtMTM4LDcgKzEyNyw2IEBAIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwU2VuZGVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1kaXJlY3Rpb24uaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0
cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldERp
cmVjdGlvbi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1NjdHBUcmFuc3BvcnQtY29uc3RydWN0b3IuaHRtbApAQCAtMTUxLDcgKzEzOSw2IEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvZGljdGlvbmFyeS1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaGlzdG9yaWNhbC5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvaWRlbnRpdHkt
aGVscGVyLnN1Yi5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMt
Y2FsbC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggODE3YWFlZDU1MWYxZDg4OWZhYjgwY2ZmOWVmZThmNmFmODg4NDAzNi4uYjYzMjc1NDE4ZWZk
NWJjMTg5Njk3ODk1OTRiN2FkNzU2OGE3NzkxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2ds
aWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM3MCw3ICsxMzcwLDYgQEAgd2Via2l0Lm9yZy9iLzIx
OTgyNSBbIERlYnVnIF0gd2VicnRjL3NmcmFtZS1rZXlzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8yMjQwNzQgd2VicnRjL2NvbmN1cnJlbnRWaWRlb1BsYXliYWNrLmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMjA2NjU2IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tcmVtb3ZldHJhY2suaHR0
cHMuaHRtbCBbIENyYXNoIEZhaWx1cmUgVGltZW91dCBdCi13ZWJraXQub3JnL2IvMjA2NjU2IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFT
dHJlYW0tTWVkaWFFbGVtZW50LXByZWxvYWQtbm9uZS1tYW51YWwuaHR0cHMuaHRtbCBbIENyYXNo
IEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMjEwMzg1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXN0cmVhbXMvTWVkaWFTdHJlYW0tTWVkaWFFbGVtZW50
LWZpcnN0ZnJhbWUuaHR0cHMuaHRtbCBbIEZhaWx1cmUgQ3Jhc2ggUGFzcyBdCiAKIHdlYmtpdC5v
cmcvYi8yMjc5ODcgaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVk
aWEtcHJvbXB0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4
IDRiZjBhMzJlYWExNDQxYTVmNzg5ZWViMDI3NzZhODZkZDQ1ZTQ1OTQuLjhiZmM2OTQ2NGJkZWRk
MWQyNzNmMGU2MTczNDVkMTU3ZjBkY2M1ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3Rz
LW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTQx
MzksMTIgKzQxMzksMTggQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRtbCI6IFsKICAg
ICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1
cC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYXB0dXJlLXZpZGVvLmh0
dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFu
bmVsLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBz
Lmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0
ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAg
LTQxNTQsNiArNDE2MCw5IEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sIjog
WwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVsLmh0bWwiOiBbCisg
ICAgICAgICJzbG93IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWds
YXJlLWxpbmVhci5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLApAQCAtNDIx
NCw2ICs0MjIzLDkgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLWNsb2NrcmF0ZS5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBd
LAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9y
dHAtZGVtdXhpbmcuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2Rlcy1kb250LWRvbnQt
ZG9udC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>
<flag name="commit-queue"
          id="476167"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>